视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
软件开发过程规定
2025-09-25 14:09:30 责编:小OO
文档
韶关市龙飞数码科技有限公司

ISO9001质量体系文件

——软件开发过程规定(试行)    

文 件 号:DE-WI07B01

版 本 号:V1.0

制    定:                                                                    受控状态: 

审    核:

签    发:

生效日期:

发行版本修  订  内    容

生 效 日 期

00第一次发行
1.概述

    提高软件开发能力没有捷径可走,唯有走“规范化”之路。即:制定适合于本企业的软件过程规范,并按照此规范执行。

本规定对软件开发各个过程中的目的、要求、人员和职责、工作的内容以及输入输出、评审等进行规范。

2.约束范围

本规定主要的约束对象是应用软件及收款机软件开发,涉及硬件的开发不在本规定之内。对于定制产品的开发可参照《定制产品的开发规定》执行。

本规定中涉及的开发部仅指软件开发部,产品仅指狭义范围内的收款机程序或应用软件程序。

3.软件开发过程的划分

本规定对一个完整的开发划分为如下几个过程:

策划→设计→实现→测试与改错→试用与验收→定版→服务与维护

4.策划过程

策划过程是软件开发的一个重要过程,它可以分为如下几个子过程:

启动→调研→研讨→立项→计划

4.1内容

公司领导根据市场的需求、技术的趋势及员工、经销商和用户的建议,提出新产品的概念及方向性意见,形成新产品概念书,并委托专人负责策划的前期工作,从而启动后续的工作。

受委托者随后组织有关人员对新产品的市场前景、顾客需求、技术可行性、对手状态等进行调研,形成调研报告。

需求调研的主要收集方式有以下方面:

●与用户交谈,向用户提问题。

●参观用户的工作流程,观察用户的操作。

●向用户群体发调查问卷。

●与同行、专家交谈,听取他们的意见。

●分析已经存在的同类产品,提取需求。

●从行业标准、规则中提取需求。

●从Internet上搜查相关资料。

    受委托人完成调研报告后,经公司领导或部门领导批准,并组织开发部对调研报告进行需求分析、研讨,确定产品的设计方案,形成《需求说明书》及项目建议书。项目建议书应阐述产品的背景、市场前景、产品的定位、特点、卖点以及功能和性能的基本要求、可行性和风险评估等。

需求分析的目的是对各种需求信息进行分析、消除错误、刻画细节等,进一步定义准确无误、没有二议的软件需求。

《需求说明书》的评审由开发部主持,可邀请市场部、测试组等相关人员参加,需求分析人员根据评审意见,完善需求说明。

对于客户提出的需求开发,还需与最终用户代表一起评审,原则上通过双方确认之后,需与客户方负责人做书面承诺,使之具有商业合同效力。

项目建议书经过公司领导批准后,即可进入立项程序并成立项目组。立项应详细定义产品的功能和性能,确定项目的正式负责人和其他责任人以及完成任务的时间和占用的资源,说明实现的大体方案和要求,以及确定对各个过程是否合并和省略的输出文件等。

立项通过评审并获得总工程师批准之后,项目负责人应组织项目组的人员制订计划,编写计划书和计划表,经评审通过后即可进入后续的过程。关于计划的制订做法,请参照公司的《工作计划管理规定》执行。

4.2输出

这一过程的输出主要包括以下方面:

●新产品概念书

●调研报告

●《需求说明书》

●《项目建议书》

●计划书和计划表

5.设计

设计过程是指根据《项目建议书》、《需求说明书》的内容设计软件的系统结构、用户界面、数据库(或数据结构)、功能模块,并编写《使用说明书初稿》等,从而在需求与代码之间建立桥梁,指导开发人员的工作,开发出能够满足用户需求的产品。

●软件系统设计的好坏,可以用“可靠性、可维护性、结构稳定性、可扩展性、可复用性、软件执行效率”等因素来评估。

●原则上软件系统设计、数据库设计应全局考虑,需同步编写文档,轻易不要简化。

●界面的设计只要大多数用户、开发人员理解并认同界面原型即可,细节可在编程时实现。

●功能模块主要是确定每个模块的主要接口、数据结构与算法,能够清楚地指导模块编程即可,可不必花太多时间设计模块细节,如开发压力较大时可在编程工作结束后安排编写。

5.1输入

这一过程的输入包括以下部份:

●《项目建议书》

●《需求说明书》

●软件设计过程中的标准与规范。

●软、硬件开发环境。

