Advertisement

软件工程--实践者的研究方法[敏捷开发]

阅读量:

敏捷开发

  • 5.1 解析Agile

  • 5.2 敏捷与变更代价

  • 5.3 解析敏捷过程

    • 5.3.1 Agile原则
  • 5.3.2 极端编程法

  • 5.3.2 工业极端编程IXP

  • 5.4 其他常见的敏捷开发流程

    • 5.4.1 Scrum方法
    • 5.4.2 动态系统开发方法(DSDM)
    • 5.4.3 敏捷建模法(AM)
    • 5.4.4 AUProcess中的统一敏捷管理

5.1 什么是"敏捷"?

迅速且灵活地做出回应以应对变化
促进有效沟通并涉及相关人员
主要关注于及时交付可运行软件而非中间产品
将客户纳入开发团队的工作流程中
能够根据实际情况进行适当调整的项目计划

5.2 敏捷及变更成本

在这里插入图片描述

敏捷拥护者:普遍认可一个经过精心设计的敏捷过程使得软件项目在后续阶段能够应对各种变更和挑战。

5.3 什么是敏捷过程

  • 由用户所需的应用场景引导
    • 意识到计划时间紧迫
    • 采用分阶段开发方式
    • 推出多个版本的软件更新
    • 能够适应性地进行调整和优化

5.3.1 敏捷原则

  1. 首要目标应通过尽早且持续地交付具有商业价值的软件来实现客户满意度的最大化。
  2. 即使在项目后期阶段,我们也鼓励需求变更的提出.敏捷方法通过提供新机会给客户从而为其创造竞争优势.
  3. 持续输出可运行版本的能力不仅有助于及时发现问题还能提升系统性能.最佳实践是确保每次迭代之间的时间间隔尽可能缩短.
  4. 为了确保项目的顺利进行业务和技术人员必须每天都保持密切合作.
  5. 应当围绕那些具有高度积极性和责任感的人选组建团队为其提供必要的资源与支持同时相信其能够独立完成任务.
  6. 面对面交流被认为是团队内部信息传递效率最高最直接的方式.
  7. 可运行软件是衡量项目进度的重要指标是能正常运转的功能模块数量.
  8. 敏捷方法强调持续稳定的开发节奏负责人开发者以及用户体验者应共同努力维持这一状态.
  9. 持续提升专业技能培养良好设计习惯有助于增强团队的整体素质.
  10. 简单是一个不容忽视的原则它要求我们将不必做的工作最大化减少不必要的步骤以提高工作效率
  11. 最佳架构需求与设计往往出自于自发组织起来的专业团队
  12. 团队成员每隔一定时间就需要审视一下如何才能进一步提高工作效率并相应地调整工作流程

注意 :这些可以取舍 ,原则是一种敏捷精神

5.3.2 极限编程

