软件工程导论__第五章课后答案

合集下载

软件工程导论(第六版)部分课后习题-答案

软件工程导论(第六版)部分课后习题-答案

软件工程导论(第六版)部分课后习题-答案软件工程导论(第六版)部分课后习题-答案一、选择题1. 答案:B解析:选择题解析2. 答案:A解析:选择题解析二、判断题1. 答案:对解析:判断题解析2. 答案:错解析:判断题解析三、填空题1. 答案:软件工程解析:填空题解析2. 答案:开发、维护解析:填空题解析四、简答题1. 答案:软件需求分析是软件工程的第一步,它主要是通过对用户需求的调查和分析,确定软件系统需要具备的功能和性能以及相关约束条件。

解析:简答题解析2. 答案:软件开发过程中的质量保证主要包括软件测试和代码评审两个方面。

软件测试是通过运行和验证软件系统的过程,以确定其是否满足预期的需求和标准。

代码评审则是对软件代码进行审查和评估,在开发过程中发现和修复潜在的问题和错误。

解析:简答题解析五、计算题1. 答案:20解析:计算题解析2. 答案:1000解析:计算题解析六、案例分析题1. 答案:软件项目管理是指对软件项目进行规划、组织、分配和控制的过程。

它包括项目范围管理、时间管理、成本管理、质量管理、风险管理等方面。

在一个项目中,软件项目经理负责整体的项目管理工作,包括资源的分配、进度的控制、风险的管理等。

解析:案例分析题解析2. 答案:敏捷开发是一种迭代、逐步增量的软件开发方法。

它强调快速、灵活地响应用户需求的变化,通过频繁的迭代和持续的反馈来逐步完善软件系统。

敏捷开发方法注重团队合作、交流和高效的沟通,通过直接面对面的沟通取代冗长的文档和繁琐的流程,提高软件开发的效率和质量。

解析:案例分析题解析总结:本文主要针对《软件工程导论(第六版)》部分课后习题提供了答案和解析。

其中包括选择题、判断题、填空题、简答题、计算题和案例分析题等多个题型。

通过解答这些习题,读者可以进一步加深对软件工程的理解和掌握。

希望本文对读者有所帮助,谢谢阅读。

软件工程导论第六版课后习题答案完整版

软件工程导论第六版课后习题答案完整版

软件工程导论第六版课后习题答案完整版首先,感谢您对软件工程导论课后习题答案的需求。

以下是软件工程导论第六版课后习题的完整答案。

第一章:软件工程概述1.1 问题1. 什么是软件工程?答:软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的学科。

1.2 问题1. 什么是软件?答:软件是一系列按照特定顺序组织的计算机数据和指令。

第二章:软件过程模型2.1 问题1. 软件过程模型有哪些类型?答:常见的软件过程模型包括瀑布模型、迭代模型、螺旋模型和敏捷开发模型等。

2.2 问题1. 瀑布模型的特点是什么?答:瀑布模型是一种线性顺序模型,以阶段划分为基础,每个阶段的任务在进入下一个阶段前必须完成。

第三章:需求分析与规格说明3.1 问题1. 软件需求描述包括哪些方面的内容?答:软件需求描述需要包括功能性需求、非功能性需求、用户需求和系统需求等。

3.2 问题1. 什么是需求跟踪?答:需求跟踪是指在软件开发过程中,通过建立需求和软件项目中其他相关工件之间的关联,确保需求的准确实现和变更的有效管理。

第四章:软件设计4.1 问题1. 软件设计的目标是什么?答:软件设计的目标是通过确定软件的整体结构和组成部分,确保软件满足需求并具有良好的可维护性和可重用性。

第五章:软件测试与维护5.1 问题1. 什么是软件测试?答:软件测试是一种评估和改进软件质量的过程,目的是发现错误并提高软件的可靠性和可用性。

5.2 问题1. 什么是软件维护?答:软件维护是指在软件交付后的整个生命周期中对软件进行修改和改进,以满足用户需求和修复错误。

第六章:软件配置管理6.1 问题1. 软件配置管理的目标是什么?答:软件配置管理的目标是确保软件在开发和维护过程中的可控性和可追踪性,以及保持软件配置的稳定性和一致性。

6.2 问题1. 软件版本控制是什么?答:软件版本控制是指对软件的不同版本进行管理,包括版本的创建、检出、合并和更新等操作。

至此,我们完成了软件工程导论第六版课后习题的完整答案。

最新软件工程导论第五版习题答案教学讲义PPT

