软件体系结构第一讲_第1页
软件体系结构第一讲_第2页
软件体系结构第一讲_第3页
软件体系结构第一讲_第4页
软件体系结构第一讲_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1软件体系结构软件体系结构 江江 贺贺2课程简介课程简介l期末总评期末总评 = 考试成绩考试成绩70%+报告报告30%3参考书目参考书目l冯冲冯冲 江贺等江贺等 软件体系结构软件体系结构理论与实践理论与实践.人民邮电人民邮电出版社出版社l张友生张友生.软件体系结构软件体系结构.清华大学出版社清华大学出版社4软件体系结构软件体系结构 第第 1 讲:讲: 软件体系结构的引入软件体系结构的引入江贺江贺5内容摘要内容摘要l缘起l基于软件体系结构的开发l软件体系结构的发展阶段l软件体系结构定义l软件体系结构的主要研究内容l软件体系结构的意义6缘起缘起l软件开发过程问题问题定义定义需求需求分析分析软件软件

2、设计设计软件软件编码编码软件软件测试测试维护维护升级升级用户用户系统分析员系统分析员程序员程序员测试人员测试人员用服人员用服人员7缘起缘起l系统分析员系统分析员是连接用户与程序开发人员的纽带,在软件开发过程中起着关键性作用。责任大:责任大:软件系统的成功是所有人员的功能,但是一软件系统的成功是所有人员的功能,但是一个软件的失败往往是系统分析员的错误。个软件的失败往往是系统分析员的错误。薪水高:薪水高:系统分析员的收入通常是程序员的系统分析员的收入通常是程序员的25倍。倍。要求高:要求高:系统分析员必须具备良好的沟通能力、极强系统分析员必须具备良好的沟通能力、极强的概括能力、对于技术的把握能力。

3、的概括能力、对于技术的把握能力。8缘起缘起l系统分析员面临的困境交流的困难:交流的困难:用户、软件开发人员、系统分析员之间。软件复用的困难:软件复用的困难:大量的重复劳动,现有经验的积累难以直接改进新的系统设计。软件系统升级、维护的困难:软件系统升级、维护的困难:6080%的软件开发成本是在软件初次投入以后产生的。9缘起缘起l解决之道软件体系结构它是为了解决软件危机而应运而生。它是为了解决软件危机而应运而生。它是软件工程学科的新分支,是一门初露端倪的它是软件工程学科的新分支,是一门初露端倪的新学科。新学科。它是现有的各种经验知识的累积。它是现有的各种经验知识的累积。它的发展史就是软件的发展史,

4、是循序渐进的。它的发展史就是软件的发展史,是循序渐进的。10缘起缘起l新的软件开发过程问题问题定义定义需求需求分析分析软件软件设计设计软件软件编码编码软件软件测试测试维护维护升级升级体系结体系结构设计构设计11基于软件体系结构的开发基于软件体系结构的开发需求分析需求分析体系结构的非体系结构的非形式化描述形式化描述体系结构的规范体系结构的规范描述描述求精否?求精否?体系结构的求精体系结构的求精yes体系结构的验证体系结构的验证no体系结构的实施体系结构的实施演化否?演化否?体系结构的终结体系结构的终结体系结构的提供、体系结构的提供、评价及度量评价及度量no体系结构的体系结构的性质分析性质分析ye

5、s体系结构的演化体系结构的演化软件升级软件升级软件设计软件设计软件编码软件编码软件测试软件测试12基于软件体系结构的开发基于软件体系结构的开发l软件体系结构的生命周期体系结构的非形式化描述体系结构的非形式化描述体系结构的规范描述和分析体系结构的规范描述和分析体系结构的求精及其验证体系结构的求精及其验证体系结构的实施体系结构的实施体系结构的演化和扩展体系结构的演化和扩展体系结构的提供、评价和度量体系结构的提供、评价和度量体系机构的终结体系机构的终结13基于软件体系结构的开发基于软件体系结构的开发l生命周期之一:体系结构的非形式化描述体系结构的非形式化描述通常使用自然语言描述概念和原则通常使用自然

6、语言描述概念和原则该阶段是创造性和开拓性的该阶段是创造性和开拓性的需要与软件用户进行不断的交互需要与软件用户进行不断的交互14基于软件体系结构的开发基于软件体系结构的开发l生命周期之二:体系结构的规范描述和分析体系结构的规范描述和分析运用合适的形式化理论对上一阶段的非形式化描运用合适的形式化理论对上一阶段的非形式化描述进行规范定义述进行规范定义要求做到:无歧义、无死锁、安全性、灵活性等要求做到:无歧义、无死锁、安全性、灵活性等15基于软件体系结构的开发基于软件体系结构的开发l生命周期之三:体系结构的求精及其验证体系结构的求精及其验证大型复杂软件的体系结构设计总是从抽象到具体大型复杂软件的体系结

