Coursera 笔记

Module 01 · Python Coding Practices and Packaging Concepts

Application Development Lifecycle应用程序开发生命周期 (ADLC)

Coursera ↗

欢迎观看本视频,了解应用程序开发生命周期 (Application Development Lifecycle, ADLC)。观看后,您将能够:

  • 列出应用程序开发生命周期中的步骤。
  • 描述应用程序开发生命周期的不同阶段。
  • 认识在多个文件中编写应用程序代码的重要性。

为什么需要开发生命周期?

无论是构建一个帮助员工跟踪日常任务的简单应用程序,还是一个管理酒店预订(从创建到客户退房)的复杂 Web 应用,您都不能在客户提出请求后立即开始编写代码。

在应用程序准备好供用户使用之前,您需要执行一系列活动,例如分析需求、规划和编码。

无论应用程序类型如何,每个应用程序都将经历不同的阶段,这被称为应用程序开发生命周期 (ADLC)。

ADLC 的七个阶段

应用程序开发生命周期可以分为七个阶段:

  1. 需求收集 (Requirement Gathering)
  2. 分析 (Analysis)
  3. 设计 (Design)
  4. 编码与测试 (Code and Test)
  5. 用户与系统测试 (User and System Test)
  6. 投产 (Production)
  7. 维护 (Maintenance)

各阶段详解

1. 需求收集 (Requirement Gathering)

这是 ADLC 的第一个阶段,目标是捕获应用程序所有方面的需求:

  • 用户需求 (User Requirements): 关注最终用户需要什么功能。
    • 示例 (酒店预订 App): 用户必须能够查看可用的不同房间和设施。
  • 业务需求 (Business Requirements): 关注应用程序如何支持业务目标。
    • 示例 (酒店预订 App): 确定不同房间和设施的正确收费标准。
  • 技术需求 (Technical Requirements): 关注应用程序运行所需的硬件和软件环境。
    • 示例 (酒店预订 App): 应用程序必须能在所有浏览器和移动设备上运行。

核心目标: 尽可能多地捕获需求,即使它们看起来是多余或微不足道的。

同时,必须识别任何设计约束和商业模式的生存能力 (viability):

  • 约束示例: 酒店预订 App 要求服务器始终保持房间状态的实时更新,这会产生相关的成本。为了保持业务可行性,可能需要在最终付款中增加一笔小额便利费。

2. 分析 (Analysis)

在收集完需求和约束后,必须对每一个需求进行分析,以创建应用程序设计的可能解决方案。

3. 设计 (Design)

在分析和设计阶段,可能需要进行多轮验证和修订,以创建一个满足所有指定要求的模型解决方案。

  • 重要性: 必须保持适当的文档记录,记录设计中的所有更新。此文档必须清晰简洁,供下一阶段使用。

4. 编码与测试 (Code and Test)

此阶段将最终提出的设计和指定的需求传递给开发团队。

  • 团队使用设计文档中指定的编程要求来编写代码、测试、修订,并再次测试应用程序程序,直到代码满足所有文档要求。

单元测试 (Unit Testing)

  • 对单个代码单元进行的测试称为单元测试。
  • 在编程层面进行单元测试,以确保满足所有所需规范。
  • 单元测试完成后,即可生成一个可接受的应用程序版本。

5. 用户与系统测试 (User and System Test)

应用程序的新版本将通过一系列用户和系统级别的测试:

测试类型 目的 详细说明
用户测试 (User Tests) 验证功能性 从用户的角度验证应用程序的功能和可用性。
系统测试 (System Tests) 验证集成、性能等 包括以下关键测试:
集成测试 (Integration Tests) 验证程序间的协作 验证所有相关程序在集成后仍按预期运行,并确认应用程序在更大的框架内的功能。
性能测试 (Performance Testing) 评估速度、稳定性 基于不同的工作负载,评估应用程序的速度、可扩展性 (scalability)和稳定性。

测试完成后,可以生成一个新的应用程序版本,并将其发送到投产。

6. 投产 (Production)

一旦进入投产阶段,终端用户即可访问和使用应用程序。

  • 必须确保应用程序准确运行并对用户可用。
  • 应用程序在投产阶段必须保持稳态 (steady state),即不应对应用程序进行任何更改。

例外情况: 如果因错误等情况需要进行更改,这些更改必须经过严格控制和充分测试,然后才能部署到生产环境中。

7. 维护 (Maintenance)

这是 ADLC 的最后阶段。

  • 应用程序可能需要升级,或者需要添加新功能。
  • 在这种情况下,新的功能必须经历所有前面的阶段(从需求收集到用户/系统测试),然后才能集成到已部署在生产环境中的应用程序版本中。

最佳实践:多文件编码

保持应用程序代码的高效和易于维护,最佳实践是为不同的功能编写多个文件。

  • 背景: 每个应用程序通常具有多个功能,并且每个功能的需求可能不同。
  • 方法:
    • 将每个功能的代码编写在单独的文件中。
    • 创建一个中央程序 (central program),负责运行应用程序并调用各个文件来执行特定功能。
  • 优势:
    • 这种代码组织方法使代码维护更高效、更容易。
    • 当需要向现有应用程序添加新功能时,只需在新文件中编写代码,该文件将单独经历设计和验证过程,然后集成到运行中的应用程序中。