Object-Oriented Software Design Documentation

Software researchers need case studies to validate new tools and methods of object-oriented software design. A good thing to do is to standardize on a set of open source frameworks and libraries that are known and available to everyone. Basically, a benchmark set for new tools and methods in object-oriented software design. JUnit and JHotDraw come to mind.

Most open source frameworks and libraries that are being used in research studies have little original documentation associated with them. However, I as well as others have written up such documentation. Here are those frameworks that I see increasingly being used in scientific studies, as well as any design documentation documentation that I may have provided.

Continue reading “Object-Oriented Software Design Documentation”

JUnit 3.8 Documented Using Collaborations

Author: Dirk Riehle

Abstract: This paper describes the design of the unit testing framework JUnit v3.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, and different contexts are viewed as task specific collaborations. The documentation accounts for every method in the JUnit 3.8 framework by assigning it to a role. It thereby investigates whether roles and 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 implementation efforts or measuring complexity.

Keywords: JUnit 3.8 Documentation

Reference: In Software Engineering Notes Volume 33, Issue 2 (March 2008), Article No 5. ACM Press, 2008.

Available as a PDF file.

Towards End-User Programming With Wikis

Abstract: When business software fails to provide the desired functionality, users typically turn to spreadsheets to perform simple but general computational tasks. However, spreadsheets enforce a view of the world that consists mostly of tables and numbers rather than the domain concepts users have in mind. We are using wikis as a platform for empowering end-users to perform computational tasks of their choice. This paper discusses how core properties of wikis can support end-user programming. We illustrate our approach using wiki prototype software for working with business objects as made available by SAP’s business application suite.

Reference: Craig Anslow, Dirk Riehle. In Proceedings of the Fourth Workshop in End-User Software Engineering (WEUSE IV). IEEE Press, 2008. Page 61-65.

Available as a PDF file.