软件工程课件1概述.ppt_第1页
软件工程课件1概述.ppt_第2页
软件工程课件1概述.ppt_第3页
软件工程课件1概述.ppt_第4页
软件工程课件1概述.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程导论 武汉科技大学计算机学院2010年3月 4 13周周三 5 6节 13105周五 5 6节 13407 第一章软件工程学概述 1 计算机系统 计算机硬件系统 计算机软件系统 计算机硬件系统经历了4个发展阶段 现在处于第五个发展阶段 1 第一代计算机 1946年 1957年 主要元器件是电子管 2 第二代计算机 1958年 1964年 晶体管时代 3 第三代计算机 1965年 1970年 以中 小规模集成电路取代了晶体管 4 第四代计算机 1971年至今 采用大规模集成电路和超大规模集成电路 现在 又进入了智能计算机阶段 大 小 集中 分布 全球互联网计算机系统 第一章软件工程学概述 2 计算机软件系统 第一阶段 个体化生产 过程隐含 随意性大 面向批处理 有限的分布 自定义软件 第二阶段 软件作坊面向批处理 多用户 实时 数据库 软件产品 第三阶段 分布式系统 嵌入 智能 低成本硬件 消费者的影响 第四阶段 强大的桌面系统 面向对象技术 智能信息处理系统 网络与网格计算系统 1946 1959冯 诺依曼程序存储 Fortran高级语言 56可执行 速度快 结果好 1960 1969非数值计算 范围扩大 高级语言程序设计 注重逻辑性 软件独立于硬件 1970 1979数据与程序分离 数据结构 算法 程序设计 系统软件 应用软件 软件工程方法 1980 现在 软件的定义 Boehm 软件是程序以及开发 使用和维护程序需要的所有文档 软件危机的表现开发成本难以控制 进度不可预计 软件系统的质量和可靠性很差 难以满意 软件文档相当缺乏 软件系统不可维护 软件开发生产率很低 软件产品供不应求 软件产品成本十分昂贵 软件危机产生的原因软件本身的特点 软件是一种逻辑实体 而不是具体的物理实体 具有高度的抽象性 软件是一个逻辑上复杂而规模上庞大的系统 涉及技术 管理等多方面的问题 软件的生产方式与硬件明显不同 产品的质量控制在设计和制造阶段的不同 产品的生产方式不同 设计和制造阶段的资金和人力投入 技术复杂度不同 软件的运行和维护阶段 没有传统意义上的机械磨损 老化问题 软件与硬件有关 对软件有可移植性的要求 软件工作涉及许多社会因素 对软件开发与维护存在许多错误认识和做法 忽视软件需求分析的重要性 对软件与程序的概念不清 轻视软件维护 软件开发与维护的方法不正确 对系统需求没有清楚和准确的认识就进入开发阶段 忽视对软件开发过程的管理 1 1软件危机 磨合调整 磨损用坏 t 失效率 硬 软件产品失效率曲线 硬件 软件 计算机软件开发和维护过程中所遇到的一系列严重问题 软件改进 软件产品需要分阶段的定义 设计和开发 严格的产品质量控制 完整的文档记录 改正一个问题的估计费用 美元 改正一个问题的估计工作量 人 天 20 200 1000 2000 0 05 0 5 2 5 5 0 RA SD DD CD IT ST RT Bell实验室统计结果 US 1 1软件危机 解决软件危机的途径将软件开发看成是一种组织严密 管理严格 各类人员协同配合共同完成的工程项目 研究和推广成功的软件开发技术和方法 开发和使用好的软件工具 1 2软件工程 1基本概念 软件生命周期 软件所经历的定义 开发 使用和维护直到废弃所经历的时期 程序设计环境 源程序编辑 编译或解释 链接 调试和运行工具的集合 软件工程环境 软件定义 设计和实现 测试和维护等各个阶段所使用的软件工具的集合 软件工程 是指导计算机软件开发和维护的工程学科 1 采用工程的概念 原理 技术和方法来开发与维护软件 2 把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 以经济地开发出高质量地软件并有效地维护它 科学 规律 态度 方法和知识 技术 运用科学 专门经验 设计和生产 工程 多快好省地运用技术 技术 管理 1 2软件工程 采用现代程序设计技术提高开发和维护的效率 如结构化分析SA和结构化设计SD技术 结果应能清楚地审查开发小组的人员应少而精1 软件开发的进度并非与参与开发人员的数量成正比 有时恰恰相反 2 软件产品的质量绝对与开发人员的素质相关 承认不断改进软件工程实践的必要性 用分阶段的生命周期计划严格管理6类计划 项目概要计划 里程碑计划 项目控制计划 产品控制计划 验证计划 运行维护计划 2 软件工程的基本原理 坚持进行阶段评审1 经验数据说明 大部分错误是在编码之前造成的 在整个软件设计错误中 设计错误占63 而编码错误占37 2 错误发现和改正得越晚 所需付出的代价就越高 实行严格的产品控制主要实行基准配置管理 软件配置成分 软件开发各个阶段产生的文档和代码 基准配置 经过评审后的软件配置成分 1 2软件工程 续1 生命周期各阶段的基本任务问题定义 可行性研究 需求分析 总体设计 概要设计 详细设计 编码和单元测试 综合测试 软件维护 3 软件工程方法学 生命周期方法学的基本内容从时间角度对软件开发和维护的复杂问题进行分解 把软件生命的漫长周期依次划分为若干个阶段 每个阶段有相对独立的任务 然后逐步完成每个阶段的任务 生命周期方法学的应用方法从对任务的抽象逻辑分析开始 一个阶段一个阶段地进行开发 前一个阶段任务的完成是后一个阶段工作的前提和基础 而后一个阶段任务通常是使前一阶段提出的解法更进一步的具体化 加进了更多的实现细节 阶段过渡方法每一个阶段的开始和结束都有严格标准 前一阶段结束的标准是后一阶段工作开始的标准 技术审查和管理复审 基本概念文档 是软件开发人员包括用户之间地通信工具 反映和定义了关于软件的知识和进一步工作的基础 也起软件开发备忘录的作用 提供对开发结果的检查和督察 1 传统方法学 生命周期方法学 结构化范型 3 软件工程方法学 2 面向对象方法学 软件系统本质上是信息处理系统 数据及其行为是高度统一的 传统的软件工程技术将两者分离 给软件开发带来很大的局限性 功能子程序 数据子集合 传统方法程序 1 客观世界是由各种 对象 所组成的 任何事物都是对象 每一个对象都有自已的运动规律和内部状态 每一个对象都属于某个对象 类 都是该对象类的一个元素 复杂的对象可以是由相对比较简单的各种对象以某种方式而构成的 2 消息 软件对象之间进行交互作用和通讯是利用消息的 3 封装 继承和多态性 1 3软件生命周期 4 瀑布模型 问题定义 特点 1 阶段间具有顺序性和依赖性2 推迟实现的观点3 质量保证的观点 可行性研究 需求分析 总体设计 详细设计 编码与单元测试 综合测试 软件维护 软件定义时期 软件开发时期 软件运行维护时期 1 4软件过程1 瀑布模型 问题定义 可行性研究 需求分析 总体设计 详细设计 编码与单元测试 综合测试 软件维护 要解决的问题是什么 问题性质 工程目标和规模的报告 分析员 实际用户 负责人 是否有解决办法 分析员 高层逻辑模型 准确和具体的工程规模和目标 成本 效益分析等可行性报告 为了解决的问题 目标系统必须做什么 准确确定系统的功能 系统的逻辑模型 数据流图 数据字典 简要算法 如何解决这些问题 模块划分软件结构 如何具体地实现系统 每个模块的流程图 程序的详细规格说明 通过各种类型的测试 使软件达到预定的要求 写出正确的容易理解和容易维护的程序模块 通过各种必要的维护活动使系统持久地满足用户的需要 四种不同类型的维护改正性维护 适应性维护 完善性维护 预防性维护 2 快速原型模型 快速原型 就是快速建立起在计算机上运行的程序 它所完成的功能往往是最终产品能完成的功能的子集 3 增量模型 分批 逐步提供软件功能 风险很大的增量模型 4 螺旋模型 在快速模型的基础上每一个环节引进风险分析 4螺旋模型 1 5技术审查和管理复审 必要性管理复审和技术复审错误传播模型 原始要求 正确的规格说明错误的规格说明 正确的设计错误的设计对错误说

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论