软件工程学课后习题答案

合集下载

软件工程课后习题答案中文翻译版(第八版)

软件工程课后习题答案中文翻译版(第八版)

软件工程课后习题:1.解释为什么专业化软件不仅仅包括为用户所开发程序?专业化软件在开发上与在与软件就有所不同。

专业软件通常是由团队开发而非个人,除了开发者外还有其他的用户使用。

如果你的软件有别的用户,别的工程师会去修改的话,你就必须提供除了程序源码之外的其它附带信息。

因此,系统通常除了包含一些单独的程序还有用于这些程序的配置文件,可能还包括描述系统结构的系统文档和解释如何使用该系统的用户文档,以及告知用户下载最新产品的Web站点。

2.通用软件产品开发和定制软件开发直接有什么不同?这在实际应用中对通用软件产品用户意味着什么?(1)重要区别为:在通用软件的开发过程中,详细说明(规格说明书)由产品开发者来制定,在定制软件产品开发过程中,详细说明(规格说明书)由客户来制定开发者必须按客户要求进行开发。

(2)意味着通用软件很难满足通用软件客户的特殊需求。

如可靠性、安全性、快捷性。

3.软件产品应该具有与的4重要属性是那些?另外列举出4个可能有意义的属性。

重要属性:可维护性、可依赖性和安全性、有效性和可用性。

可能有意义的属性:可复用性、可分发性、可移植性和互用性。

4.除了异质性挑战、业务和社会的变革、安全和可信,说出软件工程在21世纪的可能面临的其它问题和挑战。

交付上的挑战:许多传统的软件工程技术需要耗费大量的时间,用于提高软件质量。

而今天的软件制作必须响应快、更换迅速,支持软件也必须同样快地进行更换。

交付上的挑战是:在不损及系统质量的前提下,缩短大型、复杂系统的移交时间。

5.参论的应用类型,照1.1.2节讨举例介绍为什么设计和开发不同类型的应用需要专门的软件技术。

如汽车上年的嵌入式控制系统对安全性要求极高,在车上安装是要烧制到ROM 中在这里的交互在这里是很少的(或许根本就没有)。

基于Web式系统更适合用于迭代式开发和交互。

而基于Web的系统编程使用的如Ruby一类的脚本语言,完全不适合嵌入式系统工程。

6.解释为什么软件工程的基本思想适用于所有的软件系统。

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

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

1、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否能够开发。

2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。

3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。

4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。

5、可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术可行性、经济可行性、社会可行性。

6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。

7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。

可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。

8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发展。

重视用户界面的设计,不断的采用新理论和新技术。

软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。

9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。

10、可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。

11、结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。

12、投资回收期就是累计的经济效益等于最初的项目投资所需的时间。

13、详细描述处理过程常用三种描述工具:图形、表格和语言。

14、数据流图中,每个加工至少有一个输入流和一个输出流。

15、结构化设计以数据流为基础映射成软件结构。

16、当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。

17、由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。

18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。

1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。

它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。

2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。

它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。

2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。

功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。

3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。

3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。

面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。

4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。

4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。

编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。

5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案1.简述软件开发的本质。

答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。

P192.简述实施软件开发的基本途径。

答:实施软件开发的基本途径是系统建模。

所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。

P193.简述何谓模型以及软件开发中所涉及的模型。

答:模型是一个抽象。

该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。

4.简述软件开发所涉及的两大类技术。

答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。

5、简述需求与需求规约的基本性质。

答:需求的基本性质:1)必要的,该需求是用户所要求的。

2)无歧义的,该需求只能用一种方式解释。

3)可测的,该需求是可进行测试的。

4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。

5)可测量的,该需求是可测量的。

需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。

2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。

3)完整的:没有被遗漏的需求。

4)一致的:不存在互斥的需求。

6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、设计约束和质量属性需求。

P237、举例说明功能需求和非功能需求之间的基本关系。

答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求38、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。

软件工程课后习题答案2-12章

