第五章-软件详细设计
软件工程第五章课后题

一、选择题
1.软件管理中,需要对软件进行配置,各阶段文档的管理属于()。
D
A.组织管理
B资源管理
C.计划管理
D.版本管理
2.软件开发的结构化方法中,常用数据字典技术,其中数据加工是
其组成内容之一,下述方法()是常采用编写加工说明的方法。
Ⅰ结构化语言Ⅱ判定树Ⅲ判定表
A.Ⅰ
B.Ⅱ
C.Ⅱ、Ⅲ
D.都是
3.在软件工程实施中,产生软件生命周期的概念是由()。
A.方法论所决定的
B.开发技术划分
C.软件开发规律
D.软件工程管理
二、填空题
1.软件计划包括和两个阶段。
2.软件概要设计的成果是。
3.软件的详细设计,也称模块设计。
它要求设计人员为每一个程序模块确定所使用的,,、输出数据等。
4.结构化分析方法是进行分析的方法。
三、解答题
1.什么是软件的可维护性?可维护性的度量的特性是什么?
2.提高可维护性的方法有哪些?
答案:
一、1.D 2.D 3.A
二、
1.总体设计(或概要设计)详细设计
2.软件设计说明书
3.算法数据结构接口细节和输入
4. 面向数据流
三、
1.软件的可维护性:软件能够被理解、校正、适应及增强功能的容易程度。
可维护性的度量的特性是:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
2.(1)建立明确的软件质量目标。
(2)利用先进的软件开发技术和工具。
(3)建立明确的质量保证工作。
(4)选择可维护的程序设计语言。
(5)改进程序文档。
软件工程导论 第5章 总体设计

第五章总体设计经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候了。
总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设计。
通过这个阶段的工作将划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等,但是每个物理元隶仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。
总体设计过程首先寻找实现目标系统的各种不同的方案,需求分析阶段得到的数据流图是设想各种可能方案的基础。
然后分析员从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,并且制定实现这个方案的进度计划。
分析员应该综合分析比较这些合理的方案,从中选出一个最佳方案向用户和使用部门负责人推荐。
如果用户和使用部门的负责人接受了推荐的方案,分析员应该进一步为这个最佳方案设计软件结构,通常,设计出初步的软件结构后还要多方改进,从而得到更合理的结构,进行必要的数据库设汁,确定测试要求并且制定测试计划。
从上面的叙述中不难看出,在详细设计之前先进行总体设计的必要性:可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。
5.1 设计过程总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构没计阶段,确定软件结构。
典型的总体设计过程包括下述9个步骤:1.设想代选择的方案如何实现要求的系统呢,在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。
在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案,一旦选出了最佳的方案,将能大大提高系统的性能/价格比。
软件工程 第4版 第5章 详细设计

数据流程图
01
数据流程图表示 求解某一问题的 数据通路,同时 规定了处理的主 要阶段和所用的 各种数据媒体
程序流程图
02
程序流程图表示 程序中的操作顺 序
系统流程图
03
系统流程图表示 系统的操作控制 和数据流
程序网络图
04
程序网络图表示 程序激活路径和 程序与相关数据 流的相互作用
系统资源图
05
系统资源图表示 适用于一个问题 或一组问题求解 的数据单元和处 理单元的配置
5.1.3 PAD
01 PAD 的基本符号
OPTION
➢ 顺序结构 ➢ 条件结构 ➢ CASE 型多分支结构 ➢ 先检测循环条件的WHILE 型循环结构 ➢ 后检测循环条件的UNTIL 型循环结构 ➢ 语句标号 的特点
OPTION
用PAD 表示的程序从最左边的竖线的上端开始,自上而 下、自左向右执行 用PAD 设计的软件结构必然是结构化的程序结构
图1
图2
5.1.1 流程图
04 流程图的3 种基本结构
OPTION
流程图的3 种基本结构为顺序结构、条件 结构和循环结构,如图1所示,图中的C 是判 定条件。顺序结构如图(a)所示。条件结构 可分为两种,一种是IF...THEN...ELSE 型条件 结构,如图(b)所示;另一种是CASE 型多 分支结构,如图(c)所示。
应的应做的工作。
2 判定表中的符号
右上部用T 表示条件成立,用F表示条件不 成立,空白表示条件成立与否不影响。
右下部画× 表示在该列上面规定的条件下做 该行左边列出的那项工作,空白表示不做该 项工作。
5.1.5 判定树
判定树和判定表一样,也能表明复杂的条件组 合与对应处理之间的关系。判定树是一种图形表示 方式,更易被用户理解。
软件工程第五章

