软件工程复习题-附加答案 - 教程
判断题:
软件工程决定了软件的质量;商业模式决定了一个软件企业的成败 T
软件工程是把平台的、有序的、可量化的方法应用到软件的开发、运营 维护上的过程。T
软件开发流程的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。T
软件是可以运行在计算机及电子设备中的指令和数据的集合。(程序)F
软件的行为和用户的期望值一致就叫做Bug(不一致)F
单元测试应该准确、高效地保证程序所有模块的正确性。F
单元测试必须由最熟悉代码的人(程序的作者)来写T
单元测试过后,机器状态应保持不变。T
单元测试要快,一个测试的运行时间应该是几秒钟而不是几分钟。T
单元测试应该覆盖所有代码路径,包括错误处理路径。T
单元测试应该自动化,这样每个人都能随时随地运行单元测试。T
一个模块的所有单元测试就是这个模块最初的功能基准线。T
在效能分析过程中通常先用代码注入的技巧对特定的模块进行详细分析,然后用抽样的方法找到效能瓶颈所在。(先用抽样的方式找到效能瓶颈所在,然后对特定的模块用代码注入的手段进行详细分析。)F

衡量一个员工能力的重要方面。T就是在团队工作中,稳定、一致的交付时间
代码风格的原则是:简明,易读,无二义性T
代码注释中应当尽量减少中文或其他特殊字符的运用,这是为了提高程序的可移植性。T
代码复审的过程就是确定代码是否在代码规范的框架内正确的解除了问题。T
结对编程中,程序各方面的质量取决于一对程序员中各方面木桶原则一样就是水平比较低的那一位,就像。F
瀑布模型是一个单向,不可逆的生产流程T
RUP(统一软件过程)流程在大尺度上像迭代模型,在每个阶段内像瀑布模型。(反了,每个阶段有若干次迭代组成)F

尽早并持续的交付有价值的软件以满足客户需求T就是敏捷开发的原则
敏捷研发的冲刺阶段是任务驱动的,任务完成就结束。(时间驱动)F

敏捷宣言表明的是一些优先级,不必当做圣旨或者教条来争论T
创新可以分为改良型的创新和颠覆型的创新T
PM(项目经理)最大、最独特的贡献是带领团队达成最重要的目标,并保持团队的平衡。T
典型用户及包含受欢迎的典型用户,同时还要包含不受欢迎的典型用户。T
软件工程说明书,核心用来说明软件的内部功能和用户的交互情况。F

软件技术说明书,主要用来说明软件内部的设计规范。T
在需求分析阶段,我们要搞清楚用户的需求是什么,软件如何解决用户的需求。T
在设计与实现阶段,我们要搞清楚软件是怎么应对这些需求的。T
在测试和发布阶段,我们要搞清楚软件真的解决了这些需求了么。T
好的设计应当让操作者不需要花费额外的注意力,也不需要经验与专业知识即可凭直觉达成正确的操作。T
用户体验设计的一个主要目的是降低用户的认知阻力。T
认知阻力是用户对于软件界面的认知和实际结果的差异。T
大多数用户的心理是以熟练掌握认知阻力大的工具而自豪的。(躲避认知阻力,大多数人不喜欢认知。)F
黑箱测试将软件系统看作一个黑箱,无法了解或使用系统的内部结构及知识。T
白箱测试中设计者可以看到软件系统的内部结构,并应用软件的内部结构和知识来选择测试数据及具体的测试方法。T
在软件开发的一定阶段,对软件进行全面和环境的测试,以保证软件的各个模块都能共同工作,各方面均能满足用户的要求。T就是系统测试
效能测试要验证的问题是:软件在超过设计负载的情况下是否仍能返回正常结果,没有产生严重的副作用或崩溃。(压力测试)F

测试在项目的最后进行就可以了(全过程)F
测试就得根据规格说明书来测,是很机械的。F
测试人员当然也写代码,但是质量不一定要很高。F
测试的时候尽量用Debug版本,便于发现Bug(早期Debug 后期Release)F
测试设计说明书告诉测试人员要如何设计测试。T
一个功能的所有测试用例合称为这个功能的测试用例集。T
Alpha版本通常指集成了关键功能的第一个试用版本。T
Beta版本通常指作用完备,稳定性高,用户可以在实际工作中直接运用。F

项目接近尾声时,要确保修复的门槛越来越高,这样才能不断提升系统的稳定性。T
重构是在尽量保持原有界面的基础上优化部分代码。T
重写是重新实现原有功能,同时,要分清是全部重写原有功能,还是加上许多新的能力。T
软件工程师的行为应与公众利益一致。T
软件工程师应以其客户和雇主利益最大化的方式做事,与公众利益保持一致。T
软件工程师应当确保自己的产品以及相关的修改满足最高的专业标准。T
软件工程师应当具备完整且独立的专业判断。T
软件项目的经理和领导人应该提倡并亲自采用符合道德规范的方式来管理软件的开发与维护。T
在于公众利益一致的原则下,软件工程师应当保证其职业的诚信和信誉。T
软件工程师应当公平对待同侪,并予以协助和帮助T
软件工程师应当终生学习以提高自身的专业水平,并在工作实践中推动落实道德准则。T
单选题
1、下面关于软件和硬件的区别错误的是?
会退化就是A. 软件不会磨损但
B. 软件是纯逻辑产品
C. 软件不是制造出来的,而是开发出来的
D. 软件无法像硬件一样进行测试
2、根据基本的软件过程框架,“编写代码”属于下面哪个活动?
A. 软件需求分析
B. 软件体系结构设计
C. 软件构造
D. 软件部署

3、CMMI(能力成熟度模型集成)阶段式模型中成熟度等级中最高的是哪一级?
A. 优化级
B. 定量管理级
C. 已定义级
D. 已管理级
(记忆:最高==优化)

4、下面哪一项关于敏捷创建原则的陈述是不正确的?
A. 个体和交互重于过程和应用
B. 可运行的软件重于全面的文档
C. 客户合作重于合同的协商
D. 按计划行事重于对变化的响应

5、下列哪一种UML图能够描述用况(use case)的步骤以及步骤之间的顺序?
A. UML类图
B. UML用况图
C. UML活动图
D. UML构件图
(记忆:活动图,步骤顺序----活动顺序!)
6、下面关于分层数据流图的说法中不正确的是?
A. 数据流图中所有的加工(processing)向下分解的层数都要一样
B. 分层数据流图中的父图和子图之间的数据流要保持平衡
C. 数据流可以从一个加工流向另一个加工
D. 顶层图只有代表整个软件系统的一个唯一的加工
(记忆:分层不分量,数量可以不一样)
7、下图中右侧的数据流图针对左侧的1层图中的加工3进行了精化,请问该图(右侧的图)中哪一个数据流不满足数据流模型中父图和子图平衡的要求?

A. 数据流c
B. 数据流g
C. 数据流e
D. 数据流h
(记忆:数据流c只有一个出口就是数据流e,不能是数据流h)
8、以下关于软件体系结构的定义中最准确的一项是?
A. 一组面向对象的类以及类之间的关系
B. 组成软件系统的一组部件(或称模块、子系统)、部件之间的关系以及各个部件的外部可见属性
C. 软件系统的硬件和网络拓扑结构
D. 实现软件系统能力的算法和数据结构

9、以下各项中哪一个不是一种软件体系结构风格?
A. 层次式体系结构风格
B. 管道过滤器风格
C. 观察者模式和风格
D. 以数据为中心的风格
(记忆:观察者是看不到体系内部的结构的。)
10、下列哪种UML图能够建模软件系统在运行环境中的物理结构?
A. UML部署图
B. UML类图
C. UML顺序图
D. UML状态机图
(记忆:物理结构,部署图。)
11、下列关于软件体系结构的说法不正确的是?
A. 软件系统的高层设计结构
B. 往往得从动态、静态、部署结构等多个视图进行描述
C. 能够应用体系结构模式等设计经验
D. 主要关注于对于功能性需求的搭建,无需关注于非功能性需求(质量需求)的实现
(记忆:体系内外都要关注!无论是能力和非功能)
12、以下关于软件构造的说法中哪一项不正确?
A. 单元测试一般属于软件构造过程的一部分
B. 编写代码是软件构造的唯一手段
C. 模块集成一般属于软件构造过程的一部分
D. 应该根据手艺、人员等多方面因素选择编程语言

13、下列这些活动哪一项不属于软件构造过程?
A. 问题定义
B. 单元测试
C. 代码编写和调试
D. 模块集成

14、下列哪一种关系不会导致两个类A和B之间的耦合?
A. 类A中的方式m1调用类B中的方法m2
B. 类B中的方法m访问类A中的属性p
C. 类A中的方法m访问类A中的属性p
D. 类A和类B中的手段共享一个全局变量g
(记忆:内部关系的访问不会耦合!)
15、下列关于软件模块化设计的说法中哪一个不正确?
A. 模块的数量越多越好,这样每个模块的编写工作量就会很小从而使整体构建变得简单
B. 每个模块都应当尽量对其他模块隐藏自己的内部实现细节
C. 模块与模块之间相对独立但又有所关联
D. 模块化设计体现了对于困难困难的分解
(记忆:模块的数量不是越多越好。)
16、软件模块化设计中模块独立性可以用什么指标来衡量?
A. 圈复杂度
B. 内聚度与耦合度
C. 模块代码行数
D. 模块接口数量
(记忆:高内聚低耦合)
17、下列关于软件测试的说法中不正确的是
A. 正确的,即测试可以发现程序中所有的错误就是测试是为了证明程序
B. 测试是一个为了发现错误而执行程序的过程
C. 一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例
D. 一次成功的测试是指发现了迄今为至尚未发现的错误的测试
(记忆:测试无法发现所有错误。)
18、下列哪种测试是重新执行一些已经执行过的测试,以此来保证对于代码的修改没有带来一些意外的副作用?
A. 恢复测试
B. 回归测试
C. 冒烟测试
D. 确认测试
(记忆:回归测试-已经执行====已经回归)
19、基本路径覆盖测试属于一种
A. 回归测试
B. 平台测试
C. 黑盒测试
D. 白盒测试

20、通过修改代码消除一个已发现的错误属于哪一种软件维护类型?
A. 纠错性维护
B. 适应性维护
C. 改善性维护
D. 预防性维护
(记忆:已发现的错误,纠错性维护===错误纠错。)
21、下面关于软件的说法正确的是?
A. 在得到可运行的软件代码之前我们没有任何办法发现需求和设计缺陷
B.软件开发缺陷从引入到被发现并解决的潜伏时间越长消除缺陷的成本越高
C. 对于一个成功的软件开发项目,其唯一的可发布产品就是可运行的程序
可以凭借增加程序员来赶上进度就是D. 软件开发工程落后于原定计划时总
(记忆:潜伏越长成本越高)
22、下列关于“软件危机”的表现的说法中不正确的是?
A. 软件项目的失败率很高,屡屡发生延误
B. 软件项目难以维护和修改
C. 软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势
D.人们不再需要计算机软件
(人们仍然需要计算机软件)
23、根据基本的软件过程框架,“用况分析”属于下面哪个开发活动?
A. 软件需求分析
B. 软件体系结构设计
C. 软件构造
D. 软件部署

高级语言?就是24、下列哪种编程语言不
A. Java语言
B.汇编语言
C. C++语言
D. C#语言
(记忆:汇编属于机器语言)
25、下列哪一种软件开发过程模型是迭代的?
A. 瀑布模型
B. V-模型
C. 增量模型
D. 螺旋模型
(记忆:螺旋-迭代)
26、能力成熟度模型CMM是一种评价什么的成熟度模型?
A. 程序员的个人开发能力
B. 软件方案的管理能力
C. 软件机构的软件过程能力
D. 项目经理的个人能力
记忆:

