Lesson 5 - Intro to design concepts (Ch 12) Flashcards

1
Q

A software design creates meaningful engineering representation (or _____) of some software product that is to be built.

A

model

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Designers must strive to acquire a repertoire of alternative design information and learn to choose the elements that best _____ the analysis model.

A

match

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

A design model can be traced to the customer’s requirements and can be assessed for quality against _____ criteria.

A

predefined

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

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.

A

transformed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

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.

A

quality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  • 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
A

Software Design

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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)

A

Abstraction

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

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

A

software architecture

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

software architecture

architecture as organized collection of components

A

Structural models

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

software architecture

attempt to identify repeatable architectural patterns

A

Framework models

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

software architecture

indicate how program structure changes as a function of external events

A

Dynamic models

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

software architecture

focus on the design of the business or technical process that system must accommodate

A

Process models

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

software architecture

used to represent system functional hierarchy

A

Functional models

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Design Concepts

description of a design structure that solves a particular design problem within a specific context and its impact when applied

A

Design Patterns

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Design Concepts

any complex problem is solvable by subdividing it into pieces that can be solved independently

A

Separation of concerns

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

design concepts

the degree to which software can be understood by examining its components independently of one another

A

Modularity

17
Q

design concepts

information (data and procedure) contained within a module is inaccessible to modules that have no need for such information

A

Information Hiding

18
Q

design concepts

achieved by developing modules with single-minded purpose and an aversion to excessive interaction with other models

A

Functional Independence

19
Q

Functional Independence

qualitative indication of the degree to which a module focuses on just one thing

A

Cohesion

20
Q

functional independence

qualitative indication of the degree to which a module is connected to other modules and to the outside world

A

Coupling

21
Q

design concepts

process of elaboration where the designer provides successively more detail for each design component

A

Refinement

22
Q

design concepts

a representation of a cross-cutting concern that must be accommodated as refinement and modularization occur

A

Aspects

23
Q

design concepts

process of changing a software system in such a way internal structure is improved without altering the external behavior or code design

A

Refactoring

24
Q
  • Complete (includes all necessary attributes and methods) and sufficient (contains only those methods needed to achieve class intent)
  • Primitiveness – each class method focuses on providing one service
  • High cohesion – small, focused, single-minded classes
  • Low coupling – class collaboration kept to minimum
A

Design Class Characteristics