您好,欢迎访问三七文档
软件工程概论第三讲信息科学与工程学院王珂Tel:18623717535Email:wonka80@163.com微信:wonka80复习提纲---------------------------------------------1.软件工程关注的焦点2.软件工程三要素--过程、方法、工具3.软件过程--基本概念--基本活动内容提纲---------------------------------------------软件过程模型1.瀑布模型2.快速原型模型3.增量模型4.螺旋模型5.基于组件的开发模型6.微软公司软件开发过程模型软件过程模型---------------------------------------------*软件过程模型-对软件过程的抽象描述-从某种特殊角度描述软件过程*常见软件过程模型-瀑布模型-快速原型模型-增量模型-螺旋模型-基于组件的开发模型实例一---------------------------------------------*某公司计划开发二维CAD软件-软件功能需求1.基本功能和国外AutoCAD产品一致2.新增功能:智能划线、智能标注、读取.dwg文件*问题改软件开发适于采用什么过程?瀑布模型---------------------------------------------24••••瀑布模型---------------------------------------------*适用-在开发的早起阶段软件需求被完整确定*挑战-实际项目开发很少是线性的过程,客户很难明确地描述软件需求*缺点-各个阶段划分完全固定,阶段间产生大量文档,极大地增加了工作量-开发过程中很难响应客户的变更需求-早起的错误可能要等到开发后期的测试阶段才能发现,进而带来严重后果实例二---------------------------------------------*北京市交通设施设计与漫游系统-用户的要求(1)完成交通设施的二维图纸设计(2)在二维设计的基础上模拟显示设计的效果-现实情况(1)二维设计部分已有工作基础,新功能开发量不大(2)设计仿真与漫游显示部分需求不确定(3)用户要求开发方提供可行的方案*问题:采用什么方法开发仿真与漫游系统?内容提纲---------------------------------------------软件过程模型1.瀑布模型2.快速原型模型3.增量模型4.螺旋模型5.基于组件的开发模型6.微软公司软件开发过程模型快速原型模型---------------------------------------------*快速原型需要迅速建造一个可以运行的软件原型,以便理解和澄清问题,使开发人员与用户达成共识。27•快速原型模型---------------------------------------------*目的-减少开发风险和需求的不确定性*缺点-原型系统的内部结构可能不好-开发人员需要掌握建立快速原型的开发技术和工具*目的-小型和中等规模的交互式系统-大型系统的某些部分,例如用户界面-生命周期短的系统实例三---------------------------------------------*基于工作流的科技项目管理系统29•内容提纲---------------------------------------------软件过程模型1.瀑布模型2.快速原型模型3.增量模型4.螺旋模型5.基于组件的开发模型6.微软公司软件开发过程模型3012n增量模型---------------------------------------------增量模型---------------------------------------------*优点-整个产品被分解成若干个构件逐步交付,用户可以不断地看到所开发软件的运行中间版本-将早起增量昨晚原型有助于明确后期增量的需求-降低开发风险-重要功能被首先交付,从而使其得到昀多的测试*缺点-需要软件具备开放式的体系结构-需求难以在增量实现之前详细定义,因此增量与需求的准确硬是以及所有增量的有效集成可能会比较困难-容易退化为边做边改的方式,使软件过程的控制失去整体性内容提纲---------------------------------------------软件过程模型1.瀑布模型2.快速原型模型3.增量模型4.螺旋模型5.基于组件的开发模型6.微软公司软件开发过程模型螺旋模型---------------------------------------------32123螺旋模型---------------------------------------------*螺旋回线-每一个回线表示开发过程的一个阶段-例如昀中心的第一个回线可能与系统可行性有关,接着第二个回线与需求定义有关,第三个回线与软件设计有关等*四个步骤-确定该阶段目标、完成这些目标的可选方案及其约束条件-从风险角度分析方案的开发策略,努力排除各种潜在的风险,在需求不适当的情况下可能需要建造原型系统-软件开发和验证工作-评价该阶段的结果,并规划下一个开发阶段螺旋模型---------------------------------------------*优点-关注软件重用-关注早起错误的消除-将质量目标放在首位-将开发阶段与维护阶段结合在一起*缺点-契约开发,通常需要事先指定过程模型和发布产品-需要风险评估的经验实例四---------------------------------------------*空中交通控制系统-在系统运行之前需要进行安全性和可靠性检验*问题:该软件开发适于采用什么过程?实例五---------------------------------------------*开发学生选课系统-某大学计划开发一个心得学生选课系统,替换原有的选课系统-原有系统的数据库将继续使用-新的选课系统允许学生在网上选课和查询课程成绩,教师可以在网上确认所教课程、查询选课学生并登记成绩*问题:该软件开发适于采用什么过程?内容提纲---------------------------------------------软件过程模型1.瀑布模型2.快速原型模型3.增量模型4.螺旋模型5.基于组件的开发模型6.微软公司软件开发过程模型基于组件的开发模型---------------------------------------------*基于组件的开发技术是使用可重用的组件或商业组件建立复杂的软件系统。*当前流行的组件技术JavaEE.NetORM中间件消息队列中间件39••–OMG’sCORBA–COM,COM+,DCOM.NET–SUNJavaBean,EJB,J2EE基于组件的开发模型---------------------------------------------*组件开发技术的两个重要因素-基于组件的软件体系结构-基于软件的开发过程*优点:-充分体现软件复用的思想-实现快速交付软件*缺点:商业组件的修改受到限制,影响系统的演化?其他---------------------------------------------*基于开放源码的软件开发-linux-Apache-Postgres-MySQL-://github.com/讨论与思考---------------------------------------------*以下系统适合采用什么软件过程模型?Why?-汽车防抱死刹车控制系统-支持软件维护的虚拟现实系统-大学教务管理系统,准备替换现有系统-位于火车站的交互式火车车次查询系统内容提纲---------------------------------------------软件过程模型1.瀑布模型2.快速原型模型3.增量模型4.螺旋模型5.基于组件的开发模型6.微软公司软件开发过程模型微软公司的软件开发过程---------------------------------------------*微软公司的开发管理规则1.以目标驱动的开发过程2.具有外部可见的里程碑3.基于多版本的产品发布4.并行协作的小型化团队5.经常性的同步和稳定微软公司的软件开发过程---------------------------------------------45微软公司的软件开发过程---------------------------------------------*规划阶段-开展市场调研,结合公司战略形成产品的愿景目标。*设计阶段-根据产品的远景目标,完成软件功能规格说明书和总体设计,并确定产品开发的主要进度。微软公司的软件开发过程---------------------------------------------*开发阶段-整个开发任务划分成若干个递进的阶段,并设置成M1,M2…Mn等内部里程碑,在每个里程碑都提交阶段性的工作成果。*稳定阶段-实行全面的内部测试和外部测试,昀终形成可发布的RTM版本。*发布阶段-在确认产品质量符合发布标准后,发布产品及其相关消息。微软公司的软件开发过程---------------------------------------------47•M11/3––––––––•M21/3––––––––•M31/3–––––––––“”–微软公司的软件开发过程---------------------------------------------*递进式的开发策略-解决问题的及时性-不确定和变更因素的可控性-缩短产品上市周期*缓冲时间-在每个递进阶段缓冲时间有利于开发人员应对变更、开发难题和时间延迟等问题。*并行与同步机制-小团队并行开发、每天的系统构件。48•–––•–•–123······软件工程及其相关学科的关系---------------------------------------------软件工程是应用计算机科学、数学、与管理科学等基本原理,开发软件的工程。它借鉴传统工程的原则和方法,以提高质量,降低成本为目的。计算机科学和数学用于构造软件的模型与方法;工程科学用于制定规范、设计范型、评估成本及确定权衡;管理科学用于计划、资源、质量、成本等管理。46••SWEBOKSWEBOKSQAV&VSQAV&VSQAV&V
本文标题:软件工程概论3
链接地址:https://www.777doc.com/doc-213267 .html