150 likes | 159 Views
Capture architecturally significant use cases through user-centric façade interactions to identify key functions, risks, and interactions at a global level. Ensure descriptions are concise and easily understandable by various stakeholders.
E N D
Use Case DescriptionsChapter 4 – Facade Iteration Initial Requirements (Inception Phase) 17
First Real Cut at Application Requirements • Façade Use Cases • Amount to ‘placeholders’ for expanded use cases (to come). • Contain name and short description of the interaction; contains initiating actors. • Verb…objects. • Typically, we do NOT know all the details. • Want to capture the ‘architecturally significant’ use cases… (What are these???) • Trying to identify key functions / risks / interactions at a global level.
Intro: Façade Use Cases • Ensure façade use cases are user-centric and NOT technology-centric. Why? What does this mean? • Again, these are the WHATS that the users want! • Express in terms the users understand! • Involve various sources early and frequently • Many different stakeholders with diverse ‘takes’ on the application…
Use Case Survey (Index) Entries • This is a Table of Contents for your Use Cases (that will be developed). Single Sheet; table in Word • As you discover a Use Case, index it. • For each Use Case in the index (include a designator (like UC1, US2, …), followed by the use case name, short description (two or three sentences), actors, level (façade, filled, focused) date last updated (for now). • Book states (p. 73), “Façade use cases show the basic, essential, high-level interactions that this application must support (Constantine 1999).”
Façade Use case: Attributes (Rows) • Name of the use case – short name (verb, object); action words; • Actor(s) that trigger the use case… • Level (façade, filled, focused…) • Short Description – two three sentences: at the most! • Leave room for the Basic Course of Events…(happy path) • Pre and Post conditions, and more (see ahead…) • Trigger • Business Rules Link (Reference Business Rules in your Use Cases (consider format on pg. 82 or other format) • Risk priority (reference your Risk List preferable by number or identifier) • Link to text on non-functionals here, if desired • Date / author(s) • We will add attributes like Alternate Paths, Extensions…later)
Think About Non-Functional Requirements • Note the significant list of non-functional requirements on pp. 76-77. • Be aware of a number of examples of non-functional requirements that may be addressed in your application. • Availability, compatibility, data integrity, extensibility, interoperability, maintainability, performance, portability, reliability, robustness, scalability, security, usability / achievability • Know these! (be able to identify them…) • Document these per use case, as shown on page 4.1. • Non-functionals normally not tied to specific use cases; normally threaded through a number of use cases. • In RUP: Analysis Mechanisms… • Capture in a Table • Go into Supplementary Specifications Document…
Verbiage in Use Case • Use Verb-object phrases (stated before…) • Sell Houses, Enroll in Course; Maintain Book… • Should not be instances of classes • Should not be tied to an organization structure, paper forms or computer implementation • Refer to Prototype to see actions an actor expects to undertake…(ahead) • Use phraseology from Prototype and Domain Model in text. • Interface items and domain entries will become objects ahead…. • Nice technique: Bold items in Use Case Specifications for which there is a glossary entry or a business entity in the Domain Model
Candidate Use Case List • Ensure each Use Case is ‘in scope.’ • Actors must reflect the roles that people play – not the actual names of people. • Note: Use Cases will often have multiple actors. • Again: (repeating…) • Use Cases must provide or receive a value from the system • Do not tie your actors to your organization chart.
User Interface Prototype • Use storyboarding to elicit major, high-level end-user requirements. • Document the interactions as seen in the storyboards as high level text to identify the Façade Use Cases. • The details of the interactions (and likely more detailed user interface prototypes) will be used to capture the interactions for focused and filled use cases later. • More on prototyping in the next series of slides.
Verb Filter and Noun Filter • Use strong verbs (See table in textbook) • Use strong, concrete nouns. (See table) • Avoid weak nouns such as data, report, system, form, template, paper…
Façade Filter • Façade use cases represent the most important interactions between the actors and the system. • Don’t worry too much about non-functional requirements at this time. Will address more later. • Façade use cases should be relatively abstract – so that they will cover a number of actual proposed interactions (scenarios). • Certainly no implementation details. • Façade use cases contain NO basic course of events….Only trying to identify significant Use Cases – for their functionality, their actors, pre and post conditions, triggers, and key attributes…
Reviews • Peer Reviews: • Review the use cases carefully. • Have a ‘SME’ available for business domain questions. • Have reviews often and informally • User Reviews: • User review of your Façade use cases is critical. • Every hour you spend in review could save many hours of work later!!! • I RECOMMEND THAT TEAMS REVIEW EACH OTHER’S USE CASES!! • Use Cases capture functional requirements… • Sometimes called Requirements Analysis…I like to keep ‘Requirements’ and ‘Analysis’ somewhat separate.
Packaging • You need to build packages of Use Cases (do this in Rose) to group Use Cases of similar ‘value’ or ‘functionality’ • Create packages of Actors too in the Use Case View • Name your packages. These are essential components of your architecture!!