软件设计思路ppt课件.ppt

上传人:飞****2 文档编号:29418662 上传时间:2022-07-30 格式:PPT 页数:92 大小:1.14MB
返回 下载 相关 举报
软件设计思路ppt课件.ppt_第1页
第1页 / 共92页
软件设计思路ppt课件.ppt_第2页
第2页 / 共92页
点击查看更多>>
资源描述

《软件设计思路ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件设计思路ppt课件.ppt(92页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第5章 总体设计5.1 5.1 设计过程设计过程5.2 5.2 设计原理设计原理5.3 5.3 启发规则启发规则5.4 5.4 描绘软件结构的图形工具描绘软件结构的图形工具5.5 5.5 面向数据流的设计方法面向数据流的设计方法5.6 5.6 小结小结习题习题软件设计软件设计 需求分析需求分析: :软件系统必须软件系统必须“做什么做什么” ;软件设计:软件设计:“如何做如何做”才可以满足需求规格说明中才可以满足需求规格说明中规定的各项需求。规定的各项需求。 从工程管理的角度来看,软件设计通常分为两步,从工程管理的角度来看,软件设计通常分为两步,即概要设计和详细设计。即概要设计和详细设计。概要设

2、计的基本目的是回答概要设计的基本目的是回答“概括地说,软件系统应概括地说,软件系统应如何实现如何实现”这一问题。因此,概要设计有时称为这一问题。因此,概要设计有时称为初步初步设计或总体设计设计或总体设计。这个阶段的工作将划分出组成系统的这个阶段的工作将划分出组成系统的物理元素物理元素程序、文件、数据库、人工过程和文档等,每个物理元素仍处在黑盒子级,具体内容将在以后仔细设计。概要设计的关键是确定软件的总体结构,即确定软件概要设计的关键是确定软件的总体结构,即确定软件系统的组成成份(子系统或模块)以及各组成成份之系统的组成成份(子系统或模块)以及各组成成份之间的相互关系。间的相互关系。软件设计软件

3、设计( ( 续)续) 详细设计是对概要设计结果的进一步细化,其主要任详细设计是对概要设计结果的进一步细化,其主要任务是确定软件系统各组成成份内部的数据结构和算法务是确定软件系统各组成成份内部的数据结构和算法过程过程方法:结构化方法、面向对象方法方法:结构化方法、面向对象方法 软件设计软件设计( ( 续)续) 总体设计过程l首先寻找实现目标系统的各种不同的方案(需求分析阶段得到的数据流图是设想各种可能方案的基础)。l然后分析员从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本效益/分析,并且制定实现出一个最佳方案的进度计划。l系统

4、分析员推荐最佳方案,用户接受后,为这个最佳方案设计软件结构。进行必要的数据库设计,确定测试要求并制定测试计划。总体设计的必要性可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。5.1 设计过程1. 设想供选择的方案应该从前一步得到的一系列供选择的方案中选取若应该从前一步得到的一系列供选择的方案中选取若干个合理的方案,干个合理的方案,通常至少选取低成本、中等成本和高通常至少选取低成本、中等成本和高成本的三种方案成本的三种方案。在判断哪些方案合理时应该考虑在问。在判断哪些方案合理时应

5、该考虑在问题定义和可行性研究阶段确定的工程规模和目标,有时题定义和可行性研究阶段确定的工程规模和目标,有时可能还需要进一步征求用户的意见。可能还需要进一步征求用户的意见。对每个合理的方案分析员都应该准备下列对每个合理的方案分析员都应该准备下列4 4份资料:份资料:(1) (1) 系统流程图;系统流程图;(2) (2) 组成系统的物理元素清单;组成系统的物理元素清单;(3) (3) 成本成本/ /效益分析;效益分析;(4) (4) 实现这个系统的进度计划。实现这个系统的进度计划。2. 选取合理的方案分析员应该综合分析对比各种合理方案的利弊,推荐一分析员应该综合分析对比各种合理方案的利弊,推荐一个

6、最佳的方案,并且为推荐的方案制定详细的实现计划。制个最佳的方案,并且为推荐的方案制定详细的实现计划。制定详细实现计划的关键技术是本书第定详细实现计划的关键技术是本书第1313章中将要介绍的工程章中将要介绍的工程网络。网络。用户和有关的技术专家应该认真审查分析员所推荐的最用户和有关的技术专家应该认真审查分析员所推荐的最佳系统,如果该系统确实符合用户的需要,并且是在现有条佳系统,如果该系统确实符合用户的需要,并且是在现有条件下完全能够实现的,则应该提请使用部门负责人进一步审件下完全能够实现的,则应该提请使用部门负责人进一步审批。在使用部门的负责人也接受了分析员所推荐的方案之后,批。在使用部门的负责

7、人也接受了分析员所推荐的方案之后,将进入总体设计过程的下一个重要阶段将进入总体设计过程的下一个重要阶段结构设计。结构设计。3. 推荐最佳方案为了最终实现目标系统,必须设计出组成这个系统的所有为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件程序和文件( (或数据库或数据库) )。对程序。对程序( (特别是复杂的大型程序特别是复杂的大型程序) )的设的设计,通常分为两个阶段完成:计,通常分为两个阶段完成:首先进行结构设计,然后进行过首先进行结构设计,然后进行过程设计程设计。结构设计确定程序由哪些模块组成,以及这些模块之。结构设计确定程序由哪些模块组成,以及这些模块之间的关系;过程设计确

8、定每个模块的处理过程。结构设计是总间的关系;过程设计确定每个模块的处理过程。结构设计是总体设计阶段的任务,过程设计是详细设计阶段的任务。体设计阶段的任务,过程设计是详细设计阶段的任务。为确定软件结构,首先需要从实现角度把复杂的功能进一为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。步分解。分析员结合算法描述仔细分析数据流图中的每个处理,分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。一般说来,经过分解之后应该使每个一系列比较简单的功能。一般说来,经过分解之

9、后应该使每个功能对大多数程序员而言都是明显易懂的。功能分解导致数据功能对大多数程序员而言都是明显易懂的。功能分解导致数据流图的进一步细化,同时还应该用流图的进一步细化,同时还应该用IPOIPO图或其他适当的工具简要图或其他适当的工具简要描述细化后每个处理的算法。描述细化后每个处理的算法。4. 功能分解通常程序中的一个模块完成一个适当的子功能。通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统,顶层模块调用应该把模块组织成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一

10、个子功块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能能,最下层的模块完成最具体的功能。软件结构。软件结构( (即即由模块组成的层次系统由模块组成的层次系统) )可以用层次图或结构图来描可以用层次图或结构图来描绘,第绘,第5.45.4节将介绍这些图形工具。节将介绍这些图形工具。如果数据流图已经细化到适当的层次,则可以如果数据流图已经细化到适当的层次,则可以直接从数据流图映射出软件结构,这就是第直接从数据流图映射出软件结构,这就是第5.55.5节中节中将要讲述的面向数据流的设计方法。将要讲述的面向数据流的设计方法。5. 设计软件结构对于需要使用数据库的那些应用系统,软

11、件工程师应该对于需要使用数据库的那些应用系统,软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。计数据库。在数据库课中已经详细讲述了设计数据库的方法,本书在数据库课中已经详细讲述了设计数据库的方法,本书不再赘述。不再赘述。6. 设计数据库在软件开发的早期阶段考虑测试问题,能促使在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。本软件设计人员在设计时注意提高软件的可测试性。本书第书第7 7章将仔细讨论软件测试的目的和设计测试方案章将仔细讨论软件测试的目的和设计测试方案的各种技术方法。的

12、各种技术方法。7. 制定测试计划应该用正式的文档记录总体设计的结果,在这个阶段应该应该用正式的文档记录总体设计的结果,在这个阶段应该完成的文档通常有下述几种:完成的文档通常有下述几种:(1) (1) 系统说明系统说明主要内容包括用系统流程图描绘的系统构成方案,主要内容包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本组成系统的物理元素清单,成本/ /效益分析;对最佳方案的概效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用用IPOIPO图或其他工具图或其他工具( (例如,例如,PDLPDL语言

13、语言) )简要描述的各个模块的算简要描述的各个模块的算法,模块间的接口关系,以及需求、功能和模块三者之间的交法,模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系等等。叉参照关系等等。(2) (2) 用户手册用户手册根据总体设计阶段的结果,修改更正在需求分析根据总体设计阶段的结果,修改更正在需求分析阶段产生的初步的用户手册。阶段产生的初步的用户手册。(3) (3) 测试计划测试计划包括测试策略,测试方案,预期的测试结果,测包括测试策略,测试方案,预期的测试结果,测试进度计划等等。试进度计划等等。(4) (4) 详细的实现计划详细的实现计划(5) (5) 数据库设计结果数据库设计结果8

14、. 书写文档最后应该对总体设计的结果进行严格的技术审查,最后应该对总体设计的结果进行严格的技术审查,在技术审查通过之后再由使用部门的负责人从管理角度在技术审查通过之后再由使用部门的负责人从管理角度进行复审。进行复审。9. 审查和复审5.2 设计原理5.2.2 抽象 抽象就是抽出事物的本质特性而暂时不考虑它抽象就是抽出事物的本质特性而暂时不考虑它们的细节。们的细节。 软件工程过程的每一步都是对软件解法的抽象层次软件工程过程的每一步都是对软件解法的抽象层次的一次精化。在可行性研究阶段,软件作为系统的一个的一次精化。在可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环

15、完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉的方式描述的;当由总体设计向详细设计过渡境内熟悉的方式描述的;当由总体设计向详细设计过渡时,抽象的程度也就随之减少了;最后,当源程序写出时,抽象的程度也就随之减少了;最后,当源程序写出来以后,也就达到了抽象的最低层。来以后,也就达到了抽象的最低层。5.2.3 逐步求精逐步求精:逐步求精:为了能集中精力解决主要问题而尽量推为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。迟对问题细节的考虑。人类的认知过程遵守人类的认知过程遵守MillerMiller法则:一个人在任法则:一个人在任何时候都只能把注意力集中在(何时候都只能把注意力集中在(

16、7 72 2)个知识块上。)个知识块上。逐步求精方法的强大作用就在于,它能帮助软逐步求精方法的强大作用就在于,它能帮助软件工程师把精力集中在与当前开发阶段最相关的那件工程师把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说虽然是些方面上,而忽略那些对整体解决方案来说虽然是必要的,然而目前还不需要考虑的细节,这些细节必要的,然而目前还不需要考虑的细节,这些细节将留到以后再考虑。将留到以后再考虑。5.2.4 信息隐藏和局部化5.2.5 模块独立模块独立化有如下优点:模块独立化有如下优点:1.1.有效的模块化有效的模块化( (即具有独立的模块即具有独立的模块) )的软件比较容

17、易开发出的软件比较容易开发出来。来。2.2.独立的模块比较容易测试和维护。独立的模块比较容易测试和维护。模块的独立程度可以由内聚和耦合两个定性标准度量模块的独立程度可以由内聚和耦合两个定性标准度量: :耦合耦合衡量不同模块彼此间互相依赖衡量不同模块彼此间互相依赖( (连接连接) )的紧密程度;的紧密程度;内聚内聚衡量一个模块内部各个元素彼此结合的紧密程度。衡量一个模块内部各个元素彼此结合的紧密程度。1. 耦合内聚标志一个模块内各个元素彼此结合的紧密内聚标志一个模块内各个元素彼此结合的紧密程度,简单地说,理想内聚的模块只做一件事情。程度,简单地说,理想内聚的模块只做一件事情。设计时应该力求做到高

18、内聚,内聚和耦合是密切相设计时应该力求做到高内聚,内聚和耦合是密切相关,模块内的高内聚往往意味着模块间的松耦合。关,模块内的高内聚往往意味着模块间的松耦合。2. 内聚5.3 启发规则1. 改进软件结构提高模块独立性2. 模块规模应该适中3. 深度、宽度、扇出和扇入都应适当编外编外人员人员工资工资取得取得工资工资数据数据 计时计时制工制工资额资额薪金薪金制工制工资额资额编外编外人员人员税款税款编外编外人员人员扣款扣款常规常规扣款扣款税收税收扣款扣款计算实发工资计算实发工资避免平铺结构编外编外人员人员工资工资取得工取得工资数据资数据 计时计时制工制工资额资额薪金薪金制工制工资额资额编外编外人员人员

19、税款税款编外编外人员人员扣款扣款常规常规扣款扣款税收税收扣款扣款计算实发工资计算实发工资计时工人计时工人实发工资实发工资计薪工人计薪工人实发工资实发工资编外人员编外人员实发工资实发工资增加中间层降低扇出增加中间层降低扇出4. 模块的作用域应该在控制域之内CHDEGXFAILJKB5. 力争降低模块接口的复杂程度6. 设计单入口单出口的模块7. 模块功能应该可以预测5.4 描绘软件结构的图形工具层次图层次图HIPO图(可追踪)IPO图来描述处理过程结构图模块的名字或主要功能调用关系传递的信息(数据流和控制流)5.5 面向数据流的设计方法(结构化设计 方法SD)5.5.1 概念1. 变换流2. 事

20、务流3. 设计过程流类型流类型复查复查事务分析事务分析变换分析变换分析5.5.2 变换分析变换流映射c,ec,eu,wu,wabdecepc,prru,wwuv1. 例子2. 设计步骤第4步 确定输入流和输出流的边界,从而孤立出变换中心图图5.12具有边界的数据流图具有边界的数据流图第5步 完成“第一级分解”图图5.13 5.13 第一级分解的方法第一级分解的方法图图5.14 5.14 数字仪表板系统的第一级分解数字仪表板系统的第一级分解第6步 完成“第二级分解”。图图5.15 5.15 第二级分解的方法第二级分解的方法第7步 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。5.

21、5.3 事务分析事务流映射方法:混合流设计5.5.4 设计优化案例高校录取统分子系统有如下功能:源点源点/ /终点终点 处理处理 数据流数据流 数据存储数据存储 数据流图:系统的软件结构图:原始分原始分标准分标准分招生人数招生人数录取线分录取线分统分子系统统分子系统处理标准分处理标准分取得原始分取得原始分计算标准分计算标准分存取标准分存取标准分计算录取线分计算录取线分取得招生人数取得招生人数存录取线分存录取线分 计算计算标准分标准分计算计算录取线分录取线分招生计划文件招生计划文件考生分数文件考生分数文件录取线文件录取线文件标准分文件标准分文件原始分原始分标准分标准分标准分标准分标准分标准分招生

22、数招生数录取线分录取线分系统的数据流图:统分子系统取得标准分取得招生数计算录取分数线取得原始分计算标准分登录考生分数登录录取线分原始分标准分招生数录取线分统分子系统统分子系统取得标准分取得标准分取得招生数取得招生数计算录取分计算录取分数线数线取得原始分取得原始分计算标准分计算标准分登录考生分登录考生分数数登录录取线登录录取线分分原始分原始分标准分标准分招生数招生数 录 取 线 录 取 线分分系统的软件结构图:5.6 小结习题接收工资数据计算工资印出计算结果计算教职工工资图图1:工资支付系统的第一级分解:工资支付系统的第一级分解5.4 参考答案收集事务数据审核事务数据取数据接收工资数据计算正常工资计算超额课时费更新年度数据计算工资印表格印出计算结果计算教职工工资图图2:工资支付系统的第二级分解:工资支付系统的第二级分解收集事务数据审核事务数据取数据计算正常工资计算超额课时费更新年度数据计算工资印表格计算教职工工资图图3:优化后的工资支付软件结构:优化后的工资支付软件结构

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com