1、第一章 软件体系结构概论1 什么是软件危机?主要特点、表现形式、策略软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题软件危机的表现形式:1) 软件成本的日益增长:相反,计算机硬件随着技术的进步、生产规模的扩大,价格却在不断的下降,这样一来,软件成本在计算机中占有的比例越来越大2) 开发进度难以控制:用户需求变化等各种意想不到的情况层出不穷,常常令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来很大的困难3) 软件质量差4) 软件维护困难软件危机的成因:1 用户需求不明确 2 缺乏正确的理论指导3 软件规模越来越大 4 软件复杂度越来越高 如何克服软件危机(策略)
2、:用工程的方法进行软件生产的可能性,即应用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理和维护软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。软件工程包括三要素:方法、工具和过程2 软件构件的概念构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。简单地说,构件是具有一定功能,能够独立工作或能同其他构件装配起来协调工作的程序体,构件的使用同它的开发、生产无关。构件模型是对构件本质特征的抽象描述3 构件重用的概念构件开发的目的是重用,为了让构件在新的软件项目中发挥作
3、用,库的使用者必须完成以下工作:检索与提取构件,理解与评价构件,修改构件,最后将构件组装到新的软件产品中4 软件重用的定义 软件重用是指在两次或多次不同的软件开发过程中,重复使用相同或相近软件元素的过程。软件元素(即软构件)包括:程序代码、测试用例、设计文档、设计过程、需求分析文档、领域知识等。5 管理重用的方法(列举,不用扩展)有效进行软件重用的业界经验总结(1)关注特定领域的软件资源 (2 )正确命名软件资源(3 )慎重考虑是否具备重用的必要(4 )迭代演进可重用的资源(5 )保持一致性要比遵循行业标准更重要(6 )进行代码审查(7 )没有自动化的回归测试套件,就不要发布可重用的软件资源(
4、8 )理解业务需求之后再去说服别人(9 )尽可能与开发团队一起创建可重用的软件资产(10 )从生产支持人员那里获取可重用资源的需求6 软件体系结构的概念概念:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅定义了系统的组织结构和拓扑结构,并且显示系统需求和构成系统元素之间的对应关系,提供了一些涉及决策的基本原理。7 软件体系结构核心研究内容,包含的含义,具体构架,模式和框架软件体系结构的意义:1 体系结构是风险承担者进行交流的手段2 体系结构是早期设计决策的体现3 软件体系结构是可
5、传递和可重用的模型软件体系结构研究的内容:1 结构性问题 2 系统的组织,由哪些组件构成 3 全局性的控制结构 4 通讯、同步或访问的协议 5 将功能分配到不同的系统组成部分 6 设计元素的组成 7系统的物理分布 8 可扩展性、性能软件体系结构的主要内容:1) 对系统组成元素的描述2) 这些元素相互之间的交互3) 系统组成的模式4) 模式的约束软件体系结构的研究领域 1 通过提供一种新的体系结构描述语言解决体系结构描述问题。2 体系结构领域知识的总结性研究。3 针对特定领域的框架的研究。4 软件体系结构形式化支持的研究。软件体系结构的核心研究内容: 1 体系结构风格2 设计模式3 应用框架体系
6、结构风格:1 体系结构风格是描述特定系统组织方式的惯用范例,强调组织模式和惯用范例。2 组织模式即静态表述的样例,惯用范例是反映众多系统共有的结构和语义。3 体系结构风格独立于实际问题,强调软件系统中通用的组织结构。设计模式:1 设计模式是软件问题高效和成熟的设计模板,模板包含了固有问题的解决方案。2 设计模式可以看成规范了的小粒度的结构成分,独立于编程语言或编程范例。3 每个模式处理系统设计或实现中一种特殊的重复出现的问题。应用框架 :1 应用框架是整个或部分系统的可重用设计,表现为一组抽象构件的集合以及构件实例间交互的方法。2 一个框架是一个可重用的设计构件,它规定了应用的体系结构,协作构
7、件之间的关系,为构件复用提供上下文关系 第二章 软件体系结构建模1 体系结构进行模型构建的五大类:1 结构模型这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质等。 研究结构模型的核心是体系结构描述语言2 框架模型框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。 3 动态模型动态模型是对结构或框架模型的补充,研究系统的“大颗粒 ”的行为。例如,描述系统的重新配置或演化。动态可以指系统
8、总体结构的配置、建立或拆除通信通道或计算的过程。4 过程模型过程模型研究构造系统的步骤和过程。结构是遵循某些过程脚本的结果5 功能模型 功能模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。功能模型可以看作是一种特殊的框架模型。2 4+1 视图“4+1”视图模型从 5 个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5 个视图结合在一起才能反映系统的软件体系结构的全部内容。 3 软件体系结构核心模型(1 )构件:计算或存储数据单元,包含多种属性,如接口、类型、语义、约束、演化和非功能属性等。(2 )连接件:建立构
9、件间的交互以及支配这些交互规则的体系结构构造模块。(3 )体系结构配置:描述体系结构的构件和连接件的连接图。用于确定构件是否正确连接、接口是否匹配、连接件构成的通信是否正确,并说明实现要求行为的组合语义。第三章 软件体系结构的风格1 什么是软件体系结构的风格:软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。核心要素:软件体系结构风格定义的主要内涵: 定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。 词汇表中包含一些构件和连接件类型。 约束指出系统是如何将这些构件和连接件组合起来的。 (1)提供一个词汇表; (2)定义一套配置规则; (3)定义一套语义解释原则; (4
10、)定义对基于这种风格的系统所进行的分析。2 经典的软件体系结构风格1 管道 /过滤风格 2 数据抽象和面向对象组织 3 基于事件的隐式调用 4 分层系统 5 仓库系统及知识库 6 C2 风格 3 客户 /服务器风格 4 浏览器/服务器风格5 异构结构的实例(优缺组成)1) “内外有别”模型在 C/S 与 B/S 混合软件体系结构的“内外有别”模型中,企业内部用户通过局域网直接访问数据库服务器,软件系统采用 C/S 体系结构;企业外部用户通过 Internet 访问 Web 服务器,通过 Web 服务器再访问数据库服务器,软件系统采用 B/S 体系结构。优点:外部用户不能直接访问数据库服务器,能
11、保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。缺点:企业外部用户修改和维护数据时,速度较慢,较繁琐,数据的动态交互性不强。2 ) “查改有别”模型在 C/S 和 B/S 混合软件体系结构的“查改有别”模型中,不管用户是通过什么方式(局域网或 Internet)连接到系统,凡是需执行维护和修改数据操作的,就使用 C/S 体系结构;如果只是执行一般的查询和浏览操作,则使用 B/S 体系结构。特点:体现了 B/S 体系结构和 C/S 体系结构的共同优点。但因为外部用户能直接通过Internet 连接到数据库服务器,企业数据容易暴露给外部用户,给数据安全造成了一定的
12、威胁。第五章 特定领域的体系结构1 什么是特定领域软件体系结构?特定领域软件体系结构(domain specific software architecture) ,简称 DSSA。 DSSA 就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构。2 基本活动的划分第一阶段:领域分析这个阶段的主要目标是获得领域模型(Domain Model) 。领域模型描述领域中系统之间的共同需求,并尽可能得识别和描述领域变化性。准备性的活动包括:(1 )定义领域的边界(2 )识别信息源第二阶段:领域设计这个阶段的目标是获得领域架构(Domain Specific Software Archi
13、tecture,即 DSSA) 。DSSA 的特点:(1 ) DSSA 不是单个系统的表示,而是能够适应领域中多个系统需求的一个高层次的设计。(2 ) DSSA 要适当的具有变化性。第三阶段:领域实现这个阶段的主要目标是依据领域模型和 DSSA 开发和组织可重用信息。这些可重用信息可能是从现有系统中提取得到的,也可能需要通过新的开发得到,它们依据领域模型和 DSSA 进行组织,从而支持了系统化的软件重用。3 DSSA 的建立过程 (1 )定义领域范围(2 )定义领域特定的元素 (3 )定义领域特定的设计和实现需求约束 (4 )定义领域模型和体系结构 (5 )产生、搜集可重用的产品单元以上这些过
14、程是一个反复的、逐步求精的过程。 4 DSSA 和体系结构风格的比较 1 DSSA 以问题域为出发点,体系结构风格以解决域为出发点。2 DSSA 只对某一个领域进行设计专家知识的提取、存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个应用领域3 DSSA 通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。4 体系结构风格的定义和该风格应用的领域是直交的,提取的设计知识比用 DSSA 提取的设计专家知识的应用范围要广。 5 DSSA 和体系结构风格是互为补充的两种技
15、术第六章 软件体系结构描述的概念1 软件体系结构描述的概念软件体系结构和软件体系结构描述不同的两个概念1)软件体系结构是附属于系统之中。只要存在系统,体系结构就存在 如:每个石头都会有重量2) 软件体系结构描述是将体系结构可视化的手段和产物 如:表示一个石头的重量2 描述方法的种类 1 图形表达工具 2 模块内连接语言 3 基于软构件的系统描述语言 4 软件体系结构描述语言 3 基于软构件的系统描述语言这种表达和描述方式虽然也是较好的一种以构件为单位的软件系统描述方法,但是他们所面向和针对的系统元素仍然是一些层次较低的以程序设计为基础的通信协作软件实体单元,而且这些语言所描述和表达的系统一般而
16、言都是面向特定应用的特殊系统,这些特性使得基于软构件的系统描述仍然不是十分适合软件体系结构的描述和表达。4 核心要素:ADL 是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。其三个基本元素是:构件、连接件、体系结构配置。构件:计算或数据存储单元 连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则 体系结构配置:描述体系结构的构件与连接件的连接图。 (体系结构建模 UML)第七章 软件体系结构的分析和评估1 分析、评估的原因和概念一些软件体系结构的评估方法已经比较成熟并得到了
17、应用和验证,如基于场景的软件体系结构分析方法(SAAM) 、软件体系结构权衡分析方法(ATAM) 、利用软件性能工程 SPE 对软件体系结构进行评估的方法(PASA) ,软件体系结构层次可维护性预测方法(ALMA)等。软件体系结构的分析评估,就是通过成本相对较低的活动来分析结构中可能存在的风险,发现软件体系结构中影响系统质量的关键因素,并提出相应的改进措施,在此基础上检验软件的性能需求是否得到满足。2 9 个质量属性 (基本含义 ,标准,方法)1 性能 性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件的个数。2 可靠性可靠性是软件系统在应用或系
18、统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。1) 容错在错误发生时确保系统正确的行为,并进行内部“修复”。2)健壮性保护系统应用程序不受错误或意外事件的影响,确保系统处于已经定义好的状态。3 可用性可用性是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。4 安全性安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性是根据系统可能受到的安全威胁的类型来分类的。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。5 可修改性1 可维护性 2 可扩展性3 结构重组 4 可移植性
19、6 功能性功能性是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。 7 可变性可变性是指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品(例如,软件产品线)的基础时,可变性是很重要的。8 集成性可集成性是指系统能与其他系统协作的程度。 9 互操作性作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。3 评估的基本方式(SAAM 和 ATM 比较,优
20、缺点)1) SAAM 法是把一个物体最丰要的属性列举出来,再用检查表法把各个项目加以变化,并将其加以重新组合,然后再找出其中可以实行而且也有效果的项目。实质上是将列举法和检查表法互相配合使用。在使用检查表法的时候,我们会发现被检查的事物范围太大了。如用“替换”来变更设计时,是变更哪一部分的设计就没有具体确定。 SAAM 方法在改良事物性质的方面具有极大的功效。 SAAM 方法是第 1 个被广泛接受的体系结构分析评价方法。 它适用于可修改性、可拓展性以及功能覆盖等质量属性。 SAAM 方法有着以下缺陷:没有提供体系结构质量属性的清晰的度量。评估过程依赖专家经验等,只适合对体系结构的粗糙评价。2)
21、 ATAM 是评价软件构架的一种综合全面的方法,它考虑了可修改性、可靠性和安全性等多种质量属性。 不仅可以揭示出构架满足特定质量目标的情况,而且可以使我们更清楚地认识到质量目标之间的联系即如何权衡诸多质量目标。ATAM 方法的分析评价是一个迭代过程。 包括 4 个阶段:准备调查和分析测试报告ATAM 方法是被验证有效和广泛使用的一种方法,可以针对实用性、可靠性和可修改性这些质量属性,在系统开发之前对其进行分析和评价。 在评估活动结束以后,将评估的结果与实际需求相对比,如果系统预期性能可以满足需求,设计工作就可以继续进行。 但它对质量属性并没有进行深入分析,缺少定量的数据来支持分析的结果。4.主要方式(三种)基于调查问卷或检查表的评估方式;基于场景的评估方式;基于度量的评估方式PS:1) 层次系统结构和基于消息的层次系统结构有什么区别?2) 试分析和比较 B/S,二层 C/S 和三层 C/S,指出各自的优点和缺点3) SIS 和 DSSA 分别用在哪种场合?4) 文字描述概念;设计 模型的构建,设计软件体系结构1. 名词解释 20 分2. 问答题 25 或 20 分3. 设计类-设计建模(55 或 60 分)