WSU D284 software engineering practise, Exams of Nursing

WSU D284 software engineering practise

Typology: Exams

2025/2026

Available from 03/26/2026

ianprince-chiku
ianprince-chiku 🇺🇸

47 documents

1 / 29

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
WGU D284 - Software Engineering
Task 1: EvolveCRM Software Solution
Analysis | 2026 Update with complete
solutions.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d

Partial preview of the text

Download WSU D284 software engineering practise and more Exams Nursing in PDF only on Docsity!

WGU D284 - Software Engineering

Task 1: EvolveCRM Software Solution

Analysis | 2026 Update with complete

solutions.

  • Answer: Observation (or Shadowing).
  • Rationale: Users often fail to mention steps they do out of habit (like copying a phone number to a sticky note). Observing users in their actual environment reveals the implicit processes and pain points that interviews or surveys might miss.

4. The Marketing team requests a feature to export all contacts to a CSV. The Security team objects. What is the primary conflict here?

  • Answer: Data Security vs. Usability.
  • Rationale: Marketing wants ease of data portability (Usability), while Security is concerned about Data Exfiltration and GDPR/CCPA compliance. The solution requires a trade-off, such as requiring manager approval for exports or implementing audit logs.

5. During a requirements workshop, stakeholders cannot agree on whether "Contact Owner" should be a single user or a team. What artifact should you create to resolve this?

  • Answer: A Glossary or Data Dictionary.
  • Rationale: Ambiguity in business terms is a primary source of project failure. Defining terms like "Contact Owner" (e.g., "The individual sales rep assigned primary responsibility") in a glossary ensures all stakeholders agree on the semantics before development begins.

6. What is the purpose of a "Requirements Traceability Matrix" (RTM) for EvolveCRM?

  • Answer: To link each requirement (e.g., "Add Interaction") to its source (stakeholder), design element (UML diagram), test case, and deployment status.
  • Rationale: An RTM ensures that no scope creep occurs without authorization and that every requirement is tested. It is used to prove that the delivered software matches the agreed-upon scope.

7. The project sponsor wants to add a "AI-generated email summary" feature halfway through the sprint. As the engineer, what process must be invoked?

  • Answer: Change Control Board (CCB) / Scope Change Request.
  • Rationale: Adding features mid-sprint disrupts the development velocity. Any addition to scope after the baseline is established requires formal approval, impact analysis (on timeline and cost), and reprioritization of the backlog.

8. Which non-functional requirement is most critical for a CRM that handles EU customer data?

  • Answer: Compliance (GDPR).
  • Rationale: For CRM systems, legal compliance (Right to be forgotten, data portability, consent tracking) is non-negotiable. Failure here results in legal liability, making it more critical than performance or usability in the regulatory sense.

9. What is the difference between a "User Story" and a "Use Case" in the context of EvolveCRM?

  • Answer: A User Story is a short, high-level statement ("As a Sales Rep, I want to log a call so that I remember the context"). A Use Case is a detailed, step-by-step description of the interactions between the actor and the system, including alternate flows (e.g., "If the call fails, show error").
  • Rationale: Stories are used for backlog prioritization and estimation; Use Cases are used for detailed functional design and test case creation.

10. The QA team reports that the "Contact Merge" feature works perfectly when merging 2 contacts but crashes when merging 100. Which requirement was likely missed?

  • Answer: Scalability or Volume Testing requirements.
  • Rationale: The functional requirement likely specified the merge logic, but the non-functional requirement regarding the maximum batch size or memory limits was not defined or tested.

11. A stakeholder asks for a "dashboard." Which clarifying question is most important to ask first?

  • Answer: "What decision will this dashboard help you make, and what data is required to support that decision?"
  • Rationale: Engineers often build "vanity metrics" dashboards that look nice but don't aid business decisions. Defining the decision clarifies the data model and visualization required.

12. In MoSCoW prioritization, where does the "Dark Mode" UI feature typically fall for a CRM MVP?

  • Answer: W (Won’t have this time) or S (Should have if possible).

