UML use case: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
Line 9: Line 9:
== Use case diagrams ==
== Use case diagrams ==


Use cases are modeled with the Unified modeling language (UML).
Use cases are modeled with the [[Unified modeling language]] (UML).





Revision as of 11:44, 20 May 2006

Draft

Definition

  • Use case is a software engineering method to define requirements for a system. It's range of application is wide and not necessarily constrained to computer development.

According to the WikiPedia, “use case is a technique for capturing the potential requirements of a new system or software change. Each use case provides one or more scenarios that convey how the system should interact with the end user or another system to achieve a specific business goal. Use cases typically avoid technical jargon, preferring instead the language of the end user or domain expert. Use cases are often co-authored by Business Analysts and end users.”

Use case diagrams

Use cases are modeled with the Unified modeling language (UML).


Example

This example is from Hanspeter Heeb's (2001) MA thesis who use UML to model a learner activity in initial programming training.


A use case diagram, on the next page, usually shows all possibilities how to use an application. For me, it is also a way to outline a curriculum. Every use case describes an activity. Arrows show the interdependencies of these activities. Base activities should be learned firstly, because other activities extend the material of a first activity. Important, the arrow points to what needs to be learned firstly, the basic activity. Outlining a use case diagram, one may split up larger activities into smaller activities, as long as there is still an activity that the trainee can carry out.

(Heeb 2001:7)

The picture shows the difference in difficult writing a very simple program in a structural language (like Pascal) and a typed object-oriented language (like Java).

Hello-world-use-case.png


This diagram clearly shows the complexity of object-oriented programming. You do not understand the code of the most simple Java application or applet "Hello world!" as long as you do not know very complex concepts of object-oriented programming. The following table summarizing the diagram shows teacher that teachers have to be concerned about a very different set of concepts to be acquired and nicely demonstrates why one can't teach Java to typical educational technology students ;)-

In a procedural programming language, such as Pascal In an object-oriented programming language, such as Java
  • A simple program structure
  • The predefined procedure «writeln()»
  • The string constant "Hello world!"
  • A simple class structure
  • The definition of a static method «main()»
  • The string object that contains "Hello world!"
  • An array of objects of class String, even if this argument array is not used
  • The class System, because this class contains a reference to the standard output in the static attribute out.
  • System.out refers to an object of class PrintStream.
  • This object's operation «print()» is called with the argument String, i. e. «System.out.println(String)»
  • The argument String is upcasted automatically to argument Object.
  • The operation «println(Object)» of PrintStream calls the operation «toString()» from class String to write the object to the standard output.

Links

References

  • Heeb, Hanspeter, Roboworld Overcoming the Problem of Cognitive Load in Object-Oriented Programming by Microworlds, Mémoire DESS en Sciences et Technologies de l'Apprentisssage et de la Formation, TECFa, Université de Genève. Zip file