27、下列关于敏捷(Agile)方法的说法不正确的是?
A.不需要编写任何制作文档
B. 以几周到几个月的时间为周期不断进行迭代,尽快、不断地发布可运行软件
C. 欢迎变化的需求,即使该变化出现在开发的后期
D. 强调软件开发中人的作用和交流的作用
需要适当的文档)就是(记忆:敏捷还
28、下列哪一种UML图最适合描述软件系统的外部行为?
A. UML类图
B.UML状态机图
C. UML活动图
D. UML构件图
记忆:

29、下图中右侧的数据流图针对左侧的1层图中的加工1进行了精化,请问图中哪一个数据流不满足数据流模型中父图和子图平衡的要求?

A. 数据流a
B. 数据流b
C.数据流c
D. 数据流f
(记忆:1的出口是b和c,右图只有b没有c)
30、下列哪些属于可能的需求获取来源?
A. 客户和用户代表
B. 与待开发软件相似的其他软件系统
C. 与待开发软件业务领域相关的法律法规
D. 以上这些都是
各方各面)就是(记忆:获取需求的来源
31、以下哪一项内容不属于软件体系结构设计?
A.一个关键部件内部的核心算法设计
B. 将系统分解为多个部件(或子系统、模块)
C. 考虑部件间的接口设计
D. 明确每个部件的外部可见属性
(记忆:体系结构不涉及算法)

32、如下图所示的这种软件体系结构风格是?

A. 管道过滤器体系结构风格
B. 层次式体系结构风格
C.以材料为中心的体系结构风格
D. 调用和返回体系结构风格
(记忆:中间的图形是数据库的图形)
33、下列关于面向对象设计的说法不正确的是?
A. 类是一组具有相同属性和相同操作的对象的集合
B.为了研发和集成方便,每个类都应当将自身的大多数属性和方法对外开放
C. 对象间凭借消息传递的方式进行通信
D. 类与类之间相对独立但又相互协作
(记忆:属性对内办法对外)
?就是34、下列关于软件构造中的模块集成的说法不正确的
A. 集成过程往往伴随着集成测试
B.应当等所有模块开发好之后一次性完成模块集成
C. 集成之前各个模块应当都通过单元测试
D. 集成过程基于软件的设计方案
(记忆:一次性集成就晚了!)
35、下列关于白盒测试的说法中不正确的是?
A. 测试人员根据程序内部的逻辑结构及有关信息设计测试用例
B.可以保证100%覆盖程序执行的各种可能性
C. 主要用于模块级测试
D. 目的是检查程序中不同的逻辑路径是否都按预定的要求正确地工作
(记忆:白盒测试不能做到百分之百)
36、下列软件测试方法中哪一个不属于白盒测试方法?
A.等价类划分方法
B. 条件组合覆盖途径
C. 基本路径覆盖测试
D. 数据流测试

最高的?就是37、在软件的模块化设计中,下列哪种内聚度
A. 顺序内聚
B. 逻辑内聚
C. 过程内聚
D.功能内聚

38、下列哪一种测试不属于系统测试?
A. 恢复测试(recovery testing)
B. 安全测试(security testing)
C. 压力测试(stress testing)
D.集成测试(integration testing)

39、根据McCall软件质量模型,以下哪一项不属于软件运行方面的质量要素?
A. 可靠性(reliability)
B. 正确性(correctness)
C. 效率(efficiency)
D.可移植性(portability)(转移方面的)

记忆:

40、通过修改代码消除一个所发现的错误属于哪一种软件维护类型?
A.纠错性维护
B. 适应性维护
C. 改善性维护
D. 预防性维护
(记忆:错误-纠错。)
41、下面关于软件的说法错误的是?
A. 软件也能够像汽车一样借助构件组装的方式开发
B. 软件能够通过模拟运行环境的方式进行测试
C. 软件测试无法证明软件的正确性
D.软件只能通过编写代码这一种方式进行构造
(记忆:构造很多种。)
42、下列关于“软件危机”的原因的说法中不正确的是?
A. 客户对软件需求的描述往往不够精确
B. 软件是不可见的逻辑产品,开发进度、成本难以估计
C.社会经济发展对于计算机软件的需求度不高
D. 软件开发缺乏有力的方法学和工具的支持
(记忆:计算机软件的需求仍然很高)
43、下列哪一项任务属于部件级详细设计?
A.局部的算法和数据结构设计
B. 软件总体体系结构设计
C. 软件的数据库设计
D. 编写代码达成给定的功能
(记忆:算法属于详细设计)
44、下列哪种编程语言不是面向对象编程语言?
A.C语言
B. Java语言
C. C++语言
D. C#语言
(记忆:c面向过程。process)
45、下面关于瀑布模型的缺点的说法中不正确的是?
A. 开发阶段之间缺乏反馈和迭代
B. 开发早期存在的问题往往要到交付使用时才发现,解决问题的代价较高
C. 缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发
D. 需要的开发人员数量比较多、开发团队庞大
人数)就是(记忆:瀑布的缺点不
46、能力成熟度模型CMM是一种评价什么的成熟度模型?
A. 程序员的个人开发能力
B. 软件计划的管理能力
C. 软件机构的软件过程能力
D. 项目经理的个人能力
(记忆:CMM是注重过程的)
47、敏捷(Agile)开发方法强调“可运行软件的价值高于详尽的文档”的重要原因是?
A. 编写文档会浪费时间
B. 能够尽早开展软件测试活动
C.让客户和用户通过可运行的软件更好地了解当前的软件开发状况,从而从他们那里获得快速和有价值的反馈
D. 加快项目开发的进度
客户。户敏-沪闵)就是(记忆:敏捷的原因
48、下列哪一种UML图能够反映对象间消息发送的先后顺序?
A. UML顺序图B. UML类图 C. UML活动图 D. UML构件图
(记忆:顺序顺序)
49、按照下面的数据流图,哪些加工(processing)产生了加工4所需的输入数据流?

A. 加工5
B.加工1和加工2
C. 加工3和加工5
D. 加工1、加工2和加工5
50、下列哪一项不属于一种需求获取方式?
A. 现场观察
B. 客户访谈
C. 调查问卷
D.编写测试用例
(记忆:测试不获取需求)
?就是51、下面这些关于软件设计模式的说法中不正确的
A. 设计模式代表着一种软件设计经验
B.设计模式许可像软件构件一样经过接口调用的方式进行复用
C. 应用设计模式往往有利于软件设计的可扩展性和可维护性
D. 设计模式的描述一般包括所针对的疑问、上下文、解决方案及其优缺点的描述等
(记忆:设计模式不是接口)
52、如下图所示的这种软件体系结构风格是?
A. 管道过滤器体系结构风格
B.层次式体系结构风格
C. 以数据为中心的体系结构风格
D. 调用和返回体系结构风格
(记忆:**层)
53、软件设计中模块的内聚度是指?
A. 一个模块中的内部信息对外隐藏的程度
B. 一个模块内部的代码行数
C.一个模块内部各个元素彼此结合、紧密相关的程度
D. 一个模块与其他模块之间的关联程度
(记忆:各元素)

54、下列这些活动哪一项不属于软件构造过程?
A.问题定义
B. 单元测试
C. 代码编写和调试
D. 模块集成
55、在软件的模块化设计中,下列哪种耦合度是最高的?
A. 素材耦合
B.内容耦合
C. 控制耦合
D. 公共耦合

记忆:

56、下列哪一种测试类型能够发现模块间的接口兼容性问题?
A. 集成测试
B. 回归测试
C. 单元测试
D. 白盒测试乳品
记忆:

57、下列关于黑盒测试的说法中不正确的是?
A.测试人员根据代码内部的逻辑结构及有关信息设计测试用例
B. 可以检查软件的接口错误,如输入/输出参数的个数、类型等
C. 按照软件的需求规约检查程序的功能是否符合需求规约的要求
D. 等价类划分是一种黑盒测试方法
(记忆:黑盒测试和内部没有关系)
58、按照软件测试的V模型,下面哪一种测试与软件需求分析相对应?
A. 系统测试
B.确认测试
C. 集成测试
D. 单元测试
记忆:

59、根据McCall软件质量模型,以下哪一项不属于软件修改(revision)方面的质量要素?
A.效率(efficiency)(运行方面)
B. 可维护性(maintainability)
C. 灵活性(flexibility)
D. 可测试性(testability)

60、下列哪一种软件度量指标可以用于衡量软件项目的开发工作量?
A. 内聚度与耦合度
B.功能点度量
C. 圈复杂度
D. 缺陷密度

61.下面关于软件的说法正确的是?
A.功能正确性是对软件产品唯一的质量要求
B.软件无法测试,只能在使用中发现问题
C.大规模、复杂软件系统的开发应当遵循工程化的软件开发过程
D.通过对软件进行完整、详细的测试可以证明软件的正确性
(记忆:大规模-工程化。)
62.下面哪一项活动不属于GB/T 8566-2007《软件生存周期过程》中的主要过程?
A.软件需求分析
B.软件体系结构设计
C.软件详细设计
D.技术评审
(记忆:生存周期要么分析要么设计。)
63.下面哪一种软件开发过程模型不属于演化模型?
A.增量模型
B.螺旋模型
C.瀑布模型
D.原型模型
记忆:

64.下面哪一种思想不属于面向对象开发方法所特有的(相对于结构化开发方法)?
A.继承
B.逐步精化
C.类和对象
D.封装
(记忆:面向对象的特点:类 继承和封装)
65.下列哪一种关系属于面向对象中类之间的继承关系?
A.汽车与交通工具
B.汽车与发动机
C.汽车与驾驶员
D.汽车与道路
66.下面哪一项属于“汽车”的对象属性(即每个对象所独立拥有的属性)?
A.牌照号
B.发动汽车
C.汽车总数量
D.刹车
67.面向对象开发方法中的多态性是指?
A.对象可以具有多种不同的状态
B.同一个操作作用于不同的对象上允许有不同的解释,并产生不同的执行结果
C.对象可以拥有多个不同的操作
D.一个类可以从多个类那里继承而来
(记忆:多态:一个手段,不同的参数)
68.“响应时间不能超过1秒”属于下列哪一种需求?
A.功能性需求
B.性能需求
C.安全性需求
D.可靠性需求
(记忆:1秒性能)
69.下面哪一种图不能被用于描述软件需求?
A.UML用况图
B.UML活动图
C.UML构件图
D.数据流图
(记忆:构件图属于物理组件)
70.下列哪一种UML图可以描述一个用况中不同场景的执行路径?
A.活动图
B.用况图
C.类图
D.部署图
(记忆:活动图=数据流图。执行路径。)
71.下面哪一项不属于软件设计的目的?
A.建立将要实现的软件系统的总体蓝图
B.按照设计方案分解开发任务,从而分配给不同的开发者
C.明确软件的设计要求
D.定义各部分之间的约定和规范,保证各部分能顺利集成
(记忆:设计无法做到居无巨细的明确)
72.以下哪一项内容不属于软件体系结构设计?
A.一个关键部件内部的核心算法设计
B.将系统分解为多个部件(或子系统、模块)
C.考虑部件间的接口设计
D.明确每个部件的外部可见属性
(记忆:软件体系结构属于概要设计,不是详细设计。)
73.在文字编辑软件中记录并提供“最近使用过的文件”的效果遵循了以下哪一项用户界面设计原则?
A.减少用户的记忆负担
B.保持界面设计的一致性
C.允许用户交互随时被中断和撤销
D.允许用户对交互模式进行定制
(记忆:最近**减少记忆)
74.下面哪一项符合信息隐藏的设计准则?
A.采用模块间共享的全局变量
B.模块向外部开放所有内部数据结构
C.模块间完全独立、不进行任何通信
D.模块间凭借受控的接口进行通信
(记忆:接口是隐藏的。)
75.“重新执行已经进行过测试的子集以确保对程序的修改没有产生副作用”描述的以下哪一种软件测试类型?
A.集成测试
B.单元测试
C.回归测试
D.系统测试
(记忆:重新执行-回归测试:重新回归)
下列哪一项活动的目的?就是76.“确定错误的原因和准确位置并加以纠正”
A.白盒测试
B.黑盒测试
C.代码评审
D.调试
(记忆:调试debug)
77.“等价类划分”属于以下哪种软件测试类型?
A.白盒测试
B.黑盒测试
C.单元测试
D.集成测试
78.修改软件使其能够在新的操作系统上运行属于哪一种软件维护类型?
A.纠错性维护
B.改善性维护
C.适应性维护
D.预防性维护
(记忆:适应新的操作系统)
79.以下哪一项不属于可复用软件构件的典型特征?
A.清晰的外部接口和良好的可组装性
B.良好的封装型、易于定制和组装
C.实现较为简单的功能
D.设计和实现具有较高的通用性
(记忆:既然可复用就要复杂,不要简单的功能)
80.下列哪一项不属于软件配置管理的任务?
A.版本控制
B.模块集成
C.变更控制
D.部署审计
(记忆:配置是做外围的工作)
?就是81.下面关于软件的说法正确的
A.在软件能够完全运行起来之前大家没有办法对其质量进行评价
B.当软件开发项目落后于原定计划时,大家可以通过调入更多的程序员来赶上进度
可运行的程序就是C.一个成功的项目唯一的可发布产品就
D.不管什么类型的软件都会在其生命周期内随着时间不断演化
82.以下哪一项不属于瀑布模型的基本假设
已知的就是A.需求在实现之前
B.客户在每一个阶段都会提供反馈意见
C.需求与系统的所有主要涉众(stakeholder)的期望相符
D.需求不会有太大改变
不正确的?就是83.下列关于敏捷软件开发的指导思想的描述中哪一项
A传达信息最高效的一种方法就是.高质量的文档
B.即使在软件开发项目的后期,需求变更也是受欢迎的
C.可运行的软件是衡量软件开发项目进度的重要方法
D.应当尽早和持续地交付有价值的软件来满足客户
84.下列关于面向对象开发方法中的封装(encapsulation)思想的说法不正确的是?
一种信息隐藏技术就是A.封装
不可见的就是B.对象的使用者只能看见对象封装界面上的信息,而其内部建立
C.对象应该尽可能将其内部属性和操作对外开放
D.目的是使对象的使用者和生产者分离,使对象的定义和实现分开
85.下列哪一种关系属于面向对象中类之间的聚集关系?
A.汽车与交通工具
B.汽车与发动机
C.汽车与驾驶员
D.汽车与道路
86.类A访问了全局变量x,调用了类B的方法m1;类B访问了全局变量y,调用了类C的途径m2;类D访问了全局变量x,调用了类C的方法m2。根据以上描述,类A和哪些类存在耦合关系?
A.类B
B.类B、类D
C.类B、类C
D.类C、类D

87.下列关于面向对象分析中“出版物”、“图书”、“报纸”之间的关系的说法中不正确的是?
A.“图书”是“出版物”的子类
B.行将“出版物”定义为抽象类
C.“图书”类具有“出版物”类的所有属性,并且不能定义其他新的属性
D.“报纸”是“出版物”的子类
88.“用户学习该软件用户界面启用方法的时间少于10分钟”属于下列哪一种需求?
A.易用性(usability)需求
B.性能(performance)需求
C.安全性(security)需求
D.可靠性(reliability)需求
(记忆:学习时长为10分钟,很容易学习。)
89.下列关于数据流模型的说法中不正确的是?
A.可以描述各项特性之间的数据流向
B.支持层次化的分解和逐层精化
C.可以描述实体之间的继承关系
D.支持对数据流的结构化定义
90.下列哪种UML图可以描述一个软件系统在运行时所涉及的硬件结点以及各个结点上驻留的软件模块或部件?
A.活动图
B.顺序图
C.构件图
D.部署图
通过91.模块化设计中模块的效果独立性能够用模块的什么指标来衡量?
A.内聚度和耦合度
B.圈复杂度
C.代码长度
D.模块数量
92.以下关于模块化设计的说法中正确的是?
A.随着模块数量的增加,模块集成的成本会上升
B.模块数量越少越好
C.每个模块越小越好
D.模块数量越多越好
93.以下哪一项不属于详细设计的范畴?
A.细化的类和接口设计
B.模块内部数据结构设计
C.整体的体系结构风格设计
D.模块内部算法设计

94.下列哪一项不属于软件的可维护性的一部分?
A.可理解性(understandability)
B.可靠性(reliability)
C.可修改性(modifiability)
D.可移植性(portability)

95.按照软件测试的V模型,下列哪种测试类型与软件设计相对应?
A.单元测试
B.集成测试
C.确认测试
D.系统测试

96.下列软件测试方法或测试准则中哪一项不属于白盒测试?
A.逻辑覆盖测试
B.根本路径覆盖测试
C.数据流测试
D.等价类划分测试

97.下列关于软件测试的说法中不正确的是?
A.软件测试是为了在发布之前发现错误
B.测试不是唯一的软件质量保障手段
C.回归测试能够帮助开发人员确保不会因代码的修改而引入新的错误
D.集成测试只能在所有模块都完全集成在一起之后才能进行
98.以下哪一种活动能够在不改变软件的外部行为的情况下改善软件的设计?
A.软件重构
B.逐步求精
C.模块化设计
D.封装
99.根据McCall软件质量模型,以下哪一项属于软件运行方面的质量要素?
A.可靠性(reliability)
B.可维护性(maintainability)(修正方面的)
C.可复用性(reusability) (转移方面的)
D.可移植性(portability)(转移方面的)

100.下列哪一项不属于软件配置管理的目的?
A.预测变化
B.报告变化
C.识别变化
D.控制变化

多选题
- 软件工程的核心部分包括哪些软件开发活动?
- 构建管理
- 软件设计
- 软件测试
- 项目管理
- 软件工程包含以下哪些领域?
- 软件需求分析
- 软件构建
- 软件维护
- 软件测试
- 软件有各种形式,通常包含以下哪些?
- 系统软件
- 应用软件
- 恶意软件
- 杀毒软件
- Bug的多少通常可以用来评价软件的哪些特性?
- 用户满意度
- 可靠性
- 软件流程的质量
- 可维护性
- 软件工程的目标有哪些?
- 研发出符合用户需求的软件
- 利用一定的软件流程,在预计的时间内发布“足够好”的软件
- 能证明所构建的软件是能够维护和继续发展的
- 开发出一个没有bug的软件
- 针对一个Bug Fix,我们应该做Regression Test的原因是(回归测试)
- 验证新的代码的确改正了缺陷。
- 确保新的代码没有产生新的缺陷。
- 验证新的代码有没有破坏模块的现有功能。
- 确保新的代码产生了新的功能。

- 在VSTS中通常可以选择的分析方法有(Microsoft Visual Studio 2005 Team System )
- 抽样
- 抽象
- 代码注入
- 样本分析

- 卡内基梅隆大学用以衡量一个软件开发团队能力的模型是
- CMM(能力成熟度模型)
- CMU
- 演化I(CMMI)
- PSP
- 初级软件工程师的成长方向包含哪些
- 积累软件开发相关的知识
- 积累问题领域的知识和经验
- 对通用的软件设计思想和软件工程思想的理解
- 提升职业技能
- 软件开发的工作量和质量怎么衡量
- 项目/人物有多大
- 花了多少时间
- 质量如何
- 是否按时交付
- 代码规范一般包含哪些部分
- 代码风格规范
- 代码设计规范
- 代码书写规范
- 代码结构规范
- 代码设计中对于类的约定俗成有哪些
- 利用类来封装面向对象的概念和多态
- 避免传递类型实体的值,应该用指针传递
- 对于有显式的构造和析构函数的类,不要建立全局的实体
- 仅在必要时,才运用“类”
- 代码复审的形式包含哪些
- 自我复审
- 同伴复审
- 团队复审
- 结对复审
- 代码复审的核查表通常包含哪些
- 概要部分
- 设计规范部分
- 具体代码部分
- 效能与可测试性
- 两人合作的不同阶段有哪些
- 萌芽阶段
- 磨合阶段
- 创造阶段
- 解体阶段
- 影响他人几种方式中,属于感性出发点的有哪些
- 断言Assertion
- 桥梁 Bridge
- 说服 Persuasion
- 吸引Attraction
- 团队的共同特点包括哪些
- 团队有一致的集体目标,团队要一起完成这目标
- 团队有不同的个人目标,人与人之间存在竞争关系
- 团队成员有各自的分工,互相依赖合作,共同完成任务
- 团队成员依据个人目标进行分工,相互合作与竞争,达成集体目标
- 软件团队模式中围绕核心人物组成的团队通常是哪几个
- 主治医师模式
- 明星模式
- 交响乐团模式
- 爵士乐模式
- 软件开发流程中主要的模式有哪些
- 瀑布模型及其变种
- RUP统一流程模型
- 老板驱动的流程模型
- 渐进交付式的流程MVP和MBP
- RUP通常包含哪几个阶段
- 初始阶段
- 细化阶段
- 构造阶段
- 交付阶段
- 迭代式开发流程中终止迭代的条件有哪些
- 时间到了
- 钱花光了
- 用户满意了
- 搞定了计划的迭代次数
- 敏捷流程包含哪些步骤
- 找出完成产品需要做的事情
- 决定当前的冲刺需要解决的事情
- 冲刺
- 得到软件的一个增量版本,发布给用户。
- 敏捷对团队的要求包含哪些
- 自主管理
- 自我组织
- 多功能型
- 自适应型
- 敏捷的方法论有哪些
- FDD
- SCRUM
- 极限编程(XP)
- TDD
- 软件团队获得软件需求囊括哪些步骤
- 获取和引导需求
- 分析和定义需求
- 验证需求
- 在软件产品的生命周期中管理需求
- 软件的需求包含哪些方面
- 对产品功能性的需求
- 对产品开发过程的需求
- 非功能性需求
- 综合需求
- 软件产品的利益相关者有哪些
- 用户
- 顾客
- 系统/应用集成商
- 软件工程师
- 用户调研采用的方式有哪些
- 焦点小组模式
- 卡片分类模式
- 用户调查问卷模式
- 用户日志研究模式
- 敏捷开发中常用的进度预估法有哪些
- 估计扑克牌
- 划拳估计法
- T恤尺寸法
- 掷骰子法
- 软件工程领域的PM通常指代以下哪些职位
- Product Manager(产品经理)
- Project Manager(项目经理)
- Program Manager(微软的职位名称)
- Performance Manager
- 风险的类别包含以下哪些
- 人员风险
- 流程风险
- 技术风险
- 环境风险
- 风险管理水平通常包括哪些层次
- 大问题(Crisis)
- 缓和并防止困难(Mitigation&Prevention)
- 预计问题(Anticipation)
- 变问题为机遇(Opportunity)
- 一个合适的PM应当具备哪些能力
- 观察、理解和高效学习能力
- 分析管理能力
- 一定的专业能力
- 自省的能力
- 通过一个用户登陆的场景中通常能够分为哪些项
- UI层
- 逻辑层
- 数据库
- 物理层
- 用例(Use Case)通常包含哪些基础元素
- 标题
- 角色
- 主要成功场景
- 扩展场景
- 功能驱动设计(FDD)由哪些步骤组成
- 构造总体模型与功能列表
- 制定开发计划与功能设计
- 测试功能
- 实现具体效果
- 通过以下哪些图能够用来表达实体和实体之间的关系
- 思维导图
- 实体关系图
- 用况图或用例图(UCD)
- 数据流图
- 诺尔曼阐述的设计的三个层次是
- 本能层次
- 行为层次
- 反思层次
- 理想层次
- BUG一般分解为
- 症状
- 程序错误
- 根本原因
- 具体缺陷
- 功能测试涵盖下列哪些
- 单元测试
- 集成测试
- 系统测试
- 压力测试
- 非功能测试包含下列哪些
- 场景测试(功能测试)
- 效能测试
- 兼容性测试
- 软件安全性测试
- 压力测试中增加负载的方式通常有
- 沿着用户轴延长
- 沿着时间轴延长
- 减少环境可用资源
- 缩短系统运行时间(做不到)
- 以下属于测试用例设计的方法有哪些
- 等价类划分
- 边界值分析
- 决策表、因果图和功能图方法
- 正交实验设计方式
- 对于每一个bug,会诊小组要决定采取哪些行动
- 修复
- 本来就是这样设计
- 不修复
- 推迟发布
- 成功企业在创新方面的天然困境有哪些
- 要满足股东们的期望值
- 要拥有追逐利润的价值观
- 要遵循传统的流程
- 要重视客户的要求
- 在技术成熟度曲线中包含哪些阶段
- 技术触发期
- 期望膨胀期
- 低调发展期
- 主流发展期
- 影响产品竞争力的重要因素有哪些
- 产品行业的因素
- 公司和市场的因素
- 团队执行的因素
- 产品的价值因素
- 在采用队友评估的机制判断工作量时,通常包含哪些评价标准。
- 技巧等级或技术能力
- 劳动生产力或结果
- 对团队的贡献
- 对产品的贡献
- 通过在团队中解决争端能够采用哪些方法。(各有利弊)
- 投票
- 咨询
- 独裁
- 交换决定权
- 在团队合作的创造阶段,通常有哪些特性。
- 团队公开地讨论流程和工作的方式(不关心)
- 团队知道为何而战,并将注意力集中到如何创造、实现目标上。
- 高度自治,不再需要领导的教诲与介入
- 角色和职责能够根据项目的要求自然转换,没有人为此担心或抱怨。
填空题
1、计算机软件主要包括____。程序和文档
_____________。就是2、将软件开发过程分为若干阶段,每个阶段接受上一阶段的结果作为本阶段的输入,各个阶段以线性的方式依次进行的软件开发过程模型瀑布模型
3、在面向对象方法中,一组具有相同属性和相同操作的对象的集合称为____________。类
4、启用环境的一个特定情节或用况的一条执行路径(即用况实例)被称为__________。场景
5、要求“模块的内部建立对外隐藏,仅允许外界经过受控的接口访问模块的素材和操作”的软件设计原则叫__________________________。信息隐藏
6、在下面所示的类图中,类A的子类包括_____________。B和C

7、如下图这样的继承关系称为__________________________继承。多重继承

8、如下图所示的此种UML活动图被称为_____________________图。泳道图

9、契约式设计中常用的三种断言是先验条件、后验条件和不变式。

10、白盒测试中的语句覆盖准则是指被测程序的每个可执行语句都至少执行一次。
11、极限编程(Extreme Programming,简称XP)是一种_____________软件开发方法。敏捷
12、请列举3种基于计算机的系统中的系统元素类型____________________________。软件、硬件、网络基础设施、人员、数据库、文档、规程

13、使用系统的一个特定情节或用况的一条执行路径(即用况实例)被称为场景_。
14、要求“模块的内部搭建对外隐藏,仅允许外界通过受控的接口访问模块的数据和操作”的软件设计原则叫_信息隐藏____。
15、在面向对象方式中,没有实例的类称为________________________类。抽象
16、重新执行已经通过的测试用例集合的子集以确保对程序的修改没有产生副作用的测试种类称为_____________________。回归测试
17、面向对象方法中,“同一个操作作用于不同的对象上行有不同的解释,并产生不同的执行结果”这一机制被称为______________________。多态性
18、UML图中描述特定场景下交互各方消息发送和接收的顺序的是_____顺序_____图。
19、请用一句话简要概括下面这幅UML类图中线(line)与点(point)之间的关联关系所反映的含义:___2条或2条以上的线交于0个或1个点_____。


20、按照软件模块化设计的思想,各个模块应该具有高内聚低耦合的特性。

21、请列举两种除瀑布模型之外的软件开发过程模型:演化模型、螺旋模型、喷泉模型、基于构件的开发模型、形式方法模型。
22、极限编程(Extreme Programming,简称XP)是一种___敏捷_____软件开发方法。
23、在面向对象方法中,“汽车”与“交通工具”之间的关系被称为__继承__关系。
24、软件模块化设计中衡量一个模块与其他模块之间的关联程度的指标是__耦合___度。
25、在面向对象方式中,类的实例被称为___对象____。
_就是26、在UML类图中,表示整体与部分之间关联关系的聚集__关系。

27、软件体系结构设计主要包括一组软件部件、_部件之间的关系、部件的外部可见属性_这三部分内容。

28、重新执行已经通过的测试用例集合的子集以确保对程序的修改没有产生副作用的测试种类称为_回归测试___。
29、白盒测试的基本思想是__测试人员根据代码内部的逻辑结构及有关信息设计测试用例,覆盖不同的逻辑路径____。

30、软件测试中等价类划分手段中的“等价类”的含义是_等效的就是输入域的一个子集,该子集中的每个输入数据对揭露软件中的错误都____。

31.在基本的软件开发过程中解决“做什么”问题的开发活动是__需求分析___。
32.按照下图中的数据流描述,加工3的输入数据流包括____c、d _______?

33.在下面所示的类图中,类A与类__C _____之间的关系属于“整体-部分”关系。

34.描述一个软件系统在运行时所涉及的硬件结点以及各个结点上驻留的软件模块或部件的UML图是_____________________图。部署
___就是35.同时继承“陆上交通工具”和“水上交通工具”的类水陆两栖交通工具____。
36.下面这个UML图中所描述的关系是__________实现__关系。

37.不能进行实例化的类称为_________抽象_________类。
38.根据程序内部的逻辑结构及有关信息设计测试用例的软件测试称为____白盒_____测试。
39.软件测试中的语句覆盖是指____选择一组测试用例使得被测程序的每个可执行语句都至少执行一次___________________。

40.McCall软件质量模型中属于产品运行维度的质量要素包括(任意列举两种)______正确性、易用性、效率、可靠性、完整性_______________________________。
41.面向对象技巧中一个对象通常由对象名、___________和___________三部分组成。属性、操作

42.面向对象方法中一组具有相同属性和相同处理的对象的集合称为____类____。

43.在下面所示的类图中,类__ D ___拥有类A和类B中所有定义的所有属性和操作

44.面向对象方法中“在程序运行时才将消息所请求的操作与实现该操作的方式连接起来”的机制被称为_______________________________________动态绑定

45.包括一组软件部件、软件部件的外部属性、软件部件之间关系的软件设计是_____________________________________________软件体系结构
指_____就是46.白盒测试中的条件覆盖程序的每个判定中的每个条件分支都至少被执行一次____

47.程序调试的目的是____确定错误的原因和准确位置并加以纠正________

指___就是48.面向对象软件设计中的“开闭原则”一个模块应该对扩展开放对修改封闭_____

49.如下图所示的用况图中包含_____________个用况、_____________个参与者3、2

50.面向对象设计中模块的耦合度是指___不同的模块间相互联系和依赖的程度____

综合题
1,一个信用卡申请系统的基本功能描述如下。
客户向系统提交信用卡申请。申请接收功能接收信用卡申请并将其记录到信用卡数据库中。预处理特性从信用卡数据库中读取信用卡申请并对申请信息进行初步检查。对于不符合要求的申请,这个预处理功能会生成无效的信用卡申请反馈给客户。对于符合要求的申请,这个预处理功能会向信用检查能力提供一个有效申请列表。信用检查特性从一个外部信用机构获得信用记录,并以此为基础检查申请人的信用。对于那些未通过信用检查的申请,信用检查功能会向客户发送一个未通过的申请反馈。对于借助信用检查的申请,信用检查功能会生成一个审批依据的申请列表并提供给发卡功能。最后,发卡功能生成信用卡并将它们发送给客户
分析上面这个系统的数据流并且回答以下难题。
1)画出该架构的顶层数据流图

