软件工程基础习题集答案-2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程基础习题集答案-2
《软件工程基础》习题集答案
第一章概述
1.什么是软件危机,它有哪些典型表现?
所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。
软件危机的典型表现主要有:
a. 开发成本和进度不能准确估计
b. 开发出来的软件不能满足用户的要求
c. 软件的可维护性差
d. 软件质量不可靠
e. 软件成本在系统中的比重逐年上升
f. 软件开发生产率的提高速度不够
2.简述产生软件危机的原因和解决的思路。
软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。
3.什么是软件工程?它有哪些本质特性?
软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。
其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。
4.软件工程是如何用来消除软件危机的?
软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。
6.简述软件的定义。
软件=程序 + 数据 + 文档
7.软件工程的目的是什么?
为高质量的软件开发提供一个科学的体系框架。
8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?
软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。
软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。
9.简述软件工程的基本原理。
软件工程有7条基本原理:
1.严格按照软件生命周期计划进行管理
2.坚持进行阶段评审
3.实行严格的产品控制
4.采用先进的程序设计技术
5.结果应能清楚的审查
6.开发小组成员应少而精
7.承认不断改进软件工程实践的必要性
10.软件工程的基本开发原则有哪些?
软件工程的基本开发原则有:
第二章可行性研究
1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?
可行性研究的目的是用最小的代价,在尽可能短的时间内确定问题是否可解决,以及是否值得解决。
可行性研究的任务不是解决问题,而是确定是否可解/值得解。
2.应该从哪些方面研究目标系统的可行性?
主要从以下几个方面进行可行性研究:
1. 技术可行性。以现有技术,能否在预定时间内完成该系统开发。
2. 经济可行性。通过成本-效益分析,估算系统的整体经济效益是否满足要求。
3. 操作可行性。分析系统的运行方式、操作规程是否适应用户应用需要。
4. 社会可行性。分析系统在法律、社会、市场等方面的认可度。
3.可行性研究有哪些工作步骤?
(1) 复查定义,确定系统规模和目标。
(2) 研究老系统
(3) 导出高层逻辑模型(conceptual design)
(4) 重新定义
(5) 导出多种解法
(6) 推荐行动方针
(7) 开发计划(粗略)
(8) 审查、存档
4.简述系统流程图在可行性研究中的作用。
系统流程图是概括的描述物理系统的传统工具。系统流程图反映的是信息在系统各部分间流动的情况。
系统流程图可以帮助了解和分析系统,以概括的方式表达对系统的认识,并可以描述未来物理系统的概貌。
5.简述数据流图在可行性研究中的作用和用途。
数据流图在可行性分析中可以帮助分析和描绘数据在软件中流动和被处理的逻辑过程,用图形的方式描述系统的逻辑功能,是系统分析员和用户之间理想的通信工具。
6.简单描述数据字典的内容和定义数据的方法。
数据字典主要由下列4种元素定义组成:
1.数据流
2.数据流分量
3.数据存储
4.处理
除了数据定义外,数据字典还应包含一些关于数据的其它信息。
定义数据的方法通常采用自顶向下分解的方式。并由顺序、选择、重复三种基本数据元素类型组成数据。
7.说明软件计划的内容和目标。
软件计划的内容=项目任务范围 + 环境资源 + 工作量 + 进度
软件计划的目标是为了提供一个框架,以便于管理者对资源、成本和进度等进行合理的估算。
8.什么是软件范围?定义软件范围需要哪些信息?
软件范围就是在技术和管理层面上都是无二义性和可理解的项目范围,是软件开发各阶段的工作依据。
定义软件范围需要以下信息:
a. 与用户、总体目标及利益相关的问题。
b. 有利于系统分析员理解的问题。
c. 集中于交流效果的问题。
9.简述软件开发环境资源的三个层次。
软件开发环境资源由三个层次构成:开发环境、软件构件以及最重要的资源——人。
10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?
每一类资源都有四个特征:资源描述、可用性说明和资源提供的时间、资源使用的延续时间。
可以为制定软件计划估算软件开发所需的资源。
11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?
编制进度计划的常用工具主要有甘特图和网络计划法。
甘特图的优点是简单,能动态地反映开发进展;缺点是难以反映多个任务间的逻辑关系。
网络计划法则恰好弥补了甘特图的缺点,最适合反映多个工作之间的逻辑关系。
12.主要的成本估计技术有哪些?其依据的主要是什么?
主要有,代码行技术。
是一种基于规模的分解估算:
D= f(vi)
以及基于问题的分解估算:
EV=(Sopt+4Sm+Spess)/6
还有功能点技术。这种技术以功能点(FP)为单位,度量软件的规模。
由于项目本身的复杂性,因此,成本估计技术主要采用“分而治之”的分解技术对软件项目进行估算。13.为什么说成本估计是不可能精准的?
那是由于太多的变化因素——人员、技术、环境、策略、复杂性等等,使得成本估算永远不可能精确。14.进行成本/效益分析的方法主要有哪些?
常用成本/效益分析的方法主要有:
(1) 货币的时间价值
(2) 投资回收期
(3) 纯收入
(4) 投资回收率
16.如何对制定完成的软件计划进行复审?为什么要复审?
软件计划的复审通常涉及有关软件工作范围和软硬件资源问题等。复审应该邀请用户参加,用户可提出建议,并与开发人员最终商定内容。复审内容分为技术和管理两个方面:
技术方面需要考虑的问题有:
系统的任务是否合理;
系统的给你复杂性是否与开发成本、进度以及风险一致;
系统规格说明书是否足够充分;
系统性能要求是否恰当
管理方面需要考虑的问题有:
计划中描述的工作范围是否符合用户需求?
计划中对资源的描述是否有效、合理?
计划中系统的开发成本与进度要求是否合理?
计划中人员的安排是否合理?
系统开发存在哪些风险?
复审可以尽早发现错误,复审是软件质量保证的重要措施。