第四章 软件总体设计(软件设计的第一个阶段)

目录

1.软件总体设计的目标和任务

2.软件结构设计准则

3.★软件总体设计遵循的6条基本原理

4.★软件结构设计的图形工具(软件结构图、层次图、HIPO图)

5.结构化设计方法


1.软件总体设计的目标和任务

  • 软件设计:把“做什么”的逻辑模型变换为“怎么做”的物理模型。同时要把设计结果反映在“软件设计规格说明书”中。因此,软件设计是把软件需求转换为软件表的过程。
  • 总体设计的基本目标:概括的说,就是回答“系统应该如何实现/span>”
  • 总体设计的任务:软件体系结构设计和软件模块设计

2.软件结构设计准则

【1】软件体系结构设计准则:

        ● 体系结构是对复杂事物的一种抽象

        ● 体系结构在一定时间内保持稳定:确保接口一致

        ● 良好的体系结构意味着普通、高效、稳定

【2】软件模块设计准则:

        ● 降模块之间的耦合性,提模块的内聚性

        ● 模块结构的深度、宽度、扇入、扇出应适当

                度:指软件结构中模块的层次数

                度:指同一层次中最大的模块个数

                入:指有多少个上级模块直接调用它

                出:一个模块直接调用的模块数目(好的系统结构中,平均扇出数在3~4,不能超过5~9;一般顶层扇出高,中层扇出较少,底层模块有高扇出)

        ● 模块的作用范围应该在控制范围内

                块的作用范围:受该模块内一个判断影响的所有模块的集合

                块的控制范围:模块本身及其直接或间接从属于它的模块的集合

        ● 模块接口设计要简单,以便降低复杂程度和冗余程度

3.软件总体设计遵循的6条基本原理

        【1】模块化

                 ● 模块:是软件结构的基础,是软件元素,是独立完成一定功能的程序语句的集合,是可以组合、分解、更换的单元。

                 ● 模块最重要的特征:抽象、信息隐蔽

                 ● 模块化:是指解决一个复杂问题时,自顶向下逐层将软件系统划分成若干模块的过程。

                 ● 模块化的目的:降低软件复杂性,使软件设计、测试、维护等操作变得简易。

        【2】抽象

                 ● 抽象:就是抽出事务本质的共同特性,而暂时忽略它们之间的细节差异。

        【3】逐步求精

        【4】信息隐蔽

                 ● 信息隐蔽原理使得包含在模块内的信息(过程和数据),对于不需要这些信息的模块是不能访问的。

        【5】局部化

                 ● 局部化:把一些关系密切的元素,物理的放的彼此靠近。(局部化有利于信息隐蔽)

        【6】模块独立

                 ● 模块独立:是模块化、抽象、信息隐蔽和局部化概念的直接结果。

                 ● 模块独立性是一个好的软件设计的关键

                 ● 模块独立性可以从两方面来度量:模块间的耦合性、模块本身的内聚

                        合:指模块之间相互独立性的度量

                        聚:指模块内部各成分之间彼此结合的紧密程度的度量

                        span style=”color:#ed7976;”>耦合的类型:(①—⑥,耦合性由高到低

                                ①直接耦合:不传递任何信息,没有直接联系,互相独立

                                ②据耦合:传递的信息仅仅是简单的数据

                                ③记耦合:两个模块之间传递的是数据结构数据结构中的部分数据元素

                                ④制耦合:模块调用时,传递的信息控制了该模块的功能

                                ⑤共环境耦合:多个模块共用一个数据环境

                                ⑥容耦合 :一个模块直接访问另一个模块内部信息;一个模块不通过正常入口进入到另一个模块内部;一个模块有多个入口,这些都属于内容耦合。

                        span style=”color:#ed7976;”>内聚的类型:(①—⑥,内聚性由低到高

                                ①然内聚:模块内的元素之间没有意义上的联系

                                ②辑内聚:将逻辑上相同或相似的一类任务放在同一模块内

                                ③间内聚:将需要同时执行的动作组合在一起

                                ④信内聚:模块内所有元素使用相同的输入数据或产生相同的输出数据

                                ⑤序内聚:各个处理元素关于同一个内容并且必须顺序执行

                                ⑥能内聚:所有元素属于一个整体,共同完成一个单一的功能,缺一不可

4.软件结构设计的图形工具(软件结构图、层次图、HIPO图)

        【1】软件结构图(Structure Chart,SC):表示软件的组成模块及其调用关系

                ● 结构图的主要内容模块(用方框表示)、模块的调用关系(直线)、辅助符号(弧形箭头表示循环调用、菱形表示选择或者条件调用)

        【2】层次图:层次图中的每一个方框代表一个模型

        【3】HIPO图:除最顶层方框外,每个方框都带编号的层次图。

                ● 完整的HIPO图由层次图(H图)、概要IPO图、详细IPO图三部分组成。

5.结构化设计方法

        ● 结构化设计方法是把需求分析阶段的数据流图映射为软件结构图的一种基于数据流的设计方法。

        ● 结构化设计方法是以数据流图为基础设计系统的软件结构。

        ● 数据流图的类型变换型事务型,一般为这两种类型的混合型。

                span style=”color:#956fe7;”>变换型数据流图:由输入、变换、输出3部分组成。

                        换是系统的变换中心,变换输入端的数据流为系统的逻辑输入,输出端为逻辑输出;而系统输入端的数据流为物理输入,输出端为物理输出。

                        换型数据流图设计步骤:

                                1)确定逻辑输入、输出边界,找出变换中心(输入,变换中心,输出3部分)

                                2)设计软件结构的顶层和第一层

                                3)设计中下层模块

                                4)对初始结构图优化(高内聚低耦合)                    

                span style=”color:#956fe7;”>事务型数据流图:当一个数据项到达某个处理模块时,将有多个动作之一,这就是事务型的。

                        辐射状,发出多条路径是数据流中枢称为“事务中心”。

                        span style=”color:#956fe7;”>事务中心3项基本任务:接收事务(输入数据)、确定事务类型、选取一条活动路径

                        务型数据流图设计步骤:

                                1)确定事务中心、输入流和活动路径

                                2)设计事务结构的顶层和第一层(主模块2个功能,接收数据、调度相应处理模块)

                                3)设计事务结构的中下层

                                4)对初始的事务结构优化工作同变换结构

来源:W_Day-Day-up!

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月25日
下一篇 2022年6月25日

相关推荐