Chapter 5 - Software Architecture
Chapter 5 - Software Architecture
System Integration
and Architecture 1
VENUS, HARVEY G.
Instructor
CHAPTER 5
SOFTWARE ARCHITECTURE
It refers to the bigger structures of a software system, and it deals with
how multiple software processes cooperate to carry out their tasks.
It 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.
It is the primary carrier of system qualities such as performance,
modifiability, and security, none of which can be achieved without a
unifying architectural vision.
Design
A plan or specification for the construction of an object or system or
for the implementation of an activity or process, or the result of that plan or
specification in the form of a prototype, product or process.
Quality Attributes
It includes correctness, reliability, adequacy, learnability,
robustness, maintainability, readability, extensibility, testability, efficiency,
portability.
IT Environment
An integrated collection of technology components that serves the
needs of its users and the owner of the resulting system.
Human Dynamics
A team-oriented activity involving engineers, developers, business
analysts, domain experts, data/infrastructure architects, projects
managers etc.
Business Strategy
It refers to the actions and decisions that a company takes to reach
its business goals and be competitive in its industry.
SOFTWARE DESIGN
It 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 –
To negotiate system requirements and to set expectations with
customers, marketing and management personnel.
Act as a blueprint during the development process.
Guide the implementation tasks, including detailed design, coding,
integration, and testing.
Requirement
desired Hardware
Quality Architecture
Domain Analysis
Software Architecture Hardware Architecture
Requirement analysis
Design Design
Risk Analysis
Implementation Constraint
Detailed design,
Coding, integration,
Testing
GOALS OF ARCHITECTURE
Expose the structure of the system, but hide its implementation details.
Realize all the use-cases and scenarios.
Try to address the requirements of various stakeholders.
Handle both functional and quality requirements.
Reduce the goal of ownership and improve the organization’s market
position.
Improve quality and functionality offered by the system.
Improve external confidence in either the organization or system.
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.
The architectural style is responsible to –
Provide a lexicon of components and connectors with rules on how
they can be combined.
Improve partitioning and allow the reuse of design by giving
solutions to frequently occurring problems.
Describe a particular way to configure a collection of components
(a module with well-defined interfaces, reusable, and replaceable)
and connectors (communication link between modules.)
COMMON ARCHITECTURAL DESIGN
Category Quality Attributes Description
Communication Message Bus Prescribes use of a software
system that can receive and
send messages using one or
more communication
channels.
Service-Oriented Defines the applications that
Architecture (SOA) expose and consume
functionality as a service
using contracts ad messages.
Deployment Client/Server Separate the system into two
applications where the client
makes requests to the server.
3-tier or N-tier Separates the functionality
into separate segments with
each segment being a tier
located on a physically
separate compute.
Domain Domain Driven Design Focused on modeling a
business domain and defining
business objects based on
entities within the business
domain.
Structure Component Based Breakdown the application
design into reusable
functional or logical
components that expose well-
defined communication
interfaces.
Layered Divide the concerns of the
application into stacked
groups (layers).
Object Oriented Based on the division of
responsibilities of an
application or system into
objects each containing the
data and the behavior
relevant to the object.
TYPES OF ARCHITECTURE
Business Architecture
It defines the strategy of business, governance, organization, and
key business processes within an enterprise and focuses on the
analysis and design of business processes.
Application (software) Architecture
It serves as the blueprint for individual application system their
interactions and their relationships to the business processes of the
organization.
Information Architecture
It defines the logical and physical data assets and data
management resources.
Information Technology (IT) Architecture
It defines the hardware and software building blocks that make up
the overall information system of the organization.