深色模式
Building Quality Software 构建高质量软件的过程 🔧💻
在本视频中,您将学习:
常见的 软件工程过程
构建高质量软件所需的常见 软件工程过程
主要软件工程过程 🛠️
在软件工程项目中,有许多常见的过程。本视频将讨论以下六个重要过程:
需求收集(Requirements Gathering)
设计(Design)
高质量编码(Coding for Quality)
测试(Testing)
发布(Releases)
文档编写(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):面向非技术用户,帮助他们使用软件,通常包括 用户指南、教学视频、手册、在线帮助 和 内联帮助。
关于文档的更多细节将在后续视频中讨论。

📌 总结
在本视频中,您学习了高质量软件开发的关键过程:
需求收集:收集和记录软件需求。
设计:将需求转化为可实施的结构。
高质量编码:遵循编码实践,确保代码质量。
测试:验证软件是否符合要求并且没有缺陷。
发布:将软件发布为 Alpha、Beta 和 GA 版本。
文档编写:为技术用户和非技术用户提供文档,帮助理解和使用软件。
这些过程是构建高质量软件的基础,确保软件符合需求、稳定可靠并且能够高效维护。
