题汇编
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)。
A. 开发完毕才见到产品 B. 及早提供工作软件
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)
A. 要回答“软件必须做什么?”
B. 可概括为:“理解,分解,表达”6个字
C. 要求编写需求规格说明书
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 |
||
动作 |
重读 |
|||||
继续 |
√ |
|||||
跳下一章 |
√ |
|||||
休息 |
√ |
√ |
1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2的n次方种规则。
2)列出所有的条件桩和动作桩。
3)填入条件项。
4)填入动作项。得到初始判定表。
5)简化.合并相似规则(相同动作)。
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)
A. 软件设计的依据
B. 用户与开发人员对软件要做什么的共同理解
C. 软件验收的依据
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)
A. 要让软件做什么 B. 要给该软件提供哪些信息
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)
A. 逻辑设计和功能设计 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)。
A.作用范围应在其控制范围之内B.控制范围应在其作用范围之内
C.作用范围与控制范围互不包含D.作用范围与控制范围不受任何限制
(A)。
55.软件结构图中,模块框之间若有直线连接,表示它们之间存在着 关系。
A.调用B.组成C.连接D.顺序执行
(A)
A.模块化B.抽象C.精化D.模块
A.控制域B.作用域C.宽度D.接口
(B)
A.非单一功能模块的扇入数大比较好,说明本模块重用率高
B.单一功能的模块扇入高时应重新分解,以消除控制耦合的情况
C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层
D.一个模块的扇入太多,说明该模块过分复杂,缺少中间层
(C)。
A.一个模块内的各处理元素之间没有任何联系
B.模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能
C.把需要同时执行的动作组合在一起形成的模块
D.模块内所有处理元素都在同一个数据结构上操作
(A)。
A.事务中心B.变换中心C.输入流D.输出流
(A)。
A.两个模块之间没有直接的关系,它们之间不传递任何信息
B.两个模块之间有调用关系,传递的是简单的数据值
C.两个模块之间传递的是数据结构
D.一个模块调用另一个模块时,传递的是控制变量
(C)。
A.把需要同时执行的动作组合在一起形成的模块
B.各处理使用相同的输入数据或者产生相同的输出数据
C.一个模块中各个处理元素都密切相关于同一功能且必须顺序执行
D.模块内所有元素共同完成一个功能,缺一不可
(B)。
A.两个模块之间传递的是数据结构
B.一个模块调用另一个模块时,传递的是控制变量
C.通过一个公共数据环境相互作用的那些模块间的耦合
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)。
A.不能嵌套使用B.只能用来写简单程序
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)
A.功能模型不包括对象模型中值的约束条件
B.功能模型说明对象模型中操作的含义
C.功能模型说明对象模型中约束的含义
D.功能模型说明对象模型中动作的含义
(B)。
A.需求不确定性高的B.需求确定的C.管理信息D.实时
(A)
A.软件过程成熟度模型B.软件过程工业化控制
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 )。
A.软件配置管理简称SCI B.软件配置项是配置管理的基本单位
C.软件配置实际上是一动态的概念D.软件工程过程中某一阶段的变更均要引起软件配置的变更
( A )。
软件配置管理(SCM)是指在开发过程中各阶段,管理计算机程序演变的学科,它作为软件工程的关键元素。已经成为软件开发和维护的重要组成部分。SCM提供了结构化的、有序化的、产品化的管理软件工程的方法。它涵盖了软件生命周期的所有领域并影响所有数据和过程。
配置管理是对产品进行标识、存储和控制,以维护其完整性、可追溯性以及正确性的学科。
11、C 12、D 13、A 14、C 15、A 16、A 17、A 18、D 19、C20、A
二、判断题
1、系统流程图是描绘物理系统的工具。( √ )
2、类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。( × )
3、在面向对象方法中,类是客观存在的实体。( √ )
4、判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。( × )
5、CMM 是指导软件生命周期的一种面向对象的新技术。( × )
6、序列图描述对象是如何交互的并且将重点放在消息序列上。( √ )
7、结构化程序设计方法是一种面向数据和过程的设计方法,数据和过程封装为相互独立
的两个部分。( × )
8、用面向对象方法开发的软件系统,可维护性好。( √ )
9、程序的可移植性指把一个软件(或程序)从一个计算机环境到另一个计算机环境的容易程度。( √ )
10、软件项目管理是软件设计过程的管理。( × )
1、√ 2、× 3、√ 4、× 5、× 6、√ 7、× 8、√ 9、√ 10、×
三、简答题
1、渐增式与非渐增式测试策略各有何优、缺点?为什么通常采用渐增式?
2、渐增式是将模块一个一个地连入系统,每连入一个模块,都要对新系统进行测试。这种组装测试方案比较非渐增式,容易查出错误及进行错误定位,有利于查出模块接口部分的错误,因此测试效率高。因此通常采用渐增式。
评分标准:本题满分5分
渐增式是将模块一个一个地连入系统(0.5分),每连入一个模块,都要对新系统进行测试(0.5分)。这种组装测试方案比较非渐增式,容易查出错误及进行错误定位(0.5分),有利于查出模块接口部分的错误(0.5分),因此测试效率高。因此通常采用渐增式(0.5分)。
2、基于构件的软件开发的优势是什么?
基于构件的软件开发的优势包括:可以显著地改善软件的质量和可靠性;可以极大地提高软件开发的效率;节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。
评分标准:本题满分5分
可以显著地改善软件的质量和可靠性(1分);
可以极大地提高软件开发的效率(2分);
节省软件开发的成本(1分),避免不必要的重复劳动和人力、财力的浪费(1分)。
3、根据模块的作用范围与控制范围的原则,判定a、b两图的正确性,并简单阐述原因。
显然,图a不满足作用范围应与控制范围的原则,模块F的作用范围不在控制范围之内。 图b的模块设计合理。
评分标准:本题满分5分
图a不满足作用范围应与控制范围的原则(2分),模块F的作用范围不在控制范围之内(2分)。 图b的模块设计合理(1分)。
4、为使源程序代码易读易懂,在编写程序时,对标识符的取名和程序注释方面应注意哪些问题?
(1) 标识符应按意取名。
标识符即符号名,包括:模块名、常量名、标号名、子程序名、数据区名、缓冲区名等。 这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能够见名知意,有助于对 程序功能的理解。
(2) 程序应加注释,它分为两类:序言性注释和功能性注释。
序言性注释应置于每个模块的起始部分,主要内容有:①说明每个模块的用途,功能;②说明模块的接口即调用格式、参数描述及从属模块的清单;③数据描述;④开发历史 。
功能性注释是嵌在源程序体中的,用于说明其后的程序段或语句的功能以及数据的状态;也就是解释下面要“做什么”,或是执行下面的语句会发生什么情况;而不是解释下面“怎么做”,因为怎么做常常是与程序重复的,且对读者理解程序没有什么帮助。
评分标准:本题满分5分
答出标识符应按意取名(1分)。答出标识符按意取名的好处(1分)。
答出程序应加注释(1分),答出注释分为序言性注释和功能性注释(1分)。答出注释的好处(1分)。
5、简述CMM将软件过程的成熟度分为哪几个级别?以及CMM的主要用途和应用领域。
CMM的主要用途是:用于评估一个组织履行该学科任务的能力。
它的应用领域具体表现在三个方面:
(1) 软件组织:用它来不断改进自身的软件过程管理能力;(2) 评估机构:用它来评估某软件组织当前软件能力成熟度的级别;
(3) 客户:用它来评价某承包商 (软件外包商) 的软件能力。
1、可行性研究包括哪几方面的内容?
2、什么是结构化分析?它的结构化体现在哪里?
3、什么是模块化?模块设计的准则?
1、某校的课酬计算方案如下:(l)基本课酬为每节课10元;(2)如果班级人数超过40人,课酬增加:基本课酬×0.1;(3)如果班级人数超过60人,课酬增加:基本课酬×0.2;(4)如果教师是副教授,课酬增加:基本课酬×0.1;(5)如果教师是教授,课酬增加:基本课酬×0.2;(6)讲师,课酬不增加;(7)助教,课酬减少:基本课酬×0.1。请用判定表或判定树表达上述计算方案。
1 234 5 6 789 10 11 12
人数≤40 T T T T
40<人数≤60 TTT T
人数>60 TTT T
助教 T TT
讲师 TTT
副教授 TTT
教授 TTT
课酬:9元/节 √
课酬:10元/节 √√
课酬:11元/节 √√√
课酬:12元/节 √√√
课酬:13元/节 √√
课酬:14元/节 √
2、画出下列伪码程序的程序流程图和盒图(10分)
START
IF p THEN
WHILE q DO
f
END DO
ELSE
BLOCK
g
n
END BLOCK
END IF
STOP
3、用变换映射的方法,从下图中导出相应初始SC图(假设此图经过细化与修改)在下面DFD 图上已标出逻辑输入、逻辑输出和变换中心的分界,请转换成SC图(10分)
二、简答题
1、什么是软件工程方法学?软件工程方法学包含3个要素是什么?
2、简述原型开发模型、螺旋模型、喷泉模型各自的特点
。
3、成本/效益分析的目的是什么?
4、某计算机系统投入使用后,5年内每年可节约人民币10000元,按年利率12%计算,假设系统的投资额为30000元,试计算其效益。
5、需求分析过程应该建立3种模型是什么?
6、请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。
7、简述总体设计的原理是什么?
8、按耦合由强到弱的程度写出7种耦合类型?
9、按内聚性由高到低的程度写出7种耦合类型?模块设计目标是什么?
10、模块设计规则?
11、面向数据流的设计方法的目标是什么?面向数据流的设计要解决的任务是什么?
12、在下面DFD 图上已标出逻辑输入、逻辑输出和变换中心的分界,请转换成SC图
13、总体设计阶段的基本目的是什么?总体设计阶段主要由哪两个小阶段组成的?
14、将下列流程图转换成N-S图、PAD图
15、假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
16、从下列流程图导出程序图 ,并用三种方法计算出环形复杂度V(G)
17、用Halstead度量还可以用来预测程序中可能存在的错误E。一个程序对75个数据库项共访问1300次,对150个运算符共使用了1200次,预测该程序的错误数是多少?
1、什么是软件工程方法学?软件工程方法学包含3个要素是什么?
软件工程方法学包含3个要素:方法、工具和过程。方法 — 完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具 — 为运用方法而提供的自动的或半自动的软件工程支撑环境;过程 — 为了获得高质量的软件所需要 完成的一系列任务的框架,它规定了完 成各项任务的工作步骤。
2、简述原型开发模型、螺旋模型、喷泉模型各自的特点
答:原型模型--优点:
(1)原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求。
(2)开发人员通过建立原型系统已经学到了许多东西,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
原型模型—存在的问题
⑴ 为了使原型尽快的工作,没有考虑软件的总体质量和长期的可维护性。
⑵ 为了演示,可能采用不合适的操作系统、编程语言、效率低的算法,这些不理想的选择成了系统的组成部分。
⑶ 开发过程不便于管理。
螺旋模型
需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。
优点
(1)对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;
⑵减少了过多测试或测试不足;
⑶维护和开发之间并没有本质区别。
特点
(1)风险驱动
⑵主要适用于内部开发的大规模软件项目
⑶要有具有丰富风险评估专门知识的开发人员,否则风险更大。
喷泉模型的优点: 喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
喷泉模型的缺点
由于喷泉模型在各个开发阶段是重叠的,
因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
3、成本/效益分析的目的是什么?
答:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。
4、某计算机系统投入使用后,5年内每年可节约人民币10000元,按年利率12%计算,假设系统的投资额为30000元,试计算其效益。
5、需求分析过程应该建立3种模型是什么?
数据模型 ---- 实体-联系图
功能模型 ---- 数据流图
行为模型 ----状态转换图
6、请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。
7、简述总体设计的原理是什么?
答:模块化、 抽 象、 逐步求精、 信息隐藏和局部化、 模块独立。
8、按耦合由强到弱的程度写出7种耦合类型?
答:内容耦合 公共耦合 外部耦合 控制耦合 标记耦合 数据耦合 非直接耦合
9、按内聚性由高到低的程度写出7种耦合类型?模块设计目标是什么?
力争强内聚、弱耦合
10、模块设计规则?
答:
1.改进软件结构提高模块独立性。
2.模块规模应该适中。3.深度、宽度、扇出和扇入都应适当。
4.模块的作用域应该在控制域之内。
5. 力争降低模块接口的复杂程度。
6. 设计单入口单出口的模块。
7. 模块功能应该可以预测。
答:面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。
面向数据流的设计要解决的任务,就是在需求分析的基础上,将表示系统逻辑模型的DFD图映射(Mapping)成软件系统结构的初始设计描述。
12、在下面DFD 图上已标出逻辑输入、逻辑输出和变换中心的分界,请转换成SC图
13、总体设计阶段的基本目的是什么?总体设计阶段主要由哪两个小阶段组成的?
总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。
总体设计阶段主要由两个小阶段组成。
首先需要进行系统设计,从数据流图出发设想完成系统功能的若干种合理的物理方案,分析员应该仔细分析比较这些方案,并且和用户共同选定一个最佳方案。
然后进行软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系。层次图和结构图是描绘软件结构的常用工具。
15、假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
用判定树表示计算行李费的算法
16、从下列流程图导出程序图 ,并用三种方法计算出环形复杂度V(G)
17、用Halstead度量还可以用来预测程序中可能存在的错误E。一个程序对75个数据库项共访问1300次,对150个运算符共使用了1200次,预测该程序的错误数是多少?
那么预测该程序的错误数:
E = (1200+1300)log2(75+150)/3000 6.5
即预测该程序中可能包含6~7个错误
18、将下列用PDL伪代码表示的某种模块的过程性描述改用N-S图或程序流程图图表示。
execute process a
REPEAT UNTIL condition X8
execute process b
IF condition X1
THEN BEGIN
execute process q
IF condition X6
THEN
REPEAT UNTIL condition X7
execute process i
ENDREP
ELSE BEGIN
execute process h
execute process g
END
ENDIF
ELSE CASE OF Xi
WHEN condition X2 SELECT
DO WHILE condition X5
execute process C
ENDDO
WHEN condition X3 SELECT process d
WHEN condition X4 SELECT process e
ENDCASE
ENDIF
ENDREP
execute process j
END
19、某计算机系统投入使用后,5年内每年可节约人民币10000元,按年利率12%计算,假设系统的投资额为30000元,试计算其效益。答:
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)。
A. 开发完毕才见到产品 B. 及早提供工作软件
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)
A. 要回答“软件必须做什么?”
B. 可概括为:“理解,分解,表达”6个字
C. 要求编写需求规格说明书
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 |
||
动作 |
重读 |
|||||
继续 |
√ |
|||||
跳下一章 |
√ |
|||||
休息 |
√ |
√ |
1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2的n次方种规则。
2)列出所有的条件桩和动作桩。
3)填入条件项。
4)填入动作项。得到初始判定表。
5)简化.合并相似规则(相同动作)。
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)
A. 软件设计的依据
B. 用户与开发人员对软件要做什么的共同理解
C. 软件验收的依据
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)
A. 要让软件做什么 B. 要给该软件提供哪些信息
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)
A. 逻辑设计和功能设计 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)。
A.作用范围应在其控制范围之内B.控制范围应在其作用范围之内
C.作用范围与控制范围互不包含D.作用范围与控制范围不受任何限制
(A)。
55.软件结构图中,模块框之间若有直线连接,表示它们之间存在着 关系。
A.调用B.组成C.连接D.顺序执行
(A)
A.模块化B.抽象C.精化D.模块
A.控制域B.作用域C.宽度D.接口
(B)
A.非单一功能模块的扇入数大比较好,说明本模块重用率高
B.单一功能的模块扇入高时应重新分解,以消除控制耦合的情况
C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层
D.一个模块的扇入太多,说明该模块过分复杂,缺少中间层
(C)。
A.一个模块内的各处理元素之间没有任何联系
B.模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能
C.把需要同时执行的动作组合在一起形成的模块
D.模块内所有处理元素都在同一个数据结构上操作
(A)。
A.事务中心B.变换中心C.输入流D.输出流
(A)。
A.两个模块之间没有直接的关系,它们之间不传递任何信息
B.两个模块之间有调用关系,传递的是简单的数据值
C.两个模块之间传递的是数据结构
D.一个模块调用另一个模块时,传递的是控制变量
(C)。
A.把需要同时执行的动作组合在一起形成的模块
B.各处理使用相同的输入数据或者产生相同的输出数据
C.一个模块中各个处理元素都密切相关于同一功能且必须顺序执行
D.模块内所有元素共同完成一个功能,缺一不可
(B)。
A.两个模块之间传递的是数据结构
B.一个模块调用另一个模块时,传递的是控制变量
C.通过一个公共数据环境相互作用的那些模块间的耦合
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)。
A.不能嵌套使用B.只能用来写简单程序
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)
A.功能模型不包括对象模型中值的约束条件
B.功能模型说明对象模型中操作的含义
C.功能模型说明对象模型中约束的含义
D.功能模型说明对象模型中动作的含义
(B)。
A.需求不确定性高的B.需求确定的C.管理信息D.实时
(A)
A.软件过程成熟度模型B.软件过程工业化控制
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 )。
A.软件配置管理简称SCI B.软件配置项是配置管理的基本单位
C.软件配置实际上是一动态的概念D.软件工程过程中某一阶段的变更均要引起软件配置的变更
( A )。
软件配置管理(SCM)是指在开发过程中各阶段,管理计算机程序演变的学科,它作为软件工程的关键元素。已经成为软件开发和维护的重要组成部分。SCM提供了结构化的、有序化的、产品化的管理软件工程的方法。它涵盖了软件生命周期的所有领域并影响所有数据和过程。
配置管理是对产品进行标识、存储和控制,以维护其完整性、可追溯性以及正确性的学科。
11、C 12、D 13、A 14、C 15、A 16、A 17、A 18、D 19、C20、A
二、判断题
1、系统流程图是描绘物理系统的工具。( √ )
2、类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。( × )
3、在面向对象方法中,类是客观存在的实体。( √ )
4、判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。( × )
5、CMM 是指导软件生命周期的一种面向对象的新技术。( × )
6、序列图描述对象是如何交互的并且将重点放在消息序列上。( √ )
7、结构化程序设计方法是一种面向数据和过程的设计方法,数据和过程封装为相互独立
的两个部分。( × )
8、用面向对象方法开发的软件系统,可维护性好。( √ )
9、程序的可移植性指把一个软件(或程序)从一个计算机环境到另一个计算机环境的容易程度。( √ )
10、软件项目管理是软件设计过程的管理。( × )
1、√ 2、× 3、√ 4、× 5、× 6、√ 7、× 8、√ 9、√ 10、×
三、简答题
1、渐增式与非渐增式测试策略各有何优、缺点?为什么通常采用渐增式?
2、渐增式是将模块一个一个地连入系统,每连入一个模块,都要对新系统进行测试。这种组装测试方案比较非渐增式,容易查出错误及进行错误定位,有利于查出模块接口部分的错误,因此测试效率高。因此通常采用渐增式。
评分标准:本题满分5分
渐增式是将模块一个一个地连入系统(0.5分),每连入一个模块,都要对新系统进行测试(0.5分)。这种组装测试方案比较非渐增式,容易查出错误及进行错误定位(0.5分),有利于查出模块接口部分的错误(0.5分),因此测试效率高。因此通常采用渐增式(0.5分)。
2、基于构件的软件开发的优势是什么?
基于构件的软件开发的优势包括:可以显著地改善软件的质量和可靠性;可以极大地提高软件开发的效率;节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。
评分标准:本题满分5分
可以显著地改善软件的质量和可靠性(1分);
可以极大地提高软件开发的效率(2分);
节省软件开发的成本(1分),避免不必要的重复劳动和人力、财力的浪费(1分)。
3、根据模块的作用范围与控制范围的原则,判定a、b两图的正确性,并简单阐述原因。
显然,图a不满足作用范围应与控制范围的原则,模块F的作用范围不在控制范围之内。 图b的模块设计合理。
评分标准:本题满分5分
图a不满足作用范围应与控制范围的原则(2分),模块F的作用范围不在控制范围之内(2分)。 图b的模块设计合理(1分)。
4、为使源程序代码易读易懂,在编写程序时,对标识符的取名和程序注释方面应注意哪些问题?
(1) 标识符应按意取名。
标识符即符号名,包括:模块名、常量名、标号名、子程序名、数据区名、缓冲区名等。 这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能够见名知意,有助于对 程序功能的理解。
(2) 程序应加注释,它分为两类:序言性注释和功能性注释。
序言性注释应置于每个模块的起始部分,主要内容有:①说明每个模块的用途,功能;②说明模块的接口即调用格式、参数描述及从属模块的清单;③数据描述;④开发历史 。
功能性注释是嵌在源程序体中的,用于说明其后的程序段或语句的功能以及数据的状态;也就是解释下面要“做什么”,或是执行下面的语句会发生什么情况;而不是解释下面“怎么做”,因为怎么做常常是与程序重复的,且对读者理解程序没有什么帮助。
评分标准:本题满分5分
答出标识符应按意取名(1分)。答出标识符按意取名的好处(1分)。
答出程序应加注释(1分),答出注释分为序言性注释和功能性注释(1分)。答出注释的好处(1分)。
5、简述CMM将软件过程的成熟度分为哪几个级别?以及CMM的主要用途和应用领域。
CMM的主要用途是:用于评估一个组织履行该学科任务的能力。
它的应用领域具体表现在三个方面:
(1) 软件组织:用它来不断改进自身的软件过程管理能力;(2) 评估机构:用它来评估某软件组织当前软件能力成熟度的级别;
(3) 客户:用它来评价某承包商 (软件外包商) 的软件能力。
1、可行性研究包括哪几方面的内容?
2、什么是结构化分析?它的结构化体现在哪里?
3、什么是模块化?模块设计的准则?
1、某校的课酬计算方案如下:(l)基本课酬为每节课10元;(2)如果班级人数超过40人,课酬增加:基本课酬×0.1;(3)如果班级人数超过60人,课酬增加:基本课酬×0.2;(4)如果教师是副教授,课酬增加:基本课酬×0.1;(5)如果教师是教授,课酬增加:基本课酬×0.2;(6)讲师,课酬不增加;(7)助教,课酬减少:基本课酬×0.1。请用判定表或判定树表达上述计算方案。
1 234 5 6 789 10 11 12
人数≤40 T T T T
40<人数≤60 TTT T
人数>60 TTT T
助教 T TT
讲师 TTT
副教授 TTT
教授 TTT
课酬:9元/节 √
课酬:10元/节 √√
课酬:11元/节 √√√
课酬:12元/节 √√√
课酬:13元/节 √√
课酬:14元/节 √
2、画出下列伪码程序的程序流程图和盒图(10分)
START
IF p THEN
WHILE q DO
f
END DO
ELSE
BLOCK
g
n
END BLOCK
END IF
STOP
3、用变换映射的方法,从下图中导出相应初始SC图(假设此图经过细化与修改)在下面DFD 图上已标出逻辑输入、逻辑输出和变换中心的分界,请转换成SC图(10分)
二、简答题
1、什么是软件工程方法学?软件工程方法学包含3个要素是什么?
2、简述原型开发模型、螺旋模型、喷泉模型各自的特点
。
3、成本/效益分析的目的是什么?
4、某计算机系统投入使用后,5年内每年可节约人民币10000元,按年利率12%计算,假设系统的投资额为30000元,试计算其效益。
5、需求分析过程应该建立3种模型是什么?
6、请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。
7、简述总体设计的原理是什么?
8、按耦合由强到弱的程度写出7种耦合类型?
9、按内聚性由高到低的程度写出7种耦合类型?模块设计目标是什么?
10、模块设计规则?
11、面向数据流的设计方法的目标是什么?面向数据流的设计要解决的任务是什么?
12、在下面DFD 图上已标出逻辑输入、逻辑输出和变换中心的分界,请转换成SC图
13、总体设计阶段的基本目的是什么?总体设计阶段主要由哪两个小阶段组成的?
14、将下列流程图转换成N-S图、PAD图
15、假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
16、从下列流程图导出程序图 ,并用三种方法计算出环形复杂度V(G)
17、用Halstead度量还可以用来预测程序中可能存在的错误E。一个程序对75个数据库项共访问1300次,对150个运算符共使用了1200次,预测该程序的错误数是多少?
1、什么是软件工程方法学?软件工程方法学包含3个要素是什么?
软件工程方法学包含3个要素:方法、工具和过程。方法 — 完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具 — 为运用方法而提供的自动的或半自动的软件工程支撑环境;过程 — 为了获得高质量的软件所需要 完成的一系列任务的框架,它规定了完 成各项任务的工作步骤。
2、简述原型开发模型、螺旋模型、喷泉模型各自的特点
答:原型模型--优点:
(1)原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求。
(2)开发人员通过建立原型系统已经学到了许多东西,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
原型模型—存在的问题
⑴ 为了使原型尽快的工作,没有考虑软件的总体质量和长期的可维护性。
⑵ 为了演示,可能采用不合适的操作系统、编程语言、效率低的算法,这些不理想的选择成了系统的组成部分。
⑶ 开发过程不便于管理。
螺旋模型
需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。
优点
(1)对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;
⑵减少了过多测试或测试不足;
⑶维护和开发之间并没有本质区别。
特点
(1)风险驱动
⑵主要适用于内部开发的大规模软件项目
⑶要有具有丰富风险评估专门知识的开发人员,否则风险更大。
喷泉模型的优点: 喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
喷泉模型的缺点
由于喷泉模型在各个开发阶段是重叠的,
因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
3、成本/效益分析的目的是什么?
答:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。
4、某计算机系统投入使用后,5年内每年可节约人民币10000元,按年利率12%计算,假设系统的投资额为30000元,试计算其效益。
5、需求分析过程应该建立3种模型是什么?
数据模型 ---- 实体-联系图
功能模型 ---- 数据流图
行为模型 ----状态转换图
6、请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。
7、简述总体设计的原理是什么?
答:模块化、 抽 象、 逐步求精、 信息隐藏和局部化、 模块独立。
8、按耦合由强到弱的程度写出7种耦合类型?
答:内容耦合 公共耦合 外部耦合 控制耦合 标记耦合 数据耦合 非直接耦合
9、按内聚性由高到低的程度写出7种耦合类型?模块设计目标是什么?
力争强内聚、弱耦合
10、模块设计规则?
答:
1.改进软件结构提高模块独立性。
2.模块规模应该适中。3.深度、宽度、扇出和扇入都应适当。
4.模块的作用域应该在控制域之内。
5. 力争降低模块接口的复杂程度。
6. 设计单入口单出口的模块。
7. 模块功能应该可以预测。
答:面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。
面向数据流的设计要解决的任务,就是在需求分析的基础上,将表示系统逻辑模型的DFD图映射(Mapping)成软件系统结构的初始设计描述。
12、在下面DFD 图上已标出逻辑输入、逻辑输出和变换中心的分界,请转换成SC图
13、总体设计阶段的基本目的是什么?总体设计阶段主要由哪两个小阶段组成的?
总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。
总体设计阶段主要由两个小阶段组成。
首先需要进行系统设计,从数据流图出发设想完成系统功能的若干种合理的物理方案,分析员应该仔细分析比较这些方案,并且和用户共同选定一个最佳方案。
然后进行软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系。层次图和结构图是描绘软件结构的常用工具。
15、假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
用判定树表示计算行李费的算法
16、从下列流程图导出程序图 ,并用三种方法计算出环形复杂度V(G)
17、用Halstead度量还可以用来预测程序中可能存在的错误E。一个程序对75个数据库项共访问1300次,对150个运算符共使用了1200次,预测该程序的错误数是多少?
那么预测该程序的错误数:
E = (1200+1300)log2(75+150)/3000 6.5
即预测该程序中可能包含6~7个错误
18、将下列用PDL伪代码表示的某种模块的过程性描述改用N-S图或程序流程图图表示。
execute process a
REPEAT UNTIL condition X8
execute process b
IF condition X1
THEN BEGIN
execute process q
IF condition X6
THEN
REPEAT UNTIL condition X7
execute process i
ENDREP
ELSE BEGIN
execute process h
execute process g
END
ENDIF
ELSE CASE OF Xi
WHEN condition X2 SELECT
DO WHILE condition X5
execute process C
ENDDO
WHEN condition X3 SELECT process d
WHEN condition X4 SELECT process e
ENDCASE
ENDIF
ENDREP
execute process j
END
19、某计算机系统投入使用后,5年内每年可节约人民币10000元,按年利率12%计算,假设系统的投资额为30000元,试计算其效益。答: