软件体系结构-第1章.ppt_第1页
软件体系结构-第1章.ppt_第2页
软件体系结构-第1章.ppt_第3页
软件体系结构-第1章.ppt_第4页
软件体系结构-第1章.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1,软件体系结构,第一章,2,作为软件工程课程的深入和继续,以拓宽软件设计方法和技术的知识面,提高设计能力为目标;并为软件工程理论的深入研究奠定基础。具体目标包括: 1.了解软件体系结构研究的基本问题、途径和发展状况 2.了解并掌握软件的基础结构和设计原则 3.学习软件体系结构的经典风格,掌握不同风格所适应的计算问题、优势和代价 4.学习软件体系结构流行的应用框架,掌握框架针对的需求和解决方案 5.学习软件设计模式的经典类型,掌握设计的基本思路和策略 6.了解软件体系结构形式化方法的主要研究内容和进展,课程的目标,3,1.Mary Shaw,David GarlanSoftware Architecture 清华大学出版社 19989 2.张友生 编著软件体系结构清华大学出版 20075 3.牛振动,江鹏,金福生 编译软件体系结构清华大学出版社 20073 4.刘真 编著软件体系结构北京:中国电力出版社,2004.9 5.万建成,卢雷 编著软件体系结构的原理、组成与应用科学出版社 20028 6.谭征,何坚编著软件体系结构西安:西安交通大学出版社 2002.2,主要参考书,4,课程内容 第1章 软件体系结构基本概念 第2章 软件体系结构经典风格 第3章 软件体系结构应用 第4章 软件体系结构设计模式 第5章 软件体系结构研究与发展,5,第1章 软件体系结构基本概念 1.1 软件体系结构基本概念 1.2 软件体系结构风格、模式和框架 1.3 软件结构的基本元素和连接 1.4 软件体系结构设计的基本原则,6,1.1 软件体系结构的基本概念 软件体系结构是软件工程的重要研究领域,软件体系结构并没有统一的定义。 90年代开始,很多专家学者对软件体系结构引起广泛关注,综合软件体系结构的定义,比较权威性的论述是:,设计描述,总体组织 全局控制 通讯、同步、协议 设计元素的功能 物理分布和集成,怎样选择 怎样评价 怎样实现,返回目录,7,软件体系结构要点: 软件体系结构是软件设计过程的一个层面,是相对独立的、有价值的软件设计方法的总结,可作为软件开发指导性的策略和途径。 强调设计过程,而非分析的过程。分析的目标是理解和表示,设计的目标是实现。 非用户的观点及非功能的观点。对于用户,结构是软件系统功能的组合。对于设计者,结构是为特定目标而设立的软件成分以及成分之间的关系。,8,1.2 软件体系结构风格、模式和框架 软件体系结构风格(Architecture Styles) 风格是表达特定系统元素和组织方式的通用范例(idiomatic paradigm)。软件体系结构风格,反映众多系统共有结构的习惯用法和语义,表述系统的静态结构方式,强调软件元素的组织形式和通常用法。 软件设计模式(Design Pattern) 设计模式是软件问题高效和成熟的设计模板(pattern),模板包含了固有的问题的处理逻辑,强调处理逻辑采用方式的直接复用。 软件应用框架(Application Framework) 框架是待实例化的、可复用的大粒度部件结构。框架面向不同规模的应用问题,是通用的结构。强调针对实际问题和通用结构。,返回目录,9,1.3 软件结构的基本元素和连接 软件结构的表示从低层到高层,高层软件结构是建立在基础结构之上的。 软件构成的基础结构包括: 数据类型结构 控制流连接结构 中断触发连接结构 层次结构,返回目录,10,10,数据类型结构,数据类型是最基本的软件结构元素,是描述复杂算法和软件结构的基础,即数据结构。,数据类型包括:,基本数据类型 抽象数据类型,返回本节,11,文件结构: 顺序文件 散列文件 索引文件,基本数据类型,线性结构: 向量 队列 链表 堆栈 顺序表,复杂结构: 图 树 集合 多维数组 稀疏矩阵 广义表 二叉树,12,12,抽象数据类型 (ADT Abstract Data Types),a.确定具有属性的独立数据对象,并将其操作确定在之上 b.建立抽象数据类型,作为运行时产生数据实例的结构模板,ADT名 数据属性表 操作方法定义及操作描述表 ,结构形式:,例如:struct union enum class ,13,控制流连接结构 控制流结构直接对应程序结构 包括: 条件连接 循环连接 控制转向连接,返回本节,14,14,条件连接,循环连接,过程 条件转移判断,过程K,过程J,过程I 控制转移处理,过程K,过程 循环条件判断,过程K,Y,N,While,控制转移连接,条件转向 循环结构 控制转向,单条件分支转向if then else 多条件分支转向switch case,break,continue,程序结构,for While do,repeat until on goto set to,set on/off,do,15,控制流连接方式,进程中的控制连接(内部调用),同一机器空间 不同机器空间(远程过程调用),链询调用方式 分析调用方式,进程之间的连接,P1代码,P2代码,Pn代码,过程代码 ,进程中的控制连接(内部调用): 显式地调用处理代码地址 通过过程调用机制及堆栈机制实现连接 调用过程必须有唯一过程标识和所需要的参数,17,同一机器中进程调用链询方式,请求服务入口表,服务进程代码1 If请求服务=1 else 转向,服务进程代码2 If请求服务=2 else go转向,进程之间的连接采用服务进程控制链,查找过程采用链询方式。 请求服务进程通过登记请求入口表与服务进程连接。,服务进程控制,进程之间的连接,18,进程调用,接 口,分析 执行,进程调用包括三部分: 接口:负责请求调用进程的联系,包括需要的数据转换 分析:按给定的请求确认并找到执行代码段 执行:开始执行,并将执行结果后返回接口,同一机器中进程调用分析方式,19,19,进程1,进程2,进程1代理,网络连接,不同机器空间中的过程调用(远程过程调用) 远程过程调用代理机制: 请求进程代理的工作: 控制标识、运行环境、堆栈、网络连接、接收结果等 响应进程代理的工作: 寻找执行代码段,控制执行服务,返回相应结果,进程2代理,请求进程代理 响应进程代理,20,中断触发连接结构,P1代码,Pn代码,请求事件是突发即时的 通过统一的中断向量表连接到处理事件的代码段 处理事件代码的执行包括:本进程内和独立进程 独立进程包括:同步执行和异步执行,过程代码 事件1 事件2 事件3 ,返回本节,软件的层次结构,层次结构是分析和解决问题普遍适用的方法,单项依赖层次结构: 下层仅向相邻的上层提供支持,上层依赖相邻的下层被建造 开放式层次结构: 使用及支持关系不仅限制在相邻的层次之间,返回本节,22,第二层:软化的硬件层,第三层:基础控制描述层,第四层:资源和管理调度层,第五层:系统结构框架层,第六层:应用层,第一层:计算机硬件层,层次结构示例: 计算机系统层次结构,处理器、存储器、时钟、I/O端口及通道、缓存,等等,状态、指令、中断服务、地址、I/O端口及通道号,等的集合。,程序控制、数据结构、系统模型等基本系统元素。,基于操作系统的任务、进程、消息、输入输出等资源管理。,解释器、转换器、中间件、通用运行环境。,23,单向依赖层次结构示例: ISO/OSI网络协议,应用层,表示层,会话层,传输层,网络层,链路层,物理层,第7层协议,报文,第6层协议,第5层协议,第4层协议,第3层协议,第2层协议,第1层协议,应用层,表示层,会话层,传输层,网络层,链路层,物理层,报文,报文,报文,信息包,帧,Bit,计算机A,计算机B,24,(Shell)解释运行,用户1,用户2,开放式层次结构示例: 操作系统层次结构,语言处理、系统工具、系统应用环境,系统调用,操作系统内核(System Kernel),基本输入/输出(BIOS),计算机硬件(CPU、内存、输入/输出),用户n,25,在大量的软件开发实践中,对于软件结构的设计有被普遍性采用的原则,这些原则和策略多年来一直被广泛地运用着。它们独立于具体的软件开发方法。,抽象 分而治之 信息隐蔽 模块化,高内聚和低耦合 关注点分离 策略和实现分离 接口和实现分离,基本原则包括:,1.4 软件体系结构设计的基本原则,返回目录,26,软件设计原则的依据 -软件质量及评价体系,软件质量定义 按国际标准ISO/8042-1994对软件质量定义: 能满足明确需求的软件实体,所具有能力的特性总合。 按照国家GB/T 11457-2006软件工程术语中定义软件质量为: 软件产品能满足给定需要的性质和特性的总体,27,软件质量模型 可表达软件特性所包含的全部内容 业界认同的软件质量模型: Bohm 质量模型,1976年由Bohm等提出软件质量分层模型 McCall 质量模型,1979年由McCall等人提出的软件质量模型 ISOIEC 9126-1:2001,给出的软件质量模型,28,软件质量,可移植性,可用性,可维护性,可靠性,效率,人类工程,可测性,可理解性,可修改性,设备独立性,自包含性,正确性,完备性,健壮性,一致性,可计测性,设备效率,可存取性,通信性,自描述性,结构化性,简单清晰性,可扩充性,Bohm 质量模型,29,产品修正,产品转移,产品运行,可维护性 可测试性 灵活性,互联性 可移植性 复用性,正确性 可靠性 易用性 效率 完整性,McCall 质量模型,30,外部质量和内部质量,功能性,易用性,可靠性,效率,可维护性,可移植性,使用质量,生产性,有效性,安全性,满意度,ISOIEC 9126-1:2001质量模型,31,抽象的原则,抽象: 人们认识复杂事物的基本方法。抽象的实质是突出表现事物的主要特征和属性,忽略细节部分;并且,运用这些特征和属性,提取具有普遍意义的事物行为。,软件设计中的抽象: 数据抽象:描述特定数据对象的属性集合 过程抽象:特定操作过程命名的操作序列 控制抽象:隐含内部细节的控制逻辑,32,分而治之原则,将大的问题分解,分别处理分解的局部问题,会降低问题的复杂性和难度。,软件设计中运用的分解包括: 纵向分解: 按照事务的过程方式分解,将整体问题分解成为多层,每层完成同一过程的各项处理,并提取规范统一形式的接口,以提供对下层(下一过程)的支持。 横向分解: 在每一层面,将问题分成多项独立的处理部分,它们原则上不要直接的联系,而是通过集中的控制。,33,信息隐蔽的原则,局部化设计: 处理中的所有信息和操作被限制在局部过程中,尽量减少外部的直接接触与共享,提高独立性,减小相互的耦合性。 封装设计: 将处理过程尽量隐蔽,使外界只了解其简单、统一的可访问形式。以减少外界可能的错误干扰和破坏。,设计中运用的信息隐蔽的技术包括:,封装设计 局部化设计,34,模块化的原则,模块可分解:整体问题可被分解成多个模块来解决 模块可组装:现有的模块可被组装用以解决问题 模块可理解:模块可作为独立作用的成分被理解 模块连续性好:对系统的修改只作用于单个的模块 模块保护性好:模块出现异常的影响,仅在模块内部,模块:可被独立命名、具有独立作用的软件成分,35,高内聚和低耦合原则,内聚性: 指软件成份内部各处理单元的关系程度。能做到每个成分都有必然关系,缺一不可的紧密程度是最好的内聚形式。 耦合性: 指软件成份之间的关系特性。软件成份之间应尽量做到没有直接关系,使其保持相对独立、松散耦合的关系会使未来的修改、复用简单,出错带来的影响小。,36,偶然内聚:将没有直接关系,只是分散在多处的成分合起来 逻辑内聚:将仅是逻辑相关的处理成分合起来 时间内聚:将需在同一时间执行并无直接关系的处理成分合起来 过程内聚:将过程顺序相关的处理成分合起来 通讯内聚:将需要对同一个外部数据操作的处理成分合起来 顺序内聚:将两个具有输入输出顺序关系的软件成份合起来 功能内聚:保证每个成分只完成单一的功能,内容耦合:一个软件成份直接修改另一个软件成份的内容 公共耦合:多个软件成份需要处理同一个外部的公共数据 控制耦合:软件成份的动作依赖于接收的控制信号 标记耦合:软件成份的接口参数具有一个复杂的内部结构 数据耦合:软件成份之间仅通过简单类型的形式参数传递,常见的内聚形式,常见的耦合形式,紧密,松散,松散,紧密,37,关注点分离原则 关注点: 关注点是软件系统中特别需要考虑的多变部分。例如,软件成分的执行会受到运行环境、设备条件,以及通信设施等的制约和限制,为了适应不同的运行环境和条件,需要进行必要的参数调整和驱动配置。为此进行的这部分设计和开发,即是所谓的关注点。 关注点分离设计: 软件系统中涉及关注点的成分应该与非关注点的成分分为相互独立的部分,这样的设计会使未来的系统容易配置,实现机器无关性。,功能处理部分,环境适应部分,38,策略和实现分离原则 策略: 策略是指软件中用于处理选择控制的决策成分。通过上下文相关的决策分析、信息语义解释分析、参数选择等进行判断,以决定怎样地具体数据加工和功能实现。 实现: 实现是指软件系统中有规范步骤及完整执行算法的成分 策略和实现分离的设计: 通常,决策部分是异变的成分,而实现

温馨提示

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

评论

0/150

提交评论