软件工程课后习题答案2-12章

D3生理信息 定时的生理信号
F2生理信号 P1 接收信号 F2生理信号 定时的 生理信号
F6日志 E3 时钟 F3日前、时间 P4 定时取样 生理信号 F6日志 E1 护士 F1要求报告 P6 产生病情报告 D1患者日志




患者生理信 号获取
生理信号












患者监护系 统
危 日志 机信息
安排航班
预 定 信 息
机票 信息
交款
打印取票单 据
打印及发放 机票

航班
通 效 知
设置航班
录入预定信 息
录入取票凭 证
核对取票凭 证
P2 分析信号 E2 病人 F2生理信号
危及病人信息 F2生理信号 D2患者安全范围 P7制定安 全范围 P5 更新日志
P3 产生警告信息 F4警告信息 E1 护士
F5安全范围
监护处理
志 日 定时生理信号
号 生理信
监护信息输 出



制定生理信 号安全范围
接收信号
定时取样 生理信号
时间
分析信号
更新日志
报警
危机信




信息 危机

信 理 生 时 定 号 信 理
日 志
取得时间

病情报告
• P104:4 • 美国某大学有200名教师,校方与教师工会刚刚签订一项协议。 按照协议,所有年工资超过$26000(含$26000 )的教师工 资将保持不变,年工资少于$26000的教师将增加工资,所增 加工资数额按下述方法计算:给每位教师所赡养的人(包括 教师本人)每年补助$100,此外,教师有一年工龄每年再多 补助¥50,但是,增加后的年工资总额不能多于$26000。 • 教师工资档案存储在行政办公室的磁带上,档案中有目前的 年工资、赡养的人数、雇佣日期等信息。需要写一个程序计 算并印出每名教师的原工资和调整后的新工资。 • 要求:(1)画出此系统的数据流图;(2)写出需求说明; • (3)设计上述的工资调整程序(要求用HIPO图描绘设计结果), 设计时分别采用两种算法,并比较两种算法的优缺点: – (a)搜索工资档案数据,找出年工资少于$26000的人, 计算新工资,校核是否超过$26000,存储新工资,印出新 旧工资对照表; – (b)把工资档案数据按工资从最低到最高的次序排序,当 工资数额超过$26000时即停止排序,计算新工资,校核是 否超过限额,存储新工资,印出结果。 • (4)你所画出的数据流图适应用那种算法?

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。

1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。

1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。

1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。

1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。

2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。

软件工程课后习题答案2-12章

软件工程课后习题答案2-12章

书状态为S2&终端 输入“H=”加书名 管理员设置状 态 管理员删除 管理员添加
预约
书出库(删除) 书入库
图4.4.2
(三)图书馆终端用户模式的有穷状态机描述 • 状态机J:{读者查询状态,查询结果} • 输入集K:{终端输入用户查询命令,书的各种 状态(S1,S2,S3)} • 转换函数T:如图4.4.3所示 • 初始态S:{读者查询状态} • 终态集F:{查询结果}
取票通知 账单 机票 账单
P3.1 核对取票凭证 顾客 取票通知 P3.2 交款 机票 P3.3 打印机票
机票预定系 统
信 息 通 知 单 机 票


信息
机票

预定信息处 理
信息






取票凭证处 理
通知 账单 单
账单
信 息 定 预 航班信

机票预定子 系统
单 知
机票发放子 系统
效 通 知


取款单
P3.1输入取款 信息
取款信息 E1储 户 密码 P3.2 密码校验
P4 计算利息
利息 利息 P5 打印利息 清单
密码正确信息
E2业 务员
利率
P6设置利 率
利率
不能是两个分开的子系统,是相同的前台单个处理
银行储蓄系 统
存 款 单 款
率 利
利 存单 息清单
密 码
业务单据录 入
利 率
存款单


