软件工程 工业和信息化普通高等教育“十二五”规划教材 教学课件 ppt 作者 李爱萍 崔冬华 李东生 ch01

上传人:E**** 文档编号:89494237 上传时间:2019-05-25 格式:PPT 页数:43 大小:380.50KB
返回 下载 相关 举报
软件工程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  李爱萍 崔冬华 李东生 ch01_第1页
第1页 / 共43页
软件工程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  李爱萍 崔冬华 李东生 ch01_第2页
第2页 / 共43页
软件工程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  李爱萍 崔冬华 李东生 ch01_第3页
第3页 / 共43页
软件工程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  李爱萍 崔冬华 李东生 ch01_第4页
第4页 / 共43页
软件工程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  李爱萍 崔冬华 李东生 ch01_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《软件工程 工业和信息化普通高等教育“十二五”规划教材 教学课件 ppt 作者 李爱萍 崔冬华 李东生 ch01》由会员分享,可在线阅读,更多相关《软件工程 工业和信息化普通高等教育“十二五”规划教材 教学课件 ppt 作者 李爱萍 崔冬华 李东生 ch01(43页珍藏版)》请在金锄头文库上搜索。

1、2019年5月25日,第1页,第1章 概述,本章内容结构,本章引言 学习目标 教学内容 本章小结 思考和练习 课堂讨论,本章引言,本书将分成3篇,全面详细地讲述软件工程的知识。 第1篇按照生存周期模型详细阐述面向过程的软件工程; 第2篇介绍面向对象软件工程的分析、设计和实现; 第3篇则分别给出面向过程和面向对象软件工程队实验指导和案例。 “软件工程”一词是由北大西洋公约组织(North Atlantic Treaty Organization,NATO)的计算机科学家在联邦德国召开的国际会议上首次提出来的。产生软件工程这门学科的时代背景是“软件危机”。软件工程的发展和应用不仅缓和了软件危机,而

2、且促使一门新兴的工程学科诞生了。 本章将讲述软件、软件危机及软件工程的相关概念、历史发展和开发模型。,2019年5月25日,第2页,2019年5月25日,第3页,学习目标,掌握软件的定义、特点和分类 理解软件危机的定义、表现形式、产生原因及解决途径 理解和掌握软件工程的定义、目标、研究内容和基本原理,了解软件工程的发展史 理解和掌握软件过程和软件生存周期的相关概念和特点 了解不同软件开发模型的特点和应用范围 理解传统软件工程和面向对象软件工程的区别与联系,2019年5月25日,第4页,教学内容,1.1 软件和软件危机 1.2 软件工程 1.3 软件过程和软件生存周期 1.4 软件开发模型 1.

3、5 传统软件工程和面向对象软件工程 1.6 本章小结和习题,2019年5月25日,第5页,1.1 软件和软件危机,1.1.1 软件的定义、特点及分类 1.1.2 软件危机的定义及表现形式 1.1.3 软件危机的产生原因及解决途径,2019年5月25日,第6页,1.1.1 软件的定义、特点及分类,一、软件的定义 软件不是程序,而是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。 1983年IEEE为软件下的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。其中的方法和规则通常是在文档中说明并在程序中实现的。特别是当软件成为商品时,相关的文档资料是必不

4、可少的。没有相关文档,仅有程序是不能称为软件产品的。 程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。 文档则是软件开发活动的记录,主要供人们阅读,既可用于专业人员和用户之间的通信和交流,也可以用于软件开发过程的管理和运行阶段的维护。,2019年5月25日,第7页,1.1.1 软件的定义、特点及分类,二、软件的特点 软件是一种特殊的产品,与传统的工业产品相比,它具有以下一些独特的特点。 (1)软件是一种逻辑产品,而不是具体的物理实体,具有抽象性。 (2)软件产品的生产主要是开发研制,没有明显的制造过程。 (3)软件产品在使用过程中,不存在磨损、消耗、老化等问题 (4)

