高级软件工程 (16).ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《高级软件工程 (16).ppt》由会员分享,可在线阅读,更多相关《高级软件工程 (16).ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件体系结构软件体系结构 1/46高级软件工程高级软件工程软件体系结构软件体系结构1软件体系结构软件体系结构 2/46高级软件工程高级软件工程存在超越对象的东西存在超越对象的东西 相关的概念包括:相关的概念包括:Pattern(Pattern(模式模式)Architecture(Architecture(体系结构体系结构)Aspect(Aspect(侧面侧面)Grady Grady BoochBooch 2001 20012软件体系结构软件体系结构 3/46高级软件工程高级软件工程1995:“Design Patterns,Elements of Reusable Object-Oriente
2、d Software”Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides1996:“Software Architecture”Mary Shaw,David Garlan1997:“Aspect-Oriented Programming”Gregor Kiczales,etc 1999:Application Server3软件体系结构软件体系结构 4/46高级软件工程高级软件工程1、Motivation2、Definition3、Benefit4、Example 内内 容容4软件体系结构软件体系结构 5/46高级软件工程高级软件工程1
3、、MotivationN.Wirth(1976):程序程序=“算法算法+数据结构数据结构”对于软件的描述不全面对于软件的描述不全面规模增加规模增加复杂性增加复杂性增加演化频繁演化频繁 需要重新考虑对软件的认识需要重新考虑对软件的认识5软件体系结构软件体系结构 6/46高级软件工程高级软件工程什么是稳定的?什么是稳定的?程序:程序:过程过程对象对象服务:服务:业务业务客户客户软件:软件:功能功能体系结构体系结构需要什么?需要什么?提供交流基础提供交流基础反映高层设计反映高层设计便于系统演化便于系统演化 贯穿软件生命周期的贯穿软件生命周期的相对稳定的相对稳定的 描述描述6软件体系结构软件体系结构
4、7/46高级软件工程高级软件工程2、Definition至今没有被广泛接受的定义至今没有被广泛接受的定义(1)Mary Shaw,David Garlan(Software Architecture:Perspectives on an emerging discipline,1996),p3:The architecture of a software system defines that System in terms of computational components and interactions among those components(2)Bass,Clements,K
5、azman(Software Architecture in Practice,1997):The software architecture of a program or computing system is the structure or structures of the system,which comprise software components,the externally visible properties of those components,and the relationships among them.7软件体系结构软件体系结构 8/46高级软件工程高级软件
6、工程Rational的观点:的观点:USDP:Unified Software Develop Process(Jacobson,1999)Use-Case DrivenArchitecture-CentricIterative and Incremental Philippe Kruchten(4+1 view):逻辑、文件、进程、设备脚本逻辑、文件、进程、设备脚本模型的视图模型的视图use-case modelanalysis modeldesign model8软件体系结构软件体系结构 9/46高级软件工程高级软件工程对软件系统结构的总体说明对软件系统结构的总体说明构件构件+关系关系+约
7、束约束构件:构件:软件系统由哪些部分构成软件系统由哪些部分构成例如:数据库、服务器等例如:数据库、服务器等关系:关系:这些部分之间的交互关系是什么这些部分之间的交互关系是什么例如:例如:RPC、共享内存等共享内存等约束:约束:这些关系有什么约束这些关系有什么约束例如:互斥、依赖、安全性等例如:互斥、依赖、安全性等与其它领域体系结构概念的比较9软件体系结构软件体系结构 10/46高级软件工程高级软件工程相关概念:相关概念:模式模式:模式是对特定场景下解决一般设计问题的类模式是对特定场景下解决一般设计问题的类和相互通信对象的描述和相互通信对象的描述框架框架:一个框架是一个可复用设计,它是由一组抽象
8、类一个框架是一个可复用设计,它是由一组抽象类及其实例间协作关系来表达的及其实例间协作关系来表达的 构件构件:构件是可以被复用的软件实体构件是可以被复用的软件实体由构件规约与构件实现两部分组成由构件规约与构件实现两部分组成构件可分为共性构件、领域构件、特定系统构件构件可分为共性构件、领域构件、特定系统构件构架构架:构架是一类特殊的构件,是软件系统体系结构的构架是一类特殊的构件,是软件系统体系结构的显式表示,显式表示,构架具有领域相关性构架具有领域相关性10软件体系结构软件体系结构 11/46高级软件工程高级软件工程软件体系结构的发展软件体系结构的发展(1)高级编程语言)高级编程语言(2)数据结构
9、与算法)数据结构与算法(3)软件结构)软件结构(Dijkstra)(4)抽象数据类型抽象数据类型(5)程序族()程序族(David Parnas)(6)软件体系结构软件体系结构是研究热点,尚未进入成熟阶段是研究热点,尚未进入成熟阶段11软件体系结构软件体系结构 12/46高级软件工程高级软件工程KWIC(Parnas):):Key Word In Context 系统接受系统接受一个有序的行集合一个有序的行集合每行是一个有序的单词集合每行是一个有序的单词集合每个单词是一个有序的字符集合每个单词是一个有序的字符集合任意行可以被任意行可以被“循环移位循环移位”(将第一个单词移至最后)(将第一个单词
10、移至最后)系统输出系统输出 按字母表排序的按字母表排序的所有行的所有所有行的所有“循环移位循环移位”行行4、Example12软件体系结构软件体系结构 13/46高级软件工程高级软件工程例如:例如:I am a teacherI give lecture of ASEWe learn software architecture nowa teacher I amam a teacher II am a teacherteacher I am a ASE I give lecture of give lecture of ASE II give lecture of ASElecture of
11、ASE I give of ASE I give lecture.13软件体系结构软件体系结构 14/46高级软件工程高级软件工程所考虑的问题:所考虑的问题:(1)处理算法的变化)处理算法的变化例如,何时进行移位例如,何时进行移位(2)数据表示的变化)数据表示的变化例如,行、单词、字符的不同存放方式例如,行、单词、字符的不同存放方式(3)系统功能的增强)系统功能的增强例如,部分单词的过滤例如,部分单词的过滤(4)性能)性能空间、时间空间、时间(5)复用)复用构件的复用程度构件的复用程度14软件体系结构软件体系结构 15/46高级软件工程高级软件工程(1)主程序)主程序/子程序加共享数据子程序加
12、共享数据输入输入主控制程序主控制程序循环移位循环移位排序排序输出输出字符集字符集索引索引排序过的索引排序过的索引输入介质输入介质输出介质输出介质15软件体系结构软件体系结构 16/46高级软件工程高级软件工程优点:优点:允许数据有效地表达允许数据有效地表达计算问题被划分到不同的模块中计算问题被划分到不同的模块中缺点:缺点:处理变化的能力不足处理变化的能力不足例如:数据存储格式的变化将影响例如:数据存储格式的变化将影响 到几乎所有的模块到几乎所有的模块不易进行处理算法的改进与系统功能增强不易进行处理算法的改进与系统功能增强对复用的支持不明显对复用的支持不明显16软件体系结构软件体系结构 17/4
13、6高级软件工程高级软件工程(2)抽象数据类型)抽象数据类型输入输入主控制程序主控制程序循环移位循环移位输出输出字符集字符集 排序排序输入介质输入介质输出介质输出介质17软件体系结构软件体系结构 18/46高级软件工程高级软件工程优点:优点:算法与数据表示可以在独立的模块中改变算法与数据表示可以在独立的模块中改变对复用的支持好对复用的支持好缺点:缺点:对功能增强支持不足对功能增强支持不足18软件体系结构软件体系结构 19/46高级软件工程高级软件工程(3)隐式调用(事件)隐式调用(事件)输入输入主控制程序主控制程序循环移位循环移位排序排序输出输出输入介质输入介质输出介质输出介质行行行行19软件体
14、系结构软件体系结构 20/46高级软件工程高级软件工程与主程序与主程序/子程序模式的不同:子程序模式的不同:数据接口更加抽象数据接口更加抽象不直接将存储格式暴露给计算模块不直接将存储格式暴露给计算模块当数据被修改时,计算体被隐式调用当数据被修改时,计算体被隐式调用交互是基于交互是基于“主动数据主动数据”进行的进行的优点:优点:对功能增强的支持好对功能增强的支持好对复用的支持好对复用的支持好 缺点:缺点:难以控制隐式调用模块的处理顺序难以控制隐式调用模块的处理顺序占用空间资源较多占用空间资源较多20软件体系结构软件体系结构 21/46高级软件工程高级软件工程(4)管道流水线)管道流水线输入介质输
15、入介质输出介质输出介质输入输入循环移位循环移位序列化序列化输出输出21软件体系结构软件体系结构 22/46高级软件工程高级软件工程优点:优点:维护处理的直接性维护处理的直接性支持复用支持复用易于修改易于修改缺点:缺点:不便于进行引入交互机制不便于进行引入交互机制对空间的利用不足对空间的利用不足22软件体系结构软件体系结构 23/46高级软件工程高级软件工程数据流系统数据流系统批处理系统批处理系统 管道管道/过滤器系统过滤器系统调用调用/返回系统返回系统 主程序主程序/子程序系统子程序系统面向对象系统面向对象系统独立构件独立构件通信进程系统通信进程系统事件系统事件系统虚拟机虚拟机解释器解释器基于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级软件工程 16 高级 软件工程 16
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内