软件工程导论课后习题答案
软件工程导论(第六版)部分课后习题-答案
软件工程导论(第六版)部分课后习题-答案软件工程导论(第六版)部分课后习题-答案一、选择题1. 答案:B解析:选择题解析2. 答案:A解析:选择题解析二、判断题1. 答案:对解析:判断题解析2. 答案:错解析:判断题解析三、填空题1. 答案:软件工程解析:填空题解析2. 答案:开发、维护解析:填空题解析四、简答题1. 答案:软件需求分析是软件工程的第一步,它主要是通过对用户需求的调查和分析,确定软件系统需要具备的功能和性能以及相关约束条件。
解析:简答题解析2. 答案:软件开发过程中的质量保证主要包括软件测试和代码评审两个方面。
软件测试是通过运行和验证软件系统的过程,以确定其是否满足预期的需求和标准。
代码评审则是对软件代码进行审查和评估,在开发过程中发现和修复潜在的问题和错误。
解析:简答题解析五、计算题1. 答案:20解析:计算题解析2. 答案:1000解析:计算题解析六、案例分析题1. 答案:软件项目管理是指对软件项目进行规划、组织、分配和控制的过程。
它包括项目范围管理、时间管理、成本管理、质量管理、风险管理等方面。
在一个项目中,软件项目经理负责整体的项目管理工作,包括资源的分配、进度的控制、风险的管理等。
解析:案例分析题解析2. 答案:敏捷开发是一种迭代、逐步增量的软件开发方法。
它强调快速、灵活地响应用户需求的变化,通过频繁的迭代和持续的反馈来逐步完善软件系统。
敏捷开发方法注重团队合作、交流和高效的沟通,通过直接面对面的沟通取代冗长的文档和繁琐的流程,提高软件开发的效率和质量。
解析:案例分析题解析总结:本文主要针对《软件工程导论(第六版)》部分课后习题提供了答案和解析。
其中包括选择题、判断题、填空题、简答题、计算题和案例分析题等多个题型。
通过解答这些习题,读者可以进一步加深对软件工程的理解和掌握。
希望本文对读者有所帮助,谢谢阅读。
软件工程导论课后习题解答
第一章1-1什么是软件危机?答:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3什么是软件工程?答:是指导计算机软件开发和维护的一门工程学科。
1-4简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
答:目前使用得最广泛的软件工程方法学有2种:传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会随着时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-5、根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M = 4080 e0.28(Y-1960)存储器的价格按下面公式描述的趋势逐年下降:P1 = 0.3×0.72Y-1974(美分/位)如果计算机字长为16位,则存储器价格下降的趋势为:P2 = 0.048×0.72Y-1974(美元/字)在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。
要求计算:(1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?(2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。
如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。
(1)在1985年对计算机存储容量的需求,估计是M= 4080 e0.28(1985-1960)= 4080 e7=4474263(字)如果字长为16位,则这个存储器的价格是P= 0.048 × 0.721995-1974× 73577679 = 5789(美元)(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。
软件工程导论张海藩课后习题答案(完整版)
作业及解答(第4章)
其中, ✓符号∷=表示定义为; ✓符号[...]表示可选项; ✓符号a|b表示a或b。 假设有这样一个有穷状态机:以一串字符为输入,判断字符 串中是否含有合法的浮点二进制数。试对这个有穷状态机进 行规格说明。
作业及解答(第4章)
该有穷状态机的初态是“等待字符串输人”。在初态若接收 到字符十、或字符一、或二进制位,则进人“输人尾数” 状态;在初态若接收到其他字符,则进人终态“非浮点二 进制数”。在“输人尾数”状态若接收到二进制位,则保 持该状态不变;若接收到字符 E ,则进人“等待输人指数 ”状态;若接收到其他字符,则进人终态“非浮点二进制 数”。在“等待输人指数”状态若接收到字符+、或字符 一、或二进制位,则进人“输人指数”状态;若接收到其 他字符,则进人终态“非浮点二进制数”。在“输人指数 ”状态若接收到二进制位,则保持该状态不变;若输人其 他字符,则进人终态“非浮点二进制数”;若输人结束, 则进人终态“浮点二进制数”。
E2 病人
F2生理信号
E3 时钟
F3日前、时间
F5安全范围 D2患者安全范围
P2 分析信号
危及病人信息
P3 产生警告信息
F2生理信号
F4警告信息
P1 接收信号
F2生理信号
E1 护士
P4 定时取样 生理信号
定时的生理信号 F6日志
P5 更新日志
D1患者日志
E1 护士
F6日志 F1要求报告
P6 产生病情报告
(3) 假设在1995年存储器字长为32位,一名程序员每天可 开发出30条指令,程序员的月平均工资为6000美元,重 复(1)、(2)题。
作业及解答(第1-2章)
(1)在1985年对计算机存储容量的需求,估计是
《软件工程导论》课后习题答案
作业及解答(第3章)
• 数据结构的描述 符 号
= +
含 义
x = a+b
举
例
被定义为 与 或
[...,...] 或 [...|...] { ... }或 m{...}n (...) “...” ..
23:59:38
x = [a , b],x = [a | b] 重复 x = {a}, x = 3{a}8 可选 x = (a) 基本数据元素 x = “a” 连结符 x = 1..9
P1 记录存款信息
P2 打印存单 F5存款信息 F3存单 E1 储户 F4利息
F5存款信息 D1存款信息 F7密码 F2取款单
F5存款信息 P3 核算密码
F4利息 F4利息 F6取款信息 P6 设置利率 P4 计算利息
P5 打印利息清单 F8储蓄利率
E2 业务员
23:59:38
F8储蓄利率
F8储蓄利率
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
• 3-6 复印机的工作过程大致如下:未接到复印 命令时处于闲置状态,一旦接到复印命令则进 入复印状态,完成一个复印命令规定的工作后 又回到闲置状态,等待下一个复印命令;如果 执行复印命令时发现没纸,则进入缺纸状态, 发出警告,等待装纸,装满纸后进入闲置状态, 准备接收复印命令;如果复印时发生卡纸故障, 则进入卡纸状态,发出警告等待维修人员来排 除故障,故障排除后回到闲置状态。 • 请用状态转换图描绘复印机的行为。
《软件工程导论》课后习题详细答案
《软件工程导论》课后习题详细答案第一章软件工程概论1.什么是软件危机?软件危机是指在运算机软件的开发和爱护过程中所遇到的一系列严峻咨询题。
这些咨询题表现在以下几个方面:(1)用户对开发出的软件专门难中意。
(2)软件产品的质量往往靠不住。
(3)一样软件专门难爱护。
(4)软件生产效率专门低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估量。
(7)软件技术的进展远远满足不了运算机应用的普及与深入的需要。
2.什么缘故会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正明白得软件产品是一个完整的配置组成。
造成开发中制定打算盲目、编程草率,不考虑爱护工作的必要性。
(2) 软件本身方面,关于运算机系统来讲,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件爱护困难。
(3) 专门是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估量、爱护困难等一系列咨询题更为突出,技术的进展差不多远远不能适应社会需求。
3.如何样克服软件危机?(1) 充分吸取和借鉴人类长期以来从事各种工程项目中积存的行之有效的有效原理、概念、技术与方法,专门是吸取几十年来人类从事运算机硬件研究和开发的体会教训。
在开发软件的过程中努力作到良好的组织,严格的治理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在运算机系统早期进展时期形成的一些错误概念和作法。
(3) 按照不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个时期使用的软件工具集合成一个整体,形成一个专门好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织治理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、爱护到剔除的全过程。
软件工程导论课后习题答案
软件工程导论(第5版)课后习题答案(总21页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--1-5 根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=×(美分/位)如果计算机字长为16位,则存储器价格下降的趋势为:P2=×(美元/字)在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。
要求计算:(1) 在1985年对计算机存储容量的需求估计是多少如果字长为16位,这个存储器的价格是多少(2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。
如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。
(1)在1985年对计算机存储容量的需求,估计是M=(1985-1960)=4474263(字)如果字长为16位,则这个存储器的价格是P=* 1985-1974*4474263=$5789(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。
在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出10×20条指令。
为了开发出4474263条指令以装满存储器,需要的工作量是:4474263/200=22371(人月)程序员的月平均工资是4000美元,开发出4474263条指令的成本是22371*4000=¥(3)在1995年对存储容量的需求估计为:M=4080E0。
28(1995-1960)=(字)=如果字长为32位,则这个存储器的价格是:P=*32*(1995-1974)*=$7127如果一条指令为一个字长,则为使存储器装满程序共需73,577,679条指令。
软件工程导论课后习题答案
软件工程导论课后习题答案1. 什么是软件工程?软件工程是将系统化、规范化的方法应用于软件的开发、运行和维护的一门学科。
它包括软件需求分析、软件设计、软件开发、软件测试、软件维护等工作,旨在提高软件开发过程的效率和质量。
2. 软件生命周期是什么?软件生命周期是指软件从概念到退役的整个过程。
它通常包括以下阶段:需求分析、软件设计、编码、测试、部署、运维和退役。
3. 软件需求分析的目的是什么?软件需求分析的目的是理解客户和用户的需求,明确软件系统应具备的功能和性能要求,并以此为基础,为后续的设计、开发和测试工作提供准确的需求规格说明。
4. 软件设计的原则有哪些?•模块化原则:将软件划分为多个模块,每个模块负责一个特定的功能,以实现代码的复用和可维护性的提高。
•高内聚低耦合原则:模块内部的元素之间高度相关,而模块之间的依赖关系要尽量降低。
•封装原则:隐藏实现细节,将内部数据和操作通过接口封装起来,提供对外的访问方式。
•可读性原则:代码要易于阅读和理解,一致的命名和简洁的代码结构能提高代码的可读性。
•可测试性原则:设计要有良好的可测试性,便于进行单元测试和集成测试。
5. 软件开发过程中的常用模型有哪些?•瀑布模型:按照线性流程顺序依次完成需求分析、设计、开发、测试和部署等阶段。
•敏捷开发模型:采用迭代和增量的方式进行开发,快速响应需求变化。
•喷泉模型:将软件生命周期看做是连续不断的循环,在每个循环内快速迭代开发、测试和部署。
6. 软件测试的目的是什么?软件测试的目的是为了发现软件中的缺陷和错误,并尽早地修复这些问题,以确保软件的质量和可靠性。
通过测试,可以评估软件的功能是否满足需求,并验证软件是否在各种工作环境中正常工作。
7. 软件维护的类型有哪些?•纠错性维护:修复软件中的错误和缺陷。
•适应性维护:适应环境的变化,如操作系统升级、硬件设备更换等。
•完善性维护:根据用户的反馈和需求对软件进行改进和增强。
•预防性维护:对软件进行优化和调整,以提高性能和可维护性。
软件工程导论课后习题解答
第一章1-1 什么是软件危机?答:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3 什么是软件工程?答:是指导计算机软件开发和维护的一门工程学科。
1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
答:目前使用得最广泛的软件工程方法学有2种:传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会随着时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-5、根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M = 4080 e0.28(Y-1960)存储器的价格按下面公式描述的趋势逐年下降:P1 = 0.3×0.72Y-1974(美分/位)如果计算机字长为16位,则存储器价格下降的趋势为:P2 = 0.048×0.72Y-1974(美元/字)在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。
要求计算:(1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?(2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。
如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。
(1)在1985年对计算机存储容量的需求,估计是M= 4080 e0.28(1985-1960)= 4080 e7=4474263(字)如果字长为16位,则这个存储器的价格是P= 0.048 × 0.721995-1974× 73577679 = 5789(美元)(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。
软件工程导论_课后部分习题答案
13:07:42
作业及解答(第3章)
从问题陈述可知,复印机的状态主要有“闲置”、“复印 ”、“缺纸”和“卡纸”。引起状态转换的事件主要是“ 复印命令”、“完成复印命令”、“发现缺纸”、“装满 纸”、“发生卡纸故障”和“排除了卡纸故障”。
13:07:42
作业及解答(第5章)
13:07:42
作业及解答(第3章)
13:07:42
作业及解答(第3章)
3-6 复印机的工作过程大致如下:未接到复印命令时处于 闲置状态,一旦接到复印命令则进入复印状态,完成一个 复印命令规定的工作后又回到闲置状态,等待下一个复印 命令;如果执行复印命令时发现没纸,则进入缺纸状态, 发出警告,等待装纸,装满纸后进入闲置状态,准备接收 复印命令;如果复印时发生卡纸故障,则进入卡纸状态, 发出警告等待维修人员来排除故障,故障排除后回到闲置 状态。
13:07:42
作业及解答(第3章)
3-3 银行计算机储蓄系统的工作过程大致如下:储户填写的 存款单或取款单由业务员键入系统,如果是存款则系统记 录存款人姓名、住址(或电话号码)、身份证号码、存款类 型、存款日期、到期日期、利率及密码(可选)等信息,并 印出存单给储户;如果是取款而且存款时留有密码,则系 统首先核对储户密码,若密码正确或存款时未留密码,则 系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图描绘系 统中的数据对象。
13:07:42
作业及解答(第1-2章)
1-6 什么是软件过程?它与软件工程方法学有何关系?
✓软件过程是为了开发出高质量的软件产品所需完成的一系 列任务的框架,它规定了完成各项任务的工作步骤。
✓软件过程定义了运用技术方法的顺序、应该交付的文档资 料、为保证软件质量和协调软件变化必须采取的管理措施 ,以及标志完成了相应开发活动的里程碑。
软件工程导论(第五版)课后习题答案
2.可行性研究目的? 确定在问题定义中所提出的问题是否值得去解,在限制条件下,问题能否解决。
3.可行性研究的任务? (1) 进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型; (2) 从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性, 为以后的行动提出建议; (3) 如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐 一个较好的解决方案,并为工程制定一个初步的计划。
准则等。 (3) 对现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流
程;现有系统存在的问题。 (4) 系统需求:主要功能;主要性能及其要求;操作要求;信息要求;限制
性要求。 (5) 建议系统:系统目标;处理流程;系统结构,功能,性能;系统技术可行
性;投资和效益分析;操作可行性;法律可行性。 (6) 其它可选方案:与国内外同类型方案的比较;提出一两个可行性方案供
形成患E者2 日志”这项要求可F5以安想全到范围,还应该D有2患一者个安提全供范日围期和时间信P3息的“时钟”
(完整版)软件工程导论(第六版)张海藩课后习题部分答案
第一章1-1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。
软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。
适用中小型项目。
快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。
软件工程导论----张海藩(第五版)课后习题答案
《软件工程导论》课后习题答案第三章需求分析习题答案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) 用户接口、硬件接口及软件接口。
软件工程导论(第六版)课后习题答案
软件工程导论(第六版)课后习题答案软件工程导论(第六版)课后习题答案1. 简答题1.1 软件是如何演变而来的?软件起源于计算机的发展。
最初,计算机只能执行硬件内置的指令,而随着计算机的发展,人们开始意识到可以编写程序来控制计算机的行为。
因此,软件就诞生了。
从最初的汇编语言、机器语言编写程序,到高级编程语言的出现,软件也逐渐从简单的指令集合演变为复杂的程序系统。
同时,计算机应用领域的拓展也催生了更多类型的软件,如操作系统、数据库管理系统、图形界面等。
软件工程导论旨在帮助人们理解和应对软件开发过程中的种种问题和挑战。
1.2 简述软件危机的原因以及软件工程的解决途径。
软件危机指的是在软件开发过程中出现的一系列问题和挑战。
其原因主要包括:(1)软件开发过程中需求不明确或者需求频繁变更;(2)软件项目规模庞大,组织和管理困难;(3)软件开发中缺乏标准化的工程方法和规范;(4)软件开发中技术不成熟、人员培训和素质不足等。
为了应对软件危机,软件工程提出了一系列解决途径:(1)引入系统化的软件开发过程,如瀑布模型、迭代模型、敏捷开发等;(2)规范化软件开发活动,如需求分析、软件设计、编码、测试、维护等;(3)建立软件开发的标准和规范,如ISO 9000、CMMI等;(4)提高软件开发人员的专业水平,加强软件工程教育和培训。
1.3 软件工程活动的核心内容是什么?软件工程活动的核心内容包括需求分析、软件设计、编码、测试和维护等。
(1)需求分析:确定用户需求,定义软件的功能和性能要求。
(2)软件设计:制定软件的体系结构,并将需求转化为具体的设计方案。
(3)编码:根据设计方案,使用编程语言实现软件的功能。
(4)测试:验证软件是否符合需求和设计的要求,发现并修复潜在的问题。
(5)维护:对软件进行改进、优化和修复,确保软件长期稳定运行。
2. 应用题2.1 简述软件生命周期模型,并列举至少两种常见的软件生命周期模型。
软件生命周期模型指的是软件开发过程中各个阶段的组织和安排方式,常见的软件生命周期模型包括:(1)瀑布模型:按照固定的顺序依次进行需求分析、设计、编码、测试和维护等活动。
软件工程导论课后习题答案(第五版)
排除卡纸故障 发生卡纸故障 复印命令 闲置 完成复印命令 do/复印 发现缺纸 装满纸 复印
卡纸 do/警告
缺纸 do/警告
练习题:习题4.3
一个浮点二进制数的构成是:一个可选的符号(+或),后跟一个或多个二进制位,再跟上一个字符E, 再加上另一个可选符号(+或-)及一个或多个二进 制位。例如,下列的字符串都是浮点二进制数: 110101E-101 -100111E11101 +1E0 更形式化地,浮点二进制数定义如下: 〈floatingpoint binary〉∷=[〈sign〉] 〈bitstring〉E[〈sign〉]〈bitstring〉 〈sign〉∷=+|〈bitstring〉∷=〈bit〉[〈bitstring〉] 〈bit〉∷=0|1
状态图练习题:习题3.6 复印机的工作过程大致如下: • 未接到复印命令时处于闲置状态,一旦接 到复印命令则进入复印状态,完成一个复 印命令规定的工作后又回到闲置状态,等 待下一个复印命令; • 如果执行复印命令时发现没纸,则进入缺 纸状态,发出警告,等待装纸,装满纸后 进入闲置状态,准备接收复印命令; • 如果复印时发生卡纸故障,则进入卡纸状 态,发出警告等待维修人员来排除故障, 故障排除后回到闲置状态。
习题答案
练习题:习题2.5 北京某高校可用的电话号码有以下几类: • 校内电话号码由4位数字组成,第1位数字 不是0; • 校外电话又分为本市电话和外地电话两类; • 拨校外电话需先拨0; • 若是本市电话则再接着拨8位数字(第1位不 是0); • 若是外地电话则拨3位区码再拨8位电话号 码(第1位不是0)。
C
P1 . P3
P2 R P2
.
P1
还书R 借书C
软件工程导论课后习题答案.
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机?1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
软件工程的本质特征:(1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经常变化的,开发过程中必须考虑软件将来可能的变化(4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具(5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户(7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径:(1) 对计算机软件有一个正确的认识(软件≠程序)(2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目(3) 推广使用在实践中总结出来的开发软件的成功技术和方法(4) 开发和使用更好的软件工具三、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。
《软件工程导论》课后习题详细答案
数字零=0 3位数字=3{数字}3 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9] 6. 可行性研究报告的主要内容? 可行性分析的结果是可行性研究报告,内容包括:(1) 系统概述:说明开发的系统名称,提出单位 和开发单位。 (2) 可行性研究的前提:系统目标; 要求; 约束和限制; 可行性研究的基本准则等。 (3) 对 现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流程;现有系统存在的问题。 (4) 系统 需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。(5) 建议系统:系统目标;处理 流程;系统结构,功能,性能;系统技术可行性;投资和效益分析;操作可行性;法律可行性。(6) 其它可 选方案:与国内外同类型方案的比较; 提出一两个可行性方案供论证和探讨。 (7) 制定下一阶段的预算。 (8) 结论性意见:由用户方、设计方和投资方共同签署意见。 第三章 需求分析 习题答案 //3至3个数字
M 4080e 0.28(19851960) 4080e 7 4,474,263(字)
P 0.048 0.7219851974 4474263
5, 789(美元)
(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。 在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出10×20条指 令。 为了开发出4474263条指令以装满存储器,需要的工作量是:
M 4080e 0.28(19951960)
73,577,679(字)
如果一条指令为一个字长,则为使存储器装满程序共需73,577,679条指令。
7,127(美元)
软件工程导论(第五版)课后习题答案
《软件工程导论》课后习题答案第一章软件工程概论1-11.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.软件危机有那些典型表现?(1) 对软件开发成本和进度的估计常常很不准确。
(2) 用户对“已完成的”软件系统不满意的现象经常发生。
(3) 软件产品的质量往往靠不住。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
(6) 软件成本在计算机系统总成本中所占的比例逐年上升。
(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
3.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
4.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 很明显一个大的没有被发现的风险问题,将会导致问题的发生,可能导致演化 的方法失去控制。 (3) 这种模型相对比较新,应用不广泛,其功效需要进一步的验证。
(3) 推广使用在实践中总结出来的开发软件的成功技术和方法
(4) 开发和使用更好的软件工具
三 、 简 述结构化范型 和面向对象范型的要点,并分析他们 的优缺点。
七、 什么是软件生 命周期模型 ?试比较瀑布 模型、快速 原型模型、 增量模型和螺 旋模型的优 缺 点 , 说明每种模型 的使用范围。 软件生命周期模型 是跨越整个 生存期的系 统开发、运作 和维护所实 施的全部过程 、活动和任 务的结构框架。
End sub 2、用面向数据流的方法设计下列系统的软件结构: (3)患者监护系统(需求见习题 2-4) 功能级数据流图:
E2 病人
F2生理信号
P2 分析信号
危及病人信息 F2生理信号
F5安全范围
D2患者安全范围
F2生理信号
D3生理信息
P7制定安 全范围
P1 接收信号
定时的生理信号
P5 更新日志
F2生理信号 定时的 生理信号
(2)使用附加的标志变量 flag,至少有两种方法可以把该程序改造为等价的结构化程序,下 图所示盒图描绘了两个等价的结构化程序。
(3)不使用 flag 把该程序改造为等价的结构化程序的方法如下图所示。
7、令 P 代表交易的总金额,Q 代表每股的售价,n 代表交易的股数。 判定表的每一列是一条计算规则。例如,第 1 列(规则 l)规定,当交易总金额 P 少于 1,
第一章
一 、 什 么是软件危机 ?它有哪些典型表现?为什么会出现 软件危机?
软件危机是指在 计算机软件 开发、使用与 维护过程中 遇到的一系益增长的 需求;如何 维护数量不断 增长的已有
软件。
软件危机的典型表现:
(1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量
缺点:产品的先天 性不足,因 为开发者常 常需要做实现 上的折中, 可能采用不合 适的操作系 统或程序设计语言,以使原型能够尽快工作。
增量模型 优点: (1) 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现 下一个增量。 (2) 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这 样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 缺点: (1) 至始至终开发者和客户纠缠在一起,直到完全版本出来。 (2) 适合于软件需求不明确、设计方案有一定风险的软件项目。
(4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的 更好更有效的方法和工具
(5) 和谐地合作是开发软件的关键
(6) 软件必须有效地支持它的用户
(7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)
消除软件危机的途径:
(1) 对计算机软件有一个正确的认识(软件≠程序) (2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严 密、各类人员协同配合、共同完成的工程项目
该模型适合于大型软件的开发
第二章 4.目前住 院病人主要由护士护理,这 样做不仅需要大量护士,而 且由于不能随时观察危重病 人的 病情变化,还 会延误抢救 时机。某医院 打算开发一 个以计算机 为中心的患者 监护系统, 请 写 出 问题定义,并 且分析开发这个系统的可行性。
医院对患者 监护系统的基本要求是随时接收每个 病人的生理信号 (脉搏、体温、血压、心 电图等 ),定时记录病人情况以 形成患者日志,当某个病人的生理 信号超出医生规定的安全范 围时 向值班护士发 出警告信息 ,此外,护士 在需要时还 可以要求系 统印出某个指 定病人的病 情报告。
P3 产生警告信息
F4警告信息
E1 护士
E3 时钟
F3日前、时间
P4 定时取样 生理信号
F6日志
E1 护士
软件结构图:
F6日志
F1要求报告
P6
产生病情报告
D1患者日志
生理信号
患者监护系 统
日志危机信息
定生时理生信理号信范号围
日志
日志 定时生理信号 危机信息 生理信号
生定理时信生理号信号
患者生理信
号获取
问题定义: 从问题陈述可知,本系统的数据源点是“病人”和“护士”,他们分别提供生理信号和要 求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志” 这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。 从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。 系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。 此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告"的功能。 为了分析病人生理信号是否 超出了医生 规定的安全范 围,应该存 储“患者安 全范围”信 息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。
1993 年 IEEE 的定义:软件工程是:① 把系统的、规范的、可度量的途径应用于软件开 发、运行和维护过程,也就是把工程应用于软件;② 研究①中提到的途径。
软件工程的本质特征:
(1) 软件工程关注于大型程序(软件系统)的构造
(2) 软件工程的中心课题是分解问题,
控制复杂性
(3) 软件是经常变化的,开发过程中必须考虑软件将来可能的变化
电话号码 = [校内电话号码 | 校外电话号码]
校内电话号码 = 非零数字 + 3 位数字
校外电话号码 = [本市号码 | 外地号码]
本市号码 = 数字零 + 8 位数字
外地号码 = 数字零 + 3 位数字 + 8 位数字
非零数字 = [1|2|3|4|5|6|7|8|9]
数字零 = 0
3 位数字 = 3{数字}3
000 元,且每股售价 Q 低于 l4 元,且交易的股数 n 是 l00 的倍数时,给经纪人的手续费为: (1+0.05)×0.084P 第 16 列(规则 l6)表明,当交易总金额 P 超过 l0,000 元,且每股售价 Q 在 14 元到 25 元
请 用 状 态转换图描绘 复印机的行为。 从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。引起状态 转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障” 和“排除了卡纸故障”。状态转换图如下:
1、为每种类型的模块耦合举一个具体的例子。 (1) 非直接耦合—例如,两个模块没有直接关系(模块 1 和模块 2),模块独立性最强。
(2) 数据耦合—例如,下左图
数据耦合
特征耦合
(3) 特征耦合—例如,上右图
“住户情况”是一个数据结构,图中模块都与此数据结构有关。“计算水费”和“计算电
费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合。
(4) 控制耦合--模块 A 通过传送开关、标志、名字等控制信息,明显地控制选择模块 B 的功
许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:
(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二 、 什 么是软件工程 ?它有哪些本质特征?怎样用软件工 程消除软件危机?
瀑布模型 优点: 它提供了一个模 板,这个模 板使得分析、 设计、编码 、测试和支 持的方法可 以在该模板 下有一个共同的指导。虽然有不少缺陷但比在软件开发中随意的状态要好得多。 缺点: (1) 实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的, 这很容易由微小的变化而造成大的混乱。 (2) 经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二 义性问题存在的。 (3) 客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可 能引起客户的惊慌,而后果也可能是灾难性的。 (4) 会经常在过程的开始和结束时碰到等待其他成员完成其所依赖的任务才能进行下去,有可 能花在等待的时间比开发的时间要长。称之为“堵塞状态”。 它是软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重要的位置。 快速原型模型 在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、 交流,更好地了解 客户需求, 不断修改这 个原型,到了 双方认可的 程度,再做详 细地分析、 设计和编程,最终开发出令客户满意的产品。 优点:使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。
级、实际进度比计 划进度拖延 几个月甚至 几年的现象。 而为了赶进 度和节约成本 所采取的一
些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来
2、 怎 样 与用户有效的 沟通以获取用户的真实需求? (1) 初步需求获取,通过访谈与会议、问卷调查、观察用户工作流程等方法;