我正在开发一个项目,并且已经开发出了系统必须执行的高级用户需求。这个项目是一个基于CodeIgniter框架构建的php Web应用程序。现在,我正在尝试将这些要求进一步细分为控制器/操作。这样做的最佳方式是什么?
我正在考虑使用一个包含四列的表创建一个word文档。第一列将是控制器的名称,第二列将具有操作,第三列将具有特定于操作的视图的名称,第四列将显示哪些用户可以访问该操作。这听起来像个好主意吗?
我喜欢构建应用程序的界面第一种方法,但实际上,在创建原型界面之前,我需要知道我需要哪些视图。
有人可以帮我解决如何规划应用程序和任何可能有用的文档吗?
答案 0 :(得分:9)
您的细分是一个好主意,但它确实是第二个步骤。
这就是我要做的事情:
了解您的要求,并将其转换为一系列方案(“用例”,“用户故事”)。
选择一个,并在纸上绘制草图,如果您要让Good Code Fairy为您提供完美的系统,您需要的用户界面的基础知识。
分别浏览场景,并在故事中加上所有名词的下划线;那些可能是域对象。用不同的颜色为所有动词加下划线。每个动词都是其中一个域对象的方法。 (事实上,域对象将是动词的对象。酷,嗯?)
了解如何使用这些域对象实现该用户界面。
构建
向您的客户展示,总是说“我喜欢但是”
将您学到的更改和内容放入您的要求中,然后重复,直到检查清除为止。
彼得·科德(Peter Coad)写了我仍然认为最好的初学者书:Java Design: Building Better Apps and Applets。它面向Java,但设计部分是通用的。
您的域对象是模型,数据的显示(粗略地说)是视图,附加到操作的代码是控制器。
用例
使用案例或用户故事的“正确方式”受到了巨大的讨论和宗教战争。在somewhat complex form notes上有来自Cockburn的scribbled到index cards的数以万计的选项。
对于你所描述的应用程序类型,我做了两件事:我试着将它们保持在25个字以内,我想到了SMART的首字母缩略词。
二十五个字或更少的单词有助于保持它们的小。做一些小故事比花一周时间更好。
SMART代表“具体,可衡量,责任和测试协议”。 (或者至少我是如何解释的。还有其他版本。)
我使用的表单具有模式
特定角色的用户
做某事
带来了一些好处
所以,在你的例子中,我会写
“产生一些好处”部分是我强调的,很多其他人没有,甚至没有提到。如果你需要优先考虑它们,它会有很多帮助。
“测试”部分是对验收测试的描述:您正在回答“这样做了吗?”因此验收测试可能是
理想情况下,您需要设置它,以便某些工具(如expect或gui测试工具)可以自动运行,但特别是在小型项目中,您可能最终手动测试。您想要自动化测试,因为在构建系统时,您希望进行回归测试;也就是说,您希望重复测试以确保以后的更改不会破坏任何内容。
答案 1 :(得分:0)
你所做的就是以用户为中心。