第五章软件概要设计.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件工程案例开发与实践第5章软件概要设计5.1概要设计综述5.1.1概要设计的任务在需求分析阶段,系统要解决的问题是:系统“做什么”。在概要设计阶段,系统要解决的问题是:系统“怎么做”。即将软件“做什么”的逻辑模型变换为“怎么做”的物理模型,其任务是根据需求分析阶段得到的逻辑模型来设计系统的物理模型。2、概要设计过程中需完成的任务如下:(1)设计软件系统结构(2)提出候选的最佳推荐方案,用系统流程图,组成系统物理元素清单,成本效益分析,系统的进度计划。(3)编写概要设计文档(4)专家评审结构化概要设计的过程:(1)确定体系结构;(2)软件的总体结构设计(进行模块划分);(3)确定系统接口(外部接口和内部接口);(4)分析数据流图;(5)对初识结构图进行改进完善;(6)确定系统包含哪些应用服务系统、客户端、数据库管理系统(7)确定主要的算法;(8)异常处理设计;(9)制定设计规范;(10)编写系统概要设计说明书;(1)模块化。(2)自顶向下逐步求精(3)模块的独立性(4)信息隐蔽5.1.3概要设计原则1、模块化设计把大型软件按照规定的原则划分为一个个较小的、相对独立但又相关的模块的设计方法,叫做模块化设计(modulardesign)。模块(module)是数据说明和可执行语句等程序对象的集合,每个模块单独命名并且可以通过名字对模块进行访问。模块一般有一下三个属性:(1)功能(2)逻辑(3)状态2、自顶向下逐步求精设“分解”和“抽象”是结构化方法解决复杂问题的两种基本手段,分解是把大问题分解成若干个小问题,然后“分而治之”。抽象是抽出事物本质的公共的特性而暂不考虑它的细节。软件工程过程中的每一步都可以看做是对软件解决方法的抽象层次的一次细化,抓住主要问题忽略次要问题,集中精力先解决主要问题,这就是“抽象”。3、模块独立性模块独立性(moduleindependence)概括了把软件划分为模块时要遵守的准则,也是判断模块构造是否合理的标准。一般地,坚持模块的独立性是获得良好设计的关键。模块的独立性可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合用于衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚用于衡量一个模块内部各个元素间彼此结合的紧密程度。1、耦合耦合是对一个软件结构内不同模块之间互联程度的度量。耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。在软件设计中应该追求模块间尽可能松散耦合的系统。在这样的系统中可以研究、测试或维护任何一个模块,而不需要对系统中的其他模块有很多的了解。此外,由于模块间联系简单,发生在一处的错误传播到整个系统的可能性就很小。耦合的七种类型应该采取下述设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。2、内聚内聚标志着一个模块内部各个元素间彼此结合的紧密程度。简单地说,理想内聚的模块只做一件事情。设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多。但是,坚决不要使用低内聚。内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的低耦合。内聚和耦合都是进行模块化设计的有力工具。实践表明,内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。内聚的七种类型设计时应力争做到高内聚,并且能够辨认出低内聚的模块,并采取措施进行修改,以提高模块的内聚程度、降低模块间的耦合程度,从而获得较高的模块独立性。4、信息隐藏模块内部的数据与过程,应该对不需要了解这些数据与过程的模块隐藏起来。只有那些为了完成软件的总体功能而必需在模块间交换的信息,才允许在模块间进行传递。“隐蔽”意味着有效的模块化可以通过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。这一指导思想的目的是为了提高模块的独立性,即当修改或维护模块时减少把一个模块的错误扩散到其他模块中去的机会。5.2.1IPO图IPO是输入/处理/输出图的简称5.2结构化设计工具输入数据处理过程输出结果输入处理输出一个IPO图仅能够描述单个处理功能的输入数据、数据处理和输出数据之间的关系,对于整个软件系统的总体结构不能进行清晰的描述。因此在软件设计中,我们通常将HIPO图和IPO图相结合,利用这两个工具共同来表达系统的总体结构和模块的处理功能。HIPO图称为层次结构图,即分层的IPO图,是系统设计的描述工具,是IBM公司于70年代中期在层次结构图的基础上推出的一种描述系统结构和模块内部处理功能的工具。HIPO图由以下两部分组成:(1)层次结构图:描述整个系统的设计结以及各类模块之间的关系。(2)IPO图:描述某个特定模块内部的处理过程和输入/输出关系。检索2题名检索1ISBN号检索3作者检索图5-5HIPO图图5-6IPO图5.2.2模块结构图模块结构图也称控制结构图,它表示一个软件系统的层次分解关系、模块调用关系、模块之间数据流和控制信息流的传递关系,是描述软件系统物理模型、进行概要设计的主要工具,也是软件文档的一部分。模块结构图可以反映系统整体结构,又能反映系统的细节,且能准确反映个模块及他们之间的联系。通过系统任务分解为若干个模块,可以有不同设计人员分别承担不同模块的设计和实施任务,便于管理和控制。5.2.2模块结构图1、模块结构图的基本符号模块名模块:用矩形框表示,并用模块的名字标记。调用关系:箭头从调用模块指被调用模块。被调用模块执行完成后,控制又返回到调用模块。模块间的数据传递:用尾端带有空心圆的短箭头表示数据信息。模块间的控制信息传递:用尾端带有实心圆短箭头表示控制信息。循环调用下层模块:选择调用下层模块:数据存储:模块结构图的三种基本结构模块之间的调用关系主要有三种:直接调用、选择调用和循环调用。4.4.1结构图(SCStructureChart)SD方法在概要设计中的主要表达工具约定:编辑学生记录读学生记录学生数据无此学生学号不加区分的数据数据信息控制信息SC中的选择调用ACBDA根据内部判断决定是否调用BA按另一判定结果选择调用C或DSC中的循环调用ABCA根据内在的循环重复调用B、C等模块模块结构图中的模块类型(1)传入模块传入模块从下属模块取得数据,经过某些处理,再将其传送给上级模块。见图6-14(a)。变换型数据流程图的输入模块以及事务型数据流图中的接受事务模块均属于此类模块。(2)传出模块传出模块从上级模块中获取数据,进行某些处理,再将其传送给下属模块。见图6-14(b)。如变换型数据流图及事务型数据流图中的输出模块均属于此类模块。(3)变换模块也叫加工模块,它从上级模块取得数据,进行特定的处理,转换成其他形式,再传送回上级模块。见图6.14(c)。如事务型数据流图中的调度模块就属于此类模块。(4)协调模块对所有的下属模块进行协调和管理的模块,在一个较好的模块结构图中,该模块应在较高层出现。见图6-14(d)。如变换型数据流图的总控模块以及事务型数据流图中的事务中心块均属于此类模块。模块结构图中的模块结构类型传入模块(a)(b)AA传出模块BB变换模块(c)CD协调模块E(d)EFF模块间调用的规则(1)每个模块有自身的任务,只有接收到上级模块的调用命令时才能执行。(2)模块之间的通信只限于其直接上、下级模块,任何模块不能直接与其他上下级模块或同级模块发生通信联系。(3)若有某模块要与非直接上、下级的其他模块发生通信联系,必须通过其上下级模块进行传递。(4)模块调用顺序为自上而下。模块结构图的示例模块结构图的改进(1)完善模块的功能(2)提高模块独立性(3)合理确定模块结构的规模,尽可能减少高扇出的结构,随深度增加而增大扇入。模块的规模包括两个方面:模块结构的深度和模块结构的宽度。深度表示模块结构中的层数,它往往能粗略地标志一个系统的大小和复杂程度。模块结构图一般不要超过7层。宽度是模块结构图内同一个层次上的模块总数的最大值。一般来说,宽度越大系统越复杂。一个模块的扇入指直接调用该模块的上级模块的数目。扇入越大则共享该模块的上级模块数目越多。如果一个模块的扇入数过大,例如超过8,而这个模块又不是公用模块,说明该模块包含多个功能,这时应对它进行功能分解。AEHIDFGBCMJPLKXY扇出扇入深度(4)模块的作用范围应该在控制范围之内(5)模块大小应该适中(6)设计单入口单出口的模块单入口单出口的模块可以降低模块接口的复杂程度,设计的软件也是易理解、易维护的,因此不要使模块间出现内容藕合。(7)模块功能应该能够预测,同时要防止模块功能过于受局限。5.3结构化设计方法5.3.1事务设计1.事务流2.将具有事物流的数据流程图转换成模块结构的步骤(1)在数据流程图中识别事务源,判断数据流程图是否具有事务型特征。(2)对每一事务建立一个事务处理模块,得出程序结构图。(3)对每一种类型的事务,分别建立专门的事务模块,对它进行独立的处理。确定出每一种事务以及它所需要的处理动作。(4)合并具有相同处理功能的模块。(5)必要时对动作模块进一步分解。例如,图5-12(a)为某账务处理系统的一级数据流程图,可以看出账务处理包含3类事务,即凭证管理、账务管理和报表管理,我们按事务设计的方法可将其转换为如图5-12(b)所示的模块结构图。账务处理系统报表管理账务管理凭证管理5.3.2变换设计1.变换流2.将具有变换流的数据流程图转换成模块结构的步骤(1)仔细分析数据流程图,识别出系统的输入数据、变换中心和输出数据。(2)设计模块结构图的顶层和第一层(3)设计中、下层模块例:图5-15(a)为某账务处理系统中的二级细化的数据流程图,是系统中“凭证管理模块”的细化。由图可见“凭证管理模块”有4个基本处理功能,即输入、汇总、审核、打印。其中输入功能分属第一类输入功能;汇总、审核功能分属第二类执行功能;打印功能分属第三类输出功能。据此可以画出“凭证管理”的模块结构图,见图5-15(b)。图5-24(a)凭证管理打印凭证汇总凭证审核凭证输入凭证图5-24(b)5.4概要设计说明书格式1引言2编写目的3项目背景4任务概述5定义6运行环境7需求概述8条件与限制;9总体设计10接口设计11数据结构设计12运行设计13出错处理设计14安全保密设计15参考资料再见!!!

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功