Coursera 笔记

Module 01 · The Software Development Lifecycle

Building Quality Software构建高质量软件

Coursera ↗

在本视频中,您将学习:

  • 构建高质量软件所需的常见 软件工程过程

主要软件工程过程

在软件工程项目中,有许多常见的过程。本视频将讨论以下六个重要过程:

  1. 需求收集(Requirements Gathering)
  2. 设计(Design)
  3. 高质量编码(Coding for Quality)
  4. 测试(Testing)
  5. 发布(Releases)
  6. 文档编写(Documenting)

1需求收集(Requirements Gathering)

软件需求规格说明书(SRS) 是收集和记录软件需要遵循的要求的过程。
SRS 可能包括描述业务需求和用户流程的 用例,这些需求和流程是软件必须实现的。

需求的分类

软件需求可分为四大类:

  • 功能需求(Functional Requirements)
  • 外部和用户界面需求(External & UI Requirements)
  • 系统功能(System Features)
  • 非功能需求(Non-functional Requirements)

这些类别将在后续的视频中详细讨论。


2设计阶段(Design)

软件设计 是将需求转化为可以用代码实现的结构的过程。
设计过程将需求转化为开发人员可以使用的语言,进而生成软件解决方案。

设计的关键内容

  • 架构设计:技术负责人将需求分解成一组相关的组件,每个组件有明确的行为、边界和交互。
  • 系统功能、性能、安全性:这些指导方针将融入设计过程中。
  • API 设计:即应用程序接口的设计,用于应用之间或与数据库的通信。
  • 用户界面(UI)设计和数据库设计也在此阶段进行。


3高质量编码(Coding for Quality)

代码质量 是指代码的特性,包括 可维护性、可读性、可测试性 和 安全性 等属性。
质量良好的代码不仅要满足软件的需求,而且还应无缺陷,并且结构清晰、易于维护和理解。

高质量编码的实践

  • 遵循编码标准、编码规范、设计模式 和 编码风格。
  • 使用 自动化工具(如 Linter) 检测程序和风格错误。
  • 在代码中添加 注释,使其他人能够更容易理解和修改代码。


4测试阶段(Testing)

软件测试 是验证软件是否符合既定要求并且没有缺陷的过程。
测试的目的是在与要求比较时,发现错误、遗漏或缺失的需求。

测试的目标

  • 确保软件的 可靠性、安全性、性能 和 效率。
  • 测试可以是 自动化 或 手动,常见的测试级别包括:
    • 单元测试(Unit Testing):由开发人员进行,测试系统中最小的可隔离组件。
    • 集成测试(Integration Testing):当各个组件被集成后进行的测试。
    • 系统测试(System Testing):完成的产品进行全面测试。
    • 用户验收测试(UAT):由最终用户进行的测试。

测试类型

  • 功能测试(Functional Testing)
  • 非功能测试(Non-functional Testing)
  • 回归测试(Regression Testing)

测试级别和类型将在后续视频中进一步讲解。


5发布阶段(Releases)

当软件的新版本发布时,通常被称为 “发布(Release)”。
不同类型的发布面向不同的受众,常见的发布类型包括:

  • Alpha 版本:这是系统的第一个可运行版本,发布给特定的利益相关者,通常存在缺陷,且功能可能不完全,但基本功能是可用的。
  • Beta 版本:通常是面向开发组织外的利益相关者,用于在真实环境中进行测试,验证功能,并识别遗留的 bug 或错误。
  • GA(General Availability)版本:即正式发布版本,供所有用户使用。


6文档编写(Documenting)

软件文档 应提供给非技术性和技术性用户,以帮助他们更好地理解和使用软件。

文档类型

  • 系统文档(System Documentation):面向技术用户,如工程师、开发人员和架构师。系统文档解释软件如何操作或如何使用,通常包括 README 文件、内联注释、架构设计文档、验证信息 和 维护指南。
  • 用户文档(User Documentation):面向非技术用户,帮助他们使用软件,通常包括 用户指南、教学视频、手册、在线帮助 和 内联帮助。

关于文档的更多细节将在后续视频中讨论。


总结

在本视频中,您学习了高质量软件开发的关键过程:

  1. 需求收集:收集和记录软件需求。
  2. 设计:将需求转化为可实施的结构。
  3. 高质量编码:遵循编码实践,确保代码质量。
  4. 测试:验证软件是否符合要求并且没有缺陷。
  5. 发布:将软件发布为 Alpha、Beta 和 GA 版本。
  6. 文档编写:为技术用户和非技术用户提供文档,帮助理解和使用软件。

这些过程是构建高质量软件的基础,确保软件符合需求、稳定可靠并且能够高效维护。