5.2人员与职责

项目组组长应根据开发人员的实际能力,合理的分配设计任务,包括系统设计、用户界面设计、数据库设计、模块设计,编写《使用说明书初稿》等。

开发人员需详细阅读《项目建议书》、《需求说明书》,明确设计任务并准备相关的设计工具和资料。

5.3系统设计

本规定将一个系统设计分为以下几个步骤:

确定约束→确定设计→系统结构设计→撰写文档

5.3.1确定约束

开发人员从《项目建议书》、《需求说明书》中提取需求约束,例如:

●本系统应当遵循的标准或规范。

●软件、硬件环境(包括运行环境和开发环境)的约束。

●接口/协议的约束。

●用户界面的约束。

●软件质量的约束,如可靠性、可维护性、结构稳定性、可扩展性、可复用性、软件执行效率等。

5.3.2确定设计

开发人员根据产品的需求,以及产品的发展战略,确定设计策略,例如:

●根据产品的功能性、非功能性需求,确定某些设计模式。

●说明为了方便本系统在将来的扩展功能,现在有什么措施。

●说明本系统在当前“复用什么”以及将来“如何被复用”。

●说明当两个标准同时被优化时如何折中,例如时间性与空间性之间的折中,复杂性与实用性之间的折中。

5.3.3系统结构设计

●将系统分解为若干子系统,确定每个子系统的功能以及子系统之间的关系。绘制系统的总体结构图。

●将子系统分解为若干模块,确定每个模块的功能以及模块之间的关系,绘制子系统的结构图。

●确定系统开发、测试、所需的软硬件环境。

5.3.4撰写文档

    这个过程主要是将设计过程中确定约束、确定设计、系统结构设计这几个阶段中涉及的内容编写出《系统设计说明》。

5.4用户界面设计

界面设计人员应详细阅读《需求说明书》,了解用户的需求,与用户交流,了解用户的工作习惯和他们对界面的看法,同时应多收集意见,及时改进。

5.5数据库设计/数据结构设计

●数据库/数据结构设计人员应详细阅读《需求说明书》和《系统设计说明》,明确数据库/数据结构设计任务。

●数据库/数据结构设计人员准备相关的设计工具和资料。

●数据库/数据结构设计人员确定本软件的数据库/数据结构规则,例如数据库/数据结构命名等。    

5.6功能模块设计

●模块设计的核心工作是“接口设计”和“数据结构与算法设计”。

●模块设计人员详细阅读《需求说明书》和《系统设计说明》,明确模块设计任务。

●模块设计人员需准备相关的设计工具和资料。

●模块设计人员需确定软件的编程规范,确保模块设计文档的风格与代码的风格保持一致。

5.7输出

●《系统设计说明》

●用户界面原型

●《数据库/数据结构设计说明》

●《功能模块设计说明》

●《使用说明书初稿》

5.8评审

项目组负责人可邀请公司领导、市场部、测试组等相关人员对系统设计进行技术评审。

评审小组需考察系统设计的综合能力,最后由总工程师确定可否进入软件实现过程并给出评审意见。

6.软件实现

软件实现是指通过编程、调试、优化、内部测试和代码审查等活动,开发出符合用户需求、质量合格的产品。

6.1输入

这一过程的输入包括以下内容:

●《项目建议书》

●《需求说明书》

●《使用说明书初稿》

●《系统设计说明》

●用户界面原型

●《数据库/数据结构设计说明书》

●《功能模块设计说明》

●编程规范

6.2人员

软件实现过程主要由开发部负责。

6.3编程

●项目组长应合理分配开发任务,确定何人何时完成哪些模块。

●开发人员需构建编程与测试环境,例如软件开发工具的选择、硬件开发环境的选择等。

●项目组长应确定编程规范,统一编程风格、提高代码质量。对于采用Delphi、C编程的可参考公司《Delphi语言编程规范》或《C语言编程规范》。

6.4调试

开发人员如果仅认为程序通过了编译和连接,就认为程序基本上没有问题交由测试组测试,这是一种不良的做法。

所谓编程调试指的是:当开发人员编写完一个或几个相关程序之后,不必等别人测试,自己马上对代码进行单步跟踪调试。调试带来的好处是:

●大大减少后继的测试和改错代价。

●单步跟踪调试能够发现数据溢出、内存泄漏、指针出错等仅靠黑盒测试难以察觉的软件缺陷,提高了程序的质量和测试效率。

6.5优化

