---
title: "【ChatGPT】软件工程研发使用的文档"
author: "Perrin Yong"
author_profile: https://www.pystone.net/profile/
published_by: "Perrin Yong"
canonical: https://www.pystone.net/notes/chatgpt-software-engineering-docs/
type: note
content_role: unspecified
visibility: public
id_stability: rename-stable
source_path: "99-资料来源、摘录与归档/02-AI对话与研究原始输出/【ChatGPT】软件工程研发使用的文档.md"
content_hash: 2744c35376a51079c53981d237232386ae53e50ec16f957ac7cce41a37cc879f
knowledge_version: 224c990773de.5fa8af6e39fa
site_commit: 224c990773de166d23a886306577dd90379529ce
notes_commit: 5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a
---
> **note · ChatGPT 问答录**
> 本文保存一次 ChatGPT 问答原始输出，仅作为资料来源；其中结论未自动视为已验证知识，使用前应结合可靠来源复核。

---
title: "【ChatGPT】软件工程研发使用的文档"
created: "2023-07-14T08:33:30.000004Z"
updated: "2023-07-14T08:36:30.000004Z"
source: "yinxiangbiji"
source_notebook: "3-3 管理-工程与人"
source_url: "https://chat.openai.com/c/82b45209-a80c-4add-8926-8eab0921397e"
---
# 【ChatGPT】软件工程研发使用的文档
![assets/0023 - 【ChatGPT】软件工程研发使用的文档__resource-002-755e8349fce0.png](/media/1dabd809030c0413100c.png)


是的，通常来说，功能设计文档和技术实现文档（包括程序设计）是分开的。

1. 功能设计文档通常是一份面向所有项目参与者的文档，包括产品经理、业务分析师、UI/UX设计师、开发人员等。它描述了系统的业务需求，以及如何满足这些需求的功能性和非功能性需求。这种文档的主要目的是确保所有参与者对系统的需求和目标有共同的理解。
1. 技术实现文档和程序设计文档更侧重于为开发人员提供技术细节和实现方案。这些文档可以包括系统架构、模块设计、接口设计、数据库设计、算法设计等内容。这些文档的目标是为开发和维护提供清晰的指南。
分开这两类文档的好处是，非技术人员（比如产品经理或业务分析师）可以更好地理解功能设计文档，而无需深入理解技术细节。同时，开发人员可以参考技术实现文档来实现和维护系统，而无需深入理解业务逻辑。当然，这并不意味着开发人员不需要理解业务，但是在设计和实现阶段，他们的主要关注点是如何实现需求，而不是需求是什么。


![assets/0023 - 【ChatGPT】软件工程研发使用的文档__resource-001-46a3ae6ec7d0.png](/media/c962cec2407d43888027.png)


以下是一个基于你所提原则的最小必要文档类型，它们可以在大部分的软件开发项目中应用：

1. 需求文档：这个文档应该描述产品应该做什么，以及为什么做这些功能。它应该包括用户故事、用例、或者其他的描述方式。重点是清晰地描述业务需求，用于让整个团队（包括非技术人员）理解产品的目标和用户期待的功能。
1. 功能设计文档：这份文档将需求文档中的需求进行详细展开，以澄清产品的特性、行为和工作方式。这份文档应该能够帮助设计师、开发人员、测试人员等理解系统的功能性需求。
2. 技术架构文档：这份文档描述了系统的整体技术设计，包括选择的技术栈、系统模块、数据流、接口等。它提供了开发团队需要的技术指导，以便他们理解和实现系统。
3. 接口和数据库设计文档：如果产品有API接口或者数据库相关的设计，那么这些接口和数据库的设计也需要进行详细的描述。这可以帮助开发人员理解系统的数据流动方式以及如何使用API接口。
4. 测试文档：这份文档描述了产品的测试策略、测试计划、测试用例等信息。它可以帮助测试人员理解他们需要做的测试工作，并指导他们进行测试。
5. 部署和运维文档：对于任何需要部署的软件，都需要有详细的部署文档和运维文档。这些文档通常包括环境配置、部署步骤、监控和日志等信息。
这些类型的文档都对项目的开发、测试、部署和运维有所帮助，也便于在团队间进行沟通。当然，这只是一个基本的列表，具体的文档可能根据项目的具体需求和团队的工作方式进行调整。
