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

Posted MinggeQingchun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java -- 软件开发整体流程;项目环境dev,test,staging,prod相关的知识,希望对你有一定的参考价值。

软件开发整体介绍

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

一、软件开发流程

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的依赖问题,环境问题等)

以上是关于Java -- 软件开发整体流程;项目环境dev,test,staging,prod的主要内容,如果未能解决你的问题,请参考以下文章

瑞吉外卖Java实战项目:从开发环境配置到后台功能

软件项目开发环境构建之一:整体流程

day01-项目介绍与环境搭建

java面试①整体流程

项目的整体开发流程

项目管理从零到一的流程---个人理解向