当前位置: 首页 > news >正文

软件开发介绍

一、软件开发整体介绍

作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程,以及软件开发过程中涉及到的岗位角色,角色的分工、职责,并了解软件开发中涉及到的三种软件环境。

1.1 软件开发流程

第一阶段:需求分析

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

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

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

第二阶段:设计

设计的内容包含UI设计、数据库设计、接口设计。

UI设计:用户界面的设计,主要设计项目的页面效果,小到一个按钮,大到一个页面布局,还有人机交互逻辑的体现。例如:

数据库设计:需要设计当前项目中涉及到哪些数据库,每一个数据库里面包含哪些表,这些表结构之间的关系是什么样的,表结构中包含哪些字段。例如:

接口设计:通过分析原型图,首先,粗粒度地分析每个页面有多少接口,然后,再细粒度地分析每个接口的传入参数,返回值参数,同时明确接口路径以及请求方式。例如:

第三阶段:编码

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

项目代码编写:作为软件开发工程师,我们需要对项目的模块功能分析后,进行编码实现。

单元测试:编码实现完毕后,进行单元测试,单元测试通过后再进入到下一阶段。例如:

第四阶段:测试

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

第五阶段:上线运维

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

1.2 角色分工

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

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

1.3 软件环境

作为软件开发工程师,在编码的工程中就不可避免地会接触多种软件环境,我们主要来分析工作中经常遇到的三套环境,分别是:开发环境、测试环境、生产环境。接下来,我们分别介绍一下这三套环境的作用和特点。

开发环境

我们作为软件开发人员,在开发阶段使用的环境,就是开发环境,一般外部用户无法访问。

比如,我们在开发中使用的MySQL数据库和其他的一些常用软件,我们可以安装在本地,也可以安装在一台专门的服务器中,这些应用软件仅仅在软件开发过程中使用,项目测试、上线时,我们不会使用这套环境了,这个环境就是开发环境。

测试环境

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

生产环境

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

开发环境 测试环境 生产环境

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首先,会在开发环境中进行项目开发,往往开发环境大多数都是本地的电脑环境和局域网内的环境,当开发完毕后,然后会把项目部署到测试环境,测试环境一般是一台独立测试服务器的环境,项目测试通过后,最终把项目部署到生产环境,生产环境可以是机房或者云服务器等线上环境。

相关文章:

软件开发介绍

一、软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程,以及软件开发过程中涉及到的岗位角色,角色的分工、职责,并了解软件开发中涉及到的三种软件环境。 1.1 软件开发流程 第一阶段&#xff1a…...

Go 匿名函数与闭包

Go 匿名函数与闭包 匿名函数和闭包是一些编程语言中的重要概念,它们在Go语言中也有重要的应用。让我们来详细介绍这两个概念,并提供示例代码来帮助理解。 文章目录 Go 匿名函数与闭包一、匿名函数(Anonymous Function)二、闭包函…...

html关闭空标签

常见的空标签有以下几种示例&#xff1a; <br>&#xff1a;表示换行&#xff0c;没有闭合标签。<hr>&#xff1a;表示水平线&#xff0c;没有闭合标签。<img>&#xff1a;表示图片&#xff0c;没有闭合标签。<input>&#xff1a;表示输入框&#xff0…...

Java实现B树

1.介绍 B树是一种自平衡的搜索树数据结构&#xff0c;常用于数据库和文件系统中的索引结构。它具有以下好处和功能&#xff1a; 高效的查找操作&#xff1a;B树的特点是每个节点可以存储多个关键字&#xff0c;并且保持有序。通过在节点上进行二分查找&#xff0c;可以快速定位…...

crontab报错/var/spool/cron : Permission denied和 -bash: chattr: command not found

crontab报错/var/spool/cron : Permission denied和 -bash: chattr: command not found 1、第一种情况2、第二种情况3、第三种情况 1、第一种情况 centos7下修改定时任务crontab -e的时候&#xff0c;控制台输出“crontab: installing new crontab”&#xff0c;表示任务添加成…...

