Вы находитесь на странице: 1из 21

Chapter 10

Architectural Design
- Introduction
- Data design
- Software architectural styles

(Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005)


Introduction
Definitions
• The software architecture of a program or computing system is the structure or
structures of the system which comprise
– The software components
– The externally visible properties of those components(internal properties are not
specified)
– The relationships among the components(simple as procedure call or complex as
database access)

• Software architectural design represents the structure of the data and program
components that are required to build a computer-based system

• An architectural design model is transferable


– It can be applied to the design of other systems
– It represents a set of abstractions that enable software engineers to describe
architecture in predictable ways
3
Architectural Design Process
• Basic Steps
– Creation of the data design
– Derivation of one or more representations of the architectural structure of the
system
– Analysis of alternative architectural styles to choose the one best suited to
customer requirements and quality attributes
– Elaboration of the architecture based on the selected architectural style.

• A database designer creates the data architecture for a system to represent the
data components.

• A system architect selects an appropriate architectural style derived during


system engineering and software requirements analysis

4
Emphasis on Software
Components
• A software architecture is not an operational s/w.

• A software architecture enables a software engineer to


– Analyze the effectiveness of the design in meeting its stated requirements
– Consider architectural alternatives at a stage when making design changes
is still relatively easy
– Reduce the risks associated with the construction of the software
• Focus is placed on the software component
– A program module
– An object-oriented class
– A database
– Middleware

Architecture and Design


• Design is an instance of an Architecture.
5
Importance of Software
Architecture
• Representations of software architecture are an enabler for
communication between all stakeholders interested in the development
of a computer-based system.
• The software 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.
• The software architecture constitutes a relatively small, intellectually
graspable model of how the system is structured and how its
components work together

6
Architectural Descriptions

 Word Architecture means - different things to different people.

 Architectural Descriptions is actually a set of work products that reflect


different view of the system.
The IEEE Standard defines an architectural description
(AD) as a “a collection of products to document an
architecture.”
The description itself is represented using multiple views, where
each view is “a representation of a whole system from the
perspective of a related set of [stakeholder] concerns.”

Architectural Decisions
One view of the architecture.

7
Example Software Architecture Diagrams

8
Architectural Genres

• Genre implies a specific category within the overall software domain.

• Within each category, you encounter a number of subcategories.

• For example, within the genre of buildings, you would encounter the
following general styles: houses, apartment buildings, office buildings, industrial
building, warehouses, and so on.
1. Artificial intelligence
2. Commercial and nonprofit
3. Communication
4. Content authoring
5. Devices
6. Financial
7. Games
8. Goverment
9
9. Industrial

10. Legal

11.Medical

12. Military

13. Medical

14.Os

15.Platforms

16. Scientific

17.Tools

18.Transportation.

19.Utilities

20.Entertainment and sports 10


Software Architectural Styles
Common Architectural Styles
of American Homes

12
Common Architectural Styles
of American Homes
A-Frame Four square Ranch

Bungalow Georgian Split level

Cape Cod Greek Revival Tidewater

Colonial Prairie Style Tudor

Federal Pueblo Victorian


13
Software Architectural Style
• The software that is built for computer-based systems exhibit one of
many architectural styles
• Each style describes a system category that encompasses:
(1) a set of components (e.g., a database, computational
modules) that perform a function required by a system,
(2) a set of connectors that enable “communication, coordination
and cooperation” among components,
(3) constraints that define how components can be integrated to
form the system, and
(4) semantic models that enable a designer to understand the
overall properties of a system by analyzing the known properties
of its constituent parts.

14
(Source: Bass, Clements, and Kazman. Software Architecture in Practice. Addison-Wesley, 2003)
Pattern differs from architecture
1. The scope of a pattern is less broad, focusing on one aspect of
the architecture.
2. Pattern imposes a rule on architecture(eg: concurrency)
3. Pattern tend to address specific behavioral issues within the
context of architecture.(eg. How real-time application handle
synchronization or interrupt.)

• Data-centered architectures
• Data flow architectures
• Call and return architectures
• Object-oriented architectures
• Layered architectures

15
Data-Centered Architecture

16
Data Flow Architecture

17
Call and Return
Architecture

18
Layered Architecture

19
• Object-oriented architectures

• Components of a system encapsulate data and the operation that must be


applied to manipulate the data.

•Communication between components are accomplished via message


passing

20
Architectural Patterns
• Concurrency—applications must handle multiple tasks in a manner
that simulates parallelism
– operating system process management pattern
– task scheduler pattern
• Persistence—Data persists if it survives past the execution of the
process that created it. Two patterns are common:
– a database management system pattern that applies the storage
and retrieval capability of a DBMS to the application architecture
– an application level persistence pattern that builds persistence
features into the application architecture
• Distribution— the manner in which systems or components within
systems communicate with one another in a distributed environment
– A broker acts as a ‘middle-man’ between the client component
and a server component.

21

Вам также может понравиться