ARCHITECTURAL DESIGN I Flashcards
What is architectural design and what is its output?
The design process for identifying the sub-systems
making up a system and the framework for sub-system
control and communication is architectural design.
The output of this design process is a description of the software architecture.
Describe Architectural design
An early stage of the system design process.
Represents the link between specification and design
processes. Often carried out in parallel with some specification activities.
It involves identifying major system components and
their communications.
What is the importance of architectural design?
The most important part of design because it unifies both types of design
Describe architectural abstraction in small systems
Architecture in the small systems is concerned with the architecture of individual programs.
At this level, we are concerned with the way that an
individual program is decomposed into components.
Describe architectural abstraction in large systems
Architecture in the large is concerned with the architecture of complex enterprise systems that include other systems, programs, and program components.
These enterprise systems are distributed over different networks and computers, which may be owned and managed by different companies.
What are the main issues involved with using simple informal block diagrams for architectural representation
Simple, informal block diagrams showing entities and
relationships are the most frequently used method for
documenting software architectures.
But these have been criticized because:
-they lack semantics
-do not show the types of relationships between
entities
-do not show the visible properties of entities in the
architecture.
What are the uses of architectural models?
As a way of facilitating discussion about the system design. Stakeholders are are able to understand an abstract view of the system and can discuss it without confusion
As a way of documenting an architecture that has been designed. A complete system model is produced that shows different components in the system, their interfaces and their connections.
Give examples of architectural design decisions that span across all design processes
Is there a generic application architecture that can be used?
How will the system be distributed?
What architectural styles are appropriate?
What approach will be used to structure the system?
How will the system be decomposed into modules?
What control strategy should be used?
How will the architectural design be evaluated?
How should the architecture be documented?
Describe some situations in which architecture can be reused
Systems in the same domain often have similar
architectures that reflect domain concepts.
Application product lines are built around a core
architecture with variants that satisfy particular customer
requirements.
Describe the use of architecture patterns or styles
The architecture of a system may be designed around
one of more architectural patterns or ‘styles’.
These capture the essence of an architecture and can be instantiated in different ways.
Describe architecture and system characteristics
Performance- Localize critical operations and minimize communications.
Security- Use a layered architecture with critical assets in the inner layers.
Safety- Localize safety-critical features in a small number of sub-systems.
Availability- Include redundant components and mechanisms for fault tolerance.
Maintainability- Use fine-grain, replaceable components.
Describe 4+1 View Model of Software Architecture
A logical view, which shows the key abstractions in the system as objects or object classes.
A process view, which shows how, at run-time, the system is composed of interacting processes.
A development view, which shows how the software is decomposed for development.
A physical view, which shows the system hardware and how software components are distributed across the processors in the system.
Related using use cases or scenarios (+1
Define an architectural pattern
An architectural pattern is a stylized description of good design practice, which has been tried and tested in different environments.
Describe architectural patterns in general
Patterns are a means of representing, sharing and
reusing knowledge
Patterns should include information about when they are and when the are not useful.
Patterns may be represented using tabular and graphical descriptions.
Describe the MVC model and its components
Separates presentation and interaction from the system data. The system is structured into three logical components that interact with each other.
* The Model component manages the system data and associated operations on that data.
* The View component defines and manages how the data is presented to the user.
* The Controller component manages user interaction (e.g., key presses, mouse clicks, etc.) and passes these interactions to the View and the Model.