Professional Documents
Culture Documents
1
• The software architecture of a program or computing
system is the structure or structures of the system, which
comprise software components, the externally visible
properties of those components, and the relationships
among them.
2
Why Architecture?
The architecture is not the operational software.
Rather, it is a representation that enables a software
engineer to:
(1) analyze the effectiveness of the design in
meeting its stated requirements,
(2) consider architectural alternatives at a stage
when making design changes is still relatively easy,
and
(3) reduce the risks associated with the
construction of the software.
3
Why is Architecture Important?
• Representations of software architecture are an
enabler for communication between all parties
(stakeholders) interested in the development of a
computer-based system.
• The architecture highlights early design decisions that
will have a profound impact on all software engineering
work that follows and, as important, on the ultimate
success of the system as an operational entity.
6
Data-Centered Architecture
10
Data Flow Architecture
• This architecture is applied when input data are to
be transformed through a series of computational
or manipulative components into output data.
13
Structure of Call and Return
Architecture
14
Call and Return Architecture
• enables to achieve a program structure that is
relatively easy to modify and scale.
• Two substyles that exist within this category:
1. Main program/subprogram architectures.- classic
program structure decomposes function into a
control hierarchy where a “main” program invokes
several program components, which in turn may
invoke still other components.
2. Remote procedure call architectures- components of
a main program/subprogram architecture are
distributed across multiple computers on a network.
Main program/
subprogram
architecture
16
Object-oriented architectures
17
UML communication diagram
Layered Architecture
19
Layered Architecture
• A number of different layers are defined, each
accomplishing operations that progressively
become closer to the machine instruction set.
• At the outer layer, components service user
interface operations.
• At the inner layer, components perform
operating system interfacing.
• Intermediate layers provide utility services and
application software functions.
Model-View-Controller (MVC)
architecture
• one of a number of suggested infrastructure
models often used in Web development.
• The model contains all application-specific content
and processing logic.
• The view contains all interface-specific functions
and enables the presentation of content and
processing logic required by the end user.
• The controller manages access to the model and
the view and coordinates the flow of data between
them.
The MVC architecture
MVC architecture
• user requests are handled by the controller.
• The controller also selects the view object that is applicable
based on the user request.
• Once the type of request is determined, a behavior request is
transmitted to the model, which implements the functionality
or retrieves the content required to accommodate the request.
• The model object can access data stored in a corporate
database, as part of a local data store, or as a collection of
independent files.
• The data developed by the model must be formatted and
organized by the appropriate view object and then transmitted
from the application server back to the client-based browser for
display on the customer’s machine.
Architectural Design
• The software must be placed into context
– the design should define the external entities (other
systems, devices, people) that the software interacts
with and the nature of the interaction
• A set of architectural archetypes should be
identified
– An archetype is an abstraction (similar to a class)
that represents one element of system behavior
• The designer specifies the structure of the
system by defining and refining software
components that implement each archetype 24
Tasks of Architectural Design
• 1. Representing the System in Context
• 2. Defining Archetypes
• 3. Refining the Architecture into
Components
• 4. Describing Instantiations of the System
25
1. Representing the System in Context
26
Architectural Context (Generic framework)
27
Architectural Context –
Safe home security system
28
2. Defining Archetypes
An archetype is a class or
pattern that represents a
core abstraction that is
critical to the design of an
architecture for the target
system.
29
• Node. Represents a cohesive collection of input and output
elements of the home security function. For example, a
node might be composed of (1) various sensors and (2) a
variety of alarm (output) indicators.
31
• represent entities within the application (business)
domain that must be addressed within the
software architecture.
• Hence, the application domain is one source for
the derivation and refinement of components.
• Another source is the infrastructure domain.
• Continuing the SafeHome home security function example, you
might define the set of top-level components that address the
following functionality:
• External communication management —coordinates
communication of the security function with external entities such
as other Internet-based systems and external alarm notification.
33
4. Describing Instantiations of the System
architectural design
36
Deriving Program Architecture
Program
Architecture
37
Partitioning the Architecture
• “horizontal” and “vertical” partitioning are
required
38
Horizontal Partitioning
• define separate branches of the module
hierarchy for each major function
• use control modules to coordinate
communication between functions
function 1 function 3
function 2
39
Vertical Partitioning: Factoring
• design so that decision making and work are
stratified
• decision making modules should reside at the
top of the architecture
decision-makers
workers
40
Why Partitioned Architecture?
• results in software that is easier to test
• leads to software that is easier to maintain
• results in propagation of fewer side effects
• results in software that is easier to extend
41
STRUCTURED DESIGN
• aim of structured design is to transform the
results of the structured analysis (that is, the
DFD model) into a structure chart.
• A structure chart represents
– the software architecture
– various modules making up the system,
– the module dependency (i.e. which module calls
which other modules), and
– the parameters that are passed among the different
modules.
STRUCTURE CHART
• basic building blocks used in structure charts are
• Rectangular boxes: represents a module. Usually,
every rectangular box is annotated with the name
of the module it represents.
• Module invocation arrows: An arrow connecting
two modules implies that during program
execution control is passed from one module to
the other in the direction of the connecting arrow.
( no. of times a module is called and the order of
calling can’t be identified from the structure chart)
CONTD.,
• Data flow arrows: These are small arrows appearing
alongside the module invocation arrows. The data flow
arrows are annotated with the corresponding data name.