软件开发的整体介绍(Java学习笔记)

本文详细介绍了软件开发的完整流程,包括需求分析、设计、编码、测试和上线运维。需求分析阶段产品经理负责编写需求规格说明书和产品原型。在实际项目中,不同角色如项目经理、UI设计师、架构师、开发工程师和测试工程师各有其职责。文章还讨论了开发环境、测试环境和生产环境的区别,并提及了常见的技术选型,如SpringBoot、Nginx、MySQL、Redis等。
摘要由CSDN通过智能技术生成

软件开发流程

需求分析
设计
编码
测试
上线运维

1. 需求分析[产品经理]

完成需求规格说明书,产品原型编写。
需求规格说明书:一般来说就是使用Word文档来描述当前项目的各个组成部分,如:系统定义,应用环境,功能规格,性能需求等,都会在文档中描述。

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

2.角色分工

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

在实际项目中,有一些项目组由于人员配置紧张,可能并没有专门负责的架构师和测试人员,这个时候就需要项目经理和程序员身兼数职了。

3.软件环境

作为软件开发工程师,在编码的过程中不可避免的会接触到多种软件环境,我们主要来分析在工作中经常遇到的三套环境:开发环境,测试环境,生产环境。

3.1 开发环境[开发工程师]

作为软件开发人员,在开发阶段使用的环境,就是开发环境,一般外部用户无法访问。比如我们在开发中使用的是Mysql数据库和其他的一些常用软件,我们就可以安装在本地,也可以安装在一台专门的电脑上,这些应用程序仅仅是软件开发过程中使用,项目测试,上线时,我们不会使用这套环境了,这个就是开发环境。

3.2 测试环境[测试工程师]

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

3.3 生产环境[运维工程师]

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

3.4 环境切换流程

开发环境
测试环境
生产环境
大多数都是本地的电脑环境和局域网内的环境
一般是一台独立的测试服务器
机房或者云服务器

4. 项目架构

各个具体业务功能模块的设计

5. 产品原型

用于展示项目的业务功能,一般由产品经理进行设计。

6. 技术选型

一般从用户层、网关层、应用层、数据层 这几个方面进行分析。

6.1 用户层[前端工程师]

一般项目中在构建系统管理后台的前端页面,我们会用H5,Vue.js,ElementUI,apache aecharts等技术,而在构建移动端应用是,我们会使用微信小程序。

6.2 网关层[以Nginx为例]

Nginx是一个服务器,主要用于Http服务器,部署静态资源,访问性能高,在Nginx还有两个重要的作用,反向代理和负载均衡,在进行项目部署的时候,要实现Tomcat的负载均衡就可以通过Nginx来实现,

6.3 应用层

技术功能
SpringBoot 企业实用:快速构建Spring项目, 采用 “约定优于配置” 的思想, 简化Spring项目的配置开发。
SpringMVC 配置繁琐:SpringMVC是spring框架的一个模块,
Spring Task:由Spring提供的定时任务框架。
httpclient :主要实现了对http请求的发送。
Spring Cache:由Spring提供的数据缓存框架
JWT 安全性高:用于对应用程序上的用户进行身份验证的标记。
阿里云OSS:对象存储服务,在项目中主要存储文件,如图片等。
Swagger企业实用:可以自动的帮助开发人员生成接口文档,并对接口进行测试。
POI:封装了对Excel表格的常用操作。
WebSocket:一种通信网络协议,使客户端和服务器之间的数据交换更加简单,用于项目的来单、催单功能实现。

6.4 数据层

组件功能
MySQL企业实用:关系型数据库, 本项目的核心业务数据都会采用MySQL进行存储。
Redis提高访问性能:基于key-value格式存储的内存数据库, 访问速度快, 经常使用它做缓存。
Mybatis企业实用:本项目持久层将会使用Mybatis开发。
pagehelper:分页插件。
spring data redis:简化java代码操作Redis的API。

6.5 工具

工具作用
git企业实用:版本控制工具, 在团队协作中, 使用该工具对项目中的代码进行管理.maven企业实用: 项目构建工具。
junit:单元测试工具,开发人员功能实现完毕后,需要通过junit对功能进行单元测试。
postman/Apifox:接口测工具,模拟用户发起的各类HTTP请求,获取对应的响应结果。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值