06在IDEA中创建Java和Web工程,了解不同工程下的类路径,在IDEA中执行Maven命令

创建Java/Web模块 类路径的概述 IDEA中普通java项目中类路径的开始就是以src目录开始的路径,编译后的字节码文件和配置文件最终都会放在out目录下 Maven生成的目录结构中src/main目录下的java和resources目录都可以看作类路径的开始,编译后的字节码文件或资源文件会放在targ…...

自定义redission装配和集成分布式开源限流业务组件ratelimiter-spring-boot-starter的正确姿势

自定义redission装配和集成分布式开源限流业务组件ratelimiter-spring-boot-starter的正确姿势 文章目录 1.说明1.1 pom依赖1.2 引入redisson不引入redisson-spring-boot-starter依赖1.3 引入redisson-spring-boot-starter不引入redisson,启动类排除redisson-spring-boot-start…...

Ceph分布式存储的简单介绍与Ceph集群的部署搭建

文章目录 1. 存储的概述1.1 单机存储设备1.1.1 DAS&#xff08;直接附加存储&#xff09;1.1.2 NAS&#xff08;网络附加存储&#xff09;1.1.3 SAN&#xff08;存储区域网络&#xff09; 1.2 单机存储的缺陷1.3 分布式存储&#xff08;软件定义的存储 SDS&#xff09;1.4 分布…...

【环境搭建】linux docker安装nexus3

1、shell输入 docker run -dti \--nethost \--namenexus3 \--privilegedtrue \--restartalways \--ulimit nofile655350 \--ulimit memlock-1 \--memory1G \--memory-swap-1 \-e INSTALL4J_ADD_VM_PARAMS"-Xms512m -Xmx512m -XX:MaxDirectMemorySize1g" \-v /etc/lo…...

Java多线程下载文件

JVM是支持多线程程序的&#xff0c;当程序需要同时执行两个或多个任务&#xff0c;实现一些需要等待的任务时&#xff0c;如用户输入、文件读写、网络操作、搜索等多线程程序比单线程程序更具优势&#xff0c;可充分利用CPU资源&#xff0c;完成时间更短&#xff0c;提高应用程…...

oracle 同一张表同时insert多条数据 mysql 同一张表同时insert多条数据

oracle 同一张表同时insert多条数据 在Oracle数据库中&#xff0c;你可以使用INSERT ALL语句同时向同一张表插入多条数据。INSERT ALL语句允许你一次执行多个插入操作&#xff0c;可以提高插入的效率和速度。 以下是使用INSERT ALL语句插入多条数据的示例&#xff1a; INSERT…...

ROS键盘遥控机器人,通过参数服务器指定速度

1、引言 在上节的驱动机器人&#xff0c;我们知道是cmd_vel话题发布一串Twist类型消息来控制&#xff0c;我们可以输入如下命令查看这个Twist的详细信息&#xff1a;rosmsg show geometry_msgs/Twist geometry_msgs/Vector3 linear float64 x float64 y float64 z geome…...

具有快表的地址变换机构

1.快表&#xff08;TLB&#xff09; 快表&#xff0c;又称联想寄存器(TLB&#xff0c;translation lookaside buffer)&#xff0c; 是一种访问速度比内存快很多的高速缓存(TLB不是内存! )&#xff0c; 用来存放最近访问的页表项的副本&#xff0c;可以加速地址变换的速度。 与…...

【使用python和flask建个人博客】修复侧边栏最新文章、最多阅读等链接不能打开的问题

自从上次因版本兼容问题修改过部分代码之后,好长时间没光顾woniunote这个个人博客模块了,最近发文章的时候发现侧边栏的文章打不开,定位了bug,并进行了修复。 <div class="col-12 side"><div class="tip" align...

ShareX使用说明——优秀的录屏软件