16. Which UML diagram is required in Task 1 to model the interactions between a Sales Rep and the system for "Adding a New Contact"?

  • Answer: Sequence Diagram.
  • Rationale: The rubric for Task 1 specifically requires interaction modeling. A Sequence Diagram shows the lifelines (Sales Rep, UI, Controller, Database) and the order of messages passed to accomplish the functionality.

17. In a Class Diagram for EvolveCRM, what is the correct multiplicity between a "Contact" and an "Interaction" (e.g., email, call)?

  • Answer: **1 : *** (One contact has many interactions).
  • Rationale: A single contact can have multiple interactions over time (calls, emails, meetings). This is a one-to-many relationship.

18. You are designing the "Contact" class. Which attributes are required to satisfy GDPR "Right to be forgotten"?

  • Answer: A isActive flag (soft delete) or a deletedAt timestamp, plus a consentGiven boolean and consentTimestamp.
  • Rationale: Hard deleting data immediately can break referential integrity (e.g., interactions tied to a contact). A soft delete allows the system to anonymize or archive the data while respecting the user's request to remove their personal information from active views.

19. In a State Machine Diagram for a "Lead" (a type of Contact), which states are typically required?

  • Answer: New -> Contacted -> Qualified -> Negotiation -> Closed Won / Closed Lost.
  • Rationale: State machine diagrams model the lifecycle of an object. Leads move through a sales pipeline; they cannot go from "New" to "Closed Won" without intermediate qualification steps.

20. Why is a Component Diagram useful for the EvolveCRM architecture?

  • Answer: It shows the physical structuring of the system, such as how the ContactService component interfaces with the Database component and the EmailService component.
  • Rationale: Component diagrams help define the API boundaries between major parts of the system, facilitating parallel development (Team A works on Contact UI, Team B works on Email Integration).

21. You are creating an Activity Diagram for "Contact Import." A user can upload a CSV. What does a "Fork" node represent in this flow?

  • Answer: The splitting of a single flow into multiple concurrent flows (e.g., validating rows in parallel while also checking file size).
  • Rationale: Forks allow modeling of parallel processing, which is efficient for import functions but must eventually join back before completion.

22. Which UML diagram is best suited to show the physical deployment of EvolveCRM across web servers, application servers, and a database cluster?

  • Answer: Deployment Diagram.
  • Rationale: Deployment diagrams map software artifacts (like WAR files) to hardware nodes (servers). This is critical for understanding scalability, redundancy, and network infrastructure.

23. In a Use Case Diagram, what is the relationship between "View Contact" and "Edit Contact"?

  • Answer: Extends or Inheritance.
  • Rationale: "Edit Contact" is a specialized version of "View Contact." The actor must first view the contact to edit it. Typically, "Edit Contact" extends the "View Contact" use case.

24. You model a "Contact" and an "Organization" (Account). If a Contact must belong to an Organization, what type of relationship is this?

  • Answer: Aggregation (or Composition).
  • Rationale: Aggregation represents a "has-a" relationship. If the Organization is deleted, the Contact may or may not be deleted depending on business rules (composition = strong lifecycle dependency).

25. What is the purpose of a "Visual Paradigm" (or similar tool) in the context of WGU D284?

30. In a Class Diagram, if an Interaction class cannot exist without a parent Contact class, what is the multiplicity and relationship?

  • Answer: Composition (filled diamond) with multiplicity 1 on the Contact side and * on the Interaction side.
  • Rationale: Composition implies a strong lifecycle: if the Contact is deleted, all associated Interactions should also be deleted (cascade delete).

31. You are designing the API for the frontend to fetch contacts. Which RESTful endpoint is correct for retrieving a specific contact with ID 123?

  • Answer: GET /api/contacts/123
  • Rationale: REST conventions dictate that resources are accessed via nouns. The ID is a path parameter. Using verbs in the URL (e.g., /getContact) is considered non-RESTful.

32. What is the primary difference between an Activity Diagram and a Flowchart?

  • Answer: Activity Diagrams support parallel processing (synchronization bars/forks) and are specifically used in UML to model workflows within a system, while flowcharts are more general- purpose.
  • Rationale: Activity Diagrams are a UML standard used in software engineering to represent the flow of control from activity to activity, specifically useful for modeling complex business logic.