最新软件工程导论第五版习题答案教学讲义PPT

D3生理信息
F4警告信息
F2生理信号
P1 接收信号
定时的生理信号
P5 更新日志
F2生理信号 定时的 生理信号
E1 护士
E3 时钟
F3日前、时间
P4 定时取样 生理信号
F6日志
F6日志
D1患者日志
E1
护士
F1要求报告
P6
13:07:42
重庆工学产院生计病算情机报科告学与工程学院 李梁(liliang@)
从问题陈述可知,本系统数据源点是“病人”和“护士” ,他们分别提供生理信号和要求病情报告的信息。进一步 分析问题陈述,从系统应该“定时记录病人情况以形成患 者日志”这项要求可以想到,还应该有一个提供日期和时 间信息的“时钟”作为数据源点。
从问题陈述容易看出,本系统的数据终点是接收警告信息 和病情报告的护士。
F6日志
D1患者日志
E1
护士
F1要求报告
P6
13:07:42
重庆工学产院生计病算情机报科告学与工程学院 李梁(liliang@)
13
作业及解答(第3章)
2-5 北京某高校可用的电话号码有以下几类:校内电话号码 由4位数字组成,第1位数字不是0;校外电话又分为本市 电话和外地电话两类,拨校外电话需先拨0,若是本市电 话则再接着拨8位数字(第1位不是0),若是外地电话则拨3 位区码再拨8位电话号码(第1位不是0)。
8
作业及解答(第3章)
E1 护士
F4警告信息、病情报告 F1要求报告
E1 护士
E2 病人
F2生理信号
P0 患者监护系统
F6日志
D1患者日志
F5安全范围
D2患者安全范围
E3 时钟

软件工程 第五章(总结和课后习题)

软件工程 第五章(总结和课后习题)
第五章 RUP
出:分析类[完成];4、对包进行分析: 输入:系统体系结构描述[分析]、分析 包[概述]输出:分析类[完成]。 � (18)创建系统的分析模型,一般应进 行体系结构分析、用况分析、类的分析 以及包的分析 4 项活动。 � (19)用况分析[分析]的目标:1、标识 那些在用况事件流执行中所需要的分析 类和对象;2、将用况的行为,分布到参 与交互的各个分析对象;3、捕获用况细 化上的特定需求。 � (20)用况分析[分析]开展的活动包括: 1、标识分析类,标识在细化一个用况中 所需要的实体类、控制类和边界类,给 出它们的名字、责任、属性和关系;2、 描述分析(类)对象之间的交互,通常 使用交互图来描述。 � (21)类的分析[分析]的目标:1、标识 并维护分析类的责任;2、基于它们在用 况细化中的角色,标识并维护分析类的 属性和关系;3、捕获分析类细化中的特 定需求。 � (22)类的分析[分析] 开展的活动包 括:1、标识责任;2、标识属性;3 标识 关联与聚合; � (23)需求分析模型对以后开发工作的 影响?1、对设计中子系统的影响。分析 包一般将影响设计子系统的结构;2、对 设计类的影响。分析包可以作为类设计 时的规格说明;3、对用况细化[设计]的 影响。用况细分[分析]对用况细化[设计] 有两方面影响,一个是它们有乃至于为 用况创建更精确的规格说明,另一个是 当对用况进行设计时,用况细化[分析] 可作为其输入。 (24)需求获取模型与需求分析模型之
第五章 RUP
[概述];输出:子系统[完成]、接口[完 成]。 � (29)用况的设计包括以下任务:1、标 识参与用况细化的设计类;2、标识参与 用况细化的子系统的接口。 � (30)类的设计包括以下任务:1、概括 描述设计类;2、标识操作;3、标识属 性;4、标识关联、聚合;5、标识泛化; 6、描述方法; � � � (31)RUP 设计的突出优点:P165 页 (32)RUP 的设计系统生成构件;对构件进行测试,进行 集成测试和连接;把可执行的构件映射 到部署模型。 � (34)RUP 实现包括以下活动:1、实现 模型;2、实现子系统;3、实现模型视 角下的体系结构描述;4、实现类; � � (35)RUP 测试包括内部测试、中间测试 和最终测试。 (36)RUP 测试的主要活动:1、计划测 试;2、设计测试;3、实现测试;4、执 行集成测试;5、执行系统测试;6、评 价测试。

软件工程导论课后题

软件工程导论课后题

《软件工程导论》课后习题答案高考录取统分子系统(1)计算标准分:根据原始分计算得出后存入考生分数文件;(2)计算录取线分:根据标准分、招生人数计算,得出后存入录取线文件。