7、构设计总是从抽象到具体的过程,需要逐步细化、求精的过程,需要逐步细化、求精求精过程中需要不断的验证,以判断所得具体体求精过程中需要不断的验证,以判断所得具体体系结构与求精前的体系结构是否语义一致系结构与求精前的体系结构是否语义一致16基于软件体系结构的开发基于软件体系结构的开发l生命周期之四:体系结构的实施体系结构的实施将求精后的体系结构用于系统的设计中,将软件将求精后的体系结构用于系统的设计中,将软件中的构件(中的构件(component)与连接件)与连接件(connector)有有机组合,获得系统设计的总体框架。机组合,获得系统设计的总体框架。17基于软件体系结构的开发基于软件体系结构的开

8、发l生命周期之五:体系结构的演化和扩展体系结构的演化和扩展软件在使用过程中,用户可能提出新的非功能性软件在使用过程中,用户可能提出新的非功能性需求,如性能、容错、安全性、互操作性、自适需求,如性能、容错、安全性、互操作性、自适应性等。应性等。由于软件的需求的增加和改变而导致的软件体系由于软件的需求的增加和改变而导致的软件体系结构的改动,称为演化和扩展。结构的改动,称为演化和扩展。18基于软件体系结构的开发基于软件体系结构的开发l生命周期之六:体系结构的提供、评价和度量体系结构的提供、评价和度量在软件体系结构用于系统设计之后,根据系统实际在软件体系结构用于系统设计之后,根据系统实际的运行情况,对

9、软件体系结构展开的定性评价和定的运行情况,对软件体系结构展开的定性评价和定量的度量,有利于软件体系结构的重用(包括设计量的度量,有利于软件体系结构的重用(包括设计重用和构件重用)和知识积累。重用和构件重用)和知识积累。19基于软件体系结构的开发基于软件体系结构的开发l生命周期之七:体系机构的终结体系机构的终结经过多次演化和修改后的体系结构,容易变得难经过多次演化和修改后的体系结构,容易变得难以维护和理解,难以达到系统设计的要求,此时以维护和理解,难以达到系统设计的要求,此时该体系结构就应该被抛弃,重新构造新的体系结该体系结构就应该被抛弃,重新构造新的体系结构,这一过程称为构,这一过程称为 。2

10、0软件体系结构的发展阶段软件体系结构的发展阶段l“无体系结构”设计阶段l萌芽阶段l初级阶段l高级阶段21软件体系结构的发展阶段软件体系结构的发展阶段l“无体系结构”设计阶段( 1946年年ENIAC计算计算机问世机问世ALGOL68诞生前诞生前)软件开发以汇编语言为主,编程是少数软件开发以汇编语言为主,编程是少数“科学家科学家”的游戏的游戏软件应用以军用和科学计算为主软件应用以军用和科学计算为主软件规模小,很少明确考虑系统结构软件规模小,很少明确考虑系统结构22软件体系结构的发展阶段软件体系结构的发展阶段l萌芽阶段(19701980年)提出了结构化编程的思想提出了结构化编程的思想“软件工程软件

11、工程” 的思想被广泛应用的思想被广泛应用出现了一批结构化程序设计语言,包括出现了一批结构化程序设计语言,包括PASCAL、Ada 语言等语言等软件体系结构已经成为系统开发中的一个明确概念软件体系结构已经成为系统开发中的一个明确概念23软件体系结构的发展阶段软件体系结构的发展阶段l萌芽阶段优点:优点:软件应用走向商用、民用软件应用走向商用、民用软件规模达到数万行、数十万行软件规模达到数万行、数十万行软件开发成为一种职业,诞生了程序员这一群体软件开发成为一种职业,诞生了程序员这一群体24软件体系结构的发展阶段软件体系结构的发展阶段l萌芽阶段困境:困境:硬件像一匹越来越快的马,而软件则是一个越来越硬

12、件像一匹越来越快的马,而软件则是一个越来越胖的人,硬件与软件之间的鸿沟依然存在,且愈发胖的人,硬件与软件之间的鸿沟依然存在,且愈发严重严重软件规模扩大导致软件质量的下降软件规模扩大导致软件质量的下降大量的重复劳动,软件重用任重道远大量的重复劳动,软件重用任重道远25软件体系结构的发展阶段软件体系结构的发展阶段l初级阶段(80年代初90年代初)面向对象技术的提出,出现数十种支持软件开发的面向对象技术的提出,出现数十种支持软件开发的面向对象方法,如面向对象方法,如Booch, Coad/Yourdon, OMT, Jacobson等等各种面向对象语言如各种面向对象语言如C+的出现。的出现。软件以对

