电话:0731-83595998
导航

2011年软件水平考试软件设计师辅导资料(6)3

来源: 2017-11-26 15:18

   四、软件结构的优化准则

  首先应学会用图形表示软件结构,软件结构图反映了整个系统的功能实现,即将来编好程序中的控制层次体系。软件结构往往用树状或网状结构的图形来表示。

  请大家对照课本的解释来看软件结构图包括哪些内容。

  我们已经知道了软件概要设计的主要任务就是软件结构的设计,为了提高设计的质量,可以根据下面的设计优化准则进行优化:在这些准则中,都是针对模块及模块间关系来提出的。

  1、模块的划分:要做到高内聚,低耦合,保持相对独立性。

  2、模块的控制:模块的作用范围要在他的控制范围内,判定所在的模块应与受其影响的模块在层次上尽量靠近)

  3、形成的结构;软件结构的深度、宽度、扇出、扇入要适当

  4、模块的大小: 要适中。

  5、模块的接口:模块的接口要简单、清晰、含义明确,便于理解、易于实现、测试与维护)。

  五、概要设计的设计方法。

  (一)面向数据流的设计方法(这是需要我们熟练掌握的方法)

  面向数据流的设计方法是以需求阶段产生的数据流图为基础,按一定的步骤映射成软件结构,因此又称为结构化设计(Structured Design SD)。这是目前使用最广泛的软件设计方法之一,应该熟练掌握它。

  1、首先要研究数据流图(DFD)的类型,无论何种软件系统,DFD一般都可分为变换型和事务型两类。(课本第51页)

  先来看变换型数据流图,顾名思义,变换就是把输入的数据处理后变成另外的数据输出,所以变换型数据的工作过程就是三步:取得数据、变换数据和输出数据。在图4-6中,可以看到两股数据流经过交换中心变成一股数据流进行输出。虚线为标出的流界。

  再来看事务型数据流图,所谓事务也是一个处理,但不是数据变换,而是将输入数据流分离成许多发散的数据流,形成许多加工路径,并根据值选择其中一个路径来执行。举个例子,好比有一个邮件分发中心,把收进的邮件根据其发送地址进行分流,有的用飞机邮送,有的用汽车来运输等等。

  在大型软件系统中的DFD数据流图中,这两种类型特征都有可能存在。

  2、SD方法设计过程

  1)精化DFD。

  2)确定DFD类型并进行相应的映射。

  3)分解上层模块,设计中下层模块结构

  4)根据优化准则对软件结构求精。

  5)描述模块功能、接口及全局数据结构

  6)复查,如果有错则转向2)修改完善,否则进入详细设计。

  下面我们通过例子来说明变换分析设计和事务分析设计方法。

  3、变换分析设计

  以课本53页图4-8为例说明变换分析设计。

  根据面向数据流的设计方法,第一步是精化DFD,也就是研究分析这个数据流图,我们可以看到图中从A到H的数据流向和加工,图形比较简单。

  第二步是确定DFD类型并确定加工中心,在这里已经说明为本图为变换型,在实际分析中应该根据每个相关操作来确定其类型。在图中,我们可以直观地看到中间几股数据流的汇合处是系统的变换中心。也可以通过双向寻找法来确定,左边是物理输入端,从f1沿着单向路径一直到f3,后面的f4是从C流出的,同时C还有f5流出,则可见f4,f5不能再看作是系统的输入,因此可确定f4,f5前一个数据流f3就是系统的逻辑输入,同样,我们从右边的物理输出端往左边沿数据流的反向寻找,可以发现f4,f6不能看作是整个系统的输出,因此可以确定f7,f8是逻辑输出端,然后在这两个分界处添上虚线,这样,DFD的三部份就确定了。

  第三步 设计软件结构的顶层和第一层,根据变换中心可以对应得到主模块的位置,就可以画出顶层模块(即主模块,在实际应用中,这个模块的名字就是系统的名字,如销售管理系统等)。然后在这个模块下方根据划分好的三个部分画出三个功能模块,即输入、变换和输出模块,就是图中的get f3,将f3变换成f7和f8模块,put f7及put f8模块,注意,这里应当为每个输入和输出设计一个模块。然后将这些模块与顶层模块用连线连上表示所属控制。画上相应的数据传送箭头。

  第四步 分解上层模块,设计中下层模块。 根据上面的方法,分解输入模块,图中的get f3模块的功能是向主模块提供数据,而在DFD中可以看到f3是数据流f2经过B操作后流出的,因此这里有两个部分,就是接收f2数据,再通过B转换流出。所以在get f3模块下画出两个子模块 get f2 和B操作模块。

  就这样一一分解,可以画出所有的输入和输出子模块,直到物理输入和输出为止。

  对于变换中心的下属模块,根据数据流和变换操作,以每个基本加工建立一个功能模块,可以画出CDE三个子模块。

  整个过程并不复杂,画好后根据实际情况对软件结构进行优化,也就是进行必要的合并或分解。以求设计出高内聚低耦合的模块组成的、具有良好特性的软件结构。

  4、事务分析设计,可以参见图4-9为例。其设计方法大同小异,首先确定DFD类型,这里已指明是事务型,然后找出DFD中的事务中心和加式路径。当DFD中时不要弄错,然后在分解子模块时在调度模块上加一个菱形符号表示判断处理。

  5、综合型数据流图与分层数据流图映射成软件结构的设计

  有了上面的基础,对综合型的数据流图也可以一一分开来进行设计了。

  6、设计后的处理,在软件结构形成之后,我们知道,概要设计的基本任务还有文档的编写,在这个阶段就是要编写一些文档,包括:

  (1)为每个模块写一份处理说明

  (2)为每个模块提供一份接口说明

  (3)数据结构说明

  (4)给出设计约束或限制

  (5)进行概要评审

  (6)设计优化。

  本节介绍的设计方法是本章的重点,要求熟练掌握。

  (二)基于IDEF0图的设计方法

  (三)表示软件结构图的另一种图形工具--HIPO图。

  HIPO图清晰易读,主要用于编写概要设计文档中的说明。

  本章小结:根据上面的学习,我们可以知道,软件概要设计的四个主要任务,知道评价软件结构设计质量的原理和两个标准即软件模块的耦合性及内聚性,根据这些原理提出了软件结构设计的优化准则,并且详细学习了软件结构的面向数据流图的设计方法。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端