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

下载本文档

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

文档简介

软件工程与技术 E Mail 本课程学习的目的本课程的主要内容本课程的特点本课程的教 学及考核方式主要参考书目实验安排 课程简介 消除错误地认识学习软件工程基本理论学习主流的软件开发方法熟悉软件开发过程掌握软件开发全过程中的各重要阶段的任务及相关描述方法 如何分析问题并设计出合理的解决方案如何保证软件质量培养软件工程师的基本素质 一 本课程学习目的 1 软件工程的基本概念及软件危机2 软件生存周期及软件开发模型3 软件计划4 软件分析 需求分析 5 软件系统设计6 软件测试7 软件维护8 面向对象软件工程 返回 二 主要内容 1 是专业课 2 属 工程 学科 3 是一门需不断完善的 发展的 可创新的学科 返回 三 课程特点 1 主要参考书目 软件工程技术及应用 贾铁军著机械工业出版社2 其他参考书目 a 软件工程 杨卫东译人民邮电出版社b 实用面向对象软件工程教程 殷人昆等译电子工业出版社 返回 四 参考教材 第一章软件工程概述 本章要点 1软件的定义及软件发展过程2软件危机及软件工程的产生3软件工程学定义 本课程学习的目的 可执行部分 不可执行部分 一 软件的定义 特点 1软件的定义程序 数据 文档与计算机系统操作有关的程序 数据以及任何与之相关的文档的集合 程序 1软件的定义 什么是程序 1 2 程序 由程序设计语言所描述的 能为计算机所识别 理解和处理的语句序列程序例子Main inti j 变量定义charStr 10 i i j 语句说明 一 软件的定义 特点 1软件的定义 什么是程序 2 2 程序设计语言具有良好 严格语法和语义目前程序设计语言主要有以下几种类型面向机器 如汇编语言 机器语言等面向过程 如Fortran Pascal C等等面向对象 如Java等等面向问题 如结构化查询语言SQL等等 一 软件的定义 特点 1软件的定义 什么是文档 文档 记录软件开发活动和阶段性成果 理解软件所必需的阐述性资料需求分析文档 软件设计文挡 用户文档等编写文档目的促进对软件的开发 管理和维护 便于各种人员 用户 开发人员 的交流 一 软件的定义 特点 一 软件的定义 特点 2软件的特点不会老化逻辑产品 智力 无形 维护困难和复杂 完善 纠错 生产只需复制软件开发性质如成本 进度等难以估计软件的开发更加依赖于开发人员的业务素质 智力 人员的合作 组织和管理 二 软件的发展过程1 20世纪50年代 60年代初 程序设计阶段特点 个体化 只有程序清单 以硬件发展为主2 20世纪60年代初 70年代初 程序系统阶段特点 作坊式 软件数量剧增 软件维护费用惊人 提出 软件工厂 概念 出现软件危机3 70年代 90年代 软件工程阶段软件成本剧增 硬件技术 微电子学 日趋成熟 软件工程时代4 90年代至今 现代信息技术飞速发展 并行计算机处理 三层处理模式 数据仓库 多媒体技术 网络技术 电子商务等 称为 网络时代 三 软件危机 1 软件危机定义 软件在开发和维护过程中遇到的一系列问题困扰学术界和工业界用户对软件开发缺乏信心软件开发的高投入和高风险 Crisis 三 软件危机 2 软件危机的表现 1of3 成本高IBM360OS 5000多人年 耗时4年 1963 1966 花费2亿多美元美国空军 1955年软件占总费用 计算机系统 的18 70年60 85年达到85 美国全球军事指挥控制系统 硬件1亿美元 软件高达7 2亿美元计算机软件和硬件费用比 三 软件危机 2 软件危机的表现 2of3 软件质量得不到保证软件应用面的扩大 科学计算 军事 航空航天 工业控制 企业管理 办公 家庭软件越来越多的应用于安全犹关 safetycritical 的系统 对软件质量提出更高的要求80年代欧洲亚丽安娜火箭的发射失败 原因是软件错误美国阿托拉斯火箭的发射失败 原因是软件故障英国1986年开发的办公室信息系统Folios经4年 因性能达不到要求 1989年取消日本第5代机因为软件问题在投入50亿美元后于1993年下马由于软件质量问题导致失败的软件项目非常多 三 软件危机 2 软件危机的表现 3of3 进度难以控制项目延期比比皆是由于进度问题而取消的软件项目较常见只有一小部分的项目能够按期完成维护非常困难软件维护的多样性软件维护的复杂性软件维护的副作用 三 软件危机 3 软件危机包含两方面问题一 如何开发软件 以满足不断增长 日趋复杂的需求 二 如何维护数量不断膨胀的软件产品 4 软件危机产生的原因逻辑产品 不同于物理产品复杂性高逻辑产品 逻辑复杂性 远高于硬件复杂性软件的复杂性随规模呈指数级上升规模大应用扩大 代码量 1000万行 仍在不断膨胀影响软件生产率和质量的因素比较复杂人员的能力和水平团队合作缺乏有效 系统原理 原则 方法和工具的指导和辅助 5 对软件开发的深层次认识 开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不一样正如建设一个平房和高楼大厦建造房屋的过程确定和分析需求房子的总体设计 建筑平面图和建筑透视图 房子的详细设计 建筑平面图的细化以及规格说明 识别并设计房子的组成部分建造房子的每一个组成部分测试房子的每一个组成部分把房子的各个部分集成在一起 在住户搬进来之前作最后的修改大型 复杂软件系统的开发是一项工程 必须按照工程化的方法组织软件的生产和管理 必须经过分析 设计 实现 测试 维护等一系列软件过程和活动 三 软件危机 6 解决危机的技术途径20世纪60年代爆发 然而实际上软件危机随着计算机软件的产生而产生 只是在此之前其问题的严重性没有引起人们的关注和重视提出有效的方法和工具支持软件开发1968年提出软件工程概念和思想20世纪70年代的结构化软件开发方法20世纪80年代的面向对象的软件开发方法新的技术 软件重用 快速原型 需求工程典型技术 COM Java C J2EE Net 支撑工具和环境 Jbuilder VisualStudio WebLogic 三 软件危机 7 技术手段不能完全解决软件危机到了20世纪90年代 软件危机依然存在 甚至更为严重应用变得越来越大和复杂 技术变得更加力不从心错误的观念 只要有好的软件开发方法和工具就能高效率地开发出高质量的软件 三 软件危机 8 解决危机的管理途径问题出在哪里 20世纪80年代末 美国工业界开始认识到管理的重要性美国的一项研究表明 70 的项目由于管理不善导致难以控制进步 成本和质量 进一步的研究发现 管理是影响软件项目成功开发的全局性因素 而技术只影响局部如果软件开发组织不能对软件项目进行有效管理 就不能充分发挥软件开发方法和工具的潜力 也就不能高效率地开发出高质量的软件产品 三 软件危机 四 软件工程的提出 解决软件危机 硬件发展 开发人员增加 软件开发工具的发展 软件工程 由于认识到软件的设计 实现 维护和传统的工程规则有相同的基础 1967年NATO的研究组织首次提出 软件工程 1968年NATO软件工程会议正式提出 软件工程 概念1968 至今 40余年 四 软件工程的提出 2 软件工程定义1968年NATO 北大西洋公约组织 会议上首次提出软件工程 给出了软件工程的早期定义 软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则 强调软件工程的目标 IEEE 软件工程是 1 将系统化的 规范的 可度量的方法应用于软件的开发 运行和维护的过程 即将工程化应用于软件中 2 1 中所述方法的研究 计算机科学技术百科全书 所谓软件工程就是指导计算机软件开发和维护的工程学科 采用工程的概念 原理 技术和方法来开发与维护软件 把经过时间考验而证明正确的管理技术和当前能够得到的最先进的技术方法结合起来 思考 其它更准确的定义 五 软件工程的发展1 传统软件工程管理 希望实现软件开发过程的工程化 这方面最为著名的成果就是提出了大家都很熟悉的 瀑布式 生命周期模型 它是在60年代末 软件危机 后出现的第一个生命周期模型 如下所示 分析 设计 编码 测试 维护后来 又有人针对该模型的不足 提出了快速原型法 螺旋模型 喷泉模型等对 瀑布式 生命周期模型进行补充 现在 它们在软件开发的实践中被广泛采用 认识到了文档的标准以及开发者之间 开发者与用户之间的交流方式的重要性 方法 侧重与对软件开发过程中分析 设计的方法的研究 这方面的重要成果就是在70年代风靡一时的结构化开发方法 即PO 面向过程的开发或结构化方法 以及结构化的分析 设计和相应的测试方法 六 软件工程的发展2 现代软件工程方法 面向对象的分析 设计方法 OOA和OOD 的出现使传统的开发方法发生了翻天覆地的变化 随之而来的是面向对象建模语言 以UML为代表 软件复用 基于组件的软件开发等新的方法和领域 管理 从企业管理的角度提出的软件过程管理 即关注于软件生存周期中所实施的一系列活动并通过过程度量 过程评价和过程改进等涉及对所建立的软件过程及其实例进行不断优化的活动使得软件过程循环往复 螺旋上升式地发展 其中最著名的软件过程成熟度模型是美国卡内基梅隆大学软件工程研究所 SEI 建立的CMM CapabilityMaturityModel 即能力成熟度模型 3 软件工程三要素软件程是一种层次化的技术 包含了一个观点 和三要素 如下图 工具 方法 过程 软件工程包括两方面内容 软件开发技术包括软件开发方法学 软件工具和软件工程环境 软件项目管理包括软件度量 项目估算 进度控制 人员组织 配置管理 项目计划等 软件工程技术有两个明显的特点 第一 强调规范化 第二 强调文档化 六 克服软件危机的途径 消除错误的概念和做法推广使用成功的开发技术和方法使用软件工具和软件工程支持环境加强软件管理 七 软件工程的基本原理严格按照软件生命周期各阶段的计划进行管理 坚持阶段评审实施严格的产品控制开发小组的成员应该少

温馨提示

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

评论

0/150

提交评论