软件工程 | 期末复习习题

news2024/11/27 17:42:14

一、软件工程概述

1、选择

软件有无可行性不可控性

软件工程是一门工程性学科

软件生存周期常见模型:螺旋模型、增量模型、瀑布模型、原型模型、融合模型、快速应用开发模型、敏捷模型

软件生存周期中时间最长的阶段是维护阶段

瀑布模型是一种软件生存周期模型

采用结构化生存周期方法,由于其特征面而一般称其为瀑布模型

在结构性的瀑布模型中,需求分析阶段定义的标准将成为软件测试中系统测试阶段的目标

2、简答题

什么是软件危机?软件危机表现在哪些方面?

答:具体来说,软件危机出现的原因可以概括如下

  • 忽视软件开发前期的需求分析。
  • 开发过程缺乏统一的、规范化的方法论指导。
  • 文档资料不齐全或不准确。
  • 忽视与用户之间、开发组成员之间的交流
  • 忽视测试的重要性。
  • 不重视维护或由于上述原因造成维护工作的困难
  • 从事软件开发的专业人员对这个产业的认识不充分,缺乏经验
  • 没有完善的质量保证体系

具体地说,软件危机的表现形式可以概括如下。

  • 软件开发费用和进度失控。
  • 软件系统实现的功能与实际需求不符
  • 软件的可靠性差
  • 软件难以维护
  • 软件通常没有适当的文档资料
  • 软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升
  • 软件生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势

(4) 什么是软件生存周期?它分为几个时期?几个阶段?

答:软件生存周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用,以及产品版本的不断更新,到该产品最终被市场淘汰的全过程。软件生存周期由软件定义软件开发运行维护三个时期组成,划分为问题定义、可行性研究、需求分析、概要设计、详细设计、软件实现和单元测试、综合测试和运行维护八个阶段。

(5) 什么是软件生存周期模型?有哪些主要软件过程模型?

答:软件生存期模型也称为软件过程模型,是从软件项目需求定义直至软件运行维护为止,跨越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架。典型的包括瀑布模型、快速原型模型、增量模型、螺旋模型、统一过程、敏捷过程等。

二、软件问题定义及可行性分析

1、填空

可行性研究的目的是:用最小的代价在尽可能短时间内确定问题是否能够解决

经济可行性研究范围包括:投资效益分析、公司经营长期策略、开发所需的成本和资源、潜在的市场前景。

可行性分析的目的是研究这个软件项目是否值得去开发

可行性分析实质上是进一步简化,压缩了需求分析设计过程

成本-效益分析首先要估算将要开发系统的开发成本,然后与可能取得的效益进行比较和权衡

成本效益分析的目的是从经济角度评价一个软件项目是否可行

可行性分析具体步骤最后一步是编写可行性报告

可行性研究主要集中在以下几个方面技术可行性经济可行性社会因素方面可行性操作可行性

可行性分析成本包括直接成本间接成本,收益包括有形收益无形收益

系统经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用

系统的经济效益可以用货币时间价值投资回收期纯收入等指标进行度量

纯收入就是指软件生命周期内,系统累计经济效益投资之差

投资回收期就是积累的经济效益等于最初投资所需要的时间

制订软件计划过程,需确定软件的工作范围估算开发所需要源估算软件成本费用进度安排

软件的作用范围包括软件系统的功能软件系统的性能接口可靠性

数据流图也被称为“数据流图表”或 泡泡图

数据流图的一些辅助图,其中符号* 表示相邻的一对数据流同时出现,+表示相邻的数据流A或B或A和B 同时出现,圈圈里面+表示两个数据流只取其一

绘制数据流图时,每个加工至少有一个输入数据流和一个输出数据流

绘制数据流图时个数据流子图必须与它上一层的一个加工对应。数据流图中的每个元素必须有名字

数据字典有5类条目:数据流、数据项、数据存储、基本加工及数据源点与数据终点。

2、选择

可行性是系统方案实现的可能性

可行性研究从经济、技术、操作、法律、社会效益等方面进行

开发软件时对提高软件开发人员工作效率至关重要的是程序人员的数量

