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