Project Title

Understanding Framework-based Software Development

Project Goals

Framework-based software development is an ideal area to study design, documentation, and programmer practice. By studying the designs of two frameworks, MFC and Swing, and analyzing their respective newsgroup questions, I am gaining an understanding of issues associated with such development and the interaction among the three aspects. To truly understand this style of development, I am also collaborating with Net-linx Americas, on applying SCL to their products and on developing document for their framework XMLForms.

In [1], we report a systematic approach for analyzing programmer questions about frameworks. In this approach, framework designers first develop a set of design features and identify the dependencies between them. Questions about a framework are then analyzed to pinpoint their root causes and categorized into design features or their dependencies. We analyze about 300 questions related to JTree and JButton. The result helps identify design flaws, overly complex areas of the design, missing or insufficient documentation, and inferior programmer practice.

In [2], we summarize some observations related to using frameworks, based on experience with Swing JTree. To use a framework correctly, one is often required to thoroughly understand parts of its design. Collaborations in the form of fine-grained object-oriented structures are particularly hard to understand. This is because a detailed design for a high level concept, for example, the way in which a tree is rendered, may introduce elements that are less familiar to the developers than the high level concept itself. Consequently, documentation should be developed for such designs if they are going to be exposed to developers. Finally, overly complex interfaces can be made easier to use by providing default implementations.

References

[1] What Can Programmer Questions Tell Us about Frameworks? D. Hou et al. In IWPC 2005.
[2] The Framework Use Problem: A Preliminary Study With GUI Frameworks. D. Hou et al. In 2003 Midwest Software Engineering Conference.