当前位置: 首页 > news >正文

软件工程体系概念

软件工程

软件工程是应用计算机科学、数学及 管理科学等原理开发软件的工程。它借鉴 传统工程的原则、方法,以提高质量,降 低成本为目的。

一、软件生命周期

在这里插入图片描述

二、软件开发模型

1.传统模型

瀑布模型、V模型、W模型、X 模型、H 模型

(1)瀑布模型

在这里插入图片描述
瀑布模型的优缺点:

优点:

  • 有利于大型软件开发过程的人员的组织和管理
  • 有利于 开发方法和工具的使用
  • 提高了软件的质量和效率

缺点:

  • 各阶段的划分完全固定,阶段之间产生大量文档,极大的增加了工作量
  • 由于是线性的,用户只有等到末期才能见到开发成果,极大的增加了 开发的风险
  • 早期的错误可能要等到开发后期的测试阶段才能发现,极大的增加了 修复成本
(2)V模型–瀑布模型的变型

在这里插入图片描述

(3)W模型– V模型的升级版

在这里插入图片描述

(4)X 模型

在这里插入图片描述

(5)H 模型

在这里插入图片描述

2.现代模型

原型模型、迭代式开发、增量式开发、组件式开发、敏捷开发

(1) 原型模型

原型开发指的是建立一个系统的早期版本的演习 (practice),它不必反映最终产品的所有性能,而只要反映 感兴趣的一些方面。
在这里插入图片描述
特性:

  • 一个可实际工作的系统
  • 没有固定的生存期,结局可能是用后立即被抛弃,或可能成为 最终系统
  • 可服务于不同的目的,从需求分析到最终产品都可做原型
  • 建立必须快,便宜
  • 是包含修改、评价在内的完整重复过程
(2) 迭代式开发
  • 迭代式开发也被称作迭代增量式开发或迭代进化式开发,是 一种与传统的瀑布式开发相反的软件开发过程,它弥补了传 统开发方式中的一些弱点,具有更高的成功率和生产率。
  • 在迭代式开发方法中,整个开发工作被组织为一系列的短小 的、固定长度(如3周)的小项目,被称为一系列的迭代。 每一次迭代都包括了定义、需求分析、设计、实现与测试。 采用这种方法,开发工作可以在需求被完整地确定之前启动, 并在一次迭代中完成系统的一部分功能或业务逻辑的开发工 作。再通过客户的反馈来细化需求,并开始新一轮的迭代。
    在这里插入图片描述
(3) 增量式开发
  • 增量是指在软件开发过程中,先开发主要功能模块,再开发 次要功能模块,逐步完善,最终开发出符合需求的软件产品。
  • 比如,需要开发一个类似WORD的软件,应该首先开发出文 件管理(保存、读取文件)、基本编辑功能、打印等,而其 它不太常用的功能可以最后开发。
  • 增量式开发,就是首先把大型程序分解成若干小的模块,然 后对每个模块按照某种过程模型进行开发,最后把这些模块 逐步集成为完整的软件产品。
(4) 组件式开发
  • 组件技术:代码复用性高、加快开发速度、 避免UI兼容性问题

在这里插入图片描述

(5) 敏捷开发
  • 敏捷开发以用户的需求进化为核心,采用迭代、循 序渐进的方法进行软件开发。
  • 在敏捷开发中,软件项目在构建初期被切分成多个 子项目,各个子项目的成果都经过测试,具备可视、 可集成和可运行使用的特征
  • 换言之,就是把一个大项目分为多个相互联系,但 也可独立运行的小项目,并分别完成,在此过程中 软件一直处于可使用状态。

三、软件研发流程

在这里插入图片描述
其中软件测试流程包括:

测试需求分析–>测试计划–> 测试方案–>测试用例–>测试执行–> 测试报告

四、软件项目成员

  • 项目经理(PM)
    驱动整个项目的运转,负责制定计划,安排人力,管理进度,协调团队
  • 架构师 / 系统工程师
    技术专家,负责整个系统的体系架构的设计以及关键模块的设计
  • 需求分析师/产品经理
    将公司业务部门所给予的客户需求进行业务规则、业务范围、业务流 程等方面利用技术分析完之后,把需求输出工程师看得懂的语言
  • 程序员 / 开发人员(DEV)
    Java/C/C++/C#/Python/PHP/GO/Ruby,前端 设计、编写软件,并修复软件中的缺陷。
  • 测试工程师( TM )
    负责找出软件产品存在的问题并报告
  • 运维工程师 / 技术支持 / 实施工程师
    负责编写软件产品附带的文件和联机帮助文档
  • 配置管理员(CMO)
    负责管理程序员写的代码和测试写的文档资料,并组合成一个软件包
  • QA
    质量监管人员(项目管理)–负责整个项目的推进事件

