
软件开发实用标准化工作流程V1..doc
23页word目录1引言3编写目的3适用围3定义3流程图32需求调研4概述4需求调研4须知事项43可行性分析54需求分析5概述5产物/成果6需求分析任务6需求分析方法6原型化6需求报告7划分需求的优先级7评审需求文档和原型75系统设计7概述8产物/成果8产品设计8概述8流程图9软件设计9概述9流程图9概要设计9数据库系统设计10详细设计116软件开发11建立项目开发团队11实施项目开发测试11工作容12产物/成果127项目测试13软件测试阶段13概述13流程13软件测试准备13软件测试执行148部验收14文档准备14部验收测试14部评审149项目试运行与验收15验收前的准备15用户测试15用户确认1510项目维护15错性维护15完善性维护1511需求变更流程16目的16适用围16作业流程17流程描述17部项目18外部项目18提交需求变更18审核评审18工作容18相关角色19反应1912附录20附录1《软件需求说明书》20附录2《概要设计说明书》20附录3《数据库设计说明书》20附录4《详细设计说明书》20附录5《用户使用手册》20附录6《软件测试说明》20附录7《项目开发计划》20附录8《软件测试计划》20附录9《软件测试方案》20附录10《测试用例文档》20附录11《缺陷报告》20附录12《软件测试报告》20附录13《需求变更申请表》20软件开发标准化工作流程1 引言1.1 编写目的说明编写这份软件开发标准化工作流程的目的,指出预期的读者。
1.2 适用围互联网开发中心所有项目1.3 定义列出本文件中用到的专门术语的定义、外文首字母组词的原词组1.4 流程图2 需求调研2.1 概述需求调研对于一个应用软件开发来说,是一个系统开发的开始阶段,需求调研的质量对于一个应用软件来说,是一个极其重要的阶段,它的质量在一定程度上来说决定了一个软件的交付结果怎样从客户中听取用户需求、分析用户需求就成为调研人员最重要的任务 2.2 需求调研总体而言,需求调研可按照业务流程、业务规如此、表单数据、贯穿系统的关系四个方向来进展调研l 业务规如此各个流程、功能点等事项的办理,都会有相关约束或条件,那么需要对其前置条件、后置条件、数据验证、条件判断等进展分析调研调研对象一般为操作员 l 表单数据对各个功能点的业务数据、数据项、表单格式、查询条件以与其它相关数据进展明确的分析调研调研对象一般为操作员 l 贯穿系统的关系各个模块或科室之间的数据交换、传递以与数据共享等,需要我们调研人员与各个模块或科室的相关负责人进展多方沟通,确定一个多方满意的需求调研结果 2.3 须知事项l 调研过程中,用户说的很快,不可能等我们全部记录之后,再讲下一个问题因此,只能在笔记本上速记,有时只能记录1、2个关键字。
因此,每天调研完毕之后,当天晚上必须整理当天的调研情况,写成一份调研日记整理当天的调研记录时,还要整理出待明确的问题,下一次再找机会与用户再沟通、确认l 调研的各个阶段,必须出具相关文档或文件,比如调研计划、流程图、表单样式、报表格式、背景图片、数据项列表、讨论记录、问题列表等 l 所有疑问必须等到明确的答复,不能出现相互矛盾、似是而非的需求需准确理解客户的讲解,如果有问题的先做记录,之后将整理的问题向客户询问,得到明确的结果需求必须是客户承受和确认的,不能有臆测的需求l 要合理安排好时间和进度有时候客户还有自己要做的事情,不一定能与时相应所以必须提前预约好时间,保证整个需求调研的进度 l 能积极引导客户当客户出现疑虑,而调研人员能明白且能做好客户想要的东西的时候,调研人员能与时积极引导客户,详细讲解我们所知道的东西,并能让客户承受与确认l 如遇公司有相关原型或产品,调研人员需先详细了解公司的相关原型和产品,根据成品,找出本地化的差异化需求3 可行性分析这个阶段要回答的关键问题:“对于上一个阶段所确定的问题有行得通的解决方法吗?〞为了回答这个问题,系统分析员需要进展一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进展的分析和设计的过程。
可行性研究应该比拟简短,这个阶段的任务不是具体解决问题,而是研究问题的围,探索这个问题是否值得去解,是否有可行的解决方法在问题定义阶段提出的对工程目标和规模的报告通常比拟模糊可行性研究阶段应该导出系统的高层逻辑模型〔通常用数据流图表示〕,并且在此根底上更准确、 更具体地确定工程规模和目标然后分析员更准确地估计系统的本钱和效益,对建议的系统进展仔细的本钱/效益分析是这个阶段的主要任务之一可行性研究的结果是使用部门负责人做出是否继续进展这项工程的决定的重要依据,一般说来,只有投资可能取得较大效益的那些工程项目才值得继续进展下去可行性研究以后的那些阶段将需要投入更多的人力物力与时中止不值得投资的工程项目,可以防止更大的浪费4 需求分析4.1 概述这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么〞,主要是确定目标系统必须具备哪些功能用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题;软件开发人员知道怎样使用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚因此系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。
通常用数据流图、数据字典和简要的算法描述表示系统的逻辑模型在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的根底,因此必须准确完整地表现用户的要求系统分析员通常都是计算机软件专家,技术专家一般都喜欢很快着手进展具体设计,然而,一旦分析员开始谈论程序设计的细节,就会脱离用户,使他们不能继续提出他们的要求和建议较件工程使用的结构分析设计的方法为每个阶段都规定了特定的完毕标准,需求分析阶段必须提供完整准确的系统逻辑模型,经过用户确认之后才能进入下一个阶段,这就可以有效地防止和克制急于着手进展具体设计的倾向需求分析是软件工程中的一个重要环节是关乎软件开发成败的重要因素现在软件项目中返工开销几乎占了总开发的一半,而导致返工的主要原因是需求分析不明确从而引发软件开发中的一些列更改这些更改可能导致浪费大量资源、软件项目无法按时完成等严重问题,所以需求分析是软件设计和实现的根底,是软件项目迈向成功的重中之重4.2 产物/成果项目阶段/角色项目经理产品团队(BA/BAS/Product M〕开发团队TTL/Developer〕测试团队(Test Lead /Tester〕需求阶段活动:1、建立CQ/QC中的项目目录;2、在SVN中建立项目目录;1、分析项目所需资源,风险等2、预估项目周期产出:1、项目计划(大致时间规划)活动:1、收集整理需求产出:1、需求说明书参与:1、需求分析2、环境分析参与:1、需求分析2、环境分析4.3 需求分析任务简言之,需求分析的任务就是解决“做什么〞的问题,就是根据需求调研,全面理解用户的各项要求并准确的表达所承受的用户需求。
4.4 需求分析方法4.4.1 原型化原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能原型化方法就是尽可能快地建造一个粗糙系统,这系统实现了目标系统的某些或者全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等如,为了考察是否满足用户的需求,可以用某些软件工具快速建造一个原型系统,这个系统只是一个界面,然后听取用户的意见改良这个原型以后的目标系统就在原型系统的根底上开发原型主要有三种类型:l 探索型目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性l 实验型用于大规模开发和实现前,考核方案是否适宜,规格说明是否可靠l 进化型目的不在于改良规格说明,而是将系统建造得易于变化,在改良原型的过程中,逐步将原型进化成最终系统在使用原型方法是有两种不同的策略l 废弃策略先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进展修改,形成比拟好的思想,据此设计出比拟完整,准确,一致,可靠的最终系统系统构建完成后,原来的模型系统被废弃不用。
探索型和实验型属于这种策略l 追加策略先构造一个功能简单而且质量要求不高的模型系统,最为最终系统的核心,然后通过不断地扩大修改,逐步追加新要求,开展成为最终系统进化型属于这种策略4.5 需求报告需求报告与软件需求说明书,作用在于便于用户、开发人员进展理解和交流,反映出用户问题的结构,可以作为软件开发工作的根底和依据,并作为确认测试和验收的依据通过从客户那里获得的所有信息进展整理,以区分业务需求与规、功能需求、质量目标、解决方法和其他信息通过这些分析,形成一份《软件需求说明书》 ,此份说明书使开发人员和客户之间针对要开发的产品容达成协议客户需要评审此文档,以确保容准确完整的表达其需求一份高质量的“需求说明书〞有助于开发人员开发出真正需要的产品输出:《软件需求说明书》,格式参照 附录1《软件需求说明书》4.6 划分需求的优先级绝大多数项目没有足够的时间或者资源实现功能性的每个细节决定哪些特性是必要的,哪些是重要的,是需求开发的主要局部,这只能由客户负责设定需求的优先级,因为开发者不可能按照客户的观点决定需求优先级开发人员将为确定的优先级提供有关每个需求的花费和风险的信息在时间和资源的限制下,关于所需特性能否完成或者完成多少,开发人员必须给出意见。
4.7 评审需求文档和原型客户评审需求文档,是给分析人员带来反应信息的一个机会如果客户人为编写的“需求分析报告〞不够准去,就有必要尽早告知分析人员并为改良提供建议更好的方法是先为产品开发一个原型这样客户就能提供更有价值的反应信息给开发人员,是他们更好的理解需求原型并非是一个实际应用产品,但开发人员能将其转化、扩大成功能齐全的系统5 系统设计制定项目计划软件项目计划是一个用来协调所有其他计划,以指导项目执行和控制的可操作文件它表现了对客户需求的理解,是开展项目活动的根底,也是软件项目跟踪与监控的依据 确定开发过程根据软件项目和项目组的实际情况,建立起一个稳定、可控的软件开发过程模型,并按照该过程来进展软件开发 加强过程控制过程控制主要包括过程管理、变更控制和配置管理5.1 概述此阶段主要是根据需求分析的结果,对整个软件系统进展设计,如系统框架设计,数据库设计等等5.2 产物/成果项目阶段/角色项目经理产品团队(BA/BAS/Product M〕开发团队TTL/Developer〕测试团队(Test Lead /Tester〕设计阶段活动:1、监控项目进度,2、组织安排本阶段的评审1、任务分解,责任到人2、细化项目计划产出:1、 项目计划〔具体到各功能〕参与:1、系统功能设计产出:1、 界面原型活动:1、系统。
