软件工程4ppt课件.ppt
《软件工程4ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程4ppt课件.ppt(94页珍藏版)》请在三一办公上搜索。
1、,第4章 结构化设计 l面向数据流的设计方法,4.1 软件设计概述4.2 软件设计的原理 4.3 模块独立性 4.4 表示软件结构的工具4.5 软件结构设计中的启发规则,4.6 面向数据流的设计方法 l例3:汽车仪表4.7 人机界面设计 4.8 过程设计(详细设计)4.9 面向数据结构的设计方法,第4章 结构化设计 l面向数据流的设计方法,1软件设计分为概要设计和详细设计两个阶段,(1)概要设计:将软件需求转化为软件结构(程序结构、接口)和 数据结构。通过仔细分析软件需求规格说明,确定组成系统的 模块及各模块之间的关系,设计出完成预定功能的 模块结构(软件结构),并建立接口。,(2)详细设计:
2、详细地设计每个模块,即确定完成每个模块功能所需 要的算法和数据结构。,2软件设计与分析模型的关系(图4.1),(1)数据设计:将分析阶段的数据模型(E-R图、数据字 典)转变成实现软件所需要的数据结构。,(2)体系结构设计:将分析阶段的功能模型(DFD)转变 成软件的模块框架。,l结构化分析结果为结构化设计提供了最基本的输入信息,(3)接口设计:根据分析阶段的功能模型(DFD),描述 软件内部、软件与协作系统之间、软件与用户之间的 通信方式。,(4)过程设计(详细设计):根据数据流图中每个处理的 要求及分析阶段的行为模型(状态转换图)设计每个模 块的实现过程,4.2.1 模块化 4.2.2 抽
3、象和逐步求精 4.2.3 信息隐藏,(1)模块:由边界元素限定的程序单元。l 模块是构成程序的基本构件,是指用一个名字可以 调用的一段程序语句,可以将模块理解成类似“子 程序(函数)”的概念。,(2)模块化的含义:将程序划分成独立命名且可独立访问 的若干模块,每个模块完成一个子功能;将模块集成 起来构成一个整体,完成指定的系统功能。,(3)模块化的依据:把复杂的问题分解成许多容易解决的小问题时,原 来的问题也就容易解决了。,l设函数 C(x)表示问题x的复杂程度,函数 E(x)表示解决问题x需要 的工作量(时间)。对于两个问题P1和P2:如果:C(P1)C(P2)则:E(P1)E(P2)根据经
4、验规律:C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2),(4)合理划分模块,可使软件开发成本达到最小,当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本 也减少了;但随着模块数目增加,设计模块间接口所需要的工作量也 将增加。根据以上两个因素,得出每个软件都相应地有一个最适当的模块数目 M,使得系统的开发成本最小。,模块化是对软件的一次划分过程。该划分过程从需求分析 阶段确立的目标系统的功能模型出发,对整个软件问题进 行分割,使软件问题中的每个部分用一个或几个软件成份 加以解决。,(1)抽象:抽象是抽出事物的本质特性而暂时不考虑其 细节的思维方式。处理复杂
5、系统的有效的方法:分层次构造和分析。(对于一个复杂的动态系统,首先用一些高级的抽象概 念构造和理解,这些高级概念又可以用一些较低级的 概念构造和理解,直至构造出最低层次的具体元 素),软件工程过程的每一步都是对软件解法的抽象层次的 一次精化:在可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉 的方式描述的;当由总体设计向详细设计过渡时,抽象的程度也就随 之减少了;最后,当源程序写出来以后,也就达到了抽象的最低层。,(2)逐步求精:从一个高层抽象的功能定义开始,逐步进行功能和信息 的细化,逐步实现越来越多的细节,直至用某种程序设 计语言实现此功能。,l可
6、以把逐步求精定义为:为了能集中精力解决主要问题而尽量推迟对问题细节 的考虑,人类的认知过程遵守Miller法则:一个人在任何时候都只能把注意力集中在(72)个 知识块上。,逐步求精技术的作用:把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说是必要的、然而目 前还不需要考虑的细节,这些细节留到以后再考虑。,(3)抽象与逐步求精是互补的概念:l抽象使得设计者能够集中精力于当前主要的过程和数 据,同时却忽略低层细节。l求精则帮助设计者在设计过程中逐步揭示出低层细节。l可以把抽象看作是一种通过忽略多余的细节同时强调 有关的细节,而实现逐步求精的方法。,信息隐藏:一个模块内包含
7、的信息对于不需要这些信息的模块来说,是不能访问的。,l“隐藏”意味着有效的模块化可以通过定义一组独立的模块来实现,这些模块彼此之间只交换那些为了完成软件功能而必须交换的信息。,“隐藏”定义并施加了对模块内部过程细节和模块使用的局部数据结构 的访问限制。,信息隐藏原理给出了应用模块化分解软件的原则。,l模块独立性含义:软件结构中的每个模块完成一个相对独 立的特定子功能,而和其它模块的接口是简单的。,l模块独立性的度量标准:模块之间的耦合尽可能弱;每个模块的内聚尽可能强。,4.3.1 耦合4.3.2 内聚,1.耦合表示一个软件结构内不同模块之间的互连程度。,2.耦合的强弱取决于模块间接口的复杂程度
8、(调用方式、接口信息性质、通过接口的数据量),3.模块之间的耦合强度由弱到强依次如下:(1)数据耦合:模块间通过参数交换数据。,(2)控制耦合:模块间通过参数交换控制信息。,(3)特征耦合:主调模块将整个数据结构作为参数传递,而被调模块 只需要其中的一部分数据元素。,l在特征耦合中,被调用的模块处理了的数据多于它 确实需要的数据,这将导致对数据的访问失去控制。,(4)公共环境耦合:一组模块通过一个公共数据环境相互作用。l公共环境可以是全程变量、共享的通信区、内存的公 共覆盖区、任何存储介质上的文件和物理设备等 l分为松散的公共环境耦合和紧密的公共环境耦合两种,(5)内容耦合:一个模块访问另一个
9、模块的内部数据 一个模块不通过正常入口转到另一模块的内部。两个模块有一部分程序代码重叠。一个模块有多个入口。,l耦合的强弱:弱 强 数据耦合控制耦合特征耦合公共环境耦合内容耦合,l耦合是影响软件复杂程度的一个重要因素。应该采取下述 设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共 环境耦合的范围,完全不用内容耦合。,1.内聚标志着一个模块内各个元素彼此结合的紧密程度。它是信息隐蔽和局部化概念的自然扩展。理想内聚的模块只做一件事情。,2.模块内各元素之间的内聚强度由弱到强依次如下:(1)偶然内聚:模块内各元素之间关系松散 l模块没有明确功能或模块包括彼此无关的一组功能,(2)逻辑内聚
10、:一个模块内的各功能在逻辑上相同或相似,l这种模块把几种相关的功能组合在一起,每次调用时,由传送给模 块的判定参数来确定该模块应执行哪一种功能。当调用逻辑内聚模 块时需要进行控制参数的传递,增加了模块间的耦合程度。而将未 用的部分也调入内存,降低了系统的效率。,l例如:一个模块可生 成、打印多种报表;多种功能一个界面,靠传递控制参数分别 调用不同功能。,(3)时间内聚:一个模块内各功能须在同一时段内完成,l模块内各个功能的执行与时间有关,通常要求所有 功能必须在同一时间段内执行。一般情形下,时间 内聚模块的各功能可以以任意的顺序执行,所以它 的内部逻辑简单、存在的开关(或判定)转移较少 l例如
11、:初始化模块完成各种初始化工作。,(4)过程内聚:模块内各个部分彼此相关,必须按特定的次序执行。,l通常过程内聚模块仅包括完整功能的一部分,所以 它的内聚程度仍然较低。,(5)通信内聚:模块内各功能使用同一个输入或产生同 一个输出,l通信内聚模块中包括了若干独立的功能。l通信内聚模块的缺点是它容易产生重复的联结或重复的功能。因 为各成分执行的次序可以是任意的,有的模块调用它时,可能只 需执行其中的部分动作,另一部分则为多余联结。而且维护起来 也不方便。l例如:一个模块完成对同一文件的输入、修改、删除操作,(6)顺序内聚:模块内各处理元素与同一个功能密切相关,且必须 顺序执行,即前一个处理动作产
12、生的输出数据是下 一个处理动作的输入数据。,(7)功能内聚:模块内各部分属于一个整体、为完成一项单一功能而协 同工作、不可分割。,l内聚的强弱:弱 强 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚,l模块的内聚在系统的模块化设计中是一个关键的因素。软件设计中,应力求做到高内聚,提高模块独立性。,(1)层次图(Hierarchy 图):表示了模块和模块间的调用关系(图4.4,图4.5),(2)HIPO图(Hierarchy plus Input,Process,Output):用层次图表示模块和模块间调用关系;用IPO图表示各个模块的处理过程。lIPO:输入、处理、输出(图4.6,图
13、4.7),(3)结构图:,l结构图作用:表示模块及模块间的调用关系;表示模块间的信息传递,M循环调用A、B、C:,判定为真时调用A、为 假时调用B,(1)改进软件结构提高模块独立性:通过分解或合并模块,降低耦合、提高内聚。,(2)每个模块的规模适中:过大的模块往往是由于分解不充分、会降低独立性。过小的模块开销大于有效操作,而且模块数目过多将 使系统接口复杂。,(3)深度、宽度、扇出和扇入要适当(图示),设计得很好的软件结构通常顶层模块扇出大、中层模块扇出 较小,底层模块扇入大(底层一般是公共的实用模块),(4)模块的作用域应在控制域之内,l模块的作用域:受该模块内一个判定影响 的所有模块集合,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 ppt 课件
链接地址:https://www.31ppt.com/p-5640403.html