End-User Programming with Application Wikis

Title: End-User Programming with Application Wikis: A Panel with Ludovic Dubost, Stewart Nickolas, and Peter Thoeny

Author: Dirk Riehle

Abstract: Wikis empower users to collaborate with each other using prose. Users imprint data structures and processes onto wiki pages using social and technical conventions. Application wikis enhance wiki engines with lightweight programming features that aid in making data structures and processes explicit. Using these features, end-users can program a wiki to better support them in their collaborative processes and integrate their work into the overall IT infrastructure. Application wikis make database access and business process integration easy from within the wiki while maintaining the wiki-style of collaborative work. The panelists of this panel, together with the audience and the moderator, will review existing work and explore future research directions in application wikis.

Reference: In Proceedings of the 2008 International Symposium on Wikis (WikiSym ’08). ACM Press, 2008: Article No. 4.

Available as a PDF file.

Design Pattern Density and Design Maturity

JUnit is a widely-adopted unit testing framework for Java, developed by Kent Beck and Erich Gamma. In their discussion of JUnit 3.8’s design, the authors state:

Notice how TestCase, the central abstraction in the framework, is involved in four patterns. Pictures of mature object designs show this same ‘pattern density’. The star of the design has a rich set of relationships with the supporting players.

The notion of design pattern density has been around forever, but with little serious work being done to refine the idea. I’m calling on all experts (reading this blog…) to tell me whether they agree or disagree with the following statement:

Continue reading “Design Pattern Density and Design Maturity”

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.