欢迎来到天天文库
浏览记录
ID:37025070
大小:504.51 KB
页数:22页
时间:2019-05-17
《《软件工程导论课后习题答案》》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、参考答案21参考答案第1章一、选择题1.D2.C3.B4.D5.B6.A7.D二、填空题1.程序文档数据2.抽象模块化信息隐蔽局部化一致性完备性可验证性3.问题定义可行性研究需求分析4.软件生命周期模型顺序性依赖性5.制定计划风险分析实施工程客户评价6.结构化分析结构化设计结构化程序设计数据流自顶向下,逐步求精功能的分解与抽象三、思考题1.答:软件产品是一种无形的逻辑产品,是人们脑力劳动的结晶。软件产品只能以程序、数据和文档的形式出现。其存储介质是磁盘、磁带或光盘。通过计算机的执行才能体现出来。与硬件产品的制造不同,软件产品的成本主要花在研制上,而产品的制造实质上是所开发产品的拷
2、贝。软件产品不会像硬件产品一样磨损,但仍然需要维护,而且维护的成本很高。软件产品的开发主要靠脑力劳动,所以产品研制的成本很高,很难像硬件产品那样实现工业化生产。2.答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件的日益增长的需求;如何维护数量不断膨胀的软件。具体来说,软件危机主要有以下一些典型表现。对软件开发成本和进度的估计常常很不准确。用户对所交付的软件系统不满意的现象时有发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件文档资料通常不完整、不合格。软件的价格昂贵,软件成本在计算机系
3、统总成本中所占的比例逐年上升。软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上日益增长的软件需求。3.答:软件工程的基本目标是在给定的成本、进度等条件下,开发出满足用户需求的软件产品。简单来说,也就是要成功地建造一个大型软件系统。软件项目的成功主要是要达到以下几个目标:付出较低的软件开发成本;达到用户所要求的软件功能;取得较好的软件性能;所开发的软件易于移植、可重用性好;需要较低的软件维护费用;能按时完成开发任务,及时交付使用;软件工程面临的主要问题是:软件费用、软件可靠性、软件维护、软件生产率和软件重用等。4.答:软件工程的基本原理主要有以下七条:参考答案21用分
4、阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应该能清楚地审查;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性。5.答:软件工程的原则主要有以下几点:(1)抽象:抽象是指抽取事物最基本的特征和行为,忽略与问题无关或关系甚少的其他细节。(2)模块化:模块化就是把一个问题划分成若干个较小的、较易解决的模块,每个模块完成一个子功能,将这些模块组装成一个整体即可完成指定的功能。(3)信息隐蔽:将模块内部的信息(数据和操作的细节)封装起来,其他模块只能通过该模块对外界提供的接口来访问该模块。(4)局部化:在一个物理模块内集中逻辑上相
5、互关联的计算机资源,即按照特定的目的把相互关联的事物放在一起。(5)一致性:整个软件系统(包括程序、数据和文档)应能满足以下一些一致特性:一致的概念、符号和术语;程序内部接口保持一致;软件与硬件环境的接口保持一致:系统规格说明与系统行为保持一致;用于形式化规格说明的公理系统保持一致。(6)完备性:软件系统不丢失任何重要成分完全实现系统所需功能的程度。(7)可验证性:软件开发过程中的各个阶段的工作应该具有可验证性,以确保软件系统的正确性。软件系统的自顶向下、逐层分解应遵循使系统易检查、易测试、易评审的原则。6.答:软件生命周期是指软件产品从形成概念开始,经过定义、开发、使用和维护,
6、直到最后退役的全过程。软件生命周期理论从时间角度对软件开发和维护的复杂问题进行分解,把漫长的软件生命周期划分为若干个相对独立的阶段,逐步完成每个阶段的任务。一般来说,软件生命周期包括软件定义、软件开发、软件的使用与维护3个阶段。软件定义的基本任务是弄清待开发的软件系统要做什么,即软件开发工程必须完成的总目标。软件开发过程即软件的设计和实现,软件开发过程就是软件开发人员按照需求规格说明的要求,把抽象的系统需求实现到具体的程序代码和相关文档等,并经过严格测试产生最终软件产品的过程。软件开发结束后,经过用户确认验收,便可安装到特定的用户环境中供用户使用。软件的使用即软件的运行。软件投入
7、实际使用以后的主要任务是确保软件持久满足用户的要求。软件的维护就是为了延长软件的寿命而对软件产品进行修改或对软件需求变化做出响应的过程。7.答:根据作用和目的的不同,原型可以分为探索型、实验型和进化型。(1)探索型主要针对开发目标模糊,用户和开发者对项目都缺乏经验的情况,目的是要弄清对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。(2)实验型主要用于大规模开发和实现之前,考核方案是否合适,规格说明是否可靠。(3)进化型将原型方法的思想扩展到软件开发的全过程,目的是将系
此文档下载收益归作者所有