Hoofdstuk 4 - Domain Modeling Flashcards
How does domain modeling help to validate and analyze the requirements?
- Role-playing scenarios help to validate the use cases
- Model the problem domain from the customer perspective thus analyzing the requirements.
- CRC cards are a requirements validation technique
What’s the problem with “god classes”?
- Decrease the maintainability of the code
- Knows too much, does too much
Why are many responsibilities, many collaborators and deep inheritance hierarchies suspicious?
Because a class would then be doing too much, this again decreases the maintainability of the code.
Would/could turn into “god” class
Can you explain how role-playing works? Do you think it helps in creative thinking?
Create a list of scenarios, assign roles and their CRC Cards to different members, rehearse and revise the scenarios until they are clear. Role-playing makes everything clear, they are a requirement validation technique.
Can you compare Use Cases and CRC Cards in terms of the requirements specification process?
Use Cases are a requirements specification technique, CRC cards are a requirements validation technique, they complement each other.
Do CRC cards yield the best possible class design? Why not?
It will be a good design, but it might not be the best… The purpose of CRC Cards in the first place is to smooth communication and rehearsing/revising the scenarios.
Why are CRC cards maintained with paper and pencil instead of electronically?
Better communication, better for customer, easier, less official
What would be the main benefits for thinking in terms of “system families” instead of “one-of-a-kind development”? What would be the main disadvantages?
It would have a clear advantage with code reuse, but a disadvantage will occur when the family has to change. (Wired telephone –> Wireless telephone, …)
Can you apply scrum to develop a product line? Argue your case.