- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第讲 软件生命周期与软件过程模型
第二讲软件生命周期与软件过程模型 提纲 软件生命周期 软件过程模型 瀑布模型 演化模型 增量模型 原型模型 螺旋模型 (风险分析) 喷泉模型 总结 软件工程把整个软件开发过程视为一项工程,把整个工程分成若干个阶段,制定每个阶段的计划,逐个实施。 V模型 制定计划 确定要开发软件系统的总目标 给出功能、性能、可靠性以及接口等方面的要求 完成该软件任务的可行性研究 估计可利用的资源(硬件、软件、人力等)、成本、效益、开发进度 制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查 需求分析和定义 对用户提出的要求进行分析并给出详细的定义 编写软件需求说明书或系统功能说明书及初步的系统用户手册 评审 软件设计 概要设计 — 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应。 详细设计 — 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础。 编写设计说明书,提交评审。 程序编写 (软件实现) 把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单” 写出的程序应当结构良好、清晰易读,且与设计相一致 软件测试 单元测试,查找各模块在功能和结构上存在的问题并加以纠正 集成测试,将已测试过的模块按一定顺序组装起来 按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用 运行/维护 改正性维护 运行中发现了软件中的错误需要修正 适应性维护 为了适应变化了的软件工作环境,需做适当变更 完善性维护 为了增强软件的功能需做变更 预防性维护 “把今天的方法学用于昨天的系统以满足明天的需要”。为进一步改进软件打基础 软件生命周期 教材P7 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生命周期。 软件生命周期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护。 软件过程模型 软件过程模型 是制作软件产品的一组活动以及结果,这些活动主要由软件人员来完成。 软件活动 主要有: 软件描述 定义软件功能及使用的限制 软件开发 软件的设计和实现 软件有效性验证 保证能够满足客户的需要 软件进化 软件随着客户需求的变化不断的改进 软件过程模型 瀑布模型 演化模型:增量模型、原型模型、螺旋模型 喷泉模型 统一过程模型 敏捷开发 …… 瀑布模型 教材P18 主要思想 软件开发过程与软件生命周期是一致的 相邻二阶段之间存在因果关系 需对阶段性产品进行评审 瀑布模型在软件工程中占有重要的地位 局限性 缺乏灵活性,如用户需求一开始很难确定 到最后阶段才能得到可运行的软件版本 带有反馈的瀑布模型 演化模型 教材P20 两个概念 原型 软件演化(进化) 演化模型之 增量模型 演化模型之 增量模型 例如利用增量模型开发字处理软件 第1个增量中提供基本的文件管理、编辑和文档生成的功能; 第2个增量中提供复杂的编辑和文档生成功能; 第3个增量中提供拼写和语法检查功能; 第4个增量中提供高级页面排版功能 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 增量模型融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征 增量模型强调每一个增量都发布一个可运行的产品(第一个增量是核心产品) 增量模型特别适用于: 需求经常变化的软件开发 市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的软件开发 增量模型能有计划地管理技术风险,如早期增量版本中避免采用尚未成熟的技术 演化模型之 原型模型 原型应该包括目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全部或部分功能、性能 原型模型两个阶段 (1)原型开发阶段 (2)目标软件开发阶段 使用原型法需注意: (1)用户对系统模糊不清,无法准确回答目标系统的需求 (2)要有一定的开发环境和工具支持 (3)经过对原型的若干次修改,应收敛到目标范围内,否则可能失败 (4)对大型软件而言,原型可能非常复杂而难以快速形成,若没有现成的,不应考虑采用该方法 优点 有助于获取用户需求,加强对需求的理解 尽早发现软件中的错误 支持需求的动态变化 适合于需求动态变化、事先难以确定的系统 局限性 不能支持风险分析 演化模
文档评论(0)