《结构化概要设计》PPT课件.ppt_第1页
《结构化概要设计》PPT课件.ppt_第2页
《结构化概要设计》PPT课件.ppt_第3页
《结构化概要设计》PPT课件.ppt_第4页
《结构化概要设计》PPT课件.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程 第七讲 结构化概要设计 朱建凯,本次课程需要掌握的内容,什么是软件设计?软件设计要达到的目标(重要) 总体设计阶段的任务(了解) 数据流图的分类(重要) 内聚和耦合的种类(非常重要) 基于数据流图的程序设计方法(了解),结构化设计方法 1)何谓设计 设计目标:依据需求规约,在一个抽象层上建立系统软件 模型,包括软件体系结构(数据和程序结构),以及详细的处理算法,产生设计规格说明书.,一种软件开发活动,定义实现需求规约所需结构.,总体设计阶段的任务: 1、划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细

2、设计。 2、设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。,总体设计过程通常由两个主要阶段组成: 系统设计阶段,确定系统的具体实现方案; 结构设计阶段,确定软件结构。 1. 设想供选择的方案 在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。,设计过程,2. 选取合理的方案 应该从前一步得到的一系列供选择的方案中选取若干个合理的方案,通常至少选取低成本、中等成本和高成本的三种方案。 对每个合理的方案分析员都应该准备下列4份资料: (1) 系统流程图; (2) 组成系统的物理元素清单; (3) 成本/效益分析; (4) 实现这个系

3、统的进度计划。,3. 推荐最佳方案 分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。 通过内部评审,且使用部门的负责人也接受了分析员所推荐的方案之后,进入总体设计过程的下一个重要阶段结构设计。,4. 功能分解 结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。 5. 设计软件结构 通常程序中的一个模块完成一个适当的子功能。把模块组织成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功

4、能。,6. 设计数据库 对于需要使用数据库的那些应用系统,软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。 7. 制定测试计划 在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。,8. 书写文档 应该用正式的文档记录总体设计的结果,在这个阶段应该完成的文档通常有下述几种: (1) 系统说明主要内容包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本/效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用IPO图或其他工具(例如,PDL语言)简要描述的各个模块的算法,模块间的接口关系,以及需求、

5、功能和模块三者之间的交叉参照关系等等。 (2) 用户手册根据总体设计阶段的结果,修改更正在需求分析阶段产生的初步的用户手册。,(3) 测试计划包括测试策略,测试方案,预期的测试结果,测试进度计划等等。 (4) 详细的实现计划 (5) 数据库设计结果 9. 审查和复审 最后应该对总体设计的结果进行严格的技术审查,在技术审查通过之后再由使用部门的负责人从管理角度进行复审。,2)结构化设计方法 ()在总体设计层 -引入了两个术语/符号 模块:一种可独立标识的软件成分. 调用:模块间的一种关系,模块A为了完成其任务必须 依赖其他模块. -引入了模块结构图 用于表达软件系统的静态结构.,-过程指导 为了

6、实现设计目标, 总体设计的具体任务是: 将DFD转化为MSD 分二步实现: 第一步:如何将DFD转化为初始的MSD 分类:变换型数据流图 事务型数据流图 变换设计 事务设计,数据流图分类 变换型: 事务型,1,2,3,4,5,6,7,8,a,b,c,d,e,f,h,g,y,x,z,1,2,3,5,4,6,a,b,c,d,e,f,g,y,变换设计,XX系统,变换模块,get e,put h,put g,get c,get d,c,d-e,e-f,f-g,h,h-y,put y,g-x,put x,x-z,put z,get a,get b,b-d,a-c,e,e,g,h,h,g,z,z,x,x,

7、g,y,y,h,d,b,c,a,c,d,e,e,f,g,h,f,x,a,b,事务设计,事务中心,输入模块,路径1,路径2,输出模块,a,y,c,g,b,f,c-e,c,e,e-g,e,g,b-d,b,d,d-f,d,f,最后生成HIPO图 和H图中每个方框相对应,应该有一张IPO图描绘这个方框代表的模块的处理过程。HIPO图中的每张IPO图内都应该明显地标出它所描绘的模块在H图中的编号,以便追踪了解这个模块在软件结构中的位置。,带编号的层次图(H图),第二步:如何将初始的MSD转化为最终可供详 细设计使用的MSD 基于模块化原理-高内聚 低耦合, 给出一些设计规则经验规则, 用于精化初始的MS

8、D 体现设计人员的创造,模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。 开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。换句话说,希望这样设计软件结构,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。,3)模块独立,模块独立性重要性: 第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。 第二,独立的模块比较容易测试和维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够“插入”模块。

