JUnit 3.8 Documented Using Collaborations

Home - About » Computer Science - Research - Publications
Computer Science
Research, Industry Work,
Programming
Community Service
Hillside Group, CHOOSE,
Stanford GSA
The Serious Side
Business School,
Learning Chinese
Humorous Takes
Switzerland, United States,
Software, Fun Photos
Travel Stories
Europe, United States, Asia
  
Living Places
Berlin (+ Gallery), Zürich
Boston, S.F. + Bay Area

This technical report describes the design of the unit testing framework JUnit in its version 3.8. The documentation technique employed is an enhanced version of collaboration-based design, also known as role modeling. In collaboration-based design, objects are viewed as playing multiple roles in different contexts, called collaborations. A collaboration, in turn, organizes several usually distinct objects for a specific purpose, for example to provide a basic service or to maintain a state dependency between two objects.

The documentation presented here accounts for every method in the original JUnit 3.8 framework and assigns it to at least one role. This way, collaboration-based documentation finds a middle ground between the more coarse-grained class-based view and the more detailed method-by-method view of objects. The report uses UML packages and interfaces to capture collaborations and roles rather than the evolving UML collaboration specification notation. For the purposes of this document this is sufficient.

The general purpose of this documentation form is to ease framework comprehension; an additional purpose that motivated this document is to investigate whether collaborations can serve as basic units of functionality provided by a design like a framework. Such a measure of functionality can serve multiple purposes, for example estimating im-plementation efforts or measuring complexity.


Dirk Riehle. "JUnit 3.8 Documented Using Collaborations." Technical Report, 2007.

The technical report is available as a PDF file.

Copyright (©) 2007 by the author. All rights reserved.

This paper has been superseded by a newer revised version.

Copyright (©) 2007 Dirk Riehle. Some rights reserved. (Creative Commons License BY-NC-SA.) Original Web Location: http://www.riehle.org