Methods & Tools Software Development Magazine

Software Development Magazine - Project Management, Programming, Software Testing

Scrum Expert - Articles, tools, videos, news and other resources on Agile, Scrum and Kanban

Understanding Use Case Modeling - Page 3

Sinan Si Alhir, http://sites.google.com/site/salhir/

Use Case Modeling

To successfully apply use case diagrams in use case modeling, we ought to be aware of various guidelines (lessons learned) from applying this technique.

Actors

When modeling actors, we ought to be aware of the following guidelines:

  • Actors should be named using noun phrases.
  • Actors should be described, indicating what interests an actor has in interacting with the system. For example, the project manager is responsible for ensuring the success of projects, and the project database is responsible for housing project management data.
  • Actors define the scope of a system and identify those elements that reside at the periphery of the system and those elements on which the system depends. For example, these use case diagrams indicate that the project management system depends on a project database to provide functionality to a project manager, both residing on the periphery of the system.

Furthermore, other guidelines may be applied in addition to those above.

Use Cases

When modeling use cases, we ought to be aware of the following guidelines:

  • Use cases should be named using verb-noun phrases.
  • Use cases should be described, indicating how they are started and end, any conditions that must be satisfied before the use case starts (pre-conditions), any conditions that must be satisfied when the use case ends (post-conditions), the sequence of exchanged messages and performed actions, the data exchanged, and any non-functional characteristics (reliability, performance, supportability, etc. constraints). This descriptions may be captured using text and other UML diagrams.
  • Use cases define the scope of a system and define the functionality provided by the system and those elements on which the system depends in order to provide the functionality. For example, these use case diagrams indicate that the project management system provides functionality to mange projects to a project manager, and this functionality is implemented using the project database.
  • Use cases should facilitate actors in reaching their goals. Use cases are system functionality or responsibilities (requirements) that actors use in order to reach or satisfy their goals. Use cases are not simply actor goals. For example, a project manager is responsible for ensuring the success of projects, and a project database is responsible for housing project management data. The project management system provides functionality to manage projects to a project manager such that the project manger can ensure the success of projects.
  • Use cases should facilitate the architecture of a system. Use cases may be organized and partitioned using includes, extends, and generalization relationships to identify, extract, and manage common, optional, and similar functionality. The organization of a set of use cases is not simply the architecture of the system. However, the architecture of a system is based upon the various technology, infrastructure, etc. considerations relevant to satisfying the use cases. For example, the project management system must interface with an e-mail system and a web-site host, thus appropriate subsystem elements must exist within our architecture to facilitate these interfaces.
  • Use cases provide flexibility and power throughout the life-cycle process. They provide the freedom to work with a use case as a whole or any subset of a use case via scenarios. The use of includes, extends, and generalization relationships to identify, extract, and manage common, optional, and similar functionality provides further flexibility in working with use cases. Furthermore, use cases may be used to model interactions between actors and systems, subsystems, and classes at various levels of abstraction. This flexibly and power is propagated to every application of use cases. For example, if time, resources, or funding are not sufficient to implement a whole use case, various scenarios may be selected for implementation based upon these factors.
  • Use cases may be used as the basis for planning. Time and resource estimates may be associated with use cases. If estimates for a use case cannot be derived, estimates for each scenario of a use case may be derived and used to potentially estimate the overall time and resource estimates for the use case as a whole. This helps ensure that planning is done with the objective of satisfying the requirements.
  • Use cases may be used as the basis for analysis, design, and implementation. The sequence of exchanged messages and performed actions within the description of a use case are analyzed and the system is design and implemented to specifically realize use case interactions. This helps ensure that every element of a system is created and used because it contributes to satisfying the requirements.
  • Use cases may be used as the basis for testing. The sequence of exchanged messages and performed actions within the description of a use case may be used as test scripts for validating the functionality of a system. This helps ensure that the system is tested and validated against the requirements.
  • Use cases may be used as the basis for documentation since use cases capture how users will use the system.

Furthermore, other guidelines may be applied in addition to those above.

Conclusion

As the Unified Modeling Language (UML) is an evolutionary general-purpose, broadly applicable, tool-supported, and industry-standardized modeling language for specifying, visualizing, constructing, and documenting the artifacts of a system-intensive process, by understanding the types of elements used in use case diagrams and being .aware of various guidelines (lessons learned) from applying this technique, we have a sound foundation for successfully applying the technique. Furthermore, it is experience, experimentation, and application of the standard and its various techniques that will enable us to realize its benefits.

Related Unified Modeling Language UML articles

More Unified Modeling Language UML Knowledge


Page 2   


Click here to view the complete list of archived articles

This article was originally published in the Spring 2000 issue of Methods & Tools

Methods & Tools
is supported by


Testmatick.com

Software Testing
Magazine


The Scrum Expert