储蓄业务处理
(一)图书状态的有穷状态机描述 • 状态机J:{书在图书馆S1,书被借出S2, 书被预约S3} • 输入集K:{书上条形码,借阅卡条形码, 终端输入各种命令} • 转换函数T:如图4.4.1所示 • 初始态S:{书在图书馆S1,书被借出S2} • 终态集F:{书被借出S2,书被预约S3}

软件工程(第5版课后答案)

软件工程(第5版课后答案)
FIND (查找)
f(作者姓名)
系统搜索指定的作者姓名,并在屏幕上显示该作者的著作的索引号,同时把这些索引存入文件。
设计测试数据以全面测试系统正常操作。 设计测试数据以测试系统的非正常操作。
P175 5
P175 5 参考答案
划分等价类(略) 全面测试系统正常操作 B BS BSD F FD
B:输入关键字,看是否输出约20个加了行号的字,是否与关键字完全相同的字约在屏幕中央。 输入:“计算机” 预期输出:约20个加行号的字 BS:输入关键字,选取屏幕上行号,是否生成包含索引号的文件。 输入:“计算机”;12 预期输出:约20个加行号的字;文件 BSD:输入关键字,选取屏幕上行号,检索索引号有关信息,是否显示文件中索引信息。 输入:“计算机”;12;3 预期输出:约20个加行号的字;文 件;文件中索引信息。 F:输入作者姓名,是否在屏幕上显示该作者的著作的索引号,是否将这些索引存入文件。 输入:“金庸” 预期输出:该作者著作的索引号 FD:输入作者姓名,检索索引号有关信息,是否现实文件中索引信息。 输入:“金庸”;3 预期输出:该作者著作索引号;文件中 索引信息
单击此处可添加副标题
P23 7参考答案
增量模型 缺点: 至始至终开发者和客户纠缠在一起,直到完全版本出来。 优点: 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 具有一定的市场。 适合于软件需求不明确、设计方案有一定风险的软件项目。
习题1第6题
什么是软件过程?它与软件工程方法学有何关系?
P23 6
P23 6参考答案

软件工程课后习题答案(第八版)

软件工程课后习题答案(第八版)

软件工程课后习题:⏹What are the differences between generic software product development and custom software development?⏹Solution:The essential difference is that in generic software product development, the specification is owned by the product developer. For custom product development, the specification is owned by the customer. Of course, there may be differences in development processes but this is not necessarily the case.重要区别为:在通用软件的开发过程中,详细说明(规格说明书)由产品开发者来制定,在定制软件产品开发过程中,详细说明(规格说明书)由客户来制定。

⏹What are the four important attributes which all software products should have? Suggest four other attributes that may sometimes be significant.⏹Solution:For important attributes are maintainability可维护性,dependability 可靠性, performance(efficiency)有效性andusability可用性.Other attributes that may be significant could be reusability可复用性 (can it be reused in other applications),distributability 可分发性(can it be distributed over a networkof processors), portability可移植性 (can it operate onmultiple platforms) and inter-operability互用性 (can it workwith a wide range of other software systems).⏹What is the difference between a software process model and a software process? Suggest two ways in which a software process model might be helpful in identifying possible process improvements.⏹Solution:A software process is what actually goes on when software isdeveloped. A software process model is an abstraction andsimplification of a process. Process models can be used to helpunderstand real processes and to identify which aspects of theseprocesses could be supported by CASE tools. 软件过程就是指在软件开发过程中所做的一些事情。

软件工程课后习题及其答案

软件工程课后习题及其答案

软件工程习题CH1一、填空题1、软件工程需要解决的问题包括:费用、可靠性、可维护性、生产率和重用。

2、到目前为止,软件生产的发展经历了三个阶段,即程序设计、程序系统和软件工程。

3、计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于原理和理论,而软件工程侧重于软件系统构造。

4、软件工程有用管理科学的方法和原理进行软件生产的管理。

5、软件工程是用科学知识和技术原理来定义、开发、维护软件的一门科学。

6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。

在软件开发技术方面,主要研究开发方法、开发过程、开发工具。

在软件开发管理技术方面主要研究管理学、经济学、心理学。

