chapter 5 Flashcards
Define design in design process.
The creative process of figuring out how to implement the customer’s requirements.
What is early design (design process)?
Decisions that address the system’s architecture.
What is later design (design process)?
Decisions that address the implementation of individual units.
What is routine design (design process)?
Reusing solutions to previous problems.
What is architectural style?
Generic solutions to software problem. Client-server, p2p, etc.
What is SAD?
Software architecture document. An iterative process of designing a system.
What are the 6 ways to use architectural models for your problem?
- understand the system.
- determine reuse.
- blueprints for construction.
- reason about system evolution.
- analyze dependencies.
- understand risks and make decisions.
What is decomposition?
Breaking down a problem into smaller pieces.
What are views?
Views are different diagrams (visual models) that convey information about the system; ER-diagram, class diagram, etc.
Explain functional decomposition (design method).
A design that is focused on functions.
The functions are broken down and separated into modules.
Explain feature-oriented decomposition (design method).
System is broken down into features.
Describes interactions among features.
Explain object-oriented decomposition (design method).
Objects are assigned to modules.
How objects related to one another (high level).
Object’s attributes and operations (low level).
Explain object-oriented decomposition (design method).
Objects are assigned to modules.
How objects related to one another (high level).
Object’s attributes and operations (low level).
When is a design modular?
Each activity in the system is performed by exactly one unit.
When is software well-defined?
The module is used as intended. Requires utf-8 formatting? Then provide utf-8 formatting instead of ascii.
Name three common types of architectural views.
- Dependencies view.
- Generalization view.
- Work-assignment view.
What is dependencies view?
Shows dependencies among software units.
Useful for software planning.
Deciding what is necessary and what to do first in sprints.
Additionally useful for assessing impact of a design change.
What is a generalization view?
Relationship between abstract and non-abstract classes.
College:
People -> employees, students.. etc.
What is a work-assignment view?
System is broken down in to work tasks to be assigned to teams to build.
Helpful for project management planning.
What are 5 types of architectural styles.
- Pipes-and-Filter
- Client-server
- Peer-to-peer
- Publish-subscribe
- Repositories