8.软件工程

news2024/9/20 14:31:38

整个章节偏向于记忆、背诵;

主要议题:
软件体系:3层;
UML重点,重点记3要素中的关系、图;
在这里插入图片描述

1.软件体系结构

分层
优点:利于软件的重复利用;
缺点:以什么方式分层,分层的粒度如何;这两个问题比较难;

常考:哪些输入服务器端、哪些属于客户端?需要记忆;
在这里插入图片描述

2.软件工程

软件危机:采用某种方式进行开发,开发到一定程度,随着规模越来越大,这种方法开发出来的软件的质量没有保障,而且开发成本变高;
软件工程:以工程化的思想来开发软件;
在这里插入图片描述

3.软件配置管理

偶尔考;
基线:软件开发过程中的一个检查点;由于软件开发的过程是连续的,就必须设置检查点,以免软件质量发生偏移;
软件配置项:软件开发中所涉及到的信息和项目,比如用户名和密码、电信网络的账户、使用到的硬件如路由器,路由器上的配置;

配置项有2中状态:自由态和受控态;自由态经过基线的评价,就到了受控态;受控态下你要进行修改,就要走变更管理流程;
在这里插入图片描述
产品库/开发库/受控库
开发过程中的信息,经过评审进入受控库;
受控库中有一段区域为测试区,测试区为信息的变更提供工作区间;比如说你要修改一个文件,要先通过变更管理获取修改权限,将文件从受控区改到测试区,然后完成测试,测试完成后再通过基线的评审,进入受控库;
发布产品时从产品库中发布;

4.CMM(软件能力成熟度模型)

描述软件组织所处的阶段;
主要考察队cmm几个级别的理解;
1、知道几个级别的名字;
2、知道几个级别的关键点;
例如提供一段描述,问这个组织处于哪个级别;

初始级:项目没有什么规则;没有什么经验可以借鉴;特点是英雄主义,能不能成功看人了;
可重复级:做项目时有经验可借鉴;能对项目的成本、进度有一定的控制能力;
已定义级:所有的事情都已标准化、文档化了;
已管理级:可以把控项目,进行管理了;有明确的质量指标;
优化级:在先有上,利用新技术优化软件的过程;
在这里插入图片描述

5.开发模型

能根据题干描述知道采用的什么模型;
必须记住:每个模型的适用项目;

瀑布模型:将软件开发的生命周期划分成多个阶段;每个阶段依次进行;
优点:各个阶段划分明确,利于项目管理、控制成本;
缺点:需求分析阶段出现问题,往往在软件测试阶段才发现;越后发现,成本越高;
对测试工作不重视;
适用项目:需求明确、解决方案明确的项目;

需求分析到软件测试都处于开发阶段;

V模型:对瀑布模型的改进,改进瀑布模型中对软件测试不重视的场景;在V模型中,把软件测试和开发阶段一一对应起来,强调软件测试的意义;但从整个流程上看,软件测试依然在写完代码后,从功能上其实还没解决测试阶段处于扫尾阶段这一问题;

箭头:
水平箭头:表示检测的对象;
斜上箭投:验证上一个层次的设计有无问题;

可能会擦掉右侧箭头让你填写;
在这里插入图片描述
原型、增量模型常常混淆;
原型模型:快速的开发方法,先和用户沟通,大致了解需求后,就针对需求做开发,实现大致界面,没有开发实际的后台程序;再和用户交流,用户觉得有问题再改;通过逐步演进,变成最终可交付的系统;最终只有一次交付;
原型:可运行的、只体现核心功能的模型;
优点:帮我们明确需求;
缺点:快速,意味着没写文档;文档不全;

抛弃型原型:开发时,和用户交流完,用户不认可,此原型直接丢弃,再新写;
渐进演化型原型:慢慢演化、修改成最终交付的系统;

增量模型:多次交付;
其实就是版本迭代;每一次交付都是在前一次交付的基础上增加相关功能;
优点:激发用户的进一步需求;帮助用户进一步明确需求;节约开发成本、时间,风险小;
缺点:增量如何控制?粒度多大?
在这里插入图片描述
螺旋模型:结合了瀑布模型和原型模型;
多次迭代;每个迭代都分成几个阶段;
模型中引入了风险分析;
优点:便于对项目的风险进行控制;用户也了解软件开发中的风险;
缺点:人来做风险分析,经验很重要;经验不足识别不出风险;

喷泉模型:下图中的各个阶段都在同时进行;是以对象为驱动的;主要用于面向对象的开发项目;在这里插入图片描述