7、作为一门交叉学科,软件工程具有很强的综合性,它涉及计算机科学、工程科学、管理科学、数学等领域。

8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。

通常包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。

9、开发软件工具的主要目的是为了提高软件生产效率和改善软件的质量。

10、描述软件开发过程中各种活动如何执行的模型称为周期模型。

11、从软件工程诞生以来,已经提出了多种软件开发方法,如结构化方法、面向数据的方法、面向对象的方法,它们对软件工程及软件产业的发展起到了不可估量的作用。

12、结构化方法由结构化分析、结构化设计和结构化程序设计构成。

它是一种面向数据流的开发方法。

13、增量模型是一种非整体开发方法的模型。

软件在该模型中是“逐渐”开发出来的,开发一部分向用户展示一部分,可让用户及早看到部分软件,及早发现问题。

或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。

14、喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。

它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。

软件工程第十版课后习题答案(中文版)

软件工程第十版课后习题答案(中文版)

第一章概述1.2 通用的软件产品开发和定制化软件开发之间最重要的区别是什么?这在实践中对于通用软件产品的用户意味着什么?根本区别在于,在通用软件产品开发中,规范由产品开发者拥有。

对于定制产品开发,规范由客户拥有和控制。

这一点的影响是重大的——开发者可以根据一些外部变化(例如竞争产品)迅速决定更改规范,但当客户拥有规范时,更改必须在客户和开发者之间进行协商,并且可能会产生合同影响。

对于通用产品的用户,这意味着他们无法控制软件规范,因此无法控制产品的演变。

开发者可能会决定包含/排除功能并更改用户界面。

这可能会对用户的业务流程产生影响,并在安装新版本的系统时增加额外的培训成本。

这也可能会限制客户改变自己业务流程的灵活性。

1.3 软件产品应该具有的4个重要属性是什么?另外举出4个可能有意义的属性。

四个重要的属性是可维护性、可靠性和安全性、效率和可接受性。

其他可能重要的属性可能是可重用性(它是否可以在其他应用程序中重用)、可分布性(它是否可以分布在处理器网络上)、可移植性(它是否可以在多个平台上运行,例如笔记本电脑和移动平台)和互操作性(它是否可以与广泛的其他软件系统一起工作)。

对 4 个关键属性的分解,例如可靠性分解为安全性、安全性、可用性等,也是这个问题的有效答案。

1.4 除了异构性、企业和社会的变革、可信和信息安全之外,说一说软件工程在21世纪有可能面对的其他问题和挑战(提示:想一想环境)。

软件工程面临的问题与挑战众多,主要包括:1.开发节能系统,以提升其在低功耗移动设备上的适用性,并减少IT设备的整体碳排放。

2.开发模拟系统的验证技术,这对于预测和应对气候变化的程度至关重要。

3.开发适合多文化背景用户使用的系统。

4.开发能够迅速适应新商业需求的灵活系统。

5.设计便于外包开发的系统架构。

6.开发具有高安全性的系统,能够抵御各种攻击。

7.开发易于最终用户调整和配置的系统。

8.探索测试、验证和维护最终用户开发系统的有效方法。

软件工程课后参考题答案

软件工程课后参考题答案

软件⼯程课后参考题答案第⼀章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的⼀系列“严重问题”。

这些问题决不仅仅是不能正常运⾏的软件才具有的,实际上,⼏乎“所有软件”都不同程度地存在这些问题。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)⽤户对“已完成的”软件系统不满意的现象经常发⽣;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的⽂档资料;(6)软件成本在计算机系统总成本中所占的⽐例逐年上升;(7)软件开发⽣产率提⾼的速度,远远跟不上计算机应⽤普及深⼊的趋势。

