Skip to Main Content
Scattered concerns, design features whose implementations span multiple program units, can pose extra difficulty for developers to locate, understand, modify, and extend. In particular, since successful application frameworks tend to be widely used by many developers, the impact of scattered concerns on framework usability can be especially significant. Ideally, every scattered concern present at the framework interface should be carefully evaluated to justify its introduction. If it cannot be avoided, it should at least be well-documented to facilitate its use. To gain insights into how scattered concerns are actually designed and documented in industrial frameworks, a method for documenting and evaluating scattered concerns is proposed, and a manual pilot study on the JFC swing JTree is performed. In this method, concerns are identified and documented in a structured manner, listing not only those items which an application must directly depend on, but other methods and classes that indirectly contribute to the design of a concern. The documented concerns are compared with the framework architecture in order to justify their existence. Concerns that map nicely to the architecture are deemed to be acceptable as they fit within the design and were explicitly traded off for other quality attributes. Those that show a mismatch indicate a place where the concern could cause problems for application developers, and thus should be either refactored or well-documented. Concerns are also evaluated using design criteria like cohesion and coupling. While it is not always possible to identify design flaws in a scattered concern, at the least, documenting these concerns will make them easier to use. The JTree study results in 12 concerns, 7 of which are missing or only partially documented in the official swing tutorial. 4 framework usability flaws are identified, which, if addressed, would lead to the removal of 2 of the 12 documented concerns and improvements to another 2. T- hus, the proposed method has the potential to be useful to framework development teams.