Paper PresentationToday’s DiscussionIntroductionRelative Costs of Fixing Software FaultsSoftware & System Level ViewCognitive & Social Science techniquesContext & GroundworkRE Core ActivitiesEliciting Requirements (1)Eliciting Requirements (2)Modeling & Analyzing RequirementsModeling & Analyzing Requirements (2)Communicating RequirementsAgreeing RequirementsEvolving RequirementsIntegrated Requirements EngineeringA Requirements Engineering RoadmapA Requirements Engineering Roadmap (cont.)SummaryJanuary 15, 2019 csci599 1Paper PresentationRequirements Engineering: A Road MapBashar Nuseibeh & Steve EasterbrookPresented By:Bob X. Chen ([email protected])Ruchi Gupta ([email protected])January 15, 2019 csci599 2Today’s DiscussionIntroduction to RESoftware & System level viewCognitive and Social Science TechniquesContext & GroundworkRE core activitiesEliciting requirementsModeling and Analyzing requirementsCommunicating requirementsAgreeing requirementsEvolving requirementsRequirements Engineering a roadmapSummaryJanuary 15, 2019 csci599 3IntroductionRequirement EngineeringProcess of discovering the purposeIdentifying stakeholders & needsDocumenting needs for analysis, communication & implementationChallengesNumerous & distributed stakeholdersVarying & conflicting goalsDifficulties in articulating these goalsJanuary 15, 2019 csci599 4Relative Costs of Fixing Software FaultsRequirementsSpecification Planning Design Implementation Integration Maintenance12341030200January 15, 2019 csci599 5Software & System Level ViewZave’s definition of RE “Requirements engineering is the branch of software engineering concerned with the real-world goals for, functions of, and constraints on software systems. It is also concerned with the relationship of these factors to precise specifications of software behavior, and to their evolution over time and across software families.”Software functions in liaison with the System in which it is EmbeddedSoftware: A formal descriptionRE must span gap between Informal world of stakeholder needs & formal world of SoftwareSystem: Understanding of System theory & practiceCharacterizing Systems, identifying their boundaries and managing their development life cycleJanuary 15, 2019 csci599 6Cognitive & Social Science techniquesCognitive psychologyProvides understanding of difficulties people may have in describing their needs.AnthropologyObserving human activities to understand how computer system may help or hinder those activities.SociologyAims to involve those in RE process, who are most affected by outcomes.LinguisticAnalyze communication patterns in organization.January 15, 2019 csci599 7Context & GroundworkRE, a Front end activityNot always trueRequirements evolve while system is in operationContext & GroundworkAssessment of Project’s Feasibility & associated RisksIdentification of suitable RE ProcessSelection of Methods and Techniques for RE ActivitiesJanuary 15, 2019 csci599 8RE Core ActivitiesEliciting requirementsModeling and Analyzing requirementsCommunicating requirementsAgreeing requirementsEvolving requirementsJanuary 15, 2019 csci599 9Eliciting Requirements (1)Requirements to ElicitIdentifying stakeholders & user classesCustomers or ClientsDevelopersUsers - novice users, expert users, occasional users, disabled users Goals & TasksFocus on Problem domainAnd needs of stakeholdersScenarios & Use casesJanuary 15, 2019 csci599 10Eliciting Requirements (2)Elicitation TechniquesTraditional techniquesQuestionnaires, surveys, interviews, documentsGroup elicitation techniquesPrototypingModel-driven techniquesCognitive techniquesContextual techniquesNeed for guidance on use of these TechniquesJanuary 15, 2019 csci599 11Modeling & Analyzing RequirementsEnterprise ModelingOrganizational StructureBusiness RulesData ModelingEntity-Relationship-AttributeBehavioral ModelingFunctional behavior of Stakeholders.Existing RequiredJanuary 15, 2019 csci599 12Modeling & Analyzing Requirements (2)Domain Modeling Abstract description of the worldAdvantage: Requirement reuse within a domainAdvantage: detailed reasoning about the domainModeling Non-Functional RequirementDifficult to measure and testAnalyzing Requirement ModelsRequirement animation, automated reasoningKnowledge based critique, consistency checkJanuary 15, 2019 csci599 13Communicating RequirementsEffective Communication of RequirementsRequirements DocumentationSpecification of languages & notationsFormal, semi-formal & informal languageRequirements ManagementReadability & TraceabilityRequirement’s origin, development & specificationDocumentation StandardsPro: Guideline for structuring requirement documentsCon: Rigid contractual constraintsJanuary 15, 2019 csci599 14Agreeing RequirementsMaintain agreement with all stakeholdersInspection & formal methodCoherence & consistency of the requirementsRequirement Validation (difficult)Knowable & question of truth, science likeDevise experiments to refute current requirementsconflicting goals among stakeholders Conflict resolution among stakeholdersWin-win approach, negotiationAgreement without explicit goals, matricesJanuary 15, 2019 csci599 15Evolving RequirementsManage ChangeChanging stakeholders’ needsForestall cost & scheduleTechniques and tool for configuration management and version controlExploiting TraceabilityEvaluation of proposed change with existing requirementsJanuary 15, 2019 csci599 16Integrated Requirements EngineeringProblem FramesIdentify well-understood problem offers well-understood solutionsMultiple perspective of requirementsFacilitate req. partition, modeling, analysis Automated toolsDOORS, Prequite Pro, CradleDocument req. manage changesJanuary 15, 2019 csci599 17A Requirements Engineering RoadmapRE became a field of study in early 1990’sNew ideas emergedModeling & analysis cannot be isolated from its social & organizational contextRE should focus on modeling the property of the environment, not functionalityResolve conflicting requirementsJanuary 15, 2019 csci599 18A Requirements Engineering Roadmap (cont.)Future ChallengesTechniques for modeling &
View Full Document