2 Use-case modelThe use case model captures the requirements of a system. Use cases are created based on identified functional requirements but are not mapped one-to-one to requirementsUse case models are a means of communicating with users and other stakeholders what the system is intended to do.Use case models specify the expected behavior [what], and not the exact method of making it happen [how]Use case models once specified can be denoted using a clear and precise visual modeling language such as UML
3 ScenariosA use-case is made up of a set of scenarios. Each scenario is a sequence of steps that encompass an interaction between a user and a system. The use case brings scenarios together that accomplish a specific goal of the user.
4 Scenarios Specify behavior of use case by description, not modeling Examples include informal structured text, formal structured text with conditions, and pseudo-codeTypically specifies:How and when the use case starts and endsInteraction with the actors and the exchange of objectsFlow of events: main / typical (success), alternative (success), and exceptional (failure) flows
5 Elements of a use-case description/scenario Use Case Name: ID: Importance Level:Primary Actor: Use Case Type:Stakeholders and Interests:Brief Description:Trigger:Relationships: (Association, Include, Extend, Generalization)Normal Flow of Events:Subflows:Alternate/Exceptional Flows:
6 Actor An actor is a role that a user plays in the system. Represent roles that humans, hardware devices, or externalsystems play while interacting with a given systemThey are not part of the system and are situated outside of the system boundaryActors may be both at input and output ends of a use case
7 Examples of actorssales personmanagersupport personweb store systemIt is possible that the same person may be a sales person and also provide support. When creating a use case model, we are not concerned with the individuals, only the roles that they play.
8 Identifying Actors Define system boundary to identify actors correctly Identify users and systems that depend on the system’s primary and secondary functionalitiesIdentify hardware and software platforms with which the system interactsSelect entities that play distinctly different roles in the systemIdentify as actors external entities with common goals and direct interaction with the systemDenote actors as nouns
9 Use-casesA use case illustrates the activities that are performed by users of a system.Use cases describe the activities of a system without specifying how the activities are implemented.
10 Identifying Use Cases Business / Domain Use Cases: System Use Cases: Interactions between users and the business (or domain)System Use Cases:Interactions between users and the systemOne business use cases contains a set of system use casesTo name the use cases, give it a verb name to show the action that must be performedDescribe a transaction completelyNo description of user interface whatsoever
11 Capture use-cases Capture use cases during requirements elaboration Use cases are not mapped one-to-one to requirementsEach requirement must be covered by at least one use caseHowever, use cases may contain many requirementsUse scenarios to model assumptions and define system scopeList exceptions separately
12 Major steps in writing use-cases Identify the major use-casesExpand the major use-caseConfirm the major use-casesCreate the use-case diagramAs can be seen by comparing this list to figure 6-7, it is a very high levelsummary. Teachers of this material might want to spend significant time reviewingwhat happens in each of these steps.
13 Identifying the major use-cases Identify the system’s boundariesList the primary actorsList the goals of each primary actorIdentify and write the major use-casesCarefully review use-cases
14 Expand the major use-cases Choose one major use-case to expandFill in details on the use-case templateFill in the steps of the normal flow of eventsNormalize the size of each stepDescribe alternate or exceptional flowsSimplify and organize as necessary
15 Confirm the major use cases Review the current setConsider semantics and syntaxHelpful to involve the usersIterate the entire set of steps until all use cases are defined
16 Create the use-case diagram Start with system boundaryPlace elements in order to be easy to readPlace actors on the diagramConclude by connecting actors to use cases by lines
17 Use-case diagramThe use-case diagram allows a designer to graphically show these use cases and the actors that use them.
20 Putting it all Together When starting a use case model, it is very important to keep it simple. Often it is easiest to first determine the actors of the system, and then flush out the use cases that they perform. Your use case diagrams can be as simple or complex as you wish, however simpler, less cluttered diagrams are easier to understand, and are often more powerful in capturing the tasks of the system.Remember that a use case represents a goal of a user, not an atomic programming operation. Your use case design should be simple and help to clarify the user's goals and expectations for the system.
21 Courseware SystemTask: Create a use case model for a system that can be used to manage courses and classes for an organization that specializes in providing training. The name of the system is Courseware System.
22 The organization offers courses in a variety of areas such as learning management techniques and understanding different software languages and technologies. Each course is made up of a set of topics.Tutors in the organization are assigned courses to teach according to the area that they specialize in and their availability.The organization publishes and maintains a calendar of the different courses and the assigned tutor every year.There is a group of course administrators in the organization who manage the courses including course content, assigning courses to tutors, and defining the course schedule.The training organization aims to use the Courseware System to get a better control and visibility to the course management and to also streamline the process of generating and managing schedules for different courses.