5.2.1、结构化程序设计技术
1. 结构化设计技术的形成
--对“取消GOTO 语句”的争论 --只用“顺序”、“选择”和“循环”三 种基本控制结构就能实现任何单入口单出 口的程序设计 --程序应该只有一个入口和一个出口;自 顶向下,逐步求精
5.2.1、结构化程序设计技术
2. 结构化设计技术的概念 经典定义:“如果一个程序的代码仅仅通 过顺序、选择和循环这三种基本控制结构 进行连接,并且每个代码块只有一个入口 和一个出口,则称这个程序为结构化的。”
1. 模块的逻辑结构设计 逻辑结构设计是结合所开发项目的具体要 求和对每个模块规定的功能,开发出模块 处理的详细算法,选择某种适当的工具加 以精确描述。
5.1.1、详细设计的任务
详细设计阶段的主要任务:
2. 模块的数据设计 为在需求分析阶段的数据对象定义逻辑数 据结构,并且对不同的逻辑数据结构进行 不同的算法设计,选择最有效的方案。同 时,确定实现逻辑数据结构所必需的操作 模块,以便了解数据结构的影响范围。
第五章
详细设计
详细设计
教学提示:
上一章学习了概要设计的有关知识,本章将 介绍详细设计的内容。主要包括详细设计的 任务与原则、设计方法以及详细设计规格说 明及评审等。
详细设计
教学目标:
理解详细设计的设计任务和设计原则。掌握 详细设计的方法和常用工具的使用,了解详 细的设计规格说明书的内容和评审。
5.2.1、结构化程序设计技术
5.2.1、结构化程序设计技术
2. 结构化设计技术的概念 当前结构化程序设计的基本内容如下: (1) 程序的控制结构一般采用顺序、选择、循环3 种结构来构成,确保结构简单。 (2) 使用单入口单出口的控制结构。 (3) 程序设计中应尽量少用GOTO 语句,以确保 程序结构的独立性。 (4) 采用自顶向下逐步求精方法完成算法设计。
《软件工程(第二版)》 第五章

5.2.4 模块独立性
模块的独立性是软件质量的关键: (1)模块化程度较高的软件容易开发; (2)模块化程度较高的软件也比较容易测试和维护。 模块的独立性的度量标准:耦合和内聚。
1、耦合 耦合:软件结构中各个模块之间相互关联程度的度量。
常见的耦合:
(1)非直接耦合 (2)数据耦合 (3)标记耦合 (4)控制耦合 (5)公共耦合 (6)内容耦合 设计原则:尽量使用数据耦合,少用控制耦合,限制公 共耦合的范围,避免使用内容耦合。
这个不等式表明:单独解决问题 P1 和 P2 所需的工作 量之和,比把 P1 和 P2 合起来作为一个问题来解决时所需 的工作量要少。 这种“分而治之”的思想提供了模块化的根据:把复 杂的问题分解成许多容易解决的小问题,原来的问题也 就容易解决了。
模块化和软件成本的关系
软件总成本 最小成本区 M 接口成本
5.5.1 数据流图的类型 5.5.2 设计步骤 5.5.3 变换设计 5.5.4 事务设计 5.5.5 设计的后处理
需求分析阶段得出的数据流图是总体设计的根 本出发点。 通常,选取的这些方案中至少应包括低成本、 中成本和高成本的三种方案类型。 对每个合理方案要提供以下几方面资料: (1)系统流程图; (2)数据字典; (3)成本/效益分析; (4)实现这个系统的进度计划。
5.1.2 推荐最佳方案
分析员从合理方案中选择一个最佳方案向用户 推荐,并为推荐的方案制定详细的实现计划。 对于分析员推荐的最佳方案,用户和有关专家 应该认真审查。如果确认该方案确实符合用户的需 要,并且在现有条件下完全能够实现,则应该提请 使用部门负责人进一步审批。在使用部门负责人也 接受了分析员所推荐的方案之后,方可进入总体设 计过程的下一步工作,即结构设计阶段。
软件工程各章名词解释

