Dénommée, Pierre (1998) A case study in documenting and developing frameworks. Masters thesis, Concordia University.
A framework is a collection of abstract classes that provides an infrastructure common to a family of applications. The design of the framework fixes certain roles and responsibilities amongst the classes, as well as standard protocols for their collaboration. The variability within the family of applications is factored into so-called "hotspots", and the framework provides simple mechanisms to customize each hotspot. Customizing is typically done by subclassing an existing class of the framework and overriding a small number of methods. Sometimes, however, the framework insists that the customization preserves a protocol of collaboration between several subclasses, so customization requires the parallel development of these subclasses and certain of their methods. A framework exists to support the development of a family of applications. Typically a framework is developed by expert designers who have a deep knowledge of the application domain and long experience of software design. On the other hand, a typical application developer who reuses the framework is less experienced and less knowledgeable of the domain. However, a framework is not an easy thing to understand when one first uses it: the design is very abstract, to factor out commonality; the design is incomplete, requiring additional subclasses to create an application; the design provides flexibility for several hotspots, not all of which are needed in the application at hand; and the collaborations and the resulting dependencies between classes can be indirect and obscure. The large learning curve faced by the first-time user of a framework is a serious impediment to successfully reaping the benefits of reuse. How can an organization address this problem? This thesis presents a simple game framework, called S scUB, as a case study for the documentation of frameworks and for the development of frameworks in C++.
|Divisions:||Concordia University > Faculty of Engineering and Computer Science > Computer Science and Software Engineering|
|Item Type:||Thesis (Masters)|
|Pagination:||1 v. (various pagings) ; 29 cm.|
|Degree Name:||Theses (M.Comp.Sc.)|
|Program:||Computer Science and Software Engineering|
|Thesis Supervisor(s):||Butler, Gregory|
|Deposited By:||Concordia University Libraries|
|Deposited On:||27 Aug 2009 13:11|
|Last Modified:||08 Dec 2010 10:14|
Repository Staff Only: item control page