一
.
操作系统论述题真题
1.(1996
年
)
进程通信就是进程之间进行信息交换。系统中各进程异步执行
,
但有些进程之间必须保持一定的联系
,
以便协调一致地完成指定任务。这种联系就是通过交换一定数量的信息来实现的。
消息缓冲通信技术是一种高级通信机制
,
由
hansen
首先提出。其基本思想是
:
根据
'
生产者-消费者关系
'
原理
,
利用公共消息缓冲区实现进程之间的信息交换。
(1)
试叙述高级通信机制与低级通信机制
p
、
v
原语操作的主要区别。
(5
分
)
(2)
试叙述解释消息缓冲通信技术的基本原理。
(10
分
)
(3)
消息缓冲通信机制中提供发送消息原语。
send(receiver,a)
和接收消息原语
receive(a)
。调用参数
a
分别表示发送消息的内存区首地址或接收进程的内存消息区首地址。试设计相应的数据结构
,
并用
p
、
v
操作原语实现
send
和
receive
原语。
(15
分
)
答案
:
(1)
要点:进程间通信时所交换的信息量可多可少。少者仅是一些状态和数据的交换,或者仅是一个简单的唤醒信号;多者可交换大量信息。前者称为进程同步与进程互斥,亦称进程间低级通信;后者通信方式称为进程间高级通信。
(答出要点给
3
分,根据组织情况再给
2
分)
(2)
要点:①由操作系统在系统空间维护一组缓冲区;
②由操作系统提供两个进程高级通信原语
send
和
receive;
③发送进程要发送消息时,执行
send
系统调用命令,产生自愿性中断进入操作系统
核心;
④操作系统为发送进程分配一个空缓冲区,并将所发送的消息内容从发送进程空间拷贝到该缓冲区中;然后将此缓冲区连接到接收进程的消息队列尾;发送进程就完成了发送,返回到用户态继续执行;
⑤当接收进程执行到
receive
系统调用命令时,也产生自愿性中断,进入操作系统核心;
⑥操作系统将载有消息的缓冲区从消息队列中取出,并将消息内容拷贝到接收进程空间中,然后收回空闲缓冲区;接收进程完成了消息接收,返回到用户态继续执行;
(①、②、④、⑥为
2
分;③、⑤为
1
分)
(3)
要点:①消息缓冲区的数据结构为:
typemessage=recoud
sender(
消息发送者
)
size(
消息长度
)
text(
消息正文
)
pointer(
消息队列指针
)
end,
②设置信号如下:
*
每个接收进程有一个
m-mutex
:互诉对消息队列的操作,初值为
1
;
*buffe
:管理空闲缓冲区,初值为空闲缓冲区个数;
*b-mutex
:互诉操作空闲缓冲区,初值为为
1
;
*message
:管理接收进程消息,初值为
0
;
③
send(receiver,a)
begin
根据参数
r
寻找接收进程,如果未找到,则出错返回;
p(buffer)
;
p(b-mutex)
;
从消息缓冲区链上摘取一个空闲消息缓冲区;
v(b-mutex)
;
将消息长度及消息正文由
a
指示由发送区拷贝到消息缓冲区中;
将发送进程的名字也记录在该缓冲区中;
p(m-mutex)
;
将消息缓冲区挂到接收进程消息链的尾部;
v(m-mutex)
;
v(mmssage)
end.
④
receive(a)
begin
p(message)
;
p(m-mutex)
;
从消息队列中取一个载有消息的缓冲区;
v(m-mutex)
;
将消息长度及肖息正文由消息缓冲区拷贝到接收区
(
由
a
指示
)
;
p(b-mutex)
;
将空闲缓冲区挂到系统消息缓冲区链尾;
v(b-mutex)
;
v(buffer)
;
end.
(
①
3
分②
4
分③
4
分④
4
分③,④重点在
p
,
v
操作
)
2.(2000
年
)
(1).
进程调度的主要功能。(
8
分)
(2).
何时可进行进程调度?(
8
分)
(3).
进程调度算法解决以何种次序对各就绪进程进行处理机的分配以及按何种时间比例让进程占用处理机。时间片轮转进程调度算法的基本思想是什么?时间片的大小对系统有什么影响?在选取时间片时应考虑哪些因素?(
14
分)
答案
:(1).
进程调度的主要功能是
:
①
.
记录系统中所有进程的执行状况
;(2
分
)
②
.
根据一定的调度算法
,
从就绪队列中选出一个进程来
,
准备把
cpu
分给它
;(2
分
)
③
.
把
cpu
分配给进程
,
即把选中的进程控制块内在关的现场信息
,
如程序状态字
,
通用寄存器的内容送入处理器相应的寄存器中
,
从而让它占用
cpu
运行
.(4
分
)
(2).
进程调度的时机是
:
①
.
正在执行的进程运行完毕
;(1
分
)
②
.
正在执行的进程调用阻塞原语或
p
原语操作将自己阻塞起来进入等待状态
;(2
分
)
③
.
执行中的进程提出
i/o
请求后被阻塞
;(1
分
)
④
.
在分时系统中时间片已经用完
;(2
分
)
以上都是在
cpu
为不可剥夺方式下引起进程调度的原因
.
在
cpu
方式为可剥夺时
,
有以下原因
:
⑤
.
就绪队列中的某个进程的优先级变得高于当前运行进程的优先级
,
从而也将引起进程调度
.(2
分
)
(3).
时间片轮转法
(rr):
这主要是分时系统中使用的一种调度算法
.
时间片轮转法的基本思想是
:
将
cpu
的处理时间划分成一个个时间片
(2
分
),
就绪队列中的诸进程轮流运行一个时间片
(2
分
).
当时间片结束时
,
就强迫运行进程让出
cpu,
该进程进入就绪队列
,
等待下一次调度
(1
分
).
同时
,
进程调度又去选择就绪队列中的一个进程
,
分配给它一个时间片
,
以投入运行
(1
分
)
在轮转法中
,
时间片长度的选择非常重要
,
将直接影响系统开销和响应时间
(1
分
).
如果时间片长度很小
,
则调度程序剥夺处理机的次数频繁
,
加重系统开销
(2
分
);
反之
,
如果时间片长度选择过长
,
比方说一个时间片就能保证就绪队列中所有进程都执行完毕
,
则轮转法就退化成先进先出算法
(2
分
)
影响时间片大小设置的主要因素有
:
系统响应时间
(1
分
),
就绪进程数目
(
终端数目
)(1
分
)
和计算机处理能力
(1
分
).
3.(2001
年
)
从资源管理的观点来看,操作系统的管理对象是计算机系统的资源,操作系统则是管理系统资源的程序集合。
(1).
试问操作系统所管理的资源有哪些?(
4
分
)
(2).
操作系统从哪几个方面对资源进行管理?主要完成什么工作?(
12
分)
(3).
以存储管理中的段式存储管理为例,请叙述操作系统对内存的具体管理方案(包括功能、数据结构和算法)。(
14
分
)
答案
:
(1).
操作系统所管理的资源分为硬件资源和软件资源,硬件资源包括:
cpu
、内存、各种外部设备,软件资源主要是信息(程序和数据)。(
4
分)
(2).
操作系统在共享的前题下,以资源分配、使用和回收为出发点,考虑操作系统各部分程序的功能和算法,解决并发环境中的资源管理问题。
虽然操作系统所管理的各类资源的性质各不相同,但所需要解决的问题以及资源管理的策略又都具有类似之处。因此,每种资源管理模块都要研究以下几方面的内容:
①记住资源的使用状态,即记住哪些资源处于空闲,哪些资源已被使用和被谁使用等;
②确定资源的分配策略,即根据各类资源的不同特点确定一组原则,以决定如何进行资源的分配和调度;
③执行资源的分配,即根据用户的要求和资源分配策略,具体执行资源的分配工作;
④回收资源,即当某些用户作业已不再需要某种资源时,系统及时地回收资源,以便重新分配给其它的作业使用。
(
答出一项给
3
分。
)
(3).
首先从内存划分、程序逻辑地址划分、内存分配几方面考虑段式存储管理方案的工作原理:
①内存划分:内存空间被动态地划分为若干个长度不相同的区域,每个区域称作一个物理段、每个物理段在内存中有一个起始地址,称作段首址。将物理段中的所有单元从
0
开始依次编址,称为段内地址。(
2
分)
②逻辑地址空间划分:用户程序按逻辑上有完整意义的段来划分。称为逻辑段。例如主程序、子程序、数据等都可各成一段,每段对应于一个过程,一个程序模块或一个数据集合。将一个用户程序的所有逻辑段从
0
开始编号,称为段号。将一个逻辑段中的所有单元从
0
开始编址,称为段内地址。
(2
分
)
用户程序的逻辑地址由段号和段内地址两部分组成:段号,段内地址
③内存分配:系统以段为单位进行内存分配,为每一个逻辑段分配一个连续的内存区
(
物理段
)
。逻辑上连续的段在内存不一定连续存放。(
2
分
)
然后,从实现方法上考虑:
④建立段表(
2
分)
系统为每个用户程序建立一张段表,用于记录用户程序的逻辑段与内存物理段之间的对应关系,包括逻辑段号,物理段首地址和物理段长度三项内容。用户程序有多少逻辑段,该段表里就登记多少行,且按逻辑段的顺序排列。段表存放在内存系统区里。
⑤建立空闲区表(
6
分)
系统中设立一张内存空闲区表,记录内存中空闲区域情况,用于为段分配和回收内存。系统在寻找空闲区时可采用以下三种分配算法。
①首先适应算法
根据申请,在空闲区表中选取第一个满足申请长度的空闲区。此算法简单,可以快速做出分配决定。
②最佳适应算法
根据申请,在空闲区表中选择能满足申请长度的最小空闲区。此算法最节约空间,因为
它尽量不分割大的空闲区。其缺点是可能会形成很多很小的空闲区域,称作碎片。
③最坏适应算法
根据申请,在空闲区表中选择能满足申请要求的最大的空闲区。该算法的出发点是:在大空头区中装人信息后,分割剩下的空闲区相对也大,还能用于装入新的信息。该算法的优点是可以避免形成碎片;缺点是分割大的空闲区后,再遇到较大的申请时,无法满足的可能性较大。
4.(2002
年
)
目前,大多数计算机系统都支持虚拟页式地址转换机制。试回答下列问题:
(1).
页式存储管理方案中,用户地址空间怎样划分?内存地址空间怎样划分?内存分配过程是怎样的?(
10
分)
(2).
页表应设计哪些数据项,每个数据项的作用是什么?(
10
分)
(3).
页式存储管理方案中,地址映射机制需要哪种寄存器的支持?为了加快地址映射速度,需要采取什么措施?该措施的作用是什么?(
10
分)
答案
:
(1).
系统将用户程序的逻辑空间按照相等大小划分成若干界面,称为逻辑页面。(
2
分)各个逻辑页面从
0
开始依次编号,每个逻辑页面内也从
0
开始编址,称为页内地址。用户程序的逻辑地址由逻辑页号和页内地址两部分组成。(
2
分)
页式存储管理将内存空间按照逻辑页面大小划分成等长的若干区域,每个区域为一个内存块。(
2
分)内存的所有内存块从
0
开始编号。(
1
分)
内存分配时,以页面(块)为单位,并按用户程序所需页数多少进行分配。(
2
分)逻辑上相邻的页面在内存中不一定相邻,即分配给用户程序的内存块不一定连续。(
1
分)
(2).
页表表项有:
逻辑页面号;(
2
分)
物理页面号(或块号);(
2
分)
驻留位(中断位或特征位):指示该页在内存还是在外存;(
2
分)
外存地址:指示该页在外存的地址;(
2
分)
修改位:指示该页在内存驻留期间是否被修改过;(
2
分)
(3).
系统提供一对硬件寄存器:页表始址寄存器和页表长度寄存器。(
2
分,答对
1
个为
1
分)
①页表始址寄存器,用于保存正在运行进程的页表在内存的首地址。当进程被调度程序选中投入运行时,系统将其页表首地址从进程控制块中取出送入该寄存器。(
2
分)
②页表长度寄存器,用于保存正在运行进程的页表的长度。当进程被选中运行时,系统将它从进程控制中块中取出送入该寄存器。(
2
分)
为了加快地址映射速度,可在地址映射机制中增加一个小容量的联想寄存器(相联存储器),(
2
分)它由高速寄存器组成,成为一张快表,快表用来存放当前访问最频繁的少数活动页的页号。(
2
分)
5.(2003
年
)
有一个文件系统,根目录常驻内存,如图所示。目录文件采用链接结构,假设每个目录下最多允许建立60个文件或目录(统称为下级文件)。又假设每个磁盘块最多可存放10个文件目录项:如果下级文件是目录文件,则上级目录项指向该目录文件的第一块地址;
如果下级文件是普通文件,则上级目录项指向该文件的fcb(文件控制块)地址。假设图中所示的文件目录结构中,文件或子目录按自左向右的次序建立,而符号'…'表示尚有其他文件或子目录未列出。
(1).假设普通文件采用unix的三级索引结构,主索引表放在文件控制块中。
①假设每个物理块能存放128个地址(物理块块号),那么,普通文件的大小最大为多少块?(3分)
②若要读/a/d/g/i/k的第7461块,系统最少启动硬盘几次,最多几次?(6分)
(2).若普通文件采用顺序结构,若要读/a/d/g/i/k的第285块,最少启动硬盘几次,最多几次?(6分)
(3).为了打开文件,用户给出文件名后,操作系统应做哪些工作?(6分)
(4).一般在文件系统中,为了加快文件目录检索速度(减少启动硬盘的次数),可以采用什么方法?(9分)
答案:
(1).①10+128+1282+1283块
②最少启动硬盘8次,最多启动硬盘23次
(2).最少启动硬盘6次,最多启动硬盘21次
(3).打开文件时,用户首先给出文件名,操作系统完成以下工作:
①查找目录,检查文件是否存在,如不存在,则报告错误;
②如该文件存在,检查操作的合法性,例如,若该文件为只读文件,但用户却将'读写方?quot;置为写,则系统不予打开;
③根据文件名在目录文件中找到该文件的文件控制块,把该文件的文件控制块调入内存。
(4).一般在文件系统中,为了加快文件目录检索速度,减少启动硬盘的次数,可以采用两种方法。
①引入'当前目录'。在一个多层次的树形文件目录结构中,如果每次都从根结点开始检索,很不方便,通常各目录文件放在外存,故影响访问速度,尤其是当层次较多时检索要耗费很多时间。为克服这一缺点,引入'当前目录'或称'工作目录'的概念。查找文件时可以从当前目录开始向下检索。这样检索路径缩短,检索速度提高。
②采用'目录项分解?quot;。一个文件控制块一般要占很多空间,这样一个目录文件往往很大。在检索目录时,为了找到所需要的目录项,常常要将存放目录文件的多个物理块逐块读入内存进行查找,这就降低了检索速度。可以利用目录项分解法解决这一问题,即把目录项(文件控制块)分为两部分:名号目录项,包含文件名以及相应的文件内部号;基本目录项,包含了除文件名外文件控制块的其他全部信息。
6.(2004
年
)
在多道程序系统中,一组进程中的每一个进程均无限期的等待被该组进程中的另一进程所占有、且永远不会释放的资源,这种现象将导致系统处于死锁状态。试述:
(1)产生死锁的原因是什么?(10分)
(2)产生死锁的必要条件是什么?(10分)
(3)如何处理死锁?(10分)
答案
:
(1).
产生死锁的原因
:
一是系统提供的资源数量有限
,
不能满足每个进程的使用
(5
分
);
二是多道程序运行时
,
进程推进顺序不合理
(5
分
).
(2)
产生死锁的必要条件是
:
1)
互斥条件
(2.5
分
)
2)
不剥夺条件
(
不可抢占
)(2.5
分
)
3)
部分分配
(2.5
分
)
4)
循环等待
(2.5
分
)
(3)
死锁的处理
:
1)
死锁的预防
2)
死锁的避免
3)
死锁的检测
4)
死锁的解除
5)
不做任何处理
(
以上要点每答对
1
个给
2.5
分
,
答对
4
个及以上要点最多给
10
分
)
二
.
软件工程论述题真题
1.
(1999
年
)
软件测试是软件质量保证的重要措施。测试的目的是在软件投入生产性运行前
,
应尽可能地发现并排除软件中隐含的各种错误。测试是对软件规格说明、设计和编码的全面和最后的审查。因此
,
软件测试应贯穿在整个软件开发的全过程。
⑴试陈述软件测试的基本任务和方法。
(6
分
)
⑵简述黑箱测试和白箱测试的内容和方法。
(10
分
)
⑶陈述软件测试过程的基本组成
,
并介绍各种测试对象的测试内容和方法
(15
分
)
答案
:(1)
软件测试是软件开发过程中的重要阶段
,
是软件质量保证的重要手段
.
其任务可归纳为三个方面
:
1)
预防软件发生错误
2)
发现改正程序错误
3)
提供错误诊断信息
目前
,
软件测试的方法有三种
:
动态测试
,
静态测试和正确性证明
.
(2)
黑箱测试是一种功能测试
,
测试时完全不考虑程序内部细节
,
结构和实现方式
,
仅检验程序结果与说明书的一致性
.
测试实例设计完全以说明书为准
.
黑箱测试不关心程序内部的逻辑
,
而只是根据程序的功能说明来设计测试用例
.
在使用黑箱法时
,
手头只需要有程序功能说明就可以了
.
黑箱法分以下几种
:
等价分类法
.
边缘值分析法
,
因果图法
,
错误推测法
.
白箱测试是一种结构测试
,
它与程序内部结构相关
,
要利用程序结构的实现细节知识设计测试实例
.
它将涉及程序设计风格
,
控制方法
,
潭语句
,
数据库设计
,
编码细节
.
白箱测试时将包括
:
1)
语句测试——要求程序中每个语句最少检查一次
.
2)
分支测试——要求程序中每个分支路径最少检查一次
.
3)
路径测试——要求程序中每条路径最少检查一次
.
白箱测试考虑的是测试实例对程序内部逻辑的覆盖程度
.
为了衡量测试的覆盖程度
,
需要建立一些标准
.
覆盖程序从低到高分别为
:
语句覆盖
,
判定覆盖
,
条件覆盖
,
判定
/
条件覆盖
,
条件组全覆盖
.
(3)
1)
单元测试
通过测试发现该模块单元的子程序或过程的实际功能与该模块的功能和接口的描述是否相符
,
以及是否有编码错误存在
.
2)
集成测式
集成测试是在组装软件模块的同时
,
进行测试以查找与接口有关的错误
.
组装模块的过程可以分为自顶向下组装法和自底向上组装法
.
3)
有效性测试
有效性测试是指
:
当软件的运行达到了用户的期望时
,
则认为软件是有效的
.
4)
系统测试
系统测试是指将软件系统与硬件
,
外设或其他系统元素结合在一起
,
对整个软件系统进行测试
.
5)
验收测试
系统测试通过后
,
用户根据合同进行验收测试
,
确定系统功能和性能的可接受性
.
2.(2000
年
)
原型化方法或称快速原型化方法是一种当前常用的软件工程方法,尽管其特征民传统的结构化生命周期法有所不同,但从原型化方法的演变仔细分析,仍可看出它与结构化方法的内在联系,试回顾两种方法的发展特征和演进历史并论述下述问题:
(1)两种方法的基本特征和内在联系。(14分)
(2)结构化生命周期方法的优点及其适应对象。(8分)
(3)实施快速原型法的前提和条件。(8分)
答案
:
(1)
结构化方法的基本特征
:
是一类预先严格定义需求的方法
,
它强调用户需求第一
,
并在需求分析报告中即基本冻结了用户的需求
,
其开发的阶段划分
,
文档的规范都基于需求定义的明确
.
快速原型方法的基本特征
:
是一类动态定义需求的方法
,
它强调快速获取用户基本需求
,
快速建立需求模型
,
并与用户交互
,
迭代并修改和完善模型
.
两种方法间的联系
:
结构化方法实施的过程
,
培养了一批熟悉业务
,
掌握领域知识的人员
,
他们是实施原型化的理想人员
;
结构化方法实施中形成了一批软件开发工具
.
它们使快速开发原型系统成为可能
;
结构化方法的应用积累了一批原型系统
,
为原型化方法实施提供了基础
;
原型化方法是一类需求定主的快速方法
,
一旦需求定义明确
;
即可实施严格的结构化方法
.
(2)
结构化生命周期方法的主要优点是
:
方法强调需求分析的重要性
,
即体现软件开发中用户至上的原则
;
开发过程的阶段划分
,
各阶段的具体任务明确
;
各阶段有具体的描述工具易于掌握
;
强调文档的重要性
,
并给出文档的内容和格式
,
因此方法具有易操作性
,
是软件开发人员应该掌握的基本方法
.
结构化方法更适合于需求能够预先明确定义的软件系统
,
如系统软件或某些实时控制软件等
.
(3)
实施快速原型法的基本前提条件一般是
:
有高水平的实施原型化的人员
,
他们掌握工具
,
了解业务
,
能快速获取用户需求
;
有快速建造模型系统的工具
,
二者缺一不可
.
有相应原型系统的积累可加速实施
,
但不是实施原型化方法的前提
3.(2001
年
)
软件产品生产周期长、耗资巨大,必须特别注意保证质量,而通常保证软件质量的措施可归为四方面,即复审、复查、管理复审和测试,不同的方面反映了软件质量保证措施中的不同需要,试回答以下问题并适当加以阐述:
(1)、复审、复查、管理复审和测试各自包括的具体内容是什么,它在哪些方面对软件质量的保证产生了作用?(12分)
(2)、软件复审和软件测试之间有什么联系,又有什么差别?各自有什么侧重?(6分)
(3)
、软件测试的目的是什么,对其具体的内容和实现过程做—扼要陈述,无需对测试方法做出介绍、(
12
分)
答案
:
本题主要考查考生对软件质量保证措施的全面了解程度。软件质量保证措施除了常规的对编码进行测试外,还有软件生命周期阶段成果的复审,对各阶段文档和材料的复查,从管理的角度对软件开发工作的复审以及对编码的测试,要求学生建立软件质量保证的整体概念。
(1)、关于复审、复查、管理复审和测试共12分,每方面给3分。
1)复审是搭在编码以前对分析、设计成果的非正规和正规审查,其重点是发现系统性的错误或缺点。
2)复查是指对阶段产生的文档和材料的检查,以保证下阶段工作的开始。
3)管理复查是指从项目管理的角度,从总体、成本和进度等方面进行检查。
4)测试是指对编码的查错和排错,应说测试的内容和过程,如单元测试、集成测试、系统测试等。
(2)、软件复审是软件在编码前对分析文档和设计文档的审查,其目的是发展和纠正在分析和设计阶段中可能产生的系统性错误,它是软件测试的固有和重要内容和步骤。软件测试是对基于正确设计基础上所开发的程序的测试。二者是从不同方面对软件质量的保证。
涉及到上述内容即可得6分,缺少可适当扣分。
(3)、软件测试的目的从编码阶段来说是发现程序中可能出现的错误并排除错误。测试的具体内容是从不同范围和对象中来发现可能存在的错误并排除之,包括:单元测试即对模块进行测试,再对由模块集成的子系统进行测试,再将子系统集成起来进行系统测试,测试中将应用到测试实例和测试数据。涉及到上述内容即可得12分,部分者可适当扣分。
4.(2002
年
)
软件维护是软件生命周期的重要组成,而影响维护的因素较多,除了人员因素、技术因素和管理因素外,还有程序自身的因素,具体影响因素可归纳为:
1
)软件系统的规模;
2
)软件系统的年龄;
3
)软件系统的结构;
试回答以下问题:
(1).给出上述三项因素的解释,阐述“规模”、“年龄”和“结构”的具体含义。(10分)
(2).扼要分析影响维护工作量的因素,即分析可能增加维护工作量的因素和可能减少维护工作量的因素。(10分)
(3).简单叙述软件可维护性度量的含义。(10分)
答案
:
(1).系统的规模。指软件系统规模的大小,系统规模越大,维护困难越大。
系统的年龄。系统运行时间越长,可能经过多次修改,从而造成维护的困难。
系统的结构。系统结构合理与否,会给维护带来困难。(符合上述要求的给10分,不足者可适当减分。)
(2).增加维护工作量的因素有:
软件系统的年龄和规模、结构合理性、程序复杂性、用户的数量、应用的变化和文档的质量。
减少维护工作量的因素有:
结构化技术的使用,自动化工具使用,数据库技术应用,高性能软件使用,新的软件技术的应用。(满足上述内容的给10分,否则根据回答的比例适当减分。)
(3).可维护性度量表示软件系统维护工作的强度或维护工作量的大小。人们为了度量可维护性,常将可维护性度量问题分解为对:可测试性、可理解性、可修改性、可移植性、可靠性、有效性和可用性的度量。(前三项每项2分,后四项每项1分。)
5.(2003
年
)
软件维护是对交付使用以后的软件系统所做的改变,从某种意义上讲,维护比开发更为困难,更需要计划和经验,也需要工具的辅助并加强管理,它需要进行创造性的工作,试根据你对软件维护的理解,回答并讨论以下问题:
(1).试划分软件维护阶段所执行的任务的归类。(注意,并不需要罗列软件维护的细节内容)(15分)
(2).试陈述软件维护管理所涉及的四个方面,并简述各方面所包括的具体内容。(15分)
答案
:
(1).本题属于软件维护技术的相关内容,在软件维护阶段的任务归类中,将软件维护阶段的任务执行分为三部分:理解现有系统;修改现有系统;重新确认修改部分。
(2).软件维护管理包括四部分内容,它们是:
1)控制程序的改变
①论证程序改变的合理性改变来自多方面,要分析其要求的合理性,并不一定接收所有的改变要求。并应注意:
ⅰ.维持目标中版本的选择方式,是单一版本,还是多用户版本。
ⅱ.近期是否有替换该程序的计划,如有可推迟改变。
ⅲ.是否改变程序的范围和目标,如是,则应慎重决定。
②对改变进行控制,除紧急任务外,其改变需按计划执行,改变控制应包括:
ⅰ.研究程序如何改变,并安排计划。
ⅱ.向改变申请者提供报告,改变计划或拒绝理由。
ⅲ.执行计划。
2)程序质量检查
①保证程序设计标准。
②对改变过程进行检查。
3)安排维护计划
①研究改变申请,确定实现改变的可行性和费用。
②制定维护计划应考虑的因素:
ⅰ.程序的稳定(持久)性。
ⅱ.程序的错误类型。
ⅲ.申请改变的用户数量。
4)建立维护机构
①建立专职维护结构--维护小组。
②设立专职维护人员。
③制定维护政策。
6.(2004
年
)
软件工程项目在实施中必须进行科学的管理,以保证工程的进度和质量。软件的配置管理是软件管理的重要内容之一。试述:
(1)软件配置和软件配置管理的概念。(12分)
(2)列举10个软件配置的配置项。(10分)
(3)软件配置管理的基本任务是什么?(8分)
答案
:
(1)
一个完整的软件系统的构成就是软件配置
.(4
分
)
软件配置管理是软件生命周期内管理变化的一组活动
.
包括
:
1)
标识变化
;
2)
控制变化
;
3)
确保实现了变化
;
4)
报告变化
;(4
分
)
软件在设计
,
生产和使用中
,
会产生不同的版本
.
软件配置管理应对不同的软件版本进行标识和管理
.(4
分
)
(2)
软件配置由配置项组成
,
软件配置项有
:
·系统规格说明书
·项目开发计划
·软件需求说明书
·原型系统
·总体
(
或概要
)
设计说明书
·详细设计说明书
·源程序清单
·测试计划
·测试报告
·操作手册
·用户手册
·目标程序
·软件问题报告
·维护请求
·软件变更通知
·软件工程标准
·项目开发总结
(
以上配置每回答项出
1
个给
1
分
,
越过
10
个最多给
10
分
)
(3)
软件配置管理的基本任务包括
:
1)
制定文件书写标准和标识方法
.(2
分
)
2)
控制配置变更
,
记录与评价软件配置的
.(2
分
)
3)
实现对已完成文档的存取管理和跟踪版本变化
.(2
分
)
4)
对版本进行检查和维护
.(2
分
)