需求-什么时候才算完成

当满足如下要求时,才算完成任务。

已经命名了与系统相关的全部主执行者及其用户目标。

捕获了系统的全部触发条件,既包括用例触发条件,也包括扩展条件。编写了所有用户目标用例及必要的概要用例和子功能用例。每个用例描述得足够清晰,使得:

投资方确认他们能够区分这个用例是或不是实际上要提交的用例。用户确认用例表达了他们的要求,或者能接受这些用例作为系统的行为。

开发人员确认可以实现所有用例表示的功能。

投资方确认用例集覆盖了他们所有的需求。

全部主执行者及其用户目标。通过全部主执行者及其用户目标,可以确定系统的实现范围。由于除了需要人头脑中的系统构想外,没有其他信息来源可与主执行者及用户目标列表进行比较,因此我们无法知道怎样对其进行处理。只能凭猜测来处理,因而有必要采用集体讨论的方式对主执行者及其目标列表进行多次检查。

全部触发条件。这些触发条件表示系统边界的微调,系统必须对它们进行响应。在用例中,一些触发事件以用例触发形式出现,例如,用户把卡插入槽中、客户对保险合同增加或删减条款、用户选择更新或安装软件等。另一些触发事件则作为场景扩展条件,例如,用户单击取消按钮,系统检测电源中断等。

有一个方法可以对系统触发条件集进行重新检查,即通过识别系统中所有具有生命周期的元素并重新审查它们的生命周期,寻找所有改变它们生命周期状态的事件。

概要用例和子功能用例。概要用例建立了用户目标用例的环境。它们回答了一个经常被问及的问题,"所有这些(用户目标)用例如何组装在一起?"事实上,每个用户用例都处于其上层用例中,如此一级一级上升,直到单个根用例。根用例是一张目录表,不再有层次结构。新读者会发现有一个单一的起点很有用处,他们能够从这出发对系统中每个用例进行访问。

子功能用例为用户目标用例提供支持。只有被多个其他用例调用或者分离一个复杂行为时,子功能用例才有存在的必要。

用例的确认。只有投资方和应用专家阅读这些用例并认为用例表达了他们所有的需求,系统开发人员阅读这些用例并认为他们能够根据用例描述开发符合需求的系统时,才能认为这些用例合格。但这是非常艰难的挑战,是编写需求的挑战。

关于"正在完成"

短语"正在完成"给人的印象是在开始设计任务之前,就应该从头到尾编写所有用例。须知情况并非如此。参考17.1节"用例在项目组织中的作用",其中对开发一个可以部分交付用例的项目开发计划进行了讨论。还可以参考Surviving Objecl-Oriented Projects (Cockbum,1998)对增量式开发进行的详细描述, 文章 VW-Staging (http://members.aol.com/acockburn/papers/vw-stage.html)对增量和迭代式开发进行的简短讨论。

不同的项目组根据其不同的实际情况,通常采用不同的策略。一些项目组也许是为了对项目投标,一开始就草拟了所有用例。但他们必须清楚这样编写的用例在项目过程中需要不断修改。一些项目组则只草拟执行者和用户目标,按适当的增量开发方式,开始用例的详细设计。还有一些项目组则花6~9个月时间创建用例,直到这项工作快结束时才开始讨论所有其他需求。还有项目组在每开始一轮工作之前才编写必需的用例。当然,上述每种策略都有其可取之处。

相关推荐
GuWenyue5 小时前
写Agent还要重复封装工具?一套MCP多服务方案,3个能力让AI自动查地图、读写文件、操控浏览器
人工智能·机器学习·开源
GuWenyue5 小时前
90%AI新手不会调参!LangChain双模型流水线实战,一套代码兼顾严谨+创意
人工智能
倔强的石头_7 小时前
不想每次都从头解释:我用 Doubao-Seed-Evolving 做了一个「稿件接力站」
ai编程
光锥智能7 小时前
WAIC亮点|兼具泛化能力与作业效率的极智嘉机器人天团
人工智能·机器人
阳光是sunny7 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
甲维斯7 小时前
Kimi K3 重构10000行单文件屎山代码!
人工智能
阳光是sunny7 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
新知图书7 小时前
11.3 详细实现与核心配置(作业批改智能体开发)
人工智能·agent·ai agent·智能体·扣子
深度研习笔记8 小时前
OpenCV工业视觉实战11|多线程解耦+视频流稳流+推理加速,彻底解决卡顿阻塞,实现毫秒级工业实时检测
人工智能·opencv·计算机视觉
delishcomcn8 小时前
AI视觉识别+分切算法:电化铝缺陷检测与裁切一体化解锁
人工智能·算法