出现软件危机的主要原因(1)与软件本⾝的特点有关(2)与软件开发和维护过程中使⽤的⽅法不正确有关2.假设⾃⼰是⼀家软件公司的总⼯程师,当把图1.1给⼿下的软件⼯程师们观看,告诉他们及时发现并改正错误的重要性时,有⼈不同意这个观点,认为要求在错误进⼊软件之前就清楚它们是不现实的,并举例说:“如果⼀个故障是编码错误造成的,那么,⼀个⼈怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进⾏修改付出的代价是很不相同的,在早期引⼊变动,涉及的⾯较少,因⽽代价也⽐较低;在开发的中期,软件配置的许多成分已经完成,引⼊⼀个变动要对所有已完成的配置成分都做相应的修改,不仅⼯作量⼤,⽽且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引⼊变动,当然付出的代价更⾼。

⼀个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很⼩的,因为这不是整体构架的错误。

3.什么是软件⼯程?它有哪些本质特征?怎么⽤软件⼯程消除软件危机?软件⼯程是指导知道计算机软件开发和维护的⼀门⼯程学科。

采⽤⼯程的概念、原理、技术和⽅法来开发与维护软件,把经过时间考验⽽证明正确的管理技术和当前能够得到的最好技术⽅法结合起来,以经济地开发出⾼质量的软件并有效地维护它,这就是软件⼯程。

软件工程第1-2章课后习题参考答案

软件工程第1-2章课后习题参考答案

第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。

“软件危机”包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

