Requirements AnalysisRequirementsSlide 3Slide 4Analysis PrinciplesReviewing a requirements documentWhy is requirements analysis difficult?Slide 8First Law of Software EngineeringReasons for changing requirementsRequirements ProductsAnalysis: Steps to followUse CasesAnalysis: Object ModelSlide 15Slide 16Object Model: Steps to followAnalysis: Dynamic modelDynamic Model: Steps to followAnalysis: IterationSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis11Requirements AnalysisRequirements AnalysisDefining the WHATSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis2RequirementsRequirementsSpecify functionalitymodel objects and resourcesmodel behaviorSpecify data interfacestype, quantity, frequency, reliabilityproviders, receiversoperational profile (expected scenarios)stress profile (worst case scenarios)Software Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis3RequirementsRequirementsSpecify interfaces Control interfaces (APIs)User interfaces - functionality and styleHardware interfacesSpecify error handlingIdentify potential modificationsSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis4RequirementsRequirementsIdentify necessary constraintsperformance, security, reliabilityIdentify areas of riskalternatives to be exploredSpecify validation plansSpecify documentation to be providedSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis5Analysis 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 changeSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis6Reviewing 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?Software Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis7Why 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 statementSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis8Why is requirements analysis difficult?Why is requirements analysis difficult?Need to accommodate changeHard to predict changeHard to plan for changeHard to forsee the impact of changeSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis9First Law of Software EngineeringFirst Law of Software Engineering “No matter where you are in the system lifecycle, the system will change, and the desire to change it will persist throughout the lifecycle.”Software Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis10Reasons for changing requirementsReasons for changing requirementsPoor communicationInaccurate requirements analysisFailure to consider alternativesNew usersNew customer goalsNew customer environment New technologyCompetitionSoftware is seen as malleableChanges made after the requirements are approved increase cost and scheduleSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis11Requirements ProductsRequirements ProductsSpecification documentAgreement between customer and developerValidation criteria for softwarePreliminary users manualPrototypeIf user interaction is importantIf resources are availableReview by customer and developer Iteration is almost always requiredSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis12Analysis: Steps to followAnalysis: Steps to followObtain a problem statementDevelop use cases (depict scenarios of use)Build an object model and data dictionaryDevelop a dynamic model state and sequence diagramsVerify, iterate, and refine the modelsProduce analysis documentSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis13Use CasesUse CasesHigh-level overview of system useIdentify scenarios of usageIdentify actors of the system:External entities (e.g., users, systems, etc.)Identify system activitiesDraw connections between actors and activitiesIdentify dependencies between activities (i.e., extends, uses)Software Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis14Analysis: Object ModelAnalysis: Object ModelOrganization of system into classes connected by associationsShows the static structureOrganizes and decomposes system into more manageable subsystemsDescribes real world classes and relationshipsSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis15Analysis: Object ModelAnalysis: Object ModelObject model precedes the dynamic model becausestatic structure is usually better definedless dependent on detailsmore stable as the system evolvesSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements Analysisquirements Analysis16Analysis: Object ModelAnalysis: Object ModelInformation comes fromThe problem statement and use casesExpert knowledge of the application domainInterviews with customerConsultation with expertsOutside research performed by analystGeneral knowledge of the real worldSoftware Engineering CSE470: ReSoftware Engineering CSE470: Requirements
View Full Document