收藏 分享(赏)

软件工程 - 1.ppt

上传人:杨桃文库 文档编号:4700913 上传时间:2019-01-08 格式:PPT 页数:30 大小:108KB
下载 相关 举报
软件工程 - 1.ppt_第1页
第1页 / 共30页
软件工程 - 1.ppt_第2页
第2页 / 共30页
软件工程 - 1.ppt_第3页
第3页 / 共30页
软件工程 - 1.ppt_第4页
第4页 / 共30页
软件工程 - 1.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、软件工程,任课教师:张遵濂二零零四年二月第一讲,SoftWare Academy,软件工程,Chap.1 绪论,一、引言每当我们回顾20世纪的技术进展,都会一致认同信息技术是发展最快的技术之一,特别是信息技术应用的渗透性,几乎在各个领域中都可以看到它的身影,从而使我们的世界变的更加精彩。软件作为信息技术的灵魂,更是扮演了极其重要的角色,因为在现代社会中已经很难想象没有软件会是怎样?所以软件产业也正在全球经济中占据越来越重要的地位。而软件工程已经成为软件产业健康发展的关键技术,那么它的发展又是如何呢?,一、引言,自1968年提出“软件工程”这个词以来,已经历了30多年的时间,那时为了解决软件危机

2、,人们希望通过其他工程的技术方法和管理手段,将软件的开发纳入工程化的轨道。在70年代取得了大量的研究成果的基础上,已基本形成了软件工程的概念、框架、方法和手段,成为软件工程的第一代,我们称之为传统软件工程。,一、引言,20世纪80年代以来,面向对象的方法与技术已受到广泛的重视,80年代出现的smalltalk-80标志着面向对象程序设计进入了实用阶段,80年代中到90年代,研究的重点转移到面向对象的分析与设计,从而演化成一种完整的软件开发方法和系统的技术体系,成为软件工程的第二代,有不少人称之为对象工程,一、引言,到了80年代中期,人们在研究和实践中发现,为了提高软件生产率,并使软件质量得到保

3、证,其关键在于软件开发和维护中的管理和支持能力,并认识到最关键的是“软件过程”,因此,1984年开始掀起了“软件过程运动”,从而逐步形成软件过程工程,并成为软件工程的第三代。,一、引言,进入90年代之后,软件工程的一个重要进展就是基于构件的开发方法。为了提高软件生产力,不草率地开发应用程序,则要尽可能的利用可复用的构件,组装成新的应用软件系统。随着Internet技术的飞速发展,大量的分布式处理系统需要开发,这种方法的重要性也日益显露出来,从而成为软件工程的第四代,也有不少人称之为构件工程。,一、引言,任何事物只要停滞不前就是消亡的开始。软件工程至今还在不断发展,无论是构件工程、过程工程以及对

4、象工程都有不少新的进展,即使是传统软件工程中的一些基本概念、框架,随着技术的进步也在发生不少新的演变。总之,软件工程代与代之间并没有鸿沟,他们不仅有交叉重叠,也有携手并进。这种说法只是为了阐述软件工程的迅速发展,从不同的角度来研究和实践而已,并没有严格的含义。不管怎样论述,软件工程是一门处于前沿地位的重要学科,需要我们认真地研究和细心的学习,也需要我们在技术实践中不断创新,并做出应有贡献。,一、引言,“软件工程”是一门重要的专业课,是核心课之一。通过学习这门课后,首先要树立起牢固的软件工程意识,并且要掌握软件开发、维护和管理的原理、方法、工具、环境和标准。教材主要采用武汉大学出版社出版的软件工

5、程原理与应用作者:陈世鸿、朱福喜、黄水松、陈磊等四人课时安排:每周六节,共九周,五十学时。考核方式:笔试占70%、习题与作业占30%,二、软件与软件危机,程序是指源程序代码或机器可直接执行的程序代码,而软件是指程序加上开发、使用和维护该程序所需要的全部文档。软件的特点 软件是逻辑产品而不是物理产品。 软件开发与硬件开发相比,更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。,二、软件与软件危机 软件的特点,软件开发成功之后,只需对原版进行复制即可。但是,软件在使用过程中的维护工作却比硬件复杂的多。 由于软件是逻辑的,而不是物理的所以软件不会磨损和老化。可概括为软件产品具有抽象性、逻辑性

6、、非实物性等特点。,二、软件与软件危机,软件的分类系统软件 实时软件 嵌入式软件 科学和工程计算软件 事物处理软件 人工智能软件 个人计算机软件 CASE工具软件,二、软件与软件危机 软件的发展,软件的发展从20世纪40年代第一台电子计算机问世以来,软件的发展可以划分为四个阶段:第一阶段 20世纪50年代至20世纪60 年代初的十余年第二阶段 20世纪60年代中期至20世纪 70年代末期第三阶段 20世纪70年代中期至20世纪80年代末期第四阶段 从20世纪80年代末期开始,二、软件与软件危机 软件的发展,也可概括为三个时期:程序设计语言兴起时期结构化程序设计时期软件工程与软件开发环境时期,二

7、、软件与软件危机 软件危机,软件危机20世纪60年代末至20世纪70年代初,“软件危机”一词在计算机界广为流传。由于软件项目的规模和复杂程度不断增大,人们在大型软件项目开发面前显得力不从心,遇到了许多困难,一些公司或团体承担的大型软件开发项目预算经常超支,软件交付时间经常延迟,软件质量差,维护困难,在软件维护过程中很容易引起新的错误,软件的可移植性差,两个类似的软件很少能够重用等等。,二、软件与软件危机 出现软件危机的原因,出现软件危机的原因:用户对软件需求的描述不精确,可能有遗漏,有二义性,有错误软件开发人员对用户需求的理解与用户的本来愿望有差异。大型软件项目需要组织一定的人力共同完成,多数

8、管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。 缺乏有力的方法学和工具方面的支持,过分地依赖程序开发人员在软件开发过程中的技巧和创造性,二、软件与软件危机 出现软件危机的原因及克服途径,软件产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。克服危机的途径人们在认真的分析了软件危机的原因之后,开始探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理、维护和更新。于是,计算机科学技术的一个新领域“软件工程”诞生了。,三、软件工程定义,P.wegner和Boehm:科学知识在设计和构造计算机程序,以及开发、运作

9、和维护这些程序所要求的有关文档编制中的实际应用。F.L.Bauer:为了经济的获得软件,这个软件是可靠的并且能在实在的计算机上工作,所需要的健全的工程原理(方法)的确立和使用。1983年IEEE(国际电气与电子工程师协会)的软件工程术语汇编中,将软件工程定义为:对软件开发、运作、维护、退役的系统研究方法,三、软件工程定义,1990年新版的IEEE软件工程术语汇编,又将定义更改为:对软件开发、运作、维护的系统化的、有纪律的可定量的方法之应用,即是对软件的工程化应用从以上对软件工程的不同定义中,我们可以看到对具体内容理解是逐步深入的。发展到今天,软件工程已是一门交叉性学科,它是解决软件工程问题的工

10、程,对她的理解不应是静止的与孤立的。软件工程是应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法来创建软件,从而达到提高质量,降低成本的目的。,三、软件工程定义,其中计算机科学和数学用于构造模型、分析算法,工程科学用于制定规范、明确风范(paradigm)、评估成本、确定权衡,管理科学用于进度、资源、质量、成本等的管理。软件工程的目标是明确的,就是研制开发与生产出具有良好的软件质量和费用合算的产品。费用合算是指软件开发运行的整个开销能满足用户要求的程度,软件质量是指软件能满足明确的和隐含的需求能力的有关特征和特性的总和。,三、软件工程定义,软件质量可用六个特性来评价,即功能性,可靠

11、性,易使用性,效率,维护性,易移植性。软件工程的基础是一些指导性的原则,到目前为止已提出了四条基本原则:其一,必须认识软件需求的变动性,并采取适当措施来保证结果产品能忠实地满足用户要求,在软件设计中通常要考虑模块化、抽象与信息隐藏、局部化、一致性等原则。其二,稳妥的设计方法大大的方便软件开发,以达到软件工程的目标。软件工具与环境对软件设计的支持来说颇为重要。,三、软件工程定义 四条基本原则,其三,软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用。其四,有效的软件工程只能在对软件过程进行有效管理的情况下才能实现。10年前,软件工程的基本原则是抽象、模块化、清晰的结构、精确的设计

12、规格说明(规约),而今天的认识已有了很大的变化,从而更证实了软件工程学科是随着科学技术的发展而不断发展、完善的。,四、软件工程与一般工程的差异,软件工程是一门交叉性学科,又是工程科学家族中的新成员。直至今天,我们还不能说软件工程学科已经成熟。那么,软件工程与一般工程的差异表现在哪些方面呢? 1.软件是逻辑产品而不是实物产品,可以粗略的说软件不是有形产品,磁盘、集成电路块只是软件的载体。这一事实就意味着费用集中在研制开发上面而不是生产上。当然,由于是逻辑产品,软件就不会用坏、磨损、老化,而且可以不断的改进、优化,其可靠性是由逻辑性所确定的。,四、软件工程与一般工程的差异,开发软件在许多方面更象进

13、行数学证明,可是软件产品的评价却主要决定于他们在问题求解中是否有用 ,而不是决定与抽象的正确性判定标准。换句话说,开发软件产品时主要使用的是工程标准,而不是数学标准。2.由于软件是逻辑产品,使得它的功能只能依赖于硬件和软件的运行环境以及人们对它的操作,才能得以体现。软件与硬件的密切相关程度是一般工程所没有的,3.对软件产品的要求比一般有形产品来得复,四、软件工程与一般工程的差异,杂。其一,软件产品要完成的多种多样功能,用户难以清晰、准确的表达。其二,对软件产品的要求,如可靠性、易移植性、易使用性等等是隐含的,也是难以表达的,而且也缺少度量的具体标准,和有形产品的质量检验的精度相距甚远。其三,软

14、件设计不仅仅涉及到技术复杂性,也还涉及到管理复杂性。4.在软件设计中存在的复杂性,引起的软件特征包括四方面:其一,功能的多样性。其二,实现的多样性。其三,能见度低。其四,软件结,四、软件工程与一般工程的差异,构的合理性差。前二方面属于技术复杂性,后二方面属于管理复杂性。 5.任何一种工程,在其年青时代总是人工密集的,而到其成熟时期则成为资金密集的。但是软件工程也有它自己的特点,尽管今后可能有许多活动可以自动化,但软件的资金密集程度终究会比其他工程学科中的资金密集程度包含更多的人的成分,可以说软件工程是智力密集。因此,它的知识产权保护就显得极为重要,软件的价值也会越来越值钱,从而逐步体现出它应有

15、的价值。,五、软件生存周期,软件工程是按工程化的方式开发和管理软件,其突出特点是把软件的开发过程分为不同阶段,软件的生存过程通常分为如下六个阶段:1.软件计划 2.软件需求分析3.软件设计4.软件编码5.软件测试6.软件维护,五、软件生存周期,单元测试 25%,编码20%,设计15%,综合测试20%,分析设计20%,开发个阶段百分比图,开发33%,维护67%,开发与维护所占百分比,五、软件生存周期,五、软件生存周期,软件计划,需求分析,软件设计,软件编码,软件测试,软件维护,软件生存期瀑布模型,五、软件生存周期,软件计划,需求分析,软件设计,软件编码,软件测试,软件维护,计划任务书,需求规格书,设计说明书,程序清单,测试报告,功能,性能,及系统环境变化,软件项目开发工作流程(瀑布模型),(完),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报