软件工程作业与参考答案(最新版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程-、软件危机与软件工程
1.软件危机是指在开发和(
A.运行
B.设计
2・造成软件危机的原因是:)过程中所遇到的一系列严重问题。
C.维护
D.编码
A.用户使用不当
B.对软件的错误认识
C.硬件不可靠
D.缺乏好的开发方法和手段
3.软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分,其期望达到的最终目标是()。
A.消除软件危机
B.软件开发工程化
C.程序设计自动化
D.实现软件重用
4.软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的()。
A・工程管理B•成本核算 C.人员培训 D.工具开发
5.软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是()。
A.设计人员和用户
C.分析人员和设计人员B.分析人员和用户
D.编码人员和用户
6・软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的逻辑模型形成于()。
A.开发阶段B・计划阶 C.分析阶段 D.设计阶段
段
7.在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。
通常,计划时期包括问题定义、可行性研究和①,开发时期包括②、详细设计、编码以及
① A.需求分枷 B.
究
可行性研 C.经费预算 D. 质量保证
② A.需求分析 B. 可行性研C总体设D模块化设计
究# -------
③ A.文档编制 B. 运行维护 C.测试 D.验收
8.软件开发中常采用的生命周期方法,由于其特征而一般称其为。
()
A.层次模型
B.瀑布模
C.螺旋模
D.对象模型
型型
9・描述软件生存周期的瀑布模型包括计划、(A)、设计、编码、测试、维护等阶段。
其中,设计阶段又可以分成(B)和(C)两个步骤。
A:①需求分析②可行性研究③需求调查④问题定义
② 代码设计 ③概要(总体)设计 ④数据设计 ⑤详细设计
10・什么是软件危机?软件危机产生的原因? 11・生命周期阶段的划分?每个阶段的任务?
二、可行性研究 邂统规模和冃 1.
可行性研尤的任务?步骤?对丁各*中可能n 勺方案,从哪几个方而进行可行性研尤?
参考答案:任务:在尽可能短的时间内确定该软件项冃是台能够开发,是占值得开发。
步 ----------------------------------------------------------- 对于各种可能的方案,主要从以下几个方面进行可行性研究:
2•技术可行性;3•法律可行性;4•运行可行性;5•开发方案可行性等。
1 •复查 5.推荐可行方 1・经济可行性;
B, C :①方案设计 2 •研歹
三、需求分析
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.要让软件具有何种结构
6. 在下面的叙述中哪一个不是软件需求分析的任务(
)。
A.问题分解
B.可靠性与安全性要求
C ・结构化程序设计
7. 软件需求说明书在软件开发中具有重要作用,但其作用不包括(
C.软件验收的依据
D.软件可行性分析的依据
8. 结构化分析方法以数据流图、()和加工说明等描述工具,即用直观的图和简洁的语言来描述软件 系统模型。
A. DFD 图
B. PAD 图
C ・IP0图
D.数据字腆
9. 进行需求分析可使用多种工具,但( )是不适用的。
A.数据流图
B.判定
GTAD —鮒
D.数据字典
表
四、软件设 一一包括概要设计(总体设计)和详细设计 计
1. 软件设计一般分为概要设计和详细设计,它们之间的关系是(
)。
A.全局和局部
B.抽象和具体 C •总体和层次
D.功能和结构
2. SD 方法中,一般分为总体设计和详细设计两个阶段,其中总体设计主要是建立( )。
A ・软件结构 B.软件流程 C.软件模型 D.软件模块
3. 模块独立性是软件模块化所提岀的要求,衡量模块独立性的度量标准是模块的( )。
A.抽象和信息隐蔽
B.局部化和封装化
D.确定逻辑模 型
)O
A.软件设计的依据
B.用户和开发人员对软件要做什么的共同理解
C.内聚性和耦合性D•激活机制和控制方法
4.软件结构设计中,好的软件结构设计应该力求做到()。
A •顶层扇出较少,中层扇出较高,低层模块低扇入
B.顶层扇出较高,中层扇出较少,低层模块高扇入
C.顶层扇岀较少,中层扇出较高,低层模块高扇入
D •顶层扇岀较高,中层扇岀较少,低层模块低扇入
5.软件开发的结构化设计方法,全而指导模块划分的最重要原则应该是()o
A.模块高内聚
B.模块低耦
C.程序模块
D.模块独立性
合
化 ______________
6. HIPO 图应用于软件开发的 )阶段。
(
A.需求分析
B.详细设计
C ・总体设计
D.实现
7. 详细设计工具可分为三类,即图形、表格和语言工具。
图形工具中,
(A 绥简单而应用广泛。
(B ®)
表示法中,每个处理过程用一个盒子表示,盒子可以嵌套。
(C ④)可以纵横毓,图形的空间效果好。
(D ) 是一种设计和描述程序的语言。
A-C :①N-S 图 ②程序流程图 ③HIPO 图 ④PAD 图
D :① c
②PDL
©PROLOG
©PASCAL
8. 软件需求分析方法中,结构化分析是一种常用的方法。
结构化分析产生的系统说明书是由一套 分层的①、一本
②、一组③及补充材料组成的。
在结构化设计阶段产生的文档是④。
①A.流程 B.数据流图 C.软件结 D.事务转换
A.数据流与事务流 B ・变换流与事务 C.信息流与变换 D.交换流域数据流
流 流
10・程序流程图是一种传统的程序设计表示工具,有其优点和缺点,使用该工具时应注意(
)。
C.遵守结构化设计原则
D.数据结构表示
五、编码
1. 程序设计语言的选择是顺利实施编程的重要基础,评价可用语言的因素甚多,而其重要的选择 依据是()。
A.对语言的熟悉程序 B.语言的应用领 C.数据结构的复杂
D.算法的复杂度
域
度
2. 下列叙述中选出五条关于好的程序设计风格的正确叙述 C G H I J )
(
A.尽量多用临时变量
B ;•把常见的局部优化工作留给编译程序去做
C.程序中嵌套的层数应加以限制
D ・程序的书写格式最好所有语句都左对齐,这样也可以节省纸张
E. 在主存储器能容纳得下的前提下,应使模块尽可能大,以便减少模块的个数
F. 模块越小,优点越明显。
一般说来,模块的大小都在10行以下 --------------------
G. 只要模块之间的接口关系不变,各模块内弼实现细节的修改不会影响别的模块
② A.结构说明 B.用户需
求
③
A.小说明 B 索引
④ A 系统模型说明书-
C 系统功能说明书
- 构
C.数將字隗
D.数据流程 C 模块接口 D 层次结构
B 程疗;流程图
D 模块结构图和模块说明书
9.面向数据流的软件设计方法,
-般是把数据流分为(
)两种流,再将数据流图映射为软件结构。
A.支持逐步求精
B •考虑控制流程
H・在编写程序时尽可能对程序代码进行优化
I一无的
J.使用可以看得出意义的标识符
3.程序设计属于软件开发过程的()阶段。
--------
设计 B.编程 C.实现 D.编码
),但不能证明软件)。
(
B・错谋、没有错误
D.设计错误、没有错误
B.找出软件系统中存在的所有错误
D.尽可能多的发现软件系统中的错i吴
)O
B •在完成编码以后制定软件的测试计划
C.取一切可能的数据作为测试数据
D・选择发现错误可能性最大的数据作为测试数据
4・黑盒测试是从( C )观点的测试,白盒测试是从(k观点的测试。
A.开发人员、管理人员
B.用户、管理人员
C.用户、开发人员
D.开发人员
5・使用白盒方法测试时确定测试数据应根据()和指定的覆盖标准。
A.程序的内部逻辑
B.程序的复杂程度
C.软件要芫成的功能
D.数据结构
8・单元测试又称(B-
A.集成测试
B.模块测试
七、维护
1.软件维护指的是()。
A.对软件的改进、适应和完善
C.配置新软件2・软件维护工作的最主要部分是(
A.改正性维护
B.适应性维护
3.下面有关软件维护的叙述正确的是(
C.黑盒法
D.白盒法
六、测试
1.软件测试可能发现软件中的
(A.所有错误、没有错误
C.逻辑错误、没有错误
2・软件测试的目的是
)。
(
A.证明软件的正确性
C.证明软件系统中存在错误
3.为提高测试效率,应该(
C.使用说明书
D.程疗;的功能
6・白盒测试方法重视()的度量。
B.测试数据多少
C.测试费用
D.测试周期
7.黑盒测试法根据()设计测试用例。
A.程序调用规则B•模块间的逻辑关系
),一般采用(什测试。
B.维护正常运行
D.软件开发的一个阶段)O C・完善性维护 D.预防性维护)O
A •设计软件时就应考虑到将来的口J修改性
B.维护软件是一件很吸引人的创造性工作
C.维护软件就是改正软件中的错误
D •谁编写软件就应由谁来维护这个软件
4・软件文档是软件工程实施中的重要成分,它不仅是软件开发各阶段的重要依据,而且也影响软件的()。
A.可理解性
B.可维护性
C.可扩展性
D.可移植性
5.修改软件以适应外部环境或数据环境的变化是指()。
A.改正性维护
B.适应性维护
C.完善性维护
D.预防性维护
6- )阶段是软件生命周期中花费最多、持续时间最长的阶段。
B
A 需求分析
B 维护C设计 D 测试
7.注释是提高程序可读性的有效手段,好的程序注释占到程序总量的()
A 1/6
B 1/5
C 1/4 £4/3-
八、简述软件危机产生的原因。
,使得开发工作的计划很难制定。
致蔘考答案:~(1)缺之软件卄发的经验和有关软件卄发数据的枳累®~
_____________________________________________ ____ _____________ (2)软件需求,在开发的初期阶段
经费预算常常突破,进度计划无法遵循,开发完成的期限一拖再拖。
______ 提
开发丄作开始后,软件人员和用户又未能及时交换意见,造
得不够明确,或是未能得到确切的表达。
________________________________________________________ _______ 开发后期矛盾的集中暴露。
(3)开发过程没有统一的、公认的方法论和规范指导,参加的人员各行其 ------------------------------------- ---------------- ----------------------------------------- 加3设计和乂现过稈的浴料很不完整:或忽视了每个人I:作•其他人的接口,使得软件很难
维护。
(4)未能在测试阶段充分做好检测工作,提交用户的软件质量差,在运行中暴露出大量的问题。
九、简述软件生命周期阶段的划分?每个阶段的主要任务?
参考答案:生命周期划分为六个阶段,~分别为计划、需求分析、软件设计(包括概要设计和详细设计)、编码、软件测试和运行/维护。
各个阶段的主要任务分别为:~(1)计划阶段首先确定要解决的问题是什么, 通过问题定义阶段的工作,系统分析员应该提出关丁•问题的性质、规模和工程冃标的书而报告,之后-------------------- 进行可行性研究,应该决定该问题是否存在一个可行的解决办法,是否值得去
(2)需求分析阶段用该深入具体地了解用户的需求,在所要开发的系统必须做什么这个问题上和用户取得一致的看法,确定系统… m
能要朮和运行要朮,安全要朮筲卄功能性要求,给出冃标系统的逻辑模--------- (3)软件设计阶段分--------- 型。
为乩概要设计阶段确走系统的物理方窠,并由需求分析阶E殳得到的逻辑模型导岀软件纟吉构,确走组成系统的模块及
葆时间的关系;h・详细设计阶段给岀系统的薪图,设计出每一个模块的详细规格说明。
(4)编码阶段将详细设计的结果转换成计算机可以接受的程序代
码。
(5)测试阶段主要在软件投入使用之前,尽可能多的
发现软件的错误,并且要按照规格说明书的规定由用户对目标系统进行验
收。
(6)运行/维护阶段通过各种必要的维护活动使系统持久地满足用户的需求。