出现软件危机的原因(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是知道计算机软件开发和维护的一门工程学科。

软件工程课后答案

软件工程课后答案

软件⼯程课后答案《软件⼯程》作业及答案1-1 什么就是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机就是指在计算机软件的开发与维护过程中所遇到的⼀系列严重问题。

概括地说,软件危机包含下述两⽅⾯的问题:如何开发软件,以满⾜对软件⽇益增长的需求;如何维护数量不断膨胀的已有软件。

软件危机典型表现:对软件开发成本与进度的估计常常很不准确。

⽤户对“已完成的”软件系统不满意的现象经常发⽣。

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

软件常常就是不可维护的。

软件通常没有适当的⽂档资料。

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

软件开发⽣产率提⾼的速度,远远跟不上计算机应⽤迅速普及深⼊的趋势。

产⽣软件危机的原因:⼀⽅⾯与软件本⾝的特点有关,另⼀⽅⾯也与软件开发与维护的⽅法不正确有关。

软件不同于硬件,它就是计算机系统中的逻辑部件⽽不就是物理部件。

管理与控制软件开发过程相当困难。

软件就是规模庞⼤,⽽且程序复杂性将随着程序规模的增加⽽呈指数上升。

⽬前相当多的软件专业⼈员对软件开发与维护还有不省糊涂观念,在实践过程中或多或少地采⽤了错误的⽅法与技术,这就是使软件问题发展成软件危机的主要原因。

1-2 假设您就是⼀家软件公司的总⼯程师,当您把图1、1给⼿下的软件⼯程师们观瞧,告诉她们及早发现并改正错误的重要性时,有⼈不同意您的观点,认为要求在错误进⼊软件之前就清除它们就是不现实的,并举例说:“如果⼀个故障就是编码错误造成的,那么,⼀个⼈怎么能在设计阶段清除它呢?”您怎么反驳她?1-3 什么就是软件⼯程?它有哪些本质特性?怎样⽤软件⼯程消除软件危机?答:软件⼯程就是指导计算机软件开发与维护的⼀门⼯程学科。

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

软件⼯程本质特性:1、软件⼯程关注于⼤型程序的构造;2、软件⼯程的中⼼课题就是控制复杂性;3、软件经常变化;4、开发软件的效率⾮常重要;5、与谐地合作就是开发软件的关键;6、软件必须有效地⽀持它的⽤户;7、在软件⼯程领域中就是由具有⼀种⽂化背景的⼈替具有另⼀种⽂化背景的⼈创造产品。

(完整版)软件工程课后习题答案

(完整版)软件工程课后习题答案

第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。

●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

●软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。

例如:编译软件、操作系统。

2.支撑软件支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境。

3.应用软件应用软件是特定应用领域专用的软件。

例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.3简述软件语言的分类,并举例说明。

1.需求定义语言是用于书写软件需求定义的语言。

例如:PSL/PSA。

2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。

例如:广谱语言、Z 语言。

3.设计性语言是用于书写软件设计规约的语言。

例如:PDL。

4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。

例如:C、java、PROLOG、FORTRAN、COBOL、Modula。

5.文档语言是用于书写软件文档的语言。

通常用自然语言或半形式化语言书写。

1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。

1.5简述软件工程的基本原则。

软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。

1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。

2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

软件工程课后题答案

软件工程课后题答案

1什么是软件危机?软件危机产生的原因是什么?软件危机就是指人们在开发软件和维护软件过程中遇到的一系列问题。

产生的原因:<1>忽视软件开发前期的需求分析。

<2>开发过程缺乏统一的、规范化的方法论的指导。

<3>文档资料不齐全或不准确。

<4>忽视与用户之间、开发组成员之间的交流<5>忽视测试的重要性。

<6>不重视维护或由于上诉原因造成维护工作的困难。

<7>从事软件开发的专业人员对这个产业认识不充分,缺乏经验。

<8>没有完善的质量保证体系。

2请简述软件工程的三要素三要素是指过程、方法和工具软件工程的基础是过程层,它定义了一组关键过程区域的框架,使软件能过被合理和及时的开发;软件工程的方法提供了建造在在技术上需要“做什么”,它覆盖了一系列的任务,包括需求分析、设计编程、测试和支持等;软件工程的工具对过程和方法提供了自动的或半自动的支持。

3请对比瀑布模型、快速模型、增量模型和螺旋模型。

瀑布模型的优点是:过程模型简单,执行容易;缺点是无法适应变更。

快速模型的优点是:软件产品的开发基本上是按线性顺序进行的(它所完成的功能往往是最终产品能完成的功能的一个子集)增量模型的最大特点是将待开发的软件系统模块化和组件化,优点是:将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解项目的进展;以组件为单位进行开发降低了软件开发的风险;开发顺序灵活。

它的缺点是要求待开发的软件系统可以被模块化螺旋模型的优点是对可选方案和约束条件的强调有利于已有的软件的重用,也有助于把软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;更重的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质的区别,它的主要优势在于风险驱动但是这也可能是他的一个弱点。

4什么是软件过程?他与软件工程方法学有何不同?软件过程:是指一个为获得高质量软件所需完成的任务的框架,它规定了软件产品开发时完成各项任务的一系列工作步骤,包括中间产品、资源、角色及过程中采取的方法、工具等范畴。

软件工程课后题答案大全(详细)

软件工程课后题答案大全(详细)

软件工程习题解答第一章概述3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。

一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。

主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。

b.开发的软件不通满足用户要求。

c.开发的软件可维护性差。

d. 开发的软件可靠性差。

软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。

b.软件开发管理困难而复杂。

c.软件开发费用不断增加。

d.软件开发技术落后。

e.生产方式落后。

f.开发工具落后,生产率提高缓慢。

4.什么是软件工程?它的目标和内容是什么?软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。

软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。

2)软件开发管理:软件管理学、软件经济学、软件心理学。

6.什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.7.什么是软件生存周期模型?有哪些主要模型?软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。

