- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]06体系结构设计与设计模式 232-
第六章 软件体系结构设计与设计模式 软件工程课件 第六章 软件体系结构与设计模式 6.1 软件体系结构的概念 6.2 软件体系结构的设计与风格 6.3 特定领域的软件体系结构 6.4 分布式软件体系结构 6.5 软件体系结构的评价 6.6 体系结构描述语言 6.7 设计模式 6.1 软件体系结构的概念 软件被分成许多模块,模块之间相互作用,组合起来就有了整体的属性,就具有了体系结构。 随着软件规模和软件复杂程度的不断增加,对总体的系统结构设计和规格说明比对计算的算法和数据结构的选择重要得多。 有效的软件体系结构的设计和描述已经成为软件工程领域中的重要主体。 什么是软件体系结构 Bass、Clements和Kazman给出了如下定义: 一个程序或计算机系统的软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件、构件的外部可见属性以及它们之间的相互关系。外部可见属性则是指软件构件提供的服务、性能、使用特性、错误处理、共享资源使用等。 软件体系结构的基本单位是软件构件,软件构件是一个软件体系结构的核心。 软件体系结构的不同形式 概念结构:从主要设计元素(构件)及其相互关联、设计原则和性能角度考虑的结构。 模块结构:根据功能分解建立模块的层次结构包括模块接口、模块管理、模块控制和一致性等问题。 代码结构:描述源程序,二进制程序,库文件。在开发环境下的组织包括系统资源配置管理,系统构造和对象嵌入机制 OEM 等。 执行结构:描述系统的动态结构包括性能、调度、动态配置和不同系统间的接口等。 体系结构的重要作用 体系结构的表示有助于项目干系人相互交流 软件体系结构是系统的高层次的描述,是一种隐藏了实现细节的抽象。有助于与系统相关人员交流。 体系结构提供了一个平台语言,可用来表达各种关注和协商,有助于对大型复杂系统进行管理。 体系结构突出了早期设计决策 软件体系结构是可传递和可复用的模型 构件的定义与构件之间的关系 在不同的软件工程环境中,对构件的定义和理解会有所不同。 在传统的软件工程环境中,一个构件就是程序的一个功能要素。程序由处理逻辑和实现处理逻辑所需的内部数据结构以及能够保证构件被调用和实现数据传递的接口构成。 构件可以是子系统,也可以是模块。在它们间没有清晰的界限,但可以依据下列两点加以区分: 一个子系统独立构成系统,不依赖其他子系统提供的服务。子系统由模块或更小的子系统构成。子系统间的交互通过它们的接口。 一个模块通常是一个能提供一个或多个服务的系统构件,它能够利用其他模块提供的服务,一般不被看成一个独立的系统,模块可以由更简单的模块组成。 构件承担如下三个重要角色之一。 控制构件:协调问题领域中所有其他构件的调用; 软件构件分类 问题领域构件:完成部分或全部用户的需求; 基础设施构件:负责完成问题域中所需相关处理的功能。 纯计算构件: 具有简单输入输出关系,没有运行状态变化如数值计算、过滤器、转换器等。 存储构件: 存放共享的、永久性的、结构化的数据。如数据库、文件、符号表、超文本等。 构件之间的连接方式 管理构件: 执行操作与运行状态紧密相关。如抽象数据类型、面向对象系统中的对象、服务器等。 控制构件: 管理其它构件运行的时间、时机及次序。例如,调度器、同步器等。 链接构件: 在实体之间传递信息。例如,通信机制、用户界面等。 1) 过程调用: 在某一特定执行路径中传递执行指针。如普通过程调用、远程过程调用。 数据流: 相互独立的处理通过数据流进行交互,在得到数据的同时被赋予控制权限。如 UNIX 系统中的管道。 间接激活: 处理因事件的发生而激活,在处理间没有直接交互。例如,事件驱动系统、自动垃圾回收等。 消息传递: 相互独立的处理间有明确交互,通过显式数据传递。传递可以是同步的,也可以是异步的。如TCP/IP 。 共享数据: 构件通过同一数据空间进行并发操作。如多用户数据库, 数据黑板。 在软件构件设计中构件应保持的性质 计算功能:描述构件所实现的整体功能。 结构特性:描述特定构件定义、构件打包的方式和相互交互的方式,构件如何组织以构成整个系统。 附属功能:描述构件的执行效率、处理能力、环境假设、全局特性等,包括时间要求、空间要求、精确度、安全性、保密性、带宽、吞吐率、最低硬软件要求等。 家族特性:描述相同和相关构件之间的关系。 正式的定义 1996年的面向对象程序设计欧洲会议上,面向构件程序设计组提出 软件构件是一种组装单元,它具有规范的接口规格说明和显式的语境依赖。软件构件可以被独立部署,并由第三方任意地组装。 UML构件定义为 系统中某一定型化的、可配置的和可替换的部件,该部件封装了实现并暴露一系列接口。 构件间通过接口相互连接。接口是可被客户访问的具名操作的集合,每个操作
文档评论(0)