软件体系结构-第1章

上传人:平*** 文档编号:46125813 上传时间:2018-06-22 格式:PPT 页数:39 大小:1.06MB
返回 下载 相关 举报
软件体系结构-第1章_第1页
第1页 / 共39页
软件体系结构-第1章_第2页
第2页 / 共39页
软件体系结构-第1章_第3页
第3页 / 共39页
软件体系结构-第1章_第4页
第4页 / 共39页
软件体系结构-第1章_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《软件体系结构-第1章》由会员分享,可在线阅读,更多相关《软件体系结构-第1章(39页珍藏版)》请在金锄头文库上搜索。

1、1软件体系结构软件体系结构 第一章第一章2作为软件工程课程的深入和继续,以拓宽软件设计方法 和技术的知识面,提高设计能力为目标;并为软件工程理 论的深入研究奠定基础。具体目标包括: 1.了解软件体系结构研究的基本问题、途径和发展状况 2.了解并掌握软件的基础结构和设计原则3.学习软件体系结构的经典风格,掌握不同风格所适应 的计算问题、优势和代价 4.学习软件体系结构流行的应用框架,掌握框架针对的 需求和解决方案 5.学习软件设计模式的经典类型,掌握设计的基本思路 和策略 6.了解软件体系结构形式化方法的主要研究内容和进展课程的目标31.Mary Shaw,David GarlanSoftwar

2、e Architecture清华大学出版社 19989 2.张友生 编著软件体系结构清华大学出版 200753.牛振动,江鹏,金福生 编译软件体系结构清华大学 出版社 200734.刘真 编著软件体系结构北京:中国电力出版社, 2004.9 5.万建成,卢雷 编著软件体系结构的原理、组成与应用 科学出版社 20028 6.谭征,何坚编著软件体系结构西安:西安交通大学出 版社 2002.2 主要参考书4课程内容第1章 软件体系结构基本概念第2章 软件体系结构经典风格第3章 软件体系结构应用第4章 软件体系结构设计模式第5章 软件体系结构研究与发展5第1章 软件体系结构基本概念1.1 软软件体系结

3、结构基本概念1.2 软软件体系结结构风风格、模式和框架1.3 软软件结结构的基本元素和连连接1.4 软软件体系结结构设计设计 的基本原则则61.1 软件体系结构的基本概念软件体系结构是软件工程的重要研究领域,软件 体系结构并没有统一的定义。90年代开始,很多专家学者对软件体系结构引起 广泛关注,综合软件体系结构的定义,比较权 威性的论述是:设计描述总体组织 全局控制 通讯、同步、协议 设计元素的功能 物理分布和集成怎样选择 怎样评价 怎样实现返回目录7软件体系结构要点:软件体系结构是软件设计过程的一个层面,是 相对独立的、有价值的软件设计方法的总结, 可作为软件开发指导性的策略和途径。强调设计

4、过程,而非分析的过程。分析的目标 是理解和表示,设计的目标是实现。非用户的观点及非功能的观点。对于用户,结 构是软件系统功能的组合。对于设计者,结构 是为特定目标而设立的软件成分以及成分之间 的关系。81.2 软软件体系结结构风风格、模式和框架 软件体系结构风格(Architecture Styles)风格是表达特定系统元素和组织方式的通用范例(idiomatic paradigm)。软件体系结构风格,反映众多系统共有结构的习惯用法和语义,表述系统的静态结构方式,强调软件元素的组织形式 和通常用法。 软件设计模式(Design Pattern)设计模式是软件问题高效和成熟的设计模板(patte

5、rn),模板包含了固有的问题的处理逻辑,强调处理逻辑采用方式的直接复用。 软件应用框架(Application Framework)框架是待实例化的、可复用的大粒度部件结构。框架面向不同规模的应用问题,是通用的结构。强调针对实际问题和通用结构。返回目录91.3 软软件结结构的基本元素和连连接软件结构的表示从低层到高层,高层软件结构 是建立在基础结构之上的。软件构成的基础结构包括: 数据类型结构 控制流连接结构 中断触发连接结构 层次结构返回目录1010数据类型结构数据类型是最基本的软件结构元素,是描述复杂算法和软件结构的基础,即数据结构。数据类型包括 :基本数据类型 抽象数据类型返回本节11文

