Computing and SE II Chapter 7: Software Architecture Design - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Computing and SE II Chapter 7: Software Architecture Design

Description:

Title: 2. Architecture Design ---When applications getting complex Last modified by: Dong Shao Document presentation format: – PowerPoint PPT presentation

Number of Views:230
Avg rating:3.0/5.0
Slides: 27
Provided by: software68
Category:

less

Transcript and Presenter's Notes

Title: Computing and SE II Chapter 7: Software Architecture Design


1
Computing and SE IIChapter 7 Software
Architecture Design
  • Er-Yu Ding
  • Software Institute, NJU

2
Main Contents
  1. Motivation of software architecture
  2. What is software architecture
  3. Architecture styles
  4. Architecture Design

3
1. 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?

4
1. Motivation of software architecture Size(
Complexity) really does matter!
5
1. 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

6
1. 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
7
2. 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

8
2. What is software architecture An Example
9
2. What is software architecture Another
Example
10
2. 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.
11
2. 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.

12
3. 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

13
3. Architectural StylesData-Centered
Architecture
14
3. Architectural Styles Data Flow Architecture
15
3. Architectural Styles Call and Return
Architecture
16
3. Architecture Styles Object-Oriented Style
17
3. Architectural Styles Layered Architecture
18
4. 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

19
4. 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

20
4. 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

21
4. Architecture Design Architectural Context
22
4. Architecture Design Archetypes
23
4. Architecture Design Component Structure
24
4. Architecture Design Refined Component
Structure
25
4. 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.
26
The End
  • Next Lecture
  • Component Design
Write a Comment
User Comments (0)
About PowerShow.com