我是一名在日本从事数字转型(DX)开发超过10年的资深全栈工程师,曾参与过各类各样的ToB,ToC以及个人项目,从设计开发标准严格的大型银行项目到只有要件没有设计,直接开发的先端技术应用小部队项目都有经历,最近抽空总结了日本这边常见的系统开发的各个阶段及其对应的设计文档类型,希望能够对需要的人提供些微帮助,由于本人没有经历过中文的软件开发流程,个别用词完全为日语直译或者照搬中文翻译,如有不当,请多多包涵指教(抱拳)。

通常在日本经历的系统开发的各个阶段 链接到标题
  • 需求分析 (Requirements Analysis)
  • 基本设计 (High-Level Design / Architecture Design)
  • 详细设计 (Low-Level Design / Detailed Design)
  • 开发制造 (Implementation / Coding)
  • 单元测试 (Unit Testing)
  • 集成测试 (Integration Testing)
  • 系统测试 (System Testing)
  • 生产发布 (Production Release)
需求分析 (Requirements Analysis) 链接到标题

需求定义阶段,我们需要理解行业背景知识,明确了解用户的业务需求和期望,将其准确地转化为系统的功能和非功能需求,并将其文档化。

  • 需求规格说明书:描述系统的功能和非功能需求。
  • 应用场景说明书:将系统的功能需求描述为场景或使用案例
  • 外部接口或页面定义说明书:定义与外部系统或用户界面相关的需求和规格。
基本设计 (High-Level Design / Basic Design) 链接到标题

基本设计也称为概要设计,通常确定系统的整体结构和主要组件,将需求转化为可行的解决方案,并确定系统的架构和外部接口。

画面端(前端)设计文档:

  • 用户界面设计文档:定义用于用户操作的界面的设计、布局、导航流程和UI组件规范。
  • 界面跳转图:定义各个界面的跳转关系和用户操作的界面跳转的图表。
  • 用户可用性测试设计文档:定义用于确保用户可用性的测试用例和测试方法。

业务处理端(后端)设计文档:

  • 数据库设计文档:定义后端使用的数据库的结构、表、关系和数据流。
  • 软件各功能设计文档:定义后端逻辑和处理的详细设计。其中包括数据处理、业务逻辑、算法、对数据库的访问等。
  • API设计文档:定义前端和后端之间通信接口的API的设计。其中包括终端点、请求/响应格式、认证/授权等。
  • 安全设计文档:定义后端的安全需求、访问控制、认证、加密、安全策略等。
  • 性能设计文档:描述后端的性能目标、负载测试策略、瓶颈识别等与性能相关的设计。
  • 错误处理设计文档:描述后端的错误处理方法和异常处理设计。
详细设计 (Low-Level Design / Detailed Design) 链接到标题

详细设计阶段是在基本设计的基础上,对系统的各个组件进行详细设计的阶段。在这个阶段,我们通常需要确定每个组件的具体实现方式,并定义其程序逻辑和数据结构。

画面端(前端)设计文档:

  • 画面详细设计书(Screen Detail Design Document)
    • 各个画面的布局、设计、组件的详细信息、输入字段的规格、验证规则等。
  • 画面流程图(Screen Transition Diagram)
    • 画面之间的跳转关系,并明确用户操作对应的动作。
  • 用户界面原型(UI Prototype)
    • 确认实际操作行为的交互式原型。
  • 前端事件设计书(JavaScript/TypeScript Design Document)
    • 确认实际操作行为的交互式原型。

业务处理端(后端)设计文档:

  • 功能设计书(Function Design Document)
    • 各功能的详细处理步骤、算法、输入输出的定义、错误处理等。
  • 数据库详细设计书(Database Detail Design Document)
    • 数据库的具体设计,包括表的详细信息、索引、触发器、存储过程、视图等。
  • API 详细设计书(API Detail Design Document)
    • 各个 API 接口的详细信息、参数、请求/响应格式、认证方法等。
  • 业务流程详细设计书(Business Process Detail Design Document)
    • 业务流程的详细过程、顺序图、状态转换图等。
  • 错误处理设计书(Error Handling Design Document)
    • 各业务处理中的错误处理方法、错误消息、回滚步骤等。

共通设计文档:

  • 测试用例设计书(Test Case Design Document)
    • 各功能和画面的具体测试用例、测试场景、预期结果等。
  • 安全性详细设计书(Security Detail Design Document)
    • 系统整体的安全对策、认证和授权的详细信息、数据加密、漏洞应对方法等。
  • 性能设计书(Performance Design Document)
    • 系统的性能要求、负载测试计划、性能优化措施等。
  • 日志设计书(Logging Design Document)
    • 日志的记录内容、格式、存储位置、日志管理方法等。
制造 (Implementation / Coding) 链接到标题

制造阶段是根据设计文档进行实际编码的阶段。在这个阶段,我们需要将设计转化为实际可执行的代码,并保证代码的质量和可维护性。

  • 代码详细设计书(Code Detail Design Document)
    • 描述具体的代码实现细节,包括代码结构、模块划分、命名规范、代码风格等。
  • 编码规范
    • 定义代码编写的标准和风格、命名规范、代码风格等。
单元测试 (Unit Testing) 链接到标题

单元测试阶段是验证每个程序或模块是否正确工作的阶段。在这个阶段,我们需要编写测试用例代码,并确保每个模块都能正常工作。

  • 单元测试设计书(Unit Test Design Document)
    • 详细描述单元测试用例、测试方法、预期结果及测试覆盖率要求。
  • 单元测试用例文档(Unit Test Design Document)
    • 单元测试用例文档:描述每个单元测试的测试用例和预期结果。
集成测试 (Integration Testing) 链接到标题
系统测试 (System Testing) 链接到标题
验收测试 (Acceptance Testing) 链接到标题
生产发布 (Production Release) 链接到标题