项目开发流程.docx
- 文档编号:12151038
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:14
- 大小:25.92KB
项目开发流程.docx
《项目开发流程.docx》由会员分享,可在线阅读,更多相关《项目开发流程.docx(14页珍藏版)》请在冰点文库上搜索。
项目开发流程
项目开发流程
1.软件开发过程的划分
本规定对一个完整的开发划分为如下几个过程:
策划→设计→实现→测试与改错→试用与验收→定版→服务与维护
2.策划过程
策划过程是软件开发的一个重要过程,它可以分为如下几个子过程:
启动→调研→研讨→立项→计划
4.1内容
公司领导根据市场的需求、技术的趋势及员工、经销商和用户的建议,提出新产品的概念及方向性意见,形成新产品概念书,并委托专人负责策划的前期工作,从而启动后续的工作。
受委托者随后组织有关人员对新产品的市场前景、顾客需求、技术可行性、对手状态等进行调研,形成调研报告。
需求调研的主要收集方式有以下方面:
●与用户交谈,向用户提问题。
●参观用户的工作流程,观察用户的操作。
●向用户群体发调查问卷。
●与同行、专家交谈,听取他们的意见。
●分析已经存在的同类产品,提取需求。
●从行业标准、规则中提取需求。
●从Internet上搜查相关资料。
受委托人完成调研报告后,经公司领导或部门领导批准,并组织开发部对调研报告进行需求分析、研讨,确定产品的设计方案,形成《需求说明书》及项目建议书。
项目建议书应阐述产品的背景、市场前景、产品的定位、特点、卖点以及功能和性能的基本要求、可行性和风险评估等。
需求分析的目的是对各种需求信息进行分析、消除错误、刻画细节等,进一步定义准确无误、没有二议的软件需求。
《需求说明书》的评审由开发部主持,可邀请市场部、测试组等相关人员参加,需求分析人员根据评审意见,完善需求说明。
对于客户提出的需求开发,还需与最终用户代表一起评审,原则上通过双方确认之后,需与客户方负责人做书面承诺,使之具有商业合同效力。
项目建议书经过公司领导批准后,即可进入立项程序并成立项目组。
立项应详细定义产品的功能和性能,确定项目的正式负责人和其他责任人以及完成任务的时间和占用的资源,说明实现的大体方案和要求,以及确定对各个过程是否合并和省略的输出文件等。
立项通过评审并获得总工程师批准之后,项目负责人应组织项目组的人员制订计划,编写计划书和计划表,经评审通过后即可进入后续的过程。
关于计划的制订做法,请参照公司的《工作计划管理规定》执行。
4.2输出
这一过程的输出主要包括以下方面:
●新产品概念书
●调研报告
●《需求说明书》
●《项目建议书》
●计划书和计划表
3.设计
设计过程是指根据《项目建议书》、《需求说明书》的内容设计软件的系统结构、用户界面、数据库(或数据结构)、功能模块,并编写《使用说明书初稿》等,从而在需求与代码之间建立桥梁,指导开发人员的工作,开发出能够满足用户需求的产品。
●软件系统设计的好坏,可以用“可靠性、可维护性、结构稳定性、可扩展性、可复用性、软件执行效率”等因素来评估。
●原则上软件系统设计、数据库设计应全局考虑,需同步编写文档,轻易不要简化。
●界面的设计只要大多数用户、开发人员理解并认同界面原型即可,细节可在编程时实现。
●功能模块主要是确定每个模块的主要接口、数据结构与算法,能够清楚地指导模块编程即可,可不必花太多时间设计模块细节,如开发压力较大时可在编程工作结束后安排编写。
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评审
项目组负责人可邀请公司领导、市场部、测试组等相关人员对系统设计进行技术评审。
评审小组需考察系统设计的综合能力,最后由总工程师确定可否进入软件实现过程并给出评审意见。
4.软件实现
软件实现是指通过编程、调试、优化、内部测试和代码审查等活动,开发出符合用户需求、质量合格的产品。
6.1输入
这一过程的输入包括以下内容:
●《项目建议书》
●《需求说明书》
●《使用说明书初稿》
●《系统设计说明》
●用户界面原型
●《数据库/数据结构设计说明书》
●《功能模块设计说明》
●编程规范
6.2人员
软件实现过程主要由开发部负责。
6.3编程
●项目组长应合理分配开发任务,确定何人何时完成哪些模块。
●开发人员需构建编程与测试环境,例如软件开发工具的选择、硬件开发环境的选择等。
●项目组长应确定编程规范,统一编程风格、提高代码质量。
对于采用Delphi、C编程的可参考公司《Delphi语言编程规范》或《C语言编程规范》。
6.4调试
开发人员如果仅认为程序通过了编译和连接,就认为程序基本上没有问题交由测试组测试,这是一种不良的做法。
所谓编程调试指的是:
当开发人员编写完一个或几个相关程序之后,不必等别人测试,自己马上对代码进行单步跟踪调试。
调试带来的好处是:
●大大减少后继的测试和改错代价。
●单步跟踪调试能够发现数据溢出、内存泄漏、指针出错等仅靠黑盒测试难以察觉的软件缺陷,提高了程序的质量和测试效率。
6.5优化
软件的优化指的是提高软件的运行速度、提高对内存资源的利用率、加强用户界面的友好化等方面。
6.6内部测试和代码审查
软件实现阶段的测试在开发部小组内部展开,主要的检查方式是白盒测试,由开发人员进行单步跟踪、代码审查、软件功能测试、软件性能测试等。
代码审查通常可在开发人员之间展开,主要是检查代码是否符合编程规范,并发现代码编写的缺陷等,如人员及时间不充分时至少也要由开发人员自行进行代码审查。
6.7输出
●改进后的《需求说明书》
●改进后的《使用说明书初稿》
●改进后的《系统设计说明》
●改进后的《数据库/数据结构设计说明书》
●改进后的《功能模块设计说明》
●改进后的用户界面
●带注解的源程序清单
5.测试与改错
软件测试与改错的目的是依据测试计划和测试用例,在给定的项目条件下(人员、时间、工具等)尽可能地找出软件中的缺陷,并及时消除这些缺陷。
这一过程可划分为以下几个步骤:
制定测试计划→设计测试用例→执行测试→消除缺陷→审核确认
7.1输入
这一过程的输入有:
●《项目建议书》
●《需求说明书》
●《使用说明书初稿》
●《系统设计说明》
●用户界面说明
7.2人员责任
制定测试计划、设计测试用例、执行测试由测试组负责,消除缺陷由项目组开发人员负责。
7.3制定测试计划
项目组组长应组织项目组人员讨论测试工作,然后由测试组长组织测试人员撰写《测试计划》。
《测试计划》需通过开发部经理审核,经总工程师批准,测试人员即可按计划执行测试工作。
7.4设计测试用例
测试用例是用于检验目标软件是否符合要求的一种“示例”,其基本要素有:
前提条件、输入数据或动作、期望的响应。
《测试用例》主要是描述各种测试操作的手册。
●设计测试用例的目的是找出需求、设计、代码中的缺陷。
●不同的测试用例其用途应当不一样,不要累赘。
●显而易见的测试用例不必完整地用文字描述,可采用图表法等简化。
测试用例需经过项目组组长审核,总工程师批准。
7.5执行测试
测试人员按照《测试计划》及《测试用例》执行测试,如果发现缺陷,则记录在缺陷跟踪工具中,并及时通知项目组开发人员。
测试人员完成测试后应撰写《测试报告》,总结测试工作,分析问题并给出建议及测试结论。
7.5.1测试的优先级
有些时候因人员及时间限制,不能对软件做全面的测试,那么测试人员应集中力量测试优先级较高的内容,放弃优先级较低的内容。
下表列出部份测试优先级供测试人员参考。
测试内容
测试优先级
测试内容
软件特色功能
高于
非特色功能
用户常用功能
高于
非常用功能
功能出错将导致用户索赔的模块
高于
不会索赔的模块
系统性能瓶颈所在的模块
高于
不是性能瓶颈所在的模块
最复杂、最容易出错的模块
高于
不复杂、一般不会出错的模块
开发者没有信心的模块
高于
开发者自信的模块
7.6消除缺陷
如果在测试时发现了软件缺陷,项目组开发人员应当尽早消除缺陷,在改错时需注意以下事项:
●找到错误代码时,不要急于修改,先思考:
修改此代码是否会引发其它问题。
●有些时候,软件中可能潜伏同类型的错误,应当一一改正。
●改错之后一定要马上重新测试,以免引入新的错误。
7.7完善使用说明书
测试人员在软件测试过程中逐步熟悉产品功能,在接受开发人员的委托后对使用说明书进行完善及排版工作。
7.8评审
测试组经过严格测试并确认的程序,经开发部经理审核,总工程师批准,颁布试用版本后,可进入试用过程。
7.9输出
●改进后的《需求说明书》
●改进后的《系统设计说明》
●改进后的《数据库/数据结构设计说明书》
●改进后的《功能模块设计说明》
●改进后的用户界面
●带注解的源程序清单
●《测试计划》
●《测试用例》
●《测试报告》
●《使用说明书》
●《试用版颁布命令》
6.试用与验收
对于试用版本软件需经过用户试用,由用户提交《试用报告》,并按试用的情况对于用户发现的软件缺陷开发人员应当及时纠正,对于一些难以马上实现的有益建议由项目组长决定如何处理。
对于合同项目的软件产品,需交客户验收,客户要对开发人员交付的产品进行审查和测试,确保产品满足客户需求,由客户提交《客户验收报告》。
关于试用的具体操作可参考《新产品进入销售的流程规定》。
7.定版
9.1责任人
项目组组长完成相关文档的整理工作,开发人员及测试组人员负责软件版本的颁布工作。
9.2内容
当软件产品经过一段时间的试用基本稳定之后,项目组长需整理软件的相关文档(保密性文件需按公司保密条款执行),交资料室备案,同时项目组开发人员及测试组人员负责颁布软件正式版本,一般来说软件正式版本的颁布由总工程师评审,总经理批准。
9.3输出
一套完整的文档可包括以下文件:
●新产品概念书
●《项目建议书》
●《需求说明书》
●《系统设计说明》
●《数据库/数据结构设计说明书》
●《功能模块设计说明》
●用户界面说明
●带注解的源程序清单
●《测试计划》
●《测试用例》
●《测试报告》
●《使用说明书》
●《用户试用报告》
●《颁布命令》
8.服务与维护
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.附录
●《调查报告》编写模板
●《立项建议书》编写模板
●《需求说明书》编写模板
●《系统设计说明》编写模板
●《数据库设计说明》编写模板
●《用户界面设计》编写模板
●《功能模块设计说明》编写模板
●《测试计划》编写模板
●《测试用例》编写模板
●《客户验收报告》编写模板
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 开发 流程