第1章-软件工程概述课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第1章-软件工程概述课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概述 课件
- 资源描述:
-
1、第第 一一 章章第一章第一章 软件工程概述软件工程概述1.1.1 1.1.1 软件的概念软件的概念1.1.3 1.1.3 软件的分类软件的分类 1.1.2 1.1.2 软件的特点软件的特点1.2.1 1.2.1 软件生产的发展过程软件生产的发展过程1.2.2 1.2.2 软件危机软件危机 1.3.1 1.3.1 软件工程的概念、要素软件工程的概念、要素 1.3.2 1.3.2 软件工程过程软件工程过程生存周期生存周期 1.3.4 1.3.4 软件开发方法软件开发方法 1.3.3 1.3.3 软件开发模型软件开发模型1.3.5 1.3.5 软件过程管理软件过程管理 1.4.1 1.4.1 软件工
2、程的基本目标软件工程的基本目标 1.4.2 1.4.2 软件工程的原则软件工程的原则78 软件:软件:(“软件软件”一词是一词是2020世纪世纪6060年代才出现的)年代才出现的)是对计算任务的处理规则的描述;是对计算任务的处理规则的描述;是对计算任务的处理对象的描述;是对计算任务的处理对象的描述;是有关计算机程序功能、设计、编制与使用的是有关计算机程序功能、设计、编制与使用的文文 字资料和图形资料。字资料和图形资料。软件与硬件一起构成完整的计算机系统,它们相互依存、软件与硬件一起构成完整的计算机系统,它们相互依存、缺一不可缺一不可。9软件是一种特殊的产品,它具有下列特点:软件是一种特殊的产品
3、,它具有下列特点:(1)软件软件是一种逻辑产品是一种逻辑产品软件生产是一个知识化的脑力劳软件生产是一个知识化的脑力劳动过程(不同于一般产品的生产制造),还未完全摆脱手工开动过程(不同于一般产品的生产制造),还未完全摆脱手工开发方式,大部分产品是发方式,大部分产品是“定做定做”的。的。(2)软件的软件的质量和维护质量和维护与一般产品含义、地位不同与一般产品含义、地位不同软件产软件产品不会用坏,不存在磨损、消耗问题品不会用坏,不存在磨损、消耗问题(这也就意味着,只要软这也就意味着,只要软件有问题就与开发者有关系件有问题就与开发者有关系)(3)软件开发和运行软件开发和运行对系统环境有依赖性对系统环境
4、有依赖性不能摆脱软件、不能摆脱软件、硬件基础硬件基础 比如:比如:游戏软件对游戏软件对CPUCPU、内存、显卡的要求、内存、显卡的要求 事务管理软件从单机到事务管理软件从单机到C/SC/S、B/SB/S模式的变化模式的变化10软件是一种特殊的产品,它具有下列特点:软件是一种特殊的产品,它具有下列特点:(4)软件必须软件必须与实际应用紧密结合与实际应用紧密结合应满足应用需求应满足应用需求比如:比如:管理、计算、控制的具体业务知识游戏软件内容的专业化PS、实况足球、赛车 (5)软件开发软件开发风险大、费用高;风险大、费用高;系统成本中软件系统成本中软件比例急剧上比例急剧上升升需要大量复杂、高强度的
5、脑力劳动需要大量复杂、高强度的脑力劳动(高手高成本高手高成本)。美国。美国投入开发的软件只有不到投入开发的软件只有不到30%的成功率;的成功率;IBM OS/360 过百万条过百万条指令,上千人年,投资几亿美元效果不佳。指令,上千人年,投资几亿美元效果不佳。(6)相对于硬件,软件技术相对于硬件,软件技术发展缓慢发展缓慢不论是理论研究不论是理论研究还是开发普及方面还是开发普及方面(已成为制约计算机发展和应用的瓶颈已成为制约计算机发展和应用的瓶颈)11计算机软件可以从不同的角度进行分类:计算机软件可以从不同的角度进行分类:根据功能、规模、工作方式、服务对象、使用频率从应用领域可以分为:从应用领域可
6、以分为:操作系统、网络软件、数据库管理系统等实时软件、嵌入式软件、计算与工程软件、事务处理与管理软件 项目管理、编程与运行环境、媒体处理软件 12经历了三个阶段。(2020世纪世纪4040年代中年代中5050年代末)年代末)生产方式生产方式个体手工劳动;语言环境语言环境机器语言、汇编语言;开发方法开发方法追求编程技巧,追求程序运行效率,使得 程序难读、难懂、难修改;硬件特征硬件特征价格贵、容量小、可靠性差;软件特征软件特征仅有程序、程序设计概念,不重视程序设计方法。13 (2020世纪世纪5050年代末年代末6060年代末)年代末)生产方式生产方式作坊式的小集团合作生产;语言环境语言环境高级语
7、言;开发方法开发方法依靠个人技术,但已提出了结构化方法;硬件特征硬件特征速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长;软件特征软件特征程序员数量猛增,其他行业人员大量进入这个行业,由于缺乏训练,开发人员素质差。局部优化,维护困难、实际运行效果差,导致软件危机局部优化,维护困难、实际运行效果差,导致软件危机的产生。的产生。14 (20世纪70年代初现在)生产方式生产方式工程化的生产;使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件;硬件特征硬件特征向超高速、大容量、微型化以及网络化方向发展;软件特征软件特征开发技术有很大进步,但是未能获得突破性进展,软件应用普
8、及、价格不断上升,没有完全摆脱软件危机。15 软件发展第二阶段(程序系统阶段程序系统阶段)的末期,由于计算机硬件技术的进步,计算机运行速度、容量和可靠性有显著的提高,生产成本显著下降,为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术一直未能满足发展的要求。软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。软件危机:在计算机软件的开发和维护过程中所遇到的在计算机软件的开发和维护过程中所遇到的一系列严重问题。问题主要体现在两方面:一系列严重问题。问题主要体现在两方面:如何开发如何开发软件满软件满足用户的足用户的需求需求
9、,如何维护如何维护已有的软件已有的软件16 软件危机表现在以下几方面:(1)软件开发成本高、进度延迟成本高、进度延迟损害了开发者的信誉和委托方的利益 (2)软件不符合用户要求软件不符合用户要求用户对系统不满意,给合作双方带来损失。(3)软件可维护性差可维护性差错误难以改正,新功能难以增加 (4)软件工作不可靠工作不可靠影响系统正常工作,甚至造成重大事故 (5)没有文档资料没有文档资料给软件交流,系统的管理、维护造成困难。17 造成上述软件危机的原因概括起来有以下几方面:(1)社会对软件的需求急剧增加社会对软件的需求急剧增加社会的发展和科学技术的进步,使信息流动量和处理量大大增加,单靠人力无法完
10、成。计算机系统的价格大幅度降低和计算机系统的优点又大大刺激了计算机应用的普及。(2)软件本身的特点软件本身的特点(前面已介绍)并且并且软件规模越来越大(IBM 360 OS 第16版达到100万条指令,1973年美国阿波罗计划达到1千万条指令);结构越来越复杂。Windows 2000的开发是微软公司历史上最艰巨的任务之一的开发是微软公司历史上最艰巨的任务之一仅核心部门的的成员就有2500人,测试用的代码就有1000万行,测试中所用到的脚本程序就有6500种。18 (3)软件开发理念和手段与客观实际存在的差异软件开发理念和手段与客观实际存在的差异 对对软件本身软件本身的认识存在差异的认识存在差
11、异软件技术的发展过程层次上个人活动与整个项目的关系规范、现代化对软件产品的认识软件的特点与维护 对软件的对软件的服务对象服务对象认识不足认识不足 存在问题 以开发者为中心 实际应该是 用户需求用户需求+专业知识专业知识+开发者深刻理解开发者深刻理解(很多游戏开发者本身就是游戏人)19 对软件开发对软件开发缺乏科学管理缺乏科学管理 现代软件开发过程是一个复杂的系统工程,具有明显的工程特现代软件开发过程是一个复杂的系统工程,具有明显的工程特征和较高的技术含量。征和较高的技术含量。一般管理方法不适于软件开发一般管理方法不适于软件开发。时间人数一般情况 交流 开发人数时间或成本合计软件开发中人数与时间
12、的关系 开发人员的数量与开发时间是不能简单替换的开发人员的数量与开发时间是不能简单替换的20 软件开发手段落后软件开发手段落后 软件开发工具过于原始,往往只是辅助性的、单方面的。尤其在软件的分析、设计阶段缺少有效的工具。(经验之谈:时间宁可长一点,人员宁可少一点摘自Brooks定律)寻找解决软件危机途径的过程就是软件工程形成的过程。软件工程正是从管理、技术21软件工程软件工程以计算机软件生产为;:以工程化的原理和方法对软件进行规划、定义、开发和维护;:以较少的投入,最快的时间生产出高质量的软件。22背景:背景:大量经验教训和其他产业的工程化生产的启示大量经验教训和其他产业的工程化生产的启示“软
13、件工程”的概念在1968年年北大西洋公约组织的一次会议上首先提出 以计算机软件为对象,采用工程化的原理、技术和方法以计算机软件为对象,采用工程化的原理、技术和方法开发和维护软件。使开发的产品具有较高的质量、成本合理、开发和维护软件。使开发的产品具有较高的质量、成本合理、满足用户需求。满足用户需求。集技术、管理于一体的综合性、实践性学科集技术、管理于一体的综合性、实践性学科 软件工程的主要思想软件工程的主要思想是强调软件开发过程中应用工程是强调软件开发过程中应用工程化原则的重要性。化原则的重要性。23软件工程的软件工程的三要素三要素:方法、工具和过程方法、工具和过程 方法方法为软件开发提供了开发
14、、维护的实现技术;为软件开发提供了开发、维护的实现技术;工具工具为方法的实施提供支撑环境;为方法的实施提供支撑环境;过程过程是获得高质量软件的任务框架、要求和里程碑是获得高质量软件的任务框架、要求和里程碑。软件产品与其他工程中的产品既有相似的一面,软件产品与其他工程中的产品既有相似的一面,也有重大的差别。因此对软件工程的认识既要借鉴也有重大的差别。因此对软件工程的认识既要借鉴传统工程的知识、方法和技术,又要充分注意软件传统工程的知识、方法和技术,又要充分注意软件自身的特殊性。自身的特殊性。24从时间的角度对软件开发和维护的复杂问题进行分解从时间的角度对软件开发和维护的复杂问题进行分解。定义定义
15、从形成概念开始,经过开发、使用和维护直到退役从形成概念开始,经过开发、使用和维护直到退役的漫长周期(划分为若干个阶段)。的漫长周期(划分为若干个阶段)。生命周期的划分原则生命周期的划分原则 各阶段的任务应尽可能相对独立;各阶段的任务应尽可能相对独立;同一阶段各项任务的性质尽可能相同。同一阶段各项任务的性质尽可能相同。划分生命周期的优点划分生命周期的优点 有利于软件开发工程的组织和管理有利于软件开发工程的组织和管理降低了整个软件开发过程的困难程度降低了整个软件开发过程的困难程度对每个阶段都可选用最优的管理方法对每个阶段都可选用最优的管理方法 保证软件质量、提高生产效率25 软件开发软件开发 根据
展开阅读全文