软件可行性分析中,从软件的功能角度考虑可行性是技术可行性,他要解决技术风险问题

可行性研究要进行的需求分析和设计应是简化压缩的

软件系统的可行性研究包括经济可行性技术可行性社会可行性

研究硬件资源的有效性是进行操作可行性研究的一个方面

数据流图,被计算机处理的成分是控制流、数据流、节点

结构化分析方法使用的描述工具数据字典定义了数据流图中每一个图形元素

分层DFD是一种描述方式,他顶层图描述系统的输入与输出

数据存储和数据流都是数据,仅仅所处的状态不同

数据字典中,一般不包括下列选项中的源点与终点条目

数据字段是对数据定义信息的集合,他所定义的对象都包含与数据流图

3、简答题

可行性研究主要研究哪些问题?

可行性研究的任务是决定软件项目是做还是不做,对技术可行性、经济可行性、社会可行性、开发方案的可行性以及运行可行性等方面进行分析

三、需求分析

1、选择

进行需求分析可以用多种工具,但PAD不适用

E-R图中,包含实体、属性、关系等基本成分

软件规格说明书内容不应该包括对算法的详细描述

结构化需求分析方法的基本思想是自顶向下逐步分解

软件中的问题发送在需求分析阶段、修复成本最低

2、简答

需求分析的步骤

需求分析需要 4 个步骤,分别获取、建模、描述和验证。获取需求实质上是一个需求收集的过程,要做充分的调查研究。通常是从分析当前系统包含的数据开始,分析当前系统在处理信息时的不足,用户希望改进的主要问题及迫切性等。收集需求的常用方法有问卷调查、访谈、实地操作、建立原型等,收集的需求主要包括功能需求、性能需求、可靠性需求、可用性、人机界面需求.约束、出错处理等内容。需求分析的核心任务是建立分析模型,即把来自用户的需求信息通过分析、提取、归纳、抽象建立起描述目标系统的模型。传统的面向过程的软件工程方法学,主要采用数据流图建立目标系统的逻辑模型。需求描述是指编制需求分析阶段各类文档。一般情况下,对于大型、复杂软件系统在需求分析阶段会产生 3 个文档:系统定义文档(用于描述用户需求的报告)、系统需求规格说明书、软件需求规格说明书,分别从不同的角度和层次描述项目开发的需求。对于简单的小规模软件系统,只需编制 SRS 即可。因为需求分析的成果是后续开发的重要依据和基础,为了提高软件产品的最终质量,降低开发成本,必须对需求分析结果从完整性、一致性、有效性和现实性 4 个方面进行亚格的正确性验证,并且要对需求的变更实施可回溯的管理,避免无法追踪错误来源导致的混乱。

四、总体设计

选择

面向数据流的软件设计方法中,一般将信息流分为变换流和事务流

采用模块化技术的好处是容易测试和调试、有助于提高软件的可靠性、提高可维护性、有助于软件开发工厂的组织管理(全选)

属于软件设计基本原理的是模块规模应该适中、信息隐藏与局部化

面向数据流的设计方法是把信息流映射成软件结构

软件总体结构设计,顶层扇出的上限是5-9个

五、详细设计

1、填空

结构化程序设计方法的药店是使用顺序、选择和循环结构

为了产生结构化的流程图,应由三种基本控制结构顺序组合或完整嵌套而成

PAD是一种由做向右展开的二维树形结构,图中竖线为程序的层次线

详细设计阶段,描述程序逻辑结构的工具是程序流程图

详细描述处理过程常用三种工具:图形、语言和表格

PDL具有严格的关键字外层语法,用于定义控制结构、数据结构、模块接口设计

除了对模块内的算法进行设计,还应对模块内的数据结构进行设计

过程设计中最典型的方法是结构化设计、自顶向下、逐步求精

结构化程序设计方法简称SP、问题分析图

NS图只能表达结构化程序逻辑

系统的详细设计阶段产生的文档是详细设计说明书

2、选择

用来增加程序设计的效率和质量的方法是结构化程序设计