13、象作为基本元素,系统由离散的对象构成软件以对象作为基本元素,系统由离散的对象构成统一建模语言统一建模语言UML提出提出26软件体系结构的发展阶段软件体系结构的发展阶段l初级阶段优点:优点:易于表述概念、易于相互交流易于表述概念、易于相互交流作为描述、分析和建立文档的手段,提高了软件的作为描述、分析和建立文档的手段,提高了软件的易读性、可维护性和可重用性易读性、可维护性和可重用性其中的继承、封装和多态性等机制,为软件重用提其中的继承、封装和多态性等机制,为软件重用提供了一种可行的手段供了一种可行的手段27软件体系结构的发展阶段软件体系结构的发展阶段l初级阶段困境:困境:基于对象的重用属于代码重用

14、,需要对类的内部设基于对象的重用属于代码重用,需要对类的内部设计、实现有清晰的认识。计、实现有清晰的认识。软件的升级、维护等需要重新编译、调试,无法实软件的升级、维护等需要重新编译、调试,无法实现动态升级。现动态升级。难以实现设计重用,缺乏描述体系结构的语言。难以实现设计重用,缺乏描述体系结构的语言。28软件体系结构的发展阶段软件体系结构的发展阶段l高级阶段(90年代初现在)软件开发强调构件化技术和体系结构技术。软件开发强调构件化技术和体系结构技术。COM、CORBA、EJB、WebService的提出的提出软件软件 = 构件构件 + 基于体系结构的构件组装基于体系结构的构件组装体系结构作为开

15、发文档和中间产品,开始出现在软体系结构作为开发文档和中间产品,开始出现在软件开发过程中。件开发过程中。29软件体系结构的发展阶段软件体系结构的发展阶段l高级阶段优点:优点:构件实现了可执行二进制代码的重用构件实现了可执行二进制代码的重用构件的实现与实现语言无关构件的实现与实现语言无关构件可以单独开发、单独编译、单独调试构件可以单独开发、单独编译、单独调试基于构件的软件系统可以实现动态升级和维护基于构件的软件系统可以实现动态升级和维护体系结构提供了设计重用的可能性,设计重用是比体系结构提供了设计重用的可能性,设计重用是比构件重用更加抽象、更加高级的重用。构件重用更加抽象、更加高级的重用。30软件

16、体系结构的发展阶段软件体系结构的发展阶段l四个阶段的总结四个阶段的总结机器机器语言语言汇编汇编语言语言无体系结构阶段无体系结构阶段高级高级语言语言结构化结构化编程编程萌芽阶段萌芽阶段初级阶段初级阶段面向对面向对象技术象技术面向对面向对象语言象语言31软件体系结构的发展阶段软件体系结构的发展阶段l四个阶段的总结四个阶段的总结构件构件技术技术COMEJBWebServiceCORBA高级阶段高级阶段SUN公司提出,公司提出,Enterprise Java BeanOMG(Object Management Group)提出,提出,Common Object Request Broker Archi

17、tectureMicrosoft提出,提出,Component Object Model 32软件体系结构定义软件体系结构定义l存在至少数十种的软件体系结构定义,尚未形存在至少数十种的软件体系结构定义,尚未形成公认的统一定义,其原因在于:成公认的统一定义,其原因在于:软件体系结构形成历史较短,尚不完善。软件体系结构形成历史较短,尚不完善。不同的研究者对于软件体系结构有不同的理解。不同的研究者对于软件体系结构有不同的理解。定义一旦被接受,其影响很大!定义一旦被接受,其影响很大!33软件体系结构定义软件体系结构定义l定义1:Booch & Rumbaugh & Jacobson 定义软件体系结构软

18、件体系结构 = 组织,组织, 元素,元素, 子系统,风格子系统,风格34软件体系结构定义软件体系结构定义l定义2:Bass 定义软件体系结构是一个或多个结构,包括软件构件软件体系结构是一个或多个结构,包括软件构件(component)、构件的外部可视属性()、构件的外部可视属性(property)和构件之间的关系(和构件之间的关系(relationship)。)。35软件体系结构定义软件体系结构定义l定义3:Shaw 定义四种分类法四种分类法结构模型结构模型 体系结构由构件、构件间连接及其他一些体系结构由构件、构件间连接及其他一些方面组成。方面组成。框架模型框架模型 与结构模型类似,强调整个系

19、统的结构。与结构模型类似,强调整个系统的结构。动态模型动态模型 强调系统的行为质量。强调系统的行为质量。过程模型过程模型 体系结构是一系列过程的结果。体系结构是一系列过程的结果。36软件体系结构定义软件体系结构定义l定义4:Garlan & Shaw 定义体系结构体系结构=构件,连接件,构件,连接件, 约束约束37软件体系结构定义软件体系结构定义l定义5:Perry & Wolf 定义体系结构体系结构 = 元素,形式,元素,形式, 准则准则元素:元素:处理元素:负责完成数据加工处理元素:负责完成数据加工数据元素:作为被加工的信息对象数据元素:作为被加工的信息对象连接元素:用于将体系结构的不同部

