What activities do software design entail
Architectural design
Detailed design
Define Architectural design
Shows gross structure and organization of the system.
Decomposition into modules (divide and conquer)
Design for change and abstract away details.
What is a design pattern?
Describes a family of solutions to a design problem.
Captures design know-how and make it reusable
Define detailed design
Define design for change
algorithms, data representation…
Define information hiding
What are some desires of a system?
Goals of a Uses relation
Design towards information hiding.
Design towards a hierarchy.
Independent goals.
Attributes of a Module Guide