Software Architecture Design - PowerPoint PPT Presentation

1 / 12
About This Presentation
Title:

Software Architecture Design

Description:

Create a general model of the control relationships between the parts of ... OSI model is a typical example. It supports the incremental development of systems. ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 13
Provided by: Jerr2
Learn more at: http://www.engr.sjsu.edu
Category:

less

Transcript and Presenter's Notes

Title: Software Architecture Design


1
Software Architecture Design
Instructor Dr. Jerry Gao
2
Software Architecture Design
- Architecture design - General description -
System structuring (repository model,
client-server model, and abstract machine) -
Control models (centralized control,
event-driven systems) - Modular decomposition
(object model, data-flow model) -
Domain-specific architectures
Jerry Gao, Ph.D. Jan. 1999
3
Software Architectural Design
Large systems can be decomposed into sub-systems
that provide some related set of services. The
architectural design focus on - partitioning a
system into a logical sub-systems and modules. -
identify their interactions and relationships.
- System structuring The system is structured
into a number of principal sub-systems. Each is
an independent software unit. They communicate
with one and another. - Control
modeling Create a general model of the control
relationships between the parts of the
system. - Modular decomposition Partition each
sub-system into small modules. The architecture
design must identify these modules and
their interactions.
4
Architectural Design - The Repository Model
Two ways to share data information in a
distributed environment - Share a central
database - Each sub-system maintains a local
database The repository model Advantages
Efficient way to share large amount
data Disadvantages - Sub-systems must share the
same repository data model - System evolution
is difficult - Fault-tolerance problem -
Different sub-systems may have different
requirements
Design editor
Code generator
Project repository
Program editor
Design translator
Design analyser
Report generator
5
Software Architecture
Software architecture is the hierarchical
structure of program components and their
interactions. Shaw and Garlan SHA95a describe
a set of properties of architecture design -
Structural properties The architecture design
defines the system components and their
interactions. - Extra-functional
properties The architecture design should
address how the design architecture
achieves requirements for performance, capacity,
reliability, adaptability, security. - Families
of related systems The architecture design
should draw upon repeatable patterns in the
design of families of similar systems. Figure
13.3.
6
Software Architecture
Different architectural design methods (Figure
13.3) - Structural models represent
architecture as an organized collection of
components. - Framework models increase the
level of design abstraction by identifying
repeatable architecture design frameworks
(patterns) - Dynamic models address the
behavior aspects of the program architecture -
Process models focus on the design of the
business or technical process - Functional
models can be used to represent the functional
hierarchy of a system
Fan-out
Control Hierarchy
Fan-in
7
Structural Partitioning
The program structure should be partitioned both
horizontally and vertically. (Figure 13.4) (1)
Horizontal partitioning defines separate branches
of the modular hierarchy for each major program
function. Simplest way is to partition a system
into input, data transformation (processing),
and output Advantages of horizontal
partition - easy to test, maintain, and
extend - fewer side effects in change
propagation or error propagation Disadvantage mo
re data to be passed across module
interfaces --gt complicate the overall control
of program flow (2) Vertical partitioning
suggests the control and work should be
distributed top-down in program
structure. Advantages good at dealing with
changes - easy to maintain the changes -
reduce the change impact and and propagation

8
Architectural Design - The Client-Server Model
The major components of this model - A set of
stand-alone servers which offer services to other
sub-systems. - A set of clients that call on the
services offered by servers. - A network which
allows the clients to access these services. The
most advantage distribution user access and
network-centered
Client 1
Client 2
Client 3
Client 4
Wide-bandwidth Network
Catalogue server Catalogue
Video server Film clip files
Picture server Digitized photographs
Hypertext server Hypertext web
9
Architectural Design - The Abstract Machine
Model
Abstract machine model (a layered model) - It
organizes a system into a series of layers each
of which provides a set of services. Each layer
defines an abstract machine. OSI model is a
typical example. It supports the incremental
development of systems. Pros changeable and
portable. Cons - Structuring system is
difficult. - Performance may be a problem
Version management
Object management
database management
OS
10
Architectural Design - The Control Model
Control model are concerned with the control flow
between sub-systems. Control models supplement
structural models. Two general approaches a)
centralized control and b) event-based control -
Event-based control - each sub-system can be
respond to externally generated events.
Main program
Sensor processes
Actuator processes
Routine 3
Routine 2
Routine 1
System controller
Routine 1.1
Routine 2.1
Routine 3.1
Fault handler
user interface
Computation processes
Call-return model of control
A centralized control model for a real-time system
11
Architectural Design - The Control Model
Control model are concerned with the control flow
between sub-systems. Control models supplement
structural models. Two general approaches a)
centralized control and b) event-based control -
Event-based control - each sub-system can be
respond to externally generated events.
Interrupt vector
Sub-system 1
Sub-system 2
Sub-system 3
Handler 1
Handler 2
Handler 3
Event and message handler
Process 1
Process 2
Process 3
A control model based on selective broadcasting
An interrupt-driven control model
12
Data Design
Guidelines for data design - Apply the
systematic analysis on data - data objects,
relationships, and data flow as well as
contents. - Identify all data structures and
related operations - Establish a data
dictionary - data objects and their
relationships as well as constraints - Defer the
low-level design decisions until late in the
design process - Use information hiding in the
design of data structures - A library of useful
data structures and operations - reusable data
objects - reusable data structure templates -
Use a software design and programming language to
support data specification and abstraction
Write a Comment
User Comments (0)
About PowerShow.com