Lesson 5 - Intro to design concepts (Ch 12) Flashcards
A software design creates meaningful engineering representation (or _____) of some software product that is to be built.
model
Designers must strive to acquire a repertoire of alternative design information and learn to choose the elements that best _____ the analysis model.
match
A design model can be traced to the customer’s requirements and can be assessed for quality against _____ criteria.
predefined
During the design process the software requirements model (data, function, behavior) is _____ into design models that describe the details of the data structures, system architecture, interfaces, and components necessary to implement the system.
transformed
Each design product is reviewed for _____ (i.e. identify and correct errors, inconsistencies, or omissions, whether better alternatives exist, and whether the design model can be implemented within the project constraints) before moving to the next phase of software development.
quality
- Encompasses the set of principles, concepts, and practices that lead to the development of a high quality system or product
- Design principles establish and overriding philosophy that guides the designer as the work is performed
- Design concepts must be understood before the mechanics of design practice are applied
- Goal of design engineering is to produce a model or representation that is bug free (firmness), suitable for its intended uses (commodity), and pleasurable to use (delight)
- Software design practices change continuously as new methods, better analysis, and broader understanding evolve
Software Design
Design Concepts
allows designers to focus on solving a problem without being concerned about irrelevant lower level details (procedural abstraction - named sequence of events and data abstraction – named collection of data objects)
Abstraction
Design Concepts
overall structure of the software components and the ways in which that structure provides conceptual integrity for a system. Structural models, framework models, dynamic models, process models, functional models
software architecture
software architecture
architecture as organized collection of components
Structural models
software architecture
attempt to identify repeatable architectural patterns
Framework models
software architecture
indicate how program structure changes as a function of external events
Dynamic models
software architecture
focus on the design of the business or technical process that system must accommodate
Process models
software architecture
used to represent system functional hierarchy
Functional models
Design Concepts
description of a design structure that solves a particular design problem within a specific context and its impact when applied
Design Patterns
Design Concepts
any complex problem is solvable by subdividing it into pieces that can be solved independently
Separation of concerns