Design Flashcards
Design
deliberate, purposeful planning
Engineering
Skillful or artful contrivance applying scientific and mathematical principles
Craft
skilled occupation
Art
use of skill, taste, and imagination in the production of aesthetic objects
What’s the difference between software design and programming
Scale - When you’re doing design, it’s typically because you have a Big problem that needs a Big solution
Emphasis on Non Functional Requirements - Programmers may be concerned with things like performance and other things that don’t play a big role.
Software Design
Building a program while satisfying a problem’s functional requirements and not violating its non-functional constraints
Two Phases of Software Design
- Architectural Design
- Detail Design
Architectural Design
The process of identifying and assigning the responsibility for aspects of behavior to various modules or components of a software
Detail Design
The process of specifying the behavior of each of the system components that you’ve identified during architectural design
Psuedo Code
PDL (Program Design Language)
Keywords, free syntax of natural language, data declaration, subprogram definition and calling
Structured Programming
Sequence, condition, repetition; chunking
Flowcharts; call graphs
Directed graphs: node is computational unit; arc is flow of control
Decision tables
Rules, conditions, actions
Design Method
Systematic sequence of steps that a design team uses to solve a problem
Generally a design method suggests a particular way of viewing a problem (OO views problem from a set of cooperating objects)
Structure Design and Role based design are others.
Consequences of testing a design first once the project is done?
Not cost or time efficient.
The earlier you find problems, the less expensive they are to fix them.
Especially if you have a design problem and it goes unnoticed until right before release.
3 Common Aspects of Design Approaches
- Method
- Representation
- Validation