武汉理工软件工程课件第1章软件工程概述.ppt

上传人:本田雅阁 文档编号:2090615 上传时间:2019-02-12 格式:PPT 页数:45 大小:2.97MB
返回 下载 相关 举报
武汉理工软件工程课件第1章软件工程概述.ppt_第1页
第1页 / 共45页
武汉理工软件工程课件第1章软件工程概述.ppt_第2页
第2页 / 共45页
武汉理工软件工程课件第1章软件工程概述.ppt_第3页
第3页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《武汉理工软件工程课件第1章软件工程概述.ppt》由会员分享,可在线阅读,更多相关《武汉理工软件工程课件第1章软件工程概述.ppt(45页珍藏版)》请在三一文库上搜索。

1、软件工程,主讲:许家珆,电 子 科 技 大 学,学习“软件工程”的目的和意义,学会如何在现代IT企业的环境中做一个成功者; 学会如何做世界级的、高质量的研究; 学会如何创建大规模的软件产品。 微软全球资深副总裁 原微软亚洲研究院院长 首席科学家 张亚勤,一、全球软件产业的现状、趋势与挑战,The Challenges and Opportunities of the Global Software Industry.,软件产业的网络化趋势 软件产业的服务化趋势 软件产业的全球化趋势,智能网络 (Intelligent Web) 从静态网到动态网 从被动方式到主动方式 从呈现信息和浏览的窗口到智

2、能生成的平台 从HTML到XML,一、全球软件产业的现状、趋势与挑战,The Challenges and Opportunities of the Global Software Industry.,软件产业的网络化趋势 软件产业的服务化趋势 软件产业的全球化趋势,相对目前“打包式”软件,为用户提供智能化的“服务式”软件。,一、全球软件产业的现状、趋势与挑战,The Challenges and Opportunities of the Global Software Industry.,软件产业的网络化趋势 软件产业的服务化趋势 软件产业的全球化趋势,强调开放性、交互性 支持主流的开放式标

3、准 人才的全球化,对中国软件企业有什么启示和挑战?,Talent Beyond Technology _What Kind of Talent We Need for Modern Software Development,扎实的基础 创新、独立的工作能力 主人翁精神和团队精神 勾通与协调能力 成就感强、有激情 自觉地干好工作 契而不舍,从错误中学习,二、现代软件开发对人才的要求,在微软流传着这样一个故事,有一次比尔.盖茨和上帝谈话,上帝对他说:“地球明天就要毁灭了!由于你是如此的成功,因此我特许你从地球上带一样东西到天堂!你想带什么?” 比尔.盖茨回答:“请允许我从微软选300个最优秀的人,

4、我要把他们带到天堂!”,尽管微软的windows,Exchang,SQL,Office等都非常重要,但如果没有象你们这些人才,微软也将一无所有。你们对我们公司和微软来说是处于第一位的。,我国复合型软件人才匮乏,培养适应迅速变化的市场需求的复合型软件人才已是迫在眉睫。,三、信息化建设中对复合型软件人才的需求,复合型软件人才具备不同专业背景、有市场观念的开发管理、工程管理和软件经营等复合型软件人才;,四、软件开发中的错误观点,2.软件需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随时可以修改。,1.只要掌握了1-2门程序设计语言,进行软件开发就没有问题。,总之,错误认为:软件就

5、是程序,开发软件就是编写程序。,3. 只要有最好的开发工具、最好的计算机,一定能做出优秀的软件。,本课程学习的主要内容,1. 传统的软件工程方法 2. 面向对象的建模技术UML统一建模语言 3. 软件项目管理及CMM 4. 软件复用及构件工程,本课程以传统的软件工程技术为基础,主要讨论如何应用软件工程的最新技术 UML统一建模语言进行软件开发,提高软件开发的水平和技术。,课程特点与安排,1. 课程特点: 实践性强、发展迅速 2. 课程安排(建议): 课堂教学(48学时) 授课、案例分析、讨论 课程设计(课外为主,需求阶段及总体设计阶段 的答辩式评审共8学时) 课程设计以开发小组为单位进行。 3

6、. 关于考试(建议) : 笔试:40分,课程设计:40分,平时:20分,教材及主要参考书,作者:许家珆 主编 白忠建,彭德中,吴磊编写 出版社:电子工业出版社,1.软件工程方法与实践,本书是在吸取了国内外有关教材的精华,并结合编者多年来进行软件工程的教学及软件开发实践的经验、体会的基础上编写的。,作者:许家珆 曾翎 彭德中 出版社:高等教育出版社 出版日期:2004-06-30 配套光盘1张,2.软件工程理论与实践,本书是教育部新世纪网络课程建设工程的子课题“软件工程网络课程”配套教材。其主要特色是理论与实践密切结合,给出了“软件工程课程设计”的相关指导。其第二版已评为国家十一五规划教材,拟今

