软件工程导论(第5版)课后习题答案
软件工程导论(第五版)张海藩课后答案.doc
第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程课后习题答案第五版
软件工程课后习题答案第五版《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
- (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
- 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程导论 张海藩(第五版)课后习题答案
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程导论张海藩第五版课后习题答案
✓软件过程是软件工程方法学的3个重要组成部分之一。
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
6
作业及解答(第3章)
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
15
作业及解答(第3章)
3-3 银行计算机储蓄系统的工作过程大致如下:储户填写的 存款单或取款单由业务员键入系统,如果是存款则系统记 录存款人姓名、住址(或电话号码)、身份证号码、存款类 型、存款日期、到期日期、利率及密码(可选)等信息,并 印出存单给储户;如果是取款而且存款时留有密码,则系 统首先核对储户密码,若密码正确或存款时未留密码,则 系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图描绘系 统中的数据对象。
定时的生理信号 F6日志
P5 更新日志
D1患者日志
E1 护士
13:07:42
F6日志 F1要求报告
P6 产生病情报告
重庆工学院计算机科学与工程学院 李梁(liliang@)
10
E2 病人
P2 分析信号
F2生理信号 F5安全范围
危及病人信息 D2患者安全范围
P3 产生警告信息
F2生理信号
11
E2 病人
P2
分析信号
危及病人信息
F2生理信号
F5安全范围
D2患者安全范围
F2生理信号
D3生理信息
P7制定安 全范围
F2生理信号
P1 接收信号
定时的生理信号
软件工程导论-张海藩-第五版课后习题答案
多态
多态是指同一个操作作用于不 同的对象,可以产生不同的结 果。
UML建模语言简介
UML是一种用于对软件密集系统进行可视化建模 的统一建模语言。
UML通过统一的符号和工具,为软件开发人员提 供了一种通用的建模语言。
UML可以描述软件系统的静态结构和动态行为, 包括类图、时序图、用例图等。
面向对象分析、设计和实现过程
列表。
与用户确认需求列表,确保对用户需求有准确的理解。
03
需求规格说明书编写
01
编写详细的需求规格说明书,包括功能需求、性能需求、接 口需求等。
02
使用清晰、准确的语言描述需求,避免歧义和模糊性。
03
提供必要的图表、示例和数据,以便更好地理解和实现需求 。
需求变更管理
建立需求变更管理流 程,确保所有变更都 经过评估和批准。
及时通知相关干系人, 协商并处理变更请求, 确保项目顺利进行。
对变更进行影响分析, 评估变更对项目进度、 成本和质量的影响。
03 系统设计
总体设计原则与方法
模块化
将系统划分为若干个相对独立的模块, 每个模块具有特定的功能,模块之间 通过接口进行通信。
高内聚、低耦合
模块内部的功能应该高度相关,而模 块之间的依赖关系应该尽量减少。
要点二
软件评估技术
软件评估技术包括代码审查、走查、桌面检查等。代码审 查是一种正式的评估技术,由一组开发人员对源代码进行 详细检查以发现错误;走查是一种轻量级的评估技术,由 开发人员自行检查代码并记录下潜在的问题;桌面检查则 是一种非正式的评估技术,由评估人员通过查看文档和演 示来评价软件产品的质量。
THANKS FOR WATCHING
感谢您的观看
软件工程导论第五版答案
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.需求分析的描述工具有哪些?有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier 图、IPO图和需求描述语言等。
2.需求分析的基本任务是什么?准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?建立目标系统的逻辑模型的过程也就是数据流图的分解过程。
它的导出过程如图:10.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。
房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
(1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。
在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。
(2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。
(3) 如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
(4) 住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的单位面积及房租等信息。
房产科可以要求系统打印住房情况的统计表,或更改某类房屋的居住条件、单位面积和房租等。
用数据流图描绘该系统的功能需求;在数据字典中给出主要的数据流、文件和加工说明。
第四章总体设计习题答案9. 比较层次方框图与结构图是的异同?(1) 层次方框图描绘数据的层次结构, 结构图描绘的是软件结构。
软件工程概论(第5版)课后习题解答
(4)找出并改正程序中逻辑中的错误。
COMMENT:PROGRAM SEARCHES FOR FIRST N REFERENCES TO A TOPIC IN AN INFORMATION RETRIEVAL SYSTEM WITH T TOTAL ENTRIES INPUT N IF N>0 THEN INPUT KEYWORD(S) FOR TOPIC I=0 MATCH=0 DO WHILE I<T I=I+1 IF WORD=KEYWORD THEN MATCH=MATCH+1 STORE IN BUFFER END IF MATCH=N
√ √ √ √
待维修人员来排除故障,故障排除后回到闲置状态。 请用状态转换图描绘复印机的行为。 解: 从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺 纸”和“卡纸”。引起状态转换的事件主要是“复印命令”、“完成复印命 令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。
软件工程导论----张海藩(第五版)课后习(考研专用).doc
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程导论 张海藩(第五版)课后习题答案
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程导论(第五版)张海藩课后答案(2021修订版)(2021整理)
第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题暗示在以下几个方面:(1)用户对开发出的软件很难对劲。
(2)软件产物的质量往往靠不住。
(3)一般软件很难维护。
(4)软件出产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的开展远远满足不了计算机应用的普及与深入的需要。
2.为什么会发生软件危机?(1) 开发人员方面,对软件产物缺乏正确认识,没有真正理解软件产物是一个完整的配置组成。
造成开发中制定方案盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和尺度指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不克不及包管、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的开展已经远远不克不及适应社会需求。
3.怎样克服软件危机?(1) 充实吸收和借鉴人类持久以来从事各种工程工程中堆集的行之有效的有效道理、概念、技术与方法,出格是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的办理,彼此友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期开展阶段形成的一些错误概念和作法。
(3) 按照不同的应用领域,开发更好的软件东西并使用这些东西。
将软件开发各个阶段使用的软件东西调集成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术办法(方法和东西),又要有必要的组织办理办法。
工程的最终产物:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件保存周期?软件保存周期是指从软件定义、开发、使用、维护到裁减的全过程。
软件工程导论课后习题答案(第五版)
排除卡纸故障 发生卡纸故障 复印命令 闲置 完成复印命令 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
软件工程导论第五版课后答案
软件工程导论第五版课后答案【篇一:软件工程答案第五版答案】方法学(3个要素):通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。
三要素:方法、工具和过程。
? 软件生命周期模型–瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
–缺点:传统的瀑布模型过于理想化,是由文档驱动的。
–快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要。
–增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
–螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是螺旋模型中另一个周期。
1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-2 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。
1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-4 软件生命周期划分成哪些阶段? 软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。
1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析 2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。
软件工程导论(第五版)_(张海藩_著)_清华大学出版社_课后习题答案
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程课后习题答案第五版
软件工程课后习题答案第五版软件工程课后习题答案第五版《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
- (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
- 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1-5 根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.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=4080e0.28(1985-1960)=4474263(字)●如果字长为16位,则这个存储器的价格是●P=0.048*0.72 1985-1974*4474263=$5789●(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。
●在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出10×20条指令。
●为了开发出4474263条指令以装满存储器,需要的工作量是:4474263/200=22371(人月)●程序员的月平均工资是4000美元,开发出4474263条指令的成本是22371*4000=¥89484000●(3)在1995年对存储容量的需求估计为:M=4080E0。
28(1995-1960)=73577679(字)=4080E9.8●如果字长为32位,则这个存储器的价格是:P=0.003*32*0.72(1995-1974)*73577679=$7127●如果一条指令为一个字长,则为使存储器装满程序共需73,577,679条指令。
●在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开发出可装满整个存储器的程序,需要的工作量为73577679/600=122629(人月)●开发上述程序的成本为:122629*6000=$7357767901-6 什么是软件过程?它与软件工程方法学有何关系?✓软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
✓软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。
✓软件过程是软件工程方法学的3个重要组成部分之一。
2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。
某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。
医院对患者8监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。
●从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。
进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。
●从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。
●系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。
●此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。
●为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。
此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。
2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。
请用定义数据字典的方法,定义上述的电话号码。
●数据结构的描述符号含义举例=被定义为+与x = a+b[...,...] 或[...|...] 或x = [a , b],x = [a | b]{ ... }或m{...}n 重复x = {a},x = 3{a}8(...) 可选x = (a)“...” 基本数据元素x = “a”.. 连结符x = 1..9●电话号码=[校内电话号码|校外电话号码]●校内电话号码=非零数字+ 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]3-3 银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。
●ER模型✓本问题中共有两类实体,分别是“储户”和“储蓄所”,在它们之间存在“存取款”关系。
因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。
✓储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性3-6 复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
请用状态转换图描绘复印机的行为。
从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。
引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。
4-3 一个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。
例如,下列的字符串都是浮点二进制数:110101E-101-100111E11101+1E0更形式化地,浮点二进制数定义如下:〈floating point binary〉∷=[〈sign〉]〈bitstring〉E[〈sign〉]〈bitstring〉〈sign〉∷=+|-〈bitstring〉∷=〈bit〉[〈bitstring〉]〈bit〉∷=0|1其中,✓符号∷=表示定义为;✓符号[...]表示可选项;✓符号a|b表示a或b。
假设有这样一个有穷状态机:以一串字符为输入,判断字符串中是否含有合法的浮点二进制数。
试对这个有穷状态机进行规格说明。
该有穷状态机的初态是“等待字符串输人”。
在初态若接收到字符十、或字符一、或二进制位,则进人“输人尾数”状态;在初态若接收到其他字符,则进人终态“非浮点二进制数”。
在“输人尾数”状态若接收到二进制位,则保持该状态不变;若接收到字符 E ,则进人“等待输人指数”状态;若接收到其他字符,则进人终态“非浮点二进制数”。
在“等待输人指数”状态若接收到字符+、或字符一、或二进制位,则进人“输人指数”状态;若接收到其他字符,则进人终态“非浮点二进制数”。
在“输人指数”状态若接收到二进制位,则保持该状态不变;若输人其他字符,则进人终态“非浮点二进制数”;若输人结束,则进人终态“浮点二进制数”。
仔细研究图示的有穷状态机可以发现,它还有不够严格的地方。
有兴趣的同学请进一步改进它,画出更严格的、与浮点二进制数定义完全一致的有穷状态机。
补充1:请为某仓库的管理设计一个ER模型。
该仓库主要管理零件的订购和供应等事项。
仓库向工程项目供应零件,并且根据需要向供应商订购零件。
●本问题中共有三类实体,分别是“零件”、“工程项目”和“供应商”。
●一种零件可供应多个工程项目,一个工程项目需要使用多种零件,因此,零件与工程项目之间的联系“供应”,是多对多(M ' N )联系;类似地,零件与供应商之间的联系“订购”,也是多对多(M ' N )联系。
●实体类型“零件”的主要属性是:零件编号,零件名称,颜色,重量。
实体类型“工程项目”的属性主要是:项目编号,项目名称,开工日期。
实体类型“供应商”的属性主要有:供应商编号,供应商名称,地址。
联系类型“供应”的属性是,向某工程项目供应的某种零件的数量。
联系类型“订购”的属性是,向某供应商订购的某种零件的数量补充3、已知某定货系统的需求分析DFD图如下,请按SD方法的设计步骤画出结构图。
补充4、已知某系统的需求分析给出的系统数据流程图如下,画出结构图P104:3 用面向数据流的方法设计下列系统的软件结构(1)储蓄系统2-2(2)机票预定系统2-3为了方便旅客,某航空公司拟开发一个机票预定系统。
旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,旅客在飞机起飞前一天凭取票通知和账单交款取票,系统核对无误即印出机票给顾客(2)患者监护系统2-4可以是两个子系统,预定和取票是不同的处理方式(后台批量和前台单个)●P104:4●美国某大学有200名教师,校方与教师工会刚刚签订一项协议。
按照协议,所有年工资超过$26000(含$26000 )的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加工资数额按下述方法计算:给每位教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000。