2)画出该系统的1层数据流图

2,一个招聘信息管理系统的描述如下。
在每一个招聘季,每个部门的部门秘书向系统提交职位列表和职位要求。“招聘准备”功能接收职位列表和职位要求,将它们记录到招聘数据库中,同时向外部的求职网站发布招聘广告。对这些职位感兴趣的求职者向招聘系统提交申请表格。“申请接受”功能接收申请表格,从招聘系统中读取职位要求,然后产生一个申请列表并发送给一个外部的能力测试系统。能力测试系统将能力测试结果发送给“最终决定”功能。该特性产生一个推荐列表给经理,并从经理那里获得通过的申请者列表,随后生成最终招聘列表并将其记录到招聘数据库中。最后,“通知”功能从招聘数据库中读取最终的招聘列表,之后向申请者发送招聘通知,同时向部门秘书发送新员工列表。
分析上面这个系统的数据流并且回答以下问题:
- 画出该系统的顶层数据流图

- 画出该系统的1层数据流图

3,根据以下所述的在线购物平台的需求画出相应的UML类图。
平台中有很多产品出售,每件产品都有产品ID、名称、价格和产品描述。框架记录客户信息,包括客户ID、姓名和年龄。客户分为VIP客户或者普通客户。每一个客户可以有多个订单。每一个订单有订单ID和时间,并具备至少一个订单条目。每一个订单条目对应于一件产品,同时记录该产品的数量。每一个订单对应于一个付款信息,该付款信息包括支付时间、支付方式和支付结果。