五、软件开发沙龙

  • 软件结构:B/S、C/S
  • WEB服务器:Tomcat、Apache、JBoss、nginx Weblogic、WAS、IIS
  • 数据库:MySQL、MSSQL、Oracle
  • 软件环境:开发环境、测试环境、用户环境 生产环境
  • 软件IDE:Eclipse、EPP,VS
  • 常见开发语言:C/C++、Java、C#、.NET ASP、JSP、PHP、PYTHON、SHELL
  • 常见测试环境搭配:计算机基础知识(二进制、进程/线程)、配置管理
  • C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。通过这 种架构可以充分利用两端硬件环境的优势,将任务合理分配到Client端和 Server端来实现,降低了系统的通讯开销(实际应用:QQ、网游、手机App、火车票窗口购票系统、迅雷播放器)
    在这里插入图片描述
  • B/S结构(Browser/Server),是WEB兴起后的一种网络结构模式,WEB浏 览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能 实现的核心部分集中到服务器上,简化了系统的开发、维护和使用(淘宝、百度、12306购票网站、www.cctv.com、爱奇艺、页游)
    在这里插入图片描述
  • B/S和C/S的不同
    在这里插入图片描述
  • 进程/线程
    在这里插入图片描述
  • 多线程:软件或者硬件上实现多个线程并发 执行的技术,同一时间执行多于一个线程,进而提升整体 处理性能。

相关文章:

软件工程体系概念

软件工程 软件工程是应用计算机科学、数学及 管理科学等原理开发软件的工程。它借鉴 传统工程的原则、方法,以提高质量,降 低成本为目的。 一、软件生命周期 二、软件开发模型 1.传统模型 瀑布模型、V模型、W模型、X 模型、H 模型 (1)瀑布模型 瀑布…...

史上最全整合nacos单机模式整合哈哈哈哈哈

Nacos 是阿里巴巴推出的一个新开源项目,它主要是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos提供了一组简单易用的特性集,帮助用户快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 的关键特性包括&#x…...

Python xml.dom.minidom 读取XML元素

哈喽,大家好,我是木头左! 什么是 XML? XML(可扩展标记语言)是一种用于描述数据结构和交换数据的标记语言。它被广泛用于 Web 应用程序中,用于存储和传输数据。XML 具有自描述性,因此可以很容易地理解和处理。 Python 中的 xml.dom.minidom Python 提供了一个内置的库…...

【Python/Pytorch 】-- K-means聚类算法

文章目录 文章目录 00 写在前面01 基于Python版本的K-means代码02 X-means方法03 最小二乘法简单理解04 贝叶斯信息准则 00 写在前面 时间演变聚类算法:将时间演变聚类算法用在去噪上,基本思想是,具有相似信号演化的体素具有相似的模型参数…...

【Eureka】介绍与基本使用

Eureka介绍与基本使用 一个简单的Eureka服务器的设置方法:1 在pom.xml中添加Eureka服务器依赖:2 在application.properties或application.yml中添加Eureka服务器配置:3 创建启动类,使用EnableEurekaServer注解启用Eureka服务器&am…...

SpringBoot+Vue集成富文本编辑器

1.引入 我们常常在各种网页软件中编写文档的时候,常常会有富文本编辑器,就比如csdn写博客的这个页面,包含了富文本编辑器,那么怎么实现呢?下面来详细的介绍! 2.安装wangeditor插件 在Vue工程中,…...

React@16.x(34)动画(中)

目录 3,SwitchTransition3.1,原理3.1.2,key3.1.2,mode 3.2,举例3.3,结合 animate.css 4,TransitionGroup4.1,其他属性4.1.2,appear4.1.2,component4.1.3&…...

ONLYOFFICE 8.1:全面升级,PDF编辑与本地化加强版

目录 📘 前言 📟 一、什么是 ONLYOFFICE 桌面编辑器? 📟 二、ONLYOFFICE 8.1版本新增了那些特别的实用模块? 2.1. 轻松编辑器 PDF 文件 2.2. 用幻灯片版式快速修改幻灯片 2.3. 无缝切换文档编辑、审阅和查…...