解:流图 原始分 招生人数 标准分标准分 标准分结构图教务系统(输入ID 及口令后经验证进入系统)(1)查询成绩(名次信息)(2)学籍管理(3)成绩处理(单科成绩)解:0层DFD 请求结果 详细DFD查询结果 查询成绩 名次信息ID 及口令 学籍管理 查询结果查询结果 查询结果第一章 软件工程概论一、软件工程——是指导计算机软件开发和维护的一门工程科学。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前的能够得到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效的维护它。

二、软件过程——为了获得高质量软件需要完成的一系列任务的框架,它规定考生 计算标准分 分数 计算标准分 招生人数 录取线 统分子系统取得标准分 取得招生人数 计算录取分数 原始分 用户 教务系统 用户 名次信息 成绩表 用户用户用户 身份验证 查询成绩 学籍管理 成绩处理了完成各项任务的工作步骤。

1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2.软件危机有那些典型表现?(1) 对软件开发成本和进度的估计常常很不准确。

(2) 用户对“已完成的”软件系统不满意的现象经常发生。

(3) 软件产品的质量往往靠不住。

(4) 软件常常是不可维护的。

(5) 软件通常没有适当的文档资料。

(6) 软件成本在计算机系统总成本中所占的比例逐年上升。

软件工程导论张海藩(第五版)课后习题答案

软件工程导论张海藩(第五版)课后习题答案

软件⼯程导论张海藩(第五版)课后习题答案《软件⼯程导论》课后习题答案第⼀章软件⼯程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。

这些问题表现在以下⼏个⽅⾯:(1)⽤户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)⼀般软件很难维护。

(4)软件⽣产效率很低。

(5)软件开发成本越来越⼤。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满⾜不了计算机应⽤的普及与深⼊的需要。

2.为什么会产⽣软件危机?(1) 开发⼈员⽅⾯,对软件产品缺乏正确认识,没有真正理解软件产品是⼀个完整的配置组成。

造成开发中制定计划盲⽬、编程草率,不考虑维护⼯作的必要性。

(2) 软件本⾝⽅⾯,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统⼀的、公认的⽅法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越⼤,复杂程度越来越⾼,原有软件开发⽅式效率不⾼、质量不能保证、成本过⾼、研制周期不易估计、维护困难等⼀系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机?(1) 充分吸收和借鉴⼈类长期以来从事各种⼯程项⽬中积累的⾏之有效的有效原理、概念、技术与⽅法,特别是吸取⼏⼗年来⼈类从事计算机硬件研究和开发的经验教训。

在开发软件的过程中努⼒作到良好的组织,严格的管理,相互友好的协作。

(2) 推⼴在实践中总结出来的开发软件的成功的技术和⽅法,并研究更好、更有效的技术和⽅法,尽快克服在计算机系统早期发展阶段形成的⼀些错误概念和作法。

(3) 根据不同的应⽤领域,开发更好的软件⼯具并使⽤这些⼯具。

将软件开发各个阶段使⽤的软件⼯具集合成⼀个整体,形成⼀个很好的软件开发⽀环环境。

总之为了解决软件危机,既要有技术措施(⽅法和⼯具),⼜要有必要的组织管理措施。

4.构成软件项⽬的最终产品:应⽤程序、系统程序、⾯向⽤户的⽂档资料和⾯向开发者的⽂档资料。

软件工程导论知识点总结(整理)

软件工程导论知识点总结(整理)

软件⼯程导论知识点总结(整理)《软件⼯程导论》课后习题答案第⼀章软件⼯程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。

这些问题表现在以下⼏个⽅⾯:(1)⽤户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)⼀般软件很难维护。

(4)软件⽣产效率很低。

(5)软件开发成本越来越⼤。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满⾜不了计算机应⽤的普及与深⼊的需要。

2.为什么会产⽣软件危机?(1) 开发⼈员⽅⾯,对软件产品缺乏正确认识,没有真正理解软件产品是⼀个完整的配置组成。

造成开发中制定计划盲⽬、编程草率,不考虑维护⼯作的必要性。

(2) 软件本⾝⽅⾯,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统⼀的、公认的⽅法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越⼤,复杂程度越来越⾼,原有软件开发⽅式效率不⾼、质量不能保证、成本过⾼、研制周期不易估计、维护困难等⼀系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机?(1) 充分吸收和借鉴⼈类长期以来从事各种⼯程项⽬中积累的⾏之有效的有效原理、概念、技术与⽅法,特别是吸取⼏⼗年来⼈类从事计算机硬件研究和开发的经验教训。

