1软件工程学概述(1).ppt
《1软件工程学概述(1).ppt》由会员分享,可在线阅读,更多相关《1软件工程学概述(1).ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、信息工程大学电子技术学院信息工程大学电子技术学院软件工程软件工程Software Engineering402402402402教研室教研室教研室教研室 费晓飞费晓飞费晓飞费晓飞办公室:办公室:办公室:办公室:1606160616061606电话:电话:电话:电话:13523512977135235129771352351297713523512977Email:Email:Email:Email:fei_fei_信息工程大学电子技术学院信息工程大学电子技术学院课程简介课程简介课程内容课程内容w从系统工程角度讲述软件开发的过程、从系统工程角度讲述软件开发的过程、步骤、方法与技术步骤、方法与技术
2、 w软件开发与维护的原则、技术及方法软件开发与维护的原则、技术及方法w帮助建立良好的软件工程观念帮助建立良好的软件工程观念 思考:如果现在参加课题组,能胜任什么工作?如果现在负责项目,应该如何组织管理?信息工程大学电子技术学院信息工程大学电子技术学院课程知识结构课程知识结构Chp.1 软件工程学概述软件工程学概述Chp.2 可行性研究可行性研究Chp.5-6设计设计Chp.7 编码与测试编码与测试Chp.8 维护维护Chp.3需求分析需求分析Chp.9 面向对象方法引论面向对象方法引论Chp.13 软件项目管理软件项目管理Chp.10 面向对象分析面向对象分析Chp.11 面向对象设计面向对象
3、设计Chp.12 面向对象实现面向对象实现补充补充CMMIPSP信息工程大学电子技术学院信息工程大学电子技术学院软件工程软件工程第第1 1章章 软件工程学概述软件工程学概述信息工程大学电子技术学院信息工程大学电子技术学院1.1软件危机1.21.2软件工程软件工程1.31.3软件生命周期软件生命周期1.41.4软件过程软件过程主要内容主要内容信息工程大学电子技术学院信息工程大学电子技术学院w计算机系统的发展历程计算机系统的发展历程w软件危机的内涵软件危机的内涵w产生软件危机的原因产生软件危机的原因w解决软件危机的途径解决软件危机的途径软件危机信息工程大学电子技术学院信息工程大学电子技术学院计算机
4、系统的发展历程计算机系统的发展历程过程过程文档文档硬件硬件人人数据库数据库软件软件系统系统输入输入输出输出基于计算机系统的系统元素基于计算机系统的系统元素信息工程大学电子技术学院信息工程大学电子技术学院计算机系统的发展历程计算机系统的发展历程w早期早期(20(20世纪世纪6060年代中期以前年代中期以前)个体化的软件环境个体化的软件环境w第第2 2代代(2020世纪世纪6060年代中期到年代中期到7070年代中期)年代中期)软件作坊软件作坊w第第3 3代代(2020世纪世纪7070年代中期开始)年代中期开始)微处理器出现微处理器出现w第第4 4代代(2020世纪世纪7070年代后期至今)年代后
5、期至今)更强大的硬件和软件更强大的硬件和软件信息工程大学电子技术学院信息工程大学电子技术学院软件危机的内涵软件危机的内涵w来源来源 19681968年,北大西洋公约组织年,北大西洋公约组织NATONATO的计算机科学家,在联邦德国召的计算机科学家,在联邦德国召开国际会议,正式提出并讨论开国际会议,正式提出并讨论软件危机软件危机问题。问题。w定义定义 软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。重问题。w两方面问题两方面问题 如何开发软件如何开发软件满足对软件日益增长的需求满足对软件日益增长的需求 如何维护软件如何维
6、护软件维护数量不断膨胀的已有软件维护数量不断膨胀的已有软件w其它名称其它名称 软件萧条软件萧条(Software depression)(Software depression)、软件困扰、软件困扰(Software affliction)(Software affliction)信息工程大学电子技术学院信息工程大学电子技术学院例例:美国美国IBM公司在公司在1963年至年至1966年开发的年开发的IBM360机的操作系统。这一项目花了机的操作系统。这一项目花了5000人一人一年的工作量,最多时有年的工作量,最多时有1000人投入开发工作,人投入开发工作,写出了近写出了近100万行源程序。万行
7、源程序。.据统计,这个据统计,这个操作系统每次发行的新版本都是从前一版本中操作系统每次发行的新版本都是从前一版本中找出找出1000个程序错误而修正的结果。个程序错误而修正的结果。.软件危机案例(软件危机案例(1)信息工程大学电子技术学院信息工程大学电子技术学院 这个项目的负责人这个项目的负责人这个项目的负责人这个项目的负责人F.D.BrooksF.D.BrooksF.D.BrooksF.D.Brooks事后总结了他在组织开事后总结了他在组织开事后总结了他在组织开事后总结了他在组织开发过程中的沉痛教训时说:发过程中的沉痛教训时说:发过程中的沉痛教训时说:发过程中的沉痛教训时说:“.正像一只逃亡的
8、野兽落正像一只逃亡的野兽落正像一只逃亡的野兽落正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。脱灭顶的灾难。脱灭顶的灾难。脱灭顶的灾难。.程序设计工作正像这样一个泥潭,程序设计工作正像这样一个泥潭,程序设计工作正像这样一个泥潭,程序设计工作正像这样一个泥潭,.一批批程序员被迫在泥潭中拼命挣扎,一批批程序员被迫在泥潭中拼命挣扎,一批批程序员被迫在泥潭中拼命挣扎,一批批程序员被迫在泥潭中拼命挣扎,.谁也没谁
9、也没谁也没谁也没有料到问题竟会陷入这样的困境有料到问题竟会陷入这样的困境有料到问题竟会陷入这样的困境有料到问题竟会陷入这样的困境.”。IBM360IBM360IBM360IBM360操作系统操作系统操作系统操作系统的历史教训成为软件开发项目的典型事例为人们所记取。的历史教训成为软件开发项目的典型事例为人们所记取。的历史教训成为软件开发项目的典型事例为人们所记取。的历史教训成为软件开发项目的典型事例为人们所记取。软件危机案例(软件危机案例(2)信息工程大学电子技术学院信息工程大学电子技术学院软件危机案例(软件危机案例(3)项目没有被很好地理解;计划不周,最终导致进度项目没有被很好地理解;计划不周
10、,最终导致进度项目没有被很好地理解;计划不周,最终导致进度项目没有被很好地理解;计划不周,最终导致进度拖延。拖延。拖延。拖延。没有充分的文档资料没有充分的文档资料没有充分的文档资料没有充分的文档资料 软件可靠性软件可靠性软件可靠性软件可靠性缺少度量的标准,质量无法保证。而如缺少度量的标准,质量无法保证。而如缺少度量的标准,质量无法保证。而如缺少度量的标准,质量无法保证。而如何保证软件产品的质量,是非常复杂困难的问题。何保证软件产品的质量,是非常复杂困难的问题。何保证软件产品的质量,是非常复杂困难的问题。何保证软件产品的质量,是非常复杂困难的问题。特别对于规模庞大的软件。特别对于规模庞大的软件。
11、特别对于规模庞大的软件。特别对于规模庞大的软件。软件难以维护软件难以维护软件难以维护软件难以维护 ,不易升级。不易升级。不易升级。不易升级。w问题出在哪里?问题出在哪里?信息工程大学电子技术学院信息工程大学电子技术学院软件危机的内涵软件危机的内涵w典型表现典型表现n软件开发成本和进度的估计常常很不准确软件开发成本和进度的估计常常很不准确n用户对用户对“已完成的已完成的”软件系统不满意的现象经常发生软件系统不满意的现象经常发生n软件产品的质量往往靠不住软件产品的质量往往靠不住n软件常常是不可维护的软件常常是不可维护的n软件通常没有适当的文档资料软件通常没有适当的文档资料n软件成本在计算机系统总成
12、本中所占的比例逐年上升软件成本在计算机系统总成本中所占的比例逐年上升n软件开发生产率提高的速度远远跟不上计算机应用迅软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势速普及深入的趋势 信息工程大学电子技术学院信息工程大学电子技术学院产生软件危机的原因产生软件危机的原因w软件本身的客观特点软件本身的客观特点 软件是计算机系统中的逻辑部件,软件开发过软件是计算机系统中的逻辑部件,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价,程的进展情况较难衡量,软件开发的质量也较难评价,因此,管理和控制软件开发过程相当困难。同时,对因此,管理和控制软件开发过程相当困难。同时,对软件的维护通
13、常要修改原来的设计,困难很大。软件的维护通常要修改原来的设计,困难很大。w软件人员的主观原因软件人员的主观原因 早期阶段软件开发个体化的特点,导致许多与软早期阶段软件开发个体化的特点,导致许多与软件开发和维护有关的错误认识和作法,主要表现为忽件开发和维护有关的错误认识和作法,主要表现为忽视软件需求分析的重要性,轻视维护。视软件需求分析的重要性,轻视维护。软件人员进行软件开发与维护的方法不正确。软件人员进行软件开发与维护的方法不正确。软件软件产品需要分阶段的定义、设计和开发,严格的产品质产品需要分阶段的定义、设计和开发,严格的产品质量控制,完整的文档记录。量控制,完整的文档记录。信息工程大学电子
14、技术学院信息工程大学电子技术学院软件的特点(软件的特点(1)w软件是一种逻辑实体,而不是具体的物理实体。因而它软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性。具有抽象性。可记录,但看不到。可记录,但看不到。w软件的生产与硬件不同,在它的开发过程中没有明显的软件的生产与硬件不同,在它的开发过程中没有明显的制造过程。制造过程。w在软件的运行和使用期间,没有硬件那样的机械磨损,在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。老化问题。磨合磨合调整调整磨损磨损用坏用坏t失失效效率率硬、软件产品失效率曲线硬、软件产品失效率曲线信息工程大学电子技术学院信息工程大学电子技术学院软件的特
15、点(软件的特点(2)w软件的开发和运行常受到计算机系统的限制,对计算机软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性系统有着不同程度的依赖性w软件的开发至今尚未完全摆脱手工艺的开发方式。软件的开发至今尚未完全摆脱手工艺的开发方式。w软件本身是复杂的软件本身是复杂的w实际问题的复杂性实际问题的复杂性w程序逻辑结构的复杂性程序逻辑结构的复杂性 w软件成本相当昂贵。软件成本相当昂贵。w相当多的软件工作涉及到社会因素。相当多的软件工作涉及到社会因素。信息工程大学电子技术学院信息工程大学电子技术学院软件的特点(软件的特点(3)信息工程大学电子技术学院信息工程大学电子技术学院软件
16、的正确认识(软件的正确认识(1)w软件软件 程序程序 软件开发不是纯粹的个人行为软件开发不是纯粹的个人行为w软件从定义、开发、使用和维护,直到最终被废软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,称为生命周期。弃,要经历一个漫长的时期,称为生命周期。(1 1 1 1)定义阶段)定义阶段)定义阶段)定义阶段问题定问题定问题定问题定义义义义可行性研究可行性研究可行性研究可行性研究需求分析需求分析需求分析需求分析(2 2 2 2)开发阶段)开发阶段)开发阶段)开发阶段(3 3 3 3)维护)维护)维护)维护编码编码编码编码总体设计总体设计总体设计总体设计详细设计详细设计详细设计
17、详细设计测试测试测试测试信息工程大学电子技术学院信息工程大学电子技术学院软件的正确认识(软件的正确认识(2)0.050.050.050.05改改改改进进进进工工工工作作作作量量量量(人人人人.天天天天)需需需需求求求求分分分分析析析析详详详详细细细细设设设设计计计计编编编编码码码码集集集集成成成成测测测测试试试试系系系系统统统统测测测测试试试试现现现现场场场场结结结结构构构构设设设设计计计计 改正一个问题需要付出的代价改正一个问题需要付出的代价改正一个问题需要付出的代价改正一个问题需要付出的代价(越在早期代价越小)(越在早期代价越小)(越在早期代价越小)(越在早期代价越小)信息工程大学电子技术
18、学院信息工程大学电子技术学院解决软件危机的途径解决软件危机的途径w正确认识计算机软件:程序、数据及相关文挡的完整集正确认识计算机软件:程序、数据及相关文挡的完整集合。合。w充分认识到:软件开发不是个体劳动的神秘技巧,而是充分认识到:软件开发不是个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协同配合、共同一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。完成的工程项目。w推广使用在实践中总结出来的开发软件的成功的技术和推广使用在实践中总结出来的开发软件的成功的技术和方法,研究、探索更好、更有效的技术和方法。方法,研究、探索更好、更有效的技术和方法。w开发和使用更好的软件工具
19、开发和使用更好的软件工具w有必要的组织管理措施有必要的组织管理措施 软件工程是从管理和技术两方面研究如何更软件工程是从管理和技术两方面研究如何更好地开发和维护计算机软件的学科。好地开发和维护计算机软件的学科。信息工程大学电子技术学院信息工程大学电子技术学院1.1软件危机1.21.2软件工程软件工程1.31.3软件生命周期软件生命周期1.41.4软件过程软件过程主要内容主要内容信息工程大学电子技术学院信息工程大学电子技术学院基本概念基本概念w软件软件 软件由三部分组成:软件由三部分组成:程序:在运行时能提供所希望的功能和性能的指令集。程序:在运行时能提供所希望的功能和性能的指令集。数据:使程序能
20、够正确运行的数据结构。数据:使程序能够正确运行的数据结构。文档:描述程序研制过程、方法及使用的文档资料。文档:描述程序研制过程、方法及使用的文档资料。“软件就是程序软件就是程序”的观念是错误的!的观念是错误的!信息工程大学电子技术学院信息工程大学电子技术学院基本概念基本概念计算机应用发展计算机应用发展软件数量多软件数量多 规模大规模大个体化软件开发方法个体化软件开发方法软件维护困难软件维护困难软件危机软件危机软件工程软件工程软件成本高软件成本高 质量低质量低软件工程学诞生了!软件工程学诞生了!(1968 NATO1968 NATO)复杂性高复杂性高生产率低生产率低两种典型定义两种典型定义(19
21、68 NATO(1968 NATO、1993 IEEE1993 IEEE)信息工程大学电子技术学院信息工程大学电子技术学院基本概念基本概念人们普遍认为,软件工程具有下列本质特性:人们普遍认为,软件工程具有下列本质特性:n 软件工程关注大型程序的构造软件工程关注大型程序的构造n 软件工程的中心课题是控制复杂性软件工程的中心课题是控制复杂性n 软件经常变化软件经常变化n 开发软件的效率非常重要开发软件的效率非常重要n 和谐地合作是开发软件的关键和谐地合作是开发软件的关键n 软件必须有效地支持它的用户软件必须有效地支持它的用户n 在软件工程领域中,是由具有一种文化背景的人替具有另一种文在软件工程领域
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 工程学 概述
限制150内