6.开发方法(RUP/UP)

统一过程:
将软件开发分成4个阶段:初始、细化、构建、交付;
它是一个以用例为驱动、以架构为中心,进行迭代和增量的开发方法;

工件:工厂中的产品;相当于你要开发的代码;
活动:有特定目的的工作;
角色:人;
工作流;
下选项哪个不属于统一过程中的对象?
在这里插入图片描述
敏捷开发
考点漂浮不固定;适当记忆;
极限编程:XP
在这里插入图片描述
Jackson方法:对时序敏感,对事件发生的先后敏感;
在这里插入图片描述

7.MVC

考察较少;
M:业务代码;
V:呈现给用户的信息;
C:负责转换V的需求,并进行M、V的控制管理;
用户有需求通过V给M,服务器根据业务规则取出数据给V,这个过程需要C控制请求的转换;
在这里插入图片描述

8.软件生命周期

考点:有哪些阶段,每个阶段主要财务是什么?
概要设计,又称总体设计;
详细设计:设计各个模块的功能,怎么做,步骤;还没开始写代码呢;
在这里插入图片描述
需求层次:
系统需求分为:功能需求、非功能需求、设计约束;
功能需求:必须要实现的需求;
非功能需求:你的系统必须要具备的品质;如可靠性、稳定性、可维护性;
设计约束:比如服务器、数据库用哪个牌子的;开发方法、技术用啥;
在这里插入图片描述
结构化分析:
数据流图(DFD图):通过对数据在系统中传递和加工的动作来描述系统的功能需求;
因为数据流图没有明确每一项数据的特征,这时就用到数据字典;
在这里插入图片描述
数据流图
外部实体:与系统由信息交互,但不包括在本次开发内的对象;如工资管理系统中的银行;
加工:对数据进行变换的地方;
数据流:箭头指向谁,数据流向谁;
要能看懂考题中的DFD图,不会考大题;
在这里插入图片描述
父子图平衡:父图有输入输出的数据流,子图也得有等量的数据流;
数据守恒:要根据输入的数据产生输出,不要凭空出现;
数据流图体现的是数据信息,而不是控制信息,一旦有控制信息,就不是数据流图;
在这里插入图片描述
在这里插入图片描述

9.系统设计

最近的软考体系把数据库设计放到总体设计中;
数据库设计分4步:需求设计、概要设计、逻辑结构设计、物理结构设计;前3步在总体设计中,第4步在详细设计中;
在这里插入图片描述

10.聚合与耦合

2个指标是衡量模块独立性的标准;
程序设计原则:高聚合、低耦合;
聚合是衡量一个模块内各个元素与功能的紧密程度;
耦合强调的是模块与模块之间的关系;

题目:
1、根据聚合/耦合度排序下列的几个选项;
2、给出描述,判断是哪一类聚合/耦合;
考试频率高;

功能聚合最高,模块内的所有元素都是为这个功能服务的;
偶然聚合:模块内的各个元素之间没有必然的联系;
逻辑聚合:模块内的各个元素的逻辑距离相似;
时间聚合:模块内的各个元素在同一时间执行;
过程聚合:模块内的各个元素按照特定的次序来执行;
通信聚合:模块内的各个元素利用同一个输入、或者产生同一个输出;
顺序聚合:模块内的第一个元素的输出是第二个的输入、第二个的输出是第三个的输入;

非直接耦合:两个模块之间没关系;他俩之间的关系是通过上层调用;
数据耦合:两个模块之间要传递数据;
标记耦合:传递的数据不是一个简单的变量,而是一个数据结构;
控制耦合:传递控制信息;
外部耦合:两个模块需要一个外部简单的全局变量传递;
公共耦合:两个模块使用同一个数据区域;
内容耦合:一个模块执行时跑到另一个模块内部访问数据;
在这里插入图片描述

11.编码原则

提高后期的可维护性;
在这里插入图片描述
序言性注释:写程序之前写一段话,介绍系统的功能,运行要求等;
解释型注释:告诉读者接下来这行代码要做什么;

