您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 01《软件研发流程》
深圳市泽林信息咨询有限公司ShenzhenZelinInformationConsultingCo.,LTD软件研发流程一Chapter1软件产品Chapter2软件工程课程目录Chapter3软件开发过程Chapter4软件生命周期Chapter5软件研发流程Chapter6软件测试流程Chapter7软件项目成员课程目的•了解软件产品构成的主要部分•了解软件产品如何从一个构想最终成为产品。•了解软件产品中包含了哪些人的劳动和技术。•了解软件工程的意义•抓住软件研发过程的关键要素,但暂时先不关注具体详细的内容•为后续第一阶段的演练打好基础Chapter1软件产品软件产品是什么?软件产品由哪些部分构成?软件产品的中间过程文档?什么是软件产品大多数人认为,软件产品仅仅是从互联网上下载或者从光盘上安装到计算机上的程序。实际上,许多“藏在背后”的东西通常被遗忘或忽视。作为软件测试人员,要记得所有的这些都是可能含有缺陷的,都是我们要测试的对象。软件产品由哪些构成包装标签和不干胶贴安装过程及说明帮助文件用户手册最终产品软件产品中的过程文件客户需求产品需求需求规格项目计划版本计划技术选型报告竞争对手调研报告概要设计详细设计测试计划测试方案测试用例测试报告缺陷跟踪单Chapter2软件工程为什么会有软件工程?软件工程是什么?为什么会有软件工程?软件产生初期后来……灵光一闪-写代码-程序诞生学习的人越来越多、程序增大问题出现程序错误频繁程序藕和困难频发熬夜通宵赶进度不是长久之计需要一种理论和规范开始有人为软件开发订立规章制度,经过不断改进,软件工程诞生了!!再后来……历史回顾软件工程是什么?软件工程的几个定义:1983年IEEE给软件工程下的定义是:“软件工程是开发、运行、维护和修复软件的系统方法。”这个定义相当概括,它主要强调软件工程是系统方法而不是某种神秘的个人技巧。“软件工程学是为了在成本限额以内按时完成开发和修改软件产品所需要的系统生产和维护技术及管理学科。”这个定义明确指出了软件工程的目标是在成本限额内按时完成开发和修改软件的工作,同时也指出了软件工程包含技术和管理两方面的内容。“软件工程是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用的完善的工程化原则。”这个定义不仅指出软件工程的目标是经济地开发出高质量的软件,而且强调了软件工程是一门工程学科,它应该建立并使用完善的工程化原则。1993年IEEE进一步给出了一个更全面的定义。软件工程是:①把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程.也就是把工程化应用于软件中;②研究①中提到的途径。系统化规范化可管理将软件开发变成一项工程Chapter3软件开发过程软件开发过程是什么?软件开发过程常见的几种模型软件开发过程模型的目的?“软件开发过程”是什么?软件产品从最初构思到公开发行的过程,称为软件开发过程。开发过程有各种不同的方法,没有所谓最好的模式。最常见的5种:•瀑布模式•VWXH•螺旋模式•快速原型•敏捷开发企业策略与远景技术解决方案企业作业流程开发过程常见模型--瀑布2020/1/15软件二系软件工程•在20世纪70年代,瀑布模型一直是惟一被广泛采用的软件过程模型,现在它仍然是软件工程中应用得非常广泛的过程模型。•瀑布模型是一种线形的、顺序的软件开发模型瀑布模型2020/1/15瀑布模式的变型:V,W步骤允许交叉。步骤允许回溯。测试贯穿全过程,减少缺陷修复成本,降低项目进度风险。2020/1/15特点:上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具有因果关系,紧密相联。该阶段完成后生成需求说明书设计说明书源程序清单测试报告软件维护报告瀑布模型的特点•线性化模型结构•各阶段具有里程碑特征•基于文档的驱动•严格的阶段评审机制瀑布模型优缺点•优点:提供了软件开发的基本框架,比靠“个人技艺”开发好的多--有利于大型软件开发过程的人员的组织和管理--有利于开发方法和工具的使用--提高了软件的质量和效率•缺点:初始阶段指出全部需求,可能用户和项目负责人需要很长的时间才能拿到需求版本,如果需要修改,则会蒙受损失。V模型—瀑布模型的变型2020/1/152020/1/15用户需求编码详细设计概要设计需求分析单元测试集成测试系统测试验收测试V模型—瀑布模型的变型V模型的优点:1.明确标明了测试过程中存在的不同级别2.清楚地描述了测试阶段与开发过程各阶段的对应关系与开发同步(引入检测机制,需求分析做的好不好,看验收测试)3.V模型的测试策略既包括了低层测试(代码级的测试),又包括了高层测试(需求级的测试)V模型的缺点:1.它仅仅把测试过程作为需求分析,概要设计,详细设计编码之后的一个阶段,容易让人理解为测试是软件开发的最后一个阶段。2.没有明确说明早期的测试,不符合越早测试和不断地进行测试的原则(用户需求对不对要到验收测试才能发现)。3.和瀑布模型一样,流程也是单向的,不可逆。W模型–V模型的升级版用户需求编码集成实施交付详细设计概要设计需求分析用户需求V&V验收测试设计需求分析V&V系统测试设计概要设计V&V集成测试设计详细设计V&V单元测试设计单元测试集成测试系统测试验收测试W模型–V模型的升级版W模型的优点:1.符合尽早测试和不断测试的原则2.符合实际工作中的测试活动。W模型的缺点:1.W模型与V模型一样,视软件开发活动是一系列串行的活动,开发和测试保持一种线性的前后关系,这样就无法支持迭代。X模型X模型左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将频繁交接,最终集成为产品进行版本固定交付用户使用。X模型提出了探索测试的概念(边设计用例边测试)H模型软件测试H模型说明了软件测试不仅仅指测试的执行,还包括很多其它的活动,软件测试是一个独立的流程,贯穿产品整个生命周期,与其它流程并发进行,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。螺旋模型2020/1/15确定目标、方案和限制条件明确风险,化解风险评估可选方案开发和测试计划下一阶段确定进入下一阶段的条件原型定义•原型开发指的是建立一个系统的早期版本的演习(practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面。原型作用•问题:开发初期很难确定用户需求规格•解决:用户与开发者之间的鸿沟以原型(软件产品的样品)为共同语言,实现用户与开发者双向沟通。原型模型(快速成型模型)建造/修改原型用户测试运行原听取用户意见原型范型原型生命周期分析定义系统需求生成原型系统设计程序设计编码测试运行和维护原型化含原型化的软件生存期原型特性•是一个可实际工作的系统;•没有固定的生存期,结局可能是用后立即被抛弃,或可能成为最终系统;•可服务于不同的目的,从需求分析到最终产品都可做原型;•建立必须快,便宜;•是包含修改、评价在内的完整重复过程原型指“快速软件原型”敏捷开发•敏捷开发:以人为核心,适应变化,迭代,循序渐进的开发方法•敏捷开发的理念个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划•核心价值观沟通,简单,反馈,勇气,尊重敏捷开发•敏捷开发的适用性:敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合组织结构的文化、人员、沟通则决定了敏捷方法是否适用(组织文化必须支持谈判人员彼此信任,人少但是精干,开发人员所作决定得到认可,环境设施满足成员间快速沟通之需要。最重要的因素恐怕是项目的规模。规模增长,面对面的沟通就愈加困难,因此敏捷方法更适用于较小的队伍,20、40人或者更少。大规模的敏捷软件开发尚处于积极研究的阶段)软件开发过程模型的目的•保证最终产品满足用户需求•提高产品质量,降低产品开发成本•保证项目可管理,进度可控制•作为测试人员的职责,是在所处项目的开发模式中,尽量运用自身的知识和技能,创造出尽量完善的软件。Chapter4软件生命周期需求设计废弃维护编码测试升级Chapter5软件研发流程Chapter6软件测试流程•需求分析•测试计划•测试用例•测试执行•测试报告测试流程图Chapter7软件项目成员•项目经理驱动整个项目的运转,负责制定计划,安排人力,管理进度,协调团队,进行重大决策。•架构师/系统工程师技术专家,经验丰富,负责整个系统的体系架构的设计以及关键模块的设计。•程序员/开发人员设计、编写软件,并修复软件中的缺陷。•测试工程师负责找出软件产品存在的问题并报告。•资料工程师负责编写软件产品附带的文件和联机帮助文档•配置管理员负责管理程序员写的代码和资料工程师写的文档资料,并组合成一个软件包•QA质量监管人员练习题•1.作为开发人员,在开始编写代码之前,要经过哪些工作阶段?•2.软件的规格说明书规定写完定稿后就绝对不能修改,会带来什么缺点?•软件产品研发过程的4个主要阶段是什么?•4.画出V模型。•5.在4的基础上,画出W模型。培训总结
本文标题:01《软件研发流程》
链接地址:https://www.777doc.com/doc-3048161 .html