软件工程软件工程学概述.ppt_第1页
软件工程软件工程学概述.ppt_第2页
软件工程软件工程学概述.ppt_第3页
软件工程软件工程学概述.ppt_第4页
软件工程软件工程学概述.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

00:39,1.2 软件危机,1.3 软件工程,1.4 软件生命周期,1.5 软件过程,1.1 软件,00:39,1.1 软件 软件:程序以及开发、使用和维护程序所需要的所有文档。 软件:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。(1983 IEEE),Institute of Electrical and Electronic Engineers,(软件程序文档数据) 软件与程序的主要区别是: 规模庞大、复杂度高,00:39,1.2 软件危机 1.2.1 软件危机介绍 1.软件危机 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 软件萧条(software depression) 软件困扰(software affliction),00:39,2.软件危机的典型表现 (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有合适的文档资料 (6)软件成本在计算机系统总成本中所占比例逐年上升; (7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。,00:39,1.2.2 软件危机产生的原因 1.软件本身的特点 (1)软件是逻辑部件而不是物理部件,缺乏“可见性”,管理和控制软件开发过程相当困难; (2)软件维护较难; (3)软件规模庞大。 2.软件开发与维护的方法不正确 (1)忽视需求分析 (2)轻视软件维护,00:39,1.2.3 消除软件危机的途径 1.应该对计算机软件有一个正确的认识 软件程序文档数据 2.必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 3.应该开发和使用更好的软件工具,00:39,1.3 软件工程 提出:1968年 NATO 联邦德国 1.3.1 软件工程介绍 1.软件工程 (1)软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。,1968年第一届NATO会议提出,(2)软件工程是:a把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;b研究a中提到的途径。,1993年IEEE提出,00:39,(3)软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前呢能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 2.软件工程的特性 (1)软件工程关注于大型程序的构造 (2)软件工程的中心课题是控制复杂性 (3)软件经常变化 (4)开发软件的效率非常重要 (5)和谐地合作是开发软件的关键 (6)软件必须有效地支持它的用户 (7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。,00:39,1.3.2 软件工程的基本原理 1.用分阶段的生命周期计划严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查 6.开发小组的人员应该少而精 7.认不断改进软件工程实践的必要性,00:39,1.3.3 软件工程方法学 软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。 管理:是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。 方法学:在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。 软件工程方法学的要素: 方法 工具 过程 方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题。,00:39,工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境。,如果把各个阶段使用的软件工具有机地集合称一个整体,支持软件卡发的全过程,则称为软件工程支撑环境。,过程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。,00:39,1.传统方法学 传统方法学也称为生命周期方法学或结构化范型。 采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。 前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常是使前一阶段提出的解决更进一步具体化,加进了更多的实现细节。,00:39,2.面向对象方法学 面向对象方法学把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。 要点: (1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。 (2)把所有对象都划分成类(class)。 (3)按照父类(基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统(类等级)。 (4)对象彼此间仅能通过发送消息相互联系。,00:39,1.4 软件生命周期,软件定义,软件开发,运行维护,确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。,具体设计和实现在前一个时期定义的软件。,使软件持久地满足用户的需要,00:39,软件生命周期各个阶段的基本任务 1.问题定义 要解决的问题是什么? 2.可行性研究 对于上一个阶段所确定的问题有行的通的解决办法吗? 3.需求分析 为了解决这个问题,目标系统必须做什么? 4.总体设计 概括地说,应该怎样实现目标系统? 5.详细设计 应该怎样具体地实现这个系统呢?,00:39,6.编码和单元测试 写出正确的容易理解、容易维护的程序模块。 7.综合测试 通过各种类型的测试使软件达到预定的要求。 8.软件维护 通过各种必要的维护活动使系统持久地满足用户的需要。,改正性维护:诊断和改正在使用过程中发现的软件错误。 适应性维护:修改软件以适应环境的变化。 完善性维护:根据用户的要求改进或扩充软件使它更完善。 预防性维护:修改软件为将来的维护活动预先做准备。,00:39,1.5 软件过程 是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 1.5.1 瀑布模型,00:39,1.瀑布模型的特点 (1)阶段间具有顺序性和依赖性 a.必须等前一阶段的工作完成之后,才能开始后一阶段的工作; b.前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。 (2)推迟实现的观点 (3)质量保证的观点 a.每一阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务; b.每一阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。,00:39,实际的瀑布模型,00:39,2.瀑布模型的优点 (1)可强迫开发人员采用规范的方法; (2)严格地规定了每个阶段必须提交的文档; (3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 3.瀑布模型的缺点 瀑布模型由文档驱动是它的一个主要缺点,很可能导致最终开发出的软件产品不能真正满足用户的需求。,00:39,1.5.2 快速原型模型 是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。,00:39,快速原型模型的优点: (1)有助于保证用户的真实需求得到满足; (2)不带反馈环,软件产品开发基本上是线性顺序进行的。,00:39,1.5.3 增量模型,00:39,增量模型的优点: (1)能在较短时间内向用户提交可完成部分工作的产品; (2)逐步增加产品功能可以使用户有较充裕的时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论