(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。

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

2020/10/27
2020/10/27
2020/10/27
2020/10/27
•作业及解答(第3章)
电话号码=[校内电话号码|校外电话号码] 校内电话号码=非零数字+ 3 位数字 //后面继续定义 校外电话号码=[本市号码|外地号码] 本市号码=数字零+8位数字 外地号码=数字零+3位数字+8位数字 非零数字=[1|2|3|4|5|6|7|8|9] 数字零=0 3位数字=3{数字}3 //3至3个数字 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9]
2020/10/27
•作业及解答(第3章)
2020/10/27
•作业及解答(第3章)
从问题陈述可知,本系统数据源点是“病人”和“护士”,他 们分别提供生理信号和要求病情报告的信息。进一步分析 问题陈述,从系统应该“定时记录病人情况以形成患者日 志”这项要求可以想到,还应该有一个提供日期和时间信 息的“时钟”作为数据源点。
软件工程学课后习题答案
2020/10/27
•作业及解答(第3章)
2-4 医院对患者2监护系统的基本要求是随时接收每个病人 的生理信号(脉搏、体温、血压、心电图等),定时记录病 人情况以形成患者日志,当某个病人的生理信号超出医生 规定的安全范围时向值班护士发出警告信息,此外,护士 在需要时还可以要求系统印出某个指定病人的病情报告。
2020/10/27
1 2 3 4 5 6 7 8 9 10 11 12
人数≤40
TTTT
40<人数≤60
TTTT
人数>60
TT T T
助教
T
T
T
讲师
T
T
T
副教授
T
T
T
教授
T
T
T
课酬:9元/节 √
课酬:10元/节


课酬:11元/节



课酬:12元/节



课酬:13元/节


课酬:14元/节

实体类型“零件”的主要属性是:零件编号,零件名称,颜 色,重量。实体类型“工程项目”的属性主要是:项目编号 ,项目名称,开工日期。实体类型“供应商”的属性主要有 :供应商编号,供应商名称,地址。联系类型“供应”的属 性是,向某工程项目供应的某种零件的数量。联系类型“ 订购”的属性是,向某供应商订购的某种零件的数量。
2020/10/27
2020/10/27
2020/10/27
2020/1P0/21714:4
2020/10/27
•作业及解答(第5章)
2020/10/27
•作业及解答(第5章)
2020/10/27
•作业及解答(第5章)
2020补/10充/275:求解杨辉三角形系数
系数表
输入阶数
0
杨辉三角形 系数求解
2020/10/27
3-3
•作业及解答(第3章)
2020/10/27
•作业及解答(第3章)
3-6 从问题陈述可知,复印机的状态主要有“闲置”、“
复印”、“缺纸”和“卡纸”。引起状态转换的事件主 要是“复印命令”、“完成复印命令”、“发现缺纸”、 “装满纸”、“发生卡纸故障”和“排除了卡纸故障”。
合格 订货
单单
确定 顾客 订货
不满 足订 货单
产生 暂存 订货单
D4暂存订货单
D1配件 D2顾客文件
可发 D3配件库存货
不合格订货单 业务员
开发 货单 并改 库存
发货单 顾客 D4暂存订货单 D5销售历史
D6应收款明细帐
2020/10/27
2020/10/27
•作业及解答(第5章)
补充4、已知某系统的需求分析给出的系统数据流程图如下,画 出结构图
2020/10/27
求解杨辉三角形系数
合理阶数 取合理阶数
系 合理阶数 数 系
数 计算系数方
法选用
合理阶数 打印系数
合理阶

阶 数 合理阶



输入 检验

阶数 阶数

1
合理阶数
合理阶数 系







2
1
合理阶数
打 印 2
不合理阶数
表示选用
系数表1 系数表2
2020/10/27
P141:3
•作业及解答(第6章)
2020/10/27
•作业及解答(第5章)
补充1:请为某仓库的管理设计一个ER模型。该仓库主要 管理零件的订购和供应等事项。仓库向工程项目供应零件 ,并且根据需要向供应商订购零件。
2020/10/27
•作业及解答(第5章)
本问题中共有三类实体,分别是“零件”、“工程项目”和“ 供应商”。
一种零件可供应多个工程项目,一个工程项目需要使用多 种零件,因此,零件与工程项目之间的联系“供应”,是多 对多( M ' N )联系;类似地,零件与供应商之间的联系 “订购”,也是多对多( M ' N )联系。
2020/10/27
•作业及解答(第6章)
(3)不使用flag把该程序改造为等价的结构化程序的方法 如图所示。
2020/10/27
P131:8
•作业及解答(第6章)
V(G)=结点E-弧数n +1
=17-11+1=7 =判断结点 +1
=6 +1=7
=封闭的区域数
2020/10/27
•作业及解答(第6章)
2020/10/27
•作业及解答(第6章)
P141:4
(1)通常所说的结构化程序 ,是按照狭义的结构程序的 定义衡量,符合定义规定的 程序。图示的程序的循环控 制结构有两个出口,显然不 符合狭义的结构程序的定义 ,因此是非结构化的程序。
2020/10/27
•作业及解答(第6章)
(2)使用附加的标志变量flag,至少有两种方法可以把该 程序改造为等价的结构化程序,图示盒图描绘了等价 的结构化程序。
⊕ 不合理阶数
DFD0
输入阶 数
1 检验 阶数
合理 阶数 ⊕
2 计算 阶数
Байду номын сангаас系数
3 打印 阶数
DFD1 系数表
不合理阶数合理
DFD2
阶数 1.1 阶数 1.2

输入
检验 ⊕ 不合 理
2.1
系数
阶数
阶数
理阶 阶 计算1
数数
阶数
3.1 系数表1 阶数
3.2
系数 合理 表2 阶数
2.2
系数
打印1
打印2
计算2
2020/10/27
•作业(第7章)
P174: 4(3)语句覆盖的测试用例

判定

输入
预期的输 出
1 2 3 AB CXY Z
1 F F F 111123
2 T T T 20 40 60 10 20 30
2020/10/27
2020/10/27
•作业及解答(第5章)
补充2:某火车售票系统的数据流程图如下所示
日期
3
按日 期查询
查询结果
查询 信息
录入员
1
接受 查询
查询 信息 2
分析 查询
查询 班次 4 结果 6
按班
查询
次查询
显示
查询 结果
线路
5 查询结果
按线 路查询
旅客
2020/10/27
a
b A
B
b1 C1 c1
eG
b2 c2 C2
D
d
E
g
h
J
k
l K
m L
b3
f
C3 c3
Fj
2020/10/27
2020/10/27
P114:3
•作业及解答(第5章)
2020/10/27
•作业及解答(第5章)
2020/10/27
不能是两个分开的子系统,是相同的前台单个处理
2020/10/27
P131: 7
令P代表交易的总金额,Q代表每股的售价,n代表交易 的股数。
(1)表示手续费计算方法的判定表如图所示。 判定表的每一列是一条计算规则。例如,第1列(规则1)规
定,当交易总金额P少于1000元,且每股售价Q低于14元 ,且交易的股数n是100的倍数时,给经纪人的手续费为 (l+0.05)×0.084P 第16列(规则16)表明,当交易总金额P超过10000元,且 每股售价Q在14元到25元之间,且交易的股数n不是100 的倍数时,手续费为 (1+0.06)×(0.04P+134) (2)表示手续费计算方法的判定树如图所示。
从问题陈述容易看出,本系统的数据终点是接收警告信息 和病情报告的护士。
系统对病人生理信号的处理功能主要是“接收信号”、“分 析信号”和“产生警告信息”。
此外,系统还应该具有“定时取样生理信号”、“更新日志” 和“产生病情报告”的功能。
为了分析病人生理信号是否超出了医生规定的安全范围, 应该存储“患者安全范围”信息。此外,定时记录病人生理 信号所形成的“患者日志”,显然也是一个数据存储。
2020/10/27
•作业及解答(第6章)
2020/10/27
•作业及解答(第6章)
补充2、某校的课酬计算方案如下:(l)基本 课酬为每节课10元;(2)如果班级人数超 过40人,课酬增加:基本课酬×0.1;(3) 如果班级人数超过60人,课酬增加:基本 课酬×0.2;(4)如果教师是副教授,课酬 增加:基本课酬×0.1;(5)如果教师是教 授,课酬增加:基本课酬×0.2;(6)讲师 ,课酬不增加;(7)助教,课酬减少:基本 课酬×0.1。请用判定表表达上述计算方案 。
相关文档
最新文档