Java -- 软件开发整体流程;项目环境dev,test,staging,prod

news2024/9/22 10:08:50

软件开发整体介绍

作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程, 以及软件开发过程中涉及到的岗位角色,角色的分工、职责, 并了解软件开发中涉及到的四种软件环境。我们将从 软件开发流程、角色分工、软件环境 三个方面,来整体上介绍一下软件开发

一、软件开发流程

1、第1阶段:需求分析

完成产品原型、需求规格说明书的编写。

产品原型,一般是通过网页(html)的形式展示当前的页面展示什么样的数据, 页面的布局是什么样子的,点击某个菜单,打开什么页面,点击某个按钮,出现什么效果,都可以通过产品原型看到。

需求规格说明书, 一般来说就是使用 Word 文档来描述当前项目有哪些功能,每一项功能的需求及业务流程是什么样的,都会在文档中描述。

2、第2阶段:设计

设计的内容包含 产品设计、UI界面设计、概要设计、详细设计、数据库设计。

在设计阶段,会出具相关的UI界面、及相关的设计文档。比如数据库设计,需要设计当前项目中涉及到哪些数据库,每一个数据库里面包含哪些表,这些表结构之间的关系是什么样的,表结构中包含哪些字段,字段类型都会在文档中描述清楚。

3、第3阶段:编码

编写项目代码、并完成单元测试。

作为软件开发工程师,我们主要的工作就是在该阶段, 对分配给我们的模块功能,进行编码实现。编码实现完毕后,进行单元测试,单元测试通过后再进入到下一阶段。

4、第4阶段:测试

在该阶段中主要由测试人员, 对部署在测试环境的项目进行功能测试, 并出具测试报告。

5、第5阶段:上线运维

在项目上线之前, 会由运维人员准备服务器上的软件环境安装、配置, 配置完毕后, 再将我们开发好的项目,部署在服务器上运行。

我们作为软件开发工程师, 我们主要的任务是在编码阶段, 但是在一些小的项目组当中, 也会涉及到数据库的设计、测试等方面的工作。

二、角色分工

在整个软件开发过程中涉及到的岗位角色,以及各个角色的职责分工

岗位/角色职责/分工
项目经理对整个项目负责,任务分配、把控进度
产品经理进行需求调研,输出需求调研文档、产品原型等
UI设计师根据产品原型输出界面效果图
架构师项目整体架构设计、技术选型等
开发工程师功能代码实现
测试工程师编写测试用例,输出测试报告
运维工程师软件环境搭建、项目上线

上述角色分工,是在一个项目组中比较标准的角色分工,但是在实际的项目中,有一些项目组由于人员配置紧张,可能并没有专门的架构师或测试人员,这个时候可能需要有项目经理或者程序员兼任

三、软件环境

软件应用开发的经典模型有这样几个环境:开发环境(development)、集成环境(integration)、测试环境(testing)、QA验证,模拟环境(staging)、生产环境(production)。

(一)开发环境(development,dev)或本地环境

开发环境是程序猿们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告。

开发同学一般会先在本地环境进行开发,根据需求文档进行功能开发,然后功能开发完成会提到dev环境进行自测,一般外部用户无法访问

1、开发同学进行自测,进行功能流程串起来。

2、出现bug之后,进行bug修改及验证,提交代码到test环境

(二)测试环境 (test)

当软件开发工程师,将项目的功能模块开发完毕,并且单元测试通过后,就需要将项目部署到测试服务器上,让测试人员对项目进行测试。那这台测试服务器就是专门给测试人员使用的环境, 也就是测试环境,用于项目测试,一般外部用户无法访问

一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上

1、测试同学重点关注的,进行新功能的测试,提交bug等都是依据test环境进行提交的。

2、进行老功能测试回归,bug回归等

(三)预发布/模拟生产环境(staging)

可以理解为production环境的镜像, QA在staging server上对新版本做最后一轮verification, 通过后才能deploy到产品线上. 有点网讯SERCM流程里面的SDA验证用的环境, 尽最大可能来模拟产品线上的环境(硬件,网络拓扑结构,数据库数据)

1、staging环境一般是产品同学进行验收,比如看一下开发同学是否按照需求来的,是否有大的问题可能没有考虑到

2、进行到生产环境的预部署(包括sql兼容语句、UI页面或接口的提前上线等等)

(四)生产环境(production,prod)