软件的优化指的是提高软件的运行速度、提高对内存资源的利用率、加强用户界面的友好化等方面。

6.6内部测试和代码审查

软件实现阶段的测试在开发部小组内部展开,主要的检查方式是白盒测试,由开发人员进行单步跟踪、代码审查、软件功能测试、软件性能测试等。

代码审查通常可在开发人员之间展开,主要是检查代码是否符合编程规范,并发现代码编写的缺陷等,如人员及时间不充分时至少也要由开发人员自行进行代码审查。

6.7输出

●改进后的《需求说明书》

●改进后的《使用说明书初稿》

●改进后的《系统设计说明》

●改进后的《数据库/数据结构设计说明书》

●改进后的《功能模块设计说明》

●改进后的用户界面

●带注解的源程序清单

7.测试与改错

软件测试与改错的目的是依据测试计划和测试用例,在给定的项目条件下(人员、时间、工具等)尽可能地找出软件中的缺陷,并及时消除这些缺陷。

这一过程可划分为以下几个步骤:

制定测试计划→设计测试用例→执行测试→消除缺陷→审核确认

7.1输入

这一过程的输入有:

●《项目建议书》

●《需求说明书》

●《使用说明书初稿》

●《系统设计说明》

● 用户界面说明

7.2人员责任

    制定测试计划、设计测试用例、执行测试由测试组负责,消除缺陷由项目组开发人员负责。

7.3制定测试计划

项目组组长应组织项目组人员讨论测试工作,然后由测试组长组织测试人员撰写《测试计划》。

《测试计划》需通过开发部经理审核,经总工程师批准,测试人员即可按计划执行测试工作。

7.4设计测试用例

测试用例是用于检验目标软件是否符合要求的一种“示例”,其基本要素有:前提条件、输入数据或动作、期望的响应。

《测试用例》主要是描述各种测试操作的手册。

●设计测试用例的目的是找出需求、设计、代码中的缺陷。

●不同的测试用例其用途应当不一样,不要累赘。

●显而易见的测试用例不必完整地用文字描述,可采用图表法等简化。

测试用例需经过项目组组长审核,总工程师批准。

7.5执行测试

测试人员按照《测试计划》及《测试用例》执行测试,如果发现缺陷,则记录在缺陷跟踪工具中,并及时通知项目组开发人员。

测试人员完成测试后应撰写《测试报告》,总结测试工作,分析问题并给出建议及测试结论。

7.5.1测试的优先级

有些时候因人员及时间,不能对软件做全面的测试,那么测试人员应集中力量测试优先级较高的内容,放弃优先级较低的内容。下表列出部份测试优先级供测试人员参考。

测试内容测试优先级测试内容
软件特色功能高于非特色功能
用户常用功能高于非常用功能
功能出错将导致用户索赔的模块高于不会索赔的模块
系统性能瓶颈所在的模块高于不是性能瓶颈所在的模块
最复杂、最容易出错的模块高于不复杂、一般不会出错的模块
开发者没有信心的模块高于开发者自信的模块
7.6消除缺陷

如果在测试时发现了软件缺陷,项目组开发人员应当尽早消除缺陷,在改错时需注意以下事项:

●找到错误代码时,不要急于修改,先思考:修改此代码是否会引发其它问题。

●有些时候,软件中可能潜伏同类型的错误,应当一一改正。

●改错之后一定要马上重新测试,以免引入新的错误。

7.7完善使用说明书

测试人员在软件测试过程中逐步熟悉产品功能,在接受开发人员的委托后对使用说明书进行完善及排版工作。

7.8评审

测试组经过严格测试并确认的程序,经开发部经理审核,总工程师批准,颁布试用版本后,可进入试用过程。

7.9输出

●改进后的《需求说明书》

●改进后的《系统设计说明》

●改进后的《数据库/数据结构设计说明书》

●改进后的《功能模块设计说明》

●改进后的用户界面

●带注解的源程序清单

●《测试计划》

●《测试用例》

●《测试报告》

●《使用说明书》

●《试用版颁布命令》

8.试用与验收

对于试用版本软件需经过用户试用,由用户提交《试用报告》,并按试用的情况对于用户发现的软件缺陷开发人员应当及时纠正,对于一些难以马上实现的有益建议由项目组长决定如何处理。

对于合同项目的软件产品,需交客户验收,客户要对开发人员交付的产品进行审查和测试,确保产品满足客户需求,由客户提交《客户验收报告》。

关于试用的具体操作可参考《新产品进入销售的流程规定》。

