《第三章 结构化方法》由会员分享,可在线阅读,更多相关《第三章 结构化方法(21页珍藏版)》请在金锄头文库上搜索。
1、第三章结构化方法复习建议自顶向下,逐步求精。本章是整个课程的重点内容,其基本思想、基本原理和基本方法是 软件工程理论体系中最经典的内容,考核题型涉及单项选择题、填空题、 简答题、综合应用题所有题目类型,占分值25%左右。建议考生在牢记基本概念、基本原理的基础上,对综合应用题多下 工夫,多做练习。第一节结构化需求分析1. 需求分析面临的挑战(1)问题空间理解(2)人与人之间的通信,有效沟通(3)需求的变化性2. 结构化分析中的基本术语及表示方法(1)数据流4) 数据源和数据潭3.数据流图DFD图用于建立系统功能模型。是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、 数据存储、加工、数
2、据源和数据潭等。4.建模过程(绘制流程图的过程)自顶向下、功能分解(1)建立系统环境图(2)0层图:从0层图开始对流程图中的要素编号(3)1层图(4)【例题】绘制数据流程图(2008年10月真题)某个学生成绩管理系统的部分功能如下:(1)基本信息管理:教务管理人员输入或修改学期教学执行计划、 学生名单和教师名单;(2)学生选课:学生根据教学执行计划进行选课;(3)分配任课教师:教务管理人员为符合开课条件的课程分配教师, 并打印任课通知单给教师;(4)成绩管理:每门课程的教师在考试评分结束后将考试成绩交给 教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单(发 给学生)、成绩统计分析表(
3、发给教务管理人员)。请根据要求画出该问题的分层数据流图(要求画出顶层和0层数据 流图)。隐藏答案【解析】顶层图:只包含数据源/数据潭以及相关的数据流和一个处理。 黑洞(black hole),即只有输入而没有输出。 只有输出而没有输入。 灰洞(gray hole),即输入不足以产生输出。灰洞是经常也是不易被 察觉的错误。 加工处理只用来表示数据的处理和变化,避免将计算机命令作为 处理。 数据流必须起于且/或止于处理,即每一个数据流必须有一个处理 与之有关,数据流不能起于数据存贮且止于一个数据源/数据潭或另一 个数据存贮;也不能起于某个实体且止于另一个数据源/数据潭或数据 存贮。5. 数据字典定
4、义数据流程图中所有数据流和数据存储的数据结构。顺序结构:+选择结构:I重复结构: 子界:m.n6. 加工的描述(1)判定表判断表(Decision Table)也称为决策表,是一个二维表,它说明了每 种条件组合所产生的结果。该表分为四个象限(quadrants)。a)左上限代表所有的条件b)左下限代表可能的结果c)右上限代表每一种条件的取值(用Y和N来表示)d)右下限用X表示所对应的条件组合所产生的结果销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过壬10,000时,给予 5%的折扣;当交易额在5,000到10,000之间(含5,00
5、0)时,给予3% 的折扣;当交易额低于5,000时,没有折扣。若付款日期超过10天, 则无论交易额多少,均不给任何折扣。隐藏答案【解析】抉策规则号1234条 件村歌日筋劭0.YN交易 looooNN交易5000MNY应采敢 的行动折扣5%X扌二扣3%X无折扣XX(2) 判定树判断树(Decision Tree)也称为决策树,是用来描述在一组不同的条件 下,决策的行动是根据不同条件及其取值来选择的处理过程。业务规则 的描述通常可以使用判断树这一过程描述工具。【例题】画出顾客购货的折扣政策的决策树。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交
6、易额超过壬10,000时,给予 5%的折扣;当交易额在5,000到10,000之间(含5,000)时,给予3% 的折扣;当交易额低于5,000时,没有折扣。若付款日期超过10天, 则无论交易额多少,均不给任何折扣。隐藏答案【解析】交屈颇dLOOOO折扣5惦/ 付天5, 000交易顫1000 扌产扣3斑/ 交易鞭5, 0(35扌亍扣0%折扣規则忖戳三疾=io天一扣Q怀(3)结构化语言【例题】用结构化语言表达:顾客购货的折扣政策。销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过10,000时,给予 3%的折扣;当交易额在5,000到10,
7、000之间(含5,000)时,给予2% 的折扣;当交易额低于5,000时,没有折扣。若付款日期超过10天, 则无论交易额多少,均不给任何折扣。IF付款日期在10日以上折扣=0ELSEIF交易额=10000折扣=3%ELSEIF交易额=5000折扣=2%ELSE折扣=07. 需求验证(1) 验证每一个需求满足5个性质(2) 验证需求规格说明书满足4个性质第二节结构化设计分为总体设计和详细设计1总体设计的任务把系统的功能需求分配到一个特定的软件体系结构中。2. 表达软件体系结构的工具(1) 模块结构图(2) 层次图(3) HIPO 图3. 模块结构图结构图(Structure Chart)是对软件
8、总体结构的一种图形描述,它显示了 软件的层次结构、组织和通讯。也就是说,在结构图中,显示了软件是 由哪些模块组成的,这些模块按照什么样的层次结构组织在一起以及模 块之间通过什么接口联系在一起。(1)模块符号(2)模块调用关系(3)模块间的数据传递(4)模块间的控制信息传递(5)循环调用结构(6)选择调用结构(7)数据存储4.层次图JW 口口*结构图也称之为控制结构图、模块结构图或系统结构图。rutrAc TLIIRARIYUO&ULEEFmvvie层次图中一个矩形框代表一个模块,框间的连线表示调用关系(位 于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。5. HIPO 图HIPO
9、图是美国IBM公司发明的层次图加输入/处理/输出图的英文缩写。为了使HIPO图具有可追踪性,在H图(即层次图)里除了顶层的 方框之外,每个方框都加了编号。H图+IPO图繼人址理IU的主丈件事务文韩更新后的 主文件L投验3- 主记录6总体设计步骤将DFD图映射为设计层面的模块及模块调用。(1)变换流(Transform Flow)。基于变换流的数据流程图是一个线性的顺序结构,由输入臂、输出臂和变换中心三部分组成。其中变换中心使系统数据发生本质的变化,输入臂将物理输入变换成逻辑输入,而输出臂则将逻辑输出变换成物理输出。外韶农示-佶息流输入渝 输出漩(2)事务流(Transaction Flow)。
10、事务流的数据流程图中有一个事务处理中心,它将输入分为许多相互平行的加工路径,然后根据输入的属 性,选择某一加工路径。如下图所示。业务中心完成以下任务:接收事务(即输入数据);分析每个事务并确定它的类型;根据事务的类型选取一条活动通路。【例题】控制结构图的绘制根据数据计算的数据流图:输入数据 数据求解 打印输出画出以转换为中心的控制结构图。隐藏答案【解析】这是一个典型的以转换为中心结构的分解,可以转化为:总结:任何处理都可以划分为两种转换类型之一:以转换为中心的 分解和以业务为中心结构的分解。【例题】产生固定资产资料数据流程图如下,做出以业务为中心的 模块控制结构图。隐藏答案【解析】这是以业务为
11、中心的处理,根据模板,可以转化为:7.模块执行一个特殊任务的一个过程以及相关的数据结构。模块通常由两 部分组成:模块接口和模块体。8.模块化分而治之和抽象。把一个待开发的软件分解成若干个简单的、具有高内聚低耦合的模块,这一过程称为模块化。模块化是系统设计基本原理/原则之一。9.内聚(Cohesion)是指一个模块内部个成分之间相互关联程度的度量。也就是说,凝 聚是对模块内各处理动作组合强度的一种度量。很显然,一个模块的内 聚越大越好。(1) 偶然凝聚可维护性最差(2) 逻辑凝聚(3) 时间凝聚(4) 过程内聚(5) 通信内聚(6) 顺序凝聚(7) 功能凝聚可维护性最好10.模块耦合耦合(cou
12、pling)是对两个模块之间联接程度的一种度量。模块间的依 赖程度越大,则其耦合程度也就越大;反之,模块间的依赖程度越小, 则其耦合程度也就越小。很显然,为了使软件具有较好的可维护性和可修改性,模块间的关 联程度即耦合程度应越小越好。因为耦合程度越小,表明模块间的独立 程度越大,这样在修改一个模块时,对其它模块的影响程度就越小,从 而使模块的修改工作局限于一个最小范围之内。(1) 内容耦合(2) 公共耦合(3) 数据耦合(4) 控制耦合(5)标记耦合原则是:尽量用数据耦合,少用控制耦合,限制公共耦合的范围, 避免使用内容耦合。11. 启发式规则高内聚、低耦合。(1)改进软件结构,提高软件独立性
13、。模块分解(2)模块规模适中(3)力求深度、宽度、扇出、扇入适中。深度:表示其控制的层数。宽度:同一层次上模块总数的最大值。扇出:一个模块直接控制的下级模块的数目。扇入:有多少个上级模块直接调用它。原则:顶层模块扇出比较大,中间层模块扇出较小,底层模块具有 较大的扇入。(4)尽量使模块的作用域在其控制域内。模块的控制域:这个模块本身以及所有直接或间接从属它的模块的 集合。模块的作用域:受该模块内一个判断所影响的所有模块的集合。(5)尽力降低模块接口的复杂度(6)力求模块功能可以预测12. 详细设计具体描述模块结构图中的每一模块,即给出实现模块功能的实施机 制,包括一组例程和数据结构。13. 结
14、构化程序设计方法一种基于结构的编程方法,即采用顺序结构、选择结构和重复结构进行编程,其中每一结构只允许一个入口和一个出口。三种基本的控制结构:(a)顺序结构,先执行A再执行B;IF-THEN-ELSE型选择(分支)结构;(c)DO-WHILE型循环结构14. 详细设计工具(1)程序流程图程序流程图:程序流程图又称为程序框图,它是历史最悠久使用最 广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。(2)盒图(N-S图)出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。|第一牛任务|第二个任务|第三木任务|Then 郊分条件/|值1值Ft!easel 弼分鄒分蜡坏亲件Do-While(b)(c) CASE型多分支;(a)顺序;(b) IF-