软件工程复习题(附答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章:软件工程概述
1.软件及软件开发的特点是什么?(ppt)
⏹抽象性:逻辑实体,而非具体的物理实体,无明显制造过程
⏹无磨损性:不会老化
⏹对硬件的依赖性:开发和运行受计算机系统限制。软件的手工开发方式
⏹本身的复杂性:实际问题的复杂性程序逻辑结构的复杂性
⏹高成本:相当多的软件工作涉及到社会因素
2.软件危机是什么?(P1)软件危机有哪些表现?(P2)产生软件危机的主要原因是什么?(Ppt)
软件危机:计算机软件在开发和维护过程中所遇到的一系列严重问题。
表现
⏹对软件开发成本和进度的估算很不准确
⏹用户很不满意
⏹质量很不可靠
⏹没有适当的文档
⏹软件成本比重上升
⏹供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势
客观原因:软件本身特点决定的。软件是逻辑产品、产品的需求描述的不完整、不准确,开发人员对它的理解上有偏差等等
主观原因:不正确的开发方法:缺乏高质量的人才;经验、合作、交流、管理;缺乏一种有效的、系统的、科学的原理、原则、方法和工具来指导软件的开发和维护;
3.软件工程的定义(P5)
软件工程是运用工程的、数学的、计算机等科学的概念、方法和原理来指导软件开发和维护的一门学科,或者说是研究如何开发软件的一门学科。
4.软件包含些什么?程序、数据、文档(Ppt)
软件包括程序,数据及其相关文档的完整集合。
⏹程序是按事先设计的功能和性能要求执行的指令序列
⏹数据是使程序能正常操纵信息的数据结构
⏹文档是与程序开发,维护和使用有关的图文材料
5.软件工程的三要素:过程、方法、工具(P9)
6.什么是软件的生命周期?(ppt)软件的生命周期分哪几个时期?哪几个阶段?每一个阶段的任务和阶段
性成果分别是什么?(P11~14三个时期、八个阶段)(Ppt)
软件生命周期是指从提出软件产品的开发开始,经过开发、使用和维护,及至该软件产品被最终淘汰的全过程。
包括以下三个时期:软件定义;软件开发;软件使用与维护
八个阶段:
1.问题定义
任务:确切的定义需要解决的问题
第1 页
阶段性产品:经过客户确认的关于问题性质、工程目标和工程规模的报告
2.可行性研究
任务:了解用户需求和现实环境,从技术、经济等方面研究并论证开发该软件系统的可行性;
阶段性产品:可行性论证报告;初步的项目开发计划
3.需求分析
任务:确定用户对待开发软件系统的需求包括:
⏹功能:能干什么
⏹性能:可靠性、安全性、可维护性等
⏹运行环境约束:待开发的软件系统必须满足的运行环境(硬件、网络、软件环境);
阶段性产品:软件需求规格说明书
(SRS: Software Requirement Specification)
4. 总体设计
任务:根据SRS建立目标软件系统的总体结构(模块、模块的功能和接口、模块之间的相互控制关系)、设计全局数据库或数据结构,规定设计约束,制定组装测试计划等。
阶段性产品:概要设计规格说明书,数据库或数据结构说明书,组装测试计划。
5. 详细设计
任务:逐步细化总体设计所生成的各个模块,详细描述程序模块的内部细节(数据结构、工作流程等等),形成可编程的程序模块,制订单元测试计划。
阶段性产品:详细设计规格说明书
6. 编码和单元测试
任务:基于某种程序设计语言,根据详细设计规格说明书编写程序,并对程序进行调试和单元测试,验证程序与详细设计文档的一致性。
阶段新产品:源程序代码
7. 综合测试
任务:通过各种类型的测试及相应的调试,使软件达到预定的要求。
主要包括:
⏹集成测试
任务:根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试,以验证各个模块之间连接是否存在错误,测试软件系统或者某个子系统是否满足设计要求。
阶段性产品:满足概要设计要求、可运行的系统源程序;系统集成测试报告
⏹验收测试
任务:根据软件需求规格说明书,测试软件系统是否满足用户的需求。
阶段性产品:可提供给用户使用的软件产品(文档如用户手册,操作手册;源程序代码,其它文档);测试计划、详细测试方案、实际测试结果
8. 使用与维护
关键任务:通过各种必要的维护活动使系统持久的满足用户的需要。
7.软件工程学研究的内容包括哪些?(软件开发技术和软件工程管理ppt)软件工程的目标有哪些?
第2 页
软件工程学研究内容:
1.软件开发技术:软件开发方法学;软件工具;软件工程环境
2.软件工程管理:软件管理学;软件心理学;软件经济学
目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能
开发的软件易于移植;需要较低的维护费用
能按时完成开发工作,及时交付使用
8.软件工程的七条基本原理是什么?(P7~P9)
用分阶段的生命周期计划严格管理
坚持进行阶段评审
实行严格的产品控制
采用现代程序设计技术
结果应能清楚的审查
开发小组的人员应该少而精
承认不断改进软件工程实践的必要性
9.瀑布模型和快速原型模型的思想(P15~P17)。
瀑布模型其主要思想是:
⏹软件开发过程与软件生命周期是一致的(推迟实现的观点)
⏹相邻二阶段之间存在线性因果关系,上一个阶段的输出是下一个阶段的输入(阶段间具有顺序性和依
赖性)
⏹为了保障软件开发活动的正确性,在每一个活动完成之前,必须对该阶段的阶段性产品进行评审,正
确之后才能进入下一阶段的工作。(质量保证的观点)
快速原型模型的思想:软件开发人员首先根据用户提出的初步需求,快速地开发出一个原型,它向用户展示了待开发软件系统的全部或部分功能、行为和性能。在征求用户对原型的意见之后,进一步修改、完善和确认软件系统的需求;
10.CASE的定义(PPt)
CASE(计算机辅助软件工程Computer-Aided Software Engineering):在软件工程活动中,软件开发人员按照软件工程的方法和原则,借助于计算机及其软件工具的帮助来开发、维护和管理软件产品的过程。
第二章:可行性研究
1.可行性研究的任务和目的(P25)
可行性研究的任务:
a.进行概要的分析研究,初步确定项目的规模,目标,约束和限制。
b.进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。
c.从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的解决方法。
d.对每种解决方法都要研究它的可行性。
可行性研究的根本任务:对以后的行动方案提出建议。
目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。
2.可行性研究要考虑的三个方面:技术、操作、经济可行性(P25)
第3 页