Software Architecture Introduction
- The concept of software architecture is similar to the architecture of building.
- The architecture is not an operational software.
- The software architecture focuses on the role of software components.
- Software components consist of a simple program module or an object oriented class in an architectural design.
- The architecture design extended and it consists of the database and the middleware that allows the configuration of a network of clients and servers.
Importance of software architecture
Following are the reasons for the importance of software architecture.
1. The representation of software architecture allows the communication between all stakeholder and the developer.
2. The architecture focuses on the early design decisions that impact on all software engineering work and it is the ultimate success of the system.
3. The software architecture composes a small and intellectually graspable model.
4. This model helps the system for integrating the components using which the components are work together.
The architectural style
- The architectural style is a transformation and it is applied to the design of an entire system.
- The main aim of architectural style is to build a structure for all components of the system.
- An architecture of the system is redefined by using the architectural style.
- An architectural pattern such as architectural style introduces a transformation on the design of an architecture.
- The software is constructed for computer based system and it shows one of the architectural style from many of style.
The design categories of architectural styles includes:
1. A set of components such as database, computational modules which perform the function required by the system.
2. A set of connectors that allows the communication, coordination and cooperation between the components.
3. The constraints which define the integration of components to form the system.
4. Semantic model allows a designer to understand the overall properties of a system by using analysis of elements.
Architectural design
- The architectural design starts then the developed software is put into the context.
- The information is obtained from the requirement model and other information collect during the requirement engineering.
Representing the system in context
All the following entities communicates with the target system through the interface that is small rectangles shown in above figure.
Superordinate system
These system use the target system like a part of some higher-level processing scheme.
Subordinate system
This systems is used by the target system and provide the data mandatory to complete target system functionality.
Peer-level system
These system interact on peer-to-peer basis means the information is consumed by the target system and the peers.
Actors
These are the entities like people, device which interact with the target system by consuming information that is mandatory for requisite processing.
Defining Archetype
- An archetype is a class or pattern which represents a core abstraction i.e critical to implement or design for the target system.
- A small set of archetype is needed to design even the systems are relatively complex.
- The target system consists of archetype that represent the stable elements of the architecture.
- Archetype is instantiated in many different forms based on the behavior of the system.
- In many cases, the archetype is obtained by examining the analysis of classes defined as a part of the requirement model.
An Architecture Trade-off Analysis Method (ATAM)
ATAM was developed by the Software Engineering Institute (SEI) which started an iterative evaluation process for software architecture.
The design analysis activities which are executed iteratively that are as follows:
1. Collect framework
Collect framework developed a set of use cases that represent the system according to user point of view.
2. Obtained requirement, Constraints, description of the environment.
These types of information are found as a part of requirement engineering and is used to verify all the stakeholders are addressed properly.
3. Describe the architectural pattern
The architectural patterns are described using an architectural views which are as follows:
Module view: This view is for the analysis of assignment work with the components and the degree in which abstraction or information hiding is achieved
Process view: This view is for the analysis of the software or system performance.
Data flow view: This view analyzes the level and check whether functional requirements are met to the architecture.
4. Consider the quality attribute in segregation
The quality attributes for architectural design consist of reliability, performance, security, maintainability, flexibility, testability, portability, re-usability etc.
5. Identify the quality attributes sensitivity- The sensitivity of quality attributes achieved by making the small changes in the architecture and find the sensitivity of the quality attribute which affects the performance.
- The attributes affected by the variation in the architecture are known as sensitivity points.