6、件结构:顺序文件 散列文件 索引文件 基本数据类型线性结构:向量 队列 链表 堆栈 顺序表复杂结构:图 树 集合 多维数组 稀疏矩阵 广义表 二叉树1212 抽象数据类型 (ADT Abstract Data Types)a.确定具有属性的独立数据对象,并将其操作确 定在之上 b.建立抽象数据类型,作为运行时产生数据实例 的结构模板ADT名数据属性表操作方法定义及操作描述表 结构形式:例如:struct union enum class 13控制流连接结构 控制流结构直接对应程序结构包括: 条件连接 循环连接 控制转向连接返回本节1414条件连接循环连接过程条件转移判断过程K过程J过程I控制转

7、移处理过程K过程循环条件判断过程KYN While控制转移连接条件转向 循环结构控制转向单条件分支转向if then else 多条件分支转向switch case,break,continue程序 结构for While do,repeat until on goto set to,set on/offdo15 控制流连接方式 进程中的控制连接(内部调用)同一机器空间不同机器空间(远程过程调用)链询调用方式分析调用方式 进程之间的连接P1代码P2代码Pn代码过过程代码码.进程中的控制连接(内部调用): 显式地调用处理代码地址 通过过程调用机制及堆栈机制实现连接 调用过程必须有唯一过程标识和所

8、需要的参数17同一机器中进程调用链询方式请求服务入口表服务进程代码1If请求服务=1else 转向服务进程代码2If请求服务=2else go转向进程之间的连接采用服务进程控制链,查找过程采用 链询方式。请求服务进程通过登记请求入口表与服务进程连接。服务进程控制进程之间的连接18进程调用 接口分析执行进程调用包括三部分:接口:负责请求调用进程的联系,包括需要的数据转换分析:按给定的请求确认并找到执行代码段执行:开始执行,并将执行结果后返回接口同一机器中进程调用分析方式1919进程1进程2进程1代理网络连接不同机器空间中的过程调用(远程过程调用)远程过程调用代理机制:请求进程代理的工作: 控制标

9、识、运行环境、堆栈、网络连接、接收结果等响应进程代理的工作: 寻找执行代码段,控制执行服务,返回相应结果进程2代理请求进程代理 响应进程代理20中断触发连接结构P1代码Pn代码中断号允许服务代码1 +2 -n +请求事件是突发即时的 通过统一的中断向量表连接到处理事件的代码段 处理事件代码的执行包括:本进程内和独立进程 独立进程包括:同步执行和异步执行过程代码事件1事件2事件3.返回本节软件的层次结构软件的层次结构层次结构是分析和解决问题普遍适用的方法单项依赖层次结构:下层仅向相邻的上层提供支持,上层依赖相 邻的下层被建造开放式层次结构:使用及支持关系不仅限制在相邻的层次之间返回本节22第二层

10、:软化的硬件层第三层:基础控制描述层第四层:资源和管理调度层第五层:系统结构框架层第六层:应用层第一层:计算机硬件层层次结构示例:计算机系统层次结构处理器、存储器、时钟、I/O 端口及通道、缓存,等等状态、指令、中断服务、地址、 I/O端口及通道号,等的集合。程序控制、数据结构、系 统模型等基本系统元素。基于操作系统的任务、进程、 消息、输入输出等资源管理。解释器、转换器、中间件、 通用运行环境。23单向依赖层次结构示例:ISO/OSI网络协议应用层表示层会话层传输层网络层链路层物理层第7层协议报文第6层协议第5层协议第4层协议第3层协议第2层协议第1层协议应用层表示层会话层传输层网络层链路层

11、物理层报文报文报文信息包帧Bit计算机A计算机B24(Shell)解释运行用户1用户2开放式层次结构示例:操作系统层次结构语言处理、系统工具、系统应用环境系统调用操作系统内核(System Kernel)基本输入/输出(BIOS)计算机硬件(CPU、内存、输入/输出)用户n25在大量的软件开发实践中,对于软件结构 的设计有被普遍性采用的原则,这些原则和策 略多年来一直被广泛地运用着。它们独立于具 体的软件开发方法。抽象分而治之信息隐蔽 模块化高内聚和低耦合 关注点分离 策略和实现分离 接口和实现分离基本原则包括 :1.4 软软件体系结结构设计设计 的基本原则则返回目录26软件设计原则的依据 -

