让你提前认识软件开发(43):软件产品升级流程

第3部分 软件研发工作总结

软件产品升级流程

 

        一个软件产品做出来之后,并不是说永远都不用变了。基于以下的种种原因,我们需要对原软件产品进行升级:

        (1) 用户对软件功能提出了新的要求,现在运行的软件不能满足用户的新需求。

        (2) 原软件存在bug,用升级的方式来修补这些bug。

        (3) 对原软件的程序进行了优化,新的软件能够提升程序的执行效率。

        (4) 自主开发了一些新功能,能够提升用户的体验。

 

        对于通讯类软件产品来说,升级是一项浩大的工程,其中牵涉到很多人,包括:市场人员、开发人员、测试人员、技术支持人员等。

        一般说来,通讯类软件产品的升级流程如图1所示:

图1 通讯类软件产品的升级流程

 

        下面对升级流程中的各个步骤进行详细的说明。

         1. 项目研发经理下达升级任务书

        基于上面提到的原因中的一种或几种,客户会要求对软件产品进行升级。现场的相关人员会将客户的要求告知研发经理,请他进行评估。

        研发经理评估通过之后,会向本软件的开发小组下达升级任务书,让他们安排时间按照升级任务书中的内容来制作升级包。

        升级任务书中包括以下内容:

        (1) 升级任务的下达时间和要求完成升级的时间。

        (2) 现场的设备情况和当前软件版本。

        (3) 本次升级的目标(即升级是要解决什么问题)和需要升级到的软件目标版本。

        (4) 本次升级的计划进度及参与的人员。

 

         2. 开发工程师按照升级任务书的要求制作软件升级包

         升级任务书下达之后,开发工程师就要按照里面的内容来制作软件升级包。

         软件升级包的制作流程如图2所示:

图2 软件升级包的制作流程

 

        在软件升级包的制作过程中,要注意以下事项:

        (1) 在制作之前,要详细阅读升级任务书,特别要搞清楚现场软件版本是什么?要升级到哪个版本?

        (2) 对于某些软件,部署比较的复杂,牵扯到的模块也比较多。为了了解现场的部署情况,我们可能需要现场人员将该软件的相关信息返回来,这些信息包括:软件版本、配置文件、数据库脚本等。我们对现场的了解越多,制作升级包出错的概率就会越小。

        (3) 在制作升级包的过程中,如果有任何疑问,一定要向相关人员求教,不能就放在那里就不管了。软件的升级很重要,一个小小的问题就可能会导致升级的失败。

        (4) 在升级包制作完成之后,开发人员一定要先行自测,待自测无误之后再提交测试工程师验证。软件自测的相关环境可以叫测试工程师提供。

        (5) 如果软件的升级包中涉及到数据库脚本的升级,一定要让现场人员导回现场所用数据库中的数据来验证,以确保脚本处理的正确性。因为很多数据库脚本会对用户的数据进行处理,一旦处理不当,会造成用户数据的丢失或错误修改。

        在制作升级包的过程中,开发工程师还要编写升级指导书,用以指导现场人员按照步骤进行升级操作。该文档非常重要,要保证内容的严谨性及正确性。一般说来,该文档包括以下内容:

        (1) 在新版本中新增加的功能或要解决旧版本中的相关问题。

        (2) 升级前后,软件的版本号。

        (3) 本升级包中所包含的内容,如程序、数据库脚本和文档等。

        (4) 升级前的准备工作,如备份文件和数据等。

        (5) 软件升级的详细步骤及注意事项。

        (6) 升级失败后的处理步骤。

        (7) 升级成功后要验证的功能。

 

         3. 测试工程师对升级包进行详细验证

        开发工程师对升级包自测通过之后,接下来测试工程师就粉墨登场了。他们会对升级包进行严格的验证,以确保现场升级能够一次搞定。

        如果在验证的过程中出现问题,他们会及时联系升级包的制作人员,让制作人员对相关的问题进行修改。这样一个不断循环的过程,直到验证无误为止。

 

         4. 研发经理将验证通过后的软件升级包发布到现场

         在升级包验证通过之后,研发经理就会将它发布到现场,并让现场支持人员与客户约定好软件升级的时间。

         软件升级时间确定好之后,研发经理会通知相关的开发人员和测试人员做好支持工作,以应对升级过程中突发的情况。

 

         5. 对现场的升级工作进行支持

         在软件升级的过程中,相关的开发人员和测试人员需要保持通讯的畅通,即:手机要开机、即时通讯工具要打开、邮箱要登陆。如果升级中出现问题,现场人员会及时与开发人员和测试人员取得联系,让他们帮忙解决。他们会将现场出现的情况、日志等信息反馈回来,以供分析。

        顺便说一下,因为怕影响用户的正常使用,或者是时区的问题,很多的软件升级被安排到深夜执行,这就要求开发人员和测试人员辛苦一些,等升级成功之后再休息。都说搞软件的很辛苦,辛苦在哪里?就辛苦在这些地方。

 

        以上五步是一个完整的升级流程,不同的软件产品可能会略有区别。总的说来,软件升级是一个系统的工程,要确保每一步都做到很完美。

 

        随着软件原有功能的不断完善和新功能的层出不穷,对其进行升级是在所难免的,软件的成功升级是广大软件从业者的共同愿望。软件的每一次成功升级,都是售前售后、开发测试等人员通力合作的结果,都是大家用辛苦劳动换来的。不过,当听到新的软件功能被客户啧啧称赞的时候,大家都会觉得非常的欣慰,觉得付出总会有回报的。

 

 

 

