您好,欢迎访问三七文档
众易软件项目开发流程1.总纲目的主要讲述如何组织开发软件项目,使之更加快速、有效的完成。并分成以下几个阶段进行详细讲述:需求调研阶段、需求分析阶段、软件设计阶段、程序编码阶段、测试阶段、管理软件开发过程、各参与角色的具体职责描述及对人员的要求。适用范围开发周期3周、开发人月2人月的项目,中小型(3-7人)软件项目的开发指南,而大型软件项目使用RUP会更好。注:周期小于上述范围,使用开发任务需求单进行安排,走任务开发流程。总体流程需求调研阶段-》需求分析阶段-》软件设计阶段-》程序编码阶段-》系统测试阶段-》交付阶段-》维护阶段2.需求调研阶段在需求调研过程中,应该做好三种准备,保持两种心态,做到五种提高。(1)三种准备1.调研前应该将所有项目前期资料进行汇总,与相关的前期销售人员进行交流,以便对项目有一个基本轮廓的认识2.做好调研前使用资料的准备,如需求调研模板,需求调研问题列表等3.做好不怕一切困难的准备(2)两种心态1.保持一种和客户真诚合作的心态,确定需求调研是为了给客户解决问题,探讨问题,而不是接受问题,更不是来指导工作的。2.平静面对需求变更的心态,在需求调研过程中,往往双方对需求理解不一致,造成需求调研前后矛盾,应当心平气和的去引导客户,达到需求理解基本一致。(3)五种提高1.首先提高自己业务知识,对于该需求调研中牵扯的标准业务应该基本熟悉。2.其次应该努力的去熟悉用户的行业,学习用户使用的术语,标准,以便能够准确的理解用户,这就需要我们阅读用户所在行业的资料,文章,尽量多选取一些整体性介绍的文章,这样可以在短时间内能够对该行业有一个全面的认识,这样我们就能够较好的和用户进行交流了3.需求调研中,学会尽量不适用IT行业的术语,而采用浅显易懂的口头语来解释IT行业中高深莫测的术语,以便用户能够很好的理解,提高自己的沟通交流能力4.提高自己的速记能力,文字表达能力以及归纳,能迅速的记录需求调研核心的问题,总结归纳形成原始的需求调研资料。5.提高自己的总结能力,书写一份完整的,前后一致的,可追踪的需求报告。需求调研中应该遵循一定的流程,而且在调研过程中表现出规范,调研有条不紊,对客户有理有据,调研中资料做好备份,做到有备无患。(4)需求调研阶段的任务1.确定外部用户需求2.明确用户合同要求的软件开发任务3.编写可行性分析报告4.合同及评审记录3.需求分析阶段软件需求分析目的:回答系统需要“做什么”!软件需求分析就是对软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,这一步确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须采用行之有效的方法对软件需求进行严格的审查验证。(1)需求分析类型1、业务需求(businessrequirement)反映了组织机构或客户对系统、产品高层次的目的要求。2、用户需求(userrequirement)描述了用户使用产品必须要完成的任务。3、功能需求(functionalrequirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。(2)需求分析类型简介业务需求和用户需求是软件需求分析的基础,也是软件构建的前提。系统分析员通过对业务需求和用户需求的分解,将其转换成克一形式化描述的软件功能需求。开发软件系统最为困难的部分,就是准确说明开发什么。这就需要在开发的过程中不断的与用户进行交流与探讨,使系统更加详尽,准确到位。这就需要确定用户是否需要这样的产品类型以及获取每个用户类的需求。(3)需求分析任务需求分析需要实现的是将用户对软件的一系列要求、想法转变为软件开发人员所需要的有关软件的技术规格说明,它设计面向用户的用户需求和面向开发者的系统需求两个方面的工作内容,因此它起到承上启下的作用。1、确定对系统的综合要求2、分析系统的数据需求3.、导出系统的逻辑模型4.、修正系统开发计划5、开发原型系统(4)需求分析的步骤1、问题识别2.、分析与综合3、编写文档4、需求分析评审(5)需求分析的原则1.、必须能够表达和理解问题的数据域和功能域2、必须按自顶向下、逐层分解的方式对问题进行分解和不断细化3.、要给出系统的逻辑视图和物理视图(6)影响需求稳定因素1.客户也经常是矛盾的。事实上,很少有客户能够明确的知道怎样的一个系统对自己是最有益处的,他们往往在集中方案之间徘徊,于是经常产生需求的变动。生产厂商经常陷入客户自己的矛盾之中。2.客户的负面影响可能对于能够在预算内按时完成项目产生很大的影响。尽管客户需要对需求的质量负责任,但是,当一个软件项目因为客户事先没有预料到的情况而导致失败的时候,即使客户不会追究开发方的责任,就软件项目本身而言,也已经是失败的。4.软件设计阶段软件设计阶段的目的:回答系统应该“如何实现”。系统分析员根据已确认的需求文档中描述的界面和功能需求,用迭代的方式对每个界面或功能做系统的概要设计系统分析员把写好的概要设计文档给程序员进行详细设计,程序员根据所例出的功能一个一个的编写。(1)概要设计确保产品的总体结构和模块间的关系与用户需求的一致性。概要设计的基本任务如下:1.设计软件系统的逻辑结构2.设计软件所需要的数据库系统3.接口和通讯协议的选用4.边界条件的设计5.运行环境设计6.编写概要设计文档7.评审概要设计概要设计的基本原理:1.抽象2.信息隐蔽3.模块化(2)详细设计详细设计的具体内容:1.为每个模块进行详细的算法设计。2.为模块内的数据结构进行设计。3.对数据库进行物理设计。4.实现流程设计5.人机界面设计6.测试用例设计7.信息编码设计8.编写详细设计说明书详细设计的原则:1.可复用性2.可扩展性3.健壮性4.协作性5.程序编码阶段(1)代码的功能1.代码是人和计算机的共同语言,是两者交换信息的工具(2)代码设计的原则1.标准性;2.惟一性;3.合理性;4.简单性;5.可扩展性;6.规范性;7.持久性;(3)软件编程规范1.排版编程规范2.注释编程规范3.标识符命名编程规范4.可读性编程规范5.函数、过程编程规范6.可测性编程规范7.编程时的效率8.编程时的质量保证9.代码的编辑、编译与核查10.代码的测试与维护6.系统测试阶段测试的目的是在发布之前找出程序的错误。包括:核实每个模块是否正常运行(参考设计文档)、核实需求是否被正确实施(参考需求文档)。一般都包括:单元测试,集成测试,系统测试(1)测试计划收集和组织测试信息,为测试工作提供指导。(2)测试数据尽量使用真实数据。(3)测试报告记录测试结果,详细描述问题,提出解决办法。(4)帮助文件和用户操作手册7.管理软件开发过程(1)项目计划草案项目计划草案应包括产品简介、产品目标及功能说明、开发所需的资源、开发时间和里程碑。(2)风险管理计划也就是把有可能出错或现在还不能确定的东西列出来,并制定出相应的解决方案。风险发现得越早对项目越有利。(3)软件开发计划资源需求并根据时间表跟踪项目进度。项目团队成员根据项目计划以了解他们的工作任务、工作时间以及他们所依赖的其他活动。可将计划分成总体计划和详细计划,总体计划中每个任务为一个里程碑,详细计划中必须将任务落实到个人。软件开发计划还应包括产品的应收标准及应收任务(包括确定需要制订的测试用例)。(4)人员组织结构定义及资源计划常见的人员组织结构有垂直方案、水平方案、混合方案。垂直方案中每个成员充当多重角色。水平方案中每个成员充当一到两个角色。混合方案则包括了经验丰富的人员与新手相互融合。具体选择根据人员实际技能情况进行选择。适用范围:开发人月大于5人月、周期超过2个月、投入人员4人以上的项目必须编写计划,低于范围的则可省略或者简化(5)过程控制计划过程控制计划的目的是收集项目计划正常执行所需的所有信息,用来指导项目进度的监控、计划的调整,确保项目按时完成。适用范围:开发人月大于5人月、周期超过2个月、投入人员4人以上的项目必须编写计划低于范围的则可省略或者简化8.各参与角色的具体职责描述及对人员的要求(1)人员组织1、项目经理2、系统分析员3、开发人员4、测试人员5、维护培训人员(2)人员职责(1)项目经理职责:1、制定产品的目标。2、制定各个工作的详细任务表,跟踪这些任务的执行情况,进行控制。3、组织会议对程序进行评审。4、综合具体情况,对各种不同方案进行取舍并做出决定。5、协调各项目参与人员之间的关系。(2)系统分析员职责:1、了解用户需求,写出《软件需求规约》。2、建立用户界面原型。(3)设计员职责:1、定义类的方法和属性以及各个类之间的关联,画出类图。2、进行数据库设计。(4)程序员职责:按项目的要求进行编码和单元测试。(5)测试员职责:执行测试,描述测试结果,提出问题解决方案。(3)人员要求(1)项目经理人员要求:1、对产品有激情,具有领导才能。2、对问题能正确而迅速地做出确定。3、能充分利用各种渠道和方法来解决问题。4、能跟踪任务,有很好地日程观念。5.、能在压力下工作。(2)系统分析员人员要求:担任系统分析员的人员应该善于协调,并且具有良好的沟通技巧。担任此角色的人员中必须要有具备业务和技术领域知识的人才。(3)设计人员人员要求:掌握面向对象分析与设计技术,统一建模语言(UML)。(4)程序员人员要求:良好的编程技能和测试技术。(5)测试员人员要求:了解被测试的系统,具备诊断和解决问题的技能。
本文标题:众易软件开发流程
链接地址:https://www.777doc.com/doc-645024 .html