Approaching a ProblemWhere Do We Start?How Do We Continue?How Do We Wrap Up?Putting It TogetherWaterfall ApproachFrequent Industrial ApproachSensible ApproachProcess OverviewRequirements AnalysisRequirements Elicitation ProcessRequirementsSlide 13Slide 14Analysis PrinciplesPerspective and Early Binding of ConstraintsEarly Focus on ConstraintsFocus ChangeReviewing a requirements documentWhy is requirements analysis difficult?Escalator System RequirementsSlide 22First Law of Software EngineeringReasons for changing requirementsRequirements ProductsOverview: Steps to FollowAnalysis: Steps to followUse CasesAnalysis: Object ModelSlide 30Slide 31Client View of DomainObject Model: Steps to followAnalysis: Dynamic modelDynamic Model: Steps to followAnalysis: IterationObject Model: Four main system objects or classesMeeting PurposesMeeting RequirementsProject Issue ListInterviewingClose-ended questionsOpen-ended questionsResponses08a-Requirements108a-Requirements111Approaching a ProblemApproaching a ProblemWhere do we start?How do we proceed?208a-Requirements1Where Do We Start?Where Do We Start?Start with the requirementsCapture your goals and possible constraintsEnvironmental assumptionsUse-case analysis to better understand your requirementsFind actors and a first round of use-casesStart conceptual modelingConceptual class diagramInteraction diagrams to clarify use-casesActivity diagrams to understand major processing308a-Requirements1How Do We Continue?How Do We Continue?Refine use-casesPossibly some “real” use-casesUsing interface mockupsRefine (or restructure) your class diagramBased on your hardware architectureFor instance, client serverRefine and expand your dynamic modelUntil you are comfortable that you understand the required behaviorIdentify most operations and attributes408a-Requirements1How Do We Wrap Up?How Do We Wrap Up?Refine the class diagram based on platform and language propertiesNavigability, public, private, etcClass librariesIdentify most operationsNot the trivial get, set, etc.Write a contract for each operationDefine a collection of invariants for each classImplement508a-Requirements1Putting It TogetherPutting It TogetherPrinciplesRigor and FormalitySeparation of ConcernsModularityAbstractionAnticipation of ChangeGeneralityIncrementalityNotion of Process608a-Requirements1Waterfall ApproachGatherRequirementsGatherRequirementsGenerateDesignGenerateDesignRequirementsDocumentsRequirementsDocumentsDesign DocumentsDesign DocumentsWrite CodeWrite CodeImplementationImplementationTestTestDomain languageModels, technical language708a-Requirements1Frequent Industrial ApproachGatherRequirementsGatherRequirementsGenerateDesignGenerateDesignRequirementsDocumentsRequirementsDocumentsDesign DocumentsDesign DocumentsWrite CodeWrite CodeImplementationImplementationTestTestPrototypesPrototypes808a-Requirements1Sensible ApproachGatherRequirementsGatherRequirementsGenerateDesignGenerateDesignRequirementsDocumentsRequirementsDocumentsDesign DocumentsDesign DocumentsWrite CodeWrite CodeImplementationImplementationTestTestPrototypesPrototypesiterate908a-Requirements1Process OverviewProcess OverviewInceptionElaborationConstructionMany iterationsTransitionInception ElaborationConstruction 1Construction 2Construction 3Construction nTransition08a-Requirements108a-Requirements11010Requirements AnalysisRequirements AnalysisDefining the WHAT1108a-Requirements1Requirements Elicitation ProcessSystemClient DomainClientClientProblemUsUsSRSSRS1208a-Requirements1RequirementsRequirementsSpecify functionalitymodel objects and resourcesmodel behaviorSpecify data interfacestype, quantity, frequency, reliabilityproviders, receiversoperational profile (expected scenarios)stress profile (worst case scenarios)1308a-Requirements1RequirementsRequirementsSpecify interfaces Control interfaces (APIs)User interfaces - functionality and styleHardware interfacesSpecify error handlingIdentify potential modifications1408a-Requirements1RequirementsRequirementsIdentify necessary constraintsperformance, security, reliabilityIdentify areas of riskalternatives to be exploredSpecify validation plansSpecify documentation to be provided1508a-Requirements1Analysis PrinciplesAnalysis PrinciplesDocument reason for specific requirementsPrioritize requirements High, medium, lowIgnore implementation detailsNeed to know feasible solutions can be developedIf feasibility is a concern, then propose alternatives to be exploredBe prepared to change1608a-Requirements1Perspective and Early Binding of ConstraintsAABCBCConnect like letters without crossing lines or leaving box.1708a-Requirements1Early Focus on ConstraintsA-A line seems to be only solutionBut, is it really?Need to examine domain and constraints more?What transforms or shifts would yield easier problem?AABCBCEarly choice, eliminates C,B1808a-Requirements1Focus ChangeFocus ChangeAABCBCThese choices stillleave a path betweenA’sAABCBCTransforms to:1908a-Requirements1Reviewing a requirements documentReviewing a requirements documentIs it ambiguous?Carefully define terms and use these termsIs it consistent?Is it complete?Vague requirementsOmitted requirementsIs it verifiable?Is it realistic?Does it plan for change?Does it not overly constrain the problem?Have alternatives been considered and explored?Is it clearly presented?Precise, concise, cleardiagram complex objects and behaviorsIs it what the customer wants?2008a-Requirements1Why is requirements analysis difficult?Why is requirements analysis difficult?Communication: misunderstandings between the customer and the analystAnalyst doesn’t understand the domainCustomer doesn’t understand alternatives and trade-offsProblem complexityInconsistencies in problem statementOmissions/incompleteness in problem statementInappropriate detail in problem statement2108a-Requirements1Escalator System RequirementsShoes Must Be WornShoes Must Be WornDogs Must Be CarriedDogs Must Be CarriedTwo Signs on Escalator: You must have on shoes, and you must be carrying a dog.You must have on shoes, and you must be carrying a dog.If you have a dog, you have to carry it, so you have to wear all the shoes you are carrying.If you have a dog, you have to carry it, so you
View Full Document