(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)

时间: 2025-01-19 20:17:04

让你提前认识软件开发(43):软件产品升级流程的相关文章

让你提前认识软件开发(37):研发流程初探

第3部分 软件研发工作总结 研发流程初探         (本文是我到公司一个月后对于工作的一些感想,欢迎阅读.)         到公司实习已经有一个多月了,最近我完成了第一个正式任务.回想起来,那个过程充满挫折,也充满了惊喜.虽然不像一般电影那样一波三折,但也是有让人很难忘记的地方.在这篇文章中,我对整个过程进行一个简单的描述,同时偶尔也发表一下个人的一点感慨.         整个过程包括如图1所示的6个步骤. 图1 软件开发流程           (1) 接受需求         一般

提前认识软件开发(1) 序言

序言 正式踏上软件开发岗位已经将近两年了,经历了很多,也学到了很多."万事开头难",学生转变为职业人的过程,恰似茧化成蝶的过程. 1.为什么要写作本系列? 在工作的过程中,我发现我们在学校里面学到的很多东西片面肤浅,根本达不到岗位的要求.像编码规范.研发流程等等学校里几乎不提及的知识,在实际的软件开发项目中却恰恰是异常的重要. 在学校里面,我们欠缺的教育主要包括以下方面: 第一,对编码规范的要求.计算机编程课上,老师只要求学生能够编写程序实现既定的功能即可,几乎不会对编码规范提出要求,

让你提前认识软件开发(1):序言

序言           正式踏上软件开发岗位已经将近两年了,经历了很多,也学到了很多."万事开头难",学生转变为职业人的过程,恰似茧化成蝶的过程.          1.为什么要写作本系列?        在工作的过程中,我发现我们在学校里面学到的很多东西片面肤浅,根本达不到岗位的要求.像编码规范.研发流程等等学校里几乎不提及的知识,在实际的软件开发项目中却恰恰是异常的重要.        在学校里面,我们欠缺的教育主要包括以下方面:        第一,对编码规范的要求.计算机编程

让你提前认识软件开发(47):同行评审

第3部分 软件研发工作总结 同行评审            在<浪潮之巅>这本书中,吴军老师描述了在Google早期的工作方式,其中有一段是这么写的:我一般会在吃完晚饭后把代码修改的清单发给克雷格做代码审核,他一般晚上10点左右会回复我,给我修改意见,详细到某一行多了一个空格.         吴军老师所描述的内容,其实就是软件开发中的同行评审流程.         几乎在所有的软件项目中,都需要同行评审.一个人不管能力多强,看问题的角度总会受到限制,写出来的程序和文档等定不会是十全十美的.如

提前认识软件开发(33) 数据操纵语言(DML)

数据操纵语言(Data Manipulation Language,DML)包括insert.delete和update语句,用于增.删.改数据. 本文用以下的表tb_employeeinfo作为例子加以说明: create table tb_employeeinfo ( employeeno varchar(20) not null, -- 员工工号 employeename varchar(20) not null, -- 员工姓名 employeeage int null -- 员工年龄

提前认识软件开发(25) 数据库简介

数据库是个通用化的综合性的数据集合,它可以供各种用户共享且具有最小的冗余度和较高的数据与程序的独立性.目前,国际上主导的大型数据库管理系统有ORACLE.SQL SERVER.SYBASE.INFORMIX和INGRES等. 数据库中常用的编程语言是SQL语言,按其功能可分为四大部分: 开发(25) 数据库简介-tcga数据库简介"> (1) 数据定义语言(Data Definition Language,DDL),用于定义.撤销和修改数据模式. (2) 数据查询语言(Data Query

提前认识软件开发(16) 如何对程序进行优化

对程序进行优化,是软件开发工程师必然会涉及到的问题.那么为什么要对程序进行优化呢?原因有以下几个: 第一,在原程序基础之上新增.删除或修改了功能,需要改变原程序流程.客户需求随时可能会变化,今天已经实现的功能,说不定明天就要修改或去掉.落实到程序上面,就需要我们随时准备对写好的代码进行修改,而不要奢望写好之后就永远不要动了. 第二,原程序有bug.这类情况出现得非常的频繁,很多软件有1.0.2.0.3.0等版本,部分原因就是前面版本中程序有问题,在修改程序的过程中使得软件版本不断升级. 第三,原

让你提前认识软件开发(40):既要写好代码,又要写好文档

第3部分 软件研发工作总结 既要写好代码,又要写好文档           对于软件相关行业,在学校或单位上,大家也许都已经注意到了,除了要编写的程序.绘制设计图之外,还有一个重要的工作便是写文档.为什么要写文档呢?因为我们要把自己做的东西展示出来,不光展示给同行看,可能还要展示给其他岗位上的工作人员看,甚至展示给用户看.如果我们只是会写程序,不会在文档中描述自己的想法,那么就真正的成为"码农"了.         工作也有一段时间了,我发现周围的同事,会写高质量文档的确实很少.李开复

让你提前认识软件开发(19):C语言中的协议及单元测试示例

第1部分 重新认识C语言 C语言中的协议及单元测试示例   [文章摘要]         在实际的软件开发项目中,经常要实现多个模块之间的通信,这就需要大家约定好相互之间的通信协议,各自按照协议来收发和解析消息.        本文以实际的程序代码为例,详细介绍了如何用C语言来实现通信协议,并基于对协议字段的判断,说明了程序单元测试的过程,为相关的开发工作提供了有益的参考. [关键词]        软件开发  协议  单元测试  C语言  字段   一.软件模块之间的协议         什么