UML use case: Difference between revisions
m (using an external editor) |
mNo edit summary |
||
(12 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
== Definition == | == Definition == | ||
* '''Use case''' is a [[software engineering]] method to define requirements for a system. | * '''Use case''' is a [[software engineering]] method to define requirements for a system. Its range of application is wide and not necessarily constrained to computer development. | ||
According to the [[Wikipedia:Use case | WikiPedia]], {{quotation | 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.}} | * According to the [[Wikipedia:Use case | WikiPedia]], {{quotation | 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 | == Use case diagrams == | ||
Use cases are | Use cases are modeled with the [[Unified modeling language]] (UML). | ||
== Examples == | |||
=== Learning Java Basics === | |||
This example is from Hanspeter Heeb's (2001) MA thesis. It uses UML to model a learner activity in initial programming training. | |||
This example is from Hanspeter Heeb's (2001) MA thesis | |||
{{quotationbox | 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) | {{quotationbox | 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 | 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). | ||
[[Image: hello-world-use-case.png]] | [[Image: 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 ;)- | |||
<table style="border-style:solid;border-width:thin;"> | |||
<tr> | <tr> | ||
<th>In a procedural programming language, such as Pascal</th> | <th>In a procedural programming language, such as Pascal</th> | ||
Line 43: | Line 42: | ||
* The class System, because this class contains a reference to the standard output in the static attribute out. | * 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. | * System.out refers to an object of class PrintStream. | ||
* This object's operation «print()» is called with the argument String, | * This object's operation «print()» is called with the argument String, i. e. «System.out.println(String)» | ||
i. e. «System.out.println(String)» | |||
* The argument String is upcasted automatically to argument Object. | * 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. | * The operation «println(Object)» of PrintStream calls the operation «toString()» from class String to write the object to the standard output. | ||
</td> | </td> | ||
</tr> | </tr> | ||
</table> | |||
=== Koper's Learning Network === | |||
Koper (2004) presents an interesting use case of use case, i.e. UML to specify a {{quotation|self-organised learning networks provide a base for the establishment of a form of education that goes beyond course and curriculum centric models, and envisions a learner-centred and learner controlled model of lifelong learning.}} | |||
{{quotationbox | The use case diagram [below] specifies several actors in a learning network: learners, providers and autonomous software agents. A learner can be an individual person or a group of persons. A further specialization of learners can be given in terms of workers, citizen and students (in regular educational institutes). Different kinds of providers may be distinguished, such as content providers responsible for the provision of learning content (e.g. experts, publishers, libraries) and learning service providers can be distinguished, responsible for tutoring, mentoring, assessment and other learning support functions (e.g. schools, universities, training institutes). Software agents can perform a variety of activities in collaboration with the human actors: sometimes they take over some human activity but in most cases they will support the humans in performing their activities.}} | |||
: - [http://www-jime.open.ac.uk/2004/6 Koper, 2004] | |||
[[image:learning-networks-uml-koper.jpg|frame|none|Koper's General use case for learning networks]] | |||
{{quotationbox|The figure specifies several use cases, i.e. the activities performed by the actors, represented with oval boxes. A learning network is defined in a certain knowledge or application domain (e.g. psychological diagnosis or eLearning) and consists of a heterogeneous community of humans with a variety of backgrounds and offerings in this field. You can enter the network to learn something new, to increase your level of competence in a certain area or to offer something for others to learn or use. The core concept of the learning network is that it consists of a collection of nodes, each representing a unit of learning (UOL nodes). Every node contains some study tasks, knowledge resources, collaborative services and learning support facilities organized around some learning objective and some prerequisites. Learners can create their own UOL nodes, can use nodes created by others, can collaborate with others to create nodes and can evaluate and rate the quality of UOL nodes. Providers of high-quality materials and courses can do the same. Someone who wants to learn something (a learner) can search for his or her own learning path (a sequence of nodes), explore node after node or can use a predefined route defined by someone else. This route can be analysed on the basis of previous successful path of others or can be pre-planned by e.g. an educational institution. Some UOL nodes can serve as assessment nodes, resulting in a certificate or diploma that reflects the acquired competencies in the learning network. In a learning network, the user will find several software agents that can support him by performing certain tasks, like the creation of new UOL nodes, selection of adequate learning path, etcetera.}} | |||
: - [http://www-jime.open.ac.uk/2004/6 Koper, 2004] | |||
== Links == | |||
* [[Wikipedia:Unified_Modeling_Language]] | |||
* [[Wikipedia:Use case]] | |||
* Randy Miller, [http://bdn.borland.com/article/0,1410,31863,00.html Practical UML: A Hands-On Introduction for Developers], Borland Developer network. (This is a very short general UML tutorial). | |||
* Donald Bell, [http://www-128.ibm.com/developerworks/rational/library/769.html UML basics: An introduction to the Unified Modeling Language], IBM Developper Works / Rational Rose. (IBM has a lot of UML and use case tutorials, needs some searching skills) | |||
== References == | == 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. [http://tecfa.unige.ch/staf/staf-d/heeb/mem/TOOLOP.zip Zip file] | * 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. [http://tecfa.unige.ch/staf/staf-d/heeb/mem/TOOLOP.zip Zip file] | ||
* Koper, R. (2004). Use of the Semantic Web to Solve Some Basic Problems in Education: Increase Flexible, Distributed Lifelong Learning, Decrease Teacher's Workload. Journal of Interactive Media in Education, 2004 (6). Special Issue on the Educational Semantic Web. ISSN:1365-893X[http://www-jime.open.ac.uk/2004/6] | |||
[[Category: Design methodologies]] | |||
[[Category: UML]] |
Latest revision as of 19:00, 8 July 2009
Definition
- Use case is a software engineering method to define requirements for a system. Its 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).
Examples
Learning Java Basics
This example is from Hanspeter Heeb's (2001) MA thesis. It uses UML to model a learner activity in initial programming training.
(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).
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 |
---|---|
|
|
Koper's Learning Network
Koper (2004) presents an interesting use case of use case, i.e. UML to specify a “self-organised learning networks provide a base for the establishment of a form of education that goes beyond course and curriculum centric models, and envisions a learner-centred and learner controlled model of lifelong learning.”
Links
- Randy Miller, Practical UML: A Hands-On Introduction for Developers, Borland Developer network. (This is a very short general UML tutorial).
- Donald Bell, UML basics: An introduction to the Unified Modeling Language, IBM Developper Works / Rational Rose. (IBM has a lot of UML and use case tutorials, needs some searching skills)
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
- Koper, R. (2004). Use of the Semantic Web to Solve Some Basic Problems in Education: Increase Flexible, Distributed Lifelong Learning, Decrease Teacher's Workload. Journal of Interactive Media in Education, 2004 (6). Special Issue on the Educational Semantic Web. ISSN:1365-893X[1]