工程软件的发展史课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《工程软件的发展史课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工程 软件 发展史 课件
- 资源描述:
-
1、第一章(第一讲)软件工程概述本讲的主要内容1.有关软件工程及其课程2.软件产业的发展背景3.软件、软件产品及其特点4.软件危机5.软件工程1、About Software Engineering内容丰富,课时有限(抓紧课外时间)基本概念、原理、规律软件开发方法、工具和环境,软件开发过程软件开发管理,软件产品规范新兴学科,发展迅速实践性强参考书籍参考书籍 软件工程实践者的研究方法第六版,Roger S.Pressman,机械工业出版社 软件工程第六版,Ian Sommerville,机械工业出版社 软件工程理论与实践第二版,Shari Lawrence Pfleeger,高等教育出版社 实用软件
2、工程第二版,郑人杰、殷人昆、陶永雷,清华大学出版社有关SE的一些组织及网站 SWEBOKThe Software Engineering Body of Knowledge ACMAssociation for Computer Machinery IEEE 卡耐基.梅隆大学的SEI对软件工程最浅显的认识 对工程的认识 需求分析的重要性 设计与实现仅仅是软件工程的一小部分 规范与标准的重要性 工具的重要性 质量的意义及重要性人们对软件开发的新认识 个人技巧 团队意识 效率第一 清晰度第一Return2、软件产业发展的背景 人类社会正经历着一场前所未有的由工业社会向信息社会的巨变,软件产业“任重
3、道短”。从1991年起,信息产业保持了1020%的增长速度。2000年,全球IT产业的产值为5000亿美元。2001年,全球IT产值首次超过汽车工业和钢铁工业。硬、软件开发人员的比例为1:8 软件,正处于信息技术的核心位置,触及到人类社会的各个角落和人类文化的各个层次。全球10大软件企业,有7个在美国,2个在日本。在这辉煌的另一面,“软件危机”一直折磨着软件业界。人类社会已经发展到信息时代 茹毛饮血的石器时代 文明初肇的青铜时代 工业革命的蒸汽时代 社会化大生产的电气时代 信息膨胀的数字时代Return计算机科学技术的巨大作用 开拓人类认识自然改造自然的新资源物质资源、能量资源信息资源 增添了
4、人类发展科学技术的新手段理论推倒、科学实验、虚拟与现实 提高了人类创造文化的新工具人的行为、思想、言语、行动 引起了人类工作方式与生活方式的变化Return软件的历史 第一个写软件的人是Augusta Ada Lovelace,1860年尝试为机械式计算机写软件,但失败了。晶体管的发明为存储器的大量应用提供了基础。50年代,第一台电子计算机的问世,以写软件为职业的人开始出现。60年代,美国大学开始授予计算机专业的学位,有了软件课程。在通用硬件普及的初期,软件的通用性却是很有限的。软件开发也没有什么系统的方法可以遵循,是个人电脑的思维过程,带有强烈的个人色彩。Return3、软件的定义 Soft
5、ware=Program+Data+Document 其中:程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能够正常操纵信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料。软件产品的特性 是一种逻辑实体,具有高度复杂性和抽象性。软件发过程有别于一般物质的制造过程。一旦研制开发成功,就可以大量拷贝同一内容的副本。软件没有磨损、老化的问题,其生命周期曲线不符合所谓的“浴缸曲线”。对硬件和环境的依赖性,导致软件移植问题。尚未完全摆脱手工作坊式的开发方式,生产效率低下。软件的成本相当昂贵。软件工作牵涉到很多社会因素。涉及机构、体制和管理方式、人们的观念和心理。时间图1.1 浴缸
6、曲线故障率Failure rate实际的曲线理想的曲线故障率时间图1.2 软件故障曲线Change软件的分类 可以按功能、规模、工作方式、可靠性高低等进行划分 有关软件的词汇Custom softwareGeneric softwareEmbedded softwareSafety-critical softwareCOTS(Commercial Off-the-shelf)I will create a software to update the database.(some software,a piece of software,a software system)Return4、软件
7、危机(Software Crisis)首次提出:1968年北大西洋公约组织在联邦德国召开的国际学术会议上。软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。可以把软件危机概括为两个方面的问题软件开发十分困难,难以满足不断增长且日趋复杂的需求;如何维护数量不断膨胀的软件产品。Crisis or Depression or Chronic Affliction?从软件工程几十年的发展历程来看,软件危机不是”crisis”所能形容的,而更象”chronic affliction”,是一种顽固的慢性痛苦。软件危机的根本原因是软件系统高度复杂、难于驾驭和软件开发所带有的个人色彩。软件危机
8、的具体表现 对开发成本和进度的估计常常不准确。开发成本超出预算和不能按时交付一再拖延的现象并不罕见。用户对“已完成”系统不满意的现象经常发生。软件质量往往靠不住。Bug一大堆,Patch一个接一个。软件的可维护程度非常之低,即“维护墙”问题。软件通常没有适当的文档资料。软件成本在整个系统中比重逐年提高。软件开发生产率的提高赶不上硬件发展和需求增长。软件危机产生的原因 软件本身的特点所决定的。软件开发和维护的方法不正确(在不断地发展之中)忽视软件开发前期的需求分析;开发过程没有统一的、规范的方法论的指导,缺乏过程管理,文档资料不齐全,忽视人与人的交流;忽视测试工作,所提交的软件质量不高;轻视软件
9、的维护。硬件技术和产品的发展速度远远大于软件。计算机应用普及社会对软件的依赖对软件的需求、质量和可靠性的要求巨增。设计问题、资源问题使得我们难以支持和增强已有的软件,即所谓的“维护墙”问题。Return5、软件工程 1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。Fritz Bauer在会议上首次提出“软件工程”概念。软件工程的目标低成本高质量按时交付软件工程定义 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。软件工程包括两方面内容:软件开发技术和软件项目管理。软件开
10、发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。Fritz Bauer的定义 软件工程是为了经济地获得可靠的,能在实际的机器上高效运行的软件而建立和使用的科学的工程原则。IEEE的定义 软件工程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化思想应用于软件开发过程中,(2)上述方法的研究。软件工程的本质特性 关注大型程序的构造 软件工程的中心课题是控制复杂性 软件需求不断变化 旨在提高软件开发的效率 团队合作是软件工程顺利实施的关键 软件必须有效支持它的用户 由一种文化背景的人
11、替另一种文化背景的人创造产品软件工程原则(软件工程原则(1)质量原则质量原则 避免产生缺陷(具有恰当的标准、规范、质量审计过程等)确保尽早地发现缺陷并加以改正 辨别和消除产生缺陷的原因和征兆 根据标准和规范对生产的各个过程进行独立审计(SEI-CMM等)软件工程原则(软件工程原则(2)管理原则管理原则 规定任务和职责 制定工作计划 按照计划跟踪进度 不断地完善计划 在CMM中有一个PDCA循环(Plan,Do,Check,Action)软件工程原则(软件工程原则(3)工程原则工程原则 分析问题 分解任务 控制各个部门之间的关系 为了更好地贯彻这些原则,实现软件工程的目标,我们必须连接软件工程的
12、思想,研究软件工程的工具、方法、过程和质量管理。B.W.Boehm 软件工程基本原理软件工程基本原理1)用分阶段的生命周期计划严格管理2)坚持进行阶段评审3)实行严格的产品控制4)采用先进的程序设计技术5)开发过程具有可见性,所获结果清楚,便以审查6)开发人员少而精7)承认不断改进软件工程实践的必要性基线(Baseline)通过正式复审的规格说明或中间产品(artifact),可以作为进一步开发的基础,并且只有通过正式的变更控制过程才能改变它。(IEEE)基线的特征具有明确的标识具有明确的内容经过正式审批严格控制变更里程碑(Milestone)里程碑是用来说明项目进展情况的事件,通常把一个开发
13、活动的结束或一项开发任务的完成定义为一个里程碑。里程碑必须与软件开发工作的进展情况密切相关,里程碑作为任务完成的标志必须非常明显,即里程碑具有很高的可见性。软件工程总体面临的困难与风险 复杂性与大量的细节(火星探测器的失败)技术的不确定性(技术的发展与开发人员对技术的理解程度都不同)由于交流障碍而引起的需求不确定性 需求是持续变化的 不断的修改所带来的错误使得软件退化 人为和市场的风险 软件费用、可靠性、生产率、重用问题难以解决Return第一章(第二讲)软件工程过程本讲的主要内容1.软件工程方法学2.软件生命周期3.软件过程4.软件过程模型1、软件工程方法、软件工程方法学学通常把软件生命周期
14、全过程中使用的一整套技术方法的集合成为软件工程方法学(methodology),也成为范型(paradigm)软件工程方法学的3个要素方法工具过程传统的软件工程方法学结构化范型或生命周期方法学要么面向行为以功能分解为主(基于数据流图的结构化分析与设计方法),要么面向数据(Jackson方法)面向对象方法学 以数据为中心,把数据和对数据的操作紧密地结合起来,用对象分解代替传统的功能分解。面向对象方法学的4个要点把对象作为融合数据和操作的统一的构件把所有对象都划分成类子类自动拥有父类中定义的数据和操作,即继承对象间仅能通过发送消息互相联系Return2、软件生存周期、软件生存周期 软件生存周期(L
15、ife Cycle)是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。把整个生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大、结构复杂和管理复杂的软件开发变得容易控制和管理。软件生存周期各阶段的划分应遵循的基本原则:各阶段的任务应尽可能相对独立,同一阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件项目开发的组织管理。软件生命周期的阶段划分软件生命周期的阶段划分 软件定义阶段问题定义可行性研究需求分析 软件开发阶段总体设计详细设计编码和单元测试综合测试 运行阶段软件维护软件定义阶段软件定义阶段 问题定义:关于问题性质、工程目标和
16、工程规模的扼要描述 可行性研究,即高层的分析和设计过程,以回答是否存在可行的解决方法。需求分析:准确的“做什么”的描述。软件开发阶段软件开发阶段 概要设计结构设计,系统设计建立软件的总体结构,即模块结构 详细设计算法设计,过程设计设计每个模块的结构,IPO图或PDL语言 编码与单元测试生成源程序代码和单元测试方案、数据和结果,由编程人员进行 综合测试 通过各种测试和调试,是软件达到预订的要求软件运行阶段软件运行阶段 维护维护通过各种必要的维护活动使系统持久地满足用户的需要 四种类型的维护四种类型的维护改正性维护适应性维护完善性维护预防性维护Return软件开发的四个要素 人员 项目 产品 过程
17、过程产品项目人员工具参与者结果自动化模板3、软件工程过程、软件工程过程 一个过程定义了为达到每个确定的目标,需要什么人在什么时间以何种方式做何种工作(Goal,Who,When,How,What)。软件工程过程规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。其目的是为各种人员提供一个公共的框架,以便用相同的语言进行交流。Cont.一个开发机构为开发特定的软件需要制订一系列的工作步骤(软件工程过程),其中包含和涉及软件工程所有参与者的各种活动、任务。基本的软件过程活动包括:规格说明、开发、确认和演进。CMM的软件工程过程包含获取、供应、开发、操作、维护、管理、支持七个过程。软
18、件过程因素包括四个方面技术工具人员组织模式过程定义的作用 Process vs Music score 用于对 Customer,User,Developer,Manager的指导,一个广泛适用的过程使得所有参与人员更好地理解自己所扮演的角色、他人做什么。促使过程的有机结合和改善,获得“最好过程”可以使公司内部的培训标准化。由于过程的可重复性,利于开发进度的安排,利于成本估算。统一过程(RUP)RUP的突出特点用况驱动(系统功能)以构架为中心(表现形式)迭代和增量开发(过程实施)ReturnUML(Unified Modeling Language)1994,OO思想已经贯穿整个软件生存期,具
19、有影响的OOA&D方法达50余种。UML是一种对软件密集型系统进行可视化、详述、构造和文档化的建模语言,主要用于分析和设计阶段的系统建模。UML 2.01994Booch方法方法Rumbaugh OMT Coad/YourdonFire Smith 方法方法 Jacobson OOSE1995.10发布发布Unified Method 0.81996.6发布发布UML 0.9不包含过程指导不包含过程指导Rational联合联合12家公司家公司成立成立UML组织,形成组织,形成UML 1.0,1997.1提交提交给给OMG1997.11.4,OMG采纳采纳UML 1.12002发布发布UML 2
展开阅读全文