首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何制定一个伟大的功能规范

如何制定一个伟大的功能规范
EN

Software Engineering用户
提问于 2011-02-19 23:42:08
回答 4查看 5.1K关注 0票数 9

我将很快开始一个小的附带项目,但是这次我不想只做我在编程之前经常做的小小的UML域模型和用例图,我想要制定一个完整的功能规范。有没有人有编写功能规范的经验,可以向我推荐我需要添加什么?怎么才能开始准备呢?在这里,我将写下我认为更相关的主题:

  • 目的
  • 功能概述
  • 语境图
  • 关键项目成功因素
  • 范围(进出)
  • 假设
  • 行为者(数据源、系统执行者)
  • 用例图
  • 工艺流程图
  • 活动图
  • 安保要求
  • 性能要求
  • 特殊要求
  • 业务规则
  • 领域模型(数据模型)
  • 流场景(成功,备用…)
  • 时间表(任务管理)
  • 目标
  • 系统需求
  • 预期费用

,你对这些话题怎么看?我要再加点别的吗?或者移除什么东西?

我骑着每一个回答,我要感谢你们所有的有用的信息。

我正在为一家公司做这方面的项目,他们和我保持不断的交流,我需要解释为什么我要做每一件事,因为我必须管理他们给我的资源。这将是我的第一个功能规范,正如我说的,我希望它是有用的,而不仅仅是大和无用的。我认为这是必须要做的事情,但我想以对我和我的球队更有用的方式去做。这是不好的,我我们没有经理,所以我也需要照顾一些行政任务。

关于敏捷编程,我认为这与敏捷编程是100%兼容的。我是一个敏捷程序员,我自己,老实说,当有人为我做了这样的思考时,我会更加自信。我仍然是Junnior,但我以前在Tapestry网站上做过其他项目的开发人员,被组织完全搞得一团糟。

我不同意我正在做一个瀑布,我想我只是试图定义一些界限,使项目在开发开始时变得更容易。

EN

回答 4

Software Engineering用户

发布于 2011-02-19 23:49:26

有三件事要记住

1)你必须从某个地方开始

你确定了这个项目要解决的问题是什么吗?你也可以说:“如果这个项目不能完成的话,这里有一些事情是不可能完成的。”我也看到一些项目(一些成功,另一些不太)设计主屏幕和填补空白从那里。

2)你必须在某个地方结束

你可以下地狱,但如果你从来没有真正做过任何事,你所做的一切都是浪费时间和纸张,并忽略了你的妻子和孩子七个星期。(有人这样做过吗?)因此,一定要设置一些限制,您的规范将走多远。这是一个技术规范和功能规范吗?

3)你必须从头到尾

不要从得到一个主要需求开始,然后在得到第二个主要需求之前先填写它的每一个细节,至少在大纲中是这样。首先水平地构建您的规范,然后垂直构建。否则,当您意识到需求一的一些次要细节使所有的需求都不可能实现时,您就会遇到一些重大问题。

票数 5
EN

Software Engineering用户

发布于 2011-02-20 02:10:17

我会把你的列表分成三个部分:用户关心的东西,程序员关心的东西和管理者关心的东西。让程序员完成他们的任务,让管理人员完成他们的任务。程序员可能需要向经理和经理提供项目部分的估计值,以便向程序员提供预算限制(也就是说,不能超过X周)。如果每个人(客户,经理,程序员)都同意的话,那就是开绿灯开始这个项目。对于程序员来说,很多人的便便规格,有时是正确的。我只会说明两个或多个方正在通信的部分(例如客户机-服务器)。至于其他方面,只需基于用户故事来练习某种形式的TDD。给客户的一条线也有利于获取故事。记住,客户可能知道也可能不知道他们想要什么,所以用户故事应该被捕获并保存下来,供程序员重新解释。

用户故事

  • 目的目标职能概览
  • 行为者(数据源、系统执行者)
  • 用例图
  • 工艺流程图
  • 活动图
  • 语境图
  • 业务规则
  • 特殊要求
  • 性能要求

管理器

  • 关键项目成功因素
  • 预期费用
  • 流场景(成功,备用…)
  • 时间表(任务管理)

程序员

  • 安保要求
  • 领域模型(数据模型)
  • 系统需求

此外,对于所有类型的软件问题,可能没有一个完美的解决方案。对于Facebook应用程序,您可能希望尽早和经常地进行演示。对于导弹制导系统,可能没有那么多;-)

票数 3
EN

Software Engineering用户

发布于 2011-02-19 23:48:34

准备所有这些文件可能需要几个月!对我来说就像瀑布一样。

我不能建议在你的名单上再加任何东西,除非你从清单中拿出一些。我想要生产的工艺品将取决于您的组织内的文化,以及开发人员的技能。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/49741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档