9、,耦合:不同模块之间相互依赖程度的度量。 耦合类型: 内容耦合: 一个模块访问另一个模块的内部数据; 一个模块不通过正常入口而转到另一个模块的内部; 两个模块有一部分程序代码重叠; 一个模块有多个入口。 公共耦合:两个以上的模块共同引用一个全局数据项。 控制耦合:一个模块向另一模块传递一个控制信号, 接受信号的模块将依据该信号值进行必要的活动。 标记耦合:两个模块至少有一个通过界面传递的公共 有结构的参数。 数据耦合:模块间通过参数传递基本类型的数据。,内聚:一个模块之内各成分之间相互依赖程度的度量。 内聚类型: 偶然内聚:一个模块之内各成分之间没有任何关系。 逻辑内聚:几个逻辑上相关的功能放

10、在同一模块中。 时间内聚:一个模块完成的功能必须在同一时间内完成,而 这些功能只是因为时间因素关联在一起。 过程内聚:处理成分必须以特定的次序执行。 通信内聚:各成分都操作在同一数据集或生成同一数据集。 顺序内聚:各成分与一个功能相关,且一个成分的输出作为 另一成分的输入。 功能内聚:模块的所有成分对完成单一功能是最基本的,且 该模块对完成这一功能而言是充分必要的。,启发性规则-经验的总结 (1)改进软件结构,提高模块独立性; (2)模块规模适中-每页60行语句; (3)深度、宽度、扇入和扇出适中; (4)模块的作用域力争在控制域之内; (5)降低模块接口的复杂性; (6)模块功能应该可以预测

11、。,模块的作用域和控制域,应用示例:数字仪表板系统的精化,读旋转信号,收集并 求平均,转换成 转/分,计算 gph,读并 校核,确定 加速/减速,计算里程,计算mph 和超速值,计算 燃料消耗,产生 加速/减速显示,产生 里程显示,发出 铃声,产生 mph显示,产生 mpg显示,旋转信号,信号/秒,(sps),sps,燃烧流 传感器信号,燃烧流,gph,sps,rpm,rpm,箭头指示,上箭头,下箭头,水平线,英里,超速值,mph,mpg,mpg显示,mph显示,铃声,里程显示,输入部分,Get gph,Get rpm,Get sps,Get 燃料流,变换燃料流为 ghp,Get 燃转信号,变

12、换燃转信 号为燃料流,变换sps为 rpm,Get sps,Get sps,转换为 sps,Get 转速信号,变换为sps,变换为 sps,、 数字仪表板系统输入部分的精化 输入部分的初始模块结构图,转速信号,转速信号,燃料流,燃料流,燃料流,gph,sps,sps,rpm,sps,rpm,gph,sps,sps,sps,sps,sps,sps,sps,转速信号,转速信号,输入部分,计算gph,计算rpm,计算 sps,读燃转信号,采集sps,读转速信号,使用启发式规则1,并考虑其它规则, 可以将输入部分的模块结构图精化为:,其中:sps为转速的每秒信号量;sps 为sps的平均值; sps为

13、sps的瞬时 变化值;rpm为每分钟转速;mph为每小时英里数;gph为每小时燃烧 的燃料加仑数;rpm为行进里程。,输出部分,PUT mpg,PUT mph,PUT里程,PUT 加/减速,PUT 超速量,显示,显示,显示,、数字仪表板系统输出部分的精化 输出部分的初始模块结构图,显示,对于这一初始的模块结构图,一般情况下应: 把相同或类似的物理输出合并为一个模块,以减少模块之间的关联。就本例而言: 左边前三个“显示”,基本上属于相似的物理输出,因此可以把它们合并为一个显示模块。而将“PUT mpg”模块和相关的“生成显示的模块合并为一个模块;同样地,应把“PUT mph”模块、“PUT里程”

14、各自与相关的生成显示的模块合并为一个模块,参见下图。 其它求精的规则,与输入部分类同。例如,可以将“PUT 加/减速”模块与其下属的两个模块合并为一个模块,将“PUT 超速量”模块与其下属的两个模块合并为一个模块 。,输出模块,生成mpg 显示,生成mph 显示,生成里程 显示,生成加/减速显示,生成蜂鸣,显示,通过以上求精之后,可得如下的模块结构图,变换模块,计算mpg,计算mph,计算里程,计算加/减速,、变换部分的精化 首先,应该了解:对于变换部分的求精,是一项具有挑战性的工作。其中主要是根据设计准则,并要通过实践,不断地总结经验,才能设计出合理的模块结构。 就给定的数字仪表板系统而言,如果把“确定加/减速”的模块放在“计算速度mph”模块下面,则可以

温馨提示

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

评论

0/150

提交评论