4,根据以下所述的学术会议论文发表信息系统的需求画出相应的UML类图。
每一个研究人员都有姓名、所属机构以及电子邮箱地址。每一个会议论文集都有会议名称、会议地点以及日期,并包含一个或者多个研究人员作为论文集的编辑,同时包含一系列(1篇或1篇以上)的论文。每一篇论文都有标题、摘要、页数,并包含一个或多个作者(这些作者也都是研究人员)。论文囊括三类,包括墙报、短文和长文。)

5,对于以下所述的出版物领域的需求画出相应的UML类图。
出版物领域中所涉及的业务类包括:出版物、数字图书、纸质图书、CD、人、作者、编辑。
一种人;每一本纸质图书可能没有或者囊括一张或多张CD作为附录;每一个出版物都有一个ISBN号、标题、页数、价格,包含一个或者多个作者并对应唯一的一个编辑;每一本数字图书有一个文件格式的属性,而每一本纸质图书都有一个印刷规格的属性;每一个人都有ID、姓名、性别和生日的属性。就是他们的关系和属性如下:数字图书和纸质图书都是一种出版物;作者和编辑都

6,某个银行支持两类账户:支票账户和储蓄账户。每个账户(无论支票账户还是储蓄账户)都需要记录账户号和余额,同时与一个客户相关联。客户需要记录身份证号、姓名、性别和出生日期。此外,支票账户需要记录最近一笔存款的金额,而储蓄账户则需要记录累计利息。