C++ 入门

前言 c的发展史: C的起源可以追溯到1979年,当时Bjarne Stroustrup在贝尔实验室开始开发一种名为“C with Classes”的语言。以下是C发展的几个关键阶段: 1979年:Bjarne Stroustrup在贝尔实验室开始开发“C with Classes”。1983…...

GPT-5发布倒计时:AI智能从高中生到博士生的跨越

嘿,小伙伴们!最近有个大新闻,OpenAI的首席技术官米拉穆拉蒂在一次采访中透露,GPT-5将在一年半后发布。她把这个升级比作从聪明的高中生到博学的博士生的飞跃,听起来是不是很酷? 现在GPT-4o还有不少功能没上…...

Docker 拉取镜像失败处理 配置使用代理拉取

解决方案 1、在 /etc/systemd/system/docker.service.d/http-proxy.conf 配置文件中添加代理信息 2、重启docker服务 具体操作如下: 创建 dockerd 相关的 systemd 目录,这个目录下的配置将覆盖 dockerd 的默认配置 代码语言:javascript 复…...

视频汇聚安防综合管理系统EasyCVR平台GB28181设备注册未上线的原因排查与解决

视频汇聚安防综合管理平台EasyCVR视频监控系统基于云边端架构,可支持海量视频汇聚集中管理,能提供视频监控直播、云端录像、云存储、录像检索与回看、告警(协议告警/智能告警/1400视图库告警)、平台级联、AI智能分析接入等视频能力…...

【性能优化】Android冷启动优化

文章目录 常见现象APP的启动流程计算启动时间Displayed Timeadb dump 启动优化具体策略总结参考链接 常见现象 各种第三方工具初始化和大量业务逻辑初始化,影响启动时间,导致应用启动延迟、卡顿等现象 APP的启动流程 加载和启动应用程序; …...

Git拉完整代码缺少某个类

已找到具体问题,对比之后发现应该是拉去的文件名字字符太长导致! 使用 Git LFS Git LFS(Large File Storage)是 Git 的一个扩展,它可以帮助管理大型文件,包括长文件名。如果你的项目包含大量的大型文件或长…...

Windows资源管理器down了,怎么解

ctrlshiftesc 打开任务管理器 文件 运行新任务 输入 Explorer.exe 资源管理器重启 问题解决 桌面也回来了...

锐捷统一上网行为管理与审计系统 static_convert.php 前台RCE漏洞复现

0x01 产品简介 锐捷统一上网行为管理与审计RG-UAC系列是星网锐捷网络有限公司自主研发的上网行为管理与审计产品,具备的上网行为日志审计功能,能够全面、准确、细致的审计并记录多种上网行为日志,包括网页、搜索、外发文件、邮件、论坛、IM等等,并对日志数据进行统计分析,…...

在Linux/Ubuntu/Debian中使用SSH连接远程服务器VPS

在Linux/Ubuntu/Debian中使用SSH连接远程服务器VPS 在远程管理服务器时,SSH(Secure Shell)协议是我们常用的工具之一。它提供了一种加密的方式来访问和管理远程主机。默认情况下,SSH使用22端口,但有时我们需要通过指定…...

如何安全进行亚马逊、沃尔玛测评?

在亚马逊、沃尔玛、速卖通、阿里国际站等电商平台上,测评已成为一种高效的推广手段,但伴随的风险也不容忽视。这些风险主要源于平台严格的大数据风控机制,它涵盖了多个方面,以确保评价的真实性和合规性。 首先,硬件参数…...

自动化喷涂生产线控制方法概述

喷涂生产线涉及控制机械臂及传送带等,以及触摸屏人机界面,以及各种电机,电磁阀等,本文针对具体控制方法进行讨论。 一套自动化喷涂生产线装配完成后,进入到控制调试阶段,首先要进行工艺参数的设置&#xff…...

【Linux】Centos升级到国产操作系统Openeuler

一、前言 迁移工具采用Openeuler官网提供的x2openEuler工具,是一款将源操作系统迁移到目标操作系统的迁移工具套件,具有批量化原地升级能力,当前支持将源 OS 升级至 openEuler 20.03。 官网链接:openEuler迁移专区 | 迁移专区首页…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...