Software Design Concepts

Percept

Explicit attributes of a GUI that a user can see

Association, Aggregation, and Generalizations

The three types of relationships to be concerned with in a UML analysis model.

Architectural Design

The process of identifying and assigning 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.

Design Method

A systematic sequence of steps that a design team uses to solve a problem.

Design Issues

1. Architectural versus detail design.
2. Functional behavior versus non-functional constraints.
3. Specification/what versus design/how.
4. Application specificity.

Leonardo Design Documentation

Stakeholders, issue bases, temporal relations, constraints, and aggregates.

Coupling

the extent to which two components depend on each other for successful execution - low coupling is good

Cohesion

the extent to which a component has a single purpose or function - high cohesion is good