7.用况分析与建模
通过一个网上购物系统为用户给出了网络购物支持。运用该环境,用户在第三方支付架构的支持下进行商品的选择和购买。用户还可以查询订单状态。此外,网上商城的工作人员能够对支付成功的用户订单进行处理。
1)根据以上描述分析该网上购物系统的用况并用一个UML用况图进行描述

2)根据以下描述分析“订单处理”用况并用一个UML泳道图描述该用况
进入订单处理后,平台首先列出待处理的订单。工作人员查看订单列表并决定是否继续。如果选择结束处理,那么当前订单处理过程结束。否则(即选择继续处理)工作人员选择其中一个订单,接下来系统呈现该订单的详细信息。工作人员检查订单详细信息并决定该订单是否可以进行配送。如果暂时不能配送,那么工作人员返回查看订单列表。如果可以配送,那么系统发送一个配送单给第三方配送系统。第三方配送系统接收配送单之后,该工作人员返回查看订单列表。

8、用况分析建模。
为读者和图书馆工作人员提供服务的系统。读者可以在图书馆工作人员的帮助下,一起结束开设账户、借书和还书的过程。读者也可以通过网页独自搞定预约图书的过程。就是一个图书馆管理系统
1)根据上面的描述画出这个图书馆管理系统的UML用况图