5、软件产品的开发主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是“定做的”,生产效率低。,2019年5月25日,第8页,1.1.1 软件的定义、特点及分类,二、软件的特点 软件是一种特殊的产品,与传统的工业产品相比,它具有以下一些独特的特点(续) (5)软件产品的成本相当昂贵,软件费用不断增加,软件的研制需要投入大量的人力、物力和资金,生产过程中还需对产品进行质量控制,对每件产品进行严格的检验。 (6)软件对硬件和环境有不同程度的依赖性,为了减少这种依赖性,在软件开发中提出了软件的可移植性问题。 (7)软件是复杂的。软件是人类有史以来生产的复杂度最高的工业产品,软件是一个庞大的逻辑系统。软

6、件开发,尤其是应用软件的开发常常涉及到其他领域的专门知识,这就对软件开发人员提出了很高的要求。,2019年5月25日,第9页,1.1.1 软件的定义、特点及分类,三、软件的分类 从计算机系统角度看,分为两大类:系统软件和应用软件。 从计算机软件用途来划分,分为:服务类、维护类和操作管理类。,2019年5月25日,第10页,1.1.2 软件危机的定义及表现形式,软件危机的定义 指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要包含了这样两方面的问题:一是如何开发软件以满足多软件日益增长的需求;二是如何维护数量不断增长的已有软件。 软件危机的典型表现形式 (1)对软件开发成本和研

7、制进度的估计常常很不精确。 (2)“已完成”的软件不能满足用户要求。 (3)软件产品质量差,可靠性得不到保证。 (4)软件产品可维护性差。 (5)软件成本在计算机系统总成本中所占的比例逐年上升。 (6)软件开发生产率提高的速度,远远跟不上计算机应用速度普及深入的趋势。,1.1.3 软件危机的产生原因及解决途径,产生原因 (1) 软件是计算机系统中的逻辑部件,软件产品往往规模庞大,结构复杂。 (2) 软件开发的管理困难。 (3) 软件开发费用不断增加,维护费用急剧上升,直接威胁计算机应用的扩大。 (4) 软件开发技术落后。 (5) 生产方式落后。 (6) 开发工具落后,生产效率提高缓慢。,201

8、9年5月25日,第11页,1.1.3 软件危机的产生原因及解决途径,解决途径 (1)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”的错误观念。 (2)要使用好的开发技术和方法,并且要不断研究探索更好更有效的技术和方法。尽快消除在计算机系统早期发展阶段形成的一些错误观念和作法。 (3)要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务。充分认识软件开发不是某种个体劳动的神秘技巧。 (4)应该开发和使用好的软件工具。,2019年5月25日,第12页,2019年5月25日,第13页,1.2 软件工程,1.2.1 软件工程的定义及目标 1.2.2 软件工程的研究内容和基本原理

9、 1.2.3 软件工程的发展史,2019年5月25日,第14页,1.2.1 软件工程的定义及目标,软件工程定义 软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发和维护软件。 1968年的定义 1993年IEEE给出的定义 软件工程的不同定义使用了不同的词句,强调的重点也有所差异,但是它的中心思想,是把软件当作一种工业产品,要求“采用工程化的原理和方法对软件进行计划、开发和维护。”宗旨是为了提高软件生产率、降低生产成本,以较小的代价获得高质量的软件产品。,2019年5月25日,第15页,1.2.1 软件工程的定义及目标,软件工程的目标 1)降低软件开发成本

10、; 2)满足用户要求的全部软件功能; 3)符合用户要求,令用户满意的软件性能; 4)具有较好的易用性、可重用性和可移植性; 5)较低的维护成本,较高的可靠性; 6)按合同要求完成开发任务,即使交付用户使用。,2019年5月25日,第16页,1.2.2 软件工程的研究内容和基本原理,软件工程的研究内容 软件工程的主要研究内容是指软件开发技术和软件开发过程管理两个方面。 在软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和技术。 在软件开发过程管理方面主要研究软件工程经济学和软件管理学。 软件工程的基本原理 用分阶段的生存周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用

11、现代程序设计技术 结果应能清楚地审查 开发小组人员应该少而精 承认不断改进软件工程实践的必要性,2019年5月25日,第17页,1.2.3 软件工程的发展史,1. 程序设计时代 1946年到1956年为程序设计年代 2. 程序系统时代 1956年到1968年为程序系统时代,或者程序+说明时代 3 软件工程时代 1968年至今为软件工程年代,或者程序+文档时代。,2019年5月25日,第18页,1.3 软件工程和软件生存周期,1.3.1 软件过程 1.3.2 软件生存周期,2019年5月25日,第19页,1.3.1 软件过程,ISO 9000把软件过程定义为:“把输入转化为输出的一组彼此相关的资

