Upload
rianna
View
43
Download
0
Embed Size (px)
DESCRIPTION
Experiences with a UML Diagram Critique Tool. Robert W. Hasker, Andrew Rosene, James Reid University of Wisconsin – Platteville MICS, 2012. Motivation. Important skill for SE students: constructing, diagramming models Consider the following class diagram - PowerPoint PPT Presentation
Citation preview
EXPERIENCES WITH A UML DIAGRAM CRITIQUE TOOLRobert W. Hasker, Andrew Rosene, James ReidUniversity of Wisconsin – Platteville MICS, 2012
Motivation Important skill for SE students:
constructing, diagramming models Consider the following class diagram
Reasonable structure, collection of classes
Motivation Closer inspection:
Redundant with association
Motivation Closer inspection:Missing objects
Redundant with association
Motivation Closer inspection:Missing objects
Redundant with association
Nonstandard notation
Motivation Closer inspection:
What sort of thing is a “security”?
Missing objectsRedundant with association
Nonstandard notation
Solutions Ideally, the modeling tool would catch such errors
Professional tools (such as IBM Rational Rose used here) must allow for a wide variety of practices
Student tools reduce competitiveness, don’t seem mature
UMLint: identifies potential errors Inspiration: the C programming utility, lint Currently focused on class, use case diagrams
Presentation Overview of issues identified by UMLint Experiences from the students in using the tool in
upper-level classes
Use case model defects Use case diagrams:
good for introducing diagram “rules” A pet food dispenser:
Use case model defects Use case diagrams:
good for introducing diagram “rules” A pet food dispenser:
Belongs inclass model
Improper notation
Backwards dependencies
Use case model defects Use case diagrams:
good for introducing diagram “rules” A pet food dispenser:
Backwards <<extend>>: no route to Block Excessive Eating
Belongs inclass model
Improper notation
Backwards dependencies
Class model defects
Reversed generalizations
Class model defects
Reversed generalizations
Multiple “owners”
Class model defects
Reversed generalizations
Multiple “owners”
Nondescript word
Unnecessaryabbreviation
Class model defects
Reversed generalizations
Multiple “owners”
Low cohesionNondescript word
Unnecessaryabbreviation
Class model defectsReversed generalizations
Multiple “owners”
Low cohesionNondescript word
Unnecessaryabbreviation
Class model defectsReversed generalizations
Multiple “owners”
Low cohesionNondescript word
Unnecessaryabbreviation
Publicattribute
Class model defectsReversed generalizations
Multiple “owners”
Low cohesionNondescript word
Unnecessaryabbreviation
Publicattribute
Nonstandard methods
Class model defectsReversed generalizations
Multiple “owners”
Low cohesionNondescript word
Unnecessaryabbreviation
Publicattribute
Nonstandard methods
Index variables Complex attributes
Class model defectsReversed generalizations
Multiple “owners”
Low cohesionNondescript word
Unnecessaryabbreviation
Capitalization standards Missing documentation
Publicattribute
Nonstandard methods
Index variables Complex attributes
Experiences Example 1: model a rescue system for the
Australian Outback Victim calls for help Operator plans route Self-guided system delivers supplies System can navigate obstacles
Goal of assignment: check skills retention Students: capstone project course
Prerequisites: Data Structures, Object-Oriented Analysis & Design, Intermediate Software Engineering
Example 1: Use case model
Errors identified by UMLint Directed
associations
(Directed) Associations between use cases
Classes
() after use case names
Improved use case model Remaining
error: >3 links from actor
Indicates flowchart
Example 2: Mobile Application
Ordering food Items in
categories Optional
condiments, components
Underscor
es vs. camelCase
Missing multiplicities
Inconsistencies Slow down
development
Example 3: Alternative Food App
Example 3: Alternative Food App
Complex attribute
Two owners for Item
Unrecognized/ misspelled words
Missing Multiplicities
Improved Food App Fixing
multiplicities revealed missing containers
Improved method placement
Example 4: Application Framework Second diagram by same group as ex. 3
Missing multiplicities, documentation
Ex. 4: Revised Framework Result of
adding documentation:
Discussion Goal: improve student diagram quality
Assumption: forcing students to look more closely at diagrams would result in identifying missing classes, introduce generalizations, improve associations
Results: could not find cases of this for the students involved in this project (spanning multiple groups)
Report: these issues were identified by groups before submittal Was successful in identifying smaller issues
Naming conventions Incorrect associations Missing multiplicities Missing containers
Generally: found detailed errors that are difficult to identify by hand
Improvements Improve check for documentation
A single space satisfies this check Consider using natural language parser
Improve notification of deleted objects Rose allows deleting object from diagram, not
model Should provide better feedback on where to find
these Provide command-line interface
Current web interface too cumbersome for frequent checks
Conclusion In practice, UMLint addresses details
more than big picture issues in designs However, did help groups eliminate
errors Group members pointed out UMLint would
flag certain choices Helped remind users of notation
“Basic stuff, but it’s that basic stuff you forget.”