在开发软件的过程中努⼒作到良好的组织,严格的管理,相互友好的协作。

(2) 推⼴在实践中总结出来的开发软件的成功的技术和⽅法,并研究更好、更有效的技术和⽅法,尽快克服在计算机系统早期发展阶段形成的⼀些错误概念和作法。

(3) 根据不同的应⽤领域,开发更好的软件⼯具并使⽤这些⼯具。

将软件开发各个阶段使⽤的软件⼯具集合成⼀个整体,形成⼀个很好的软件开发⽀环环境。

总之为了解决软件危机,既要有技术措施(⽅法和⼯具),⼜要有必要的组织管理措施。

4.构成软件项⽬的最终产品:应⽤程序、系统程序、⾯向⽤户的⽂档资料和⾯向开发者的⽂档资料。

5.什么是软件⽣存周期?软件⽣存周期是指从软件定义、开发、使⽤、维护到淘汰的全过程。

《软件工程导论》课后习题答案

《软件工程导论》课后习题答案
假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。
*
作业及解答(第1-2章)
05
03
01
在1985年对计算机存储容量的需求,估计是
如果字长为16位,则这个存储器的价格是
如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。
储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性。
*
作业及解答(第3章)
*
作业及解答(第3章)
3-6 复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:
*
作业及解答(第1-2章)
在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?
假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
如果字长为32位,则这个存储器的价格是:
在1995年对存储容量的需求估计为:
在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开发出可装满整个存储器的程序,需要的工作量为

软件工程导论第五章课后答案

软件工程导论第五章课后答案

软件工程导论第五章课后答案本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March第五章习题答案1、为每种类型的模块耦合举一个具体例子。

答:耦合是对一个软件结构内不同模块之间互连程度的度量。

耦合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点,以及通过接口的数据,一般模块之间可能的连接方式有7种,构成耦合的7种类型,它们之间的关系为:下面举例说明以上各种耦合:a.非直接耦合(Nondirect Coupling)在这种情况下,两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。

例如在实数的运算中,有两个模块分别完成几个实数的求和,求乘积功能,这两个模块之间没有直接联系,只有在主模块调用中有执行的前后顺序而已,这个例子即属于非直接耦合。

b.数据耦合(DataCoupling)即一个模块访问另一个模块时,彼此之间是通过数据参数来交换输入,输出信息的,这种耦合为数据输入,输出信息的这种耦合为数据耦合。

如有两个模块,其中A完成两个烽的比较,求出其中最大的并返回该值,模块B是完成了个数的比较,求出其中最大的并返回该最大值,为完成四个数的比较,模块B调用模块A即可完成,在这种调用关系中,模块A的运算结果作为一个参烽参加B的运算,这两个模块之间即发生数据耦合。

数据耦合是松散的耦合,模块间的独立性比较强。

c.标记耦合(Stamp Coupling),即一组模块通过参数传递记录信息,这就是标记耦合。

事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。

d.控制耦合(Control Coupling)即一个模块通过开关标志,名字等控制住处明显的控制,选择另一模块的功能,这就是控制耦合,如下图所示,这一种耦合实质是在单一接口上实现选择多功能模块中的某项功能,如程序设计中用到多路选择结构即是最好的例子。

软件工程导论第五版答案

软件工程导论第五版答案

13:07:42
软件工程导论第五版答案
•作业及解答(第4章)
仔细研究图示的有穷状态机可以发现,它还有不够严格的地 方。有兴趣的同学请进一步改进它,画出更严格的、与浮 点二进制数定义完全一致的有穷状态机。
13:07:42
软件工程导论第五版答案
•作业及解答(第5章)
补充1:请为某仓库的管理设计一个ER模型。该仓库主要管 理零件的订购和供应等事项。仓库向工程项目供应零件, 并且根据需要向供应商订购零件。
〈floating point binary〉∷=[〈sign〉]〈bitstring
〉E[〈sign〉]〈bitstring〉
〈sign〉∷=+|-
〈bitstring〉∷=〈bit〉[〈bitstring〉]
〈bit〉∷=0|1
13:07:42
软件工程导论第五版答案
•作业及解答(第4章)
其中, ✓符号∷=表示定义为; ✓符号[...]表示可选项; ✓符号a|b表示a或b。 假设有这样一个有穷状态机:以一串字符为输入,判断字符 串中是否含有合法的浮点二进制数。试对这个有穷状态机进 行规格说明。
(3)在1995年对存储容量的需求估计为:
如果字长为32位,则这个存储器的价格是:
如果一条指令为一个字长,则为使存储器装满程序共需 73,577,679条指令。
在1995年一名程序员每天可开发出30条指令,每月可开 发出600条指令,为了开发出可装满整个存储器的程序, 需要的工作量为
13:07:42
软件工程导论第五版答 案
2020/12/19
软件工程导论第五版答案
•作业及解答
作业一 基本概念(第1-2章) 作业二 需求分析(第3章) 作业三 系统设计(第5章) 作业四 详细设计(第6章) 作业五 系统实现(第7章) 作业六 系统维护(第8章) 作业七 面向对象方法学引论(第9章) 作业八 面向对象分析(第10章) 作业九 面向对象设计(第11章) 作业十 面向对象实现(第12章) 作业十一 软件项目管理(第13章)

软件工程(第五版)--习题及答案--第五章

软件工程(第五版)--习题及答案--第五章

一、判断题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图描述下列程序的算法。

(1)求整数1-n的累加和SUM,其中n的值由键盘输入。

软件工程导论(第5章)

软件工程导论(第5章)
总体设计阶段的另一项重要任务是 设计软件的结构,也就是要确
定系统中每个程序是由哪些模块组成的,以及这些模块相互间的
关系。
6
总体设计的意义
在详细设计之前进行总体设计可以站在全局高度
上,花较少成本,从较抽象的层次上分析对比多 种可能的系统实现方案和软件结构,从中选出最 佳方案和最合理的软件结构,从而用较低成本开
应该把模块组织成良好的层次系统,顶层模块
调用它的下层模块以实现程序的完整功能,每
个下层模块再调用更下层的模块,从而完成程 序的一个子功能,最下层的模块完成最具体的 功能。 软件结构(即由模块组成的层次系统)可以用 层次图或结构图来描绘。(5.4节)
15
5.1.6 数据库设计
如需使用数据库,分析员应该在需求分析阶段对
第二部分 开发阶段
系统设计

总体设计

体系结构设计 模块设计 用户界面设计 数据结构与算法设计

详细设计

系统实现

编码和单元测试 综合测试
1
结构化设计(Structured Design,SD)分为两个阶段: 总体设计(又称概要设计) 通过仔细分析软件规格说明,适当地对软件进行 功能分解,从而把软件划分为模块,并且设计出 完成预定功能的模块结构。 详细设计 详细设计阶段详细地设计每个模块,确定完成每 个模块功能所需要的算法和数据结构。
20
5.1.10 技术上的约定
系统的结构设计 划分层次结构 确定模块功能 确定模块调用关系 确定模块的接口 评估模块划分的质量、导出模块结构规则
21
5.1.10 技术上的约定
数据结构设计 确定输入、输出文件的结构 数据库设计 可靠性设计(质量设计质量设计) 书写文档 概要设计说明书、数据库设计说明书、用户手册、 初步的测试计划

软件工程导论----张海藩(第五版)课后习题答案

软件工程导论----张海藩(第五版)课后习题答案

《软件工程导论》课后习题答案第三章需求分析习题答案1.需求分析的描述工具有哪些?有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier 图、IPO图和需求描述语言等。

2.需求分析的基本任务是什么?准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。

3.怎样建立目标系统的逻辑模型?要经过哪些步骤?建立目标系统的逻辑模型的过程也就是数据流图的分解过程。

它的导出过程如图:10.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。

房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。

