实用软件工程教程 教学课件 作者 陈雄峰第1章 软件工程概述

举报
资源描述
实用软件工程教程实用软件工程教程陈雄峰陈雄峰F总学时:51学时(讲授/理论51学时,上机/课外实践30学时)F先修课程:程序设计语言,数据结构,离散数学,数据库原理,操作系统等F教学方式教学方式:授课课程设计(课外):授课课程设计(课外)F(一)本课程地位、性质和任务F软件工程是必修课,计算机科学的一个重要分支,软件工程通常包括软件开发方法学,软件经济学,软件管理和支撑环境等方面的内容。主要讲述建造软件系统的方法,技术,流程,工具,规范等。即通过研究新的软件开发方法,改进程序结构,革新软件生产工具和生产方式,以及关于软件可靠性技术的研究,更有效更经济地开发软件产品,促进软件生产的过程化和软件产品的商品化。F是为了使学生掌握软件工程的基本概念和基础理论知识,达到熟练地运用各种实用开发方法和基本技术方法;了解软件工程各领域的发展动向;从事各种类型软件项目的工程化开发。是为了培养具有独立工作能力的高素质高水平的软件人才。F(二)课程教学的基本要求F 本课程要求学生通过学习达到如下要求:F (1)掌握软件工程的基本概念,基本原理,基本方法和基本实现技术。F (2)能运用软件工程的基本技术方法和开发上具,独立承当软件项目开发,设计和管理。F (3)了解本领域出现的新概念,新技术和新方法,达到进一步提高自己的理论水平和实践能力。F(4)了解软件开发过程应遵循的流程,准则,标准和规范。第一部分第一部分第一部分第一部分 软件工程基础软件工程基础软件工程基础软件工程基础 (1414章)章)第二部分第二部分第二部分第二部分 软件工程过程与方法(软件工程过程与方法(软件工程过程与方法(软件工程过程与方法(510510章)章)章)章)实用软件工程教程实用软件工程教程第一部分 软件工程基础 第第1 1章章 软件工程概述软件工程概述 F教学要点:教学要点:本章首先介绍软件工程产生本章首先介绍软件工程产生的背景、软件的基本概念、软件工程的的背景、软件的基本概念、软件工程的定义及其要素,而后围绕软件工程中的定义及其要素,而后围绕软件工程中的过程、方法和工具三要素进一步介绍软过程、方法和工具三要素进一步介绍软件过程与软件生命周期、软件工程方法件过程与软件生命周期、软件工程方法学和软件开发工具与环境的主要含义,学和软件开发工具与环境的主要含义,以使学习者对软件工程有一个较全面的以使学习者对软件工程有一个较全面的基本认识和和理解。基本认识和和理解。F重点掌握:重点掌握:软件、软件三要素和软件工软件、软件三要素和软件工程化的含义。程化的含义。第一部分 软件工程基础 第第1 1章章 软件工程概述软件工程概述1.1 1.1 软件工程产生背景软件工程产生背景软件工程产生背景软件工程产生背景软件软件软件软件由计算机由计算机由计算机由计算机程序程序程序程序、数据数据数据数据及及及及文档文档文档文档组成。组成。组成。组成。软件是当它被执行时提供所希望功能和性能的计算机程序,软件是当它被执行时提供所希望功能和性能的计算机程序,软件是当它被执行时提供所希望功能和性能的计算机程序,软件是当它被执行时提供所希望功能和性能的计算机程序,软件是当它被执行时提供所希望功能和性能的计算机程序,软件是当它被执行时提供所希望功能和性能的计算机程序,以及使得程序能够适当地操作信息的数据结构和描述程序的以及使得程序能够适当地操作信息的数据结构和描述程序的以及使得程序能够适当地操作信息的数据结构和描述程序的以及使得程序能够适当地操作信息的数据结构和描述程序的以及使得程序能够适当地操作信息的数据结构和描述程序的以及使得程序能够适当地操作信息的数据结构和描述程序的操作使用的文档。操作使用的文档。操作使用的文档。操作使用的文档。操作使用的文档。操作使用的文档。软件软件软件软件与与与与硬件、数据库、人、过程硬件、数据库、人、过程硬件、数据库、人、过程硬件、数据库、人、过程等共同等共同等共同等共同构成构成构成构成计算机系统计算机系统计算机系统计算机系统。在软件开发过程中出现了一些问题,通在软件开发过程中出现了一些问题,通在软件开发过程中出现了一些问题,通在软件开发过程中出现了一些问题,通常统称为常统称为常统称为常统称为软件危机软件危机软件危机软件危机。1.1 软件工程产生背景软件工程产生背景 1968年由年由NATO(北大西洋公约组织北大西洋公约组织)在德在德国国Garmish召开的学术会议上,召开的学术会议上,Feitz Bauer首先首先提出了提出了“软件工程软件工程”概念。概念。1.1.11.1.1软件特点及分类软件特点及分类1.软件的特点软件的特点n n抽象性抽象性n n软件生产无明显制造过程软件生产无明显制造过程n n无磨损性无磨损性n n对计算机硬件依赖性对计算机硬件依赖性n n软件的手工开发方式软件的手工开发方式n n软件本身复杂性软件本身复杂性n n软件的高成本软件的高成本n n信息的信息的内容和确定性内容和确定性决定了一个决定了一个 软件应用软件应用的特性。的特性。n n软件种类可以从软件种类可以从六个方面六个方面进行划分进行划分:uu按功能分类按功能分类按功能分类按功能分类应用软件应用软件应用软件应用软件系统软件系统软件系统软件系统软件支撑软件支撑软件支撑软件支撑软件2.2.软件的分类软件的分类uu按规模分类按规模分类 类别类别参加人数参加人数开开发发周期周期规规模(源代模(源代码码行数)行数)微型微型1 11 14 4周周0.5k0.5k小型小型1 11 16 6月月1 12k2k中型中型2 25 51 12 2年年5 550k50k大型大型5 520202 23 3年年5050100k100k甚大型甚大型100100100010004 45 5年年1M1M极大型极大型20002000500050005 51010年年1M1M10M10Muu按工作方式分类按工作方式分类 分时软件分时软件 实时软件实时软件 交互式软件交互式软件 批处理式软件批处理式软件uu按服务对象分类按服务对象分类 项目软件项目软件 产品软件产品软件uu按使用频度分类按使用频度分类 一次性使用软件一次性使用软件 频繁使用软件频繁使用软件uu按失效影响分类按失效影响分类 高可靠性软件高可靠性软件 一般可靠性软件一般可靠性软件。每一类软件在管理方面要求程度不同每一类软件在管理方面要求程度不同每一类软件在管理方面要求程度不同每一类软件在管理方面要求程度不同 1.1.2 1.1.2 软件危机软件危机 然而然而,要成功开发一个软件并不容易要成功开发一个软件并不容易31%31%53%53%16%16%成功不成功但可以改正完全失败成功的标准成功的标准:s用户在用户在用用s用户可很容易做完要做的事用户可很容易做完要做的事失败软件的最大问题:开发人员写出的东西达不到用开发人员写出的东西达不到用户要求户要求(人的问题人的问题.技术问题技术问题)。软件的发展阶段软件的发展阶段 早期早期 第二阶段第二阶段 第三阶段第三阶段 第四阶段第四阶段面向批处理面向批处理 多用户多用户 分布式系统分布式系统 强大的桌面系统强大的桌面系统有限的分布有限的分布 实时实时 嵌入嵌入“智能智能”面向对象技面向对象技术术自定义软件自定义软件 数据库数据库 低成本硬件低成本硬件 专家系专家系统 软件产品软件产品 消费者的影响 人工神经网络人工神经网络 并行计算并行计算 网络计算机网络计算机195019601970198019902000软件开发过程中软件开发过程中出现的问题出现的问题统称为统称为软件危机软件危机。软件危机的主要特征软件危机的主要特征F 软件开发周期大大超过规定日期软件开发周期大大超过规定日期;F 软件开发成本严重超标软件开发成本严重超标;F 软件质量难于保证。软件质量难于保证。产生软件危机的主要原因:产生软件危机的主要原因:F软件本身的复杂性。软件本身的复杂性。F开发过程的随意性。开发过程的随意性。F复杂性举例复杂性举例:Windows9595有有10001000万行万行代码代码 Windows20002000有有50005000万行万行代码代码Exchange2000和和 Windows20002000开发人员结构开发人员结构Exchange2000Windows20002000项目经理项目经理25人人约约250人人开发人员开发人员140人人约约1700人人测试人员测试人员350人人约约3200人人生产率举例:生产率举例:改正一个问题需付出的代价改正一个问题需付出的代价需需求求分分析析结结构构设设计计详详细细设设计计编编码码集集成成测测试试系系统统测测试试现现场场改正改正一个一个问题问题的估的估计费计费用用改正改正一个一个问题问题估计估计的工的工作量作量202020020020002000100010005.05.02.52.50.050.050.50.5(美元美元)(人天人天)处在十字路口的处在十字路口的中国软件产中国软件产业业F主权大国必须建立基于自主技术的、完主权大国必须建立基于自主技术的、完整的软件产业体系。整的软件产业体系。软件本国提供率:中国软件本国提供率:中国1/31/3左右,美国左右,美国97%97%F“印度模式印度模式”还是还是“中国模式中国模式”F 软件人才结构不合理,软件人才结构不合理,缺乏中高级软件缺乏中高级软件人才人才,软件人员缺乏软件工程化的概念。软件人员缺乏软件工程化的概念。解决软件危机的解决软件危机的解决软件危机的解决软件危机的主要途径主要途径主要途径主要途径是是是是软件工软件工软件工软件工程化程化程化程化,即把软件工程的理论和方法,即把软件工程的理论和方法,即把软件工程的理论和方法,即把软件工程的理论和方法有计划有步骤地应用于软件开发的有计划有步骤地应用于软件开发的有计划有步骤地应用于软件开发的有计划有步骤地应用于软件开发的过程中。过程中。过程中。过程中。也就是也就是也就是也就是为什么要学为什么要学为什么要学为什么要学软件工程?软件工程?软件工程?软件工程?1.2 软件工程的要素软件工程的要素 1.2.1 1.2.1 软件工程的定义软件工程的定义(1)Fritz Bauer(1)Fritz Bauer在在NATONATO会议上给出的会议上给出的定义:定义:“软件工程是为了软件工程是为了经济地经济地获得获得可靠的可靠的和能在实际机器上高效运行的软件而确和能在实际机器上高效运行的软件而确立和使用的立和使用的健全的工程原理(方法)。健全的工程原理(方法)。”1.2.1 1.2.1 软件工程的定义软件工程的定义(2)IEEE2)IEEE【IEE83】给出的给出的软软件工程件工程定义:定义:“软件工程是软件工程是开发、运行、开发、运行、维护和修复维护和修复软件的软件的系统方法系统方法。”1.2.1 1.2.1 软件工程的定义软件工程的定义(3)IEEE3)IEEE【IEE93】给出了一个更给出了一个更加综合的定义:加综合的定义:“将将系统化的、规范的、可度系统化的、规范的、可度量的方法量的方法应用于软件的开发、运应用于软件的开发、运行和维护的行和维护的过程过程,即将,即将工程化工程化应应用于软件中用于软件中。”1.2.1 1.2.1 软件工程的定义软件工程的定义 (4)4)计算机科学技术百科全书计算机科学技术百科全书中的定中的定义:义:软件工程是应用软件工程是应用计算机科学、数学计算机科学、数学及管理科学及管理科学等原理开发软件的工程。它等原理开发软件的工程。它借鉴传统工程借鉴传统工程的原则、方法,以的原则、方法,以提高质提高质量、降低成本量、降低成本为目的。为目的。软件工程定义软件工程定义的要点的要点软件工程是一门交叉学科软件工程是一门交叉学科软件工程的主要研究内容1.1.软件开发软件开发技术技术:软件开发方法软件开发方法学学 软件开发过程软件开发过程 软件工具软件工具和软件工程和软件工程环境环境 2.2.软件工程管理软件工程管理:软件管理软件管理学学 软件经济学软件经济学 软件软件心理学心理学 软件工程所
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

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


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