第5章 详细设计(结构化)
- 格式:pdf
- 大小:611.77 KB
- 文档页数:86
第5章总体设计基本概念模块化抽象信息隐藏和局部化耦合、内聚软件结构的深度、宽度、扇入、扇出模块的作用域和控制域层次图结构图知识点总体设计过程设计原理启发式规则面向数据流的设计方法习题一、选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内)1.软件概要设计结束后得到(B)。
A.初始化的软件结构图B.优化后的软件结构图C.模块详细的算法D.程序编码2.软件设计阶段一般又可分为(B)。
A.逻辑设计与功能设计B.概要设计与详细设计C.概念设计与物理设计D.模型设计与程序设计3.软件设计中划分模块的一个准则是(C)。
A.低内聚低耦合B.低内聚高耦合C.高内聚低耦合D.高内聚高耦合4.SA方法的基本思想是(C)A.自底向上逐步抽象B.自底向上逐步分解C.自顶向下逐步分解D.自顶向下逐步抽象5.软件结构图中,模块框之间若有直线连接,表示它们之间存在着(A)关系。
A.调用B.组成C.链接D.顺序执行6.为了提高模块的独立性,模块内部最好是(C)。
A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚7.面向数据流的设计方法把(C)映射成软件结构。
A、数据流B、模块化C、控制结构D、信息流8.软件结构使用的图形工具,一般采用(C)图。
A.DFDB.PADC.SCD.ER9.在面向数据流的软件设计方法中,一般将信息流分为(A)A、变换流和事务流B、变换流和控制流C、事务流和控制流D、数据流和控制流10、结构设计是一种应用最广泛的系统设计方法,是以(A)为基础、自顶向下、逐步求精和模块化的过程。
A、数据流B、数据流图C、数据库D、数据结构11、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为(A)。
A、时间内聚B、逻辑内聚C、通信内聚D、信息内聚12、在软件结构化设计中,好的软件结构设计应该力求做到(B)。
A、顶层扇出较少,中间层扇出较高,底层模块低扇入B、顶层扇出较高,中间层扇出较少,底层模块高扇入C、顶层扇入较少,中间层扇出较高,底层模块高扇入D、顶层扇入较少,中间层扇入较高,底层模块低扇入13、结构图(SC)和层次方框图是不同的,前者(B)。
《软件工程》
配套教学教案第1章软件工程概述
第2章可行性研究与软件工程开发计划
圆圈中的字母代表各项子任务的开始或结束事件的编号,箭头上方的数字表示完成各项子任务所需的周数。
要求:
(1)标出每个事件的最早时刻、最迟时刻与机动时间。
估算完成该工程项目总共需要多
第3章需求分析
第4章概要设计
第5章详细设计
第6章软件实现
第7章软件维护
第8章面向对象方法、UML及应用
第9章 WebApp软件工程
第10章软件重用和再工程
第11章软件工程管理
第12章实例——网上商品竞拍系统。
软件⼯程导论知识点总结(整理)《软件⼯程导论》课后习题答案第⼀章软件⼯程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。
这些问题表现在以下⼏个⽅⾯:(1)⽤户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)⼀般软件很难维护。
(4)软件⽣产效率很低。
(5)软件开发成本越来越⼤。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满⾜不了计算机应⽤的普及与深⼊的需要。
2.为什么会产⽣软件危机?(1) 开发⼈员⽅⾯,对软件产品缺乏正确认识,没有真正理解软件产品是⼀个完整的配置组成。
造成开发中制定计划盲⽬、编程草率,不考虑维护⼯作的必要性。
(2) 软件本⾝⽅⾯,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统⼀的、公认的⽅法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越⼤,复杂程度越来越⾼,原有软件开发⽅式效率不⾼、质量不能保证、成本过⾼、研制周期不易估计、维护困难等⼀系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴⼈类长期以来从事各种⼯程项⽬中积累的⾏之有效的有效原理、概念、技术与⽅法,特别是吸取⼏⼗年来⼈类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努⼒作到良好的组织,严格的管理,相互友好的协作。
(2) 推⼴在实践中总结出来的开发软件的成功的技术和⽅法,并研究更好、更有效的技术和⽅法,尽快克服在计算机系统早期发展阶段形成的⼀些错误概念和作法。
(3) 根据不同的应⽤领域,开发更好的软件⼯具并使⽤这些⼯具。
将软件开发各个阶段使⽤的软件⼯具集合成⼀个整体,形成⼀个很好的软件开发⽀环环境。
总之为了解决软件危机,既要有技术措施(⽅法和⼯具),⼜要有必要的组织管理措施。
4.构成软件项⽬的最终产品:应⽤程序、系统程序、⾯向⽤户的⽂档资料和⾯向开发者的⽂档资料。
5.什么是软件⽣存周期?软件⽣存周期是指从软件定义、开发、使⽤、维护到淘汰的全过程。
软件工程基础知识学习指南第1章软件工程概述 (3)1.1 软件工程的定义与目标 (3)1.1.1 定义 (4)1.1.2 目标 (4)1.2 软件工程的历史与发展 (4)1.2.1 软件危机 (4)1.2.2 软件工程概念的提出 (4)1.2.3 软件工程的发展 (4)1.3 软件工程的基本原则 (4)第2章软件生命周期与开发模型 (5)2.1 软件生命周期 (5)2.1.1 需求分析 (5)2.1.2 设计 (5)2.1.3 编码 (5)2.1.4 测试 (6)2.1.5 部署 (6)2.1.6 维护 (6)2.1.7 退役 (6)2.2 软件开发模型 (6)2.3 常见开发模型介绍 (6)2.3.1 瀑布模型 (6)2.3.2 快速原型模型 (6)2.3.3 增量模型 (6)2.3.4 敏捷开发模型 (6)2.3.5 演化模型 (7)2.3.6 螺旋模型 (7)第3章需求分析 (7)3.1 需求分析的概念与意义 (7)3.2 需求获取方法 (7)3.3 需求规格说明书 (7)第4章系统设计 (8)4.1 设计的基本概念 (8)4.1.1 设计目标与原则 (8)4.1.2 设计方法 (8)4.2 模块化设计 (9)4.2.1 模块化设计概念 (9)4.2.2 模块划分方法 (9)4.2.3 模块化设计原则 (9)4.3 系统架构设计 (9)4.3.1 系统架构概念 (9)4.3.2 架构风格 (10)4.3.3 架构设计方法 (10)第5章详细设计与实现 (10)5.1 详细设计概述 (10)5.1.1 详细设计的概念 (10)5.1.2 详细设计的目的 (10)5.1.3 详细设计的方法 (11)5.1.4 详细设计与系统设计的区别 (11)5.2 结构化程序设计 (11)5.2.1 结构化程序设计的基本原则 (11)5.2.2 模块化设计 (11)5.2.3 自顶向下设计 (12)5.2.4 逐步求精设计 (12)5.3 面向对象程序设计 (12)5.3.1 面向对象程序设计的基本概念 (12)5.3.2 类与对象 (12)5.3.3 封装 (12)5.3.4 继承 (12)5.3.5 多态 (12)第6章编码与编程规范 (13)6.1 编码概述 (13)6.1.1 编码的基本概念 (13)6.1.2 编码的原则 (13)6.1.3 编码的方法 (13)6.2 编程语言的选择 (13)6.2.1 编程语言的分类 (13)6.2.2 编程语言的选择原则 (14)6.3 编程规范与代码质量 (14)6.3.1 编程规范的作用 (14)6.3.2 编程规范的主要内容 (14)第7章软件测试 (15)7.1 软件测试的基本概念 (15)7.1.1 软件测试的定义 (15)7.1.2 软件测试的目的 (15)7.1.3 软件测试的原则 (15)7.2 测试方法与策略 (15)7.2.1 单元测试 (15)7.2.2 集成测试 (15)7.2.3 系统测试 (15)7.2.4 验收测试 (15)7.2.5 回归测试 (16)7.3 测试用例设计 (16)7.3.1 测试用例的定义 (16)7.3.2 测试用例设计方法 (16)7.3.3 测试用例管理 (16)第8章软件维护 (16)8.1 软件维护的定义与分类 (16)8.1.1 正常维护 (16)8.1.2 改进性维护 (16)8.1.3 适应性维护 (16)8.1.4 预防性维护 (17)8.2 软件维护过程 (17)8.2.1 维护请求分析 (17)8.2.2 维护计划制定 (17)8.2.3 维护实施 (17)8.2.4 维护监控与评估 (17)8.2.5 维护交付 (17)8.3 软件的可维护性 (17)8.3.1 可理解性 (17)8.3.2 可修改性 (17)8.3.3 可测试性 (17)8.3.4 可移植性 (18)8.3.5 可用性 (18)8.3.6 可靠性 (18)8.3.7 可扩展性 (18)第9章项目管理 (18)9.1 项目管理概述 (18)9.1.1 项目管理的基本概念 (18)9.1.2 项目管理的核心要素 (18)9.1.3 项目管理的过程组 (18)9.2 项目进度与风险管理 (18)9.2.1 项目进度管理 (19)9.2.2 项目风险管理 (19)9.2.3 进度和风险管理的工具与方法 (19)9.3 团队协作与沟通 (19)9.3.1 团队协作 (19)9.3.2 沟通管理 (19)9.3.3 团队协作与沟通的工具与方法 (19)第10章软件工程前沿技术 (19)10.1 敏捷开发 (19)10.2 DevOps与持续集成 (19)10.3 人工智能在软件工程中的应用 (20)10.4 软件工程未来发展趋势与挑战 (20)第1章软件工程概述1.1 软件工程的定义与目标1.1.1 定义软件工程是一门应用计算机科学、数学原理与工程实践来开发、维护软件的学科。
第一章软件工程概述介绍软件工程概念的提出以及发展历程,并分析软件开发的本质。
软件工程概论课程介绍第二章软件过程介绍如何定义一个项目的过程,主要涉及三方面的知识:(1)要了解软件开发通常需要做哪些工作,即软件生存周期过程;(2)要了解定义过程的基准框架,即软件生存周期模型;(3)是要了解一般性的过程规划技术。
软件过程(1)-20100913软件过程(2)-20100916软件过程(3)-20100916第三章软件需求与软件需求规约介绍软件需求的定义、需求的分类、常用的需求发现技术,以及需求规约。
软件需求-20100923第四章结构化分析介绍结构化需求分析、需求验证及实例研究。
结构化分析方法-0927第五章结构化设计结构化设计:总体设计的目标及其表示、总体设计方法、设计评价准则与启发式规则、设计优化、详细设计、软件设计规格说明书、实例研究。
结构构化设计方法-总体设计0930结构化设计-详细设计和软件设计规约1011第六章面向对象方法-UML面向对象方法发展以及UML(Unified Modeling Language)的提出、表达客观事物的术语、表达关系的术语、组织信息的通用机制--包、模型表示工具。
面向对象介绍面向对象方法UML(1)面向对象方法UML(2)面向对象方法UML(3)第七章面向对象分析、设计和编程技术介绍面向对象分析、设计和编程技术。
面向对象分析模型规约面向对象设计(1)面向对象设计(2)面向对象编程第八章面向对象方法-RUPRUP(Unified Software Development Process)的作用和特点、核心工作流。
RUP-1-1207RUP-2-1210RUP-3-1214第九章软件测试软件测试目标与软件测试过程模型、软件测试技术、软件测试步骤、静态分析技术-程序正确性证明。
软件测试(1)软件测试(2)软件测试-扩展报告第十章软件工程管理软件工程管理活动;软件规模、成本和进度估算;能力成熟度模型CMM;ISO9000标准。
第5章习题(修改ok)-答案1.简述详细设计的任务。
包括模块的算法设计、模块内的数据结构设计、模块接⼝设计、其它根据软件特点需要完成的设计、模块测试⽤例设计、设计⽂档编写、设计评审。
2.简述详细设计的原则。
①模块的逻辑描述应清晰易读、正确可靠;②设计的处理过程应该简明易懂;③选择恰当的描述⼯具来描述模块算法。
3.简述结构化程序设计基本要求和特点。
要点:a.采⽤⾃顶向下、逐步求精的程序设计⽅法b.使⽤三种基本程序控制结构构造程序1).⽤顺序⽅式对过程分解,确定各部分的执⾏顺序。
2).⽤选择⽅式对过程分解,确定某个部分的执⾏条件。
3).⽤循环⽅式对过程分解,确定某个部分重复的开始和结束的条件。
c.主程序员组的组织形式。
特点:①⾃顶向下、逐步求精;②具有单⼊、单出的控制结构(取消GOTO语句)4.简述⽤户界⾯设计的基本原则(1)可靠性⽤户界⾯应当提供可靠的、能有效减少⽤户出错的、容错性好的环境。
⼀旦⽤户出错,应当能检测出错误、提供出错信息,给⽤户改正错误的机会。
(2)简单性简单性能提⾼⼯作效率。
⽤户界⾯的简单性包括输⼊、输出的简单性;系统界⾯风格的⼀致性;命令关键词的含义、命令的格式、提⽰信息、输⼊输出格式等的⼀致性。
(3)易学习性和易使⽤性⽤户界⾯应提供多种学习和使⽤⽅式,应能灵活地适⽤于所有的⽤户。
(4)⽴即反馈性⽤户界⾯对⽤户的所有输⼊都应⽴即做出反馈。
当⽤户有误操作时,程序应尽可能明确地告诉⽤户做错了什么,并向⽤户提出改正错误建议。
三、下图是使⽤Basic语⾔编写的⼀个打印A,B,C三数中最⼩者的程序的流程图。
其中出现了6个GOTO语句,⼀个向前,5个向后,程序可读性很差。
if ( A < B ) goto 120;if ( B < C ) goto 110;100 print C;goto 140;110 print B;goto 140;120 if ( A < C ) goto 130;goto 100;130 print A;140试利⽤基本控制结构,将程序中的GOTO语句消去。
软件⼯程(第五版)--习题及答案--第五章⼀、判断题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、请分别使⽤程序流程图、PAD图和N-S图描述下列程序的算法。
第5章总体设计一、选择题1.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的()。
A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法【答案】C【解析】模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。
耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。
2.在面向数据流的软件设计方法中,一般将信息流分为()。
A.变换流和事务流B.变换流和控制流C.事务流和控制流D.数据流和控制流【答案】A【解析】面向数据流的软件设计方法是以结构化分析阶段所产生的文档(包括数据流图、数据字典和软件需求说明书)为基础,自顶向下,逐步求精和模块化的过程。
它一般将信息流分为变换流和事务流。
①变换流:信息沿着输入通道进入系统,然后通过变换中心(也称主加工)处理,再沿着输出通道离开系统。
②事务流:信息沿着输入通道到达一个事务中心,事务中心根据输入信息(即事务)的类型在若干个动作序列(称为活动流)中选择一个来执行。
3.软件设计一般分为总体设计和详细设计,它们之间的关系是()。
A.全局和局部B.抽象和具体C.总体和层次D.功能和结构【答案】A【解析】软件设计分为总体设计和详细设计,其中总体设计属于全局性的设计,详细设计属于局部性的设计,是概要设计的完善。
4.将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是()的。
A.逻辑性B.瞬时性C.功能性D.通信性【答案】A【解析】逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
5.模块中所有成分引用共同的数据,该模块的内聚度是()的。
A.逻辑性B.瞬时性C.功能性D.通信性【答案】D【解析】通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。
6.好的软件结构应该是()。
A.高耦合、高内聚B.低耦合、高内聚C.高耦合、低内聚D.低耦合、低内聚【答案】B【解析】耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。