2) 根据下面的描述用UML泳道图来描述“借书”该用况
一个读者把图书和他的读者卡交给图书馆工作人员。工作人员扫描图书的条形码,然后通过图书馆管理系统检索并展示图书信息。假设这本书已经被其他读者预约,那么工作人员会告诉读者这本书现在不能出借,然后将读者卡还给读者,借书过程结束。如果这本书没有被其他读者预约,那么工作人员扫描读者卡,然后通过图书馆管理系统获取并显示读者信息。如果读者没有未缴纳的罚款,那么系统将记录本次借书信息,然后工作人员将书和读者卡还给读者,借书过程结束。如果读者有未缴纳的罚款,那么工作人员告诉读者需支付罚款。如果读者选择支付,那么工作人员接收付款,框架更新罚款信息、记录本次借书信息,然后工作人员将书和读者卡还给读者,借书过程结束。如果读者选择本次不支付,那么工作人员将读者卡还给读者,借书过程结束。

9,某模块的流程图如下图所示。试分别根据判定覆盖、条件覆盖、路径覆盖这三种覆盖标准设计最少的测试用例。对于每个测试用例,列出其测试数据(即变量X和Y的值)、预期的输出结果、程序的执行路径(按照语句的标号列出路径)。

- 按照判定覆盖设计最少的测试用例
最少3个用例
测试数据 | 预期结果 | 执行路径 |
X=80, Y=80 | T=1 | abcg |
X=10, Y=20 | T=2 | abdeg |
X=55, Y=100 | T=3 | abdfg |
- 按照条件覆盖设计最少的测试用例
最少2个用例
测试数据 | 预期结果 | 执行路径 |
X=90, Y=30 | T=3 | abdfg |
X=10, Y=95 | T=2 | abdeg |
- 按照路径覆盖设计最少的测试用例
最少3个用例
测试数据 | 预期结果 | 执行路径 |
X=80, Y=80 | T=1 | abcg |
X=10, Y=20 | T=2 | abdeg |
X=55, Y=100 | T=3 | abdfg |
1.什么是软件工程?它目标和内容是什么?
软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;研发的软件易于移植;只需较低的维护费用;能按时完毕研发任务,及时交付使用;开发的软件可靠性高。软件工程内容:包括开发技术和开发管理两个方面。

2.软件开发中有哪几种过程模型?哪些适用于面向对象的软件开发?
软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。其中喷泉模型、统一软件过程适用于面向对象的软件开发。
结构分析方法?该方法利用什么描述设备?就是3.什么
结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,素材字典,作为描述程序,使用结构化语言,判定表,判定树描述加工逻辑。

什么?就是4.什么是软件概要设计?该阶段的主要任务
把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。基本任务:⑴设计软件系统结构⑵进行数据结构及数据库的设计⑶编写概要设计的文档⑷评审

5.软件维护有哪些内容?
(1)校正性维护。在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。(2)适应性维护。为了使应用软件适应计算机硬件、软件环境及材料环境的不断发生的变化而修改软件的过程称为适应性维护。(3)完善性维护。为增加软件机制、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。(4)预防性维护。为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。

6.软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?
否可以支付使用。就是软件测试要经过的步骤是:单元测试→集成测试→确认测试→平台测试。单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。集成测试是为了检查与设计相关的软件体系结构的有关障碍,也就是检查概要设计是否合理有效。确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。体系测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件

软件生存周期?它有哪几个活动?就是7.什么
软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。包括:可行性分析和工程开发计划,需求分析,概要设计,详细设计,编码,测试,维护。

8.衡量模块独立性的两个标准是什么?各表示什么含义?
内聚和耦合。内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。

9.什么是结构分析方法?结构化分析途径凭借哪些步骤来实现?
结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。实现的步骤:⑴了解当前系统的工作流程,获得当前环境的物理模型。 ⑵抽象出当前环境的逻辑模型。 ⑶建立目标系统的逻辑模型。 ⑷作进一步补充和优化。

10.什么是需求分析?需求分析阶段的基本任务是什么?
需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。基本任务:⑴问题识别⑵分析与综合,导出软件的逻辑模型⑶编写文档

“变换流”?就是11.什么样是“事物流”?什么
数据流图(DFD)一般可分为“变换流”, “事物流”两种。“变换流”:由输入﹑输出﹑变换(或称处理)三部分组成,是一顺序结构。“事物流”:它的某个加工,分离成许多发散的数据流,形成许多加工路径,并且根据输入值选择其中一个路径来执行。(这人加工称为事务处理中心)

12.单元测试有哪些内容?
单元测试主要针对模块的以下五个基本特征进行测试:(1)模块接口(2)局部数据结构(3)重要的执行路径(4)错误处理(5)边界条件

