【软考系统架构设计师】2023年系统架构师冲刺模拟习题之《软件工程》

在软考中软件工程模块主要包含以下考点:

文章目录

    • 软件过程模型🌟🌟🌟🌟
    • 逆向工程🌟
    • 基于构件的软件工程🌟🌟
    • 软件开发与软件设计与维护
    • 净室软件工程
    • 软件模型
    • 软件需求

软件过程模型🌟🌟🌟🌟

【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
解析:螺旋模型的特点是风险分析,应对风险的都正确,螺旋模型适合大型软件开发。

软件需求

  • 业务需求:反映企业或客户对系统高层次的目标要求
  • 用户需求:描述的是用户的具体目标,或用户要求系统必须能完成的任务,即描述了用户能使用系统来做什么。
  • 系统需求:从系统的角度来说明软件的需求。
    • 功能需求:规定了开发人员必须在系统中实现的软件功能。
    • 非功能需求:系统必须具备的属性或品质。
    • 设计约束 :对系统的一些约束说明。

软件需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为获取情況、分析、(制订规格说明)和评审四个阶段。

某软件公司正在承担开发一个字处理器的任务。在需求分析阶段,公司的相关人员整理出一些相关的系统需求,其中,“找出文档中的拼写错误井提供一个替换项列表来供选择替换拼错的词”,属于(用户需求);显示提供替换词的对话框以及实现整个文档范围的替换,属于(功能需求);用户能有效地纠正文档中的拼写错位属于( 业务需求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/106398.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

支持向量机(SVM)

一. 什么是SVM 1. 简介 SVM,曾经是一个特别火爆的概念。它的中文名:支持向量机(Support Vector Machine, 简称SVM)。因为它红极一时,所以关于它的资料特别多,而且杂乱。虽然如此,只要把握住SV…

Kotlin中使用ViewBinding绑定控件并添加点击事件

文章目录 效果1、加入依赖2、与控件进行绑定在 Activity 中使用视图绑定 3、监听控件 效果 实现源码 class MainActivity : AppCompatActivity() {lateinit var binding:ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstan…

C# 串口通信简单示例

C# 简单串口通信示例 串口通信示例代码 串口通信 C# 串口通信主要操作: 命名空间:using System.IO.Ports;获取端口:string[] ports System.IO.Ports.SerialPort.GetPortNames();设置端口名:serialPort1.PortName “COM1”; //…

性能测试工具:如何学习JMeter?

JMeter是一个广泛应用于Web应用程序性能测试与负载测试的开源负载测试工具,学习JMeter则可以协助软件测试工程师更好地进行自动化性能测试与负载测试,本文就来介绍下如何学习JMeter。 1. 应用场景 (1) Web应用程序、数据库服务器、FTP服务器、SOAP和RE…

Makefile 基础教程:从零开始学习

在软件开发过程中,Makefile是一个非常重要的工具,它可以帮助我们自动构建程序,管理程序依赖关系,提高开发效率。本篇博客将从基础开始,介绍Makefile的相关知识,帮助大家快速掌握Makefile的使用方法 Makefil…

springboot异步线程池

项目中经常会遇到线程池异步处理一些任务 1.配置信息 # 异步线程配置 # 核心线程数 async:executor:thread:core_pool_size: 10# 最大线程数max_pool_size: 100# 任务队列大小queue_capacity: 20# 线程池中线程的名称前缀name:prefix: kc-async-service-# 缓冲队列中线程的空闲…

0基础学习PyFlink——用户自定义函数之UDTF

大纲 表值函数完整代码 在《0基础学习PyFlink——用户自定义函数之UDF》中,我们讲解了UDF。本节我们将讲解表值函数——UDTF 表值函数 我们对比下UDF和UDTF def udf(f: Union[Callable, ScalarFunction, Type] None,input_types: Union[List[DataType], DataTy…

【JavaEE初阶】 线程安全的集合类

文章目录 🍀前言🌲多线程环境使用 ArrayList🚩自己使用同步机制 (synchronized 或者 ReentrantLock)🚩Collections.synchronizedList(new ArrayList);🚩使用 CopyOnWriteArrayList 🎍多线程环境使用队列&am…

【AI视野·今日Robot 机器人论文速览 第五十九期】Fri, 20 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 20 Oct 2023 Totally 29 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers CCIL: Continuity-based Data Augmentation for Corrective Imitation Learning Authors Liyiming Ke, Yunchu Zhang, Abhay D…

html/css/javascript/js实现的简易打飞机游戏

源码下载地址 支持:远程部署/安装/调试、讲解、二次开发/修改/定制 视频浏览地址

Java提升技术,进阶为高级开发和架构师的路线

原文网址:Java提升技术,进阶为高级开发和架构师的路线-CSDN博客 简介 Java怎样提升技术?怎样进阶为高级开发和架构师?本文介绍靠谱的成长路线。 首先点明,只写业务代码是无法成长技术的。提升技术的两个方法是&…

Qt之普通项目如何生成DLL(含源码+注释)

文章目录 一、示例图二、普通项目需要改造的内容三、源码(创建了一个TestDLL的项目,更改内容主要在pro文件和maindow.h文件)TestDLL.promainwindow.hmainwindow.cppmainwindow.ui 总结 一、示例图 使用不同的编译模式编译,会在对…

LLM系列 | 22 : Code Llama实战(下篇):本地部署、量化及GPT-4对比

引言 模型简介 依赖安装 模型inference 代码补全 4-bit版模型 代码填充 指令编码 Code Llama vs ChatGPT vs GPT4 小结 引言 青山隐隐水迢迢,秋尽江南草未凋。 小伙伴们好,我是《小窗幽记机器学习》的小编:卖热干面的小女孩。紧接…

Sql Server中的表组织和索引组织(聚集索引结构,非聚集索引结构,堆结构)

正文 SqlServer用三种方法来组织其分区中的数据或索引页: 1、聚集索引结构 聚集索引是按B树结构进行组织的,B树中的每一页称为一个索引节点。每个索引行包含一个键值和一个指针。指针指向B树上的某一中间级页(比如根节点指向中间级节点中的…

私有云:【1】ESXI的安装

私有云:【1】ESXI的安装 1、使用VMware Workstation创建虚拟机2、启动配置虚拟机3、登录ESXI管理台 1、使用VMware Workstation创建虚拟机 新建虚拟机 选择典型安装 稍后安装操作系统 选择VMware ESXI 选择虚拟机安装路径 硬盘设置300G或者更多 自定义硬件 内存和处…

数字化转型系列主题:数据中台知识体系

当前,大部分企业不再建设从源数据采集到分析应用的烟囱式系统,更倾向于数据集中采集、存储,并应用分层建设。这种方式一方面有利于应用系统的快速部署,另一方面也保证了数据的集中管理与运营,体现数据的资产、资源属性…

工作小计-GPU硬编以及依赖库 nvcuvidnvidia-encode

工作小计-GPU编码以及依赖库 已经是第三篇关于编解码的记录了。项目中用到GPU编码很久了,因为yuv太大,所以编码显得很重要。这次遇到的问题是环境的搭建问题。需要把开发机上的环境放到docker中,以保证docker中同样可以进行GPU的编码。 1 定…

使用内网穿透本地MariaDB数据库,并实现在公网环境下使用navicat图形化工具

公网远程连接MariaDB数据库【cpolar内网穿透】 文章目录 公网远程连接MariaDB数据库【cpolar内网穿透】1. 配置MariaDB数据库1.1 安装MariaDB数据库1.2 测试局域网内远程连接 2. 内网穿透2.1 创建隧道映射2.2 测试随机地址公网远程访问3. 配置固定TCP端口地址3.1 保留一个固定的…

lossBN

still tips for learning classification and regression关于softmax的引入和作用分类问题损失函数 - MSE & Cross-entropy⭐Batch Normalization(BN)⭐想法:直接改error surface的landscape,把山铲平feature normalization那…