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