ShareX初识 ShareX 是一个自由及开放源代码的截图录像软件&#xff0c;目前仅支持Windows系统。 项目源代码在GitHub平台上发布&#xff0c; 软件可以在Microsoft商店和Steam上下载。 ShareX is a free and open source program that lets you capture or record any area of y…...

10.14~10.15verilog操作流程与Block Design

后面的那个是延时精度 verilog文件结构 文件名称与写的模板没有关系&#xff0c;这个文件名为P1,但模板名为andgate 但是如果是仿真文件&#xff0c;就需要开头的模板名和仿真文件名相同 .v是源文件&#xff0c;设计文件 .v在设计与sim里都有&#xff0c;静态共享&#xff0…...

小解C语言文件编译过程【linux】

小解C语言文件编译过程【linux】 库动态库静态库 C语言文件 程序编译过程整体预处理编译汇编链接动态链接静态链接两种方法对比 库 看到标题是文件编译过程 但是开头却是库&#xff0c;这可不是挂羊头卖狗肉&#xff0c;而是因为库也是代码不可缺少的一部分&#xff0c;并且在…...

[Python]黑色背景白色块滑动视频

黑色背景白色块滑动视频&#xff0c;单帧效果如下&#xff1a; 配置参数 1920 1080 400 400 300 60 1920x1080.avi import numpy as np import cv2 as cv import os import syswidth 1920 height 1080 rect_szx 400 rect_szy 300 sz_y_init 400 fps 24width int(sys.a…...

【linux kernel】对linux内核设备的注册机制和查找机制分析

文章目录 1、简介2、device_initialize分析3、device_add分析4、总结 &#x1f53a;【linux内核系列文章】 &#x1f449;对一些文章内容进行了勘误&#xff0c;本系列文章长期不定时更新&#xff0c;希望能分享出优质的文章&#xff01; 1、《linux内核数据结构分析之哈希表》…...

asp.net酒店餐饮管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net酒店餐饮管理系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言 开发 ASP.NE 酒店餐饮管理系统 二、功能…...

38_Nginx 启动流程

文章目录 src/core/nginx.cint ngx_cdecl main(int argc, char *const *argv) {ngx_buf_t *b;...

数据特征选择 | Lasso特征选择(Python)

文章目录 效果一览文章概述源码设计小结效果一览 文章概述 Lasso算法是一种经典的线性回归算法,被广泛应用于特征选择和降维问题。相较于传统的线性回归算法,Lasso算法能够在保持预测准确性的同时,自动筛选出对目标变量影响较大的特征变量,从而达到降低模型复杂度、提高泛化…...

最小覆盖子串[困难]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串&#xff0c;则返回空字符串"" 。 对于t中重复字符&#xff0c;我们寻找的子字符串中该字符数量必须不少于t中该字符数量…...

保姆级搭建Mysql 并进行视图可视化操作

安装MySQL数据库 选择mysql5.7.36_x32.msi”&#xff0c;双击运行&#xff0c;如下图所示&#xff1a; 在此窗口中&#xff0c;选择“Custom”选项&#xff0c;点击“Next>”进入下一步&#xff1b; 在此窗口中&#xff0c;选择号下的MySQL Server 5.7.36 – x64&…...

设计模式的学习顺序

设计模式的学习顺序可以按照以下步骤进行&#xff1a; 掌握基础知识&#xff1a;先确保你对编程语言和软件开发的基本概念有深入的理解&#xff0c;包括面向对象编程、继承、多态等。学习常用设计模式&#xff1a;首先学习并理解一些常用的设计模式&#xff0c;例如单例模式、…...

数据结构和算法——树结构

二叉树 又叫二叉排序树。 节点是数量为&#xff0c;&#xff0c;n为层数。 满二叉树&#xff1a;所有的叶子节点都在最后一层。 完全二叉树&#xff1a;如果所有叶子节点都在最后一层和倒数第二层&#xff0c;而且每个叶子节点都有左右子节点。 完全二叉树 前序遍历 1、先输…...

【Java】Integer包装类

Integer&#xff1a;对基本数据类型 int 实现包装 方法名称说明public Integer&#xff08;int value&#xff09;根据 int 值创建 Integer 对象&#xff08;JDK9以后过时&#xff09;public integer&#xff08;String s&#xff09;根据 String 值创建 Integer 对象&#xf…...

Web后端开发登录校验及JWT令牌,过滤器,拦截器详解

如果用户名正确则成功进入 登录功能 代码 Controller Service Mapper 结果 若登录成功结果如下: 如果登录失败,结果如下 登录校验 为什么需要登录校验 有时再未登录情况下, 我们也可以直接访问部门管理, 员工管理等功能 因此我们需要一个登录校验操作, 只有确认用户登录…...

大语言模型迎来重大突破!找到解释神经网络行为方法

前不久&#xff0c;获得亚马逊40亿美元投资的ChatGPT主要竞争对手Anthropic在官网公布了一篇名为《朝向单义性&#xff1a;通过词典学习分解语言模型》的论文&#xff0c;公布了解释经网络行为的方法。 由于神经网络是基于海量数据训练而成&#xff0c;其开发的AI模型可以生成…...

zabbix内置宏、自动发现与注册

一、zabbix内置宏 1、概念&#xff1a; 在Zabbix中&#xff0c;内置宏是一种特殊的变量&#xff0c;通常用在 Trigger 名称和表达式中&#xff0c;引用有关监控对象的信息。 2、种类&#xff1a; {HOST.NAME} 主机名 {HOST.IP} 主机 IP 地址 {TRIGGER.DESCRIPTION} 触…...

做外贸常用的网站有哪些/谷歌优化排名怎么做

SAP CO模块 KSV5 费用分摊分配解析 2018年07月18日 13:22:40 SAP小菜鸟鸟 阅读数&#xff1a;2073 CO成本控制是SAP财务的一大难点&#xff0c;有些地方可能会比较绕&#xff0c;但是捋顺思路&#xff0c;其实也还行。 (文中所有数据来源皆为作者杜撰&#xff0c;请勿对号入…...

wordpress 登录页面变了/营销网页

Linux中如果直接使用物理磁盘的分区为作为文件系统&#xff0c;那么一旦磁盘空间满了&#xff0c;就不易扩容&#xff0c;而使用逻辑卷的话&#xff0c;可以先往逻辑卷所在卷组(VG, Volumn Group)增加物理卷(PV, Physical Volumn)&#xff0c;增加之后&#xff0c;再对逻辑卷括…...

长沙优化网站排名/广告联盟怎么加入

页面间对象传递的方法 request&#xff0c;session&#xff0c;application&#xff0c;cookie 等转载于:https://www.cnblogs.com/zhaozhaozhang/p/5856750.html...

苏州专业网站建设开发/正在直播足球比赛

输入一串字符,字符个数不超过100,且以“.”结束。 判断它们是否构成回文。【分析】所谓回文指从左到右和从右到左读一串字符的值是一样的&#xff0c;如12321,ABCBA,AA等。先读入要判断的一串字符&#xff08;放入数组letter中&#xff09;&#xff0c;并记住这串字符的长度&am…...

宁夏做网站建设公司/注册域名费用一般多少钱

如果项目有第三方jar包而部署服务器后启动项目jar包后报错说找不到你的第三方jar包class not found 只需在对应的pom文件里加入 <resource> <directory>src/main/resources/lib</directory> <targetPath>BOOT-INF/lib/</targetPath> <incl…...

python做后台开发移动网站/学计算机哪个培训机构好

背景&#xff1a; 在地图上绘制大量的circleMarker&#xff0c;leaflet能选择使用canvas来渲染&#xff0c;比起默认的svg渲染来说在大量绘制的情况下会更加流畅。但当触发其中某一个circleMarker的tooltip或popup时&#xff0c;浏览器报错“Uncaught RangeError: Maximum call…...