在这里插入图片描述
直接转换:新系统若有缺陷,满足不了业务需求,风险高;用于小型、不重要的系统转换;
试点后直接转换:要求企业有多个分支点,选其中一个分支点进行试点,然后再推广;失败后影响面较小,风险小;对转上一个换的条件有要求;
逐步转换:分段分批转换;上线一个庞大的系统,先上一部分,正常工作了再上另一部分模块;缺陷:与旧系统开发框架、数据库不同,就得提供多个接口给旧系统;
并行转换:新旧系统同时运行一段时间,就知道新系统有哪些缺陷,在这段时间优化;风险小,但是同时运行两个系统,资源就需要更多,服务器更多;开销大;
在这里插入图片描述
可维护性
纠错性维护/公正性维护:本来就有bug(已经暴露出来了),用户发现了;
适应性维护:软件适应环境的变化;如操作系统环境变化;
完善性维护:提高软件的性能和可维护性;如重新整理文档;
预防性维护:软件存在问题,但没暴露出来,没暴露出来就修复;
比重表示的是占维护工作量的比重;
在这里插入图片描述

12.UML

注:一般不会考大题!!!
关系和图要记;
在这里插入图片描述
考题:给出类图,要判断2个类之间的关系;
依赖:一个事物发生变化,回影响到另一个事物;
关联:
聚合:几个独立对象聚合在一起形成整体对象;如参加聚会、显示器与电脑;
组合:强调个体在整体中的职能与责任;部分不能独立于整体而生存;如堆积木、汽车与发动机、人和大脑、企业和企业的部门;
两者都描述的是整体与部分的关系;
泛化:特殊与一般的关系;特殊对象可以代替一般对象的描述;员工与管理层员工;对应面向对象中子类与父类的关系;
实现:两个类元之间的语义关系;一个类元指定了另一个类元保证执行的契约;
在这里插入图片描述
图较多,不确定考哪个,多花时间看!
在这里插入图片描述
类图
一个框有3层,从上到下,分别表示:类名、属性、操作;
在这里插入图片描述
用例图
用例:如上办公系统完成工作后,离开系统;
一般图中有人形标志,就与用例图有关;
泛化关系:同上;
包含关系:
扩展关系:
执行此用例是否一定要做另一个用例,一定则包含,否则扩展;
如:缴费和登录账户的关系,包含;查询缴费记录和保存流水,扩展;
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.软件质量

在这里插入图片描述
记质量特性;
在这里插入图片描述
下图适当记
考试考:下列选项哪个不属于功能性?
在这里插入图片描述
评价使用质量的4个标准:
有效性:满足用户功能的准确程度、满意程度;
生产率:满足有效性的情况下,资源的合理利用程度;
安全性:用户数据的安全;
满意度;
在这里插入图片描述

14.软件评审

不咋考
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15.软件评价—GB/T18905.5

可重复性:同一人用同一标准对系统多次评价,评价结果可接受;
可再现性:不同人用同一标准对系统评价,评价结果可接受;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16.面向对象

消息:类之间通信;
在这里插入图片描述

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

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

相关文章

2024 Python3.10 系统入门+进阶(三):Python变量类型和运算符

目录 一、Python变量的定义和使用二、Python整数类型(int)详解三、Python小数/浮点数(float)类型详解四、Python复数类型(complex)详解---了解五、Python字符串详解(包含长字符串和原始字符串)5.1 处理字符串中的引号5.2 字符串的…

【Linux系统】冯诺依曼与操作系统

什么是冯诺依曼体系结构? 如图即为冯诺依曼大致的体系结构图, 我们知道这些都是由我们的计算机硬件组成 输入设备:键盘, 鼠标, 摄像头, 话筒, 磁盘, 网卡... 输出设备&#xff1a…

[HGAME 2023 week2]Designer

