admin 管理员组文章数量: 1086019
2024年12月31日发(作者:各大互联网公司编程语言)
第1章 习题部分答案
1. 操作系统的发展分为那几个阶段?
解:操作系统的发展经历了三个阶段:操作系统的酝酿阶段、操作系统的形成阶段、操
作系统的理论化和标准化阶段。
2. 计算机软件技术开发系统包括那几个阶段?
解:计算机软件开发系统的发展经历了四个阶段:机器语言阶段、汇编语言阶段、高级
语言阶段、面向对象语言和可视化语言阶段。
3. 计算机软件技术的主要范畴是什么?
解:计算机软件技术的主要范畴包括软件工程技术、程序设计技术、软件工具环境技术、
系统软件技术、数据库技术、实时软件技术、网络软件技术、与实际工作相关的软件技术等
八个领域的内容。
4. 从软件技术的发展现状来看有哪些值得我们注意的问题?
解:从软件技术的发展现状来看有以下几个值得我们注意的问题:
1)软件危机
2)软件技术标准,软件版权和软件价值评估
3)软件技术的基础研究。
1
第2章 习题部分答案
1. 什么是软件危机?软件危机的表现有哪些?
解:软件开发技术的进步为能满足发展的要求,在软件开发中遇到的问题找不到解决的
方法,问题积累起来形成了尖锐的矛盾,导致了软件危机。
2. 软件危机产生的原因是什么?
解:造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术
和人员引起的。
1)软件规模越来越大,结构越来越复杂。
2)软件开发管理困难而复杂。
3)软件开发费用不断增加。
4)软件开发技术落后。
5)生产方式落后。
6)开发工具落后,生产率提高缓慢。
3. 常见的软件过程模型有哪些?
解:常见的软件过程模型有瀑布模型、增量模型、演化过程模型、敏捷开发
4. 如何对软件质量进行评价?
解:软件质量的评价主要围绕可维护性、可靠性、可理解性和效率这几个方面进
行。
2
第3章 习题部分答案
1. 软件可行性研究的目的是什么?软件可行性研究的任务又是什么?
解:软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是
否能够开发,是否值得去开发。
可行性研究的任务首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项
目的约束和限制,把他们清楚地列举出来。分析员进行简要的需求分析,抽象出该项目逻辑
结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,找出若干种可供选择的主要解决
办法,对每种办法都要研究它的可行性。主要从技术可行性、经济可行性2个方面来分析每
种方法的可行性。
2. 什么是数据流图?
解:数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的
方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它
是一种功能模型。
3. 什么是模块化?
4. 结构化程序设计方法的基本要点是什么?
解:结构化设计方法是软件分析中公认的、有效的、技术成熟的、适用广泛的一种方法,
它较适合于开发数据处理类型软件的需求分析。该方法利用图形等半形式化工具表达需求,
特点是简明、易读,也易于使用,为后阶段的设计、测试、评价提供了有利条件。但SA方
法也暴露出它自身的弱点,在解决需求分析过程中的诸多难点方面能力不足,主要表现在:
1)它仅是一个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述
实时控制系统。
2)SA方法使用DFD在分析与描述“数据要求”方面是有局限的,DFD应与数据
库技术中的实体联系图(ER图)结合起来,这样才能较完整地描述用户对系统的需求。
3)DFD不适合描述人机界面的系统需求。SA方法往往对这一部分用自然语言作
补充,对这类系统可采用其他的分析方法。
4)为了更精确地描述软件需求,提高软件系统的可靠性、安全性,也便于实现自
动化,SA方法可与形式化方法结合起来。
5)借助于需求分析工具,提高需求分析的质量和效率
5. 简述黑盒测试法和白盒测试法。
解:黑盒法是指测试人员将程序看成一个“黑盒”,也就是说,他不关心程序内部是怎
样做的,而只想检查程序是否符合它的“功能说明”。所以黑盒法测试时,测试用例都是完
全根据程序的功能说明来设计的。如果想用黑盒法发现程序中的所有错误,则必须用输入数
据的所有可能值来检查程序是否都能产生正确的结果。白盒法是指测试人员必须了解程序
的内部结构,此时,测试用例是根据程序的内部逻辑结构来设计的。如果想用白盒法发现程
序中的所有错误,则至少必须使程序中每种可能的执行路径都执行一次。
6. 软件测试过程要经过那些步骤?这些测试与软件开发各阶段有什么关系?
解:测试过程应该与分析、设计、编程的过程具有类似的结构,以便针对每一阶段可能
产生的错误,采用某些特殊的测试技术,所以测试过程通常可以分三步进行:
3
(1) 模块测试(Module Testing);
(2) 联合测试(Integration Testing);
(3) 系统测试(System Testing)。
4
第4章 习题部分答案
5. 举例说明类与对象的关系,并画出类的层次图。
解:类(class)是对象的抽象及描述,是具有共同属性和操作的多个对象的相似特性的统
一描述体。类也是对象,是一种集合对象,我们称之为对象类(object class),简称为类,它
有别于基本的实例对象(object instance)。
在类的描述中,每个类要有一个名字,要表示一组对象的共同特征,还必须给出一个生
成对象实例的具体方法。类中的每个对象都是该类的对象实例,也就是说,系统运行时通过
类定义属性初始化可以生成该类的对象实例。实例对象是自描述数据结构,每个对象都保存
自己的内部状态,一个类的各个实例对象都能理解该所属类发来的消息。
8. 什么是面向对象的系统分析和设计? 面向对象的系统分析和设计的主要目的和应完
成的主要工作是什么? 系统分析和设计应遵循的原则是什么?
解:面向对象的系统分析和设计是将面向对象的方法运用到软件工程的分析和设计阶
段。面向对象的系统分析和设计的主要目的是完成对某个特定应用论域(application domain)
的分析和对系统的建模。具体来说,在该阶段需要完成的任务是描述系统中的对象、对象的
属性和操作、对象的动态特性、对象间的构造关系及通信关系等,从而建立系统的静态结构
和动态活动模型。在系统分析阶段,需要解决的问题集中在确定系统所需要完成的工作上;
而在系统设计阶段,则需要决策如何完成系统预定的功能。
系统分析和设计应该遵循的原则有:
(1) 系统的开发是面向客户的,应从客户的角度考虑。
(2) 诸如系统开发生命周期之类的产品更新换代机构应该在所有的信息系统开发项目
中建立起来。
(3) 信息系统开发的过程并不是一个顺序的过程,它允许步骤的重叠、倒转等。
(4) 如果系统的成功可能性受到很大限制时,应取消整个项目。
(5) 文档材料是系统开发生命周期各阶段中重要的可递交成果,应加以重视。
9. 简述面向对象系统分析的基本任务,并描述该阶段的主要成果——OOA模型的组成
及结构。
解:OOA的任务是采用面向对象方法,把对问题论域和系统的认识理解,正确地抽象
为规范的对象(包括类、继承层次)和消息传递联系,形成面向对象模型,为后续的面向对象
设计(object-oriented design,简称OOD)和面向对象编程(object-oriented program, 简称OOP)
提供指导。
10. 如何建立系统模型? 系统模型的组成及各组成部分之间的关系如何?
解:为了认清问题的真实面目,抓住问题的本质,我们可以通过系统分析,对真实系统
进行简化,建立系统模型。系统模型一般包括以下六个组成部分:系统输入、处理过程、系
统输出、系统控制、系统响应和系统界面,如下图所示。
5
系统界面
系统
处理过程
系统输出
系统控制
系统输入
图 系统的基本组成部分及相互间的关系
11. 简述系统分析的步骤,并说明系统分析应提交的成果。
解:对于系统分析,可以分为以下步骤:
(1) 系统计划:寻求可以对事务产生更大利益的同等的或更优的技术和事务应用。
(2) 可行性研究(可选):从技术、操作和经济等各方面综合考虑,确定开发一个信
息系 统的优点,并分析其目标、客观情况及限制条件,确定该项目是否可行。有时,
若项目是由于内部或外部的因素而带有强制性的性质时,该步骤可以省略。
(3) 需求分析:是系统分析过程中最重要且最困难的步骤,也是整个系统分析和设
计过程中最重要和最困难的步骤。在该阶段,系统分析员和客户一起确定信息系统的需
求并进行归档。
(4) 客户接受:客户对需求文档的正式或非正式批准。
(5) 原型设计(可选):为了更好地理解客户的要求或增加客户接受预期系统的可能
性而开发信息系统原型。
系统响应
6
第5章 习题部分答案
1. 多道程序设计技术的主要特征?
解:多道程序设计技术的主要特征是并发性、共享性、独立性、相互制约性。
2. 实现线程互斥的基本模型?
解:保证互斥的一个基本模型是,一个线程在使用一个资源之前必须首先发出对这个资
源的使用请求(也被称为加锁),而在使用完之后释放这个资源(被称为解锁)。这样,
一个线程只能依据下列的顺序使用一个资源:
(1) 请求。如果请求不能被立即满足(例如,这种资源正在被其他线程使用),那
么,提出请求的线程必须等待,直到它的请求被满足为止。
(2) 使用。线程可以对资源进行处理(例如,向文件中写数据)。
(3) 释放。线程将它所请求得到的资源释放掉。
3. 典型同步问题有哪些?
解:典型同步问题包括互斥问题、多读者/作者问题和生产者/消费者问题。
4. 产生死锁的必要条件?
解:一般来说,造成死锁的情况虽然比较复杂,但归纳起来死锁的产生有以下四种必要
条件:
(1) 互斥条件:至少一个资源被以非共享(互斥)的方式所拥有,即在一个时刻,只能
有一个线程使用这个资源。如果另一个线程请求这个资源,正进行请求的线程必须等
待,直到资源被释放。
(2) 请求和保持条件:必须存在一个线程,这个线程至少拥有一个资源,同时正在请求
获得当前正被另一个线程所拥有的其他资源。
(3) 不剥夺条件:线程已获得的资源,在未使用完以前,不能被剥夺,只能在使用完后
由自己释放。
(4) 循环等待条件:必须存在一组正等待的线程{p0, p1, p2, …, pn},p0正等待p1所拥
有的资源,p1正等待p2所拥有的资源,……,pn-1正等待pn所拥有的资源,pn正等
待p0所拥有的资源。
7
第6章 习题部分答案
1. 简述下列概念:
数据 数据元素 数据结构 逻辑结构 存储结构 线性结构 非线性结构 算法
2. 试举一个数据结构的例子,叙述其逻辑结构、存储结构、运算这三个方面的内容。
3. 判断以下说法的正误:
解:
(1)错;数据元素是数据的基本单位,数据项是数据的基本单位。
(2)对。
(3)错;数据的逻辑结构是指数据元素之间的逻辑关系,是独立于具体计算机的。
(4)对。
(5)错;算法的时间复杂度取决于问题的规模。
(6)错;程序往往是指用某种机器语言书写的一个算法或一组算法的有机组合,可以
是有穷也可以是无穷的。算法并不一定表现为一个程序,它可以采用多种语言和方式描述,
算法必须是有穷的。
(7)对。
4.什么叫算法?算法必须满足哪些准则?如何衡量一个算法的好坏?算法与程序有何不
同?
解:算法是对特定问题求解步骤的一种描述,由若干条指令组成的有限序列。它必须满
足以下性质:输入性、输出性、有穷性、确定性、无二义性和可行性。
7.用类C语言设计算法求x和这两个整数的较大者。
解:算法如下:
int max(int x,int y)
{
if(x>y)
return x;
return y;
}
8
版权声明:本文标题:计算机软件技术基础教程(第二版)习题及答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735678091a1682693.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论