3.1 Software Design Flashcards

(31 cards)

1
Q

An intentional and creative process

A

Design

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

The conception, planning and production of objects, structures or processes to achieve specific objectives.

A

Design

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

It involves the synergy of functionality, UX and aesthetics

A

Design

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

It is the iterative translation of requirements into a blueprint for software construction through the definition architecture, components, interfaces, and other characteristics of a software involving the creation of diagrams, models and other representations

A

Software Design

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

It is the representation of the logical relationship among individual elements of data.

A

Data Structure

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

Types of Data Structures?

A

Scalar and Vector

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

An atomic domain value representing a piece of information, addressed by an identifier

A

Scalar Data structure

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

The most common data structure accessible through variable indexing

A

Vector

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

It is the process of breaking a high-level design into more specific and detailed components.

A

Stepwise Refinement

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

It enforces constraints to procedures and data.

A

Information hiding

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

It is a principle that ensures a system is composed of independent components (modules) that can be connected in different configurations.

A

Modularization

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

Criteria for Effective Modularization (5)

A

Decomposability, Understandability, Composability, Continuity, Protection

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

This criterion for effective modularization makes easier management of complexity by breaking down a system into smaller, manageable and independent modules.

A

Decomposability

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

This criterion assesses if a module is well-documented, clear interfaces and follows proper naming conventions that are easily comprehended by developers and stakeholders.

A

Understandability.

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

This criterion ensures that modules can easily be assembled, integrated or combined to form a complete and larger system.

A

Composability

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

This criterion enforces consistency and stability over its iterations through version control, rigorous resting and adherence to best practices.

17
Q

This criterion hides inner workings and exposes necessary interfaces only safeguarding from unintended interactions and failures

18
Q

The measure of the internal structure of a module, or the close relation of functions within a module.

A

Cohesion (Note: High cohesion means that the functions and the data are closely related and the module performs a single and well-defined task.)

19
Q

It is a measure of the degree of dependence between two modules at a time.

A

Coupling (Note: High coupling means that a module is highly dependent on another, making it problematic as one changes to one module will also require changes in other affected modules.)

20
Q

It is a process of hiding the complex details of a system and providing a simple layer of interaction, enabling manageable interactions and reducing cognitive load.

21
Q

Levels of Abstraction?

A

Control Abstraction, Process Abstraction and Data Abstraction

22
Q

Simplifying control mechanisms, focusing more on high-level design, loops and declarative approaches.

A

Control Abstraction

23
Q

This type of abstraction focuses on external behavior without concerning the intricate details of implementation; functions/methods.

A

Process abstraction

24
Q

The simplification of complex data structures, exposing the essential details only; Object-Oriented Design.

A

Data Abstraction

25
It represents the organization of program components, implying the hierarchy of control; also called as the program structure.
Control Hierarchy
26
It refers to the process of dividing a system into well defined components based on functionality, responsibility and cohesion.
Structural Partitioning
27
Types of structural Partitioning
Horizontal and Vertical
28
This partitioning separates major functions as branches
Horizontal Partitioning
29
This partitioning distributes work in a top-down architecture; aka factoring.
Vertical partitioning.
30
Benefits of Horizontal Partitioning
Software is easier to test, maintain and extend. Propagation of fewer side-effects.
31
It is a representation of a product used to facilitate the iterative design process
Design Model