软件工程-第6讲R3.ppt_第1页
软件工程-第6讲R3.ppt_第2页
软件工程-第6讲R3.ppt_第3页
软件工程-第6讲R3.ppt_第4页
软件工程-第6讲R3.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

软件工程 第6讲 软件设计,贾西平 Email: ,2 of 96,本课程的学习内容,23:43,2,软件设计三类活动,软件设计概述,5 of 96,提纲,相关概念 体系结构设计的任务工具和原则 系统结构模型,6 of 96,提纲,相关概念 体系结构设计的任务、工具和原则 系统结构模型,7 of 96,相关概念,模块 模块化 模块独立性 抽象 信息隐蔽,8 of 96,模块,概念:独立命名的,拥有明确定义的输入、输出和特性的程序实体。 具体表现:函数、子程序、过程等。 四个特征:输入/输出(接口)、功能、内部数据和程序代码。 输入/输出:实现模块与其他模块间的数据传送. 功能:模块所完成的工作。 内部数据:仅在模块内部使用的局部量。 程序代码:描述实现模块功能的具体方法和步骤。 外部特征:输入/输出、功能 内部特征:内部数据、程序代码,9 of 96,模块化,概念:将整个软件系统划分为若干个模块,每个模块用于实现一个特定的功能。 理论依据:分解复杂问题,各个击破 模块化的好处 降低软件开发的难度、减少工作量 使程序结构清晰,增加易读性和易修改性 有利于提高代码的可重用性及团队合作开发大型软件的可行性。,10 of 96,图5.1 模块数与软件开发成本,开发每个模块的成本,实现模块间通信的成本,最佳模块数M主要依靠经验确定,11 of 96,抽象,概念 将现实世界中具有共性的一类事物的相似的、本质的方面集中概括起来,暂时忽略它们之间的细节差异。,12 of 96,信息隐蔽,概念:模块将自身的内部信息向其他模块隐藏起来,以避免其他模块不恰当的访问和修改. 目的:提高模块的独立性,减少将一个模块中的错误扩散到其他模块的机会。 实质:模块之间的信息传递只允许通过合法的调用接口来实现,模块独立性,概念:开发具有独立功能而和其他模块没有过多关联的模块。 是模块化、抽象、信息隐蔽等概念的直接结果,是判断模块化结构是否合理的标准. 两大优点: 独立的模块由于分解了功能,简化了接口,使得软件比较容易开发; 独立的模块比较容易测试和维护。,13 of 96,14 of 96,模块独立性的度量,两个定性度量标准: 模块自身的内聚,也称为块内联系或模块强度 模块之间的耦合,也称为块间联系。,15 of 96,耦合性,用于度量软件结构内部不同模块间联系的紧密程度。 模块间联系越紧密,耦合性越高,模块的独立性越低。 决定因素:模块接口的复杂程度、调用模块的方式以及通过模块接口的数据。,耦合性分类,非直接耦合:同级模块相互之间没有信息传递。 数据耦合:调用下属模块时,交换的都是简单变量。 特征耦合:调用下属模块时,交换的是数据结构。 控制耦合:模块间传递的信息是作为控制信息的开关值或标志量。 外部耦合:允许一组模块访问同一个全局变量。 公共耦合:允许一组模块访问同一个全局性的数据结构。如:共享的通信区、公共的内存区域、任何存储介质文件、物理设备等。 内容耦合:一个模块可直接调用另一个模块中的数据,或者直接转移到另一个模块中去,或者一个模块有多个入口。,16 of 96,耦合性分类,18 of 96,内聚性,用于度量模块内部各个组成元素之间相互结合的紧密程度。 模块中组成元素结合的越紧密,模块的内聚性越高,独立性越高。 模块的高内聚性往往意味着模块间的低耦合性。 软件设计时应将更多的注意力集中在提高模块的内聚性上。,内聚性分类,偶然内聚:模块内的各个任务在功能上没有实质性联系,因“偶然”因素组合在一起。 逻辑内聚:由若干个逻辑功能相似的任务组成,通过模块外引入的一个开关量选择其一执行。 时间内聚:模块内的各个任务由相同的执行时间联系在一起。例如,初始化模块。 过程内聚:模块内的各个任务必须按照某一特定次序执行。 通信内聚:模块内部的各个任务靠公用数据联系在一起。 顺序内聚:模块内的各个任务是顺序执行的。 功能内聚:模块各个成分结合在一起,完成一个特定的功能。,19 of 96,内聚性分类,逐步求精,逐步求精,或称逐步细化,是一种自顶向下的设计策略。 采用抽象到具体的过程把一个复杂问题趋于简单化控制和管理的有效策略。 抽象和精化是互补的概念。,重构,一种重新组织技术,可简化构件或模块的设计或编码而无需改变其功能或行为。 重构是一种改进程序内部结构,但不改变代码或设计的外部行为。 “先使它转起来,再使它快起来”。,23 of 96,提纲,相关概念 体系结构设计的任务、工具和原则 系统结构模型,总体设计过程,软件设计质量原则,设计过程不应该受“隧道视野”的限制 设计对于分析模型应该是可跟踪的 设计不应该从头做起 设计应该缩短软件和现实问题的“智力距离” 设计应该表现出一致性和集成性 设计应该能够适应修改 设计不是编码 在创建设计时,就应该考虑能够评估其质量 应该复审每一步设计,以减少语义性错误,概要设计说明书,27 of 96,体系结构设计的任务,软件整体结构设计 数据结构和数据库设计 系统可靠性、安全性设计 编写文档,参加复审,28 of 96,软件整体结构设计,将系统按照功能划分为模块 确定模块之间的调用关系及其接口 对划分的结果进行优化和调整,29 of 96,数据结构和数据库设计,对数据字典加以细化,从计算机技术实现的角度出发,确定软件涉及的文件系统及各种数据的结构。 将独立于数据库实现的概念模型与具体的数据库管理系统的特征相结合,建立数据库的逻辑结构 主要包括确定数据库的模式、子模式及对数据库进行规范和优化等。,30 of 96,系统可靠性、安全性设计,可靠性设计 保证程序及其文档具有较高的正确性和容错性,对可能出现的错误易于修改和维护。 安全性设计 增强系统的自我防护能力和运行的稳定性,防止系统遭受到有意或无意地入侵和破坏,保证系统在安全的环境下正常工作。,31 of 96,编写文档,体系结构设计阶段应交付的文档: (1) 体系结构设计说明书:给出系统总体结构设计的结果,为系统的详细设计提供基础。 (2) 用户手册:根据体系结构设计成果,对需求分析阶段编写的用户手册进行补充和修改。 (3) 测试计划:明确测试中应采用的策略、方案、预期的测试结果及测试的进度安排。 (4) 数据库设计说明书:给出目标系统中数据库管理系统的选择及逻辑结构等设计结果,32 of 96,体系结构设计的工具,HIPO图 结构图,33 of 96,HIPO图,HIPO (Hierarchy Plus Input/Processing/Output)图 中文全名:层次图加输入/处理/输出图 实质:在描述软件总体模块结构的层次图(H图)的基础上,加入了用于描述每个模块输入/输出数据和处理功能的IPO图。,34 of 96,H图,用于在体系结构设计过程中描绘软件的层次结构。 适用于自顶向下进行分解的软件结构设计方法,35 of 96,H图示例,图5.3 工资计算系统的H图,最顶层的矩形框表示系统中的主控模块,每一个矩形框代表一个模块,矩形框之间的连线表示模块之间的调用关系,36 of 96,IPO图,IPO图能方便、清晰地描绘出模块的输入数据、加工和输出数据之间的关系。 层次图中每个矩形框都有一张IPO图与之对应,用于描述所代表模块的具体处理过程,37 of 96,图5.4 计算工资模块的IPO图,箭头指明输入数据、加工和输出结果之间的关系。,左边框列出模块的所有输入数据,中间框列出主要的加工,右边框列出模块处理后产生的输出数据,38 of 96,结构图,结构图(SC,Structure Chart) 描述软件系统的模块层次结构,反映程序中各模块之间的调用关系和联系,39 of 96,表5.1 结构图中的基本符号,40 of 96,图5.6 软件结构图示例,41 of 96,体系结构设计的原则,(1) 降低模块的耦合性,提高模块的内聚性 (2) 保持适中的模块规模 (3) 模块应具有高扇入和适当的扇出 (4) 软件结构中的深度和宽度不宜过大 (5) 模块的作用域应处于其控制域范围之内 (6) 尽量降低模块的接口复杂度,42 of 96,图5.5 模块的扇入和扇出 (a) 扇入;(b) 扇出,调用模块M的模块称为M的扇入。,被模块M调用的模块称为M的扇出。,好的软件结构中,模块应具有较高的扇入和适当的扇出。但绝不能为了单纯追求高扇入或合适的扇出而破坏了模块的独立性。,43 of 96,图5.6 软件结构图示例,深度:层数,宽度:同一层上模块数目的最大值,44 of 96,图5.7 模块的作用域和控制域,模块的作用域:指受该模块内一个判定条件影响的所有模块范围。 模块的控制域:指该模块本身以及所有该模块的下属模块。,作用域应处于 控制域范围之内,45 of 96,提纲,相关概念 体系结构设计的任务、工具和原则 系统结构模型,软件系统结构模型,软件体系结构设计过程 识别出子系统,并建立子系统控制和通信的框架,最后给出软件体系结构的一个描述。 两类结构模型: 系统构成模型 系统控制模型,系统构成模型,以数据为中心的结构模型,由一组子系统构成 子系统交换信息,协调工作有两种基本方法: 全部共享数据放在一个中央数据库中,所有子系统都能从中存取数据。 每个子系统用各自的数据库与其他子系统进行数据交互,通过消息传递来实现。 共享数据模型的优点:能够高效地共享大量数据 缺点:子系统一定要与以数据为中心的体系结构模型一致,系统变更或进化比较困难,子系统的需求会不同,难以集成,CASE工具集成系统的系统结构,49 of 96,数据流体系结构模型,输入数据经过一系列的计算和操作构件或模块的变换形成输出数据,管道和过滤器结构,客户机/服务器结构模型,多媒体服务系统结构,抽象机模型,也称为分层模型,是建立子系统的接口模型。 把子系统组织成一系列的层次,每一层定义为一个抽象机,提供一组服务。 例如:网络协议OSI参考模型,网络协议OSI参考模型,系统控制模型,集中式控制模型 事件驱动系统模型,56 of 96,集中式控制模型,调用返回模型:控制始于系统(程序)的顶层,在子系统(程序)调用过程中,控制逐步传递到更低的层次中。 适用于顺序执行的系统。 管理者模型:一个系统组件被指定为系统管理者,控制其他系统过程的启动、终止和协调。 适用于并发系统,并发系统的集中式控制模型,事件驱动的系统模型,广播模型:发生的事件广播到所有子系统,任何能处理该事件的子系统都会响应。 适用于基于网络的分布式系统。 中断驱动模型:由中断处理器对来自外部的中断进行

温馨提示

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

评论

0/150

提交评论