Untitled Deck Flashcards
What is Software Design?
Encompasses the set of principles, concepts, and practices that lead to the development of a high quality system or product.
What do design principles establish?
An overriding philosophy that guides the designer as the work is performed.
What must be understood before applying design practice mechanics?
Design concepts.
How do software design practices change?
Continuously as new methods, better analysis, and broader understanding evolve.
What is Data/Class design?
Transforms analysis classes into implementation classes and data structures.
What does Architectural design define?
Relationships among the major software structural elements.
What does Interface design define?
How software elements, hardware elements, and end-users communicate.
What does Component-level design transform?
Structural elements into procedural descriptions of software components.
What must the design implement?
All of the explicit requirements contained in the analysis model, and accommodate all of the implicit requirements desired by the customer.
What should the design provide?
A complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective.
What are the quality guidelines for design?
- A design should exhibit an architecture created using recognizable architectural styles or patterns, composed of well-designed components, implemented in an evolutionary fashion.
- A design should be modular.
- A design should contain distinct representations of data, architecture, interfaces, and components.
- A design should lead to data structures drawn from recognizable data patterns.
- A design should contain functionally independent components.
- A design should lead to interfaces that reduce complexity of connections between components and the external environment.
- A design should be derived using a repeatable method driven by software requirements analysis.
- A design should be represented using meaningful notation.
What common characteristics do design methodologies share?
- A mechanism for translating the requirements model into a design representation.
- A notation for representing functional components and their interfaces.
- Heuristics for refinement and partitioning.
- Guidelines for quality assessment.
What is abstraction in design concepts?
Data (named collection of data describing data object) and procedural (name sequence of instructions with specific and limited function).
What does architecture refer to in software design?
Overall structure or organization of software components, ways components interact, and structure of data used by components.
What are design patterns?
Describe a design structure that solves a well-defined design problem within a specific context.
What is separation of concerns?
Any complex problem can be more easily handled if it is subdivided into pieces.
What is modularity?
Compartmentalization of data and function.