Presentation on theme: "GUI_UML Tutor Developed and evaluated by:- Jim Moon and Gaylor Boobyer. Presented by:- Dave Farthing. School of Computing University of Glamorgan."— Presentation transcript:
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.
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.
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).
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
Identifying Use Case initiation The 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.
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 customer enters a PIN Then presses OK
Successful log in brings up the ATM Main Screen Once the PIN has been entered it is checked and the relevant account is found by the software system.
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 >, > and > classes design pattern is employed. The tool generates a > class for each data entry form. The tool generates a > class for each menu item. The students are left to develop > classes, e.g. via lexical analysis (nouns).
Therefore, the student creates a Use Case diagram to match the Use Cases they have found (version 1.01).
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:
The Tutor Use Case Narrative The narrative dialog provides specific tabs to remind the student about the data to enter (version 1.01).
Identifying the Use Cases automatically produces a system > class.
Also, creating the Forms automatically produces the > classes. E.g. for the ‘Log In’ form: These classes represent the Screens of the system E.g. Dialog Boxes The student then needs to take data from the dialog box and store it in the correct > class.
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.
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.
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: Confidence level
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.
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:
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.
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 > and > classes; A context sensitive help system to guide the students; On line tutorials.
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 , (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 , 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 (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).