当项目开发完毕,并且由测试人员测试通过之后,就可以上线项目,将项目部署到线上环境,并正式对外提供服务,这个线上环境也称之为生产环境

是值正式提供对外服务的,一般会关掉错误报告,打开错误日志。通常说的真实环境。

通常一个web项目都需要一个staging环境,一来给客户做演示,二来可以作为production server的一个“预演”,正式发布新功能前能及早发现问题(特别是gem的依赖问题,环境问题等)

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

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

相关文章

7-4 乘法口诀数列

本题要求你从任意给定的两个 1 位数字 a1​ 和 a2​ 开始,用乘法口诀生成一个数列 {an​},规则为从 a1​ 开始顺次进行,每次将当前数字与后面一个数字相乘,将结果贴在数列末尾。如果结果不是 1 位数,则其每一位都应成为…

1015:计算并联电阻的阻值(信奥赛一本通)

题目跳转:点击这里 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 【输入】 两个电阻阻抗大小,浮点型,以一个空格分开。 【输出】 并联之后的阻抗大小,结果保留小数点后22位。 【输入样例】 1 2 【输出样例】 0.67 …

Windows下Cmake的简易工程构建

新建两个文件head,src,用于存放头文件和c文件。 再新建CMakeLists.txt文件,用于cmake配置。 当前文件结构: --->CMakeLists.txt | --->head | --->src新建一个头文件hello.h 内容如下: #ifndef HELLO_H #define HELLO_H #include "stdio…

Koxia and Number Theory(数论)

题目链接&#xff1a; Problem - C - Codeforces 题目大意&#xff1a; 给定一个数组a.问是否存在x,使得gcd(aix,ajx)1 对任意(1<x<j<n)成立 思路&#xff1a; 首先不难发现&#xff0c;数组不可以出现相同的数字 记biaix 要满足gcd(bi,bj)1 对任意(1<x<…

Python数据分析案例17——电影人气预测(特征工程构建)

案例背景 本次案例是中国人民大学“人工智能与机器学习&#xff08;2022年秋季&#xff09;”课程的课堂竞赛。 比赛是根据有关电影的各种信息来预测电影的受欢迎程度&#xff0c;包括演员、工作人员、情节关键字、预算、收入、海报、上映日期、语言、制作公司、国家、TMDB 投…

【概率论】期末复习笔记:参数估计

参数估计目录一、点估计1. 估计量的概念2. 估计量的求法矩估计法最大似然估计法二、估计量的评选标准1. 无偏性2. 有效性3. 相合性总结三、区间估计1. 双侧区间估计2. 单侧区间估计四、正态总体参数的区间估计σ2\sigma^2σ2已知&#xff0c;考察μ\muμ</font>σ2\sigma…

车载以太网 - DoIP报文类型 - 02

上次我们聊了什么是DoIP&#xff0c;以及DoIP在车载网络以及车载ECU中的作用&#xff0c;我们应该有大概的了解&#xff0c;以及它的极大地作用&#xff0c;今天我们开始全面的去了解它&#xff0c;毕竟只有等我们了解它以后&#xff0c;才能更好的应用。今天要聊的第一个内容呢…

沃太能源冲刺上市:亿纬锂能、高瓴均为股东,收入主要来自境外

12月30日&#xff0c;沃太能源股份有限公司&#xff08;下称“沃太能源”&#xff09;在上海证券交易所递交招股书&#xff0c;准备在科创板上市。本次冲刺科创板上市&#xff0c;沃太能源计划募资10亿元&#xff0c;中信证券为其保荐机构。 按照计划&#xff0c;沃太能源将其中…

网络编程 udp/ip协议 c/s模型

目录 1.概念​编辑 2.代码解析 1.recvfrom函数 2.sendto函数 3.内核泄露问题 整体代码 1.概念 2.代码解析 1.recvfrom函数 该函数接收数据报&#xff0c;并存储源地址&#xff0c;即得到当前服务器接收到的消息&#xff0c;并且存储在参数2&#xff0c;该函数是阻塞的&#x…

c++构造和析构