名词解释一个三分 五个十五分第一章 绪论1. 软件2. 文档3. 软件工程4. 软件工程过程5. 软件生存周期6. 软件生存周期模型第二章 软件可行性研究与项目开发计划1. 投资回收2. 纯收人第三章 软件需求分析1. 需求分析2. 数据流3. 数据字典4. 加工5. 数据流图第四章 软件概要设计1. 模块2. 模块化3. 抽象4. 信息隐蔽5. 模块独立性6. 耦合性7. 无直接耦合8. 数据耦合9. 标记耦合10. 控制耦合11. 公共耦合12. 内容耦合13. 内聚性14. 偶然内聚15. 逻辑内聚16. 时间内聚17. 通信内聚18. 顺序内聚19. 功能内聚第五章 软件详细设计1. PAD2. 过程设计语言(PDL)第六章 软件编码1. 程序设计风格2. 程序可移植性第七章 软件测试1. 语句覆盖2. 判定覆盖3. 条件覆盖4. 判定/条件覆盖5. 条件组合覆盖6. 路径覆盖7. 环路复杂性8. 黑盒测试9. 白盒测试10. 驱动模块11. 桩模块12. 单元测试13. 集成测试14. 确认测试15. 调试第八章 软件维护1. 维护2. 校正性维护3. 适应性维护4. 完善性维护5. 预防性维护6. 软件可维护性第九章 软件开发的增量模型1. 原型第十章 面向对象的方法1. 对象2. 类3. 消息4. 方法5. 继承性6. 单重继承7. 多重继承8. 多态性9. 抽象10. 信息隐藏11. 链12. 关联第十一章 软件质量与质量保证1. 软件可靠性2. 效率3. 可维护性4. 可移植性5. 可互操作性6. 适应性7. 可重用性8. 软件设计质量9. 软件程序质量10. 冗余第十二章 软件工程管理1. 软件配置管理2. 软件配置项3. 基线4. 文档第十三章 软件开发环境1. 软件开发环境2. 软件工具3. CASE4. CASE生存期5. CASE工作台软件工程自考名词解释答案第一章 绪论1. 计算机程序及其说明程序的各种文档.2. 文档是有关计算机程序功能,设计,编制,使用的方案或图形资料.3. 用科学知识和技术原理来定义,开发,维护软件的一门学科.4. 软件工程过程规定了获取,供应,开发,操作和维护软件时,要实施的过程,活动和任务.5. 软件生存周期是指一个软件从得出开发要求开始直到该软件报废为止的整个时期.6. 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型.第二章 软件可行性研究与项目开发计划1. 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间.2. 在整个生存周期之内的累计经济效益(折合成现在值)与投资之差.第三章 软件需求分析1. 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非不甘落后将用户非不甘落后 需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程.2. 数据流是数据在系统内传播的路径,因此由一组成分固定的数据项组成.3. 数据字典(Data Dic onary, 简称DD)就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的,无二义性的说明方式为系统的分析,设计及维护提供了有关元素的一致的定义和详细的描述.4. 加工又称为数据处理,是对数据流进行某些操作或变换.5. 数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程.第四章 软件概要设计1. 模块在程序中是数据说明,可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合,分解和更换的单元.2. 模块化是指解决一个复杂问题自顶向下逐层把软件系统划分成若干模块的过程.每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个要求的功能.3. 抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素.4. 信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的.5. 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.6. 耦合性也称块间联系.指软件系统结构中各模块间相互联系紧密程序的一种度量.7. 无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息.8. 数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递.9. 标记耦合指两个模块之间传递的是数据结构,如高级语言的数组名,记录名,文件名等这些名字即为标记,其实传递的是这个数据结构的地址.10. 控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关,标志等),被调模块通过该控制变量的值有选择地执行块内某一功能.11. 公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合.公共数据环境可是是全程变量或数据结构,共享的通信,内存的公共覆盖区及任何存储介质上的文件,物理设备等(也有将共享外部设备分类为外部耦合).12. 当一个模块直接使用另一个模块的内部数据,或通过非正常口转入另一个模块内部,这种模块之间的耦合为内容耦合.13. 内聚块又称块内联系指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.14. 偶然内聚指一个模块内的各处理元素之间没有任何联系.15. 逻辑内聚指模块内执行个逻辑上相似的功能,通过参数确定该模块完成哪一个功能.16. 把需要同时执行的动作组合在一起形成的模块为时间内聚模块.17. 通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据.18. 顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入.19. 功能内聚指模块内所有元素共同完成一个功能,缺一不可.因此模块不能再分割.第五章 软件详细设计1. PAD图指问题分析图(Problem Analysis Diagram),是一咱算法描述工具,它是一种由左往右展开的二维树型结构.PAD图的控制流程为自上而下,从左到右地执行.2. 过程设计语言(Process Design Language,简称PDL),也称程序描述语言(Program Descrip on Language),又称为伪码.它是一种用于描述模块自法设计和处理细节的语言.第六章 软件编码1. 程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等.2. 指程序从一个计算机环境移值到另一个计算机环境的容易程序.第七章 软件测试1. 语句覆盖是指设计足够的测试用例,使被测程序中每个语句至少执行一次.2. 判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次”真”和”假”值,从而使程序的每一个分支至少都通过一次.3. 条件覆盖指设计足够的测试用例,使得判定表达工中每个条件的各种可能的值出现一次.4. 判定/条件覆盖标准指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次.5. 条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次.6. 路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径.7. McCabe定义程序图的环路为程序图中区域的个数.区域个数为边和结点圈定的封闭区域数加上图形外的区域数1.8. 黑盒测试是功能测试又称为功能测试或数据驱动测试.9. 白盒测试是对程序中尽可能多和逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致.10. 驱动模块是用来模拟被测模块的上级调用模块的模块,功能要比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被模块,接收被测模块的测试结果并输出.11. 桩模块用来代替被测试模块所调用的模块它的作用是返回被测模块所需的信息.12. 单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误.13. 集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试,故也称组装测试或联合测试.14. 确认测试又称有效性测试.是为了检查软件的功能与性能是否与需求规格说明书中确定的指标相符合所进行的测试.15. 调试是为了确定错误的原因和位置,并改正错误所进行的工作,因此调试也称为纠错.第八章 软件维护1. 在软件运行/维护阶段对软件产品所进行的修改就是维护.2. 为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护.3. 随着计算机的飞速发展,计算机硬件,软件及数据环境在不断发生变化,为了使应用软件适应这种变化而修改软件的过程称为适应性维护.4. 在犯罪分子件运行时期中,用户往往会对软件提出新的功能要求与性能要求.这种增加软件功能,增强软件性能,提高软件运行效率而进行的维护活动称为完善性维护.5. 为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护.6. 软件可维护性是指软件能够被理解,校正,适应及增强功能的容易程度.第九章 软件开发的增量模型1. 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性.第十章 面向对象的方法1. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则,计划或事件.2. 具有相同或相似性质的对象的抽象就是类具有相同或相似性质的对象的抽象就是类3. 对象之间进行通信的构造叫做消息.4. 类中操作的实现过程叫做方法,一个方法有方法名,参数,方法体.5. 继承性是子类自动共享父类数据结构和方法的机制这是类之间的一种关系.6. 在类层次中,子类只继承一个父类的数据结构和方法,称为单重继承.7. 在类层次中,子类继承了多个父亲的数据结构和方法,称为多重继承.8. 多态性是指相同的操作或函数,过程可作用于多用户种类型的对象上并获得不同结果.不同的对象收到同一消息可以产生不同的结果,这种现象称为多态性.9. 抽象是指强调实体的本质,内在的属性,忽略一些无关紧要的属性.10. 信息隐蔽是指所有软件部件内部都有明确的范围以及清楚的外部边界每个软件部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离.11. 链表示对象间的物理与概念联结.12. 关联表示类之间的一种关系,就是一些可能的链的集合.第十一章 软件质量与质量保证1. 软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度.2. 为了完成预定功能,软件系统所需的计算机资源和程序代码数量的程度.3. 找到并改正程序中的一个错误所需代价的程度.4. 将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量.5. 将一个系统耦合到另一个系统所需的工作量.6. 修改或改进一个已投入运行的软件所需工作量的程度.7. 一个软件能再次用于其他相关应用的程度.8. 设计的规格说明书要符合用户的要求.9. 程序要按照设计规格说明所规定的情况正确执行.10. 冗余是指实现系统规定功能是多余的那部分资源,包括硬件,软件,信息和时间.第十二章 软件工程管理1. 软件配置管理,简称SCM,是一组管理整个软件生存期各阶段中变更的活动是一组管理整个软件生存期各阶段中变更的活动2. 软件配置项是软件工程中产生的信息项,它是配置管理的基本单位.3. 基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果.4. 文档是指某种数据媒体和其中所记录的数据.在软件工程中,文档用来表示对需求,工程或结果进行描述,定义,规定,报告或认证的任何书面或图示的信息.它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令.第十三章 软件开发环境1. 软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成.2. 软件工具是指为支持计算机软件的开发,维护,模拟,移植或管理而研制的程序系统.3. CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发.4. 一个组织中的CASE系统从被始需求到完全废弃这一生存期.5. 一个CASE工作台是一组工具集,支持像设计,实现或测试等特定的软件开发阶段.。
【课程练习】习题解答-第五章 详细设计

