单选题
-
“是否有可用的软件配置管理工具”可用于识别( )
A人员风险
B过程风险
C技术风险
D开发环境风险 -
关于增量原型模型说法错误的是( )
A不含有软件需求分析阶段
B把软件产品作为一系列增量构建来开发
C分批逐步地向用户提交产品
D含有软件设计和编码阶段 -
关于情景分析的理解,正确的是?
A过程分析是描述每个交互步骤的详细内容
B角色分析是分析用户角色与软件系统的交互步骤
C过程描述是描述用户、第三方交互对象
D情景分析需要基于业务问题识别情景 -
以下所列的性质中,( )不属于面向对象程序设计的特性。
A继承性
B可视化
C封装性
D重用性 -
关于增量原型方法的解释正确的是( )
A基于用户原始需求,构造需求的可视化原型;用户对需求原型进行反馈,然后进行需求原型迭代,直到所有需求达
B通过将目标软件分割成不同的功能单元,每个功能单元作为独立的原型进行开发,最后将所有功能单元合并成完整
C先构建软件视图(View),数据层使用仿真原型服务,最后实现数据服务并进行软件集成
D通过逐步细化的方式对目标软件进行原型迭代开发,直到该原型作为最终产品交付给客户 -
面向对象设计时, 对象信息的隐藏主要是通过( )实现的。
A系统模块化
B模块的可重用
C子类的继承性
D对象的封装性 -
以下哪些不是UI设计的原则?
A隐藏性原型
B结构化原则
C容错原则
D简洁性原型 -
度量软件规模时,说法正确的是( )
A代码行技术是精确的度量技术
B功能点技术不适用于非过程编程语言
C功能点技术是精确的度量技术
D代码行技术不适用于非过程编程语言 -
模块的独立性是由内聚性和耦合性来度量的, 其中内聚性是()
A接口的复杂程度
B模块的功能强度
C模块间的联系程度
D信息隐藏程度 -
领域建模中,概念类之间的关系不包含()
A、IS-A关联
B、多对多关联
C、单向关联
D、HAS-A关联 -
以下哪个属于UML中的动态视图?
A类图
B包图
C用例图
D时序图 -
当产生需求冲突时以下那种解决方案是错误?
A理解和重视冲突双方的需求
B某些绝对要满足的需求,在客户不知道的情况下可以不保留
C非常重要但并非必须的需求是值得保留的
D基本需求需要达成一致 -
软件生命周期的英文是( )
A Software Implement
B Software Coding
C Software Design
D Software Life Cycle -
关于UI设计中心智模型说法不正确的是()
A只有互联网的软件产品设计才需要考虑心智模型
B用户的心智模型指导着用户使用软件的方式
C提高用户使用软件体验的方法是将目标用户的心智模型和软件产品功能结合在一起
D好的UI设计能够使用户的心智模型和UI的交互方式保持一致 -
软件详细设计的主要任务是确定每个模块的()
A技术路线
B外部接口
C算法和使用的数据结构
D功能 -
软件危机产生的主要原因不包括( )
A轻视软件维护
B软件本身的特点
C进行阶段评审
D软件开发方法落后 -
关于面向对象分析的理解,正确的是?
A动态模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能
B功能模型可以使用类图来建立模型
C对象模型又被称为领域模型,表示静态的、结构化的系统的“数据”性质
D对象模型可以描述对象内部或外部事件的响应过程 -
以下哪个不是质量需求?
A可靠性
B精确性
C数据
D可维护性 -
以下哪项不属于低保真原型( )
A故事板
B角色扮演
C UI设计图
D线框图 -
“不能满足需求而导致项目失败”该风险的等级是( )
A可忽略的
B灾难性的
C轻微的
D严重的 -
快速原型模型的本质是( )
A不注重文档编写
B推迟实现
C保证开发质量
D尽可能快地构造软件 -
以下哪个不是情景分析的环节?
A分析软件产品架构的关键点
B用例建模
C确认情景可实现
D分析情景的重要度 -
以下哪个不是采用了结构化分析方法?
A数据流
B数据字典
C时序图
D判定表 -
在软件设计中,把一个时期内必须解决的问题按照优先级排序,从而确保每个问题都将被解决,且每个问题都将在适当的时候被解决,它属于软件设计的哪种方法?
A信息隐藏
B逐步求精
C模块化
D抽象 -
只有类的共有界面的成员才能成为使用类的操作, 这是软件设计的( )原则
A共享性
B功能抽象
C信息隐藏
D过程抽象 -
软件工程知识领域不含( )
A软件构建
B软件设计
C软件销售
D软件需求 -
把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程是( )
A软件
B软件工程
C软件测试
D软件维护 -
关于RUP模型说法正确的是( )
A、RUP工作流程的基本任务不含业务建模
B、RUP是一种迭代式开发模型
C、RUP工作流程的基本任务不含代码实现
D、RUP工作流程的基本任务不含需求采集 -
小王在使用某软件时,不小心点到了“删除按钮”,没有二次确认提示,该记录立即bei删除了,且无法恢复。该软件的设计违背了哪项原则?
A结构化原则
B容错原则
C隐藏性原型
D简洁性原型 -
在类图中,表示private权限的是哪个符号?
A、+
B、#
C、~
D、- -
以下哪个环节不是获取需求的环节?
A收集用户需求
B规格说明
C概要设计
D分析理解 -
关于需求的理解,正确的是
A功能需求指的是软件系统必须具备的质量特征需求
B用户解决问题或达到目标所需条件或能力(Capability)
C质量需求也可以称为非功能需求
D质量需求指的是软件系统必须具备的功能特征需求 -
LOC和KLOC之间的进率是( )
A100
B10
C1000
D10000 -
以下哪个不是原型法包含的内容
A原型交互性
B原型数量
C原型生命周期
D原型保真度 -
当算法中需要用一个模块去计算多种条件的复杂组合,并根据这些条件完成适当的功能时,从供选择的答案中, 选出合适的描述工具。
A程序流程图
B N-S图
C判定表
D PAD图 -
以下哪项不是面向对象设计原则()
A单一职责原则
B开闭原则
C提前介入原则
D依赖倒转原则 -
以下哪个不是用例图的组成部分
A用例
B参与者
C系统边界
D生命线 -
软件工作量估算的单位通常是( )
A月
B人月
C周
D人 -
以下哪个不是原型法常用的技术?
A形式化规格说明
B第四代技术
C情景分析
D可重用的软件构建 -
以下哪个不是数据流图的组成部分?
A数据存储
B数据流向
C数据存储文件
D数据处理 -
模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的()
A局部化和封装化
B抽象和信息隐藏
C内聚性和耦合性
D逐步求精和结构图 -
Barry W.Boehm提出的软件工程7条基本原理不包括( )
A使用自动化测试技术
B坚持进行阶段评审
C开发小组的人员应该少而精
D用分阶段的生命周期计划严格管理 -
瀑布模型的特征不包含( )
A每个任务阶段中包含风险分析内容
B任务阶段之间有上下承接关系
C任务阶段之间有先后顺序
D理想化过程模型 -
以下哪项不能有效提升软件的用户体验()
A提高软件响应速度
B使用纯色背景
C有效的反馈机制
DUI一致性 -
关于概要设计和详细设计的差异说法不正确的是()
A概要设计对应于集成测试,是设计集成测试用例的主要依据;而详细设计对应于单元测试,是设计单元测试用例的
B概要设计用于指导代码实现,而详细设计给出了软件由哪些部件组成以及它们之间的关系
C概要设计依据软件需求进行设计,而详细设计不仅依据软件需求,更要依据概要设计的成果。
D概要设计承接软件需求,所以概要设计可以由需求分析人员(熟悉软件需求)编写或者设计人员(站在设计的角度 -
瀑布模型将软件开发阶段分为几个阶段?( )
A、3
B、2
C、6
D、1
多选题
-
软件工程的三要素是( )
A方法
B过程
C工具
D数据 -
软件生命周期的基本任务包含( )
A概要设计
B需求分析
C单元测试
D详细设计 -
下列哪些软件/技术是采用对等网络风格(P2P)体系结构
A快播
B迅雷
C博思平台
D区块链 -
面向对象分析分法有哪些?
A动态模型
B对象模型
C判定树
D功能模型 -
软件生命周期模型包含( )
A螺旋模型
B用例模型
C E-R模型
D瀑布模型 -
以下项目工作量估算模型依赖于经验数据的有( )
A COCOMO2模型
B静态单变量模型
C动态多变量模型
D Kemerer模型 -
以下关于MVC架构说法正确是()
A MVC是Model,View和Controller的首字母缩写。
B模型管理大部分的业务逻辑和所有的数据库逻辑。模型提供了连接和操作数据库的抽象层。
C控制器负责响应用户请求、准备数据,以及决定如何展示数据。
D视图负责渲染数据,通过页面方式呈现给用户。 -
软件需求的获取可以通过以下哪些方式?
A做用户的学徒
B调查表
C情景分析
D原型法 -
需求建模常用的方法有哪些?
A数据建模
B用例建模
C领域建模
D功能建模 -
软件系统的接口设计主要包括()
A外部接口
B管理员接口
C用户接口
D内部接口 -
以下哪些是软件的功能需求?
A功能
B安全性
C数据
D性能 -
以下哪个不是常用的软件需求分析方法
A面向对象分析
B结构化分析
C基准化分析
D面向过程分析 -
以下哪些属于项目的技术风险?( )
A是否有足够的人员可用
B软件是否需要与新的或未经验证的硬件接口交互
C用户需求中是否对产品性能有过分的约束
D是否有可用的分析和涉及工具 -
以下关于客户服务器风格架构说法正确是()
A B/S架构分别表示浏览器与服务器
B C/S架构分别表示客户端与服务器
C C/S架构必须安装客户端软件才能使用
D B/S架构软件在安全性、数据一致性、软件可维护性等方面要优于C/S架构软件
判断题
-
MVC设计模式只能用于网页项目的开发是(X)。
-
情景分析可以降低开发者对业务的理解复杂度(√)
-
如果一个项目组成员要离职,应该让其在离职前做更多的任务,以加快整个项目的进度这句话是(X)
-
用例建模过程中,用例可以没有参与者这句话是(X)
-
螺旋模型和快速原型模型相比,没有哪个更为优秀,只是适用的项目类型不同。这句话是(√)
-
资金出现短缺或开发成本超出预算的风险属于可忽略的风险等级。这句话是(X)
-
面向对象模型包含:静态模型、动态模型、功能模型。这句话是(√)
-
MVC设计模式中处于核心作用的是M。这句话是(X)
-
软件需求一般包括功能需求和质量需求(√)
-
领域建模需要涉及软件内部技术设计的对象类。这句话是(X)
-
软件结构图是为了反映软件系统中组件之间相互关系和约束的体系结构设计图,称为软件体系结构图更为合适。这句话是(√)
-
系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力也是一种软件需求。这句话是(√)
-
高保真(High Fidelity)原型是高度接近最终产品功能和交互特性的软件原型。这句话是(√)
-
结构化分析主要是运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域及系统责任所需的对象,定义对象的属性、操作以及它们之间的关系。(X)
-
FP指功能点,英文全称是Function Points(√)
-
划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。(X)
-
常见的原型设计工具有Photoshop、磨刀、mockplus(√)
-
需求说明书不能作为测试与验收的依据(X)
-
瀑布模型是一种对瀑布流量进行计算的模型(X)
-
在面向对象的设计中,应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有信息隐藏。(√)
-
人员在技术上是否配套可用于识别人员风险(√)
-
Gantt图和PERT图都可以用于项目进度的跟踪。这句话是(√)
-
判定树是一种面向对象分析方法这句话是(X)
-
软件设计一般分为总体设计和详细设计,它们之间的关系是全局和局部。这句话是(X)
-
软件危机指国家间为了设置技术壁垒,导致的外交危机。这句话是(X)
-
C/S架构软件在发挥客户端PC的处理能力上优于B/S架构软件。这句话是(√)
-
HIPO图是表示软件结构的一种图形工具,包含模块分解的层次性以及模块内部输入、处理、输出三大基本部分。这句话是(√)
-
LOC的英文全称是Line of Cat。这句话是(X)
-
数学基础是软件工程的知识领域之一(√)
-
E-R图主要由实体、联系和属性组成。这句话是(√)
解答题
-
软件工程的概念
应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、和维护的工程或进行研究的学科。 -
生命周期的模型
1、瀑布模型
书上的两种瀑布模型的区别(老师有提到会画)有六个周期
优点:严格、应用广泛、提供了模板
缺点:
(1)实际的项目很少按照该模型给定的顺序进行
(2)软件运行版本要等到开发周期的晚期才能得到,如有重大问题后果是灾难性的
(3)客户常常难以给出所有需求,但瀑布模型却要求如此,缺乏适应需求变化的灵活性
(4)瀑布模型可能会导致过多的文档,更新文档成为一项专门的工作
(5)因等待造成“阻塞”
2、快速原型模型
优点:快速让用户看到样子。
缺点:正好是瀑布模型的优点。
3、螺旋模型(大题机率不大)
每一个步骤做之前都会评估一下风险
-
软件需求获取方法
- 需求分析
结构化分析
1)实体–关系图(ER图)
符号表示
实体—矩形
属性—椭圆形
关系—菱形(三种关系一定知道和区分)
数据流图(DFD图)
数据流图的分层
数据字典(了解即可)
判定树(了解即可)
面向对象分析
1)静态
面向对象的步骤(类图)绘制类图
2)动态
- 软件的结构风格(简答题)
1)功能结构图:知道怎么画即可,没有高要求。
2)架构图(制作了解)
3)设计体系结构(重点)
1)客户服务器结构风格(重点)
优缺点一定要清楚:
4)MVC(重中之重)
M:模型,V:视图,C:控制器
优点:代码结构较为清晰、数据模型的复用
步骤:
第一步:用户发送一个指令到控制器。
第二步:根据用户的指令,控制器去选取合适模型。
第三步:模型进入后台取数据。
第四步:寻找合适的试图。
第五步:讲数据传给视图,并按照用户想要的样子显示出来。
5)接口设计(了解,没有大题)
设计原则-表征性状态传输
6)模块设计的原则
低耦合,高内聚
- 软件设计
1)概要设计
概要设计的主要任务是通过仔细分析软件规格说明,适当地对软件进行功能分解,把软件划分为模块,并且设计出完成预定功能的模块结构。
2)详细设计
详细设计的主要任务是详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。
3)设计方法
<1>结构化设计–以数据为中心
自顶向下,逐步求精–原则
层次图绘图(h图)重点
HIPO图(了解即可)
<2>面向对象设计–以对象为中心
1)UML一定要会画(==注意共有与私有)
UML几种类图总结
继承
接口(要加备注)
7.用户界面设计(UI)大题
软件原型是目标软件的最基础的工作模型
低、中、高保真
1)低保真原型有哪一些?
2)高保真
3)提高用户体验的方式(问答题)
(1)使用俚语或隐喻
(2)反馈机制
(3)提高软件响应速度
(4)UI一致性
4)设计原则(要理解)
8.开发工作量
1)代码行估算
切记平均值
2)有个1000的转换
1、瀑布模型,增量模型,快速原型模型
瀑布模型:各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落,每项活动均处于一个质量环(输入-处理-输出-评审)中。
增量模型:增量模型把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。
快速原型模型:演化模型先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品
2、 用户需求,系统需求,非功能需求(懒就只背黄字)
用户需求:描述了要求系统必须完成的任务,即用户对系统的目标要求。通常只涉及系统的外部可见行为,不涉及系统的内部特性。用户需求一般采用自然语言和直观图形相结合的方式描述,例如采用用例(Use Case)文档或场景(Scenario)等方式说明。
系统需求:系统需求详细地给出系统将要提供的服务以及系统所受到的约束。
系统需求来自于系统分析和结构设计。系统需求文档也称为功能描述,应该是精确的,它可能成为买方和开发方之间合同的主要内容。
非功能需求:是对功能需求的补充,包括了对系统的各种限制和用户对系统的质量要求。
3、UML(统一标准建模语言)
UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行可视化建模。UML不是一个开发过程,也不是一个方法,但允许任何一种开发过程和方法都可使用它。
4、项目管理的5大过程和9大知识领域
5大过程:起始 规划 执行 结案 监督与控制
9大知识领域:质量管理 时间管理 范围管理 成本管理 人力资源管理 沟通管理 采购管理 风险管理 项目整体管理
5、MVC模式
将表示与交互用系统数据中分离出来,将系统分为三个相互交互的逻辑组件组成,模型,视图,控制器。
模型:管理系统数据和数据的操作
视图:定义和管理数据显示给用户的方式
控制器:管理用户的交互。
6、模块化,信息隐蔽,类的聚合和泛化
模块化:就是为了减少系统耦合度,提高内聚,减少资源循环依赖,增强系统框架设计。
让开发者便于维护,同时也让逻辑相同的部分可复用。
信息隐蔽(信息隐藏):应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
聚合:是一种特殊的关联,是表示“整体-部分”的关系
泛化:由一个超类和几个直接子类构成的结构通常称为泛化 。类的这种关系也称为一般-特殊关系或继承关系,将现实世界实体的共同特性抽象为一般类,通过增加独有的特性而成为各种特殊类。
7、软件开发过程包括哪些主要文档?内容作用以及他们之间的关系?
需求文档:主要是对业务的分析,确定业务的场景及主流程逻辑;用户能看懂自己做什么。研发团队也知道要做什么。
概要设计:主要是系统模块划分、选择的技术路线。整体说明软件的实现思路。并且需要指出关键技术难点。
讲细设计。对系统模块的功能进行具体的描述,对每个动能进行精确的、结构化的描述。
8、根据类图写代码或者是根据代码画类图
例1:
public class annimal{
public String name;
private int age;
protected String trueName;
String sex;
publilc String getName(){
return name;
}
private void setName(String name){
this.name=name;
}
}
例2:
public abstract class Employee{}
public class Programmer extends Employee{}