软件生存周期模型?有哪些重要模型?就是13.什么
生存周期模型:描述软件开发过程中各种活动如何执行的模型。对软件开发提供强有力的支持,为开发过程中的活动供应统一的政策保证,为参与开发的人员供应帮助和指导,是软件生存周期模型化工艺的基础,也是建立软件开发环境的核心。主要有:瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型。

14.软件设计的基本原理包括哪些内容?
⑴模块化:模块是软件的组成部分,是具有独立功能且可命名的一段代码,所有模块组成整体,可以满足问题的要求。⑵抽象:认识复杂现象过程所使用权的工具,只考虑事物本质的共同特性,忽略细节和其它因素。依据抽象确定组成软件的过程实体。⑶信息隐蔽:将模块实现自身功能的细节与数据”隐蔽”起来。模块间仅交换为完成系统能力所必须的信息。⑷模块独立性:每个模块只完成系统要求的独立的子能力。

15.结构化程序设计的基础要点是什么?
关键有三个:1、采用自顶向下、逐步求精的程序设计方法2、运用三种基本控制结构构造程序。任何工具都可以由顺序、选择、重复(循环)三种基础控制结构构造,这三种基本结构的共同点是单入口、单出口。3、主程序员组的组织形式。

16.详细设计有哪几种描述方法?
详细设计的描述方式有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述应用,语言常用过程设计语言(PDL)来作为应用。
17.单元测试中采用什么方法?
测试的方法是为被测试模块编写驱动模块和桩模块来构建被测试单元的可运行。通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结构并输出。桩模块则用来代替被测试模块所调用的模块。它的作用是返回被测模块所需的信息。
18.什么是软件配置管理?什么是基线?
把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。就是软件配置管理,简称SCM(Software Configuration Management),是指一组管理整个软件生存期各阶段中变更的活动。软件配置管理技巧行使软件变更所产生的错误达到最小并最有效地提高生产率。基线:是软件生存期中各开发阶段的一个特定点,它的作用
19.简述文档在软件工程中的作用?
文档在软件工程中的作用如下:(1)提高软件开发过程的能见度(2)提高开发效率(3)作为开发人员阶段工作成果和结束标志(4)记录编写过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。
20.软件工程三要素之间的关系?
软件工程的生命线,软件工程以质量保证为基础。质量管理促进了过程的改进,创造了许多行之有效的软件开发方法和工具。软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。方法支撑过程和工具,过程和工具又促进方法学的研究。就是软件质量
21.说明面向对象的特征?
指相同的操作或函数过程可以作用于多种类型的对象上并获得不同的结果。就是面向对象的特征是:(1)对象唯一性。每个对象都有自身唯一的标识,在对象生存期中,其标识不变,不同的对象不能有不同的标识。(2)分类性。是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类(3)继承性。是子类自动共享父类数据结构和办法的机制,这是类之间的一种关系。(4)多态性。
22.简述“变换分析”设计步骤。
⑴确定变换中心,逻辑输入和输出。⑵设计软件结构的顶层和第一层–变换结构。⑶设计中﹑下层模块,对第一层的模块自顶向下分解。⑷设计的优化 :输入部分求精,每个物理输入设置专门模块,以体现平台的外部接口。其它输入模块与转换数据模块都很简单时,可将它们合并。
23.请简述可行性研究有哪些步骤?
复查系统规模和目标;研究当前的系统;导出新环境的高层逻辑模型;重新定义问题;导出和评价可供选择的解决方案;推荐可行的行动方案;草拟开发计划;书写文档并提交审查。
24.请简述黑盒测试和白盒测试有何区别,黑盒测试有哪些常用途径?
黑盒测试和白盒测试的区别:前者基于机制,后者基于结构;黑盒测试常用方法有:边界值、等价类、因果图、错误推测法等。
25.什么是软件可维护性?常见的软件维护活动有哪几类?
软件可维护性的定义:软件能够被理解、校正、适应及增强效果的容易程度;常见的软件维护活动有:改正型、适应型、完善型、预防型。
什么?分为哪几个级别?就是26. CMM全称
CMM全称是软件能力成熟度模型;从无序到有序的进化分成5个级别,分别为:1 初始级;2 可重复级;3 已定义级;4 已管理级;5 优化级。
27.什么是数据字典?简述数据字典与数据流图的关系。
数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是信息流程图的补充工具;素材字典与数据流图的关系:数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图内容字典也难于发挥作用。 数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
28.软件生命周期划分为哪几个阶段?
软件生命周期分为三个时期八个阶段:软件定义:问题定义、可行性研究;软件开发:需求分析、概要设计、详细设计、编码、测试;软件运行:软件维护
29.简述三种面向对象模型的主要功能?
系统的控制及操作的执行顺序,它从对象的事件和状态的角度出发,表现了对象的交互行为。③能力模型:表示变化的系统“功能”性质,它指明系统应该“做什么”,因此效果模型更直接的反映了用户对目标平台的要求。就是①对象模型:表示了静态的结构化的架构数据性质,描绘了系统的静态结构,从客观世界实体的对象关系角度来描绘对象。②动态模型:该模型描述了系统的控制结构,它表示了瞬间的、行为化的系统控制性质,它关心的
30.详细设计的基本任务是什么?
详细设计的基本任务包括:为每个模块进行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计;其他设计;编写详细设计说明书;评审。
31.黑盒测试和白盒测试有什么区别?
(1)黑盒测试法: 把脚本看作一个黑盒子,完全不考虑程序的内部结构和处理过程。它只检查程序功能是否能按照规格说明书的规定正常使用,工具是否能适当地接收输入材料并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。黑盒测试又称为功能测试,包括等价类划分法、边界值法、错误推测法、因果图法等。(2)白盒测试法: 是把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测代码中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试,包含逻辑覆
32.什么是软件工程?软件工程面临的问题是什么?
用科学的知识和技术原理来定义,开发,维护软件的一门学科。软件工程面临的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。就是软件工程就
33.软件工程三要素之间的关系?
软件质量是软件工程的生命线,软件工程以质量保证为基础。质量管理促进了过程的改进,创造了许多行之有效的软件开发方式和器具。软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。技巧支撑过程和工具,过程和程序又促进方法学的研究。
34.简述结构化程序设计手段的核心要点。
顺序,选择和循环(3)采用主程序员组的组织形式。就是(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,分别
35.简述提高可维护性的方法。
(1)建立明确的软件质量目标;(2)利用先进的软件开发科技和设备;(3)建立明确的质量保证工作;(4)选择可维护的程序设计语言;(5)改进程序文档。
36.简述文档在软件工程中的作用。
(1)提高软件开发过程的能见度;(2)提高制作效率;(3)作为开发人员阶段工作成果和结束标志;(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件能力、性能。
37.什么是软件危机?产生原因是什么?
软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。产生原因:⑴ 软件规模越来越大,结构越来越艰难。⑵ 软件开发管理困难而复杂。⑶ 软件包开发费用不断增加。⑷ 软件开发技术落后。⑸ 生产方式落后,仍采用手工方式。⑹ 开发工具落后,生产率提高缓慢。
38.调试的目的是什么?调试有哪些技术手段?
调试则是在进行了成功的测试之后才开始的工作。调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错(Debug)。调试的技术手段有轻松的调试方式、归纳法、演绎法和回溯法等。
39.在传统软件工程方法指导下,数据流图和数据字典的关系如何?
数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是信息流程图的补充工具。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。 数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明

浙公网安备 33010602011771号