《软件研发流程》由会员分享,可在线阅读,更多相关《软件研发流程(30页珍藏版)》请在金锄头文库上搜索。
1、软件研发流程Chapter 1 软件产品Chapter 2 软件工程课程目录Chapter 3 软件项目成员Chapter 4 软件开发过程Chapter 5软件研发流程 Chapter 6 软件生命周期Chapter 1 软件产品p 软件产品是什么p 软件产品由哪些部分构成p 软件产品的中间过程文档 什么是软件产品l 大多数人认为,软件产品仅仅是从互联网上下载或者从光 盘上安装到计算机上的程序。l 实际上,许多“藏在背后”的东西通常被遗忘或忽视。作 为软件测试人员,要记得所有的这些都是可能含有缺陷的 ,都是我们要测试的对象。 软件产品是指向用户提供的计算机软件、信息系统或设备 中嵌入的软件或
2、在提供计算机信息系统集成、应用服务等 技术服务时提供的计算机软件。 软件是计算机程序、程序所用的数据以及有关文档资料的 集合。软件产品中的过程文件客户需求产品需求 需求规格 项目计划 版本计划技术选型报告 竞争对手调研报告 概要设计详细设计测试计划测试方案测试用例测试报告缺陷跟踪单Chapter 2 软件工程p 为什么会有软件工程p 软件工程是什么为什么会有软件工程软件产生初期后来灵光一闪 - 写代码 - 程序诞生学习的人越来越多、程序增大问题 出现程序错误 频繁程序藕和 困难频发熬夜通宵赶 进度不是长 久之计需要一种理论和规范开始有人为软件开发订立规章制度,经 过不断改进,软件工程诞生了!再
3、后来软件工程是什么l 软件工程的几个定义: l 1983年IEEE给软件工程下的定义是:“软件工程是开发、运行、维护和修复 软件的系统方法。”这个定义相当概括,它主要强调软件工程是系统方法而 不是某种神秘的个人技巧。 l “软件工程学是为了在成本限额以内按时完成开发和修改软件产品所需要的 系统生产和维护技术及管理学科。”这个定义明确指出了软件工程的目标是 在成本限额内按时完成开发和修改软件的工作,同时也指出了软件工程包含 技术和管理两方面的内容。 l “软件工程是为了经济地获得可靠的且能在实际机器上有效地运行的软件, 而建立和使用的完善的工程化原则。”这个定义不仅指出软件工程的目标是 经济地开
4、发出高质量的软件,而且强调了软件工程是一门工程学科,它应该 建立并使用完善的工程化原则。 l 1993年IEEE进一步给出了一个更全面的定义。 软件工程是: 把系统化的、规范的、可度量的途径应用于软件开发、运 行和维护的过程也就是把工程化应用于软件中; 研究中提到的途径。 系统化规范化可管理将软件开发变成一项工程Chapter 3 软件项目成员p 现在软件开发公司有什么角色p 项目团队里的职责是什么Chapter 3 软件项目成员项目经理驱动整个项目的运转,负责制定计划,安排人力,管理进度,协调团队,进 行重大决策。 架构师 / 系统工程师技术专家,经验丰富,负责整个系统的体系架构的设计以及关
5、键模块的设计。 程序员 / 开发人员设计、 编写软件,并修复软件中的缺陷。 测试工程师负责找出软件产品存在的问题并报告。 美术工程师完成软件设计师安排的功能界面设计 产品经理(可由市场人员 兼任)对所负责的产品进行策划和管理 配置管理员负责管理程序员写的代码和文档资料,并组合成一个软件包 QA 质量监管人员Chapter 4 软件开发过程p 软件开发过程是什么p 软件开发过程常见的几种模型p 软件开发过程模型的目的“软件开发过程”是什么?l 软件产品从最初构思到公开发行的过程,称为软件开发过 程。l 开发过程有各种不同的方法,没有所谓最好的模式。l 最常见的几种: 瀑布模式 V W X H 螺
6、旋模式 快速原型企业策略 与远景技术解决方案企业作业流程开发过程常见模型-瀑布模型* 在20世纪70年代,瀑布模型一直是惟一被广泛采用 的软件过程模型,现在它仍然是软件工程中应用得 非常广泛的过程模型。 瀑布模型是一种线形的、顺序的软件开发模型瀑布模型*特点: 上一阶段的变 换结果是下一 阶段的变换的 输入,相邻两个 阶段具有因果关 系,紧密相联。该阶段完成后 生成需求说明 书设计说 明书源程序 清单测试 报告软件维 护报告瀑布模型优缺点优点: 1)为项目提供了按阶段划分的检查点。 2)当前一阶段完成后,只需要去关注后续阶段。 3)可在迭代模型中应用瀑布模型。 增量迭代应用于瀑布模型。首次迭代
7、解决最大的问题。每次迭代产 生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集 成测试。 4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持 的方法可以在该模板下有一个共同的指导。 缺点: 1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加 了工作量。 2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开 发成果,从而增加了开发风险。 3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。 4)瀑布模型的突出缺点是不适应用户需求的变化。V模型 瀑布模型的变型优点:V模型将瀑布模型中的测试部分做了细化,主要反映测试活动与分析和设计 的关系;强调了在
8、整个软件项目开发中需要经历的若干个测试级别,并与每一个开发 级别对应;将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结 束时,软件开发就结束了。 缺点:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后 期的验收测试才能发现,忽略了测试的对象不应该仅仅包括程序,没有明确指出 对需求、设计的测试。W模型 V模型的升级版优点:增加开发阶段的同步测试形成W模型;强调了测试计划等工作的先行和 对系统需求和系统设计的测试;测试与开发同步进行,有利用尽早的发现问题;缺点:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段 完成后,才可以开始下一阶段的活动,不能支持迭代
9、。X 模型X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和 测试,此后将进行频繁的交接,通过集成最终合成为可执行的程序。( 右上半部分),这些可执行程序还需要进行测试。已通过集成测试的 成品可以进行封版并提交给用户,也可以作为更大规模和范围内集成 的一部分。多根并行的曲线表示变更可以在各个部分发生。 H 模型图中标注的其他流程可以是任意的开发流程。例如,设计流程或编 码流程。也就是说,只要测试条件成熟了,测试准备活动完成了, 测试执行活动就可以(或者说需要)进行了。H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整 个生命周期,与其他流程并发地进行。H模型指出软件测试要尽早
10、 准备,尽早执行。不同的测试活动可以是按照某个次序先后进行的 ,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活 动就可以开展。螺旋模型*优点 1)设计上的灵活性,可以在项目的各个阶段进行变更。 2)以小的分段来构建大型系统,使成本计算变得简单容易。 3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项 目的可控性。 4)随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和 管理层有效地交互。 5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的 产品。 缺点 很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而 软件技术发展比较快,所以经常出现软件
11、开发完毕后,和当前的技术 水平有了较大的差距,无法满足当前用户需求。 螺旋模型的项目适用: 对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便 于风险控制和需求变更。原型定义 原型开发指的是建立一个系统的早期版本的演习 (practice),它不必反映最终产品的所有性能,而只要反映感兴趣的一些方面。原型作用 问题:开发初期很难确定用户需求规格 解决:用户与开发者之间的鸿沟以原型(软件产品的样品)为共同语言,实现用户与开发者 双向沟通。原型模型(快速成型模型)建造/修改原型用户测试 运行原听取用户意见原型范型原型生命周期分析定义分析定义 系统需求系统需求生成生成 原型原型系统系统 设计设计程序程序 设计设计编码编码测试测试运运 行行 和维护和维护原型化原型化含原型化的含原型化的 软件生存期软件生存期Chapter 5 软件研发流程Chapter 6 软件生命周期需求设计废弃维护编码测试升级练习题1.作为开发人员,在开始编写代码之前,要经过哪些工作阶段?2.软件的规格说明书规定写完定稿后就绝对不能修改,会带来什么缺 点?3. 画出V模型,并说明 其优缺点。4.画出W模型5. 软件的生命周期。培训总结