33. Which diagram would you use to model the roles (Admin, Manager, Rep) and the features they can access in EvolveCRM?

  • Answer: Use Case Diagram with actor generalizations, or a Security/RBAC Matrix.
  • Rationale: Use Case diagrams show actors and their associated use cases. Generalization arrows allow you to show that an "Admin" inherits all permissions of a "Manager" and adds more.

34. The "Contact Merge" feature involves complex conditional logic. Which diagram best captures the algorithmic logic of deciding which fields to keep?

  • Answer: Activity Diagram or State Machine Diagram.
  • Rationale: Activity diagrams excel at showing decision nodes (diamonds) and merge nodes for complex business rules like field precedence (e.g., "Keep the most recently updated field").

35. In a layered architecture diagram for EvolveCRM, what are the three standard layers?

  • Answer: Presentation Layer (UI/React), Business Logic Layer (Java/C# Controllers), Data Access Layer (JPA/Entity Framework) / Database.
  • Rationale: Separation of concerns allows for maintainability. The UI does not talk directly to the database; it goes through logic layers to enforce business rules.

Section 3: Database Design & SQL (Q 36–55)

36. You need to ensure that every Interaction record has a valid ContactID. What database constraint should be applied?

  • Answer: Foreign Key Constraint (with ON DELETE CASCADE or RESTRICT based on business rules).
  • Rationale: Referential integrity ensures data consistency. A foreign key prevents orphaned records.

37. What normalization form is achieved when a table has no repeating groups (i.e., no arrays or multiple phone numbers in a single column)?

  • Answer: First Normal Form (1NF).
  • Rationale: 1NF requires atomic values. Storing multiple phone numbers in a single column violates this; it requires a separate "PhoneNumber" table linked to Contact.

38. Given the requirement "A contact can have multiple email addresses (Home, Work, Other)," what is the best database design?

  • Rationale: Every time data is modified, every index on that table must also be updated. For a CRM where contacts are frequently updated, there is a trade-off between read speed and write speed.

42. In the EvolveCRM database, if a Contact can belong to one Organization, but an Organization can have many Contacts, where does the Foreign Key reside?

  • Answer: In the Contact table (containing OrganizationID).
  • Rationale: In a one-to-many relationship, the foreign key is placed on the "many" side (Contact) referencing the "one" side (Organization).

43. Which ACID property ensures that when you transfer an "Owner" of a contact from User A to User B, the database does not end up with the contact owned by no one if the system crashes mid-update?

  • Answer: Atomicity.
  • Rationale: Atomicity ensures that transactions are "all or nothing." If the update fails (crash), the database rolls back to the state before the transfer began.

44. You are designing a database for a high-traffic CRM. Why might you use a NoSQL database (like MongoDB) instead of a relational one (like PostgreSQL) for the "Interaction History" feature?

  • Answer: Interactions are often schema-less (varying types: email, call, meeting) and require high write throughput. NoSQL allows for flexible schemas and horizontal scaling.
  • Rationale: Relational databases are excellent for structured data with strict relationships (Contacts, Orgs). NoSQL is often used for high-volume, semi-structured log data like interactions.

45. What does VARCHAR(255) represent in a table definition?

  • Answer: A variable-length string column with a maximum length of 255 characters.
  • Rationale: Unlike CHAR (fixed length), VARCHAR only uses storage for the actual text plus a length prefix, which is efficient for fields like names where length varies.

46. Which SQL clause is used to filter groups after an aggregation (e.g., finding sales reps with more than 100 interactions)?

  • Answer: HAVING.
  • Rationale: WHERE filters rows before grouping. HAVING filters groups after the GROUP BY clause. Example: GROUP BY UserID HAVING COUNT(*) > 100.

47. What is a "Stored Procedure" and when might you use one for EvolveCRM?

  • Answer: A stored procedure is pre-compiled SQL code stored in the database. You might use it for complex "Contact Merge" logic to ensure data integrity is maintained entirely within the database transaction.
  • Rationale: Stored procedures can encapsulate business logic close to the data, reducing network round trips and ensuring consistency, though they can tie business logic to the database vendor.

48. What is the purpose of a Database Migration script (e.g., using Flyway or Liquibase)?

  • Answer: To version-control the database schema and apply incremental changes (adding columns, creating tables) consistently across development, testing, and production environments.
  • Rationale: Manual SQL changes lead to environment drift. Migration scripts ensure every environment has the exact same schema structure.

49. If a Contact record is "soft deleted" (is_deleted = true), how does this affect a SELECT * FROM contacts query?

  • Answer: The query will still return soft-deleted records unless the query includes a filter like WHERE is_deleted = false.
  • Rationale: Soft deletion is a logical deletion, not a physical one. All application queries must be modified to exclude deleted records by default unless explicitly intended (e.g., for admin recovery).

50. You need to store a timestamp for when the contact record was last modified. What column type and default behavior is best?

  • Answer: updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP.
  • Rationale: This automatically updates the timestamp whenever the row is modified, providing an accurate audit trail without requiring application code to manage it.
  • Rationale: This groups by email, counts the occurrences, and filters groups where the count exceeds 1.

55. What is the difference between DELETE and TRUNCATE?

  • Answer: DELETE removes rows one by one and logs each deletion (allowing ROLLBACK). TRUNCATE deallocates data pages, is faster, but cannot be rolled back easily (in most SQL dialects) and resets identity counters.
  • Rationale: TRUNCATE is often used for clearing staging tables, while DELETE is used for specific record removal in transactional systems.

Section 4: API & Integration (Q 56–70)

56. EvolveCRM needs to integrate with an external Email Marketing Service (EMS). What architectural pattern is best to ensure the CRM remains responsive even if the EMS is slow?

  • Answer: Message Queue (Asynchronous Messaging).
  • Rationale: The CRM publishes a "Send Email" event to a queue. A separate worker consumes the queue and calls the EMS. This decouples the systems and prevents the CRM from timing out due to external latency.

57. What is the primary advantage of using REST over SOAP for the EvolveCRM public API?

  • Answer: REST is lightweight, uses standard HTTP methods (GET, POST, PUT, DELETE), and returns data in JSON, which is easier for web and mobile clients to consume compared to the verbose XML of SOAP.
  • Rationale: For modern web applications, REST/JSON is the standard due to lower overhead and better browser compatibility.

58. You are designing a webhook for EvolveCRM to notify external systems when a new contact is created. What HTTP method should the webhook endpoint use to send data?

  • Answer: POST.
  • Rationale: Webhooks typically use POST to send a payload (the contact data) to a URL provided by the external system. POST is the standard method for creating resources or sending data.

59. What is the purpose of an API Gateway in the EvolveCRM architecture?

  • Answer: To act as a single entry point for clients, handling authentication (JWT validation), rate limiting, request routing, and aggregation of responses from microservices.
  • Rationale: An API Gateway abstracts the internal microservice architecture from the client, improving security and simplifying client logic.

60. What is OAuth 2.0 used for in the context of EvolveCRM?

  • Answer: To allow users to grant EvolveCRM access to their Google Workspace or Outlook calendar without sharing their password (delegated authorization).
  • Rationale: OAuth 2.0 issues access tokens, ensuring security. The CRM never stores the user’s email password, only a token with specific scopes (e.g., "read calendar").

61. What is the difference between a "RESTful API" and a "GraphQL API"?

  • Answer: REST exposes multiple endpoints (e.g., /contacts, /interactions) and returns fixed data structures. GraphQL exposes a single endpoint and allows the client to query exactly the fields they need, preventing over-fetching or under-fetching of data.
  • Rationale: For complex UIs that need contact and interaction data simultaneously, GraphQL can reduce the number of round trips to the server.

62. You are calling an external API to validate addresses. This API has a 99.9% uptime SLA. What happens if the API is down when a user tries to save a contact?

  • Answer: The system should implement a Circuit Breaker pattern. It should fail gracefully, log the error, and allow the user to save the contact without address validation (or retry later).
  • Rationale: The CRM should not become unavailable because a third-party dependency is down. The Circuit Breaker prevents the CRM from repeatedly trying to call a failing service, which would waste resources and degrade user experience.