Architecture Models
Architecture Models
Software architecture involves the high level structure of software system abstraction, by using
decomposition and composition, with architectural style and quality attributes. A software
architecture design must conform to the major functionality and performance requirements of the
system, as well as satisfy the non-functional requirements such as reliability, scalability, portability,
and availability.
A software architecture must describe its group of components, their connections, interactions
among them and deployment configuration of all components.
UML
UML stands for Unified Modeling Language. It is a pictorial language used to make software
blueprints. UML was created by Object Management Group OMG. The UML 1.0 specification draft
was proposed to the OMG in January 1997. It serves as a standard for software requirement
analysis and design documents which are the basis for developing a software.
UML can be described as a general purpose visual modeling language to visualize, specify,
construct, and document a software system. Although UML is generally used to model software
system, it is not limited within this boundary. It is also used to model non software systems such as
process flows in a manufacturing unit.
The elements are like components which can be associated in different ways to make a complete
UML picture, which is known as a diagram. So, it is very important to understand the different
diagrams to implement the knowledge in real-life systems. We have two broad categories of
diagrams and they are further divided into sub-categories i.e. Structural Diagrams and
Behavioral Diagrams.
Structural Diagrams
Structural diagrams represent the static aspects of a system. These static aspects represent those
parts of a diagram which forms the main structure and is therefore stable. These static parts are
represented by classes, interfaces, objects, components and nodes.
Diagram Description
Behavioral Diagrams
Behavioral diagrams basically capture the dynamic aspect of a system. Dynamic aspects are
basically the changing/moving parts of a system. UML has the following types of behavioral
diagrams shownintheimagegivenbelow
The following table provides a brief description of these diagram
Diagram Description
Use case Describes the relationships among the functionalities and their
internal/external controllers. These controllers are known as
actors.
State Machine/state chart Represents the event driven state change of a system. It
basically describes the state change of a class, interface, etc.
Used to visualize the reaction of a system by internal/external
factors.
A view is a representation of an entire system from the perspective of a related set of concerns. It
is used to describe the system from the viewpoint of different stakeholders such as end-users,
developers, project managers, and testers.
The logical view or conceptual view It describes the object model of the design.
The process view It describes the activities of the system, captures the concurrency and
synchronization aspects of the design.
The physical view It describes the mapping of software onto hardware and reflects its
distributed aspect.
The development view It describes the static organization or structure of the software in
its development of environment.
This view model can be extended by adding one more view called scenario view or use case
view for end-users or customers of software systems. It is coherent with other four views and are
utilized to illustrate the architecture serving as plus one view, 4 + 1 view model. The following
figure describes the software architecture using five concurrent views 4 + 1 model.
Description Shows the Shows the processes Gives building block views of system Shows the Shows the
component / Workflow rules of and describe static organization of installation, design is
Object of system system and how the system modules configuration complete
as well as their those processes and by
interaction communicate, deployment of performing
focuses on dynamic software validation
view of system application and
illustration
Viewer / End-User, Integrators & Programmer and software project System All the
Stake Analysts and developers managers engineer, views of
holder Designer operators, their views
system and
administrators evaluators
and system
installers
UML Class, State, Activity Diagram Component, Package diagram Deployment Use case
Diagram Object, diagram diagram
sequence,
Communication
Diagram
ADLs must support the architecture components, their connections, interfaces, and configurations
which are the building block of architecture description. It is a form of expression for use in
architecture descriptions and provides the ability to decompose components, combine the
components, and define the interfaces of components.
An architecture description language is a formal specification language, which describes the
software features such as processes, threads, data, and sub-programs as well as hardware
component such as processors, devices, buses, and memory.
It should provide a basis for further implementation, so it must be able to add information to
the ADL specification to enable the final system specification to be derived from the ADL.
It should have the ability to represent most of the common architectural styles.