- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程研究的基本内容 软件工程学分为:理论与结构、方法、工具与环境、管理和规范等。 理论与结构包括:程序正确性证明理论、软件可靠性理论、软件成本估算模型、软件开发模型、模块划分原理等。 软件开发技术包括:软件开发方法学、软件工具和软件开发环境。 软件工程管理包括:软件开发管理和软件经济管理 。 软件生存期 life cycle 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期 软件生存期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护 瀑布模型 制定计划 确定要开发软件系统的总目标 给出功能、性能、可靠性以及接口等方面的要求 完成该软件任务的可行性研究 估计可利用的资源 (硬件,软件,人力等)、成本、效益、开发进度 制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查 需求分析和定义 对用户提出的要求进行分析并给出详细的定义 编写软件需求说明书或系统功能说明书及初步的系统用户手册 提交管理机构评审 软件设计 概要设计 — 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应 详细设计 — 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础 编写设计说明书,提交评审。 程序编写 把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单” 写出的程序应当是结构良好、清晰易读的,且与设计相一致的 软件测试 单元测试,查找各模块在功能和结构上存在的问题并加以纠正 组装测试,将已测试过的模块按一定顺序组装起来 按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用 运行/维护 改正性维护 运行中发现了软件中的错误需要修正 适应性维护 为了适应变化了的软件工作环境,需做适当变更 完善性维护 为了增强软件的功能需做变更 软件生存期模型 软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架 瀑布模型 演化模型 螺旋模型 喷泉模型 智能模型 瀑布模型 阶段间具有顺序性和依赖性 各个阶段如同瀑布流水,逐级下落,自上而下、相互衔接的固定次序 。 推迟实现的观点 清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现。 质量保证的观点(文档驱动) 每个阶段都必须完成规定的文档 每个阶段结束前都要对所完成的文档进行评审 瀑布模型的缺点 模型缺乏灵活性。 开发过程一般不能逆转,否则代价太大 规格说明很难理解:“我知道这是按我的要求做的,但不是我想要的样子。” 软件的实际情况必须到项目开发的后期客户才能看到。(文档驱动的两面性) 演化模型(快速原型模型) 由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次 第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求 第二次则在此基础上获得较为满意的软件产品 需求 设计 编码 测试 集成 需求 设计 编码 测试 集成 开 发 反 馈 开 发 反 馈 ... 核 心 系 统 开 发 第 二 次 迭 代 针对事先不能完整地定义需求 ? 针对用户的核心需求,开发核心系统 ? 根据用户的反馈,实施活动的迭代 增量模型 也称:渐增模型 把软件产品作为一系列增量构件来设计、编码、集成和测试。 增量模型的优点 每个阶段交付一个可用的产品 减少一个全新产品给客户带来的心理上的影响 分阶段地交付产品不需要大的资金支出 需求经常变化,增量模型的灵活性使其具有更加优越的适用性 增量模型的困难 需要一个开放的结构,方便构件的加入 增量模型本身就是一个矛盾的名词 螺旋模型 螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即: 制定计划──确定软件目标,选定实施方案,弄清项目开发的限制 风险分析──分析所选方案,考虑如何识别和消除风险 实施工程──实施软件开发 客户评估──评价开发工作,提出修正建议 螺旋模型的优点 容易确定什么时候已经对某一阶段的产品充分测试完毕 维护和开发之间没有什么本质上的差别 螺旋模型的缺点 仅适合于大型软件 风险驱动既是优点也是缺点 喷泉模型 迭代 重复 演进 无间隙 各阶段间无明显界限 软件工程的定义 Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料 IEEE: 软件工程是开发、运行、维护和修复软件的系统方法 Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法 软件工程三要素:方法、工具和过程
文档评论(0)