实用软件工程 教学课件 ppt 作者 李龙澍1 第1章

上传人:w****i 文档编号:94484052 上传时间:2019-08-07 格式:PPT 页数:103 大小:449.50KB
返回 下载 相关 举报
实用软件工程 教学课件 ppt 作者 李龙澍1 第1章_第1页
第1页 / 共103页
实用软件工程 教学课件 ppt 作者 李龙澍1 第1章_第2页
第2页 / 共103页
实用软件工程 教学课件 ppt 作者 李龙澍1 第1章_第3页
第3页 / 共103页
实用软件工程 教学课件 ppt 作者 李龙澍1 第1章_第4页
第4页 / 共103页
实用软件工程 教学课件 ppt 作者 李龙澍1 第1章_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《实用软件工程 教学课件 ppt 作者 李龙澍1 第1章》由会员分享,可在线阅读,更多相关《实用软件工程 教学课件 ppt 作者 李龙澍1 第1章(103页珍藏版)》请在金锄头文库上搜索。

1、实用软件工程,第1章 软件工程概述,1.1 软件危机 1.2 软件危机 1.3 软件工程 1.4 软件工程方法学 1.5 软件过程 1.6 小结,1.1 软件危机,1.1.1 软件的发展过程 (1) 从1946年到60年代初,是计算机软件发展的初期,一般称为程序设计时期,其主要特征是程序生产方式为个体手工方式。 主要采用批处理技术,没有任何其它形式的文档资料保留下来,开发出的程序根本无法维护。,(2) 从20世纪60年代初到70年代初,是计算机软件发展的第二个时期,这个时期一般称为程序系统时期。,程序的规模已经很大,需要多人分工协作,软件的开发方式由“个体生产”发展到了“软件作坊”。可是“软件

2、作坊”基本上沿用了软件发展早期所形成的个体化的开发方式,软件的开发与维护费用以惊人的速度增加。许多软件产品根本不能维护,最终导致出现了严重的“软件危机”,,(3) 从20世纪70年代中期至80年代中期,是计算机软件发展的第三个时期,一般称为软件工程时期。软件的开发以工程化的思想为指导,用工程化的原则、方法和标准来开发和维护软件。,(4) 从20世纪80年代中期至今,面向对象方法学日益受到人们的重视,给软件产业带来了新的飞跃。这个时期一般称为面向对象时期,面向对象软件开发技术在迅速取代传统软件工程开发方法。,1.1.2 什么是软件 软件是计算机程序、程序使用的数据以及说明程序的各种文档的集合。,

3、软件(software)由三部分组成: (1) 可以在计算机上运行的程序(program)。 (2) 运行程序需要的数据(data)。 (3) 软件开发、维护、使用需要的各种文档(document)。,软件的基本组成如图1.1所示。,软件是一种特殊的产品,下面我们分析软件的一些特点: (1) 软件不是物理产品,软件是逻辑产品。 (2) 软件没有明显的制造过程。,(3) 软件在运行使用期间,没有像硬件那样的机械磨损、老化问题。 (4) 软件的开发和运行受到计算机系统的限制,对计算机系统环境有着不同程度的依赖性。,(5) 软件产品生产的成本主要是脑力劳动,在还未完全摆脱手工开发方式的情况下,大部分

4、产品是“定做”的。 (6) 软件本身是复杂的。,(7) 软件成本相当昂贵。 (8) 软件的推广应用涉及社会因素。,1.1.3 软件的分类 1.1.3.1 根据软件的功能进行分类 (1) 系统软件:是与计算机硬件紧密配合,使计算机各个部件与相关软件及数据协调、高效工作的软件。,(2) 支撑软件:它是协助用户开发软件的工具性软件,包括帮助程序员开发软件产品的工具和帮助系统管理员控制开发进程的工具。可分为以下几类。, 一般类型 支持需求分析 支持设计 支持实现 支持测试 支持管理 集成支撑软件,(3) 应用软件,1.1.3.2 根据软件的工作方式进行分类 (1) 实时处理软件 (2) 分时处理软件

5、(3) 交互式软件 (4) 批处理软件,1.1.3.3 根据软件的规模进行分类 根据开发软件所需的人力、时间以及完成的源程序大小,可划分为下述六种不同规模的软件。,(1) 微型软件:指一个人在几天之内完成的、自己编写的程序不超过500行语句的软件。,(2) 小型软件:指一个人在半年之内完成的、自己编写2干行以内的程序。,(3) 中型软件:5个人以内在一年左右时间里完成的,编写5干到5万行的程序。,(4) 大型软件:指10到20个人年(一个人年为一个人工作一年的工作量)完成,编写5万到10万行的程序。,(5) 甚大型软件:100至1000人参加,用4到5年时间完成,编写l00万行程序的软件项目。

