文 - 篇  访客 -

20230731 - 为什么软件设计文档很重要


  分类:03 产品与设计理念  / 
更新:2023-07-31 16:03:24  /  创建:2024-01-15 17:55:13
不要删除

为什么需要软件设计文档

当您进行一个新项目时,甚至在打开Xcode或Visual Studio之前,您都需要有明确且商定的设计目标。这些目标应在规范文档中建立。
如果客户端尚未编写,则应编写该文档,并将其提交给他们以供审查,甚至无需打开IDE。而且,如果你遇到一个客户,谁说:“我们没有时间对设计文件”,坦率,你应该从项目步行距离,因为你有麻烦了。规范不必特别冗长;它可能只有几页,但至少应该布局用户界面,包括线框(如果有UI组件),并设置完成里程碑。

_没有_这份文件,您将陷入激烈的模棱两可的循环中,客户会争辩他们告诉您的内容或您告诉他们的内容,愤怒地发送过去的通信的剪切和粘贴内容,进行解释和争论,直到客户要求的时候到来您进行了更改以使应用程序符合“他们实际要求的内容”,并希望您进行这些更改而无需付费。

_有了_这个软件设计文档,您将对任何这样的小问题都有一个答案:当出现分歧时,您可以参考客户同意并签署的规范,指出您已经按照书信履行了该规范。您可以对文档进行修改和澄清,而不必生气地争论。如果有的话,客户首先要为让不精确之处漏掉而道歉。

我们都希望有满意的客户。我们都希望建立友好的工作关系。我们都希望工作做得很好而感到自豪。但是,如果有什么工作实际上任何含糊无论如何,这些是无法实现_的_。如果您的客户说设计文档是多余的工作,那么您就要向他们解释,当由于某种误解而需要进行修订时,_真正的_额外工作将会出现。如果客户_仍然_坚持要求您在没有此类文件的情况下前进,则您应该接受这样的事实,即您的关系不可行,请走开。

功能性

在应用程序设计文档中要问的关键问题:

  • 该应用程序做什么,以及执行速度有多快?
  • 有哪些可能的故障条件以及如何处理?
  • 第一次执行时(即安装后)执行一次一次性的操作?
  • 如果用户创建任何种类的条目(例如书签),则有哪些限制?

概括这些想法,并尽可能详尽和透彻,因为此处的错误或误解将意味着重写代码。

大事记

您的规范模板应布局清晰的里程碑。如果您的客户编写功能和用户界面设计,则随后应就一系列里程碑达成一致。有时,这些也是结算起付额度,但至少它们为完成度提供了明确的指标。里程碑可能在功能和/或组件方面;如果演出涉及一组交付品,它们甚至可能是单独的应用程序。如果可能,里程碑的持续时间应大致相等。

软件设计规范示例

在这里,我将布局适当的设计文档的示例结构。当然,该模板应根据需要进行调整。有关另一个示例,请参见Joel Spolsky的示例规范(基于本文内容)。他对文档的处理方式略有不同,但观点相似。

目标声明

包括描述项目及其目标受众的简短段落。

功能说明

该应用程序有_什么作用_?用户将遇到什么应用程序状态(对核心用户方案的高级描述)?

例如,您的功能描述可能类似于:

  • 第一次运行
  • 创建一个新的______(游戏,搜索等)
  • 运作方式
  • 背景和前景行为

用户界面

包括每页的线框,其中包含以下内容的详细说明:

  • 每个控件,包括状态(启用/禁用/突出显示)和操作。
  • 支持的方向和它们之间的过渡。
  • 代表功能。
  • 错误处理。
  • 尺寸和约束。

以下是与我最新的iOS应用程序NotifEye相关的线框:

iOS应用程序NotifEye相关的线框

如果您有兴趣,我使用Balsamiq的线框图工具制作了这些模型。

例如,您的UI描述可能如下所示:

  • 导航栏
  • 左导航控件:返回主页
  • 标题栏:当前屏幕或操作名称
  • 新建按钮:创建新的事物
  • 表格检视
  • 第0节:节标题
  • 第0行:
  • 行控件0(例如图像)
  • 文字行0
  • 文字第2行

大事记

如上所述,完成期限和预期可交付成果。

例如,设计文档模板中的“里程碑”部分可能类似于:

  1. Facade应用程序显示屏幕并带有临时过渡和示例图像/文本
  2. 通信协议:应用程序连接到网络/服务器
  3. 功能里程碑1:…
  4. Alpha应用程序(具有完整功能)
  5. 稳定性
  6. 发布

确保软件文档仍然相关

我的意思并不是意味着一旦您和您的客户就规范文档达成一致,设计阶段便告结束。总是会有您未曾考虑过的细节,您和客户都将在查看中间结果时遇到新想法,设计更改,意外的设计缺陷和不可行的建议。

设计将不断发展,所做的更改应记录在您的文档中。在我25年的经验中,我从未从事过一个没有发生过的项目,该项目包括我自己的应用程序(即我是我自己的客户)。即使如此,我仍然创建了具有详细规格的设计文档,并根据需要对其进行了调整。

首先,保持联系。每周至少几次,与您的客户联系,报告您的进度,要求澄清,并确保您拥有相同的愿景。作为测试沟通的试金石,请尝试确保您和您的客户对以下三个问题给出_相同的_答案:

  1. 开发人员正在做什么?
  2. 开发人员当前正在从事什么工作?
  3. 开发人员接下来会做什么?

了解基础

首字母缩写词SDD代表什么?

SDD代表软件设计文档或软件设计说明。

什么是功能设计文件?

功能设计文档描述了软件产品的功能,外观以及最终需要执行的功能。设计文档也称为功能规范或功能规范文档(FSD)或功能需求规范。

什么是高级设计文档?

高级设计文档(HLDD)描述了特定软件产品开发中使用的体系结构。它通常包括描述软件系统的预期结构的图。由于这是高级文档,因此经常使用非技术语言。

软件设计文档中包含什么?

软件设计文档(SDD)通常描述软件产品的数据设计,体系结构设计,界面设计和过程设计。SDD的内容和组织由IEEE 1016标准指定。

其他

MVP最小可交付产品的精益方法

如何做好外包项目验收?我总结的几点建议

https://www.woshipm.com/pmd/1404999.html

用户验收问题级别划分


不要删除

是日已过,命亦随减,如少水魚,斯有何乐?