Advanced Use Case Diagrams, Textual Specifications PB007 Software Engineering I Bruno Rossi 3. 10. 2016 Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 1 / 16 Relations in Use Case Diagrams In addition to the associations between actors and use cases seen last week, there are further types of relations: generalization of actors; use case generalization; include; extend; Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 2 / 16 Actors Generalization Generalization (inheritance) of actors is the relationship between the more general and specialized actors General actors are often abstract, i.e. they do not represent a real role in the system. Descending actors represent instead a specific role; A descending actor inherits all roles and parent links; Every time it is expected the use of a parent actor, we can use on of the descendants; It is generally suitable when multiple actors have a number of common use cases; Simplifies the semantics of the diagram; Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 3 / 16 Actors Generalization - an example Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 4 / 16 Use Case Generalization Generalization (inheritance) of use cases is the relationship between the general and specialized use cases; A specialized use cases inherits the properties of its parent, and add new features by possibly overloading (changing) the inherited properties; Note: it cannot overload the parents’ extension points The text specifications in the offspring should denote the changes from the parent use case; Parental use cases can be abstract (recommended), i.e. either no specification or incomplete specification of the flow of events; Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 5 / 16 Use Case Generalization - an example Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 6 / 16 include include allows you to allocate repetitive steps in several use cases in a separate use case; The basic use case is incomplete without all the embedded use cases; Embedded use cases may or may not be comprehensive; Be careful about functional decomposition! Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 7 / 16 include Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 8 / 16 include Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 9 / 16 extend The relationship extend is a way to add new behavior to existing use cases; The basic use case contains within the flow of events the so-called extension points; The extension use case specifies at which point the extension is attached; The basic use case does not know which point of the extension is attached to; Extension of use cases can contain several segments and each is designed to point to a different extension use case; More extension use cases can share the same extension points. In this case, it is appropriate to establish the conditions that determine which of them should be used in a given situation; Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 10 / 16 extend Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 11 / 16 specification of use cases The textual use case specification should include: ID; A brief description; The primary actors; The secondary actors; Input conditions; The main flow of events; Output conditions; An alternative flow of events; Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 12 / 16 Flow of events Main Flow, Primary Scenario events are a sequence of steps of interaction with the system in the ideal case (that is free from errors, interruptions, etc...); They always begin with some action of the primary actor. It is recommended to use the form:: 1. The use case begins when . The individual steps should be short, precise and understandable. Use the form: You can use branching flow using keywords IF, FOR, WHILE The alternative flow represents deviations from the main flow due to errors or interruptions. It can also be used to capture more complex branching, such as situations that are not exactly known if and when they will occur; Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 13 / 16 Resources http://sce.uhcl.edu/helm/rationalunifiedprocess/ process/artifact/ar_ucmod.htm http://www.karonaconsulting.com/downloads/UseCases_ IncludesAndExtends.pdf Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 14 / 16 Tasks Review the primary use case diagram from the previous exercise. Please correct any errors and consider the use of advanced relationships (include, extend, generalization); With a few sentences, document all use cases. This will serve to fully understand the model and select the use cases that will be further specified with the specifications; Choose three use cases for which to create a detailed textual documentation in the form of scenarios and event streams. It is appropriate that the use cases are related. The selection must be made by agreement with the instructor. Set the selected cases in VP to use a different colour than the others (e.g. light yellow color); Upload the pdf report to folder (Week 03). Deadline: Friday, 7.10.16 23:59 Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 15 / 16 Reporting Configuration in VP Software Engineering I (PB007) Advanced UC Diagrams, Textual Specifications 3. 10. 2016 16 / 16