|
第二部分 软件工程
第一章 概论
一.填空
1.软件工程研究的主要问题是软件开发过程中的 , , , 。
答案:①开发模型②技术方法③工程支持与软件工具④开发过程管理
2.按软件工程的七条基本指导思想开发软件,软件的质量是可以得到保障的。七条基本指导思想是: , , , , , , 。
答案:① 严格管理② 阶段评估③ 产品控制④ 现代程序设计技术⑤ 审查⑥ 人员少而精⑦ 不断改进软件工程实践
3.软件工程学研究的主要内容是 , , 三个方面。
答案:①软件开发理论;②软件开发技术;③软件管理技术
4. 软件工程的技术方法是: , , , , , , 。
答案:① 抽象② 信息隐蔽③ 模块化④ 局部化⑤ 一致性⑥ 安全性⑦ 可验证性
5.软件开发模型是软件各部分关系的描述及开发方面的总称,常用的开发模型有 , ,
, 等。
答案:①瀑布型、②原型、③增量模型、④演化形等。
6.瀑布模型将软件开发划分为八个阶段 , , , , , , , 。
答案:①问题定义②可行性研究③需求分析④总体设计⑤详细设计⑥编码⑦测试⑧维护
7.瀑布模型的开发方法可概括为 ,逐步求精。
答案:由上到下
二.选择(答案就在括号中)
1.软件工程学的提出是由于软件产生中的软件危机引起的,软件工程学的目的应该是最终解决软件生产的什么问题?( D )
(A)消除软件的生产危机 (B)加强软件的质量保证
(C)提高软件的开发效率 (D)使软件生产工程化
2.软件危机通常是指在计算机软件开发和维护中所产生的一系列严重的问题,这些问题中相对次要的因素是( D )
(A)软件功能 (B)文档质量
(C)开发效率 (D)软件性能
3.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为( A )
(A)瀑布模型 (B)对象模型
(C)螺旋模型 (D)层次模型
4.软件开发模型是指软件开发的全部过程、活动和任务的结构框架。主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型,螺旋模型将瀑布模型和演化模型相结合,并增加了(1)(B),它建立在(2)(D)的基础上,沿着螺旋线自内向外每旋转一圈,就得到(2)(D)的一个新版本。
喷泉模型描述了(3)(A)的开发模型,它体现了这种开发方法创建软件的过程所固有的(4) (C)和(5)(A)的特征。
(1) (A)系统工程 (B)风险分析
(C)设计评审 (D)进度控制
(2) (A)模块划分 (B)子程序分解
(C)设计 (D)原型
(3) (A)面向对象 (B)面向数据流
(C)面向数据结构 (D)面向事件驱动
(4) (A)归纳 (B)推理
(C)迭代 (D)递归
(5) (A)开发各阶段之间无“间隙” (B)开发各阶段分界明显
(C)部分开发阶段分界明显 (D)开发过程不分段
5.从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大是( C )。
(A)详细设计阶段 (B)概要设计阶段
(C)需求分析阶段 (D)测试和运行阶段
6.检查软件产品是否符合需求定义的过程称为( D )。
(A)确认测试 (B)集成测试
(C)验证测试 (D)验收测试
7.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为( B )
(A)相互排斥 (B)相互补充
(C)独立使用 (D)交替使用
8.软件工程方法中普遍应用的方法之一是结构化生命周期方法(SLC方法),下述哪一个论述不具有SLC方法的主要特征( D )。
(A)严格定义需求 (B)划分开发阶段
(C)规范文档格式 (D)分析控制流程
9.结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的( B )
(A)控制流 (B)数据流
(C)程序流 (D)指令流
10.原型方法是用户和设计者之间执行的一种交互过程,适用于(A )(1)系统。它从用户界面设计开始,首先形成(B )(3),用户(C )(4)并就(D )(1)提出意见。它是一种(E )(1)型的设计过程。用户认可修改的界面后,设计者据此进行内部设计。供选择答案:
A:(1)需求不确定性高的(2)需求确定的(3)管理信息(4)决策支持
B:(1)用户界面使用手册(2)界面需求分析说明书(3)系统界面原型(4)完善用户界面
C;(1)改进界面的设计(2)阅读文档资料(3)模拟界面的运行(4)运行界面原型
D:(1)同意什么和不同意什么(2)使用和不使用哪种编程语言(3)程序的结构(4)执行速度是否满足要求
E:(1)自外向内(2)自顶向下(3)自内向外(4)自顶向上
三.简答
1.软件开发与程序编写有什么不同?
答案:软件开发:是软件生命的全过程,包括多个开发阶段,分阶段实施完成;
程序编写:是软件开发的一个阶段,是软件程序的具体实现。
2.什么是软件危机?怎样挽救软件危机?
答案:在计算机软件开发、维护中遇到的一系列严重问题。包括:
⑴ 开发中的问题:
l 开发的成本与进度估计不准,软件开发的“人月数”随着软件行数的增加而成指数的增长。
l 开发的软件常常不能满足用户的需要;或者用户的要求已经改变。
l 软件文档不全,难以使用、维护。
l 调试时间太长。占全部开发工作量的40%。其中30%为编程错误,70%为规范及设计错误。
⑵ 维护中的问题:
l 软件常常是不可维护的;在维护的同时又有可能产生新的错误。
l 软件维护的费用很高。软件维护的费用往往占全部费用的40%。
3.软件开发模型有几种?各自适合于什么场合?
答案:
① 结构化模型:适合于软件需求完全确定的系统开发。
② 渐进式模型(包括演化模型):适合于只能提供基本软件需求的系统开发。
③ 变换模型:形式化的开发模型。(严格的数学定义,规范的生成)
④ 综合模型:结合上述模型的模型。
4.简述”瀑布模型”与”原型模型”的差异?
答案:
①瀑布模型:具有开发阶段顺序,依赖关系;程序推迟实现的特点。适合于需求明确的系统开发。
②原型模型:先根据用户的基本需求,开发原型系统;用户使用评价,逐步完善。适合于需求不明确的系统开发。
5.软件工程学研究的目标、内容?
答案:
①目标:在给定的成本、进度前提下,开发出高质量可维护的软件产品。
②软件开发理论:①程序正确性证明 ②软件可靠性理论 ③成本估计模型 ④软件开发模型
③软件开发技术:①软件开发技术学 ②软件工具 ③软件环境
④软件管理技术:①软件管理理论与方法 ②软件经济
6.非形式化、半形式化、形式化的软件模型有什么本质的差别?
答案:
① 非形式化:仅用自然语言描述系统。
② 半形式化:用E-R图,DFD图等图形描述系统。
③ 形式化:用数学语言描述系统。
7.软件发展趋势是什么? 软件工业化生产时代将采用什么基础技术?
答案:
(1)发展趋势
l 遗留(legacy)软件将继续发挥作用。
l 软件应用范围将继续扩大,成为信息社会的基础设施。
l 网络化软件将是发展重点。
l 软件的可靠性与安全性日趋重要。
l 工业化生产是必由之路。
(2)软件工业化生产时代的基础技术:
① 软件过程技术:以软件过程改进为中心
软件过程成熟度模型CMM
个体软件过程PSP
群体软件过程TSP
建造支持软件过程的环境
② 面向对象技术
③ 构件重用技术
8.某公司计划用FORTRAN语言开发一个在VAX750机上运行的应用程序,估计程序长度104条FORTRAN语句长,如果平均每人每天可开发出10条FORTRAN语句,请计算:(1)由一个人开发这个程序需多少时间?(2)按每人每月20个工作日计,每人每月工资4000$,求软件成本?(1)所需时间:T (2)软件成本:L
答案:(1)所需时间:T=11天 (2)软件成本:L=200$X11=2200$ |
|