PAD的控制执行流程为自上而下,从左到右

软件详细设计主要采用的方法是结构化设计

PDL是下列语言中的伪码式

面向数据流设计方法把数据流映射成软件结构

详细设计与概要设计衔接的图形工具是SC

详细设计的任务是确定每个模块的算法

详细设计过程中不采用的描述工具是DFD

PDL是软件开发过程中用于详细设计

软件复杂性度量的参数包括规模

详细设计阶段经常采用的工具有PAD

JackSon图上下层之间的关系是组成关系

JackSon方法是根据数据结构来导出程序结构

六、软件编码和测试

1、选择

为提高测试效率,应该选择发现错误的可能性大的数据作为测试数据

软件测试目的是发现软件的错误

单元测试一般为白盒为主,测试依据是模块功能规格说明

软件的集成测试工作最好由不属于该软件开发组的软件设计人员承担

a测试需要用户代表参加

软件测试用例主要由输入数据和预期输出结果组成

黑盒测试中,着重检查输入条件组合的方法是因果图法

黑盒测试从用户观点的测试,白盒是从开发人员的观点测试

白盒测试法又称为逻辑覆盖法,主要用于单元测试

边界值分析测试不属于白盒测试技术

白盒测试法是根据程序的内部逻辑来设计测试用例的方法

软件调试的目的是找出错误所在并更正之

2、简答题

软件测试应该划分为几个阶段,各个阶段重点测试内容是什么?

软件测试可分为单元测试,集成测试,系统测试,验收测试四个阶段

单元测试又称模块测试、逻辑测试或结构测试,是针对软件设计的最小单位一一程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验每个程序单元能够正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现冬个模块内部可能存在的冬种错误。

集成测试又称组装测试、综合测试或联合测试。通常在单元测试的基础上将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整人系统。

