Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Your breakdown is a good idea, but it's really the <em>second</em> step.</p> <p>here's what I'd do:</p> <ul> <li><p>take your requirements, and turn them into a series of scenarios ("use cases", "user stories").</p></li> <li><p>Pick one, and sketch, like on paper, the basics of the user interface you'd want if you were to have the Good Code Fairy deliver the perfect system to you.</p></li> <li><p>separately go through the scenario, and underline all the nouns in the story; those are probably domain objects. Underline all the <em>verbs</em> in a different color. Each verb is a method of one of those domain objects. (In fact the domain object will be the object of the verb. Cool, huh?)</p></li> <li><p>Figure out how you would implement that user interface using those domain objects.</p></li> <li><p>Build it</p></li> <li><p>Show it to your customer, who will <em>invariably</em> say "I like it <em>but</em>"</p></li> <li><p>Put the changes and things you learned inot your requirements, and repeat until the check clears.</p></li> </ul> <p>Peter Coad wrote what I still think is really the best beginners book on this: <a href="http://rads.stackoverflow.com/amzn/click/0139111816" rel="nofollow noreferrer">Java Design: Building Better Apps and Applets</a>. It's oriented to Java, but the design part is universal.</p> <p>Your domain objects are the model, the display of your data is (roughly speaking) the view, and the code attached to actions is the controller.</p> <hr> <p>On Use Cases</p> <p>The "right way" to do use cases or user stories is subject to immense discussion and religious warfare. There are zillions of options, from Cockburn's <a href="http://alistair.cockburn.us/Basic+use+case+template" rel="nofollow noreferrer">somewhat complex form</a>, to <a href="http://en.wikipedia.org/wiki/User_story" rel="nofollow noreferrer">notes</a> <a href="http://c2.com/cgi/wiki?UserStory" rel="nofollow noreferrer">scribbled</a> on <a href="http://www.agilemodeling.com/artifacts/userStory.htm" rel="nofollow noreferrer">index</a> <a href="http://www.inquestra.com/developing-user-stories-in-an-xp-environment.html" rel="nofollow noreferrer">cards</a>.</p> <p>For the kind of application you're describing, I do two things: I try to keep them to 25 words or less, and I think about the SMART acronym.</p> <ul> <li><p>Twenty-five words or less helps keep them small. Doing a few small stories is preferable to spending weeks on a big one.</p></li> <li><p>SMART stands for "Specific, Measurable, Agreement with Responsibilities and Tests." (Or at least that's how I interpret it. There are other versions.)</p> <ul> <li><em>Specific</em>, you have to be comfortable you know what's being asked.</li> <li><em>Measurable</em>, you have to have some way of testing or some kind of statement of what will be acceptable</li> <li><em>Agreement</em>, because it needs to be something you and the customer can both agree satisfies a need — in other words, the "meeting of minds" of a contract</li> <li>with <em>Responsibilities</em>, you have to know what you're being given, what the customer or user is responsible for providing, and what you are</li> <li>and <em>Tests</em>, in other words, you should have an effective procedure that gives you the answer "it is acceptable" or "it's not acceptable."</li> </ul></li> </ul> <p>The <em>form</em> I use has the pattern </p> <blockquote> <p><em>User in a particular role</em><br> <em>does something</em><br> <em>resulting in some benefit</em> </p> </blockquote> <p>So, in your example, I would write</p> <ul> <li>Administrator (who?)</li> <li>lists all FAQs (does what?)</li> <li>to review them for updates. (why?)</li> </ul> <p>The "resulting in some benefit" part is something I emphasize and a lot of other people don't, or don't even mention. It helps a lot later if you need to prioritize them.</p> <p>The "test" part is a description of an acceptance test: you're answering the question "Is this done?" So the acceptance test might be</p> <ul> <li>A logged in administrator selects "list FAQ". All known FAQs are listed in correct format.</li> </ul> <p>Ideally, you'd set this up so some tool, like expect or a gui test tool, can run this automatically, but especially in a small projects you may end up testing by hand. You <em>want</em> automated testing, because as you build the system, you want to do regression tests; that is, you want to repeat your tests to make sure nothing has been broken by a later change. </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload