软件工程课件第1章-软件工程学概述((第六版)(张海潘编著)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
认为软件开发就是写程序并设法使之运行。 程序只是完整的软件产品的一个组成部分。 一个软件产品必须由一个完整的配置组成, 软件配置主要包括程序、文档和数据等成分。 在软件开发的不同阶段进行修改需要付出的 代价是很不相同的,见图1.1。
图1.1 引入同一变动付出的代价随时间变化的趋势
轻视软件维护。维护是极端艰巨复杂的工作,需要花 费很大代价。软件维护的费用占软件总费用的 55%~70%。软件工程学的一个重要目标就是提高软 件的可维护性,减少软件维护的代价。
软件工程的划代(无公认的定义):
①1970年末之前,传统软件工程,瀑布模型。 ②1980年后,面向对象软件工程,面向对象语
初期
多用户 实时 数据库 软件产品
第二阶段
分布式系统 嵌入“智能” 低成本硬件 消费者的影响
第三阶段
强大的桌面系统 面向多项技术 专家系统 人工神经网络 并行计来自百度文库 网络计算机
第四阶段
1950 年
1960 年
1970 年
1980 年
1990 年
计算机软件发展的4个阶段
2000 年
1.1.1 软件危机的介绍
对软件的认识: 1950:程序 1960:程序+文档(不包括管理文档) 1970:程序+文档+数据 1984:软件管理是过程管理,CMM1.0能力成
熟度模型 1996:UML统一建模语言
计算机系统4个不同的发展阶段:
时期 早期时代 20世纪60年 代中期以前
第二代 20世纪60年 代中期到70
(1)与软件本身的特点有关 软件是逻辑部件。 软件不会被“用坏”,如果发现了错误,很
可能是开发时期引入。 软件规模庞大,而且程序复杂性将随着程序
规模的增加而呈指数上升。
(2)与软件开发与维护的方法不正确有关
忽视软件需求分析的重要性。对用户要求没 有完整准确的认识就匆忙着手编写程序。越 早开始写程序,完成它所需要用的时间往往 越长。
软件危机(软件萧条、软件困扰):是指在计算机 软件的开发和维护过程中所遇到的一系列严重 问题。实际上,几乎所有软件都不同程度地存 在这些问题。
软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。
软件危机的典型表现:
(1)对软件开发成本和进度的估计常常很不准 确;
现代软件工程,张家浩,机械工业出版社 软件工程:实践者的研究方法,Roger S.
pressman,郑人杰等译,机械工业出版社 软件工程导论学习辅导,张海藩,清华大学出
版社
成绩评定:
平时 实验 考试 20% 10% 70%
平时成绩包含:小论文、作业和考勤。
总目录:
第1章 软件工程学概述 第2章 可行性研究 第3章 需求分析 第4章 形式化说明技术 第5章 总体设计 第6章 详细设计 第7章 实现 第8章 维护
第9章 面向对象方法学引论 第10章 面向对象分析 第11章 面向对象设计 第12章 面向对象实现 第13章 软件项目管理
第1章 软件工程学概述
1.1 软件危机 1.2 软件工程 1.3 软件生命周期 1.4 软件过程
第1章 软件工程学概述
软件工程:是指导计算机软件开发和维护的一门 工程学科。采用工程的概念、原理、技术和方 法来开发与维护软件,把经过时间考验而证明 正确的管理技术和当前能够得到的最好的技术 方法结合起来,以经济地开发出高质量的软件 并有效地维护它,这就是软件工程。
1.2 软件工程 1.2.1 软件工程的介绍
软件工程:是指导计算机软件开发和维护的一门 工程学科。采用工程的概念、原理、技术和方 法来开发与维护软件,把经过时间考验而证明 正确的管理技术和当前能够得到的最好的技术 方法结合起来,以经济地开发出高质量的软件 并有效地维护它,这就是软件工程。
软件工程的代表性定义:
Fritz Bauer:软件工程是为了经济地获得可靠的和能 在实际机器上高效运行的软件而建立和使用的好的工 程原则。
IEEE:软件工程是(1)将系统化的、规范的、可度 量的方法应用于软件的开发、运行和维护的过程,即 将工程化应用于软件中;(2)(1)中所述方法的研 究。
计算机科学技术百科全书:软件工程是应用计算机科 学、数学及管理科学等原理,以工程化的原则和方法 制作软件的工程。
1.1.3 消除软件危机的途径
对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、
各类人员协同配合、共同完成的工程项目。 应该推广使用在实践中总结出来的开发软件
的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施
(方法和工具),又要有必要的组织管理措施。
1.1 软件危机
计算机系统:是指适当的组织在一起的一系列系统元素 的集合,这些系统元素互相配合、相互协作,通过对 信息的处理而完成预先定义的目标。
计算机系统
软件
硬件 人员 数据库 文档 过程
程序 数据结构 相关文档 电子计算设备 电子机械设备 用户和操作者 大型、有组织的信息集合 手册、表格、图形等描述性信息 一系列步骤
(2)用户对“已完成的”软件系统不满意的现 象经常发生;
(3)软件产品的质量往往靠不住;
(4)软件常常是不可维护的;
(5)软件通常没有适当的文档资料;
(6)软件成本在计算机系统总成本中所占的比 例逐年上升;
(7)软件开发生产率提高的速度,远远跟不上 计算机应用迅速普及深入的趋势 。
1.1.2 产生软件危机的原因
软件工程
学习目的:
软件工程是计算机专业一门重要的专业课。 目的在于培养学生用工程化的原理及方法开发
软件系统,把专业知识同实际项目结合起来, 为将来从事计算机软件的开发及应用维护工作 打下坚实的基础。 对于培养学生的软件素质,提高学生的软件开 发能力与软件项目管理能力具有重要的意义。
参考书:
年代中期
第三代 20世纪70年 代中期到80
年代中期 第四代
20世纪80年
硬件
软件
晶体管 计算机
程序设计阶 段
个体化生产
集成电 路计算
机
程序系统阶 段
作坊式生产
软件危机出 现
软件工程诞 生
微处理 器
个人计 算机
软件工程阶 段
工程化思想 分布式系统
面向对象阶段 硬件与软件综合
面向批处理 有限的分布 自定义软件
图1.1 引入同一变动付出的代价随时间变化的趋势
轻视软件维护。维护是极端艰巨复杂的工作,需要花 费很大代价。软件维护的费用占软件总费用的 55%~70%。软件工程学的一个重要目标就是提高软 件的可维护性,减少软件维护的代价。
软件工程的划代(无公认的定义):
①1970年末之前,传统软件工程,瀑布模型。 ②1980年后,面向对象软件工程,面向对象语
初期
多用户 实时 数据库 软件产品
第二阶段
分布式系统 嵌入“智能” 低成本硬件 消费者的影响
第三阶段
强大的桌面系统 面向多项技术 专家系统 人工神经网络 并行计来自百度文库 网络计算机
第四阶段
1950 年
1960 年
1970 年
1980 年
1990 年
计算机软件发展的4个阶段
2000 年
1.1.1 软件危机的介绍
对软件的认识: 1950:程序 1960:程序+文档(不包括管理文档) 1970:程序+文档+数据 1984:软件管理是过程管理,CMM1.0能力成
熟度模型 1996:UML统一建模语言
计算机系统4个不同的发展阶段:
时期 早期时代 20世纪60年 代中期以前
第二代 20世纪60年 代中期到70
(1)与软件本身的特点有关 软件是逻辑部件。 软件不会被“用坏”,如果发现了错误,很
可能是开发时期引入。 软件规模庞大,而且程序复杂性将随着程序
规模的增加而呈指数上升。
(2)与软件开发与维护的方法不正确有关
忽视软件需求分析的重要性。对用户要求没 有完整准确的认识就匆忙着手编写程序。越 早开始写程序,完成它所需要用的时间往往 越长。
软件危机(软件萧条、软件困扰):是指在计算机 软件的开发和维护过程中所遇到的一系列严重 问题。实际上,几乎所有软件都不同程度地存 在这些问题。
软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。
软件危机的典型表现:
(1)对软件开发成本和进度的估计常常很不准 确;
现代软件工程,张家浩,机械工业出版社 软件工程:实践者的研究方法,Roger S.
pressman,郑人杰等译,机械工业出版社 软件工程导论学习辅导,张海藩,清华大学出
版社
成绩评定:
平时 实验 考试 20% 10% 70%
平时成绩包含:小论文、作业和考勤。
总目录:
第1章 软件工程学概述 第2章 可行性研究 第3章 需求分析 第4章 形式化说明技术 第5章 总体设计 第6章 详细设计 第7章 实现 第8章 维护
第9章 面向对象方法学引论 第10章 面向对象分析 第11章 面向对象设计 第12章 面向对象实现 第13章 软件项目管理
第1章 软件工程学概述
1.1 软件危机 1.2 软件工程 1.3 软件生命周期 1.4 软件过程
第1章 软件工程学概述
软件工程:是指导计算机软件开发和维护的一门 工程学科。采用工程的概念、原理、技术和方 法来开发与维护软件,把经过时间考验而证明 正确的管理技术和当前能够得到的最好的技术 方法结合起来,以经济地开发出高质量的软件 并有效地维护它,这就是软件工程。
1.2 软件工程 1.2.1 软件工程的介绍
软件工程:是指导计算机软件开发和维护的一门 工程学科。采用工程的概念、原理、技术和方 法来开发与维护软件,把经过时间考验而证明 正确的管理技术和当前能够得到的最好的技术 方法结合起来,以经济地开发出高质量的软件 并有效地维护它,这就是软件工程。
软件工程的代表性定义:
Fritz Bauer:软件工程是为了经济地获得可靠的和能 在实际机器上高效运行的软件而建立和使用的好的工 程原则。
IEEE:软件工程是(1)将系统化的、规范的、可度 量的方法应用于软件的开发、运行和维护的过程,即 将工程化应用于软件中;(2)(1)中所述方法的研 究。
计算机科学技术百科全书:软件工程是应用计算机科 学、数学及管理科学等原理,以工程化的原则和方法 制作软件的工程。
1.1.3 消除软件危机的途径
对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、
各类人员协同配合、共同完成的工程项目。 应该推广使用在实践中总结出来的开发软件
的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施
(方法和工具),又要有必要的组织管理措施。
1.1 软件危机
计算机系统:是指适当的组织在一起的一系列系统元素 的集合,这些系统元素互相配合、相互协作,通过对 信息的处理而完成预先定义的目标。
计算机系统
软件
硬件 人员 数据库 文档 过程
程序 数据结构 相关文档 电子计算设备 电子机械设备 用户和操作者 大型、有组织的信息集合 手册、表格、图形等描述性信息 一系列步骤
(2)用户对“已完成的”软件系统不满意的现 象经常发生;
(3)软件产品的质量往往靠不住;
(4)软件常常是不可维护的;
(5)软件通常没有适当的文档资料;
(6)软件成本在计算机系统总成本中所占的比 例逐年上升;
(7)软件开发生产率提高的速度,远远跟不上 计算机应用迅速普及深入的趋势 。
1.1.2 产生软件危机的原因
软件工程
学习目的:
软件工程是计算机专业一门重要的专业课。 目的在于培养学生用工程化的原理及方法开发
软件系统,把专业知识同实际项目结合起来, 为将来从事计算机软件的开发及应用维护工作 打下坚实的基础。 对于培养学生的软件素质,提高学生的软件开 发能力与软件项目管理能力具有重要的意义。
参考书:
年代中期
第三代 20世纪70年 代中期到80
年代中期 第四代
20世纪80年
硬件
软件
晶体管 计算机
程序设计阶 段
个体化生产
集成电 路计算
机
程序系统阶 段
作坊式生产
软件危机出 现
软件工程诞 生
微处理 器
个人计 算机
软件工程阶 段
工程化思想 分布式系统
面向对象阶段 硬件与软件综合
面向批处理 有限的分布 自定义软件