A. 螺旋模型 B. 增量模型 C. 功能模型 D. 瀑布模型
(C)
A. 应用 B. 测试 C. 检测 D. 以上答案都不对
(B)
A. 可行性研究 B. 详细设计 C. 需求分析 D. 编码
(C)
4.瀑布模型中
软件生命周期划分为8个阶段:问题定义、可行性研究、软件需求分析、总体设计、详细设计、编码、测试和运行、维护。
8个阶段又可以归纳为3个大的阶段:计划阶段、开发阶段和 。
A. 运行阶段 B. 可行性分析 C. 详细设计 D. 测试与排错
(A)
A. 详细设计阶段 B. 总体设计阶段 C. 需求分析阶段 D. 测试和运行阶段
(C)
A. 瀑布模型 B. 增量模型 C. 喷泉模型 D. 螺旋模型
(A)。
A. 软件开发方法 B. 软件生存周期 C. 程序设计方法学 D. 软件生存周期模型
(D)。
C. 及早提供全部完整软件 D. 开发完毕才见到工作软件
(B)。
A. 技术 B. 经济 C. 社会 D. 操作
(A)
A. 存在侵权否 B. 成本——效益问题 C. 运行方式可行 D. 技术风险问题
(D)。
A. 当前运行系统 B. 当前逻辑模型 C. 目标系统 D. 新系统
(A)。
A. 技术可行性 B. 经济可行性 C. 社会可行性 D. 操作可行性
(A)
A. 详细的 B. 全面的 C. 简化、压缩的 D. 彻底的
(C)。
A. 逻辑系统 B. 程序系统 C. 体系结构 D. 物理系统
(D)
15.数据流图是用于表示软件模型的一种图示方法,
在下列可采用的绘图方法中, 是常采用的。
A. 自顶向下 B. 分层 C. 逐步求精 D. 全是
(D)
A. 加工顺序 B. 加工逻辑 C. 执行频率 D. 激发条件
(B)
D. 以上都对
(D)。
A. 数据流图 B. 判定表 C. PAD图 D. 数据字典
(C)
判定表
1、判定表是一个表格,分为四个部分,其左部是条件或数组元素的名称,右上部是所有条件的组合,左下部是处理中活动的名称,右下部标明条件组合和相应的活动的对应关系。
2、判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。
3、判定表通常有以下四个部分组成:
1)条件桩(Condition Stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
2)动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
4、
|
2 |
3 |
4 |
|||
条件 |
觉得疲倦? |
Y |
Y |
N |
N |
|
感兴趣吗? |
N |
Y |
Y |
N |
||
动作 |
重读 |
|||||
继续 |
√ |
|||||
跳下一章 |
√ |
|||||
休息 |
√ |
√ |
6、判定表的优点:
能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,
即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。
PAD图:
PAD来源
PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1974年由日本的二村良彦等人提出的又一种主要用于描述软件详细设计的图形表示工具。与方框图一样,PAD图也只能描述结构化程序允许使用的几种基本结果。发明以来,已经得到一定程度的推广。它用二维树形结构的图表示程序的控制流,以PAD图为基础,遵循机械的走树(Tree Walk)规则就能方便地编写出程序,用这种图转换为程序代码比较容易。
折叠特征:
1)结构清晰,结构化程度高;
2)易于阅读
3)最左端的纵线是程序主干线,对应程序的第一层结构;每增一层PAD图向右扩展一条纵线,帮程序的纵线数等于程序层次数。
4)程序执行:从PAD图最左主干线上端结点开始,自上而下、自左向右依次执行,程序终止于最左主干线。
A. 用户要求 B. 合理要求 C. 模糊要求 D. 都不对
(A)。
A. 控制流 B. 结点 C. 数据流 D. 数据源/终点
(D)。
A. 数据流图 B. 数据字典 C. 判定表 D. 判定树
(B)
D. 软件可行性研究的依据
(D)。
A. 主要功能 B. 算法的详细过程 C. 用户界面及运行环境 D. 软件的性能
(B)
A. 层次图 B. 数据字典 C. 数据流图 D. IPO图
(D)
IPO图
1、IPO图的主体是算法说明部分,该部分可采用结构化语言、判定表、判定树,也可用N-S图、问题分析图和过程设计语言等工具进行描述,要准确而简明的描述模块执行的细节。
2、在IPO图中,输入、输出数据来源于数据词典。局部数据项是指个别模块内部使用的数据,与系统的其它部分无关,仅由本模块定义、存贮和使用。注释是对本模块有关问题作必要的说明。
3、开发人员不仅可以利用IPO图进行模块设计,而且还可以利用它评价总体设计。用户和管理人员可利用IPO图编写、修改和维护程序。因而,IPO图是系统设计阶段的一种重要文档资料。
N-S图
N-S图简介
流程图由一些特定意义的图形、流程线及简要的文字说明构成,它能清晰明确地表示程序的运行过程。在使用过程中,人们发现流程线不一定是必需的,为此,人们设计了一种新的流程图,它把整个程序写在一个大框图内,这个大框图由若干个小的基本框图构成,这种流程图简称N-S图
A. 细节 B. 输入与输出 C. 软件的作者 D. 绘制的时间
(B)。
数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
A. 分析结果 B. 事件 C. 动作 D. 数据
(D)
A. 数据流 B. 数据存储 C. 加工 D. 源点与终点
(D)
C. 要求软件工作效率怎样 D. 要让软件具有何种结构
(A)。
A. 项目开发计划 B. 可行性分析报告 C. 需求规格说明 D. 设计说明书
(C)
A. 结构化语言 B. 判定表 C. 判定树 D. 流程图
(D)。
A. 抽象和信息隐蔽 B. 局部化和封装化 C. 内聚性和耦合性 D. 激活机制和控制方法
(C)。
A. 模块间的联系程度 B. 模块的功能强度 C. 信息隐蔽程度 D. 接口的复杂程度
(B)。
A. 变换流和事务流 B. 变换流和控制流 C. 事务流和控制流 D. 数据流和控制流
(A)。
A. 过程性内聚 B. 通信性内聚 C. 顺序性内聚 D. 功能性内聚
(D)。
A. 非直接耦合 B. 数据耦合 C. 特征耦合 D. 控制耦合
(A)。
A. 功能需求 B. 非功能需求 C. 性能需求 D. 功能需求和非功能需求
(D)。
A. 数据流图 B. 程序框图 C. 软件结构 D. 方框图
(A)。
A. 问题定义 B. 可行性研究 C. 总体设计 D. 都不是
(C)
A. DFD B. PAD C. SC D. E-R
1、PAD:
问题分析图
一种主要用于描述软件详细设计的图形表示工具。与方框图一样,PAD图也只能描述结构化程序允许使用的几种基本结果。
2、DFD
数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
3、SC图(Structure Chart,结构图)是软件工程中面向数据流设计方法中的一种描述工具,专门用来描述软件的总体结构。
(C)
A. 数据流分析设计 B. 变换流分析设计 C. 事务流分析设计 D. 模块化
(D)。
A. 逻辑性 B. 瞬时性 C. 功能性 D. 通信性
(A)
A. 功能性 B. 顺序性 C. 逻辑性 D. 瞬时性
(B)
C. 概念设计与物理设计 D. 模型设计与程序设计
(B)。
44.模块中所有成分引用共同的数据,该模块的内聚度是 的。A.逻辑性B.瞬时性C.功能性 D.通信性
(D)
A.高耦合、高内聚B.低耦合、高内聚C.高耦合、低内聚D.低耦合、低内聚
(B)。
A.目标B.数据流(数据)C.功能D.对象
(B)
A.偶然性B.顺序性C.通信性D.功能性
(D)
A.逻辑耦合B.数据耦合C.控制耦合D.内容耦合
(B)。
A.深度B.跨度C.控制域D.粒度
(A)。
A.程序流程图B.数据流图C.E-R图D.层次结构图
(D)
A.变换型B.事务型C.结构化D.非结构化
(A)
A.耦合越强B.扇入数越高C.耦合越弱D.扇入数越低
(C)
A.耦合性B.独立性C.内聚性D.共享性
(B)。
C.作用范围与控制范围互不包含D.作用范围与控制范围不受任何限制
(A)。
55.软件结构图中,模块框之间若有直线连接,表示它们之间存在着 关系。
A.调用B.组成C.连接D.顺序执行
(A)
A.模块化B.抽象C.精化D.模块
A.控制域B.作用域C.宽度D.接口
(B)
D.一个模块的扇入太多,说明该模块过分复杂,缺少中间层
(C)。
D.模块内所有处理元素都在同一个数据结构上操作
(A)。
A.事务中心B.变换中心C.输入流D.输出流
(A)。
D.一个模块调用另一个模块时,传递的是控制变量
(C)。
D.模块内所有元素共同完成一个功能,缺一不可
(B)。
D.一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部
(D)。
A.高级程序设计语言B.伪码C.中级程序设计基础语言D.低级程序设计语言
(B)。
PDL语言(Program Design Language)
A.结构程序设计B.模型设计C.结构化设计D.流程图设计
(C)。
A.模块化设计B.算法设计C.程序设计D.详细设计
(B)
A.外部特性B.内部特性C.算法和使用的数据D.功能和输入输出数据
(C)。
A.筛选法B.递归法C.迭代法D.逐步求精法
(D)。
A.程序的效率B.程序执行速度C.程序易读性D.程序的规模
(C)。
C.已经用硬件实现D.只有一个入口和一个出口
(D)
A.状态图B.数据流图C.对象图D.结构图
(C)。
A.多态性B.完整性C.可移植性D.兼容性
(A)。
A.困难B.不容易C.平滑D.顺序
(C)
A.对象图B.结构图C.状态图D.设计图
(C)。
A.对象B.动态C.功能D.静态
(B)
A.动词B.名词C.修饰性名词词组和形容词D.词组
(C)
A.类B.属性C.对象D.消息
(A)
A.服务B.参数C.属性D.调用
(C)
A.接口B.消息C.信息D.操作
(B)
A.对象B.动态C.功能D.分析
(B)
A.名词B.形容词C.动词D.代词
(A)
A.处理B.动作C.活动D.加工
(B)。
A.属性B.功能C.行为D.数据
(A)。
A.继承性B.共享性C.封装性D.抽象性
(C)。
A.对象B.类C.关联D.属性
(C)
D.功能模型说明对象模型中动作的含义
(B)。
A.需求不确定性高的B.需求确定的C.管理信息D.实时
(A)
C.国际软件质量认证D.软件统一性标准
(A)。
成熟度模型
能力成熟度模型(Capability Maturity Model,英文缩写为CMM)是一种开发模型。Carnegie Mellon大学的研究人员从美国国防部合同承包方那里收集数据并加以研究,提出了CMM。美国国防部资助了这项研究。Carnegie Mellon以该模型为基础,创办了软件工程研究所(SEI)。CMM的目标是改善现有软件开发过程,也可用于其它过程。
它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护过程进行监控和研究。
CMM是一种用于评价软件承包能力以改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
其假设是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。
A.数据、对象、实体B.控制、联系、对象C.实体、联系、属性D.实体、属性、对象
(C)。
A.Gantt图B.工程网络C.COCOMO模型D.数据流图
(B)。
A.数据流B.控制流C.调用关系D.组成关系
(B)。
A.3±1 B.7±2 C.15±1 D.18±2
(B)。
A.软件日益庞大B.不能与用户良好地沟通 C.开发人员编写程序能力差 D.没有适应的开发模型
( A )
A.提高程序的执行效率B.降低程序对存储空间的要求C.定义各种软件开发过程模型D.提高软件的可维护性
( D )
A.瀑布模型B.增量模型C.螺旋模型 D.喷泉模型
A.程序设计B.可行性分析C.概要设计D.详细设计
( A )
5、结构化分析建立功能模型的工具是A.DFD B.判定树/判定表 C.SC D.结构化语言
( A )
A.数据流 B.数据库 C.数据结构D.程序
( C )
A.确认测试 B.集成测试 C.系统测试D.单元测试
( A )
A.校正性维护 B.适应性维护 C.完善性维护D.预防性维护
(C )
9、以下不属于序言性注释的有A.模块设计者 B.修改日期 C.程序的整体说明D.语句功能
( D )
A.接口错误 B.编码错误 C.性能、质量不合要求D.功能错误
( A )
。它最简单的形式是:把两个已经测试过的单元组合成一个组件,测试它们之间的接口。
A.0 B.1 C.3 D.5
( B )
A.程序的执行效率 B.模块大小 C.程序的可理解性D.模块关系
( C )
A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试
( B )
A.用户不容易参与开发 B.步骤太多 C.用户与开发者不易沟通 D.不适应可变的需求
( D )
A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模
( A )
A.PDL B.SA C.SC D.DFD
( A )。1. PDL语言(Program Design Language)
A.数据流图 B.程序框图 C.软件结构 D.方框图
( A )。
A.封装性 B.移植性 C.完整性 D.兼容性
( A A)。
A.继承 B.消息 C.方法 D.结构
( D )。
A.类图 B.用例图 C.顺序图 D.状态图
BD
A、越大 B、越小 C、越不可捉摸 D、越接近平均水平
( A )
A.瀑布模型B.对象模型C.增量模型D.喷泉模型
( B )。
A.简化、压缩的 B.详细的C.彻底的D.深入的
( A )
A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告
( B )。
A.无直接耦合 B.标记耦合C.控制耦合D.内容耦合
( D )
A.扇出数大 B.扇入数大C.内聚性高D.扇出数小
( B )。
A.算法和数据结构B.外部接口C.软件编码D.功能
( A )
A.程序 B.数据 C.逻辑产品 D.物理产品
( C )。
A.Fortran B.C C.PascalD.Cobol
( C )。
A.表明程序没有错误B.发现所有错误C.提高软件可靠性D.发现尚未发现的错误
( D )。
A.因果图B.逻辑覆盖C.循环覆盖D.基本路径测试
( A )。
A.校正性维护B.适应性维护C.完善性维护D.预防性维护
( C )
A.35%~40%B.40%~60%C.60%~70%D.70%~80%或更高
( D )
A.调用关系B.组成关系C.链接关系D.顺序执行关系
( A )。
A.线性顺序模型B.整体开发模型C.非整体开发模型D.快速原型模型
( C )。
15、在大型数据处理系统的功能分析与设计中,数据库的概念设计对应于系统开发的
A.需求分析B.概要设计C.详细设计 D.程序设计
( A )。
A.类B.对象C.角色D.属性
( A )
A.对象的数据结构B.对象的使用方式C.程序结构D.结构化编程
( A )。
A.资源需求B.成本估算C.项目进度D.功能需求
( D )
A.可维护性B.可测试性 C.可靠性D.适应性
( C )。
C.软件配置实际上是一动态的概念D.软件工程过程中某一阶段的变更均要引起软件配置的变更
( A )。
软件配置管理(SCM)是指在开发过程中各阶段,管理计算机程序演变的学科,它作为软件工程的关键元素。已经成为软件开发和维护的重要组成部分。SCM提供了结构化的、有序化的、产品化的管理软件工程的方法。它涵盖了软件生命周期的所有领域并影响所有数据和过程。
配置管理是对产品进行标识、存储和控制,以维护其完整性、可追溯性以及正确性的学科。
1、渐增式与非渐增式测试策略各有何优、缺点?为什么通常采用渐增式?
评分标准:本题满分5分
可以显著地改善软件的质量和可靠性(1分);
可以极大地提高软件开发的效率(2分);
节省软件开发的成本(1分),避免不必要的重复劳动和人力、财力的浪费(1分)。
5、简述CMM将软件过程的成熟度分为哪几个级别?以及CMM的主要用途和应用领域。
CMM的主要用途是:用于评估一个组织履行该学科任务的能力。
它的应用领域具体表现在三个方面:
(1) 软件组织:用它来不断改进自身的软件过程管理能力;17、用Halstead度量还可以用来预测程序中可能存在的错误E。一个程序对75个数据库项共访问1300次,对150个运算符共使用了1200次,预测该程序的错误数是多少?
1、什么是软件工程方法学?软件工程方法学包含3个要素是什么?
软件工程方法学包含3个要素:方法、工具和过程。方法 — 完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具 — 为运用方法而提供的自动的或半自动的软件工程支撑环境;过程 — 为了获得高质量的软件所需要 完成的一系列任务的框架,它规定了完 成各项任务的工作步骤。
2、简述原型开发模型、螺旋模型、喷泉模型各自的特点
答:原型模型--优点:
(1)原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求。
(2)开发人员通过建立原型系统已经学到了许多东西,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
原型模型—存在的问题
⑴ 为了使原型尽快的工作,没有考虑软件的总体质量和长期的可维护性。
⑵ 为了演示,可能采用不合适的操作系统、编程语言、效率低的算法,这些不理想的选择成了系统的组成部分。
⑶ 开发过程不便于管理。
螺旋模型
需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。
优点
(1)对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;
⑵减少了过多测试或测试不足;
⑶维护和开发之间并没有本质区别。
特点
(1)风险驱动
⑵主要适用于内部开发的大规模软件项目
⑶要有具有丰富风险评估专门知识的开发人员,否则风险更大。
由于喷泉模型在各个开发阶段是重叠的,
因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
3、成本/效益分析的目的是什么?
答:
1.改进软件结构提高模块独立性。
2.模块规模应该适中。7. 模块功能应该可以预测。