第五章详细设计1.详细设计的基本任务是什么?有哪几种描述方法?详细设计的基本任务:(1)为每个模块进行详细的算法设计。
(2)为每个模块内的数据结构进行设计。
(3)对数据库进行设计,即确定数据库的物理结构。
(4)其他设计:a.代码设计b.输入/输出格式设计。
c.人机对话设计。
(5)编写详细设计说明书。
(6)评审。
描述方法(三种):a.程序流程图b.PAD图 C.过程设计语言2.结构化程序设计基本要求要点是什么?a.采用自顶向下、逐步求精的程序设计方法b.使用三种基本程序控制结构构造程序1).用顺序方式对过程分解,确定各部分的执行顺序。
2).用选择方式对过程分解,确定某个部分的执行条件。
3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。
c.主程序员组的组织形式。
3.简述Jackson 方法的设计步骤。
Jsp 方法一般通过以下5个步骤来完成设计:a.分析并确定输入/出数据的逻辑结构,并用Jackson 结构图表示这些数据结构。
b.找出输入数据结构和输出数据结构中有对应关系的数据单元。
c.按一定的规则由输入、输出的数据结构导出程序结构。
d.列出基本操作与条件,并把它们分配到程序结构图的适当位置。
e.用伪码写出程序。
4.请使用流程图、PAD图各PDL语言描述下列程序的算法。
(1)在数据A(1)-A(10)中求最大数和次大数。
(2)输入三个正整数作为边长、判断该三条边构成的三角形是等边、等腰或一般三角形。
答:(1)1)流程图:2)PAD图3)PDL语言定义n1=n2=0输入A(1).......A(10)n1=n2=A(1)while i>10if A(i)>=n1n2=n1n1=A(i)end while5.用PAD图描述下面问题的控制结构。
有一个表A(1)、A(2)、........A(n),按递增顺序排列。
给定一个Keyw值,在表中用折半查找。
若找到将表位置i送入x,否则将零送到x,同时将Key值插入表中。
软件工程--习题及答案--第五章