[HGAME 2023 week2]Designer 考点:XSS跨站脚本攻击,模板注入 代码审计 function auth(req, res, next) {const token req.headers["authorization"]if (!token) {return res.redirect("/")}try {const decoded jwt.verify(token,…

你在测试金字塔的哪一层(下)

​在《你在测试金字塔的哪一层(上)》中介绍了自动化测试的重要性以及测试金字塔。测试金字塔分为单元测试、服务测试、UI测试,它们分别是什么呢?本期文章让我们一起详细看看测试金字塔的不同层次。 一、单元测试 单元测试是指对程…

蓝桥杯练习07小兔子爬楼梯

小兔子爬楼梯 介绍 小兔子想去月球上旅行,假设小兔子拥有一个阶梯子,当你爬完层就可以到达月球,小兔子每次可以跳1或者2个台阶,小兔子有多少种跳法可以到达月球呢? 给定n是一个正整数,代表梯子的阶数&…

apisix创建https

总结了下apisix 使用https 的问题和方法 1、apisix 默认https 端口是9443 2、apisix 需要上传证书后才可以使用https 否二curl测试会报错 SSL routines:CONNECT_CR_SRVR_HELLO 3、apisix 上传证书方法 我是使用的自签名证书,注意自签名证书的Common Name 要写你…

【教程】高效数据加密混淆方法及实现简介

背景 在需要对数据进行传输或者表达时,通常要求数据加密的安全级别不高,但希望加解密时间复杂度尽可能低。这时使用传统的对称加密(如3DES、AES)或非对称加密(如RSA、ECC)显然不太适合。因为加密的安全级别…

基于深度学习的海洋鱼类识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ............................................................ % 对测试集进行分类预测 [Pr…

深入理解 TreeMap

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

厨余垃圾处理设备工业监控PLC连接APP小程序智能软硬件开发之功能结构篇

厨余垃圾处理设备工业监控PLC连接APP小程序智能软硬件开发之功能结构篇 好几年前,应朋友之邀,为其工厂的厨余垃圾处理设备研发一套用于对现场的生产及维护进行远程查看、管理和质量监控的厨余垃圾处理设备工业监控PLC连接APP小程序智能软硬件系统。 因为…

STM32之HAL开发——Keil调试工具介绍

Debug介绍 在Keil工具中有许多常用的小工具,下面将会依次为大家介绍每个工具的用途。 命令行窗口 在窗口内可以输入一些指令,来进行断点设置以及删除,一般不常用 反汇编窗口 可以查看当前C代码的汇编指令 标志窗口 寄存器窗口 可以用来查看C…

【Linux】信号量与信号

目录 先导知识 信号量 信号 信号概念及产生信号的一般方式 进程递达、阻塞和捕捉 信号集操作函数 信号的捕捉 可重入函数 先导知识 信号量与信号没有任何关系,它们是两个完全不同的概念! 操作系统的本质,就是一个死循环;…

Cookie在网络爬虫中的重要作用

在互联网的海量数据中,网络爬虫如同一只勤劳的小蜜蜂,不断采集着网页上的信息。而在这过程中,Cookie扮演了不可或缺的角色,它就像是爬虫手中的“通行证”,帮助其顺利获取所需数据。本文将深入探讨Cookie在网络爬虫中的…

LLM2LLM: Boosting LLMs with Novel Iterative Data Enhancement

LLM2LLM: Boosting LLMs with Novel Iterative Data Enhancement 相关链接:arXiv GitHub 关键字:LLM、Data Augmentation、Fine-tuning、NLP、Low-data Regime 摘要 预训练的大型语言模型(LLMs)目前是解决绝大多数自然语言处理任…

axios+springboot上传图片到本地(vue)

结果&#xff1a; 前端文件&#xff1a; <template> <div> <input type"file" id"file" ref"file" v-on:change"handleFileUpload()"/> <button click"submitFile">上传</button> </div&g…

centos7 的redis的安装

文章目录 查看本机redis⾸先安装 scl 源, 再安装 redis 基本配置启动redis停止redis 查看本机redis ⾸先安装 scl 源, 再安装 redis 安装scl源 yum install centos-release-scl-rh安装redis5 yum install rh-redis5-redis安装成功 基本配置 修改etc/redis/redis.conf 文件…

javaWeb网上订餐管理系统

一、简介 在当今社会&#xff0c;随着互联网的普及&#xff0c;网上订餐已经成为了人们生活中不可或缺的一部分。为了方便用户点餐&#xff0c;同时也方便商家管理订单&#xff0c;我设计了一个基于JavaWeb的网上订餐管理系统。该系统分为前台和后台两部分&#xff0c;前台包括…

解决多线程场景下ThreadLocal的变量传递问题

问题描述&#xff1a; ThreadLocal可以用于存储线程独享的变量。可以方便的存储上下文信息&#xff0c;提升代码的简洁性。 然而&#xff0c;ThreadLocal的一个不足之处在于&#xff0c;它不支持在线程嵌套过程中自动地将数据从父线程传递到子线程。这意味着&#xff0c;即使…

面试笔记——框架篇Spring系列(Spring、SpringMVC、SpringBoot)

Spring 线程安全 singleton : bean在每个Spring IOC容器中只有一个实例。 prototype&#xff1a;一个bean的定义可以有多个实例。 问题一&#xff1a; Spring中的单例bean是否是线程安全的&#xff1f; ControllerRequestMapping("/user")public class UserContro…

Springboot+vue的旅游信息推荐系统设计与实现+数据库+论文+数据库表结构文档+免费远程调试

项目介绍: Springbootvue的旅游信息推荐系统设计与实现。Javaee项目&#xff0c;springboot vue前后端分离项目 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringBoot Mybati…