DESIGN PART 1 Flashcards

1
Q

What is the design process? (4 steps)

A

INPUT: requirement specification

1) Propose a solution.
2) Build a model of that solution (Black-Box).
3) Validate Solution against requirements and constraints.
4) Produce a more detailed solution (White-Box).

OUTPUT: design plan

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

What is a black box model?

A

A Black-Box model describes the external functionality and behaviour of a system as a whole.

Only input and output is important.

For example, “Handle Supply” is a black box description of some workflow (e.g. in an online shopping system).

Black-Box is HIGHER LEVEL.

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

What is a white box model?

A

Each black box can have a white box model which looks into more detail the process of executing that task.

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

What are the 2 building design models?

A

1) top-down: break-down of a problem into smaller sub-problems which can be solved independently.
2) iterative: sub-problems will be divided even more

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

What are the 6 features of a good design?

A

1) Simple
2) Modular
3) Meet all the specification requirements
4) Well Documented
5) Easily translated into code (Practicable)
6) Flexible - it can cope well with changes.

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

What is Preliminary Design (Architecture Design)?

A

Preliminary Design establishes the software architecture.

It is a link between DESIGN and REQUIREMENTS engineering.

If you are “architecting” a component, you are defining how it behaves in the larger system.

1) Describes the system at higher levels of abstraction.
2) Hard to be changed once committed to one.
3) non-functional requirement is related more to this phase.

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

What is a Detailed Design (Physical Design)?

A

A detailed design is the realisation (decision) of specific technology, platform and set of tools that will be used.

If you are “designing” the same component you are defining HOW it behaves INTERNALLY.

1) Fills in the details. Can be used as input to programmers.
2) Easier to be changed.
3) Functional requirement is related more to this phase.

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

What notations should be used for describing Software Architecture?

A

Software architectures are often modelled using:

1) Architectural Description Languages (ADLs).
- very specialised and hard to understand.
2) Block Diagrams.
3) UML.

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

What is a Block Diagram?

A

A Block Diagram is:
Informal -shows components and their relationships

Pros: Easy to Understand.
Cons: Does not show the TYPE of RELATIONSHIPS.

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

What are Architectural Patterns?

A

Its a way of presenting, sharing and reusing knowledge about software systems.

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

What are the 3 logical components in Model-View Controller Pattern?

A

The system is structured into three logical components:
1) Model component: manages the system data and operations on that data (what to display).

2) View component: manages how the data is presented to the user (how to display).
3) Controller component: manages user interaction (e.g., key presses, mouse clicks) and passes these interactions to the View and the Model.

Separates presentation and interaction from data.
Used in many web-based systems.

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

What is the usage of Model View Controller Pattern?

A

It is useful if there are MULTIPLE WAYS to VIEW and INTERACT with data. (eg: Portrait or Landscape)

When the future requirements for interaction/presentation of data are unknown. (Not sure how to present it to the user. -Can do Model and Controller and leave the View Component for a Later stage.)

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

What are the Advantages and Disadvantages of Model View Controller Pattern?

A

Advantages:
1) Data can change independently of its presentation. (can change data without changing presentation or vice versa).

2) Supports PRESENTATION of the SAME DATA in DIFFERENT WAYS with changes made in one of them, shown in all of them.

Disadvantages:
1) Can involve additional code and code complexity when the data model and interactions are simple.

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

How does Layered Architecture pattern work?

A

1) System functionality is organized into separate layers.
2) Each layer only relies on the services offered by the layer IMMEDIATELY BENEATH it.
3) Supports the incremental development of systems.
The architecture is also changeable and portable

|
| |
| |
| |

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

What is the usage of Layered Architecture pattern?

A

Used for Building new facilities on top of existing systems.

The Development is spread across several teams.

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

What are the Advantages and Disadvantages of Layered Architecture Pattern?

A

Advantages:

1) Replacement of entire layers is possible.
2) Redundant facilities can be provided in each layer to increase the dependability.

Disadvantages:

1) No Clean separation between layers.
2) Performance can be affected.

17
Q

What is Repository Architecture?

A

Repository Architecture describes how a set of interacting components can share data between them.

All the data in the system is managed in the central repository.

The central repository is accessible to all the system components.

Components do not interact directly, only through the repository.

18
Q

When is Repository Architecture suitable?

A

Repository Architecture is suitable for a system where data is generated by one component and used by another.

It is also used when large volumes of information are to be generated and stored.

19
Q

What are the Advantages and Disadvantages of Repository Architecture Pattern?

A

Advantages:

1) Components can be independent
2) Changes made in one component are accessible to all components.
3) All Data can be managed consistently.

Disadvantages:

1) A repository failure AFFECTS THE WHOLE SYSTEM.
2) Hard to ORGANISE COMMUNICATION through the repository.
3) DIFFICULT to distribute the repository accross several computers.

20
Q

Why the Architectural Design of software is important?

A

1) Facilitate communication: easier to discuss with Individual or organizations (not clutter with details).

Different viewpoints that suit different users
End user: functionality
Integrator : process: performance-scalability
Programmers: development: software manager
System engineer: physical, installation and communication

2) Feasible for analysis (validation): can check early-on if the system meet the non-functional requirements.
3) Consideration of alternate structures (at a stage when changing the design is still easy).
4) Large-scale reuse: ability to use the architecture for similar systems.