- 为了解决软件危机,人们提出了用(工程学)的原理来设计软件。
- 软件危机”是指(软件开发和维护中出现的一系列问题)。
- 在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于(计划时期)
- 软件工程的基本要素包括(方法、工具、过程)。
- UML是软件开发中的一个重要工具,它主要应用于(面向对象的方法)软件开发方法。
- 软件生存周期包括可行性分析、需求分析、概要设计、详细设计、编码、(测试)、维护等活动。
- 结构化程序设计主要强调的是(程序易读性)
- 软件价格便宜不是软件危机的表现形式
- 软件是(程序及其文档) / (程序+数据+文档)
- 软件开发过程:定义/计划->开发->运行/维护
- 软件工程的出现主要是由于(软件危机的出现)
- 产生软件危机的原因:( 软件产品本身的特点,开发和维护过程中用的方法不正确 )
- 软件工程的基本目标是( 开发足够好的软件 )。
- “软件工程”术语是在( 1968年NATO会议 )被首次提出。
- 运行正确的软件就是高质量的软件(X)
- 软件质量是在开发过程中逐渐构建起来的。 (√)
- 软件产品质量越高越好,最理想的情况是达到“零缺陷”。 (X)
- 软件质量是由产品的功能、性能、易用性等外在特性决定的。(X)
- 与传统方法相比,敏捷方法适合需求变化大或开发前期对需求不是很清晰的项目 (√)
- 敏捷方法尤其适合于开发团队比较庞大的项目(X)
- 敏捷方法的思想是适应性,而不是预设性(√)
- 敏捷方法以原型开发思想为基础,采用迭代式增量开发 (√)
- 代码审查用于检查源代码是否达到模块设计的要求。(√)
- 代码在审查之前必须要成功地编译通过。(√)
- 代码审查比运行程序进行测试的效率低。(X)
- 代码审查可以发现不符合团队代码规范的地方。(√)
- 软件开发瀑布模型中的软件定义时期各阶段( 问题定义—可行性研究—需求分析 )
- 瀑布模型是(适用于需求被清晰定义的情况)/缺点:(不灵活)
- 在SCRUM中,迭代计划会议的主要议程是(讨论产品代办事项列表最需优先完成的事项)
- 增量模型是(一种需要快速构造核心产品的好方法)
- 原型化模型是(适用于客户需求难以清楚定义的情况)
- 开发团队了解待开发软件的相关领域知识,尽管此系统庞大,但其较已经开发的系统差异并不大:瀑布模型
- 软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位:瀑布模型
- 开发一个已发布软件的新版本,公司规定了严格的完成期限,并对外公布:增量模型
- 一个位于火车站的交互式火车车次查询系统:原型模型
- 敏捷开发法是一种以团队为核心,自顶向下、循序渐进的开发方法(X)
- 敏捷开发法适合项目常发生变更、高风险项目实施、项目规模小的开发场景(√)
- 敏捷开发法适合对系统有极高的关键性、可靠性、安全性要求的项目开发场景(X)
- 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( 数据定义 )
- 结构分析方法就是面向( 数据流 )的自顶向下逐步求精进行需求分析的方法。
- 一般说来,验证软件需求应考虑的因素有(一致性、完整性、现实性和有效性)。
- 数据字典是用来定义( 数据流图 )中的各个成份的具体含义的。
- 进行需求分析可使用多种工具,但( N-S图 )是不适用的,适用的有:数据流图、判定表、数据字典。
- 系统在200人同时使用时,操作响应时间不能超过0.5秒”,这属于 性能需求
- 用户提出系统在一个月内不能出现2次以上的故障,这属于( 可靠性需求 )
- 需求分析中开发人员要从用户那里了解( 软件做什么 ),实施应该在( 软件定义阶段 )。
- 画某系统的数据流图时,顶层图有( 1张 )
- 通过( 功能分解 )可以完成数据流图的细化。
- 在数据流图DFD中,基本符号元素:数据流、数据处理、数据存储、外部实体
- “→”箭头,表示数据流;
- 〇:圆或椭圆,表示加工;
- =:双杠(带一边开口,一边闭合),表示数据存储;
- □:方框,表示数据的源点或终点.
- 其绘制采用自上向下、逐层分解的方法
- 是一种描述数据及其变换的图形表示,在数据流图上不允许出现( 控制流 )
- 是用作结构化分析的一种工具
- 舍去了具体的物质,只剩下数据的流动、加工处理和存储
- 软件需求规格说明应包括( 功能、用户界面、运行环境、性能 )—不包括具体算法。
- 数据流图和( 数据字典 )共同组成系统的逻辑模型。
- 在E-R 模型中,包含以下基本成分( 实体、联系、属性 )
- 软件需求分析阶段的工作,可以分为四个方面:对问题的识别、分析与综合、编写需求分析文档以及( 需求分析评审 )
- “列车车门在两个停靠站之间要保持关闭”;“列车发生紧急停车时,要打开车门”。这里出现的需求问题是(矛盾与不一致的需求)
- 项目管理三要素:时间、成本、质量
- 项目建议书——项目初始阶段
- 设计模式一般用来解决( 同一问题的不同表相 )的问题.
- 设计模式的两大主题是( 系统复用与系统扩展 ).
- 设计模式具有的优点( 适应需求变化 ).
- 通过应用设计模式能够解决( 指定对象的接口、针对接口编程、设计应支持变化 )
- 创建型模式主要用于创建对象(√)
- 结构型模式主要用于处理类或对象的组合(√)
- 面向对象三大特性(封装、继承、多态),基本原则的是 ( 单一职责原则(SRP) 、开放封闭原则(OCP) 、里氏替换原则(LSP)、 依赖倒置原则(DIP)、 接口隔离原则(ISP)、迪米特法则(Law Of Demeter)、组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP))
- ( 桥接 )将抽象部分与它的实现部分分离,使它们都可以独立地变化。
- Open-Close原则的含义是一个软件实体( 应当对扩展开放,对修改关闭 )
- 开闭原则不允许修改源代码
- 单一职责:每一个类应该专注于做一件事情,当一个类承担的职责过多时,需要将职责进行分离,将不同的职责封装在不同的类中。
- 低层模块依赖于高层模块,细节可以依赖抽象(低—>高 / 细节—>抽象)
- 面向对象设计:针对接口编程,而不是针对实现编程。
- 依赖倒置原则:就是要依赖于( 抽象 ),或者说要针对接口编程,不要针对实现编程。
- 继承是动态的,在系统编译时就已经决定了对象的行为(X)。
- 里氏替换原则指的是父类型和子类型之间可以相互替换(X)
- ( 原型 )模式的关键是将一个对象定义为原型,并为其提供复制自己的方法。
- 创建型模式有( 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 )
- 结构型模式(代理模式、适配器模式、桥接模式、装饰模式、享元模式、组合模式)
- 行为型模式(职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式)
- 我们可以使用( 单例模式 )来模拟实现打印池的设计。
- 我们可以使用( 单例模式 )来模拟实现居民身份证号码办理。
- 单例模式能保证一个类只能产生一个唯一的实例
- 可以使用( 建造者模式 )描述KFC如何创建套餐。
- 创建型模式关注的是对象创建。
- 简单工厂模式的核心是( 简单工厂 )
- 简单工厂模式中,如果需要增加新的具体产品,通常需要修改(工厂类)的源代码
- 工厂方法模式的核心是( 一个抽象工厂 )、工厂模式就是为了消除if else
- 简单工厂模式可减少系统中类的个数,简化系统的设计,使得系统更易于理解(X)
- 在原型模式中,
,因此对于原型模式的扩展很灵活,对于已有类的改造也较为容易(X)(需要为每一个类配备一个克隆方法)不需要为每一个类配置一个克隆方法 - 在( 防止一个资源管理器窗口被实例化多次 )时可以使用单例模式。
- 抽象工厂模式隔离了具体类的生产,使得客户并不需要知道什么被创建,确保系统总能根据当前的情况获得合适的对象(√)
- 抽象工厂模式针对的是多个产品族结构,一个产品族内有多个产品系列,不是一个产品等级结构、一个抽象产品类。(√)
- 工厂方法模式只有一个抽象产品类(√)
- 工厂方法模式的具体工厂类可以创建多个具体产品类的实现(X)
- 简单工厂模式完全符合“开闭原则”(X)
- 单例模式和原型模式是冲突的(√)
- 单例模式适用于当类只有一个实例,而且客户可以从一个公共的访问点访问它(√)
- 在并发的情况下,懒汉式单例模式是不安全的(√)
- 可以把饿汉式单例模式看成是预加载,懒汉式单例模式则为延迟加载(√)
- 将一个类的接口转换成客户希望的另一个接口——适配器模式(Adapter)
- 使用( 代理模式 )来设计该权限管理模块。
- 可以使用( 桥接模式 )来模拟实现模拟毛笔的使用。
- 电源总开关、可以使用( 外观模式 )来模拟设计该系统。
- 策略模式的意图是:(定义一系列的算法,把它们一个个的封装起来,并且使它们可相互替换)策略模式使得算法可独立于使用它的客户而变化。
- 关于Scrum的每一次冲刺(Sprint),下面的( D )是正确的
A.Sprint是一个不超过4周的迭代,其长度一旦确定,将保持不变。
B.Sprint的产出是一个可用的、潜在可发布的产品增量。
C.Sprint在进行过程中,其开发目标、质量验收标准和团队组成不能发生变化。
D.以上所有选项
58. 下面的( A )不是敏捷开发方法的特点。
A.软件开发应该遵循严格受控的过程和详细的项目规划。
B.客户应该和开发团队在一起密切地工作 。
C.通过高度迭代和增量式的软件开发过程响应变化。
D.通过频繁地提供可以工作的软件来搜集人们对产品的反馈。
59. 在每日站立会议上,下面( C )不是每个团队成员需要回答的主要问题。
A.从上次Scrum站立会议后你做了什么?
B.你遇到哪些障碍或困难?
C.你所遇到问题的原因是什么?
D.你打算到下次Scrum站立会议完成什么?
60.下面的( A )不属于产品负责人(Product Owner)的职责范围.
A. 组织每日站立会议B.定义产品需求
B. 确定需求优先级
C. 验收迭代结果
D. 负责产品的投资回报
61.下列不是需求建模方法的是?( B )
A. 原型方法
B. 结构化设计方法
C. 面向对象的用例分析方法
D. 功能列表方法