Software Architecture
Software Architecture
Software Architecture
Architecture serves as a blueprint for a system. It provides an
abstraction to manage the system complexity and establish a
communication and coordination mechanism among components.
Software Design
Software design provides a design plan that describes the elements of
a system, how they fit, and work together to fulfill the requirement
of the system. The objectives of having a design plan are as follows
−
Limitations
Design Expertise
Domain Expertise
Technology Expertise
Quality Attributes
Quality is a measure of excellence or the state of being free from
deficiencies or defects. Quality attributes are the system properties
that are separate from the functionality of the system.
Reflect the behavior of the system during its execution. They are
directly related to system’s architecture, design, source code,
configuration, deployment parameters, environment, and platform.
Quality Scenarios
Quality scenarios specify how to prevent a fault from becoming a
failure. They can be divided into six parts based on their attribute
specifications −
Architectural Style
The architectural style, also called as architectural pattern, is a set of
principles which shapes an application. It defines an abstract
framework for a family of system in terms of the pattern of
structural organization.
Types of Architecture
There are four types of architecture from the viewpoint of an
enterprise and collectively, these architectures are referred to
as enterprise architecture.
Separation of Concerns
Naming Conventions
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.
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.
Class diagram
Object diagram
Component diagram
Deployment diagram
Package diagram
Composite structure
Sr.No
Diagram & Description
.
Class
1
Represents the object orientation of a system. Shows how classes are statically related.
Object
2 Represents a set of objects and their relationships at runtime and also represent the static view of the
system.
Component
3
Describes all the components, their interrelationship, interactions and interface of the system.
Composite structure
4
Describes inner structure of component including all classes, interfaces of the component, etc.
Package
5 Describes the package structure and organization. Covers classes in the package and packages
within another package.
Deployment
6 Deployment diagrams are a set of nodes and their relationships. These nodes are physical entities
where the components are deployed.
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 −
Sr.No
Diagram & Description
.
Use case
1 Describes the relationships among the functionalities and their internal/external controllers. These
controllers are known as actors.
Activity
2 Describes the flow of control in a system. It consists of activities and links. The flow can be
sequential, concurrent, or branched.
Sequence
4
Visualizes the sequence of calls in a system to perform a specific functionality.
Interaction Overview
5 Combines activity and sequence diagrams to provide a control flow overview of system and
business process.
Communication
6 Same as sequence diagram, except that it focuses on the object’s role. Each communication is
associated with a sequence order, number plus the past messages.
Time Sequenced
7
Describes the changes by messages in state, condition and events.
The use case view has a special significance as it details the high level
requirement of a system while other views details — how those
requirements are realized. When all other four views are completed,
it’s effectively redundant. However, all other views would not be
possible without it. The following image and table shows the 4+1
view in detail −
System engineer,
Programmer and All the views of
Viewer / End-User, Analysts and operators, system
Integrators & developers software project their views and
Stake holder Designer administrators and
managers evaluators
system installers
Software Module
Nonfunctional
Functional Non Functional organization (Software System Consistency
Consider requirement regarding
requirements Requirements management reuse, and validity
to underlying hardware
constraint of tools)