1.构造函数 1.构造函数特性 构造函数名字和类名相同构造函数没有返回值(void有返回值&#xff0c;返回值为空)不写构造函数&#xff0c;每一个类中都存在默认的构造函数&#xff0c;默认的构造函数是没有参数的default显示使用默认的构造函数delete删掉默认函数当我们自己写了…

MM采购订单及发票相关后台表介绍(图解)

EKPO 采购凭证项目 EKKO 采购凭证抬头 EORD 采购货源清单 EINA 采购信息记录 - 一般数据 EINE 采购信息记录 - 采购组织数据 EKET 计划协议计划行 EKES 供应商确认 EKKN 采购凭证中的帐户设置 EKBE 采购凭证历史 EKBZ 每个采购凭证的历史&#xff1a;交货费用 RBKP 凭…

在wsl下开发T113的主线linux(2)-编译awboot

意外发现有awboot能够代替uboot直接引导内核&#xff0c;体验了一下果断选择awboot&#xff0c;因为足够简洁&#xff0c;编译大小只有32k&#xff0c;和uboot接近1M的体量相比&#xff0c;简直是小而美&#xff0c;启动速度也比uboot快上不少&#xff0c;也能同时支持sd卡&…

DoIP协议从入门到精通系列——车载网络拓扑

因特网协议(IP-Internet protocol)是互联网规范中的基本协议,它仅是支持互联网正常运转“TCP/IP”协议簇之一。UDP协议也是TCP/IP协议体系中的内容(因为名称中只含有TCP/IP名称,往往会忽略UDP)。以太网引入到车载网络后,汽车也会慢慢进入车联网时代(或者物联网,万物互…

aws codepipeline 在pipeline构建过程中使用变量

参考资料 Action structure reference codebuild构建环境中的环境变量 codepipeline中的变量 在codePipeline中使用变量 对于codepipeline来说&#xff0c;管道结构中的每个操作都有自身的结构和定义&#xff0c;本文主要讨论不同资源的输出变量。 基本概念 变量允许用户…

数据完整性(一)

目录 数据完整性&#xff1a; 什么是数据完整性&#xff1a; 数据完整性的类型 1&#xff1a;实体完整性 2&#xff1a;域完整性&#xff1a; 3、引用完整性&#xff1a; 4、自定义完整性&#xff1a; 完整性约束&#xff1a; 数据完整性的实现方式&#xff1a; 实体完整性&a…

抽象⼯⼚模式

抽象⼯⼚模式 1.抽象工厂模式介绍 抽象⼯⼚模式与⼯⼚⽅法模式虽然主要意图都是为了解决&#xff0c;接⼝选择问题。但在实现上&#xff0c;抽象⼯⼚是⼀ 个中⼼⼯⼚&#xff0c;创建其他⼯⼚的模式。 2.案例场景模拟 2.1场景简述 很多时候初期业务的蛮荒发展&#xff0c;也…

NLP中隐性语义分析及奇异值分解(SVD)-学习笔记

目录 1、隐性语义分析 2、奇异值分解 2.1 左奇异向量U 2.2 奇异值向量S 2.3 右奇异值向量V^T 2.4 SVD矩阵的方向 2.5 主题约简 1、隐性语义分析 隐形语义分析基于最古老和最常用的降维技术–奇异值分解(SVD)。SVD将一个矩阵分解成3个方阵&#xff0c;其中一个是对角矩阵…

网络类型实验报告

实验拓扑 实验要求 1.R2为ISP&#xff0c;其上只能配置IP地址 2.R1-R2之间为HDLC封装 3.R2-R3之间为ppp封装&#xff0c;pap认证&#xff0c;R2为主认证方 4.R2-R4之间为PPP封装&#xff0c;chap认证&#xff0c;R2为主认证方 5.R1、R2、R3构建MGRE环境&#xff0c;仅R1P地址固…

【C++】-- C++11基础常用知识点

目录 C11简介 统一的列表初始化 &#xff5b;&#xff5d;初始化 std::initializer_list std::initializer_list使用场景&#xff1a; 声明 auto decltype nullptr 范围for循环 STL中一些变化 新容器 array容器 forward_list容器 容器中的一些新方法 C11简介 在…

TDK | RoboKit1-DK 开发平台为实现未来机器人的多样性扫清障碍

机器人行业正在飞速发展&#xff0c;新技术亦层出不穷。TDK 现推出了 TDK RoboKit1-DK 机器人开发平台&#xff0c;该平台配备了机器人精确操作所必需的各种传感器&#xff0c;有助于在各种机器人开发中提高效率和性能。 在技术快速进步与成长的环境中&#xff0c;机器人开发所…