6、,(6) 特大型软件:2000人到5000人参加,10年左右时间,编写1000万行以内的程序。弹道导弹防御系统能达到这个规模。,1.1.3.4 根据软件的服务对象进行分类 提供给用户的计算机软件有两种情况: (1) 定制软件 (2) 产品软件,1.2 软件危机,1968年北大西洋公约组织的计算机科学家在德国召开国际会议,把计算机软件的开发和维护过程中出现的一系列严重问题称为“软件危机”。,软件危机包括两个方面的问题:如何开发软件以满足用户对软件日益增长的需求;如何维护数量迅速增长的已有软件。,1.2.1 软件危机的表现,软件危机出现了。软件危机主要有下述一些表现。 (1) 软件功能与实际需求不

7、符。 (2) 软件开发生产率提高的速度远远不能满足用户需要。,(3) 软件价格昂贵。 (4) 软件产品的质量差。,(5) 对软件开发成本和进度的估计常常不准确。 (6) 软件文档资料通常既不完整也不合格。 (7) 软件的维护费用急剧上升。,1.2.2 产生软件危机的原因 (1) 软件缺乏“可见性”,在写出程序代码并在计算机上运行之前,软件开发过程的进展质量较难衡量,很难检验开发的正确性。,(2) 软件规模庞大,逻辑结构复杂。 (3) 开发和管理人员只重视设计程序而轻视用户的需求分析,导致最后研制出的软件产品无法满足用户的需求。,(4) 软件设计技术和管理技术落后,没有统一的软件质量管理规范。

8、(5) 在软件的开发与维护关系问题上存在错误的概念,重视开发,而轻视维护。,1.2.3 解决软件危机的方法 20世纪60年代后期出现了软件危机,北大两洋公约组织在德国提出了“软件工程”的概念,运用其它工程学的基本原理和方法,设计和管理软件生产。诞生了软件工程学,这是目前发现的解决软件危机唯有效的方法。,1.3 软件工程,1.3.1 什么是软件工程 软件工程有多种定义,概括地说:软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。它应用工程的概念、原理、技术和方法,应用科学的开发技术和管理方法来开发软件。,软件工程学的三个基本要素是:软件定义、开发、维护的方法;软件定义、开发、维护的

9、工具;软件定义、开发、维护中的管理措施。,软件工程具有以下本质特性: (1) 软件工程学研究如何高效率、高质量地建造大程序的方法。 (2) 把难解决的大问题化解成若干容易解决的小问题,并且让各个小问题之间保持简单的接口协议。,(3) 适应软件的易变特性 (4) 提高软件的开发效率 (5) 严格规定每个人的责任和互相通信的接口,(6) 要有效地支持用户 (7) 两种文化背景的统一,1.3.2 软件工程的目标 软件工程的目标是:提高软件产品的质量和软件开发效率,减少软件维护的难度。,要达到这个目标,必须注重考虑下面几个方面的问题: (1) 可修改性:允许对系统进行修改,而不增加系统的复杂性。,(2

10、) 有效性:软件系统能在一定的时间资源和空间资源环境下,完成规定的任务。,(3) 正确性:软件能够准确无误地执行用户需求的各种功能,满足用户要求的各种性能指标。,(4) 可靠性:有时也称为健壮性,就是在硬件、操作系统出现小故障,或者人为操作不当的情况下,不会导致软件系统失效。如对卫星导航系统,可靠性要求就特别高。,(5) 可理解性:包括两个方面的内容,一是软件系统结构清晰、容易理解,二是程序算法功能清晰,容易读懂。可理解性有助于控制软件系统的复杂性,提高软件的可维护性。,(6) 可重用性:软件中的某个部分可以在系统的多处重复使用,或者在多个系统中使用。,(7) 可适应性:体现软件在不同的硬件和

11、操作系统环境下的适应程度。,(8) 可移植性:体现了软件从一种计算机软件移动到另一种计算机环境下的难易程度。,(9) 可跟踪性:包括两个方面,一是可以根据软件开发的文档对设计过程进行正向跟踪或逆向跟踪;二是软件测试和维护过程中,对程序的执行进行跟踪,根据跟踪情况,分析程序执行的因果关系。,(10) 互操作性:多个软件相互通信,协作完成任务的能力。,1.3.3 软件工程的原则 软件开发过程中必须遵循下列软件工程原则。 (1) 抽象 (2) 信息隐蔽 (3) 模块化,(4) 局部化 (5) 一致性 (6) 完备性 (7) 可验证性,1.4 软件工程方法学,软件工程方法学包括方法、工具和过程三个方面

12、。方法是完成软件开发的技术方法;工具是开发软件的支撑环境;过程是完成开发软件各项任务的工作步骤。,软件生命周期方法学是传统的软件工程方法学,也称结构化方法学或数据流建模方法学。,1.4.1 软件生命周期方法学,软件生命周期方法学把软件开发和维护分成软件定义、软件开发和软件维护三个时期,每个时期又分成若干个阶段。 (1) 软件定义时期:确定软件开发必须完成的任务;论证软件的可行性;确定用户需求的详细功能和性能。这个时期可以划分为三个阶段:问题定义、可行性研究和需求分析。,(2) 软件开发时期:设计和实现软件的定义。软件开发时期包括四个阶段:总体设计、详细设计、编码及单元测试、综合测试。,(3)

13、软件维护时期:软件维护是对投入使用的软件的修改,实际上是对软件的一次重新定义和开发过程。,软件生命周期方法学把软件开发人员分为三个层次,高级开发人员是系统分析员,其次是软件工程师,最后是程序员,他们在不同的开发时期担负不同的角色。系统分析员在软件定义时期起主要作用,软件工程师和程序员是软件开发和维护时期的核心力量。,(1) 问题定义:在问题定义阶段,软件开发人员应该清楚:“要解决什么问题”。,(2) 可行性研究:知道了要解决的问题,在这个阶段应该清楚“用什么办法解决这个问题”,保证在技术上、实效上、法律上都是行得通的。,(3) 需求分析:确定软件的功能和性能。用户要要清楚开发出的软件系统能够做

14、什么;软件开发人员也应该清楚用户的具体要求是什么。,(4) 总体设计:设计软件的总体结构,将一个大系统按照功能设计成小模块,每个模块完成一个相对独立的小功能。总体设计有时也称概要设计。,(5) 详细设计:这个阶段还不是编写程序,是对每个模块设计具体的算法和数据结构,可以包括具体细节,类似于工程设计中的施工图纸。详细设计有时也称模块设计。,(6) 编码及单元测试:这个阶段的主要任务是根据详细设计的结果,用一种程序设计语言,编写正确的源程序,并且对每段程序进行严格测试。要求源程序容易理解、容易维护。,(7) 综合测试:通过测试使软件系统达到用户的要求。最基本的测试集成测试和验收测试。集成测试是在把

15、模块联结成系统的过程中,每联结若干个模块都进行必要的测试。验收测试是根据用户使用说明书,在用户的参与下对软件系统进行测试。,(8) 软件维护:软件投入运行后,通常有四类维护活动:改正性维护、适应性维护、完善性维护、预防性维护。改正性维护是纠正软件中的错误;适应性维护是修改软件让其适应计算机硬件(或操作系统)环境的变化;完善性维护是根据用户的要求改善或扩充功能;预防性维护是为将来的维护做准备。,1.4.2 面向对象方法学 面向对象技术是20世纪90年代计算机研究领域开始广泛应用的软件开发技术,它把数据和处理数据的算法封装在一起,称为对象。对象有是一种建立软件系统的基础结构。,面向对象方法学认为:

16、一切事物都是对象,任何软件都是由对象构成的,对象之间可以相互协作。,面向对象方法学具有下列特点: (1) 把数据和处理数据的操作封装在一起称为对象,对象是软件的基本模块。 (2) 把所有的对象被划分成类(class),类是对数据结构一致、操作一致的对象的定义。,(3) 按照父类(或称基类)与子类(或称派生类)的关系,组成层次结构。在类层次结构中子类可以继承父类中的数据和操作。 (4) 对象之间通过发送消息和接收消息互相联系。对象之间通过接口互相传递信息。,1.5 软件过程,1.5.1 瀑布模型 瀑布模型是基于软件生存周期的模型,它是传统软件工程的基础模型。其核心思想是按软件生命周期的8个阶段将问题化简,采用结构化的分析与设计方法,将逻辑实现与物理实现分开。,每项开发活动均应具有下述特征: (1) 上一项工作的结束条件是下一项工作的开始条件; (2) 上一项任务的输出文档是下一项任务的输入文档; (3) 每个阶段都要进行严格的测

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号