From the Proceedings of ForUse2003, here is the paper I co-presented at the conference.
"Lean Interaction Design and Implementation: Using Statecharts with Feature Driven Development"
Abstract
Lean UI development in Feature Driven Development is achieved through right-first-time implementation of the interaction designer's intent using David Harel's Statechart notation to model the interaction design. Statechart notation can be directly mapped to an MVC Type-II architecture and Mediator Pattern. With a few minor extensions Statechart notation can be used to model complex application behavior such as exception handling and transactions. Statecharts can be mapped into UI Features for tracking using an FDD Knowledge Base. The Statechart can be drawn using a UML modeling tool, and imported into the ViewControl engine which implements a table driven Mediator and Command pattern system in either a Web Servlet or JFC (Swing) environment. The result is reduced variation in UI development and precise implementation of the interaction designer's intent. ViewControl (an application framework) validates the runtime code against the original interaction model insuring accurate runtime implementation of the UI design.
Introduction
Feature Driven Development (FDD) is one of the family of Agile software development methods. Some Agile methods have been criticized for not encouraging good usage-centered design [Constantine 2001]. Unlike some other Agile methods FDD had a role-oriented task usage design approach included in the original process defined in 1998. Since then some refinements in the technique have been introduced. The most important of these was the adoption of Statecharts for interaction design modeling following the publication of his book on the topic by Ian Horrocks [1999].
Also in the same year the ViewControl [O’Byrne 2003] engine was introduced as a runtime environment for implementation of user interface designs modeled using Statecharts. The ViewControl engine controlled and monitored the flow of logic in the user interface presentation layer code. Code executing as designed was allowed to run correctly, code producing unexpected events or unexpected navigation requests was elegantly isolated and gracefully handled through exception handling code which handed off to a suitable error message screen.
The introduction of Statechart modeling brought a clean, well-defined rigor to the definition of a user interface and the implementation in the ViewControl engine brought reliable execution and enabled a table-driven, soft-coded approach for making late modifications to the design and implementation.
The combination enabled many aspects of Agile software development. Measurement of progress was achieved through working code coverage of the Statechart interaction design whilst late changes could be accommodated easily through modification of the Statechart and the regression impact of the change identified and isolated to minimize the refactoring effort with a resultant improvement in software quality.
Interest in Statechart modeling for interaction design has been growing steadily over the intervening four years and the recent popularity of presentation layer frameworks such as Struts has generated increasing interest in the ViewControl engine...
[Download the whole paper in PDF]
Learn more about the ViewControl tool from Statesoft and Brían O'Byrne.