系统测试为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。系统测试是在真实或模拟系统运行的环境下,检查完整的程序系统能否和系统(包括计算机硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并满足用户需求。系统测试的主要依据是《系统需求规格说明书》文档。

验收测试又称交付测试,是软件在完成了单元测试、集成测试、系统测试之后,产品发布之前进行的软件测试活动。验收测试又分为 Alpha 测试 ( a 测试)和 Beta 测试( B 测试),Alpha 测试是由一个用户在开发环境下进行的测试,或者是公司内部的用户在模拟实际操作环境下进行的受控测试,Beta 测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试

七、面向对象技术与UML

1、选择

参与者说话错误的是参与者是用例图的重要组成部分,因此他是目标系统的组成部分。(实际上,参与者不是目标系统的组成部分,而是与目标系统进行交互的外部实体。参与者可以是人、组织、设备或其他系统等,它们与目标系统进行交互,以满足其需求或达成其目标)

状态图中不能表示的概念有

计算机中computer和cpu、ram等的关系是聚集关系Aggregation

图是表达系统类以及其相互联系的图示,他是面向对象设计的核心

继承反映了类间的一种层次关系,而组合反映了一种整体与部分的关系

不属于UML结构物件是交互

面向对象的特点:抽象性、封装线。继承性、多态性

实现关系在UML图中是虚线的然后白色三角形指向

配置图是表示构成分布式系统的节点集和节点之间的联系的图示

用例与类的对比中类描述的是系统内部构成,用例也可以描述系统内部构成错误的(用例描述系统动态的行为视图)

描述对象之间的静态联系的是实例链接

2、应用题

飞机由机翼、机身、驾驶舱构成,是组合关系,关系图如下

下面类图中,接口Service 中定义了三个方法。其中 ClientA 只使用methodA 方法ClientB 只使用methodB 方法,ClientC 只使用 methodC 方法。根据接口分离原则重新设计该类图

简述聚合(Aggregation)和组合(Composition)的关系,并举例说明。

雁阵由大雁构成,属于聚合关系

1只大雁拥有2只翅膀,属于组合关系

八、面向对象分析

选择

封装是把对象的属性和操作结合在一起,组成一个独立的对象

UML中4中关系,分别是依赖、泛化、关联和实现

用例模型图必须与用户反复交流确认

不是用例之间的关系是依赖

电子商务网站而言,不适合作为用例的选项是购物车

用例建模必须与用户反复交流并加以确认

用例进行细化说明应使用活动图

UML的系统分析进一步要确立的3个系统模型是对象静态模型、对象动态模型和系统功能模型。

类和对象都有属性,类描述了属性的类型,对象的属性必有具体值

顺序图和协作图主要用于对用例图中控制流的建模,用来描述用例图的行为

顺序图的建模元素有对象、消息、链等

顺序图描述一组对象之间消息的传递顺序

在顺序图中,返回消息的符号是虚线箭头

状态图可以表现一个对象在生存期内的行为,所经历的状态序列,引起状态转移的事件

状态图描述的一个对象在不同事件的驱动下发送的状态转移

九、面向对象设计

选择

系统体系结构是用来描述各部分的结构,接口以及他们用于通信的机制

UML可以描述硬件之间的互联关系,也能描述硬件单元上的软件系统分布

软件系统体系结构是对系统用例类对象接口以及相互间交互和协作进行描述

硬件系统体系结构是对系统构建、结点和配置进行描述

构件是软件系统体系结构中定义的概念和功能在物理体系中的实现

部署图由结点和结点之间的联系组成,描述了处理器、设备和软件构建运行时的体系结构

部署图基本元素有结点。构件。对象。连接。依赖等

是用于把元素组织成组的通用机制

UML系统分析阶段产生的包图描述了系统的系统体系层次结构

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微搭低代码实现aad的sso

微搭低代码平台是一种可帮助您快速构建和部署应用程序的工具,而无需手动编写大量代码。要在微搭低代码平台上实现Azure Active Directory(AAD)的单点登录(SSO),您需要遵循以下步骤: 注册Azure …

SpringBoot整合Mybatis(3000字)

SpringBoot整合Mybatis 文章目录 SpringBoot整合Mybatis依赖导入配置信息(application.yml)代码分层数据库(建库建表语句)各层代码enity:dao:service:controller: 测试 Mybatis分页查询和模糊查询分页查询:测试: 模糊查询:测试: Mybatis的分布查询多对一:测试:一对多: Mybatis的…

邮箱营销不再难:如何提高邮件的到达率和打开率?

在数字时代,电子邮件是企业与客户以及潜在客户沟通的重要渠道,是企业培养客户的有效方式之一。然而,由于每个人每天也要收到大量的垃圾邮件,所以企业必须确保在正确的时间将邮件传递给正确的人。在这篇文章中,小编将探…

BEVDet 论文学习

1. 解决了什么问题? 自动驾驶系统感知周围的环境再进行决策,极具挑战。基于视觉的自动驾驶系统对准确性和效率的要求很严格,人们会采用不同的范式来解决 3D 检测和分割任务。对于多相机 3D 目标检测,image-view-based 方法如 FCO…

缓存更新策略

缓存更新策略 内存淘汰超时剔除主动更新说明利用Redis的内存淘汰机制,不用自己维护,当内存不足时会自动淘汰部分数据。下次查询时更新缓存。给缓存数据添加TTL(过期时间),到期后自动删除缓存。下次查询时更新缓存。编写业务逻辑,…

CSAPP Lab4- PerfLab

代码优化 typedef struct { unsigned short red; /* R value */ unsigned short green; /* G value */ unsigned short blue; /* B value */ } pixel图像用一维数组表示,第(i,j)个像素表示为I[RIDX(i,j,n)],n为图像的维数 #def…

Datacom-HCIE 02(10月26日更新)--含解析

单选题 1.[试题编号:189785] (单选题)如图所示,VTEP1上在BD20域内开启了ARP广播抑制功能,并且VTEP1通过 BGP EVPN路由学习到了PC2的ARP信息,则PC1发送的针对PC2的ARP请求,VIEP1在转发给VIEP2时…

sqli-labs Less-11,12

less-11(基于错误的POST型单引号字符型注入) sqlmap 1.使用bp抓包 2.保存为1.txt在本地,使用sqlmap查询数据库 sqlmap.py -r "C:\Users\wy199\Desktop\1.txt" --dbs 3.查询当前数据库的所有表 sqlmap.py -r "C:\Users\wy199\Desktop\1.txt"…

正点原子ALPHA开发板核心资源分析

目录 正点原子ALPHA开发板核心资源分析I.MX6ULL实物图对比SOC 主控芯片(MCIMX6Y2CVM08AB)NAND FLASHEMMCDDR3L 正点原子ALPHA开发板核心资源分析 I.MX6ULL实物图对比 I.MX6ULL NAND BTB 接口核心板资源图与 I.MX6ULL EMMC BTB 接口核心板资源图如上图&a…

安装ElasticSearch之前的准备工作jdk的安装

一.windows 下载jdk的软件 (1).进入jdk1.8官网 (2).根据电脑是32位还是64位按需下载 (3).点击下载之后就会跳转到Oracle账号登录界面 没有 Oracle账号的注册一下就可以了 下载好的jdk如下: 双击下一步下一步安装jdk 默认安装就可以了 配置环境变量 (1).电脑左下方设置选项 (2).…

UFT软件的安装与注意事项

安装包下载 UFT软件的安装包网上也有许多,这里我分享下我使用的--->UFT安装包 下载完成解压后进行安装。 要注意关闭杀毒软件,否则安装过程中某些组件可能会安装不上。 部分电脑在安装过程中出现以下提示,可以点击确定 然后我们查看桌面上…

学习open62541 --- [77] 修改String类型变量的注意点

对于String类型的节点,其值的类型是UA_String,在这篇文章中我们解释了UA_String的生成方法。 当我们修改String类型节点的值时,会事先准备一个UA_String变量,这时就会遇到一个选择:是否需要动态分配内存,即…

一种基于数值的横向相互作用

( A, B )---144*30*2---( 1, 0 )( 0, 1 ) 让网络的输入有144个节点,训练集AB各由12张二值化的图片组成,让A中每行有1个1,B中全是0,排列组合A ,统计迭代次数的顺序。 前面实验已经表明对于A中每行只有1个1,…

虚幻or现实?堆区、栈区真实存在吗?是操作系统在骗你罢了...

文章目录 💐专栏导读💐文章导读🐧引例 🐦进程地址空间🐦虚拟地址与物理内存的联系🔔回答引例中的问题🔓写时拷贝 🐦虚拟地址存在的意义🔓malloc的本质 💐专栏…

Lift, Splat, Shoot 论文学习

1. 解决了什么问题? LSS 在工业界具有非常重要的地位。自从 Tesla AI Day 上提出了 BEV 感知后,不少公司都进行了 BEV 工程化的探索。当前 BEV 下的感知方法大致分为两类: 自下而上:利用 transformer 的 query 机制,…

软考 软件设计师上午题设计模式概念类

设计模式分类 创建型设计模式 简单工厂模式 不符合开闭原则,因此没有列入23类模式里 对扩展开放对修改关闭 工厂方法模式 说穿了:系统开放一个接口(拓展开放)、不提供修改的接口(修改关闭),…

基于html+css的图展示83

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

使用贝壳物联控制led灯

1、完成esp8266 01S的固件刷机 1.1 使用刷机软件刷原生固件 esp8266 01S要使用标准固件1M(主要是01S是8M) 1.2 刷机接线方式 ttl直接连esp8266 接线: tts esp8266 3v3 ---》面包板高----》3.3 tx--------------…

BEVFormer 论文学习

1. 解决了什么问题? 3D 视觉感知任务,包括基于多相机图像的 3D 目标检测和分割,对于自动驾驶系统非常重要。与基于 LiDAR 的方法相比,基于相机图像的方法能够检测到更远距离的目标,识别交通信号灯、交通标识等信息。有…

[CTF/网络安全] 攻防世界 command_execution 解题详析

[CTF/网络安全] 攻防世界 command_execution 解题详析 ping命令ping命令的应用格式ping命令执行漏洞 ls命令cat命令姿势ping本地回环地址ping目录ping文件夹ping文件 Tips总结 题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道…