《软件设计思路》PPT课件.ppt
《《软件设计思路》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、接受后,为这个最佳方案设计软件结构。进行必要的数据库设计,确定测试要求并制定测试计划。总体设计的必要性可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。q总体设计过程由两个主要阶段总体设计过程由两个主要阶段总体设计过程由两个主要阶段总体设计过程由两个主要阶段(包括包括包括包括9 9 9 9个步骤个步骤个步骤个步骤)组成:组成:组成:组成:(1)(1)(1)(1)系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;系统设
5、计阶段,确定系统的具体实现方案;(2)(2)(2)(2)结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。q设计原理设计原理设计原理设计原理:模块化、抽象、信息隐藏和局部化、模块独立模块化、抽象、信息隐藏和局部化、模块独立模块化、抽象、信息隐藏和局部化、模块独立模块化、抽象、信息隐藏和局部化、模块独立q模块的独立程度度量:模块的独立程度度量:模块的独立程度度量:模块的独立程度度量:内聚和耦合,在软件设计中应该追内聚和耦合,在软件设计中应该追内聚和耦合,在软件设计中应该追内聚和耦合,在软件设计中应该追求尽可能求尽可能求尽可能求尽可能松
6、耦合、高内聚松耦合、高内聚松耦合、高内聚松耦合、高内聚的系统。的系统。的系统。的系统。q启发规则:启发规则:启发规则:启发规则:7 7 7 7条规则条规则条规则条规则q描绘软件结构的图形工具:描绘软件结构的图形工具:描绘软件结构的图形工具:描绘软件结构的图形工具:层次图、层次图、层次图、层次图、HIPOHIPOHIPOHIPO图、结构图图、结构图图、结构图图、结构图q面向数据流的设计方法:面向数据流的设计方法:面向数据流的设计方法:面向数据流的设计方法:变换流分析、事务流分析变换流分析、事务流分析变换流分析、事务流分析变换流分析、事务流分析5.1 设计过程总体设计过程通常由两个主要阶段组成:总
7、体设计过程通常由两个主要阶段组成:总体设计过程通常由两个主要阶段组成:总体设计过程通常由两个主要阶段组成:(1)(1)(1)(1)系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;系统设计阶段,确定系统的具体实现方案;(2)(2)(2)(2)结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。结构设计阶段,确定软件结构。典型的总体设计过程包括下述典型的总体设计过程包括下述典型的总体设计过程包括下述典型的总体设计过程包括下述9 9 9 9个步骤:个步骤:个步骤:个步骤:1.1.1.1.设想供选择的方案
8、设想供选择的方案设想供选择的方案设想供选择的方案2.2.2.2.选取合理的方案选取合理的方案选取合理的方案选取合理的方案3.3.3.3.推荐最佳方案推荐最佳方案推荐最佳方案推荐最佳方案4.4.4.4.功能分解功能分解功能分解功能分解5.5.5.5.设计软件结构设计软件结构设计软件结构设计软件结构6.6.设计数据库设计数据库设计数据库设计数据库7.7.制定测试计划制定测试计划制定测试计划制定测试计划8.8.书写文档书写文档书写文档书写文档9.9.审查和复审审查和复审审查和复审审查和复审在总体设计阶段分析员应该考虑各种可能的实现方案,在总体设计阶段分析员应该考虑各种可能的实现方案,在总体设计阶段分
9、析员应该考虑各种可能的实现方案,在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。在总体设计阶段开始时只有并且力求从中选出最佳方案。在总体设计阶段开始时只有并且力求从中选出最佳方案。在总体设计阶段开始时只有并且力求从中选出最佳方案。在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物系统的逻辑模型,分析员有充分的自由分析比较不同的物系统的逻辑模型,分析员有充分的自由分析比较不同的物系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案,一旦选出了最佳的方案,将能大大提高系统理实现方案,一旦选出了最佳的方案,将能大大提高系统理实现方案,一旦选出
10、了最佳的方案,将能大大提高系统理实现方案,一旦选出了最佳的方案,将能大大提高系统的性能的性能的性能的性能/价格比。价格比。价格比。价格比。需求分析阶段得出的数据流图是总体设计的极好的出需求分析阶段得出的数据流图是总体设计的极好的出需求分析阶段得出的数据流图是总体设计的极好的出需求分析阶段得出的数据流图是总体设计的极好的出发点。设想供选择的方案的一种常用的方法是,发点。设想供选择的方案的一种常用的方法是,发点。设想供选择的方案的一种常用的方法是,发点。设想供选择的方案的一种常用的方法是,设想把数设想把数设想把数设想把数据流图中的处理分组的各种可能的方法,抛弃在技术上行据流图中的处理分组的各种可能
11、的方法,抛弃在技术上行据流图中的处理分组的各种可能的方法,抛弃在技术上行据流图中的处理分组的各种可能的方法,抛弃在技术上行不通的分组方法不通的分组方法不通的分组方法不通的分组方法(例如,组内不同处理的执行时间不相容例如,组内不同处理的执行时间不相容例如,组内不同处理的执行时间不相容例如,组内不同处理的执行时间不相容),余下的分组方法代表可能的实现策略,并且可以启示供,余下的分组方法代表可能的实现策略,并且可以启示供,余下的分组方法代表可能的实现策略,并且可以启示供,余下的分组方法代表可能的实现策略,并且可以启示供选择的物理系统。选择的物理系统。选择的物理系统。选择的物理系统。1.设想供选择的方
12、案应该从前一步得到的一系列供选择的方案中选取若干应该从前一步得到的一系列供选择的方案中选取若干个合理的方案,个合理的方案,通常至少选取低成本、中等成本和高成本通常至少选取低成本、中等成本和高成本的三种方案的三种方案。在判断哪些方案合理时应该考虑在问题定义。在判断哪些方案合理时应该考虑在问题定义和可行性研究阶段确定的工程规模和目标,有时可能还需和可行性研究阶段确定的工程规模和目标,有时可能还需要进一步征求用户的意见。要进一步征求用户的意见。对每个合理的方案分析员都应该准备下列对每个合理的方案分析员都应该准备下列4 4份资料:份资料:(1)(1)系统流程图;系统流程图;(2)(2)组成系统的物理元
13、素清单;组成系统的物理元素清单;(3)(3)成本成本/效益分析;效益分析;(4)(4)实现这个系统的进度计划。实现这个系统的进度计划。2.选取合理的方案分析员应该综合分析对比各种合理方案的利弊,推荐一分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。制个最佳的方案,并且为推荐的方案制定详细的实现计划。制定详细实现计划的关键技术是本书第定详细实现计划的关键技术是本书第1313章中将要介绍的工程章中将要介绍的工程网络。网络。用户和有关的技术专家应该认真审查分析员所推荐的最用户和有关的技术专家应该认真审查分析员所推荐的最佳系统,如果该系统确实符合用户的
14、需要,并且是在现有条佳系统,如果该系统确实符合用户的需要,并且是在现有条件下完全能够实现的,则应该提请使用部门负责人进一步审件下完全能够实现的,则应该提请使用部门负责人进一步审批。在使用部门的负责人也接受了分析员所推荐的方案之后,批。在使用部门的负责人也接受了分析员所推荐的方案之后,将进入总体设计过程的下一个重要阶段将进入总体设计过程的下一个重要阶段结构设计。结构设计。3.推荐最佳方案为了最终实现目标系统,必须设计出组成这个系统的所有为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件程序和文件(或数据库或数据库)。对程序。对程序(特别是复杂的大型程序特别是复杂的大型程序)的设的设计,
15、通常分为两个阶段完成:计,通常分为两个阶段完成:首先进行结构设计,然后进行过首先进行结构设计,然后进行过程设计程设计。结构设计确定程序由哪些模块组成,以及这些模块之。结构设计确定程序由哪些模块组成,以及这些模块之间的关系;过程设计确定每个模块的处理过程。结构设计是总间的关系;过程设计确定每个模块的处理过程。结构设计是总体设计阶段的任务,过程设计是详细设计阶段的任务。体设计阶段的任务,过程设计是详细设计阶段的任务。为确定软件结构,首先需要从实现角度把复杂的功能进一为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。步分解。分析员结合算法描述仔细分析数据流图中的每个处理,分析员结合算法描述仔
16、细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。一般说来,经过分解之后应该使每个一系列比较简单的功能。一般说来,经过分解之后应该使每个功能对大多数程序员而言都是明显易懂的。功能分解导致数据功能对大多数程序员而言都是明显易懂的。功能分解导致数据流图的进一步细化,同时还应该用流图的进一步细化,同时还应该用IPOIPO图或其他适当的工具简要图或其他适当的工具简要描述细化后每个处理的算法。描述细化后每个处理的算法。4.功能分解通常程序中的一个模块完成一个适当的子功能。通常程序中的一个模块完成一
17、个适当的子功能。应该把模块组织成良好的层次系统,顶层模块调用应该把模块组织成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能能,最下层的模块完成最具体的功能。软件结构。软件结构(即即由模块组成的层次系统由模块组成的层次系统)可以用层次图或结构图来描可以用层次图或结构图来描绘,第绘,第5.45.4节将介绍这些图形工具。节将介绍这些图形工具。如果数据流图已经细化到适当的层次,则可以如果数据流图已经细化到适当的层次
18、,则可以直接从数据流图映射出软件结构,这就是第直接从数据流图映射出软件结构,这就是第5.55.5节中节中将要讲述的面向数据流的设计方法。将要讲述的面向数据流的设计方法。5.设计软件结构对于需要使用数据库的那些应用系统,软件工程师应该对于需要使用数据库的那些应用系统,软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。计数据库。在数据库课中已经详细讲述了设计数据库的方法,本书在数据库课中已经详细讲述了设计数据库的方法,本书不再赘述。不再赘述。6.设计数据库在软件开发的早期阶段考虑测试问题,能促使软在软件开发的早期阶段考虑
19、测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。本书件设计人员在设计时注意提高软件的可测试性。本书第第7 7章将仔细讨论软件测试的目的和设计测试方案的章将仔细讨论软件测试的目的和设计测试方案的各种技术方法。各种技术方法。7.制定测试计划应该用正式的文档记录总体设计的结果,在这个阶段应该应该用正式的文档记录总体设计的结果,在这个阶段应该完成的文档通常有下述几种:完成的文档通常有下述几种:(1)(1)系统说明系统说明主要内容包括用系统流程图描绘的系统构成方案,主要内容包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本组成系统的物理元素清单,成本/效益分析;对最佳方案的概效
20、益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用用IPOIPO图或其他工具图或其他工具(例如,例如,PDLPDL语言语言)简要描述的各个模块的算简要描述的各个模块的算法,模块间的接口关系,以及需求、功能和模块三者之间的交法,模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系等等。叉参照关系等等。(2)(2)用户手册用户手册根据总体设计阶段的结果,修改更正在需求分析根据总体设计阶段的结果,修改更正在需求分析阶段产生的初步的用户手册。阶段产生的初步的用户手册。(3)(3)测试计划测试计划包括测试策略,
21、测试方案,预期的测试结果,测包括测试策略,测试方案,预期的测试结果,测试进度计划等等。试进度计划等等。(4)(4)详细的实现计划详细的实现计划(5)(5)数据库设计结果数据库设计结果8.书写文档最后应该对总体设计的结果进行严格的技术审查,最后应该对总体设计的结果进行严格的技术审查,在技术审查通过之后再由使用部门的负责人从管理角度在技术审查通过之后再由使用部门的负责人从管理角度进行复审。进行复审。9.审查和复审5.2 设计原理模块可以是过程、函数、子程序和宏、对象内的方法。模块可以是过程、函数、子程序和宏、对象内的方法。模块可以是过程、函数、子程序和宏、对象内的方法。模块可以是过程、函数、子程序
22、和宏、对象内的方法。5.2.1 5.2.1 模块化模块化C(P1)C(P2)C(P1)C(P2)C(P1)C(P2)C(P1)C(P2)显然显然显然显然E(P1)E(P2)E(P1)E(P2)E(P1)E(P2)E(P1)E(P2)而且而且而且而且C(P1+P2)C(P1)+C(P2)C(P1+P2)C(P1)+C(P2)C(P1+P2)C(P1)+C(P2)C(P1+P2)C(P1)+C(P2)故故故故E(P1+P2)E(P1)+E(P2)E(P1+P2)E(P1)+E(P2)E(P1+P2)E(P1)+E(P2)E(P1+P2)E(P1)+E(P2)其中,其中,其中,其中,C(x)C(x)
23、C(x)C(x)问题问题问题问题x x x x的复杂程度;的复杂程度;的复杂程度;的复杂程度;模块化和软件成本模块化和软件成本模块化和软件成本模块化和软件成本当模块数目增加时每个模块的规模将减当模块数目增加时每个模块的规模将减当模块数目增加时每个模块的规模将减当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本小,开发单个模块需要的成本小,开发单个模块需要的成本小,开发单个模块需要的成本(工作量工作量工作量工作量)确实减少了确实减少了确实减少了确实减少了;但是随着模块数目增加,设但是随着模块数目增加,设但是随着模块数目增加,设但是随着模块数目增加,设计模块间接口所需要的工作量也将增加。
24、计模块间接口所需要的工作量也将增加。计模块间接口所需要的工作量也将增加。计模块间接口所需要的工作量也将增加。虽然目前还不能精确地决定虽然目前还不能精确地决定虽然目前还不能精确地决定虽然目前还不能精确地决定M M M M的数值,但是在考的数值,但是在考的数值,但是在考的数值,但是在考虑模块化的时候总成本曲线确实是有用的指南。虑模块化的时候总成本曲线确实是有用的指南。虑模块化的时候总成本曲线确实是有用的指南。虑模块化的时候总成本曲线确实是有用的指南。采用模块化原理可以使软件结构清晰,不仅容易采用模块化原理可以使软件结构清晰,不仅容易采用模块化原理可以使软件结构清晰,不仅容易采用模块化原理可以使软件
25、结构清晰,不仅容易设计也容易阅读和理解。因为程序错误通常局限在有设计也容易阅读和理解。因为程序错误通常局限在有设计也容易阅读和理解。因为程序错误通常局限在有设计也容易阅读和理解。因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容关的模块及它们之间的接口中,所以模块化使软件容关的模块及它们之间的接口中,所以模块化使软件容关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,因而有助于提高软件的可靠性。因为易测试和调试,因而有助于提高软件的可靠性。因为易测试和调试,因而有助于提高软件的可靠性。因为易测试和调试,因而有助于提高软件的可靠性。因为变动往往只涉及少数几个模块,所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计思路 软件设计 思路 PPT 课件
限制150内