Chapter 3 Understanding Requirements Requirements Vision Use-Case Modeling Software Requirements Specification Requirements Management Case Study and Project Object Oriented Analysis and Design 1 Requirements Object Oriented Analysis and Design 2 3.1 Requirements What is Requirements Types of Requirements Requirements Documents Object Oriented Analysis and Design 3 What is requirement? Requirements are capabilities and conditions to which the system (and more broadly, the project) must conform. [JBR99]. The purpose of Requirements is: To provide system developers with a better understanding of the system requirements. To define the boundaries of (delimit) the system. To provide a basis for planning the technical contents of iterations. To provide a basis for estimating cost and time to develop the system. To define a user-interface for the system, focusing on the needs and goals of the users. Object Oriented Analysis and Design 4 Requirements Factors on challenged software projects 37% of factors related to problems with requirements, Object Oriented Analysis and Design 5 Requirements Management Requirements management is a systematic approach to eliciting, organizing, and documenting the requirements of the system establishing and maintaining agreement between the customer and the project team on the changing requirements of the system. Keys to effective requirements management include maintaining a clear statement of the requirements, along with applicable attributes for each requirement type traceability to other requirements and other project artifacts. Object Oriented Analysis and Design 6 Types of Requirements – FURPS+ Functional features, capabilities, security. Usability human factors, help, documentation. Reliability frequency of failure, recoverability, predictability. Performance response times, throughput, accuracy, availability, resource usage. Supportability adaptability, maintainability, internationalization, configurability. Object Oriented Analysis and Design 7 Types of Requirements – FURPS+ The "+" in FURPS+ indicates ancillary and subfactors, such as: Implementation • resource limitations, languages and tools, hardware, ... Interface • constraints imposed by interfacing with external systems. Operations • system management in its operational setting. Packaging Legal • licensing and so forth. Object Oriented Analysis and Design 8 Types of Requirements – RUP Requirements are categorized as functional (behavioral) or non-functional (everything else); Functional Requirements Functional requirements are explored and recorded in • the Use-Case Model • the system features list of the Vision artifact. Non-functional Requirements Other requirements can be recorded in the use cases they relate to, or in the Supplementary Specifications artifact. Object Oriented Analysis and Design 9 Requirement Documents Vision The Vision artifact summarizes high-level requirements that are elaborated in these other documents. The Vision is a general vision of the core project's requirements, and provides the contractual basis for the more detailed technical requirements. Include: • Problem Statement • User or Stakeholder Descriptions • Product Overview • Features • Constraints Object Oriented Analysis and Design 10 Requirement Documents SRS (Software Requirements Specification) Functional requirements • Use case Model Non-functional requirements • Supplementary Specification Glossary • records and clarifies terms used in the requirements. • also encompasses the concept of the data dictionary, which records requirements related to data, such as validation rules, acceptable values, and so forth User-Interface Prototype Prototypes are a mechanism to clarify what is wanted or possible. Object Oriented Analysis and Design 11 Requirement Artifacts in UP Object Oriented Analysis and Design 12 Vision Object Oriented Analysis and Design 13 3.2 Vision Introduction Template Example How to develop Vision Object Oriented Analysis and Design 14 Vision - Introduction The Vision document provides a complete vision for the software system under development and supports the contract between the funding authority and the development organization. The vision document is written from the customers' perspective, focusing on the essential features of the system and acceptable levels of quality. The Vision should include a description of what features will be included as well as those considered but not included. It should also specify operational capacities (volumes, response times, accuracies), user profiles (who will be using the system), and interoperational interfaces with entities outside the system boundary, where applicable. The Vision document provides the contractual basis for the requirements visible to the stakeholders. Object Oriented Analysis and Design 15 Vision - Introduction The Vision document is created early in the inception phase, and it is used as a basis for the Business Case and the first draft of the Risk List The Vision document serves as input to use-case modeling, and is updated and maintained as a separate artifact throughout the project. Object Oriented Analysis and Design 16 Vision - Introduction Purpose of Vision Gain agreement on what problems need to be solved. Identify stakeholders to the system. Define the boundaries of the system. Describe primary features of the system. Object Oriented Analysis and Design 17 Vision - Template for small project 1. Introduction 2. Positioning 2.1 2.2 Problem Statement Product Position Statement 3. Stakeholder and User Descriptions 3.1 3.2 3.3 3.4 3.5 Object Oriented Analysis and Design Stakeholder Summary User Summary Key High-Level Goals and Problems of the Stakeholders User-Level Goals User environment 18 Vision - Template for small project 4. Product Overview 4.1 4.2 Product Perspective Assumptions and Dependencies 5. Product Features 5.1 5.2 <aFeature> <anotherFeature> 6. Other Requirements and Constraints Object Oriented Analysis and Design 19 Vision - Commentary to Template Problem Statement Provide a statement summarizing the problem being solved by this project. The following format may be used: The problem of [describe the problem] affects [the stakeholders affected by the problem] the impact of which is [what is the impact of the problem?] a successful solution would be Object Oriented Analysis and Design [list some key benefits of a successful solution] 20 Vision - Commentary to Template Product Position Statement Provide an overall statement summarizing, at the highest level, the unique position the product intends to fill in the marketplace. The following format may be used: For [target customer] Who [statement of the need or opportunity] The (product name) is a [product category] That Unlike [statement of key benefit; that is, the compelling reason to buy] [primary competitive alternative] Our product [statement of primary differentiation] Object Oriented Analysis and Design 21 Vision - Commentary to Template User Summary Name Present a summary list of all identified users. The following format may be used: Description Responsibilities [Name [Briefly the user describe type.] what they represent with respect to the system.] Object Oriented Analysis and Design [List the user’s key responsibilities with regard to the system being developed; for example: captures details produces reports coordinates work and so on] 22 Stakeholder [If the user is not directly represented, identify which stakeholder is responsible for representing the user’s interest.] Vision - Commentary to Template Product Perspective This subsection puts the product in perspective to other related products and the user’s environment. If the product is independent and totally selfcontained, state it here. If the product is a component of a larger system, then this subsection needs to relate how these systems interact and needs to identify the relevant interfaces between the systems. One easy way to display the major components of the larger system, interconnections, and external interfaces is with a block diagram. • System context diagram • High-level deployment diagram Object Oriented Analysis and Design 23 Vision - Commentary to Template Product Features Use cases are not necessarily the only way one needs to express functional requirements. An alternative, a complementary way to express system functions is with features, or more specifically in this context, system features, System features are high-level, terse statements summarizing system functions. A system feature is "an externally observable service provided by the system which directly fulfills a stakeholder need" [Kruchten00]. Features are things a system can do. The point of system features in the Vision is • • to summarize the functionality, not decompose it into a long list of fine-grained elements. Keep feature descriptions at a general level. • Focus on capabilities needed and why (not how) they should be implemented. • Avoid design. • and Design It is common to organize a two-level hierarchy Object Oriented Analysis 24 Vision - Commentary to Template Other Requirements in the Vision In the Vision, system features briefly summarize functional requirements expressed in detail in the use cases. Likewise, the Vision can summarize other requirements (for example, reliability and usability) that are detailed in the Special Requirements sections of use cases, and in the Supplementary Specification (SS). Object Oriented Analysis and Design 25 Vision - Example Course Registration System example Vision 1 NextGen example Object Oriented Analysis and Design 26 Vision - How to develop Vision Gain agreement on the problem being solved Identify stakeholders Define the system boundaries Identify constraints to be imposed on the system Formulate problem statement Define features of the system Evaluate your results Object Oriented Analysis and Design 27 Vision - Checkpoints Have you fully explored what the "problem behind the problem" is? Is the problem statement correctly formulated? Is the list of stakeholders complete and correct? Does everyone agree on the definition of the system boundaries? If system boundaries have been expressed using actors, have all actors been defined and correctly described? Have you sufficiently explored constraints to be put on the system? Have you covered all kinds of constraints - for example political, economic, and environmental. Have all key features of the system been identified and defined? Will the features solve the problems that are identified? Are the features consistent with constraints that are identified? Object Oriented Analysis and Design 28 3.3 Use-Case Modeling Key Concepts Use-Case Diagram Use-Case Specification Relationship between Use-case Checkpoints Object Oriented Analysis and Design 29 Key Concepts Object Oriented Analysis and Design 30 What Is System Behavior? System behavior is how a system acts and reacts. It is the outwardly visible and testable activity of a system System behavior is captured in use cases. Use cases describe the system, its environment, and the relationship between the system and its environment. Object Oriented Analysis and Design 31 What Is a Use-Case Model? A model that describes a system’s functional requirements in terms of use cases A model of the system’s intended functionality (use cases) and its environment (actors) View Report Card Student Register for Courses Login Object Oriented Analysis and Design 32 What Are the Benefits of a Use-Case Model? Used to communicate with the end users and domain experts Provides buy-in at an early stage of system development Insures a mutual understanding of the requirements Used to identify Who interacts with the system and what the system should do The interfaces the system should have Used to verify All requirements have been captured The development team understands the requirements Object Oriented Analysis and Design 33 Major Concepts in Use-Case Modeling An actor represents anything that interacts with the system. A use case is a sequence of actions a system performs that yields an observable result of value to a particular actor. Actor Use Case Object Oriented Analysis and Design 34 What Is an Actor? Actors are not part of the system. Actors represent roles a user of the system can play. They can represent a human, a machine, or another system. They can actively interchange information with the system. They can be a giver of information. They can be a passive recipient of information. Actors are EXTERNAL. Object Oriented Analysis and Design 35 Actor Useful Questions in Finding Actors? Who will supply, use, or remove information? Who will use this functionality? Who is interested in a certain requirement? Where in the organization is the system used? Who will support and maintain the system? What are the system’s external resources? What other systems will need to interact with this one? Actor Object Oriented Analysis and Design 36 Focus on the Roles An actor represents a role that a human, hardware device, or another system can play. ? Object Oriented Analysis and Design 37 A User May Have Different Roles Charlie as student Charlie Student Charlie as professor Professor Object Oriented Analysis and Design 38 Practice: Find the Actors In the Course Registration System Requirements document, read the Problem Statement for the Course Registration case study. As a group, identify the following Actors Description of the actor Object Oriented Analysis and Design 39 Practice: Solution Billing System The external system responsible for student billing Student A person who is teaching classes at the University Course Catalog Professor Registrar The person who is responsible for the maintenance of the course registration system Object Oriented Analysis and Design 40 A person who is registered to take courses at the University The unabridged catalog of all courses offered by the University What Is a Use Case? A sequence of actions a system performs that yields an observable result of value to a particular actor Use Case Object Oriented Analysis and Design 41 Use Cases and Actors A use case models a dialog between actors and the system. A use case is initiated by an actor to invoke a certain functionality in the system. Use Case Actor Communicates Association Object Oriented Analysis and Design 42 How to Find Use Cases Answer the following questions to find use cases. For each actor you have identified, what are the tasks the system would be involved in? Does the actor need to be informed about certain occurrences in the system? Will the actor need to inform the system about sudden, external changes? What information must be modified or created in the system? Object Oriented Analysis and Design 43 Naming the Use Case Register for Courses The name indicates what is achieved by its interactions with the actor(s). The name may be several words in length. No two use cases should have the same name. Login Maintain Student Information Object Oriented Analysis and Design 44 Use-Case Diagram Object Oriented Analysis and Design 45 Use case diagram Captures system functionality as seen by users Built in early stages of development Purpose Specify the context of a system Capture the requirements of a system Validate a system’s architecture Drive implementation and generate test cases Developed by analysts and domain experts Object Oriented Analysis and Design 46 How Would You Read This Diagram? View Report Card Student Maintain Professor Information Register for Courses Course Catalog Login Maintain Student Information Select Courses to Teach Registrar Professor Submit Grades Close Registration Billing System Object Oriented Analysis and Design 47 Use Case Diagram - Example Project Management Normal User Project Manager Query Development Manager Administrator Object Oriented Analysis and Design User Authentication User Management System Configuration 48 Use-Case Specification Object Oriented Analysis and Design 49 Use-Case Specifications Name Brief description Flows of Events Relationships Activity diagrams Use-Case diagrams Special requirements Pre-conditions Post-conditions Other diagrams Use-Case Model Actors Use Cases ... Use-Case Specifications Object Oriented Analysis and Design 50 Use-Case Specifications - Flow of Events • A use case describes what a system (or a subsystem, class, or interface) does but it does not specify how it does it. • You can specify the behavior of a use case by describing a flow of event in text clearly enough for outsider to understand it easily. • When you write this flow of events, you should include how and when the use case starts and ends, when the use case interacts with the actors and what objects are exchanged, and the basic flow and alternative flow of the behavior. Object Oriented Analysis and Design 51 Use-Case Flow of Events Has one normal, basic flow Several alternative flows Regular variants Odd cases Exceptional flows handling error situations Object Oriented Analysis and Design 52 Use-Case Specifications - Scenarios • A use case actually describes a set of sequences in which each sequence in the set represents one possible flow through all those variations. • A scenario is a specific sequence of actions that illustrates behavior. • Scenarios are to use cases as instances are to classes, meaning that a scenario is basically one instance of a use case. Object Oriented Analysis and Design 53 What Are Scenarios ? A scenario is an instance of a use case Object Oriented Analysis and Design 54 What Is an Activity Diagram? An activity diagram in the use-case model can be used to capture the activities in a use case. It is essentially a flow chart, showing flow of control from activity to activity. Flow of Events This use case starts when the Registrar requests that the system close registration. 1. The system checks to see if registration is in progress. If it is, then a message is displayed to the Registrar and the use case terminates. The Close Registration processing cannot be performed if registration is in progress. 2. For each course offering, the system checks if a professor has signed up to teach the course offering and at least three students have registered. If so, the system commits the course offering for each schedule that contains it. Object Oriented Analysis and Design 55 Example: Activity Diagram [ delete course ] Decision [ add course ] Select Course Concurrent threads Synchronization Bar (Fork) Check Schedule Delete Course Activity State Check Pre-requisites Guard Condition Transition Synchronization Bar (Join) [ checks completed ] [ checks failed ] Resolve conflicts Assign to course [ student added to the course ] Update schedule Object Oriented Analysis and Design 56 Use-Case Specifications - Example - User Management 1. Brief Description This use case is for adding and deleting users. When adding user, the privilege of the user will be assigned. 2. Basic Flow B1. Start of use case Actor chooses User Management in main screen. B2. Prompt welcome screen System shall prompt actor the user management welcome screen. A1. Choose delete user B3. Choose add user Actor chooses Add User. B4. Prompt add user screen System shall prompt actor the add user screen which needs actor to input some information. These information include: User Name, User ID, User Password, User Role. B5. Submit Actor inputs the information and submits the screen. E1. User ID already exists E2. Not enough information B6. Prompt success Object Oriented Analysis and Design 57 System shall prompt actor success information. Use-Case Specifications - Example 3. Alternative Flows A1. Choose Delete User From B2. Prompt welcome screen A1.1 Choose delete Actor chooses delete user. A1.2 Prompt delete user screen System shall prompt actor the delete user screen. In this screen, system shall lists all the user ID stored in system. A1.3 Choose user to delete Actor chooses the user ID to delete and submit this screen. E3. No user ID chosen A1.4 Prompt success System shall prompt actor success information. 4. Exception Flows E1. User ID already exists From B5. Submit, The User ID actor inputs has already existed in the system. The system shall prompt actor to try another User ID。 E2. Not enough information From B5. Submit, If actor does not input all the information, system can not add a user. The system shall prompt actor to input all the information. E3. No user ID chosen From A1.3 Choose user to delete, If actor does not choose a user to delete before submitting the screen, the system shall prompt actor an error that he/she should choose a Object Oriented Analysis and Design 58 user to delete. Relationship between Use-Case Object Oriented Analysis and Design 59 Relationship between Use-case (optional) include extend generalization Object Oriented Analysis and Design 60 Relationship between Use-cases - include • <<include>> – An include relationship from use case A to use case B indicates that an instance of the use case A will also contain the behavior as specified by B. The behavior is included at the location which defined in A. Submit request a Offer a line of credit load <<include>> <<include>> Perform credit check Object Oriented Analysis and Design 61 Relationship between Use-cases - include <<include>>: Functional Decomposition Problem: A function in the original problem statement is too complex to be solvable immediately Solution: Describe the function as the aggregation of a set of simpler functions. The associated use case is decomposed into smaller use cases <<include>> <<include>> ManageIncident <<include>> CloseIncident CreateIncident HandleIncident Object Oriented Analysis and Design 62 Relationship between Use-cases - include <<include>>: Reuse of Existing Functionality Problem: There are already existing functions. How can we reuse them? Solution: The include association from a use case A to a use case B indicates that an instance of the use case A performs all the behavior described in the use case B (“A delegates to B”) Example: The use case “ViewMap” describes behavior that can be used by the use case “OpenIncident” (“ViewMap” is factored out) Note : The base case cannot exist alone. It is always called with the supplier use case <<include>> Base Usecase OpenIncident <<include>> AllocateResources Object Oriented Analysis and Design 63 Supplier Usecase ViewMap Relationship between Use-cases - extend <<extend>>– An extend relationship from use case A to use case B indicates that an instance of use case B may be augmented (subject to specific conditions specified in the extension) by the behavior specified by A. The behavior is inserted at the location defined by the extension point in B which is referenced by the extend relationship. Request additional credit information <<extend>> Evaluate loan request Refer loan request to loan committee <<extend>> Object Oriented Analysis and Design 64 Relationship between Use-cases - extend Problem: The functionality in the original problem statement needs to be extended. Solution: An extend association from a use case A to a use case B indicates that use case B is an extension of use case A. Example: The use case “ReportEmergency” is complete by itself , but can be extended by the use case “getHelp” for a specific scenario in which the user requires help Note : In an extend assocation, the base use case can be executed without the use case extensio <<extend>> FieldOfficer ReportEmergency Object Oriented Analysis and Design 65 getHelp Relationship between Use-cases - Generalization With the introduction of UML 1.3, a new relationship between use cases was introduced generalization Generalization – A generalization from use case A to use case B indicates that A is a specialization of B. Withdraw funds Withdraw from savings Object Oriented Analysis and Design Withdraw from checking 66 Request credit card advance Relationship between Use-cases - Generalization Problem: You have common behavior among use cases and want to factor this out. Solution: The generalization association among use cases factors out common behavior. The child use cases inherit the behavior and meaning of the parent use case and add or override some behavior. Example: Consider the use case “ValidateUser”, responsible for verifying the identity of the user. The customer might require two realizations: “CheckPassword” and “CheckFingerprint” Parent usecase CheckPassword ValidateUser CheckFingerprint Object Oriented Analysis and Design 67 Child usecase Checkpoints Object Oriented Analysis and Design 68 Checkpoints: Requirements: Use-Case Model Is the use-case model understandable? By studying the use-case model, can you form a clear idea of the system's functions and how they are related? Have all functional requirements been met? Does the use-case model contain any superfluous behavior? Is the division of the model into usecase packages appropriate? Object Oriented Analysis and Design 69 Checkpoints: Requirements: Actors Have all the actors been identified? Is each actor involved with at least one use case? Is each actor really a role? Should any be merged or split? Do two actors play the same role in relation to a use case? Do the actors have intuitive and descriptive names? Can both users and customers understand the names? Object Oriented Analysis and Design 70 Checkpoints: Requirements: Use-Cases Is each use case involved with at least one actor? Is each use case independent of the others? Do any use cases have very similar behaviors or flows of events? Do the use cases have unique, intuitive, and explanatory names so that they cannot be mixed up at a later stage? Do customers and users alike understand the names and descriptions of the use cases? Object Oriented Analysis and Design 71 Checkpoints: Requirements: Use-Case Specifications Is it clear who wishes to perform a usecase? Is the purpose of the use-case also clear? Does the brief description give a true picture of the use-case? Is it clear how and when the use-case's flow of events starts and ends? Does the communication sequence between actor and use-case conform to the user's expectations? Are the actor interactions and exchanged information clear? Are any use-cases overly complex? Object Oriented Analysis and Design 72 Review: Requirements Overview What are the main artifacts of Requirements? What are the Requirements artifacts used for? What is a use-case model? What is an actor? What is a use case? List examples of use case properties. What is the difference between a use-case and a scenario? What is a supplementary specification and what does it include? What is a glossary and what does it include? Object Oriented Analysis and Design 73 3.4 Software Requirements Specification Identifying other requirements Supplementary Specifications Glossary Object Oriented Analysis and Design 74 Supplementary Specifications Object Oriented Analysis and Design 75 Supplementary Specification Functionality Usability Reliability Performance Supportability Design constraints Object Oriented Analysis and Design Supplementary Specification 76 Supplementary Specification - Example Review the Supplementary Specification provided in the Course Registration Requirements Document Object Oriented Analysis and Design 77 Glossary Object Oriented Analysis and Design 78 Glossary Course Registration System Glossary 1. Introduction This document is used to define terminology specific to the problem domain, explaining terms, which may be unfamiliar to the reader of the use-case descriptions or other project documents. Often, this document can be used as an informal data dictionary, capturing data definitions so that use-case descriptions and other project documents can focus on what the system must do with the information. 2. Definitions The glossary contains the working definitions for the key concepts in the Course Registration System. 2.1 Glossary Course: A class offered by the university. 2.2 Course Offering: A specific delivery of the course for a specific semester – you could run the same course in parallel sessions in the semester. Includes the days of the week and times it is offered. 2.3 Course Catalog: The unabridged catalog of all courses offered by the university. Object Oriented Analysis and Design 79 Glossary - Example Review through the Glossary provided in the Course Registration Requirements Document Object Oriented Analysis and Design 80 3.5 Requirements Management Making sure you Solve the right problem Build the right system By taking a systematic approach to eliciting organizing documenting and managing the changing requirements of a software application. Object Oriented Analysis and Design 81 Aspects of Requirements Management Analyze the Problem Understand User Needs Define the System Manage Scope Refine the System Definition Build the Right System Object Oriented Analysis and Design 82 Map of the Territory Problem Problem Space Needs Solution Space Features The Product To Be Built Use Cases and Software Requirements Test Procedures Object Oriented Analysis and Design Design 83 User Docs 3.6 Case Study and Project Inception Phase Case Study - CRS Project - Inception Phase Object Oriented Analysis and Design 84 Inception Phase Object Oriented Analysis and Design 85 Inception Phase Inception Phase : Define the scope of the project and develop business case The primary objectives of the inception phase include: Establishing the project's software scope and boundary conditions, including an operational vision, acceptance criteria and what is intended to be in the product and what is not. Discriminating the critical use cases of the system, the primary scenarios of operation that will drive the major design trade-offs. Exhibiting, and maybe demonstrating, at least one candidate architecture against some of the primary scenarios Estimating the overall cost and schedule for the entire project. Estimating potential risks. Preparing the supporting environment for the project. Object Oriented Analysis and Design 86 What Artifacts May Start in Inception? Artifact Comment Vision and Business Case Describes the high-level goals and constraints, the business case, and provides an executive summary. Use-Case Model Describes the functional requirements, and related nonfunctional requirements. Supplementary Specification Describes other requirements. Glossary Key domain terminology. Risk List & Risk Management Plan Describes the business, technical, resource, schedule risks, and ideas for their mitigation or response. Prototypes and proof-ofconcepts To clarify the vision, and validate technical ideas. Iteration Plan Describes what to do in the first elaboration iteration. Phase Plan & Software Development Plan Low-precision guess for elaboration phase duration and effort. Tools, people, education, and other resources. Development Case A description of the customized UP steps and artifacts for this project. In the UP, one always customizes it for the project. Object Oriented Analysis and Design 87 Inception Phase - a suggested sequence 1. Write a brief first draft of the Vision. 2. Identify user goals and the supporting use cases. 3. Write some use cases and start the Supplementary Specification. 4. Refine the Vision, summarizing information from these. Object Oriented Analysis and Design 88 Checkpoint: What Happened in Inception? Inception is a short step to determine basic feasibility, risk, and scope. Some likely activities and artifacts in inception include: a short requirements workshop most actors, goals, and use cases named most use cases written in brief format; 10-20% of the use cases are written in fully dressed detail to improve understanding of the scope and complexity. most influential and risky quality requirements identified version one of the Vision and Supplementary Specification written risk list technical proof-of-concept prototypes and other investigations to explore the technical feasibility of special requirements user interface-oriented prototypes to clarify the vision of functional requirements recommendations on what components to buy/build/reuse, to be refined in elaboration high-level candidate architecture and components proposed plan for the first iteration Object Oriented Analysis and Design tools list 89 candidate Sample requirements effort across the early iterations Object Oriented Analysis and Design 90 Case Study (Covered in GCIS501) Object Oriented Analysis and Design 91 Case Study - Course Registration System Vision SRS - Use Case Model SRS - Supplementary Specification SRS - Glossary Object Oriented Analysis and Design 92 Project – Inception Phase Object Oriented Analysis and Design 93 Project - Requirements Work as a team (max 3 person) Select topic Write the following Requirements artifacts: Vision SRS • Use-case model (Use-case diagram, Use-case specification, Activity Diagram) • Supplementary specification • Glossary • User Interface (optional) Object Oriented Analysis and Design 94