项目管理03_SoftwareProcess_551005289

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SoftwareProjectManagement2010软件开发过程刘强清华大学软件学院2从足球赛看软件开发3建造一个房屋的过程相同的生命周期不同的过程4内容提纲软件过程软件过程的概念软件过程的基本活动软件过程模型常见的软件过程模型业界最佳实践统一软件开发过程(RUP)敏捷开发方法微软公司的软件开发过程5什么是软件过程?软件过程是为了获得高质量软件而实施的一系列活动,它定义了工作任务、项目里程碑、交付物和质量保证点。6什么是软件过程?软件设计软件实现交付运行软件维护需求开发验证与确认软件配置管理文档开发培训项目启动项目执行与监控软件质量管理7软件过程的基本活动问题定义软件产品往往起源于人们的设想或者现实的问题。人们通过开展技术探索和市场调查等活动,研究系统的可行性和可能的解决方案,确定待开发系统的总体目标和范围。问题提出可行性研究可行性分析报告8软件过程的基本活动需求开发是在可行性研究之后,分析、整理和提炼所收集到的客户需求,建立完整的需求分析模型,编写软件需求规格说明。持续进行的需求管理需求获取需求分析需求规格说明需求验证会议记录等分析模型需求规格说明书已确认的需求规格说明书活动工作产品9软件过程的基本活动软件设计是根据需求规格说明,确定软件体系结构,进一步设计每个部件的实现算法、数据结构及其接口等。需求规格说明体系结构设计抽象描述接口设计组件设计数据结构设计算法设计系统体系结构系统规格说明接口说明组件说明数据结构说明算法说明设计活动设计产品10软件过程的基本活动软件实现是将软件设计转换成程序代码。UnderstandModelsWriteSourceCodeDocumentSourceCodeCodeOptimizationReuseCode&ComponentBuildSoftwareSoftwareIntegrationPlanDevelopmentCodeReviewUnitTestingModelsInfrastructureProgramSourceCode11软件过程的基本活动软件测试是检查和验证所开发系统是否符合客户期望,包括单元测试、子系统测试、集成测试和验收测试等。需求规格说明系统规格说明系统设计详细设计单元测试子系统集成测试系统集成测试验收测试维护验收测试计划系统集成测试计划子系统集成测试计划测试活动12软件过程的基本活动软件演化是系统投入使用后对其进行改进以适应不断变化的需求。现在完全从头开发的系统很少,将软件系统的开发和维护看成是一个连续过程更有意义。定义系统需求访问现有系统提出系统变更修改系统现有系统新系统13软件过程制品问题定义需求开发软件设计软件实现软件测试构想文档用例模型分析模型软件需求规格说明设计模型软件体系结构文档软件详细设计文档源程序目标代码可执行构件测试规程测试用例测试报告软件开发管理(软件项目管理计划、软件配置管理计划、软件质量保证计划、评审记录……)14思考与讨论下列决定是在需求分析时还是软件设计时做出的?停车管理系统由远程管理服务、ARM精算子系统和锁车控制器等三个部分组成。停车管理系统支持现金、磁卡、信用卡、非接触式IC卡等多种支付方式。停车管理系统的硬件使用ARM9微处理器S3C2440A,操作系统使用经过裁剪的Linux。停车管理系统在停车场现场发生错误时可以自动向远程管理中心发信息,请求远程协助。停车管理系统全天候不停电工作,系统必须可靠、稳定运转。15内容提纲软件过程软件过程的概念软件过程的基本活动软件过程模型常见的软件过程模型业界最佳实践统一软件开发过程(RUP)敏捷开发方法微软公司的软件开发过程16什么是软件过程模型?软件过程模型是软件过程的抽象表示。常见的软件过程模型瀑布模型(WaterfallModel)原型模型(PrototypeModel)增量模型(IncrementalModel)螺旋模型(SpiralModel)形式化方法模型(FormalMethods)基于组件的开发模型(ComponentBasedSoftwareDevelopment)17瀑布模型瀑布模型的开发阶段严格按照线性方式进行,每一个阶段具有相关的里程碑和交付产品,且需要确认和验证。需求定义与分析软件设计软件实现软件测试软件运行与维护18瀑布模型优点线性的、按阶段顺序的过程模型,阶段间具有顺序性和依赖性强调文档的作用,要求每个阶段都要仔细验证缺点开发过程中间很难响应客户的变更要求将软件开发看成是制造过程而不是创作过程早期的错误可能要等到开发后期的测试阶段才能发现适用场合适用于在开发的早期阶段软件需求被完整确定的软件项目分析设计人员对应用很熟悉,用户使用环境很稳定19原型模型原型模型需要迅速建造一个可以运行的软件原型,以便理解和澄清问题,使开发人员与用户达成共识。听取用户意见建造/修改原型用户测试运行原型20原型模型优点从实践中学习,改善沟通和用户参与使部分已知需求清晰化,减少了由于需求不明确带来的风险缺点用户有时可能误解原型和真实系统是一样的用户可能不断提出新要求,从而使原型的迭代周期很难控制研究结果表明构造一个原型可能需要10%额外花费适用场合用户驱动的交互式系统,即需求模糊或随时间变化的系统简单而熟悉的行业或领域,即小型或中等规模的系统21结合原型的瀑布模型22迭代开发瀑布模型不支持迭代,而软件开发具有迭代性紧迫的市场期限使得难以完成一个完善的软件产品23迭代开发迭代开发是利用迭代的思想,使人们渐进地开发软件,逐步完善软件版本。类型:增量模型、螺旋模型24增量模型calendartimeanalysisdesigncodetestSystem/informationengineeringincrement1deliveryof1stincrementCoreproductanalysisdesigncodetestincrement2deliveryof2ndincrementMorefeaturesandfunctionalityanalysisdesigncodetestanalysisdesigncodetestincrement3increment4deliveryof3rdincrementdeliveryof4thincrement25增量模型优点较好地适应需求变化,用户可不断地看到一些可运行中间版本将早期增量作为原型有助于明确后期增量需求,降低开发风险由于重要功能被首先交付,从而使其得到最多的测试缺点需要软件具备开放式的体系结构容易退化为边做边改方式,使软件过程的控制失去整体性增量与需求的准确映射以及所有增量的集成可能会比较困难适用场合对应用领域不熟悉,难以一步到位;客户接受分阶段交付有较好的类库和构件库26螺旋模型风险分析风险分析原型1操作原型评审操作的概念需求规划和生命周期规划开发计划集成和测试计划仿真、模型、基准测试产品设计详细设计软件需求需求确认设计确认与验证编程单元测试集成测试验收测试运行规划下一阶段确定目标、可选方案和约束预估可选方案、明确并解决风险开发和检验下一产品风险分析风险分析原型2原型327螺旋模型优点关注软件的重用关注早期错误的消除将质量目标放在首位将开发阶段与维护阶段结合在一起缺点契约开发通常需要事先指定过程模型和发布产品需要风险评估的经验适用场合大型复杂软件系统的内部开发28形式化方法模型形式化方法模型是采用形式化的数学方法将系统描述转换成可执行的程序。需求定义形式化描述集成和系统测试形式化转换1形式化转换2······形式化转换n29形式化方法模型优点由于数学方法具有严密性和准确性,形式化方法开发过程所交付的软件系统具有较少的缺陷和较高的安全性缺点开发人员需要具备一定技能并经过特殊训练形式化描述和转换是一项费时费力的工作适用场合难以适用于交互性强的软件系统特别适合于那些对安全性、可靠性和保密性要求极高的软件系统,这些系统需要在投入运行前进行验证30基于组件的开发模型基于组件的开发技术是使用可重用的组件或商业组件建立复杂的软件系统。需求定义组件分析需求修改面向复用的系统设计开发和集成系统验证组件库组件选取组件更新31基于组件的开发模型组件开发技术的两个重要因素基于组件的软件体系结构基于组件的开发过程优点充分体现软件复用的思想实现快速交付软件缺点商业组件的修改受到限制,影响系统的演化32思考与讨论实例一:汽车制动防抱系统汽车制动防抱系统(Anti-lockedBrakingSystem,简称ABS)是一种具有防滑、防锁死等优点的汽车安全控制系统。该系统通过汽车微电脑控制,以非常快的速度精密地控制制动液压力的收放,从而达到防止车轮抱死,确保轮胎的最大制动力以及制动过程中的转向能力,使车辆在紧急制动时具有躲避障碍的能力。实例分析嵌入式控制系统该系统对安全性和可靠性要求高,需要在投入运行前进行验证适合采用形式化方法33思考与讨论实例二:大学教务管理系统学校准备开发一个新的教务管理系统,替换现有的系统。新版系统可以解决现有系统存在的一些结构化问题,强化了教育教学资源统一规划的理念,加强了对完全学分制、多校区、多学期、按类招生等模式的支持,提升了教师、学生等用户的Web界面查询应用功能。实例分析软件需求稳定,开发人员对应用熟悉适合采用瀑布模型34思考与讨论实例三:虚拟现实系统支持飞机驾驶的教学训练学员通过操作控制设备,学习在各种情况下驾驶飞机,包括起飞、空中飞行和降落,在反复训练过程中达到熟练掌握驾驶技术的目的。实例分析系统需求可能会发生变化系统应该易于维护和修改业务上存在不确定性适合采用螺旋模型35思考与讨论实例四:列车时刻查询系统它是一个交互式的列车时刻查询系统,可以查询全国所有火车的车次、车站、时刻、票价等信息。用户可以通过安放在火车站的终端进行查询,也可以通过互联网或者手机进行查询。实例分析用户界面比较复杂系统要求具有稳定性和可靠性适合先采用原型法确定需求,之后再使用增量模型36内容提纲软件过程软件过程的概念软件过程的基本活动软件过程模型常见的软件过程模型业界最佳实践统一软件开发过程(RUP)敏捷开发方法微软公司的软件开发过程37登山的故事38统一软件开发过程统一软件开发过程(RationalUnifiedProcess,RUP)RUP是IBMRational公司开发和维护的过程产品,它使开发队伍与顾客、合伙人、产品小组及顾问公司共同协作,确保开发过程持续更新和提高,以反映新的经验和不断演化的实践经历。对于所有的关键开发活动,它为每个团队成员提供了能使用准则模板工具指导来进行访问的知识基础。它有效使用统一建模语言UML,强调开发和维护模型(语义丰富的软件系统表达),而不是强调大量的文本工作。它对大部分开发过程提供自动化的工具支持,用于创建和维护开发过程中产生的各种制品(特别是模型)。39统一软件开发过程40统一软件开发过程ArchitecturebaselinedLifecycleArchitectureMilestoneScopeandBusinessCaseagreementLifecycleObjectiveMilestoneProductsufficientlymatureforcustomersInitialOperationalCapabilityMilestoneCustomeracceptanceorendoflifeProductReleaseInceptionElaborationConstructionTransitiontime41统一软件开发过程举例:手机开发项目手机功能列表:.通话.短信.地址簿.游戏…完善细化需求实现基本通话功能测试基本通话功能完善细化需求实现短信功能测试短信功能

1 / 62
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功