软件工程-实践者的研究方法 (8)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
workers
24
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
17
An Architectural Design Method
1、垂直方向——功能分解——块 2、水平方向——服务分层——层
客户管理模块
表示层 业务逻辑层 数据存储层
订单管理模块
表示层 业务逻辑层 数据存储层
库存管理模块
表示层 业务逻辑层 数据存储层
18
An Architectural Design Method
Define Archetype
Cont roller communicat es wit h
Node
Det ect or
Indicat or
14
Component Structure
SafeHome Execut ive Funct ion select ion
Ext ernal Communicat ion Management
21
Partitioning the Architecture
“horizontal” and “vertical” partitioning are required
22
Vertical(垂直) Partitioning
define separate branches of the module hierarchy for each major function use control modules to coordinate communication between functions function 1 function 3
Securit y
Surveillance
Home management
GUI
Int ernet Int erface
Cont rol panel processing det ect or management alarm processing
15
Refined Component Structห้องสมุดไป่ตู้re
2
What Is Architecture?
The software architecture of a program or system is the structure of the system, which comprise software components, the external visible properties of those components, and the relationships among them.
Chapter 9
Architectural Design
Software Engineering: A Practitioner’s Approach, 7/e
by Roger S. Pressman
1
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) reduce the risks associated with the construction of the software. (3) representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system. (4) the architecture highlights early design decisions that will have an impact on all software engineering.
to establish a conceptual framework and vocabulary for use during the design of software architecture, to provide detailed guidelines for representing an architectural description
6
Data Flow Architecture
7
Call and Return Architecture
8
Layered Architecture
9
Architectural Descriptions-Example
分层技术架构
10
Architectural Descriptions-Example
notation: structure chart
26
Flow Characteristics
Transform flow(变换中心)
This edition of SEPA does not cover transaction mapping. For a detailed discussion see the SEPA website
16
ADL
Architectural description language (ADL) provides a semantics and syntax for describing a software architecture Provide the designer with the ability to:
Saf eHome E xecut ive
Ex t er nal Communicat ion Management
Securit y G UI Int ernet Int erf ace
Co n t ro l p an e l p ro ce ssin g d e t e ct o r m an ag e m e n t alarm p ro ce ssin g
Data-centered architectures Data flow architectures Call and return architectures Object-oriented architectures Layered architectures
5
Data-Centered Architecture
平台功能架构
11
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
The IEEE Standard defines an architectural description (AD) as a “a collection of products to document an architecture.”
4
Architectural Styles
A set of architectural archetypes(原型) should be identified
An archetype is an abstraction (similar to a class) that represents one element of system behavior
3
Architectural Descriptions
The IEEE Computer Society has proposed IEEE-Std-14712000, Recommended Practice for Architectural Description of Software-Intensive System, [IEE00]
Safehome Product Internet-based system
control panel
target system: Security Function uses
uses
surveillance f unction peers
homeow ner
uses
sensors
sensors
13
19
An Architectural Design Method
customer requirements
“four bedrooms, three baths,…”
architectural design
20
Deriving Program Architecture
Program Architecture
function 2
23
Horizontal(水平) Partitioning
design so that decision making and work are stratified(分层) decision making modules should reside at the top of the architecture decision-makers
The designer specifies the structure of the system by defining and refining(精炼) software components that implement each archetype
12
Architectural Context
25
Structured Design
objective: to derive a program architecture approach:
a DFD is mapped into a program architecture the PSPEC and STD are used to indicate the content of each module
Transaction Flow(事务中心)
27
General Mapping Approach
isolate incoming and outgoing flow boundaries; for transform/transaction flows, isolate the transform/transaction center working from the boundary outward, map DFD transform/transforms into corresponding modules add control modules as required
Ke y p ad p ro ce ssin g
sch e d u le r
phone co m m u n icat io n
CP d isp lay fu n ct io n s
alarm se n so r se n so se n so se n so rrr se n so se n so rr se n so r se so se nn so rr
decompose architectural components compose individual components into larger architectural blocks and represent interfaces (connection mechanisms) between components.