预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共45页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

软件工程关于本课程学习“软件工程”的目的和意义一、全球软件产业的现状、趋势与挑战一、全球软件产业的现状、趋势与挑战一、全球软件产业的现状、趋势与挑战TalentBeyondTechnology_WhatKindofTalentWeNeedforModernSoftwareDevelopment在微软流传着这样一个故事我国复合型软件人才匮乏,培养适应迅速变化的市场需求的复合型软件人才已是迫在眉睫。四、软件开发中的错误观点学习本课程涉及的主要内容和技术第一篇软件工程与软件过程第1章软件工程1.1软件危机60年代中期以前,是计算机系统发展的早期时代。从60年代中期到70年代中期,是计算机系统发展的第二代。计算机系统发展的第三代从20世纪70年代中期开始,并且跨越了整整10年。在计算机系统发展的第四代已经不再看重单台计算机和程序,人们感受到的是硬件和软件的综合效果。1.1.2软件工程的发展的四个重要阶段:软件工程的发展的四个重要阶段:1.第一代软件工程—传统的软件工程2.第二代软件工程—对象工程3.第三代软件工程—过程工程4.第四代软件工程—构件工程软件工程的发展的四个重要阶段:1、第一代软件工程—传统的软件工程2、第二代软件工程—对象工程3、第三代软件工程—过程工程4、第四代软件工程—构件工程软件工程的发展的四个重要阶段:1、第一代软件工程—传统的软件工程2、第二代软件工程—对象工程3、第三代软件工程—过程工程4、第四代软件工程—构件工程软件工程的发展的四个重要阶段:1、第一代软件工程—传统的软件工程2、第二代软件工程—对象工程3、第三代软件工程—过程工程4、第四代软件工程—构件工程软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广,研究的主要内容有以下几方面:1.1.3软件危机的含义软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。具体来说,软件危机主要有以下一些典型表现。·对软件开发成本和进度的估计常常很不准确。·用户对“已完成的”软件系统不满意的现象经常发生。·软件产品的质量往往靠不住。·软件常常是不可维护的。·软件通常没有适当的文档资料。·软件成本在计算机系统总成本中所占的比例逐年上升。·软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。以上列举的仅仅是软件危机的一些明显的表现,与软件开发和维护有关的问题远远不止这些。IBM公司的OS/360,共约100万条指令,花费了5000个人年;经费达数亿美圆,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。…”几个典型的由软件质量问题引发的事故几个典型的由软件质量问题引发的事故几个典型的由软件质量问题引发的事故几个典型的由软件质量问题引发的事故1.1.4产生软件危机的原因在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。与软件开发和维护有关的许多错误认识和作法的形成,可以归因于在计算机系统发展的早期阶段软件开发的个体化特点。错误的认识和作法主要表现为忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等。图1.1引入同一变动付出的代价随时间变化的趋势了解产生软件危机的原因,澄清错误认识,建立起关于软件开发和维护的正确概念,还仅仅是解决软件危机的开始,全面解决软件危机需要一系列综合措施。1.1.5消除软件危机的途径为了消除软件危机,首先应该对计算机软件有一个正确的认识。应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。应该开发和使用更好的软件工具。总之,为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。1.2软件工程1.2.2软件工程的基本原理1用分阶段的生命周期计划严格管理2坚持进行阶段评审3实行严格的产品控制4采用现代程序设计技术5结果应能清楚地审查6开发小组的人员应该少而精7承认不断改进软件工程实践的必要性1.2.3软件工程方法学通常把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称为范型(paradigm)。在软件工程范畴中,这两个词的含义基本相同。软件工程方法