12、软件质量及评价体系 软件质量定义 按国际标准ISO/8042-1994对软件质量定义:能满足明确需求的软件实体,所具有能力的特 性总合。 按照国家GB/T 11457-2006软件工程术语中 定义软件质量为:软件产品能满足给定需要的性质和特性的总体27 软件质量模型可表达软件特性所包含的全部内容业界认同的软件质量模型: Bohm 质量模型,1976年由Bohm等提出软件 质量分层模型 McCall 质量模型,1979年由McCall等人提出的 软件质量模型 ISOIEC 9126-1:2001,给出的软件质量模型28软件质量可移植性可用性可维护性可靠性效率人类工程可测性可理解性可修改性设备独立

13、性自包含性正确性完备性健壮性一致性可计测性设备效率可存取性通信性自描述性结构化性简单清晰性可扩充性Bohm 质量模型29产品修正产品转移产品运行可维护性 可测试性 灵活性互联性 可移植性 复用性正确性 可靠性 易用性 效率 完整性McCall 质量模型30外部质量和内部质量功能性易用性可靠性效率可维护性可移植性使用质量生产性有效性安全性满意度ISOIEC 9126-1:2001质量模型31 抽象的原则抽象: 人们认识复杂事物的基本方法。抽象的实质是突出表 现事物的主要特征和属性,忽略细节部分;并且,运 用这些特征和属性,提取具有普遍意义的事物行为。软件设计中的抽象:数据抽象:描述特定数据对象的

14、属性集合过程抽象:特定操作过程命名的操作序列控制抽象:隐含内部细节的控制逻辑 32 分而治之原则将大的问题分解,分别处理分解的局部问题,会降低问 题的复杂性和难度。软件设计中运用的分解包括: 纵向分解: 按照事务的过程方式分解,将整体问题分解成为多层, 每层完成同一过程的各项处理,并提取规范统一形式的 接口,以提供对下层(下一过程)的支持。 横向分解: 在每一层面,将问题分成多项独立的处理部分,它们原 则上不要直接的联系,而是通过集中的控制。 33 信息隐蔽的原则局部化设计: 处理中的所有信息和操作被限制在局部过程中,尽 量减少外部的直接接触与共享,提高独立性,减小 相互的耦合性。 封装设计:

15、 将处理过程尽量隐蔽,使外界只了解其简单、统一 的可访问形式。以减少外界可能的错误干扰和破坏 。设计中运用的信息隐蔽的技术包括 :封装设计 局部化设计34 模块化的原则模块可分解:整体问题可被分解成多个模块来解决模块可组装:现有的模块可被组装用以解决问题模块可理解:模块可作为独立作用的成分被理解模块连续性好:对系统的修改只作用于单个的模块模块保护性好:模块出现异常的影响,仅在模块内部模块:可被独立命名、具有独立作用的软件成分35 高内聚和低耦合原则 内聚性:指软件成份内部各处理单元的关系程度。能做到每 个成分都有必然关系,缺一不可的紧密程度是最好 的内聚形式。 耦合性:指软件成份之间的关系特性。软件成份之间应尽量 做到没有直接关系,使其保持相对独立、松散耦合 的关系会使未来的修改、复用简单,出错带来的影 响小。36偶然内聚:将没有直接关系,只是分散在多处的成分合起来 逻辑内聚:将仅是逻辑相关的处理成分合起来 时间内聚:将需在同一时间执行并无直接关系的处理成分合起来 过程内聚:将过程顺序相关的处理成分合起来 通讯内聚:将需要对同一个外部数据操作的处理成分合起来 顺序内聚:将两个具有输入输出顺序关系的软件成份合起来 功能内聚:保证每个成分只完成单一的功能内容耦合:一个软件成份直接修改另一个软件成份的内容 公共耦合:多个软件成份需要处理同一个外部的公

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号