(eX treme P rogramming, XP

  • Agile programming is the most popular method used in agile software development.
    • XP utilizes object-oriented methods as its recommended development paradigm.
    • The XP framework comprises four key stages: planning, designing, coding, and testing, adhering to its established rules and best practices.
在这里插入图片描述
  • 筄劃: 筄劃活動開始於构建一系列描述待開發軟件必要特徵與功能的故事文档。每份故事由客戶书写並放置於一張卡 上,客戶根據對應特徵或功能的 globus 重要性標籤其权重。
  • 設計: XP設計嚴格遵循简洁性原則,即使用簡單而非複雜的表達方式。另外,在故事提供实现准则時, 則建議避免過度添加非必要功能。
  • 編碼 : XP建議在故事開發與基本設計完成后, 不立即進行編碼活動, 而是 developing unit tests for the current software increment. 在 编码 間接 programming 概念中, 結對 programming 是一個重要概念。
  • 測試 : unit tests 必须在編碼開始之前建立起來,and應該使用能夠自動實施的一個框架來支持後續的回 regression testing.
  • 一旦將個人的 unit tests 整合到一個 "通用測試集合" 中, 每天都可以系統地進行集成測試和验证.
  • XP 收驗 test則是由客戶規範技術條件,and注重于 client visible 和可評估的 system-level features and functions.

5.3.2 工业极限编程IXP

  • IXP作为XP的一种延伸发展。
    • 其由XP的基本要求构成,并融合了以客户为导向以及以测试驱动为核心的精神。
    • 相较于传统XP方法论的最大区别在于管理策略更加开放包容。
    • 包括:–准备评估 –项目社区 –项目承租 –测试驱动管理 –回顾 –持续学习。

5.4 其他敏捷过程模型

  • Scrum
  • 动态系统开发方法(DSSD)
  • 敏捷建模(AM)
  • 敏捷统一过程(AUP)

5.4.1 Scrum

  • Scrum原则和敏捷宣言具有一致性。
    • 团队目标是实现"最大化沟通、最小化负担、非语言化知识传递"。
    • 过程具备对技术和业务变化的适应性能力,以确保"生产出最佳产品"。
    • 过程通过频繁发布"可测试、可调整、可文档化、可维护的软件增量"来实现持续交付。
    • 开发工作被划分为"清晰的小型模块或组件",以提高协作效率。
    • 在产品构建过程中坚持实施测试和文档化工作。
    • Scrum方法论强调采用一组"软件过程模式",这些模式已在应对时间紧迫的需求变化以及关键业务项目中得到验证。
    • 待定项(backlog) :为用户提供商业价值的项目需求或特征的重要清单。
    • 冲刺(sprint) :由一系列工作单元组成,这些单元是达成待定项中定义需求所必需的,并要求在预定时间段内完成。冲刺期间不允许有任何变更。
    • Scrum例会 :团队每日召开简短会议进行回顾与计划制定。
在这里插入图片描述

5.4.2 动态系统开发方法(DSDM)

  • DSDM是一种基于在受限环境内采用增量原型开发模式 的敏捷软件开发方法。
  • DSDM协会提出了一个称为DSDM生命周期 的敏捷过程模型。
  • 该框架定义了包含三个主要阶段的完整生命周期:此外,在每个周期中包含两个核心活动:需求与约束可行性研究以及业务研究阶段。这三个主要阶段分别是功能模型迭代阶段、设计与构建迭代阶段以及实现阶段。

5.4.3 敏捷建模(AM)

  • AM是一种用于准确建模规范化软件系统的实践方法论。
  • AM是能够实现高效且采用简洁明了的方式应用于软件开发项目的集合。
  • 由于敏捷模型仅需基本完善即可满足需求,因此其比传统模型更具有优势。

AM独具特色 的建模原则:

  • 以目标为导向的建模
  • 采用多种模型组合
  • 轻车熟路地出发
  • 内容胜过形式
  • 深入掌握模型和工具
  • 满足团队需求

5.4.4 敏捷统一过程AUP

  • 敏捷统一过程遵循了基于全局串行与局部迭代的原理来构建系统。
  • 经典UP阶段性活动通过一系列步骤(包括起始、细化、构建和转换)执行后,AUP通过一系列活动使得团队能够形成一个全面的过程流。
  • 在每个活动中进行敏捷迭代,并迅速交付有意义的增量。
    每个AUP进行以下操作:建模;实现;测试;部署;配置及项目管理;环境管理。

注意:

  • 前面阐述了许多软件过程模型,在此基础上我们必须意识到每一个现有的软件架构都存在不足之处。
  • 尽管许多现有的软件架构尝试应用敏捷方法[1] 但其中仍然存在一些局限性。例如:
    • 不规范地定义系统边界
    • 难以用统一的标准衡量系统的质量
    • 缺乏对需求分析和设计指导的系统化支持
  • 实践中 关键在于识别出一个过程存在的问题所在 并根据组织的具体需求进行调整优化。

全部评论 (0)

还没有任何评论哟~