22
GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Embed Size (px)

Citation preview

Page 1: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

GUI_UML Tutor

Developed and evaluated by:-Jim Moon and Gaylor Boobyer.

Presented by:-Dave Farthing.

School of Computing University of Glamorgan

Page 2: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Introduction

The Unified Modelling Language (UML) is the de facto standard for the visual analysis and design of object oriented software.

This presentation introduces a prototype software tutor that is under development to try to provide the following:- An understanding of how UML and a software program relate to

each other. A single consistent source that describes the key concepts of a

final year UML course. A guide to help ensure that the UML model is consistent across

a number of diagrams. NOTE:- Although this tool can create partial UML

designs it is meant as an introductory tutor.

Page 3: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Challenges of UML A UML model is quite an abstract representation of a

software system. Currently, UML provides little support for mapping the

abstract UML representation to the physical software being developed. Burton and Bruhn (2004) found that students of UML find a

visual approach with active involvement beneficial. The UML language is evolving quite quickly, this means

that many information sources are based on subtly different language syntax.

The synthesis of the UML techniques is a cognitively challenging task. Frosch-Wilke (2003) published a survey of ten university

courses on UML showing that many students failed to understand interdependencies between the different UML diagrams and did not really know how UML helps to build good software.

Page 4: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

The GUI-UML Tutor The tutor is intended to assist a student in understanding

how elements of UML relate to the actual software. The tutor is also intended to provide examples of UML

techniques working in synergy. It has been found that many students are good at

producing user interfaces and often enjoy doing so (e.g. using Visual Basic). Therefore, the first task in using the tutor is to create a simplified GUI interface.

This is only intended as a basic introduction to Use Case modelling, not as an ideal method of always determining Use Cases. Storyboards are sometimes used in a similar way to reflect the

steps taken to play out a scenario (Ambler 2003).

Page 5: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

UML

The following example demonstrates part of the development for a Cashpoint (ATM).

A Use Case symbol is simply a visual representation of a significant behavioural feature of a system. E.g. for a Cashpoint ‘Log In’, ‘Log Out’, ‘Withdraw Cash’, etc.

A Use Case often, although not always, reflects a menu item in a software system.

By creating a User Interface the students can see the way the scenario plays out before writing the Use Case.

Withdraw Cash

Page 6: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Identifying Use Case initiationThe student places a menu Item on the screen and considers whether it initiates a Use Case

If so, the student identifies the Menu item as initiating the “Log In” Use Case.

The red tabs indicate that this Menu Item initiates a Use Case.

Page 7: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Playing out the Use Case scenario in the GUI

As shown earlier, inserting the Card Initiates the “Log In” Use Case

Once the card has been read the Log In Screen Is displayed

The customerenters a PIN

Then pressesOK

Page 8: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Successful log in brings up the ATM Main Screen

Once the PIN has been entered it is checked and the relevant account is foundby the software system.

Page 9: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Converting to UML

Having visually identified the sequence of steps in a scenario the student needs to convert them to UML.

The development version (1.01) now includes Use Case diagramming and the student creates a Use Case diagram.

The <<boundary>>, <<control>> and <<entity>> classes design pattern is employed. The tool generates a <<boundary>> class for each data entry

form. The tool generates a <<control>> class for each menu item. The students are left to develop <<entity>> classes, e.g. via

lexical analysis (nouns).

Page 10: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Therefore, the student creates a Use Case diagram to match the Use Cases they have found (version 1.01).

Page 11: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Use Case Narrative (Text based)

Log In

Typical Use Case Narrative:- Log In

Assumptions :- The cash machine is operational.

Pre-conditions:- The customer has a valid bank account and bank card.

Post-conditions:- The customer card has been accepted. The customer account has been identified. The Customer is logged in.

Use Case Dialog (Specification) (for a successful log on) :-

The customer inserts their card which is checked by the software. The log in screen is displayed and the customer enters their pin number and selects ok. The system checks the PIN number, finds the relevant account and the ATM main screen is displayed.

Customer

For each use case the way a scenario is played out is then described in a Use Case narrative:

Page 12: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

The Tutor Use Case Narrative

The narrative dialog provides specific tabs to remind the student about the data to enter (version 1.01).

Page 13: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Identifying the Use Casesautomatically producesa system <<control>> class.

Page 14: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Also, creating the Formsautomatically producesthe <<boundary>> classes.

E.g. for the ‘Log In’ form:

These classes represent theScreens of the system E.g. Dialog BoxesThe student then needs to takedata from the dialog box and store it in the correct <<entity>> class.

Page 15: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Help

General help, tutorials and context sensitive help are provided to assist the student as they progress. In this case F1 was pressed while over a Use Case on a Use Case Diagram.

Page 16: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Results

Version 1.0 of the tutor was employed this year with a group of thirty three final year software engineering students. One final year computer studies student with less

exposure to UML also used the tutor as a guide to producing the documentation for his project. He has not been included in the following results.

An analysis of the software engineering students’ results follows.

Page 17: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Pre tutor questionnaire results Surprisingly, most of the final year students felt quite

confident about developing a complete software design before being given this tutor:

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Create Class Diagrams

Identify Entity Classes

Identify Collaborating Classes

Identify Responsibilities in Classes

Identify Use Cases

Create Use Case Diagrams

W rite Use Case Descriptions

Create Sequence Diagrams

Identify Boundary Classes

Identify Control Classes

Confidence level

Page 18: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Post tutor questionnaire results While almost all the student cohort completed the pre tutor questionnaire,

less than 50% completed the more detailed post tutor questionnaire. The results show that almost all those students who had completed both

questionnaires had generally benefited from using the tutor software.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Create Class Diagrams

Identify Entity Classes

Identify Collaborating Classes

Identify Responsibilities in Classes

Identify Use Cases

Create Use Case Diagrams

W rite Use Case Descriptions

Create Sequence Diagrams

Identify Boundary Classes

Identify Control Classes

Pre tutor

Post tutor

Page 19: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Create Class Diagrams

Identify Entity Classes

Identify Collaborating Classes

Identify Responsibilities in Classes

Identify Use Cases

Create Use Case Diagrams

W rite Use Case Descriptions

Create Sequence Diagrams

Identify Boundary Classes

Identify Control Classes

Pre tutor

Post tutor

Post tutor questionnaire results Further examination of the results indicated an anomaly in two of the student’s pre

and post questionnaires. These students had originally been very confident of their design abilities but had

become less confident of their abilities after using the tutor. The feeling of the team is that these particular students had been overly confident

when initially completing the pre tutor questionnaire. Omitting these results:

Page 20: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

The Future The direction of development is guided by feedback from

the students. This year the students responses suggested the following order of development: Increased number of case studies/tutorials in the help system; Use Case diagrams; Class diagrams; The ability to print diagrams and export models to Rational Rose.

Therefore, version 1.01 is under development and, as you have seen, it includes Use Case diagramming.

There are many other aspects of development that are under consideration: Activity diagramming; Sequence diagramming; The use of the .NET design time architecture to improve the

interface.

Page 21: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

Concluding remarks

This presentation has introduced a prototype software tutor for UML.

The key features are:- Using a simple GUI to guide use case reasoning; Automatic development of simple <<boundary>> and

<<control>> classes; A context sensitive help system to guide the students; On line tutorials.

Page 22: GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan

References

Ambler S W, The Object Primer : Agile Model-Driven Development with UML 2.0, Third Edition, Cambridge University Press (2004).

Burton P J, Bruhn R E, Using UML to facilitate the teaching of object-oriented systems analysis and design, Journal of Computing Sciences in Colleges, 19, issue 3, pp 278-290, (Jan 2004)

Frosch-Wilke D, Using UML in software requirements analysis -- Experiences from practical student project work. Proceedings of the Informing Science + IT Education Conference, Informing Science Institute, Santa Rosa, CA, pp 175-183, June, (2003).

Hansen K M, Ratzer A V, Tool Support for Collaborative Teaching and Learning of Object-Oriented Modeling, Proceedings of the 7th Annual Conference on Innovation and Technology in Computer Science Education ITiCSE’ 02, Aarhus, Denmark, June 24-26, pp 146-150 (2002)

Thomas L A, Ratcliffe M, Woodbury J, Jarman E, 2002, Learning Styles and Performance in the Introductory Programming Sequence, Proceedings of the 33rd SIGCSE technical symposium on computer science education. Covington, KY: ACM Press, (2002).