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.