Week 5 - Software Analysis and Design Flashcards
1
Q
What are the design goals?
A
- Can develop multiple representations of the same concept (not black and white)
- We should value clarity with validity
- Software evolves with more details understood: An activity for clients and developers, it can be very valuable for planning among developers as well
2
Q
What are the design challenges?
A
1) Often when translating your solution into actual software implementation, THE DESIGN GETS LARGER, MORE COMPLICATED AND MORE CHALLENGING TO MAINTAIN.
2) As the team and your stakeholders understand the problem and solution better, EXPECTATIONS AND CONCEPTS WILL CHANGE. Coping with these changes will need to be managed
3
Q
How do we transform design into manageable concepts?
A
- Transform complex concepts into modules, such that each module is SELF CONTAINED AND INDEPENDENT OF OTHER MODULES.
This means breaking a program into smaller, self-contained units. We call this process decomposition. - Modularising your software will allow you to isolate changes to a module
4
Q
How do we perform Transformation (decomposition)?
A
- Take away ALL LOGIC from Entity. Leave setters and getters.
- Create new classes to group “similar” behaviours together
- It is not about “more classes” but “better encapsulation and separation of concerns”
5
Q
Can Entity and Boundary classes communicate directly?
A
No they cannot.
6
Q
What type of data does entity classes handle?
A
They handle persistent data, long lived models and directly model the business problem
7
Q
A
8
Q
A
8
Q
A