7、年内出版。,教材及主要参考书,教材及主要参考书,3.软件工程 Software Engineering, 6th Edition 作者:(英)Ian Sommerville 出版社:机械工业出版社(影印版),本书是英国著名软件工程学家 Ian Sommerville 系统介绍软件工程理论的力作,以要求极高的一类系统为实例,精辟透彻地阐述了软件工程的内涵。,参考网站,http:/ 软件工程网 www.sei.cmu.edu 卡内基梅大学软件工程研究所 http:/www.cetus-links.org/ 对象技术和构件技术链接 Rational公司 http:/www.omg.org OMG

8、(Object Management Group),http:/ 软件工程网 www.sei.cmu.edu 卡内基梅大学软件工程研究所 http:/www.cetus-links.org/ 对象技术和构件技术链接 Rational公司,第一章,1,概 述,1.1 软件工程的产生和发展,软件工程(Software Engineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。 随着互联网平台和环境的迅速发展,对软件工程的发展产生了变革性的巨大影响,网格计算、普适计算、中间件、网构软件等一批新技术和理念,从网络资源共享与管理,人机交互及软件服务等各方面提出了软件技术

9、的新课题。,软件工程的发展已经历了四个重要阶段:,4.第四代软件工程 构件工程,3.第三代软件工程 过程工程,2.第二代软件工程 对象工程,1.第一代软件工程 传统的软件工程,软件工程的发展已经历了四个重要阶段: 1.第一代软件工程 传统的软件工程 2.第二代软件工程 对象工程 3.第三代软件工程 过程工程 4.第四代软件工程 构件工程,60年代末到70年代为了克服“软件危机” (Software crisis)提出“软件工程”的名词, 将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。,软件工程的发展已经历了四个重要阶段: 1、第一代软件工程 传统的软

10、件工程 2、第二代软件工程 对象工程 3、第三代软件工程 过程工程 4、第四代软件工程 构件工程,80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。,软件工程的发展已经历了四个重要阶段: 1、第一代软件工程 传统的软件工程 2、第二代软件工程 对象工程 3、第三代软件工程 过程工程 4、第四代软件工程 构件工程,80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。,软件工程的发展已经历了四个

11、重要阶段: 1、第一代软件工程 传统的软件工程 2、第二代软件工程 对象工程 3、第三代软件工程 过程工程 4、第四代软件工程 构件工程,90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。,软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广,研究的主要内容有以下几方面:, 软件开发技术,软件开发方法、技术 软件开发工具及环境 软件管理技术 软件规范(国际规范), 软件管理技术,. 软件工程过程与软件生存期,为了克服软件危机,人们从其他产业的工业化生产

12、得到启示,于是在68年北大西洋公约的软件可靠性会议(NATO)上,首次提出了“软件工程”的概念。提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。,是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。,通常包括以下四类基本过程: 1、软件规格说明:规定软件的功能及其运行环境。 2、软件开发:产生满足规格说明的软件。 3、软件确认:确认软件能够完成客户提出的要求。 4、软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。,软件工程过程 (Software engineering process),软件工

13、程过程 (Software engineering process),规程与方法,工具和设备,有技能经过培训的开发人员,问题定义,编 码,需求分析,软件设计,可行性研究,运行与维护,测 试,开发 时期,运行 时期,计划时期,(目标与范围说明书),(可行性论证论告),(维护报告),(测试报告),(程序),(设计文档),(需求说明书),软件生命周期(SDLD)瀑布模型,瀑布模型,1.3 软件开发模型,软件开发模型是描述软件开发过程中各种活动如何执行的模型。因此又称为软件过程模型。 软件过程模型是对软件开发实际过程的抽象和简化。,目前典型的软件开发模型有: 瀑布模型、增量模型、螺旋模型、喷泉模型、变

14、换模型和基于知识的模型等。 不同的开发方法有不同的软件过程模型。,瀑布模型,增量模型(incremental model),增量模型是一种非整体开发的模型。是一种进化式的开发过程。 根据增量的方式和形式的不同,分为: 基于瀑布模型的渐增模型 基于原型的快速原型模型 该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。,增量模型和瀑布模型之间的本质区别是什么?,为了描述软件开发过程中可能的回溯,尤其是维护阶段往往要经历上述各个阶段。采用循环模型描述。,需求分析,设计,编码,测试,运行,评价,计划,循环模型,循环模型,速成原型的工作模型是一个循环的模型。 1.快速分析 快速

15、确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能) 2.构造原型 考虑主要特征,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。 3.运行和评价原型 4.修改与改进,原型的工作模型,智能模型(intelligent model),也称为基于知识的软件开发模型,是知识工程与软件工程相结合的软件开发模型。,智能模型,1.4 软件开发方法,软件开发的目标是要在规定的投资和时间内,开发出符合用户的需求,高质量的软件,为此需要有成功的开发方法。,软件开发方法可分为两大类: 面向过程的开发方法 面向对象的开发方法,结构化开发方法(Structured De

16、veloping Method) 是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。 结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分解与抽象。 一、结构化开发方法的组成 结构化程序设计方法 SP法(Structured Program) 结构化设计方法 SD法(Structured Design) 结构化分析方法 SA法(Structured Analysis) SA,SD,SP 法相互衔接,形成了一整套开发方法。,结构化方法及瀑布模型,什么是原型化方法(Prototyping Method),原型化方法及其工作模型,原型是软件的一个早期可运行的版本

17、,它反映了最终系统的部分重要特性。 原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。 原型化方法又称速成原型法(Rapid Prototyping)。,原型化方法及其工作模型,1、废弃(throw away)型 RSP法(Rapid Specific Prototyping)快速建立需求规格原型。 2、追加(add on)型 RCP法(Rapid Cyclic Prototyping)快速建立渐进原型法。采用循环渐进的开发方式,对系统模型作连续精化。,构造原型,运行/评价原型,原型完成否,要细部说明否,严格说明细部,效果满意否,整理原型提供文档,修 正 改 进

18、 原 型,Y,Y,N,N,快速分析,确定初步规格说明,Y,N,细化的快速原型模型,图2 细化的快速原型模型,对大型软件,需要多个原型描述系统的生存期,螺旋模型将瀑布模型与原型化模型结合起来,并加入了风险分析。,螺旋模型,螺旋模型,螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤: 第一,确定目标、方案和限制条件; 第二,评估方案、标识风险和解决风险; 第三,开发确认产品; 第四,计划下一周期工作。,面向对象方法 (OOSD(Object-Oriented Software Development)是80年代推出的一种全新的软件开发方法。非常实用而强有力,被誉为90年代软件的核

19、心技术之一。,面向对象方法及其工作模型,其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程。面向对象的开发方法以对象作为最基本的元素,是分析和解决问题的核心。,面向对象开发方法的组成,OOSD由三部分组成: OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设计,OOA,OOA,强调的是对一个系统中的对象特征和行

20、为的定义。建立系统的三类模型。,OOD,OOD,OOD,与OOA密切配合顺序实现对现实世界的进一步建模。,OOP,OOP,OOP,是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。,喷泉模型,该模型是由B.H.Sollers和J.M.Edwards于1990年提出的一种新的开发模型。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。,其特点如下: . 开发过程有分析、系统设计、软件设计和实现4个阶段。 .各阶段相互重叠,它反映了软件过程并行性的特点。 .以分析为基础,资源消耗成塔型。 .反映了软件过程迭代性的自然特性,从高层返回

21、低层无资源消耗。 .强调增量开发,整个过程是一个迭代的逐步提炼的过程。,面向对象的方法的代表性成果有: 1. B.Henderson-sellers 和 J.m.Edwards提出的面向对象软件生存期喷泉模型及面向对象的系统开发方法。 2. G.Booch提出的面向对象的开发方法。 3. P.Coad和E.Yourd提出的OOA和OOD法。 4. J. Rumbaugh等人提出的对象建模技术(OMT)。 5. Jacobson 提出的面向对象的软件工程(OOSE)。 6. G.booch J.Rumbough Jacobson等人在Booch方法、OMT和OOSE的基础上推出了统一建模语言UM

22、L。, IBM公司的 OS/360,共约100万条指令,花费了5000个人年;经费达数亿美圆,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。 OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。”,1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序: DO 5 I=1,3 误写为:DO 5 I=1 . 3,1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,导至在进入大气层时因打不开降落伞而烧毁。,软件危机,“软件危机”(Software crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。,“软件危机”主要表现在两个方面: (1)软件产品质量低劣,甚至开发过程就夭折。 (2)软件生产率低,不能满足需要。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1