UC San Diego CSE 294 May 7, 2010 Barry Demchak Requirements Engineering From System Goals to UML Models to Software Specifications Axel van Lamsweerde Universite catholique de Louvain, BE Hagia Sophia – AD 558 UC San Diego CSE 294 May 7, 2010 Barry Demchak
Dreaming of an Online Bookstore Multiple Orders Pricing, Payment, Accounts How do I: Discover the requirements? Translate them into a design? Know that the design is complete? Change the requirements? Update the design? Order Fulfill Deliver Deliver Stocks Couriers Address, Retry, Rejection, Return
Goal-Oriented Model Building Build Preliminary Goal Model (w/ scenarios) Derive Object Model Update Goal Model (w/ new goals) Derive Updated Object Model Analyze obstacles, threats, conflicts Build agent model (w/ responsibilities)
Goal-oriented RE Use goals for Requirements elicitation Evaluation Negotiation Elaboration Structuring Documentation Analysis Evolution
Agenda Goal orientation in a MDE/MDA world Goal formulation Object modeling basics Representing goals with object models Further possibilities
Table of Contents Fundamentals of Requirements Engineering Setting the Scene Domain Understanding and Requirements Elicitation Requirements Evaluation Requirements Specification and Documentation Requirements Quality Assurance Requirements Evolution Goal Orientation in Requirements Engineering (ch 7) Building System Models for Requirements Engineering Modeling System Objectives with Goal Diagrams Anticipating What Could Go Wrong: Risk Analysis on Goal Models Modeling Conceptual Objects with Class Diagrams (ch 10) Modeling System Agents and Responsibilities Modeling System Operations Modeling System Behaviors Integrating Multiple System Views A Goal-Oriented Model-Building Method in Action (ch 15) Reasoning about System Models Semi-Formal Reasoning for Model Analysis and Exploitation Formal Specification of System Models Formal Reasoning for Specification Construction and Analysis
Review Model Driven Engineering (MDE) Model Driven Architecture (MDA) Rich Services, MDE, MDA, and RE
Model Driven Engineering Produces models tailored to important points of view Resource management, security, etc Structural vs dynamic Models represent abstractions at coarse, medium, and fine granularities Models expressed in common language (e.g., UML) Relies on tools and processes for Maintaining models Transforming one model to another Demonstrating important properties of models
Model Driven Architecture Platform Independent Model Computation Independent Model Platform Specific Model Today Approach that can produce SOAs Fidelity of alignment between user requirements and application Multilevel modeling (…UML) Transformations between models … bidirectional NO GAPS Complimentary to SOA Roles Interactions Separation of logical and deployment models Supports hierarchical development
Rich Services CIM/PIM Process Agility Completeness Scalability End-to-End Alignment No Gaps
Goal-Oriented Model Building Build Preliminary Goal Model (w/ scenarios) Derive Object Model Update Goal Model (w/ new goals) Derive Updated Object Model Analyze obstacles, threats, conflicts Build agent model (w/ responsibilities)
Goals, Agents, and Entities come from scenarios Definitions Goal Prescriptive statement of intent System (to-be or as-is) satisfies via cooperation of agents in manipulating entities Agent An active component that manipulates entities Entity A passive component containing state Goals, Agents, and Entities come from scenarios
Benefits of Goals (Preview) Goal refinement leads to structuring complex abstractions at multiple levels Rationale (and traceability) for requirements Rich structure for “satisfaction arguments” Aligns system with customer’s strategic need Allows demonstration of completeness and pertinence Provide anchors for risk analysis … and 6 other benefits, too!
Goal Examples Well-formed goals Non-goals The store shall deliver each book the shopper orders. Each book shall have a price specific to the shopper. The shopper shall be charged for any book delivered. Non-goals To order a book, the shopper browses a catalog, chooses a book, and submits an order. The shopper can pay COD or Paypal. The system shall guarantee delivery of each book. The first non-goal is a use case, and goals can be derived from it The second non-goal identifies an actor out of the scope of known actors Agent Entity
About Goals (& Statements) Granularity High level goals are strategic (#1) Low-level goals are decompositions identifying technical objectives – involve fewer actors Requirement A goal under responsibility of single agent (#3) Enforceable by the application Expectation Like a requirement Cannot be enforced by the application e.g., The shopper will order 3 books a week #1: The store shall deliver each book the shopper orders. #3: The shopper shall be charged for any book delivered.
More About Goals & Statements Assumption Factual information subject to change e.g., Books can be delivered Monday-Saturday Domain Property Invariant descriptive property about environment e.g., An order can be filled iff it contains books
Goal Behaviors Meta-goal Agent behaviors satisfy goals by sequencing state transitions Application behavior is closure of all agent behaviors Application SATISFIES GOALS Achieve if CurrentCondition then sooner-or-later TargetCondition e.g., if a book is ordered, it is shipped within 24 hours Maintain always if SomeCondition then GoodCondition e.g., always if a book is in stock, it is listed in the catalog Soft Prescribe preferences among behaviors (e.g., responsive UI) Behavioral goal Agent behavior: sequence of state transitions the agent controls System behavior: Closure of agent behaviors We want GOAL SATISFACTION
Goal Categories
Using Goal Categories Eliciting missing goals Detecting goal conflicts e.g., Is there a security goal for order placement? Detecting goal conflicts e.g. Is there a conflict between usability and security? Conflict resolution e.g., Security goals have the highest priority Specifying goals e.g., Confidentiality are Avoid goals about knowledge that agents may have about each other
Candidate Goals for Bookstore A shopper purchases books from the store Store offers catalog of books Shopper orders one or more books from catalog Shopper specifies payment Shopper gives credit card OR Shopper gives Paypal OR Shopper references shopper account Shopper specifies shipping Shopper gives shipping address OR Order is shipped via courier
Graphical Goal Representation A. van Lamsweerde. Requirements Engineering. John Wiley & Sons Ltd. West Sussex, England. 2009.
Goal-Oriented Model Building Build Preliminary Goal Model (w/ scenarios) Derive Object Model Update Goal Model (w/ new goals) Derive Updated Object Model Analyze obstacles, threats, conflicts Build agent model (w/ responsibilities)
KAOS – the Object Model Keep All Objectives Satisfied
Modeling – Conceptual Objects Entity Autonomous and passive containers of state (e.g., book) Association Dependent on objects (called roles) it links (e.g., book-catalog) Agent Autonomous and active – has behavior, and changes states (e.g., shopper) Event Instantaneous existence based on system state (e.g., buy book)
Entity Features as Model Notations Name Book Type Entity Def A bound edition Has Title, Author, Publisher, Date DomInvar Book is valid iff Title, Author, Publisher, Date all not null Init Set all null
Agent Features as Model Notations Name Shopper Type Agent Def Any person having an account Name Buy Type Association Def Relationship between buyer and item purchased DomInvar Item is valid and Purchaser has funds
Arity of Associations 4-way association Goals: Shopper can choose a book and designate a bank. The shipper will ship the book to the shopper. 4-way association
Goal → Object Model Heuristics Overall objective: complete, pertinent, traceable models Model only objects and properties referenced in goals Create associations from word patterns like <source> <linkverb> <target>, etc. Identify generalizations where objects have similar attributes, associations, or invariants Model pointers as associations Don’t pollute models with links that belong in other models … 5 more in the text
A Candidate Model
Goal-Oriented Model Building Build Preliminary Goal Model (w/ scenarios) Derive Object Model Update Goal Model (w/ new goals) Derive Updated Object Model Analyze obstacles, threats, conflicts Build agent model (w/ responsibilities) Tomorrow is another day
Future Presentations Analyzing obstacles, threats, and conflicts Modeling agents and responsibilities Modeling system operations Merging object, agent, and system views Semi-formal reasoning Formal reasoning
Research Opportunities Tools Organize and categorize goals Generate goal gap questions Parse goals and generate models Maintain traceability between goals and model … more … ?
Questions