网站大量收购独家精品文档,联系QQ:2885784924

清华大学郑人杰_殷仁昆教_软件工程讲义-06概要.ppt

清华大学郑人杰_殷仁昆教_软件工程讲义-06概要.ppt

  1. 1、本文档共212页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程 第六章 软件体系结构 6.1 软件体系结构的概念 6.2 软件体系结构的设计 6.3 特定领域的体系结构 6.4 分布式软件体系结构 6.5 设计模式 6.1 软件体系结构的概念 一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软件构件的外部可见特性及其相互关系。 软件构件的外部可见特性是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。 软件体系结构的基本单位是软件构件,软件构件是一个软件体系结构的核心。 软件构件可以是子系统,也可以是模块。在它们之间没有清晰的界限,但可以依据下列两点加以区分: 一个子系统独立构成系统,不依赖其他子系统提供的服务。子系统由模块或更小的子系统构成。子系统之间的交互通过它们的接口。 一个模块通常是一个能提供一个或多个服务的系统构件,它能够利用其他模块提供的服务,一般不被看成一个独立的系统,模块可以由更简单的模块组成。 6.1.2 软件体系结构的不同形式 概念结构:从主要设计元素(构件)及其相互关联、设计原则和性能角度考虑的结构。 模块结构:根据功能分解建立模块的层次结构包括模块接口、模块管理、模块控制和一致性等问题。 代码结构:描述源程序,二进制程序,库文件。在开发环境下的组织包括系统资源配置管理,系统构造和对象嵌入机制 OEM 等。 执行结构:描述系统的动态结构包括性能、调度、动态配置和不同系统间的接口等。 6.1.3 在软件构件设计中应保持的性质 计算功能:描述构件所实现的整体功能。 结构特性:描述特定构件定义、构件打包的方式和相互交互的方式,构件如何组织以构成整个系统。 附属功能:描述构件的执行效率、处理能力、环境假设、全局特性等,包括时间要求、空间要求、精确度、安全性、保密性、带宽、吞吐率、最低硬软件要求等。 家族特性:描述相同和相关构件之间的关系。 6.1.4 软件构件分类 纯计算构件: 具有简单输入输出关系,没有运行状态变化如数值计算、过滤器、转换器等。 存储构件: 存放共享的、永久性的、结构化的数据。如数据库、文件、符号表、超文本等。 管理构件: 执行操作与运行状态紧密相关。如抽象数据类型、面向对象系统中的对象、服务器等。 控制构件: 管理其它构件运行的时间、时机及次序。例如,调度器、同步器等。 6.1.5 构件之间的连接方式 链接构件: 在实体之间传递信息。例如,通信机制、用户界面等。 过程调用: 在某一特定执行路径中传递执行指针。如普通过程调用、远程过程调用。 数据流: 相互独立的处理通过数据流进行交互,在得到数据的同时被赋予控制权限。如 UNIX 系统中的管道。 间接激活: 处理因事件的发生而激活,在处理间没有直接交互。例如,事件驱动系统、自动垃圾回收等。 消息传递: 相互独立的处理间有明确交互,通过显式数据传递。传递可以是同步的,也可以是异步的。如TCP/IP 。 共享数据: 构件通过同一数据空间进行并发操作。如多用户数据库, 数据黑板。 6.2 软件体系结构的设计 软件体系结构的设计过程是为系统建立一个基本架构。它包括识别系统的主要构件和这些构件之间的通信。 经典的软件体系结构框架是模型/视图/控制器(MVC,Model/View/Controller)。 在MVC结构中,模型是软件应用领域中的各种对象,它们的操作独立于用户界面;视图则管理用户界面的输出;而控制器处理软件的输入。 输入事件给出要发送给模型的消息。一旦模型改变了它的状态,就立即通过关联机制通知视图,让视图刷新显示。这个关联机制定义了在模型与各个视图之间的关系。类似地,控制器在输入事件发生时将对视图及模型进行控制与调度。 对于MVC,可通过开发模型的一个派生类,履行与应用相关联的处理。如用户界面通过定义视图和控制器的派生类来建立,这些派生类中许多是可复用的类,像按钮和对话框等,这样可以直接建立新的子系统。 设计过程的主要活动 系统构造:将系统分解为一系列基本的子系统,每一子系统是独立的软件成分。 控制建模:建立系统各部分之间的控制关系的一般模型。 模块分解:将子系统进一步分解为模块。 6.2.1 系统构造 (System Structuring) 体系结构设计的第一步是将系统分解为一系列相互作用的子系统。 在最抽象层次,系统可视为一个方框图,图中每个方框表示一个子系统。 每个方框内的方框表明子系统本身还可分解为子系统。 箭头表示一个子系统向另一子系统传送数据或控制。 下图是一个组装机器人的系统构造。 组装机器人控制系统的方框图 体系结构方框图表示一个系统结构的概貌,软件工程师很容易理解它。 这种方框图的缺点是没有反映系统构件之间关系的本质,没有表明系统的外部特性。 根据各子系统如何共享数据、如何分布、如何相互交互,可开发更加特定的模型。 数据仓库模型

文档评论(0)

ss55863378 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档