DESIGN PART 1 Flashcards
What is the design process? (4 steps)
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
What is a black box model?
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.
What is a white box model?
Each black box can have a white box model which looks into more detail the process of executing that task.
What are the 2 building design models?
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
What are the 6 features of a good design?
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.
What is Preliminary Design (Architecture Design)?
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.
What is a Detailed Design (Physical Design)?
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.
What notations should be used for describing Software Architecture?
Software architectures are often modelled using:
1) Architectural Description Languages (ADLs).
- very specialised and hard to understand.
2) Block Diagrams.
3) UML.
What is a Block Diagram?
A Block Diagram is:
Informal -shows components and their relationships
Pros: Easy to Understand.
Cons: Does not show the TYPE of RELATIONSHIPS.
What are Architectural Patterns?
Its a way of presenting, sharing and reusing knowledge about software systems.
What are the 3 logical components in Model-View Controller Pattern?
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.
What is the usage of Model View Controller Pattern?
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.)
What are the Advantages and Disadvantages of Model View Controller Pattern?
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 does Layered Architecture pattern work?
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
|
| |
| |
| |
What is the usage of Layered Architecture pattern?
Used for Building new facilities on top of existing systems.
The Development is spread across several teams.