9.定版

9.1责任人

项目组组长完成相关文档的整理工作,开发人员及测试组人员负责软件版本的颁布工作。

9.2内容

当软件产品经过一段时间的试用基本稳定之后,项目组长需整理软件的相关文档(保密性文件需按公司保密条款执行),交资料室备案,同时项目组开发人员及测试组人员负责颁布软件正式版本,一般来说软件正式版本的颁布由总工程师评审,总经理批准。

9.3输出

一套完整的文档可包括以下文件:

● 新产品概念书

●《项目建议书》

●《需求说明书》

●《系统设计说明》

●《数据库/数据结构设计说明书》

●《功能模块设计说明》

● 用户界面说明

● 带注解的源程序清单

●《测试计划》

●《测试用例》

●《测试报告》

●《使用说明书》

●《用户试用报告》

●《颁布命令》

10.服务与维护

10.1责任人

开发部组织编写培训大纲,完成对市场部技术人员的培训工作。市场部技术人员经过培训组织编写培训手册,并完成客户的服务和培训。市场部应对客户在使用产品的过程中提出的问题进行收集,给予详细的解答,开发人员应对客户提出的软件缺陷给予解决。

10.2内容

维护是指软件产品交付给客户之后的客户服务和产品维护。客户服务和产品维护的宗旨是提高客户对产品的满意度。

项目组在完成产品开发的过程后,应根据实际情况组织编写培训大纲,同时对市场部技术人员做好培训工作。

市场部技术人员接受培训之后,按培训大纲的内容整理并编写完整的培训手册,同时完成对客户的培训。

用户在使用产品的过程中如对产品有何疑问或意见可咨询市场部,市场部技服人员有义务帮助客户解决问题。

客户在使用产品的过程中如发现软件缺陷,原产品开发人员、维护人员有义务帮助客户解决缺陷。但如提出功能改动,可按定制流程来执行,参照《定制产品的开发规定》。

10.2.1收集信息

收集信息的方式主要流程如下:  

回访客户                正常维护   软件维护

                  维护分析   

客户请求                需求变更   定制开发

    

    市场部在产品销售过程中定期通过上门或电话等方式回访客户,了解客户在使用产品的过程中碰到的问题,同时收集客户意见。

客户通过各种渠道(如电话、Internet等)向市场部客服人员提出服务请求。

市场部客服人员应对客户提出的问题给予答复,如果自己可以解决的,那么立即给以解答,如果自己不能解决的,可以请相关的开发人员或测试组人员协助解决问题,同时做好服务与维护记录。如果客户提出软件维护,则转维护分析;提出需求变更,则转入定制开发。

10.2.1.1维护分析

一般来说,开发人员既要开发新的软件项目,又要维护老的软件项目(兼任维护人员),当维护人员接到客户或者市场部客服人员的维护请求时,需先进行维护分析。

●如果用户因为不会使用产品的某些功能而请求帮助,那么维护人员应当尽快通过电话或Internet指导用户操作。

●如果用户发现了产品的缺陷,维护人员有义务尽快消除该缺陷,转入软件维护。

●如果用户希望开发人员修改或者增加产品的功能,此时维护人员不可轻易答应客户,需按照《定制产品的开发规定》执行。

10.2.1.2软件维护

●维护人员和客户协商维护方式:如果可以通过Internet执行远程维护的话,那么采用远程维护以降低维护的成本。

●维护人员在修改产品时,必须严格遵循《软件版本管理规定》来操作,避免工作成果的版本发生混乱。

●维护人员必须对修改后的产品进行相关的测试,以免引入新的错误。

●维护人员应填写《维护记录》。

10.2.1.3定制开发

请参阅《定制产品的开发规定》

10.3改进

    开发人员应定期对客户提出的需求改进和意见进行整理,同时收集市场的需求,通过对比分析,将比较通用的功能加入软件当中,从而提升软件的性能。

10.4输出

●培训大纲

●培训手册

11.参考文献

●《硬件新产品的研制过程的划分及规定》(公司文件)

●《软件研发管理解决方案》(电子工业出版社)

12.附录

●《调查报告》编写模板

●《立项建议书》编写模板

●《需求说明书》编写模板

●《系统设计说明》编写模板

●《数据库设计说明》编写模板

●《用户界面设计》编写模板

●《功能模块设计说明》编写模板

●《测试计划》编写模板

●《测试用例》编写模板

●《客户验收报告》编写模板下载本文

显示全文
专题