在软考中软件工程模块主要包含以下考点:
文章目录
- 软件过程模型🌟🌟🌟🌟
- 逆向工程🌟
- 基于构件的软件工程🌟🌟
- 软件开发与软件设计与维护
- 净室软件工程
- 软件模型
- 软件需求
软件过程模型🌟🌟🌟🌟
【1】以下关于软件开发方法的叙述,正确的是()。
A、结构化开发方法是建立在严格数学基础上的软件开发方法
B、正向工程是指不仅从现有系统中恢复设计信息,而且使用该信息去改变或重构现有系统,以改善其整体质量
C、重构是指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计等方面的 信息
D、面向对象的方法以粗粒度、松散耜合和基于标准的服务为基础,增强了系统的灵活性、可复用性和可演化性
答案选择B
A项是形式化方法、C项重构是同一抽象维度、D项是面向服务
记住正向工程的概念
逆向工程🌟
【2】逆向工程是设计的恢复过程,它包括了多个抽象级别,其中( )反映程序分量或程序诸实体与应用领域概念之问对应关系的信息。
A、实现级
B、结构级
C、领域级
D、功能级
答案选择C
实现级:包括程序的抽象语法树、符号表、过程
的设计表示
结构级:包括反映程序分量之问相互依赖关系的信息
,例如调用因、结构圈、程序和数据结构
功能级:包括反映程序段功能及程序段之间关系的信息
,例如数据和控制流模型
领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息
,例如实体关系模型
逆向工程是分析程序、力图在比源代码更高抽象层次上建立程序的表示过层。领域级抽象级别最高,完备性最低,实现级抽象级别最低,完备性最高。
【3】() 是在逆向工程所获取信息的基础上修改或重构已有的系统,产生系统的一个新版本。
A、逆向分析 (Reverse Analysis)
B、重组(Restructuring)
C、设计恢复 (Design Recovery)
D 、重构工程 (Re-engineering)
重构已有的系统并产生一个新系统,表示再工程,所以选择D
,主要看英文翻译,
【4】以下关于开发模型,说法正确的是( )。
A、统一过程将软件开发流程分成多个阶段,每一个阶段都由目标设定、风险分析、开发和有效性验证以及评审构成
B、用户不能很好地参与到需求分析中时,采用快速应用开发较为合适
C、快速原型法主要由原型开发阶段和目标软件开发阶段构成
D、快速应用开发通过引入原型思想获得快速开发能力
答案选择 C
A项统一过程的阶段是:初始、细化、构建和移交,而A选项中的描述应该是螺旋模型的内容;B项快速应用开发一般是在需求明确的基础上进行;D项并不是引入原型思想而是引入构件化思想
。
基于构件的软件工程🌟🌟
【4】统一过程开发方法分( )四个阶段,每次通过这四个阶段就会产生一代软件。统一过程
开发方法从另一个维度看,RUP 中有9个核心工作流,分为6个核心过程工作流和3个核心支持工作流,其中不属于核心过程工作流的是( )。
A.初始、细化、构建和移交
B.需求分析、软件设计、编码实现、运行维护
C.需求分析、概要设计、详细设计、编码
D.初始分析、设计、构建和移交
A.需求工作流
B.项目管理工作流
C测试工作流
D.商业建模工作流
答案选择 A、B
9个核心工作流
:
6个核心过程工作流:业务建模、需求、分析与设计、实现、测试、部署
3个核心支持工作流:配置与变更管理、项目管理、环境
【7】以下关于开发方法与开发模型的说法正确的是( )。
A、统一过程强调用例驱动以架构为中心,在构建阶段将完成架构设计工作
B、敏捷方法强调小步快跑的方式开发软件,所以它是预设性的
C、敏捷方法以瀑布模型开发思想为基础,采用迭代式增量开发
D、功用驱动开发方法(FDD) 中,会把编程开发人员分成两类:“首席”程序员和 “类”程序员
答案选择 D
A选项是在细化阶段完成架构设计工作;B选项小步快跑的方式是适应性的;C选项敏捷方法是以原型开发思想为基础。
另外还需要记住D选项:首席程序员和类程序员
敏捷方法的核心思想内容:
- 是适应型,而非预测型
- 是迭代增量式(小步快跑)的开发过程
- 是以人为本而非过程为本
- 适合小型项目
软件开发与软件设计与维护
【8】以下关于需求获取方法的叙述中,正确的是( )。
A、问卷调查可以在短时间内,以低廉的价格从大量的回答中收集数据
B、用户访谈是最为灵活、成本最低的一种需求获取方法
C、抽样能够提高需求获取效率,且不会受到系统分析师的主观因素影响
D、用户访谈的成功与否与系统分析师的人际沟通能力无关
答案选择A
B选项:用户访谈是成本最高的一种,毕竟有人力和时间成本
C选项:说法有点绝对,会受到主观因素影响
D选项:用户访问肯定和沟通能力有关系啊
【9】以下关于需求工程的描述中,正确的是( )。
A、需求定义过程结束时会产生SRS, SRS也被称为需求基线,是指导后续开发的重要文档
B、需求变更流程一般包括:问题分析与变更描述、变更分析与成本计算、变更实现等步骤
C、需求本质上来讲是用户对待开发系统的期望,用户提出的所有需求都同等重要
D、需求管理是对需求开发过程进行严格管控的方法论
答案选择B
A项:SRS需求规格说明书,SRS是在需求基线的基础上的产出。
C项:需求也会有优先级
D项:需求管理管的是需求基线。
【10】UML2.0所包含的图中,( )描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。
A 组合结构图
B包图
部署图
D构件图
答案选择B
【11】 用例 (use case)用来描述系统对事件做出响应时所来取的行动。用例之间是具有相关性的。在一个“订单输入子系統”中,创建新订单和更新订单都需要核查用户账号是否正确。用例“创建新订单”、“更新订单” 与用例“核查客户账号”之间是()关系。
A包含 (include)
B扩展 (extend)
C分类 (classification)
D聚集 (aggregation)
答案选择A
都要用到某一种功能,是包含关系
注意区分包含、扩展、泛化概念
- 包含关系:从多个用例中提取公共行为,提取出来的公共用例称为抽象用例,而把原始用例称为基本用例
- 扩展关系:一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例。
- 泛化关系:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例,子用例继承了父用例所有的结构、行为和关系。
【12】
在面向对象系统中,有两个类存在整体与部分的关系,如果部分可能同时属于多个整体,则两者之问的关系称为( );如果部分和整体具有统一的生命周期,则两者之问的关系称为()。
A、聚合关系
B、依赖关系
C、泛化关系
D、组合关系
A、聚合关系
B、依赖关系
C、泛化关系
D、组合关系
答案选择A、D
部分和整体的关系总共有两个:聚合和组合
,
答案选择A
描述的是父子关系即泛化关系
【14】软件测试一般分为两个大类:动态测试和静态测试。以下关于动态测试和静态测试的说法,正确的是()。
A基本路径测试和边界值分析属于动态测试
B逻辑覆盖属于静态测试方法
C外部采购的软件构件一般没有提供完整的原代码,此时采用白盒测试比较合适
D等价类划分法一般通过测试人员的经验和直觉找出软件最容易出错的地方
答案选择:A
B项:逻辑覆盖属于动态测试、
C项:没有源代码就只能黑盒测试
D项:属于错误推测法
【15】需求跟踪是提供了由需求到产品实现整个过程范围的明确查阅到能力。
【16】软件设计过程中,可以用耦合和内聚两个定性标准来衡量模块的独立程度,耦合衡量不同模块彼此间互相依赖的紧密程度,以下关于耦合的说法中正确的是()。
A、公共耦合的耦合性最高,所以要控制使用
B、标记耦合是指一组模块借助参数表传递简单数据
C、高耦合低内聚,耦合性越高越好
D、尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范国,完全不用内容耦合
答案选择:D
内容耦合耦合性最高
【17】以下关于面向对象设计原则的描述中,正确的是()。
A、迪米特原则是指开发过程中应该要依赖于抽象,而不是具体实现
B、李氏替换原则约定父类可以替换子类
C、单一职责原则认为使用多个专门的接口比使用单一总接口要好
D、依赖倒置原则认为应针对接口编程,不要针对实现编程
答案选择:D
七大原则
【18】软件确认测试也称为有效性测试,主要验证( )。确认测试包括( )。
A、系统中各个单元模块之间的协作性
B、软件与硬件在实际运行环境中能否有效集成
C、软件功能、性能及其他特性是否与用户需求一致
D、程序模块能否正确实现详细设计说明中的功能、性能和设计约束等要求
A 、黑盒测试和白盒测试
B、一次性组装测试和增量式组装测试
C、内部测试、Alpha、Beta 和验收测试
D、功能测试、性能测试、用户界面测试和安全性测试
答案选择:C、C
【19】在静态测试中,主要是对程序代码进行静态分析。“按照结构化程序规则和程序结构的基本要求进行程序结构检查〞 属于静态分析中的( )。
A、接口分析
B、表达式分析
C、控制流分析
D、数据流分析
答案选择:C
A 选项关注的是接口,B项关注的是表达式;C项关注的是程序结构和流程;D项数据流关注的是数据
【20】软件文档是影响软件可维护性的决定因素。软件的文档可以分为用户文档和系统文档两类。以下关于用户文档和系统文档的说法中,错误的是( )。
A、用户文档主要描述所交付系统的功能和使用方法,并不关心这些功能是怎样实现的
B、系统文档是从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档
C、系统使用手册属于系统文档
D、用户文档是了解系统的第一步,它可以让用户获得对系统准确的初步印象
答案选择:C
系统使用手册属于用户文档
【21】某搜索引擎在使用过程中,若要增加接受语音输入的功能,使得用户可以通过语音输入来进行搜索,此时应对系统进行( )维护。
A、正确性
B、适应性
C、完善性
D、预防性
答案选择:C
增加功能和改进功能都是完善性维护
【22】某在线教育系统软件在使用过程中,其数据库发生改变,为了适应这种变化,需要对软件进行修改。在这种情况下进行的维护活动称为( )。
A 改正性维护
B完善性维护
C预防性维护
D适应性维护
答案选择:D
常考题,需要区分四种维护活动的概念:
数据库不是应用软件的组成部分,属于环境变化,所以要适应环境而改变
【23】系统输入设计中应尽可能考虑人的因素,以下关于输入设计的一般原理中,错误的是()。
A、只让用户输入变化的数据
B、使用创新的模式吸引用户的眼球
C、表格中各个数据项应有提示信息
D、尽可能使用选择而不是键盘输入的方式获取数据
答案选择B
人机界面模式,B项一般不提供,越稳定越好。
【24】遗留系统的演化可以采用淘汰、继承、改造和集成四种策略。若企业中的遗留系统技术含量较低,但业务价值高,业务模型仍符合现在的应用需求,适合于采用()演化策略。
A、淘汰
B、继承
C、改造
D、集成
答案选择B
遗留系统是常考题,首先要记住横坐标和纵坐标分别是什么,横坐标是价值,纵坐标是技术含量,从第一象限到第四象限依次为:改造、集成、淘汰、继承
净室软件工程
【25】净室软件工程是一种应用数学与统计学理论以经济的方式生产高质量软件工程的技术,力图通过严格的工程化的软件过程达到开发中的零缺陷或接近零缺陷。以下技术手段中,()是净室软件工程的核心。
A、统计控制下的增量式开发
B、基于函数的规范和设计
C、正确性验证
D、统计测试和软件认证
答案选择C
严格基于数学的推理逻辑。
软件模型
【26】假设某软件公司与客户签订合同开发一个软件系统,系统的功能有较清晰的定义,但客户对交付时间有严格要求,则该系统的开发最适宜采用()。
A、瀑布模型
B、原型模型
C、V模型
D、螺旋模型
答案:A
解析:功能清晰,也即需求较明确,有这样的关键字都是考察瀑布模型,牢记总结的记忆关键字。
【27】以下关于螺旋模型的叙述中,不正确的是(
A.它是风险驱动的,要求开发人员必须具有丰富的风险评估知识和经验
B.它可以降低过多测试或测试不足带来的风险
C.它包含维护周期,因此维护和开发之间没有本质区别
D.它不适用于大型软件开发
答案:D
解析:螺旋模型的特点是风险分析,应对风险的都正确,螺旋模型适合大型软件开发。
软件需求
- 业务需求:反映企业或客户对系统高层次的目标要求
- 用户需求:描述的是用户的具体目标,或用户要求系统必须能完成的任务,即描述了用户能使用系统来做什么。
- 系统需求:从系统的角度来说明软件的需求。
- 功能需求:规定了开发人员必须在系统中实现的软件功能。
- 非功能需求:系统必须具备的属性或品质。
- 设计约束 :对系统的一些约束说明。
软件需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为获取情況、分析、(制订规格说明)和评审四个阶段。
某软件公司正在承担开发一个字处理器的任务。在需求分析阶段,公司的相关人员整理出一些相关的系统需求,其中,“找出文档中的拼写错误井提供一个替换项列表来供选择替换拼错的词”,属于(
用户需求
);显示提供替换词的对话框以及实现整个文档范围的替换,属于(功能需求
);用户能有效地纠正文档中的拼写错位属于(业务需求
)