软件工程(第五版)--习题及答案--第五章(总8页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除一、判断题1、(√)详细设计也称模块设计。
2、(×)在数据代码设计时,应尽量让一条代码代表多个信息。
3、(×)在数据代码设计时,应可能设计字母和数字混合代码。
4、(×)在输出界面设计时,要尽可能使用代码或缩写,以求简洁。
5、(×)详细设计评审应尽可能和概要设计评审一同进行。
二、选择题1、软件详细设计的主要任务是确定每个模块的(A)。
A、算法和使用的数据结构B、外部接口C、功能D、程序2、借助于软件工具,可将(C)容易地转换为高级语言源程序。
A、程序流程图B、N-S图C、PAD图D、判定表3、不属于详细设计工具的是(A)。
A、DFD图B、PAD图C、PDlD、N-S图4、程序的三种基本结构是(C)。
A、过程、子过程和子程序B、递归、堆栈和队列C、顺序、选择和重复D、调用、返回和转移5、下面描述中,符合结构化程序设计风格的是(A)。
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B、模块只有一个入口,可以有多个出口C、注重提高程序的执行效率D、不使用goto语句三、简答题1、软件的详细设计阶段完成的主要任务是什么答:(1)算法设计;(2)数据结构设计;(3)模块接口细节设计;(4)测试用例设计;(5)数据库物理设计;(6)数据代码设计;(7)其他设计;(8)编写详细设计说明书并进行评审。
2、数据输入界面设计的主要原则有哪些答:在设计数据输入界面时应做到:尽量简化用户的工作、减少输入的出错率;减轻用户的记忆负担、尽可能减少输入量并实现自动输入;对共同的输入设置默认值;使用代码或缩写;自动填入已输入过的内容;列表式输入; 数据分组输入。
3、代码设计的原则有哪些答:代码设计的原则是标准化、唯一性、可扩充性、简单性、规范性和适应性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章软件详细设计5.1 详细设计的基本任务(1)为每个模块进行详细的算法设计。
用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(2)为模块内的数据结构进行设计。
对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
(3)对数据结构进行物理设计,即确定数据库的物理结构。
物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
(4)其他设计:根据软件系统的类型,还可能要进行以下设计:①代码设计。
为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。
②输入/输出格式设计。
③人机对话设计。
对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。
(5)编写详细设计说明书。
(6)评审。
对处理过程的算法和数据库的物理结构都要评审。
5.2 结构化程序设计方法详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,也称“过程设计”,详细设计的目标不仅是逻辑上正确地实现每个模块的功能,并使设计出的处理过程清晰易读。
过程设计中采用的典型方法是结构化程序设计(简称)方法,最早是由在60年代中期提出的,它是实现详细设计目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。
结构化程序设计方法的基本要点是:1. 采用自顶向下,逐步求精的程序设计方法在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。
2. 使用三种基本控制结构构造程序任何程序都可由顺序、选择、重复三种基本控制结构构造。
(1)用顺序方式对过程分解,确定各部分的执行顺序。
(2)用选择方式对过程分解,确定某个部分的执行条件。
(3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。
(4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。
3. 主程序员组的组织形式指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。
5.3 详细设计描述法详细描述处理过程常用三种工具:图形、表格和语言。
本节主要介绍结构化程序流程图、盒图和问题分析图三种图形工具。
5.3.1 程序流程图程序流程图又称为程序框图,它是使用最广泛的一种描述程序逻辑结构的工具。
为了克服流程图的缺陷,要求流程图都应由三种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。
5.3.2 P图图指问题分析图( ),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。
图的控制流程为自上而下、从左到右的执行。
由机器自动通过走树的办法生成相应的源代码,大大提高了软件的生产率。
5.3.3 过程设计语言过程设计语言( ,简称),也称程序描述语言( ),又称为伪码。
它是一种用于描述算法设计和处理细节的语言。
用表示的程序结构一般有以下几种:(1)顺序结构:采用自然语言描述。
(2)选择结构:①结构条件条件处理S1 或处理S处理S2②结构条件1处理S2条件2处理S2...处理③结构(1)处理S1(2)处理S2...处理(3)重复结构:①结构1 n循环体②结构条件循环体③结构循环体条件(4)出口结构:①结构(退出本层结构)条件处理S1L 条件处理S2L:……②结构(循环内部进入循环的下一次) L:条件处理S1L 条件处理S2(5)模块定义与调用:①模块定义模块名(参数)...②模块调用模块名(参数)(6)数据定义:属性变量名……属性有:字符、整型、实型、双精度、指针、数组、结构等类型。
(7)输入/输出:(输入变量表)(输出变量表)现以系统主控模块详细设计为例,说明如何用来描述。
模块名( )清屏;显示系统用户界面;(“请输入用户口令:”);();< >系统口令提示警告信息;退出运行显示本系统主菜单;()接收用户选择;“退出”;调用相应下层模块完成用户选择功能;清屏;从以上例子可以看到的总体结构与一般程序完全相同。
外语法同相应程序语言一致,内语法使用自然语言,易编写,易理解,也很容易转换成源程序。
5.4 方法5.4.1 概述方法是面向数据结构的设计方法。
()方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件的体系结构,因此该方法适用于详细设计阶段。
5.4.2 结构图由于方法面向数据结构设计,所以提供了自己的工具——结构图。
指出,无论数据结构还是程序结构,都限于三种基本结构及它们的组合,因此,他给出了三种基本结构的表示。
(见课本)1. 顺序结构2. 选择结构3. 重复结构结构图的特点:(1)能对结构进行自顶向下分解,因此可以表示层次结构。
(2)结构易读,形象直观。
(3)既能表示数据结构也能表示程序结构,且表示的是组成关系。
5.4.3 设计步骤方法一般通过以下五个步骤来完成设计:(1)分析并确定输入数据和输出数据的逻辑结构,并用结构图来表示这些数据结构。
(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。
“对应关系”指这些数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。
(3)按一定的规则由输入、输出的数据结构导出程序结构。
(4)列出基本操作与条件,并把它们分配到程序结构图的适当位置。
(5)用伪码写出程序。
就例子说明方法设计过程。
第5章例题分析与解答一、填空题1.结构化程序设计方法的要点是使用结构,自顶向下、逐步求精地构造算法或程序。
答案:三种基本控制结构2.为了产生结构化的流程图,应由三种基本控制结构顺序组合或而成。
答案:完整嵌套3.结构化程序设计方法提倡开发人员的组织形式是。
答案:主程序员组4图是一种由左向右展开的二维树型结构,图中的竖线为程序的。
答案:层次线5.在方法中解决结构冲突的具体办法是引入。
答案:中间数据结构或中间文件二、选择题1.详细设计与概要设计衔接的图形工具是( )。
图图图 D.程序流程图答案:B2.结构化程序设计主要强调的是( )。
A.程序的效率B.程序的执行速度C.程序的易读性D.程序的规模答案:C3.详细设计的任务是确定每个模块的( )。
A.算法B.功能C.调用关系D.输入输出数据答案:A4方法实现从( )导出( )。
A.数据结构B.数据流图C.程序结构D.软件模块层次结构答案:A、C5.在软件详细设计过程中不采用的描述工具是( )。
A.判定表图图图答案:D第5章自测题及参考答案一、名词解释1.结构化程序设计 2 3 4.详细设计二、填空题1.结构化程序设计方法使用构造程序。
(三种基本控制结构)2.在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是。
(程序流程图)3.结构化程序设计技术指导人们用良好的思想方法开发的程序。
(易于理解、易于验证)4.详细描述处理过程常用的三种工具是图形、语言和。
(表格)5图不仅可表示程序结构,还可表示。
(数据结构)6具有严格的关键字外层语法,用于定义控制结构、数据结构和。
(模块接口)7.详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程。
(清晰易读)8.用方法导出程序结构后,还要列出,并把它们分配到程序结构图的适当位置上去。
(操作与条件)9.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的进行设计。
(数据结构)10.在详细设计阶段,为了提高数据的输入、储存、检索等操作的效率并节约存储空间,对某些数据项的值要进行设计。
(代码)三、选择题1.在详细设计阶段,一种二维树型结构并可自动生成程序代码的描述工具是( A )。
D.判定树2.结构化程序设计的一种基本方法是( D )。
A.筛选法B.递归法C.迭代法D.逐步求精法3方法是一种面向( C )的设计方法。
A.对象B.数据流C.数据结构D.控制结构4方法主要用于规模适中的( A )系统的开发。
A.数据处理B.实时处理C.文字处理D.科学计算5是软件开发过程中用于( C )阶段的描述工具。
A.需求分析B.概要设计C.详细设计D.编程6.在详细设计阶段,可自动生成程序代码并可作为注释出现在源程序中的描述工具是( B )。
D.流程图7图上下层之间的关系是( B )。
A.调用关系B.组成关系C.继承关系D.嵌套关系8方法根据输入输出的数据结构按一定的规则映射成软件的( C )。
A.体系结构B.数据结构C.程序结构D.顺序结构9.程序的三种基本控制结构是( B )。
A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移10.程序的三种基本控制结构的共同特点是( D )。
A.不能嵌套使用B.只能用来写简单程序C.已经用硬件实现D.只有一个入口和一个出口《软件工程》习题参考答案51、详细设计的基本任务是什么,有哪几种描述方法?答:详细设计的基本任务包括:(1)为每个模块进行详细的算法设计(2)为模块内的数据结构进行设计(3)对数据库进行物理设计(4)其他设计(5)编写详细设计说明书(6)评审详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和(问题分析图)为描述工具,语言常用过程设计语言()来作为工具。
2、结构化程序设计的基本要点是什么?答:主要有三个:(1)采用自顶向下、逐步求精的程序设计方法(2)使用三种基本控制结构构造程序。
任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。
(3)主程序员组的组织形式。
3、简述方法的设计步骤。
答:方法的设计步骤如下:(1)分析并确定输入数据和输出数据的逻辑结构,并用结构图表示这些数据结构。
(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。
(3)按一定的规则由输入、输出的数据结构导出程序结构。
(4)列出基本操作与条件,并把它们分配到程序结构图的适当位置。
(5)用伪码写出程序。
4、请使用流程图、图和语言描述下列程序的算法。
(1)在数据A(1)~A(10)中求最大数和次大数。
解:如图所示:语言描述: (a[1][2][10]) [1];2[2];2 10a[i]>2;[i];a[i]>22[i];(2)(2)输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。
解:如图:语言描述如下: ()(>c >a >b)()()("等边三角形") ("等腰三角形")()("等腰三角形")()("等腰三角形")("一般三角形")("这不是一个三角形")5、用图描述下面问题的控制结构。