(1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。

在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。

(2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。

(3) 如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。

(4) 住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的单位面积及房租等信息。

房产科可以要求系统打印住房情况的统计表,或更改某类房屋的居住条件、单位面积和房租等。

用数据流图描绘该系统的功能需求;在数据字典中给出主要的数据流、文件和加工说明。

第四章总体设计习题答案9. 比较层次方框图与结构图是的异同?(1) 层次方框图描绘数据的层次结构, 结构图描绘的是软件结构。

软件工程导论习题答案

软件工程导论习题答案

2.需求分析的基本任务是什么?
准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?
建立目标系统的逻辑模型的过程也就是数据流图的分解过程。它的导出过程如图:
Hale Waihona Puke 4.什么是结构化分析?它的结构化体现在哪里?
结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
4.构成软件项目的最终产品:
应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?
软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.软件生存周期为什么划分成阶段?
(1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
(2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
(3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。
结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。
5.软件需求规格说明书由哪些部分组成?
组成包括:
(1) 引言:编写目的、背景说明、术语定义及参考资料等。
(2) 概述主要功能、约束条件或特殊需求。
(3) 数据流图与数据字典。
(4) 用户接口、硬件接口及软件接口。

软件工程导论 张海藩(第5版)第5章

软件工程导论 张海藩(第5版)第5章
第一,有效的模块化(即具有独立的模块)的软件比较容 易开发出来。这是由于能够分割功能而且接口可以简 化,当许多人分工合作开发同一个软件时,这个优点 尤其重要。
第二,独立的模块比较容易测试和维护。这是因为相 对说来,修改设计和程序需要的工作量比较小,错误 传播范围小,需要扩充功能时能够“插入”模块。 总之, 模块独立是做好设计的关键,而设计又是决定软 件质量的关键环节。
25
3、抽象在软件设计中的作用: 抽象与逐步求精,模块化密切相关,帮助 我们定义软件结构中模块的实体,有抽象到具 体地分析和构造出软件的பைடு நூலகம்次结构,提高软件 的可理解性。
逐步求精和模块化的概念,与抽象是紧密相关的。 随着软件开发工程的进展,在软件结构每一层中的模 块,表示了对软件抽象层次的一次精化。事实上,软 件结构顶层的模块,控制了系统的主要功能并且影响 全局;在软件结构底层的模块,完成对数据的一个具 体处理,用自顶向下由抽象到具体的方式分配控制, 简化了软件的设计和实现,提高了软件的可理解性和 可测试性,并且使软件更容易维护。
17
8、可靠性设计(也称质量设计) 在软件开发的一开始就要确定软件可靠 性和其他质量指标,考虑相应措施,使得软 件易于修改和维护。 9. 制定测试计划 在软件开发的早期阶段考虑测试问题, 能促使软件设计人员在设计时注意提高软件 的可测试性。本书第7章将仔细讨论软件测 试的目的和设计测试方案的各种技术方法。
23
图5.1 模块化和软件成本
24
5.2.2 抽象
1、什么是抽象?
抽象是认识复杂现象过程中使用的思维工具,即抽 象事物本质的共同特性而暂不考虑它的细节,不考虑其 他因素。
2、软件工程中的抽象:
软件工程过程中的每一步都可以看作是对软件解决 方法抽象层次的一次细化。①在可行性研究(即系统定 义)阶段,软件作为整个计算机系统的一个元素(完整 部件)。②在需求分析阶段,软件解决方案使用问题环 境中的术语来描述。③从概要设计到详细设计阶段抽象 层次逐步降低,将面向问题的术语和面向实现的术语结 合起来描述解决方法。④最低层抽象层次,是产生源代 码,用可以直接实现的方法叙述问题的解决方法。

软件工程导论张海藩第五课后答案

软件工程导论张海藩第五课后答案

答案:软件工程导论课后答案中模拟试题三的答案。
感谢观看
THANKS
继承是指子类继承父类的属性和方法,并且可以在子类中添加新的属性和方法,或者重写父类的方法。
多态是指同一个消息可以被不同的对象接收并执行不同的操作,从而实现不同的行为。
抽象是指定义抽象类或抽象方法,只提供接口而不实现具体实现,由子类来实现具体的功能。
面向对象方法概述
UML是Unified Modeling Language的缩写,是一种基于面向对象技术的建模语言,用于描述软件系统的静态结构和动态行为。
UML包含多种模型元素,如类、接口、继承、聚合、关联等,以及多种图,如类图、时序图、用例图等。
类图是UML中最基本的图之一,用于描述系统中类的结构关系,包括类的属性、方法和继承关系。
时序图用于描述系统中对象之间的交互关系和消息传递过程。
用例图用于描述系统的功能需求和用户与系统的交互关系。
UML基础
01
简答题3答案
面向对象技术是一种程序设计技术,它以对象为基础,将数据和处理数据的方法结合在一起,形成了对象。面向对象技术包括封装、继承、多态等基本特性,可以帮助程序员更好地理解和设计软件系统。
选择题1答案
选择题2答案
选择题3答案
选择题答案
VS
错。软件工程导论是一门软件工程的专业课程,它旨在帮助学生学习和理解软件工程的基本概念、原理和方法。该课程通常包括软件开发过程、需求分析、设计、编码、测试和维护等方面的内容。因此,该课程的学习对于提高学生的软件开发能力和职业发展具有重要意义。
03
第六章重点难点解析
面向对象方法是一种软件开发方法,它以对象为基础,将数据和操作封装在对象中,通过对象之间的交互来实现软件功能。

2020年秋冬智慧树知道网课《软件工程导论(东北林业大学)》课后章节测试答案

2020年秋冬智慧树知道网课《软件工程导论(东北林业大学)》课后章节测试答案

第一章测试1【多选题】(1分)软件的主要特性是()。

A.无形性B.可独立构成计算机系统C.高成本D.包括程序和文档2【单选题】(1分)包含风险分析的软件工程模型是()。

A.螺旋模型B.增量模型C.瀑布模型D.喷泉模型3【多选题】(1分)下列属于面向对象开发方法的是()。

A.UMLB.OMTC.CoadD.Booch4【多选题】(1分)软件危机的主要表现是()。

A.软件生产率低下B.软件产品的质量低劣C.软件开发人员明显不足D.软件成本太高5【单选题】(1分)从事物的组成部件及每个部件的属性、功能来认识事物。

这种方法被称为()的方法。

A.面向属性B.面向对象C.面向数据D.面向过程6【单选题】(1分)面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的()结构。

A.程序B.物理C.数据D.逻辑7【判断题】(1分)增量模型是非整体开发的模型,软件的开发是用增量开发和增量提交。

()A.错B.对8【判断题】(1分)统一迭代过程在不同阶段,各个核心工作流的工作重心相同。

()A.错B.对9【判断题】(1分)喷泉模型是一种面向对象模型。

()A.错B.对10【判断题】(1分)螺旋模型不适用于大型内部软件开发。

()A.对B.错第二章测试1【单选题】(1分)面向对象的分析方法主要是建立三类模型,即()。

A.对象模型、动态模型、应用模型B.对象模型、动态模型、功能模型C.ER模型、对象模型、功能模型D.系统模型、ER模型、应用模型2【单选题】(1分)SA法的主要描述手段有()。

A.系统流程图和模块图B.功能结构图、加工说明C.DFD图、数据词典、加工说明D.软件结构图、加工说明3【多选题】(1分)画分层DFD图的基本原则有()。

A.数据守恒原则B.数据流封闭的原则C.分解的可靠性原则D.子、父图平衡的原则4【单选题】(1分)数据字典是数据流图中所有元素的定义的集合,一般由以下4类条目组成()。

软件工程导论课后解答第五章

软件工程导论课后解答第五章

第五章总体设计低耦合(5 种类型)1. 数据耦合:数据传递2.控制耦合:控制信息传递3.特征耦合:传过多的信息给被调用模块4.公共环境耦合:因全局变量,共享通信区5.内容耦合:诸如一个模块访问另一个模块内部z高内聚(7 种类型)功能内聚10 分顺序内聚9分通信内聚7分过程内聚 5 分时间内聚3分逻辑内聚 1 分偶然内聚0 分z面向数据流的设计方法划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等设计软件的结构。

也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

总体设计过程两个阶段1.系统设计阶段,确定系统的具体实现方案;2.结构设计阶段,确定软件结构。

总体设计过程9个步骤1 设想供选择的方案2 选取合理的方案3 推荐最佳方案4 功能分解5 设计软件结构 6 设计数据库7 制定测试计划 8 书写文档 9 审查和审核划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等设计软件的结构。

也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

总体设计过程两个阶段1.系统设计阶段,确定系统的具体实现方案;2.结构设计阶段,确定软件结构。

总体设计过程9个步骤1 设想供选择的方案2 选取合理的方案3 推荐最佳方案4 功能分解5 设计软件结构 6 设计数据库7 制定测试计划 8 书写文档 9 审查和审核1.欲开发一个银行的活期存取款业务的处理系统:储户将填好的存/取款单和存折交给银行工作人员,然后由系统作以下处理;(1)业务分类处理:系统首先根据储户所填的存/取款单,确定本次业务的性质,并将存/取款单和存折交下一步处理;(2)存款处理:系统将存款单上的存款金额分别记录在存折和帐目文件中,并将现金存入现金库;最后将存折还给储户;(3)取款处理:系统将取款单上的取款金额分别记录在存折和帐目文件中,并从现金库提取现金;最后将现金和存折还给储户。

绘制该系统的数据流图和软件结构图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章习题答案
1、为每种类型的模块耦合举一个具体例子。

答:耦合是对一个软件结构内不同模块之间互连程度的度量。

耦合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点,以及通过接口的数据,一般模块之间可能的连接方式有7种,构成耦合的7种类型,它们之间的关系为:
下面举例说明以上各种耦合:
a.非直接耦合(Nondirect Coupling)在这种情况下,两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。

例如在实数的运算中,有两个模块分别完成几个实数的求和,求乘积功能,这两个模块之间没有直接联系,只有在主模块调用中有执行的前后顺序而已,这个例子即属于非直接耦合。

b.数据耦合(Data Coupling)即一个模块访问另一个模块时,彼此之间是通过数据参数来交换输入,输出信息的,这种耦合为数据输入,输出信息的这种耦合为数据耦合。

如有两个模块,其中A完成两个烽的比较,求出其中最大的并返回该值,模块B是完成了个数的比较,求出其中最大的并返回该最大值,为完成四个数的比较,模块B调用模块A即可完成,在这种调用关系中,模块A的运算结
果作为一个参烽参加B的运算,这两个模块之间即发生数据耦合。

数据耦合是松散的耦合,模块间的独立性比较强。

c.标记耦合(Stamp Coupling),即一组模块通过参数传递记录信息,这就是标记耦合。

事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。

d.控制耦合(Control Coupling)即一个模块通过开关标志,名字等控制住处明显的控制,选择另一模块的功能,这就是控制耦合,如下图所示,这一种耦合实质是在单一接口上实现选择多功能模块中的某项功能,如程序设计中用到多路选择结构即是最好的例子。

e.外部耦合(External Coupling)即一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递全局数据结构,而且不是通过参数表传递全局变量的信息。

如C语言中都访问被说明为extern类型的外部变量的各个模块之间即发生外部耦合。

外部耦合引起的问题类似于下面要介绍的公共耦合,区别在于外部耦合中不存在依赖于一个数据结构内部各项的物理安排。

f.公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就是公共耦合。

公共的数据环境可以是全局的数据结构,共享的通信区,内存的公共覆盖区等。

如几个模块对同一个数据库的查询就属于这种耦合。

公共耦合可以分为松散的公共耦合和紧密的公共耦合,其中松散的公共耦合是单向操作,如两个或多个模块对同一个文件的读操作;而紧密的公共耦合是双向的操作,如两个或多个模块对同一文件的读写操作。

下面用图表
示松散的和紧密的公共耦合。

g.内容耦合。

即有下列情况时即出现内容耦合。

(1)一个模块访问另一个模块数据;
(2)一个模块不通过正常入口而转到另一个模块的内部;(3)两个模块有一部分代码重叠;
(4)一个模块有多个入口。

一个模块访问另一个模块数据;
两个模块有部分代码重叠;
一个模块有多个入口。

2、为每种类型的模块内聚举一个具体例子。

答:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化的自然扩展,一般模块的内聚性分为7种,它们的关系如下图示
下面举例说明各种内聚的情况
a.偶然内聚。

即模块内各部分之间没有联系,或者即使有联系也很松散,这种即为偶然内聚,它是
内聚程度最低的模块。

如一些没有任何联系的语句可能在许多模块中重复多次,程序员为了节省存储,把它们抽出来组成一个新的模块,这个模块就是偶然内聚模块,例如C语言中的#define TRYODBCC……
b.逻辑内聚(Logical Cohesion)即这种模块把几种功能组合在一起,每次调用时,由传送给模块的
判定参数来确定该模块应执行哪一种功能。

如根据输入的控制信息,或从文件中读入一个记录,或向文件写出一个记录。

c.时间内聚(Classical Cohesion)这种模块大多数为多功能模块,
但模块的各人功能的执行与时间
有关,通常要求所有功能必须在同一时间段内执行,例如初始化模块和终止模块。

d.过程内聚(Procedural Cohesion)即一个模块内的处理是相关的,而且必须以特定次序执行,则
这个模块称为过程内聚模块。

例如我们把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。

e.通信内聚(Communication Cohesion)如果一个模块内部各功能部分都使用可相同的数据输入,
或产生了可相同的数据输入,或产生了可相同的输出数据,则称之为通信内聚模块。

通常,通信内聚模块是通过数据流图来定义的。

f.顺序内聚,即一个模块内处理元素和同一功能紧密切相关,而且这些处理必须顺序执行(通常一
个处理元素的输出数据据作为下一处理元素的输入数据)如在对员工加工资的数据库操作中,读取数据和更新数据即具有顺序内聚的关系。

g.功能内聚(Functional Cohesion)即模块内部所有处理元素属于一个整体,完成一个单一的功能,
则称为功能内聚,功能内聚是最高程度的内聚。

3、用面向数据流的方法设计下列系统的软件结构。

(1)存储系统(参见习题2第2题)。

相关文档
最新文档