12、源和活动”。 软件过程是为了获得高质量所需要完成的一系列任务的框架,它规定了完成多项任务的工作步骤。其中框架由几个重要过程组成,包括用来获取、供应、开发、操作和维护软件所用的基本的、一致的要求。各种组织和开发机构可以根据具体情况进行选择和取舍。 软件开发过程是把用户要求转化为软件需求,把软件需求转化为设计,用代码来实现设计,对代码进行测试,完成各阶段的文档编制并确认软件可以投入运行使用的过程。,2019年5月25日,第20页,1.3.2 软件生存周期,软件生存周期是借用工程中产品生存周期的概念而得来的,是指某一软件项目被提出来并着手实现开始直到该软件报废或停止使用为止。 软件的生存周期一般分为

13、软件计划、软件开发和软件运行三个时期。,2019年5月25日,第21页,1.3.2 软件生存周期,软件计划时期 (1)问题定义 (2)可行性研究 软件开发时期 (1)需求分析 (2)概要设计 (3)详细设计 (4)编码 (5)测试 软件运行维护时期,2019年5月25日,第22页,1.4 软件开发模型,1.4.1 瀑布模型 1.4.2 快速原型模型 1.4.3 增量模型 1.4.4 螺旋模型 1.4.5 喷泉模型 1.4.6 基于构件的开发模型 1.4.7 统一过程模型 1.4.8 基于形式化的模型,模型是为了理解事物而对事物做出的一种抽象。 建摸是软件工程最常使用的一种技术。 所谓软件开发模

14、型,就是为整个软件期建立的模型。,2019年5月25日,第23页,1.4.1 瀑布模型,瀑布模型也称生存周期模型或线性顺序模型,是WRoyce于1970年首先提出来的。这种模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型,包括问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试和维护。 瀑布模型规定了由前至后、相互衔接的固定次序,恰如奔流不息拾级而下的瀑布。 在20世纪80年代之前,瀑布模型一直是唯一被广泛采用的生存周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。而且是以文档为驱动,适合于需求很明确的软

15、件项目开发的模型。,2019年5月25日,第24页,1.4.1 瀑布模型,图1.2 瀑布模型各阶段的相互关系,2019年5月25日,第25页,1.4.1 瀑布模型,瀑布模型的特点 (1)阶段的顺序性和依赖性:首先必须等前一阶段的工作完成之后,才能开始后一阶段的工作;其次前一阶段的输出文档就是后一阶段的输入文档。 (2)推迟实现的观点 (3)质量保证的观点: 每一个阶段都必须完成所规定的相应文档; 每一个阶段结束之前都必须对已完成的文档进行评审 (4)存在的问题:是一种理想的线性开发模式,缺乏灵活性。特别是无法解决软件需求不明确或不准确的问题。,2019年5月25日,第26页,1.4.2 快速原

16、型模型,主要思想:首先快速建立一个能够反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践让用户了解未来目标系统的概貌,以便判断哪些功能是符合需要的,哪些方面需要改进,用户会提出许多改进意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用,这样反复改进,最终建立完全符合用户需求的新系统。,2019年5月25日,第27页,1.4.2 快速原型模型,图1.3 快速原型模型法生存期模型,2019年5月25日,第28页,1.4.3 增量模型,增量模型也称为渐增模型,是瀑布模型的顺序特征和快速原型法的迭代特征相结合的产物, 是一种非整体开发的模型。 软件在模型中是“逐渐”开发出来的,把软件产品作为一系列的增量构件来设计、编码、组装和测试。每个构件由多个相互作用的模型构成,并且能够完成特定的功能。开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。,2019年5月25日,第29页,1.4.3 增量模型,图1.4 增量模型,构件1: 构件2 : 构件n:,2019年5月25日,第30页,1.4.4 螺旋模型,螺旋模型加入了瀑布模型与增

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

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

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