Use Cases
A Use Case is a method of defining a way of doing something in a system. The Use Case is a self contained a UNIT of work. ie Create a Model is NOT a Use Case. This is a process that has many Use Cases such as:
- Add a CP or Add a Spline
- Select a CP or Select a Spline
- Move a CP
- Select a Patch
- Apply a Material
etc
Each use case will have a Trigger/Description and it will apply to one or more Objects (ie CP or Spline etc). Any rules you have will apply to the Object (not the Use Case)
So, to ‘Create a Model’, you will need to define a whole lot of Use Cases, Identify a whole lot of ‘Objects’ and define the rules associated with each object. Once you have all this in place you are making the job for Hash Programmers far easier to have the new feature implemented. ie Hash programmers are good but they cannot read your minds. If you do not describe in detail what it is you want then they can only deliver what they think you want. If this is the case then you have no one to blame except yourselves…....
Now when I talk about ‘detail’ I do NOT mean code, algorithms etc (you can if you have this level of expertise but I do not recommend it unless asked for). You just need to provide sufficient detail to the programmer to know what it is you are talking about. Lets look at “Adding a CP”
Use Case Trigger: Actor wishes to add a CP when they want to create or modify a spline
Steps:
- Actor selects a point in 3d space
- System moves to the point in 3d space
- Actor creates the CP
- System draws the CP
CP/Spline Object Rules:
- If the CP is placed on an existing spline then the CP becomes part of that spline
- If the CP is added as part of a Spline create then a Spline is drawn from the Previously added CP. If this is the first CP in the spline then no spline is drawn yet.
Do you get the picture? You need to define the requirements at the business/user level. Obviously you may not know all the rules that need to be defined but you need to identify the rules that you expect to be implemented.
So the next time you ask for something, think about what it is you are asking for then define it. Simply asking for “A way to manage models over the internet” doesn’t really help anyone!