2.3现代模型:基于构件的开发、统一过程、敏捷开发模型 |
您所在的位置:网站首页 › 统一过程模型特点包括 › 2.3现代模型:基于构件的开发、统一过程、敏捷开发模型 |
2.3现代模型:基于构件的开发模型、统一过程模型、敏捷开发模型
基于构件的开发模型
例如:动态链接库(.dll),浏览器插件 概念近年来得到广泛应用的软件过程模型。由于采用构件技术和重用技术,它改变了大型软件的开发方式,使得软件开发时考虑的焦点不再是实现,而是集成。通过复用和集成已有的构件来实现软件开发。 构件就像一个螺丝,是系统中模块化的、可更换的部分,一个相对独立的模块,并且能够被另一个具有相同接口的构件所替换。 功能及特点构件实现特定的功能,并对实现进行封装,暴露一组接口,外界不需要知道构件内部实现的细节,只需要通过接口访问构件提供的服务。构件的例子很多,如浏览器插件 开发模型基于构件的开发模型包括 2 部分:系统开发、构件开发与维护。 可以有两种选择: 修改构件,但是商用构件通常不能修改。 修改需求,而修改需求可能会导致最终产品和用户要求不完全一致,这时就需要和用户协商。 (2)构件开发与维护开发新构件或者购买新构件来扩充和维护构件库。 构件开发阶段四个阶段: •软件复用 •降低开发成本和风险,加快开发进度,提高软件质量 缺点•模型复杂 •商业构件不能修改,会导致修改需求,进而导致系统不能完全符合客户需求 •商业构件通常不能修改,会导致修改需求,也导致了无法完全控制所开发系统的演化 •项目划分的好坏直接影响项目结果的好坏 适用场合由于采用复用思想,故适用于系统之间有共性的情况。 统一过程模型完整且完美的软件工程方法,广泛使用,基于面向对象方法学,使用统一建模语言UML(Unified Modeling Language) 描述软件开发过程——从3个视角: 动态视角:随时间变化的各个阶段,包括初始阶段、精化阶段、构建阶段和产品化阶段,采用迭代方式开发。 静态视角:各个开发阶段所要进行的活动,如业务建模,需求,分析设计,实现,测试等。 实践视角:开发中可采用的良好实践建议,这些实践经过大量实际项目证明,对提高软件开发效率和质量非常有效。 统一过程的模型图横轴是动态视角,表示软件开发随时间变化的各个阶段。整个过程是迭代的。分成4个连续阶段: 初始阶段:进行项目计划和评估风险; 精化阶段:设计系统的体系结构、制定项目计划、确定资源和需求; 构建阶段:开发出所有组件和应用程序,集成并进行详尽测试; 产品化阶段:将产品移交给用户。纵轴是静态视角,表示在每个开发阶段所要进行的活动。 初始阶段:进行业务建模和需求 精化阶段:进行分析设计,以及部分实现, 构建阶段:实现和测试 产品化阶段:进行部署 项目管理贯穿整个开发周期。 各过程的工作初始:项目计划、评估风险; 精化:设计系统的体系结构、制定项目计划、确定资源需求; 构建:开发出所有组件和应用程序,集成并进行详尽测试; 产品化:将产品移交给用户。 则是通过对迭代式软件开发过程的周期、阶段、迭代过程以及里程碑等的描述来进行表示。 6个核心工程工作流: 业务建模工作流 需求工作流 分析设计工作流 实现工作流 测试工作流 部署工作流 3个核心支持工作流: 项目管理工作流 配置与变更管理工作流 环境工作流。 适用场景:大团队、大项目 管理实践六条最佳实践,从大量实际项目的开发经验中总结而来,对实际开发具有指导意义。 1. 迭代式开发•需求变更不可避免 •每次迭代产生一个可交付版本,用户反馈,减少风险 •根据客户的轻重缓急来规划增量,先开发和交付优先级最高的增量 2. 管理需求•采用用例分析来捕获需求,由用例驱动设计和实现 •对需求及其变更进行管理 3. 基于构件体系结构•采用基于构件的体系结构 •提高软件复用率 4. 可视化建模•使用统一建模语言(UML)对系统进行可视化建模 5. 验证软件质量•软件质量评估贯穿整个开发过程的所有活动 •全员参与 6. 控制软件变更•描述如何控制和跟踪软件的变更 敏捷开发模型 不同点别具一格:不要求较复杂的结构,不要求规范的开发,不要求完善的文档。 起源2001年2月,17位编程大师发表敏捷软件开发宣言 宣言一、个体和交互胜过过程和工具。软件开发时,良好的软件过程和现代的软件开发工具非常重要,但是参与开发的人和他们之间的交互更加重要。如果开发人员能力很弱或者他们之间交流很少,即使有良好的软件过程和现代的开发工具也无济于事。 二、可以工作的软件胜过面面俱到的文档。我们开发的目的是可以工作的软件,而非文档。因此我们的开发的重点应该在软件上,而不是花费大量时间撰写大量文档,但并不是不写文档,文档足够即可。 三、客户合作胜过合同谈判。客户和开发者之间应该建立一种合作关系,共同努力开发出软件产品,而不是合同谈判的双方。这样在出现问题时或者计划发生变化时,才能更好应对实现双赢。 四、响应变化胜过遵循计划。外部环境变化往往导致软件需求等发生变化,则计划需要调整,因此软件开发需要能够快速响应变化,及时抓住市场和机遇。 强调敏捷开发强调高效工作、快速响应变化,具有敏捷性。 敏捷开发不是一个方法,它还含有许多不同方法。 例如: 极限编程, 自适应软件开发 并列争球法 动态系统开发方法 水晶法 特征驱动开发 精益软件开发 敏捷软件开发是基本原理和开发准则的结合 基本原理强调: 客户满意度和较早的软件增量交付,软件开发采用迭代方式,每次迭代产生一个增量,每次交付的周期都很短; 团队小但有激情,团队中的每一个人能力都很强,且工作非常有激情,这是保证快速开发的前提; 采用非正式的开发方法,以可工作的软件为目标,适当时候进行结构调整和程序优化; 每次产生最小的软件工程产品。每次迭代产生的增量都很小,保证每次迭代时间都很短,并且对变化具有敏捷性,能根据变化及时调整; 整体开发过程尽量简单化。 开发准则强调: 分析和设计的交付 开发者和客户之间积极持续的交流,客户会派工作人员到开发组,作为客户代表参与开发,使得交流及时和持续,保证敏捷性。 极限编程为例子为例(eXtreme Programming)简称XP,意为:“把好的开发实践运用到极致。” 一次迭代的过程注: 编程之前,需要先写测试用例,再进行编程,以保证开发出的程序能够顺利通过测试。 编程时采用结对编程,即两个人使用同一个工作台进行编程,一个编程一个看,这样能及时发现问题,保证较高程序质量。 开发的程序持续集成到系统中并进行测试,当所有任务完成后发布该版本,然后评估当前版本,进入下一次迭代 极限编程通过一些有效实践来保证快速敏捷开发。 增量式开发。开发采用迭代方式,每次迭代产生一个增量,这种方式能够使得软件及早进入市场,且能够根据反馈及时调整后续开发; 小版本短周期交付:每次迭代产生的增量都很小,交付的周期也很短; 结对编程 代码集体所有 开发团队在开放的工作空间,便于开发人员之间的交互和交流; 可持续的开发速度: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |