Title: Computing and SE II Chapter 7: Software Architecture Design
1Computing and SE IIChapter 7 Software
Architecture Design
- Er-Yu Ding
- Software Institute, NJU
2Main Contents
- Motivation of software architecture
- What is software architecture
- Architecture styles
- Architecture Design
31. Motivation of software architectureWhen
applications getting complex
- For an application based on 5 objects
- You can coding it directly and get a well product
- For an application based on 50 objects
- You should design it first and then building it
- For an application based on 500 objects
- Of course design is also needed
- But can you assure that assigning the objects
responsibilities well and integrating them into a
satisfied product with the help of design work?
41. Motivation of software architecture Size(
Complexity) really does matter!
51. Motivation of software architecture Forces
of Satisfied Software
Functionality
Cost
Compatibility
- When software getting complex
- Nonfunctional forces are very difficult to
achieve in traditional methods! - Because we cant see the global just with
intuition or analysis like before - We should control them before detail design
61. Motivation of software architecture The way
we building software
??????
??????
- ??
- ??
- ?????
- ?????
- ????
- ??
Where we used before
Mary Shaw, 1989 Larger Scale Systems Require
Higher-Level Abstractions --Organizing systems on
the sub-system and module level --The software
architecture level of design
72. What is software architectureDefinition of
SW Architecture
- The SW architecture of a program or computing
system is the structure or structures of the
system, which comprise SW components, the
externally visible properties of those
components, and the relationships among them
82. What is software architecture An Example
92. What is software architecture Another
Example
102. What is software architecture 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.
112. What is software architecture 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. - Architecture constitutes a relatively small,
intellectually graspable model of how the system
is structured and how its components work
together BAS03.
123. Architectural Styles
- Each style describes a system category that
encompasses - a set of components (e.g., a database,
computational modules) that perform a function
required by a system, - a set of connectors that enable communication,
coordination and cooperation among components, - constraints that define how components can be
integrated to form the system, - semantic models that enable a designer to
understand the overall properties of a system by
analyzing the known properties of its constituent
parts.
- Data-centered architectures
- Data flow architectures
- Call and return architectures
- Object-oriented architectures
- Layered architectures
133. Architectural StylesData-Centered
Architecture
143. Architectural Styles Data Flow Architecture
153. Architectural Styles Call and Return
Architecture
163. Architecture Styles Object-Oriented Style
173. Architectural Styles Layered Architecture
184. Architecture Design Architectural Patterns
- Concurrencyapplications must handle multiple
tasks in a manner that simulates parallelism - operating system process management pattern
- task scheduler pattern
- PersistenceData 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. - Middleware platform can hide the distribution
problem
194. Architecture Design Organization and
Refinement
- Control
- Procedure calls (local or remote)
- Events
- Messages and message buses
- Client/server middleware
- Delegate, Adapter
- Data
- Shared Data
- Pipes
- Messages and message buses
204. Architecture Design 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
214. Architecture Design Architectural Context
224. Architecture Design Archetypes
234. Architecture Design Component Structure
244. Architecture Design Refined Component
Structure
254. Architecture Design Analyzing
Architectural Design
1. Collect scenarios. 2. Elicit requirements,
constraints, and environment description. 3.
Describe the architectural styles/patterns that
have been chosen to address the scenarios and
requirements module view process view
data flow view 4. Evaluate quality attributes by
considered each attribute in isolation. 5.
Identify the sensitivity of quality attributes to
various architectural attributes for a specific
architectural style. 6. Critique candidate
architectures (developed in step 3) using the
sensitivity analysis conducted in step 5.
26The End
- Next Lecture
- Component Design