一、软件开发整体介绍
作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程,以及软件开发过程中涉及到的岗位角色,角色的分工、职责,并了解软件开发中涉及到的三种软件环境。
1.1 软件开发流程
第一阶段:需求分析
完成需求规格说明书、产品原型编写。
需求规格说明书,一般来说就是使用word文档来描述当前项目的各个组成部分,如:系统定义、应用环境、功能规格、性能需求等,都会在文档中描述。例如:
产品原型,一般是通过网页(html)的形式展示当前的页面展示什么样的数据, 页面的布局是什么样子的,点击某个菜单,打开什么页面,点击某个按钮,出现什么效果,都可以通过产品原型看到。 例如:
第二阶段:设计
设计的内容包含UI设计、数据库设计、接口设计。
UI设计:用户界面的设计,主要设计项目的页面效果,小到一个按钮,大到一个页面布局,还有人机交互逻辑的体现。例如:
数据库设计:需要设计当前项目中涉及到哪些数据库,每一个数据库里面包含哪些表,这些表结构之间的关系是什么样的,表结构中包含哪些字段。例如:
接口设计:通过分析原型图,首先,粗粒度地分析每个页面有多少接口,然后,再细粒度地分析每个接口的传入参数,返回值参数,同时明确接口路径以及请求方式。例如:
第三阶段:编码
编写项目代码并完成单元测试。
项目代码编写:作为软件开发工程师,我们需要对项目的模块功能分析后,进行编码实现。
单元测试:编码实现完毕后,进行单元测试,单元测试通过后再进入到下一阶段。例如:
第四阶段:测试
在该阶段中主要由测试人员,对部署在测试环境的项目进行功能测试,并写出具体测试报告。
第五阶段:上线运维
在项目上线之前,会有运维人员准备服务器上的软件环境安装、配置,配置完毕后,再将我们开发好的项目,部署在服务器上运行。
1.2 角色分工
岗位/角色 | 对应阶段 | 职责/分工 |
---|---|---|
项目经理 | 全阶段 | 对整个项目负责,任务分配、把控进度 |
产品经理 | 需求分析 | 进行需求调研,输出需求调研文档、产品原型等 |
UI设计师 | 设计 | 根据产品原型输出界面效果图 |
架构师 | 设计 | 项目整体架构设计、技术选型等 |
开发工程师 | 编码 | 功能代码实现 |
测试工程师 | 测试 | 编写测试用例,输出测试报告 |
运维工程师 | 上线运维 | 软件环境搭建、项目上线 |
上述我们讲解的角色分工,是在一个项目组中比较标准的角色分工,但是在实际的项目中,有一些项目由于人员配置紧张,可能并没有专门的架构师或测试人员,这个时候可能需要有项目经理或者程序员兼任。
1.3 软件环境
作为软件开发工程师,在编码的工程中就不可避免地会接触多种软件环境,我们主要来分析工作中经常遇到的三套环境,分别是:开发环境、测试环境、生产环境。接下来,我们分别介绍一下这三套环境的作用和特点。
开发环境
我们作为软件开发人员,在开发阶段使用的环境,就是开发环境,一般外部用户无法访问。
比如,我们在开发中使用的MySQL数据库和其他的一些常用软件,我们可以安装在本地,也可以安装在一台专门的服务器中,这些应用软件仅仅在软件开发过程中使用,项目测试、上线时,我们不会使用这套环境了,这个环境就是开发环境。
测试环境
当软件开发工程师,将项目的功能模块开发完毕,并且单元测试通过后,就需要将项目部署到测试服务器上,让测试人员对项目进行测试。那这台测试服务器就是专门给测试人员使用的环境,也就是测试环境,用于项目测试,一般外部用户无法直接访问。
生产环境
当项目开发完毕,并且由测试人员测试通过之后,就可以上线项目,将项目部署到线上环境,并正式对外提供服务,这个线上环境也称之为生产环境。
开发环境 测试环境 生产环境
首先,会在开发环境中进行项目开发,往往开发环境大多数都是本地的电脑环境和局域网内的环境,当开发完毕后,然后会把项目部署到测试环境,测试环境一般是一台独立测试服务器的环境,项目测试通过后,最终把项目部署到生产环境,生产环境可以是机房或者云服务器等线上环境。