您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 武汉理工软件工程课件第1章 软件工程概述
主讲:许家珆电子科技大学学习“软件工程”的目的和意义学会如何在现代IT企业的环境中做一个成功者;学会如何做世界级的、高质量的研究;学会如何创建大规模的软件产品。——微软全球资深副总裁原微软亚洲研究院院长首席科学家张亚勤一、全球软件产业的现状、趋势与挑战TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.1.软件产业的网络化趋势2.软件产业的服务化趋势3.软件产业的全球化趋势智能网络(IntelligentWeb)·从静态网到动态网·从被动方式到主动方式·从呈现信息和浏览的窗口到智能生成的平台·从HTML到XML一、全球软件产业的现状、趋势与挑战TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.1.软件产业的网络化趋势2.软件产业的服务化趋势3.软件产业的全球化趋势相对目前“打包式”软件,为用户提供智能化的“服务式”软件。一、全球软件产业的现状、趋势与挑战TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.1.软件产业的网络化趋势2.软件产业的服务化趋势3.软件产业的全球化趋势·强调开放性、交互性·支持主流的开放式标准·人才的全球化对中国软件企业有什么启示和挑战?TalentBeyondTechnology_WhatKindofTalentWeNeedforModernSoftwareDevelopment扎实的基础创新、独立的工作能力主人翁精神和团队精神勾通与协调能力成就感强、有激情自觉地干好工作契而不舍,从错误中学习二、现代软件开发对人才的要求我国复合型软件人才匮乏,培养适应迅速变化的市场需求的复合型软件人才已是迫在眉睫。三、信息化建设中对复合型软件人才的需求复合型软件人才—具备不同专业背景、有市场观念的开发管理、工程管理和软件经营等复合型软件人才;四、软件开发中的错误观点2.软件需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随时可以修改。1.只要掌握了1-2门程序设计语言,进行软件开发就没有问题。总之,错误认为:软件就是程序,开发软件就是编写程序。3.只要有最好的开发工具、最好的计算机,一定能做出优秀的软件。本课程学习的主要内容1.传统的软件工程方法2.面向对象的建模技术—UML统一建模语言3.软件项目管理及CMM4.软件复用及构件工程本课程以传统的软件工程技术为基础,主要讨论如何应用软件工程的最新技术—UML统一建模语言进行软件开发,提高软件开发的水平和技术。课程特点与安排1.课程特点:实践性强、发展迅速2.课程安排(建议):课堂教学(48学时)—授课、案例分析、讨论课程设计(课外为主,需求阶段及总体设计阶段的答辩式评审共8学时)课程设计以开发小组为单位进行。3.关于考试(建议):笔试:40分,课程设计:40分,平时:20分教材及主要参考书作者:许家珆主编白忠建,彭德中,吴磊编写出版社:电子工业出版社1.软件工程—方法与实践本书是在吸取了国内外有关教材的精华,并结合编者多年来进行软件工程的教学及软件开发实践的经验、体会的基础上编写的。作者:许家珆曾翎彭德中出版社:高等教育出版社出版日期:2004-06-30配套光盘1张2.软件工程—理论与实践本书是教育部新世纪网络课程建设工程的子课题“软件工程网络课程”配套教材。其主要特色是理论与实践密切结合,给出了“软件工程课程设计”的相关指导。其第二版已评为国家十一五规划教材,拟今年内出版。教材及主要参考书教材及主要参考书3.软件工程SoftwareEngineering,6thEdition作者:(英)IanSommerville出版社:机械工业出版社(影印版)本书是英国著名软件工程学家IanSommerville系统介绍软件工程理论的力作,以要求极高的一类系统为实例,精辟透彻地阐述了软件工程的内涵。参考网站对象技术和构件技术链接(ObjectManagementGroup)对象技术和构件技术链接软件工程的产生和发展软件工程(SoftwareEngineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。随着互联网平台和环境的迅速发展,对软件工程的发展产生了变革性的巨大影响,网格计算、普适计算、中间件、网构软件等一批新技术和理念,从网络资源共享与管理,人机交互及软件服务等各方面提出了软件技术的新课题。软件工程的发展已经历了四个重要阶段:4.第四代软件工程—构件工程3.第三代软件工程—过程工程2.第二代软件工程—对象工程1.第一代软件工程—传统的软件工程软件工程的发展已经历了四个重要阶段:1.第一代软件工程—传统的软件工程2.第二代软件工程—对象工程3.第三代软件工程—过程工程4.第四代软件工程—构件工程60年代末到70年代为了克服“软件危机”(Softwarecrisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。软件工程的发展已经历了四个重要阶段:1、第一代软件工程—传统的软件工程2、第二代软件工程—对象工程3、第三代软件工程—过程工程4、第四代软件工程—构件工程80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。软件工程的发展已经历了四个重要阶段:1、第一代软件工程—传统的软件工程2、第二代软件工程—对象工程3、第三代软件工程—过程工程4、第四代软件工程—构件工程80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。软件工程的发展已经历了四个重要阶段:1、第一代软件工程—传统的软件工程2、第二代软件工程—对象工程3、第三代软件工程—过程工程4、第四代软件工程—构件工程90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广,研究的主要内容有以下几方面:}软件开发技术软件开发方法、技术软件开发工具及环境软件管理技术软件规范(国际规范)}软件管理技术1.2软件工程过程与软件生存期为了克服软件危机,人们从其他产业的工业化生产得到启示,于是在68年北大西洋公约的软件可靠性会议(NATO)上,首次提出了“软件工程”的概念。提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。通常包括以下四类基本过程:1、软件规格说明:规定软件的功能及其运行环境。2、软件开发:产生满足规格说明的软件。3、软件确认:确认软件能够完成客户提出的要求。4、软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。软件工程过程(Softwareengineeringprocess)软件工程过程(Softwareengineeringprocess)规程与方法工具和设备有技能经过培训的开发人员过程问题定义编码需求分析软件设计可行性研究运行与维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)软件生命周期(SDLD)—瀑布模型瀑布模型1.3软件开发模型软件开发模型是描述软件开发过程中各种活动如何执行的模型。因此又称为软件过程模型。软件过程模型是对软件开发实际过程的抽象和简化。目前典型的软件开发模型有:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。不同的开发方法有不同的软件过程模型。瀑布模型问题定义编码需求分析软件设计可行性研究运行与维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型增量模型(incrementalmodel)增量模型是一种非整体开发的模型。是一种进化式的开发过程。根据增量的方式和形式的不同,分为:基于瀑布模型的渐增模型基于原型的快速原型模型该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。增量模型和瀑布模型之间的本质区别是什么?为了描述软件开发过程中可能的回溯,尤其是维护阶段往往要经历上述各个阶段。采用循环模型描述。需求分析设计编码测试运行评价计划循环模型循环模型速成原型的工作模型是一个循环的模型。1.快速分析快速确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能)2.构造原型考虑主要特征,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。3.运行和评价原型4.修改与改进原型的工作模型运行评价构造快速分析修改智能模型(intelligentmodel)获取需求需求分析具体描述优化程序调整验证维护知识库专家系统程序也称为基于知识的软件开发模型,是知识工程与软件工程相结合的软件开发模型。智能模型1.4软件开发方法软件开发的目标是要在规定的投资和时间内,开发出符合用户的需求,高质量的软件,为此需要有成功的开发方法。软件开发方法可分为两大类:面向过程的开发方法面向对象的开发方法结构化开发方法(StructuredDevelopingMethod),应用最广泛的方法,主要特点是快速,自然和方便。、逐步求精。它的基本原则是功能的分解与抽象。一、结构化开发方法的组成结构化程序设计方法SP法(StructuredProgram)结构化设计方法SD法(StructuredDesign)结构化分析方法SA法(StructuredAnalysis)SA,SD,SP法相互衔接,形成了一整套开发方法。结构化方法及瀑布模型什么是原型化方法(PrototypingMethod)原型化方法及其工作模型原型——是软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。原型化方法又称速成原型法(RapidPrototyping)。原型化方法及其工作模型1、废弃(throwaway)型RSP法(RapidSpecificPrototyping)快速建立需求规格原型。2、追加(addon)型RCP法(RapidCyclicPrototyping)快速建立渐进原型法。采用循环渐进的开发方式,对系统模型作连续精化。构造原型运行/评价原型原型完成否要细部说明否严格说明细部效果满意否整理原型提供文档修正改进原型YYNN快速分析,确定初步规格说明YN细化的快速原型模型图2细化的快速原型模型快速分析或修改评价构造运行对大型软件,需要多个原型描述系统的生存期,螺旋模型将瀑布模型与原型化模型结合起来,并加入了风险分析。螺旋模型螺旋模型螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:第一,确定目标、方案和限制条件;第二,评估方案、标识风险和解决风险;第三,开发确认产品;第四,计划下一周期工作。面向对象方法(OOSD(Object-OrientedSoftwareDevelopment)是80
本文标题:武汉理工软件工程课件第1章 软件工程概述
链接地址:https://www.777doc.com/doc-196589 .html