20、分组合连接起来连接元素:用于将体系结构的不同部分组合连接起来形式:形式:专有特性:用于限制体系结构元素的选择专有特性:用于限制体系结构元素的选择关系:关系: 用于限制体系结构元素组合的拓扑结构用于限制体系结构元素组合的拓扑结构38软件体系结构定义软件体系结构定义l定义6:Garlan & Perry 定义体系结构体系结构: 是一个程序是一个程序/系统各构件的结构、它们的相互系统各构件的结构、它们的相互关系,以及进行设计的原则和指导方针。关系,以及进行设计的原则和指导方针。39软件体系结构定义软件体系结构定义l定义7:Soni & Nord & Hofmeister 定义体系结构包括体系结构包括

21、 至少至少 4 种具体形态:种具体形态:概念体系结构概念体系结构模块互连体系结构模块互连体系结构执行体系结构执行体系结构代码体系结构代码体系结构40软件体系结构定义软件体系结构定义l定义8:Boehm 模型体系结构体系结构 = 构件,连接件,约束,不同人员的需求,准则构件,连接件,约束,不同人员的需求,准则41软件体系结构定义软件体系结构定义l不同定义的总结软件体系结构定义了构件(软件体系结构定义了构件(component)任何实际系统都可以看作由构件及其相互关系组成任何实际系统都可以看作由构件及其相互关系组成构件可以是对象、进程、库、商品软件、数据库或者其构件可以是对象、进程、库、商品软件、

22、数据库或者其他更广泛的模块他更广泛的模块构件的基本特性是:独立、封装、重用构件的基本特性是:独立、封装、重用42软件体系结构的主要研究内容软件体系结构的主要研究内容l体系结构理论模型的研究体系结构理论模型的研究l体系结构描述研究体系结构描述研究l体系结构设计研究体系结构设计研究l体系结构分析与验证体系结构分析与验证l基于体系结构的软件开发过程基于体系结构的软件开发过程l特定领域的体系结构框架特定领域的体系结构框架l体系结构的评价方法体系结构的评价方法43软件体系结构的主要研究内容软件体系结构的主要研究内容l体系结构理论模型的研究体系结构理论模型的研究5 种体系结构模型种体系结构模型结构模型结构

23、模型框架模型框架模型动态模型动态模型过程模型过程模型功能模型功能模型44软件体系结构的主要研究内容软件体系结构的主要研究内容l体系结构描述研究体系结构描述研究各种体系结构描述语言(各种体系结构描述语言(ADL)过程代数过程代数偏序集合偏序集合化学抽象机化学抽象机45软件体系结构的主要研究内容软件体系结构的主要研究内容l体系结构设计研究体系结构设计研究体系结构设计方法体系结构设计方法体系结构风格体系结构风格体系结构设计工具体系结构设计工具46软件体系结构的主要研究内容软件体系结构的主要研究内容l体系结构分析与验证体系结构分析与验证将软件的非功能特性转化为体系结构的需求将软件的非功能特性转化为体系

24、结构的需求分析体系结构满足期望的需求属性分析体系结构满足期望的需求属性对体系结构的语义、语法、类型失配等进行检查与验证对体系结构的语义、语法、类型失配等进行检查与验证建立评价软件体系结构的方法建立评价软件体系结构的方法47软件体系结构的主要研究内容软件体系结构的主要研究内容l基于体系结构的软件开发过程基于体系结构的软件开发过程传统的软件开发模型:传统的软件开发模型:瀑布模型:软件需求完全明确瀑布模型:软件需求完全明确渐进式开发:软件最初基本需求明确渐进式开发:软件最初基本需求明确变换模型:基于形式化开发方法变换模型:基于形式化开发方法引入软件体系结构后的软件开发过程完全不同以往,引入软件体系结

25、构后的软件开发过程完全不同以往,体系结构贯穿软件开发的整个阶段。体系结构贯穿软件开发的整个阶段。48软件体系结构的主要研究内容软件体系结构的主要研究内容l特定领域的体系结构框架特定领域的体系结构框架CASE体系结构体系结构CAD软件的参考模型软件的参考模型信息系统的参考体系结构信息系统的参考体系结构网络体系结构网络体系结构机场信息系统的体系结构机场信息系统的体系结构电信软件的体系结构电信软件的体系结构49软件体系结构的主要研究内容软件体系结构的主要研究内容l体系结构的评价方法体系结构的评价方法体系结构权衡分析方法(体系结构权衡分析方法(Architecture Tradeoff Analysis Method, ATAM)体系结构分析方法体系结构分析方法 (Software Architecture Analysis Metho

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论