Software Engineering I Sept 13, 2013 Domain Analysis Domain Analysis is learning background knowledge about the problem so you can communicate with users/clients and make more intelligent decisions. Understand the customer's problem and set the scope for the project. What are the requirements? How can you gather them? Review them? Model tasks Domain = field of business/science/technology of the customer Why is domain analysis important? This is the same as asking why is communication important. Faster development Better system Anticipate future development Get a better idea of the timeframe needed for the project. Domain analysis needs to be divided into parts Introduction - what are we working on? why are we doing it? Glossary - special terms General Domain Knowledge - diagrams - special principles, formulas, business practices, etc. - understand data Customers/Users - descriptions of users, background, others in domain Environment - systems/equipment used Tasks and Procedures currently in place Competing software - Describe what is available - Pros/Cons Similarities across domains Example - Develop software a veterinary Electrocardiogram (ECG) tool Real-time system Need to understand wave forms and display them Need to provide a graphical interface Provide pulse monitoring and display it Possible development starting points New development with requirements to be determined (Greenfield) New development where clients have requirements (Greenfield) System evolution with requirements TBD System evolution with client supplied requirements Latter is more common. Define the Scope and the Problem Problem - what difficulty are the users having? This is your opportunity. Need a succinct problem statement Make sure your solution solves the problem May need to break the problem into parts if it is too large Scope is what you are looking to solve Example - University Degree Requirements and Registration Registrar function browse courses register room allocations final exam scheduling Bursar function Fee payment The following may be tied to both the bursar and registrar Grade input Transcripts Grade viewing Why? How do you know? Identify what to implement and what not. Don't need to implement fee payment module Need to implement a module to record letter grades Reviewed OCSF (Object Client-Server Framework) Review of assignment with Veterinary Client Management System