欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

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

    • 资源ID:2090615       资源大小:2.97MB        全文页数:45页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    软件工程,主讲:许家珆,电 子 科 技 大 学,学习“软件工程”的目的和意义,学会如何在现代IT企业的环境中做一个成功者; 学会如何做世界级的、高质量的研究; 学会如何创建大规模的软件产品。 微软全球资深副总裁 原微软亚洲研究院院长 首席科学家 张亚勤,一、全球软件产业的现状、趋势与挑战,The Challenges and Opportunities of the Global Software Industry.,软件产业的网络化趋势 软件产业的服务化趋势 软件产业的全球化趋势,智能网络 (Intelligent Web) ·从静态网到动态网 ·从被动方式到主动方式 ·从呈现信息和浏览的窗口到智能生成的平台 ·从HTML到XML,一、全球软件产业的现状、趋势与挑战,The Challenges and Opportunities of the Global Software Industry.,软件产业的网络化趋势 软件产业的服务化趋势 软件产业的全球化趋势,相对目前“打包式”软件,为用户提供智能化的“服务式”软件。,一、全球软件产业的现状、趋势与挑战,The Challenges and Opportunities of the Global Software Industry.,软件产业的网络化趋势 软件产业的服务化趋势 软件产业的全球化趋势,·强调开放性、交互性 ·支持主流的开放式标准 ·人才的全球化,对中国软件企业有什么启示和挑战?,Talent Beyond Technology _What Kind of Talent We Need for Modern Software Development,扎实的基础 创新、独立的工作能力 主人翁精神和团队精神 勾通与协调能力 成就感强、有激情 自觉地干好工作 契而不舍,从错误中学习,二、现代软件开发对人才的要求,在微软流传着这样一个故事,有一次比尔.盖茨和上帝谈话,上帝对他说:“地球明天就要毁灭了!由于你是如此的成功,因此我特许你从地球上带一样东西到天堂!你想带什么?” 比尔.盖茨回答:“请允许我从微软选300个最优秀的人,我要把他们带到天堂!”,尽管微软的windows,Exchang,SQL,Office等都非常重要,但如果没有象你们这些人才,微软也将一无所有。你们对我们公司和微软来说是处于第一位的。,我国复合型软件人才匮乏,培养适应迅速变化的市场需求的复合型软件人才已是迫在眉睫。,三、信息化建设中对复合型软件人才的需求,复合型软件人才具备不同专业背景、有市场观念的开发管理、工程管理和软件经营等复合型软件人才;,四、软件开发中的错误观点,2.软件需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随时可以修改。,1.只要掌握了1-2门程序设计语言,进行软件开发就没有问题。,总之,错误认为:软件就是程序,开发软件就是编写程序。,3. 只要有最好的开发工具、最好的计算机,一定能做出优秀的软件。,本课程学习的主要内容,1. 传统的软件工程方法 2. 面向对象的建模技术UML统一建模语言 3. 软件项目管理及CMM 4. 软件复用及构件工程,本课程以传统的软件工程技术为基础,主要讨论如何应用软件工程的最新技术 UML统一建模语言进行软件开发,提高软件开发的水平和技术。,课程特点与安排,1. 课程特点: 实践性强、发展迅速 2. 课程安排(建议): 课堂教学(48学时) 授课、案例分析、讨论 课程设计(课外为主,需求阶段及总体设计阶段 的答辩式评审共8学时) 课程设计以开发小组为单位进行。 3. 关于考试(建议) : 笔试:40分,课程设计:40分,平时:20分,教材及主要参考书,作者:许家珆 主编 白忠建,彭德中,吴磊编写 出版社:电子工业出版社,1.软件工程方法与实践,本书是在吸取了国内外有关教材的精华,并结合编者多年来进行软件工程的教学及软件开发实践的经验、体会的基础上编写的。,作者:许家珆 曾翎 彭德中 出版社:高等教育出版社 出版日期:2004-06-30 配套光盘1张,2.软件工程理论与实践,本书是教育部新世纪网络课程建设工程的子课题“软件工程网络课程”配套教材。其主要特色是理论与实践密切结合,给出了“软件工程课程设计”的相关指导。其第二版已评为国家十一五规划教材,拟今年内出版。,教材及主要参考书,教材及主要参考书,3.软件工程 Software Engineering, 6th Edition 作者:(英)Ian Sommerville 出版社:机械工业出版社(影印版),本书是英国著名软件工程学家 Ian Sommerville 系统介绍软件工程理论的力作,以要求极高的一类系统为实例,精辟透彻地阐述了软件工程的内涵。,参考网站,http:/ www.mrcase.net 软件工程网 www.sei.cmu.edu 卡内基梅大学软件工程研究所 http:/www.cetus-links.org/ 对象技术和构件技术链接 www.rational.com Rational公司 http:/www.omg.org OMG(Object Management Group),http:/ www.mrcase.net 软件工程网 www.sei.cmu.edu 卡内基梅大学软件工程研究所 http:/www.cetus-links.org/ 对象技术和构件技术链接 www.rational.com Rational公司,第一章,1,概 述,1.1 软件工程的产生和发展,软件工程(Software Engineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。 随着互联网平台和环境的迅速发展,对软件工程的发展产生了变革性的巨大影响,网格计算、普适计算、中间件、网构软件等一批新技术和理念,从网络资源共享与管理,人机交互及软件服务等各方面提出了软件技术的新课题。,软件工程的发展已经历了四个重要阶段:,4.第四代软件工程 构件工程,3.第三代软件工程 过程工程,2.第二代软件工程 对象工程,1.第一代软件工程 传统的软件工程,软件工程的发展已经历了四个重要阶段: 1.第一代软件工程 传统的软件工程 2.第二代软件工程 对象工程 3.第三代软件工程 过程工程 4.第四代软件工程 构件工程,60年代末到70年代为了克服“软件危机” (Software crisis)提出“软件工程”的名词, 将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。,软件工程的发展已经历了四个重要阶段: 1、第一代软件工程 传统的软件工程 2、第二代软件工程 对象工程 3、第三代软件工程 过程工程 4、第四代软件工程 构件工程,80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。,软件工程的发展已经历了四个重要阶段: 1、第一代软件工程 传统的软件工程 2、第二代软件工程 对象工程 3、第三代软件工程 过程工程 4、第四代软件工程 构件工程,80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。,软件工程的发展已经历了四个重要阶段: 1、第一代软件工程 传统的软件工程 2、第二代软件工程 对象工程 3、第三代软件工程 过程工程 4、第四代软件工程 构件工程,90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。,软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广,研究的主要内容有以下几方面:, 软件开发技术,软件开发方法、技术 软件开发工具及环境 软件管理技术 软件规范(国际规范), 软件管理技术,. 软件工程过程与软件生存期,为了克服软件危机,人们从其他产业的工业化生产得到启示,于是在68年北大西洋公约的软件可靠性会议(NATO)上,首次提出了“软件工程”的概念。提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。,是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。,通常包括以下四类基本过程: 1、软件规格说明:规定软件的功能及其运行环境。 2、软件开发:产生满足规格说明的软件。 3、软件确认:确认软件能够完成客户提出的要求。 4、软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。,软件工程过程 (Software engineering process),软件工程过程 (Software engineering process),规程与方法,工具和设备,有技能经过培训的开发人员,问题定义,编 码,需求分析,软件设计,可行性研究,运行与维护,测 试,开发 时期,运行 时期,计划时期,(目标与范围说明书),(可行性论证论告),(维护报告),(测试报告),(程序),(设计文档),(需求说明书),软件生命周期(SDLD)瀑布模型,瀑布模型,1.3 软件开发模型,软件开发模型是描述软件开发过程中各种活动如何执行的模型。因此又称为软件过程模型。 软件过程模型是对软件开发实际过程的抽象和简化。,目前典型的软件开发模型有: 瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。 不同的开发方法有不同的软件过程模型。,瀑布模型,增量模型(incremental model),增量模型是一种非整体开发的模型。是一种进化式的开发过程。 根据增量的方式和形式的不同,分为: 基于瀑布模型的渐增模型 基于原型的快速原型模型 该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。,增量模型和瀑布模型之间的本质区别是什么?,为了描述软件开发过程中可能的回溯,尤其是维护阶段往往要经历上述各个阶段。采用循环模型描述。,需求分析,设计,编码,测试,运行,评价,计划,循环模型,循环模型,速成原型的工作模型是一个循环的模型。 1.快速分析 快速确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能) 2.构造原型 考虑主要特征,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。 3.运行和评价原型 4.修改与改进,原型的工作模型,智能模型(intelligent model),也称为基于知识的软件开发模型,是知识工程与软件工程相结合的软件开发模型。,智能模型,1.4 软件开发方法,软件开发的目标是要在规定的投资和时间内,开发出符合用户的需求,高质量的软件,为此需要有成功的开发方法。,软件开发方法可分为两大类: 面向过程的开发方法 面向对象的开发方法,结构化开发方法(Structured Developing Method) 是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。 结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分解与抽象。 一、结构化开发方法的组成 结构化程序设计方法 SP法(Structured Program) 结构化设计方法 SD法(Structured Design) 结构化分析方法 SA法(Structured Analysis) SA,SD,SP 法相互衔接,形成了一整套开发方法。,结构化方法及瀑布模型,什么是原型化方法(Prototyping Method),原型化方法及其工作模型,原型是软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。 原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。 原型化方法又称速成原型法(Rapid Prototyping)。,原型化方法及其工作模型,1、废弃(throw away)型 RSP法(Rapid Specific Prototyping)快速建立需求规格原型。 2、追加(add on)型 RCP法(Rapid Cyclic Prototyping)快速建立渐进原型法。采用循环渐进的开发方式,对系统模型作连续精化。,构造原型,运行/评价原型,原型完成否,要细部说明否,严格说明细部,效果满意否,整理原型提供文档,修 正 改 进 原 型,Y,Y,N,N,快速分析,确定初步规格说明,Y,N,细化的快速原型模型,图2 细化的快速原型模型,对大型软件,需要多个原型描述系统的生存期,螺旋模型将瀑布模型与原型化模型结合起来,并加入了风险分析。,螺旋模型,螺旋模型,螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤: 第一,确定目标、方案和限制条件; 第二,评估方案、标识风险和解决风险; 第三,开发确认产品; 第四,计划下一周期工作。,面向对象方法 (OOSD(Object-Oriented Software Development)是80年代推出的一种全新的软件开发方法。非常实用而强有力,被誉为90年代软件的核心技术之一。,面向对象方法及其工作模型,其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程。面向对象的开发方法以对象作为最基本的元素,是分析和解决问题的核心。,面向对象开发方法的组成,OOSD由三部分组成: OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设计,OOA,OOA,强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。,OOD,OOD,OOD,与OOA密切配合顺序实现对现实世界的进一步建模。,OOP,OOP,OOP,是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。,喷泉模型,该模型是由B.H.Sollers和J.M.Edwards于1990年提出的一种新的开发模型。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。,其特点如下: . 开发过程有分析、系统设计、软件设计和实现4个阶段。 .各阶段相互重叠,它反映了软件过程并行性的特点。 .以分析为基础,资源消耗成塔型。 .反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。 .强调增量开发,整个过程是一个迭代的逐步提炼的过程。,面向对象的方法的代表性成果有: 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的基础上推出了统一建模语言UML。, 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)软件生产率低,不能满足需要。,

    注意事项

    本文(武汉理工软件工程课件第1章软件工程概述.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




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

    三一文库
    收起
    展开