第3章软件体系结构风格
- 格式:ppt
- 大小:1.48 MB
- 文档页数:103


第 1 页 共 7 页
软件体系结构风格研究
[摘 要] 本文对几种经典的软件体系结构风格进行了具体的阐述,分析了各种风格的特点、优缺点,最后重点介绍了三层C/S软件体系结构。
[关键词] 软件体系结构 软件体系结构风格 三层C/S软件体系结构
20世纪60年代中期的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构显得越来越重要。
一、软件体系结构风格分析
最初的软件体系结构是Mainframe结构客户、数据和程序都被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Internet的发展,一个更灵活的体系结构“三层/多层计算”体系结构应运而生。
Garlan和Shaw将通用软件体系结构风格总结为以下几类:
1.数据流风格:批处理序列;管道/过滤器。2.调用/返回风格:
第 2 页 共 7 页 主程序/子程序;面向对象风格;层次结构。3.独立构件风格:进程通讯;事件系统。4.虚拟机风格:解释器;基于规则的系统。5.仓库风格:数据库系统;超文本系统;黑板系统。
下面将介绍几种主要和经典的体系结构风格和它们的优缺点。
1.C2风格。C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。图1中构件与连接件之间的连接体现了C2风格中构建系统的规则。
C2风格是最常用的一种软件体系结构风格。从C2风格的组织规则和结构图中,我们可以得出,C2风格具有以下特点:
(1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;(2)所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的;(3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。
第三章 系统概要设计中的架构设计
系统分析的目的就是把需求转换为系统的设计,分析与设计是一个前后相互关联的过程。通过对本章内容的学习,读者将被引入软件开发的设计阶段。软件系统的设计一般分为概要设训和详细设计,概要设计中最重要的工作是系统的架构设计。
从软件系统的开发实现角度来看,系统的架构设计主要可以分为逻辑架构设计与物理架构设计两个紧密相关的设计内容。系统的逻辑架构设计结果定义了应用系统中的基本逻辑组成元素,以及这些逻辑元素之间的关系,这在UML中主要通过架构包图来表示;系统的物理架构设计主要关注“目标程序及其依赖的运行库和系统软件”如何安装或部署到客户最终环境的物理主机中.以及如何部署主机(如各种形式的服务器主机)和网络配置来保证软件系统的可靠性、可伸缩性和稳定运行性等方面的要求.这主要通过UML中的部署图来表示。
在系统的架构设计中,应尽可能地分析清楚系统中哪些逻辑元素是稳定的需求,哪些是经常变化的需求。以便在进行系统设计时,能够将软件系统的核心部分建立在稳定的需求上。本章主要介绍系统概要设计中与“架构设计”有关的内容,并通过州上商城项目中系统架构设计的示例来阐述与架构设计有关的思想、原则和方法以及模式的具体应用。
3.1 概要设计
3.1.1 软件系统设计概述
1.软件系统设计概述
(1)什么是系统设计?
系统设计就是通过某种特定的平台,完成软件系统的整体功能(也就是把软件需求转变为软件的具体方案)的实现。从工程管理的角度来看,软件设计分为如下两个阶段:概要设计和详细设计。
图3.1为概要设计和详细设计的具体工作内容。
图3. l概要设计和详细设计的具体工作内容
概要设计的工作重点在于进行系统的静态结构或者高层架构设汁;详细设计的工作重点在于系统的用户界面、动态结构设计以及测试计划的制定等。
(2)系统的概要设计。
将软件系统的功能性需求和非功能性需求转化为数据结构和软件的系统结构,并合理地设计和规划出组成软件系统的物理元素:程序、数据库、过程、文件等内容。分析设计人员可以利用UML中的包图来建立和体现软件系统的体系架构。图3.2所示为某图书馆管理系统项目中的架构包图。
各种性能指标及如何到达各种性能指标的方法
答
Performance: Throughput, Response Time, Dealines
性能:吞吐量、响应时间、Deadlines
Is required Throughput:
Average
Peak
Is required Response Time:
Guaranteed
Average
实现吞吐量:Peak & Average
实现响应时间: Guaranteed & Average
常用的中间件有那几种类型
答:
CORBA (Common Object Request Broker Architecture)
Message-oriented middleware
J2EE
Message brokers
Business process orchestrators
(1)常见的对象请求代理架构
(2)面向消息的中间件
(3)Java2 Enterprise Edition(Java2的企业版)
(4)消息代理
(5)业务过程代理
有那些常见架构风格
见后题
架构师需要的核心技能是什么
答
Many responsibilities:
Liaison with stakeholders
Technology knowledge
Software engineering
Risk managements
(1)涉众之间的交流
(2)技术知识
(3)软件工程学
(4)风险管理
什么是软件架构
答:
【课件答案】
It’s about software design
All architecture is software design, but not all design is software architecture
Part of the design process Simply, architecture focuses on ‘issues that will be difficult/impossible to change once
软件体系结构课程报告
一、简答题: (每题10分,共40分)
1.简述软件体系结构建模中“4+1”视图模型,并举一示例模型。
答:4+1视图模型从5个不同视角(逻辑视图,进程视图,物理视图,开发视图和场景视图)来描述软件体系结构.每一个视图只关心系统的侧面,5个视图结合在一起才能反映系统的软件体系结构的全部内容.
最终用户:功能需求 编程人员:软件管理
系统集成人员:性能可扩充性,吞吐量等. 系统工程人员:系统拓扑,安装通信等.
举例:开发视图.
开发视图也称为模块视图,主要侧重于软件模块的组织和管理.软件可通过程序库或子系统进行组织,这样,对于一个软件系统,就可以由不同的人进行开发.开发视图要考虑软件内部的需求,如软件开发的容易性,软件的重用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性.开发视图通过系统输入输出关系的模型图和子系统图来描述.层次结构风格. 各种各样的空中交通管制系统 5 人机接口 离线工具
外部系统 测试工具
特定的空中交通管理系统构件 4
空中交通管制功能区:飞行管理,雷达管理等
空中交通管制系统框架 3
航空类,空中交通管理类
分布式虚拟机 2 支撑机制:通信,时间,存储,资源管理等
基本元素 1 公用构件 底层服务 逻辑视图 开发视图
进程视图 物理视图 场景视图 2. 简述层次体系结构风格及其特点,并举一示例。
答:层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户.连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束.这种风格支持基于可增加抽象层的设计.这样,允许将一个复杂问题分解成一个增量步骤序列的实现.由于每一层最多只影响两层,同时只要给相邻层提供相同接口,允许每一层用不同的方法实现,同样为软件重用提供了强大的支持.分层同用协议.