软件工程基础指导(一)ppt课件_第1页
软件工程基础指导(一)ppt课件_第2页
软件工程基础指导(一)ppt课件_第3页
软件工程基础指导(一)ppt课件_第4页
软件工程基础指导(一)ppt课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程基础,指导(一),1,软件工程课程要求,课程目的掌握软件工程的基本原理、先进的软件开发方法和成熟的过程管理经验。培养知识的综合运用能力和问题的协同解决能力。,建议教学用书SoftwareEngineering:ApractitionersApproach(FifthEdition)RogerS.Pressman,2001,清华大学出版社软件工程:实践者的研究方法(第5版)机械工业出版社2002年9月梅宏等译软件工程理论与实践(第二版原文影印)高等教育出版社2001年8月ShariLawrencePfleeger著,2,软件工程课程部分,掌握软件工程的基础知识和理论,了解该学科的新技术和发展趋势;介绍软件开发生命周期中使用的技术方法,强调软件开发过程的方法研究;使学生学会运用传统或面向对象的软件工程方法进行软件需求分析、系统设计、实现和测试;分析大型软件开发过程中出现的问题;通过课程实践作业,实际运用软件工程的技术和方法,掌握软件项目管理和团队开发的工作方法。,在课程评价中的比重:考试占50%,3,软件工程课程内容,软件工程概述(3学时)软件项目管理(3学时)需求工程(6学时)软件设计(3学时)面向对象技术(3学时)软件测试、确认与验证(3学时)软件维护(3学时)软件质量与软件工程标准(3学时)工具与环境(3学时),在课程评价中的比重:作业占15%,4,软件工程实验部分,培养学生实际完成软件项目的能力,使学生能够运用所学理论知识,承担部分或独立完成项目。通过规范化训练,使学生具备良好的软件开发素质和规范的文档编制能力;了解需求分析要点及实际软件工程的实施方式,学会领会并总结开发经验与教训,学生能够应付实际问题的挑战;通过团队开发,提高沟通及协同工作能力。,在课程评价中的比重:项目作业占35%,5,软件、软件危机软件工程解释软件工程发展简史软件工程原则软件工程主要内容软件过程,第一讲软件工程概述,6,1软件、软件危机,软件的定义程序、数据及其相关文档的完整集合。软件特征软件是一种逻辑实体,具有抽象性;软件的生产与硬件的制造不同;软件在运行使用过程中,不会磨损;软件的开发至今尚未完全摆脱手工艺的开发方式。,7,软件应用领域,系统软件为其他程序提供系统服务实时软件实时响应、控制外部环境商务软件商业信息管理工程和科学计算软件数值计算与分析嵌入式软件嵌入并作用于智能产品智能软件利用非数值算法解决复杂问题,8,9,70年代以后软件发展,7090年代:Internet初始阶段物理层+TCP/IP90现在:Web阶段HTTP+Browser=呈现信息的窗口技术=文化ClientServer现在未来十年:智能网络静态=动态,被动=主动,呈现=智能网络服务,.NETXML数据交换协议,10,软件发展趋势,平台网络化技术对象化系统构件化产品领域化开发过程化生产规模化竞争国际化,-任何软件都是有体系结构的,体系结构决定了软件的整体性能;-任何软件生产都是有过程的,软件过程决定了软件的质量-任何软件都是处理信息的,数据-信息-知识-智慧,11,软件代价高,而硬件越来越廉价;难于控制开发进度,开发速度赶不上市场变化;软件工作量估计困难,适应不了新领域的要求;质量低,且难以发挥硬件潜能;软件修改、维护困难,集成遗留系统更困难;,随着信息技术的迅猛发展软件问题过去乃至将来都可能会制约计算机应用,软件危机,12,硬件和软件所占费用的比例图,13,软件代价高,而硬件越来越廉价;难于控制开发进度,开发速度赶不上市场变化;软件工作量估计困难,适应不了新领域的要求;质量低,且难以发挥硬件潜能;软件修改、维护困难,集成遗留系统更困难;,随着信息技术的迅猛发展软件问题过去乃至将来都可能会制约计算机应用,软件危机,14,2如何理解软件工程?,“运用现代科学技术知识来设计并构造计算机程序设计及为开发,运行和维护这些程序所必须的相关文件资料”。Boehm“将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护中”IEEE93“软件工程学是为在成本限额以内按时完成开发和修改软件产品所需的系统生产和维护的技术和管理的学科”。Fairely“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。FritzBauer软件工程是以借鉴传统工程的原则、方法,以提高质量,降低成本为目的指导计算机软件开发和维护的工程学科。,软件工程包括三个要素过程、方法和工具,三者共同以质量管理为基础。,15,软件工程与软件过程,软件工程是由有创造力、有知识的人在定义好的、成熟的软件过程中进行的。,16,不成熟的软件机构特征,软件过程一般在项目进行中由参与开发的人员确定;软件机构是反应型的;项目的进度和经费预算由于估计得不切实际,所以常常突破;产品质量难以预测;,成熟的软件机构特征,建立了机构级的软件开发和维护过程;软件过程在经过论证与分析后可做改进;软件产品的好坏由质量保证小组监控;根据以往经验确定项目进度和预算;,软件过程与成熟度模型,17,过程成熟度模型,可重复的实践,以技能为基础的实践,可度量和可授权的实践,持续改进的实践,18,付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发工作,及时交付使用;,软件工程项目的基本目标,19,软件工程目标之间的相互关系图,20,软件工程发展简史,20世纪60年代开发方法“功能性程序设计”理论成就1968年10月北大西洋公约组织(NATO)的科学委员会提出了软件危机问题,从而提出“软件工程”问题;技术目标如何扩大程序系统的规模,以适应更复杂的应用。,21,发展简史(续),20世纪70年代开发技术:结构化分析及结构化设计方法理论成就:1)数据结构,算法理论2)形式方法,程序证明3)瀑布模型及相应技术方法技术目标:要解决软件危机,22,发展简史(续),20世纪80年代:开发方法:1)转向构造系统的方法2)软件体系结构3)复杂的文档管理理论成就:1)关系数据库的关系理论2)COCOMO模型,CMM模型技术目标:1)大幅度提高个人的生产率2)软件复用,面向对象技术,23,发展简史(续),20世纪90年代:开发方法:基于Internet/web技术的软件开发研究焦点是软件体系结构、软件设计模式、标准化、协议、集成等问题理论成就:以研究封闭的系统转向一个开放的不断进化的系统。技术目标:JUSTINTIMEINFORMATION,24,4软件工程原则,选取适宜的开发模型;采用合适的设计方法;提供高质量的工程支撑;重视软件工程的管理。,25,5软件工程的主要内容,软件开发模型软件开发方法软件过程软件工具及开发环境软件工程标准文档,26,软件工程标准,国际标准国家标准行业标准企业(机构)标准项目(课题)标准,27,5软件工程的主要内容,软件开发模型软件开发方法软件过程软件工具及开发环境软件工程标准文档,28,软件过程是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。,需求:包括问题分析和需求分析;设计:包括概要设计和详细设计;实现:把设计结果转换为可执行的程序代码;测试:包括单元测试、集成测试和确认测试;维护:是对投入运行的软件进行修改,使软件系统能适应外界环境变化、实现功能扩充和质量改善。,6软件过程,29,Solutionintegration,TechnicalDevelopment,Problemdefinition,Statusquo,软件过程模型:框架,30,Statusquo,Technicaldevelopment,Problemdefinition,Solutionintegration,Statusquo,Technicaldevelopment,Problemdefinition,Solutionintegration,Statusquo,Technicaldevelopment,Problemdefinition,Solutionintegration,Statusquo,软件过程模型:嵌套表示,31,软件过程模型:分类,线性顺序模型原型模型RAD模型演化软件过程模型基于构件的开发形式化开发模型第四代技术,32,Test,Code,Design,System/informationengineering,Analysis,线性顺序模型或传统生存期或瀑布模型,33,线性顺序模型或传统生存期或瀑布模型,RequirementsAnalysis,Systemdesign,Unit&IntegrationTesting,SystemTesting,Operation&Maintenance,Programdesign,Coding,AcceptanceTesting,34,线性顺序模型或传统生存期或瀑布模型,RequirementsAnalysis,Systemdesign,Unit&IntegrationTesting,SystemTesting,Operation&Maintenance,Programdesign,Coding,AcceptanceTesting,Requirements,Design,Implementation,35,线性顺序模型特点,严格活动序列;严格阶段成果评审;不允许需求的不确定性;不显式支持活动迭代;要求用户极大的耐心;开发过程“阻塞”;,36,软件过程模型:分类,线性顺序模型原型实现模型RAD模型演化软件过程模型基于构件的开发形式化开发模型第四代技术,37,原型实现模型,Customertestdrivesmock-up,Listentocustomer,Build/revisemock-up,38,原型实现模型特点,支持问题从抽象到具体的逐步演化过程软件的“临时版本”,未考虑性能需求技术方案未必最优会导致开发过程的不可收敛性多作为沟通用户和开发者的桥梁,而后抛弃,39,软件过程模型:分类,线性顺序模型原型模型RAD(RapidApplicationDevelopment)模型演化软件过程模型基于构件的开发形式化开发模型第四代技术,40,RAD模型,Processmodeling,Testing&turnover,Datamodeling,Businessmodeling,Applicationgeneration,6090days,Team#1,Businessmodeling,Datamodeling,Processmodeling,Applicationgeneration,Testing&turnover,Team#2,Businessmodeling,Datamodeling,Processmodeling,Applicationgeneration,Testing&turnover,Team#3,41,RAD模型特点,基于构件的快速线性开发;大型项目需要足够的人力组建足够的RAD组;要求较高的业务水平和开发水平;适合成熟领域的应用开发;模块划分的过分独立会带来性能的降低;,42,软件过程模型:分类,线性顺序模型原型模型RAD模型演化软件过程模型基于构件的开发形式化开发模型第四代技术,43,演化软件过程模型,体现软件的变化特征,突出迭代思想增量模型以尽早占领市场为目的,逐步发布版本;可有计划地管理技术风险;螺旋模型不同版本、不同形式的不断进化;需要高水平的风险评估技术;WINWIN螺旋模型从客户处诱导项目需求,强调客户交流;追求“双赢”结果;并发开发模型由用户要求、管理决策和评审结果驱动;每一个软件工程活动触发活动网络的状态变迁;,44,演化增量模型,Analysis,Test,Code,Design,Analysis,Test,Code,Design,Analysis,Test,Code,Design,Analysis,Test,Code,Design,System/informationengineering,Increment1,Deliveryof1stincrement,Deliveryof2ndincrement,Deliveryof3rdincrement,Deliveryof4thincrement,Calendartime,Increment2,Increment3,Increment4,45,螺旋模型,46,1.IdentifyNext-levelstakeholders,2.Identifystakeholderswincondition,3a.Reconcilewincondition3b.Establishnext-levelobjectives,Constraintsandalternatives,4.Evaluateprocessandproductalternativesandresolverisks,5.Definenext-levelofproductandprocess,includingpartitions,7.Reviewandcomment,6.Validateproductandprocessdefinitions,WINWIN螺旋模型,47,演化并发开发模型,Underdevelopment,Underview,Underrevision,Baselined,Done,AwaitingChange,None,RepresentsastateofaSoftwareengineeredactivity,Analysisactivity,48,软件过程模型:分类,线性顺序模型原型实现模型RAD模型演化软件过程模型基于构件的开发形式化开发模型第四代技术,49,Planning,Riskanalysis,EngineeringConstruction&release,Cus

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论