Fayad Application Frameworks
Fayad Application Frameworks
Application
Frameworks
Computing power and network bandwidth have increased dramatically over
the past decade, yet the design and implementation of complex software remain
expensive and error-prone. Much of the cost and effort stems from the continuous
rediscovery and reinvention of core concepts and components across the software
industry. In particular, the growing heterogeneity of hardware architectures and
diversity of operating system and communication platforms make it difficult to
build correct, portable, efficient, and inexpensive applications from scratch.
Object-oriented application frameworks are a
promising technology for reifying proven software
designs and implementations in order to reduce the Mohamed E. Fayad and
cost and improve the quality of software. A framework Douglas C. Schmidt, Guest Editors
is a reusable, “semi-complete’’ application that can be
specialized to produce custom applications [7, 10]. In
contrast to earlier OO reuse techniques based on class The primary benefits of OO application frame-
libraries, frameworks are targeted for particular busi- works stem from the modularity, reusability, extensi-
ness units (such as data processing or cellular commu- bility, and inversion of control they provide to
nications) and application domains (such as user developers.
interfaces or real-time avionics) [11]. Frameworks like Frameworks enhance modularity by encapsulating
VICTOR SADOWSKI
MacApp, ET++, Interviews, ACE, Microsoft’s MFC volatile implementation details behind stable inter-
and DCOM, JavaSoft’s RMI, and implementations of faces. Framework modularity helps improve software
OMG’s CORBA play an increasingly important role quality by localizing the impact of design and imple-
in contemporary software development. mentation changes, which reduces the effort required
D evelopers in certain domains have success- and language processing tools. System infrastructure
fully applied OO application frameworks frameworks are primarily used internally within a
for many years. Early object-oriented software organization and are not sold to customers
frameworks (such as MacApp and Interviews) origi- directly.
nated in the domain of graphical user interfaces. Middleware integration frameworks are commonly
The Microsoft Foundation Classes (MFC) is a con- used to integrate distributed applications and com-
temporary GUI framework that has become the de ponents. Middleware integration frameworks are
However, documenting frameworks is a costly activity and contem- works include activities [4, 10] such as the following:
porary tools often focus on low-level method-oriented documenta- • Determining effective framework cost metrics, which measure the
tion, which fails to capture the strategic roles and collaborations savings of reusing framework components vs. building applications
among framework components. We expect that the advent of tools from scratch;
for reverse-engineering the structure of classes and objects in com- • Cost estimation, which involves accurately forecasting the cost
plex frameworks will help to improve the accuracy and utility of of buying, building, or adapting a particular framework; and
framework documentation. Likewise, we expect to see an increase • Investment analysis and justification, which determines the bene-
in the current trend [4, 6, 9] of using design patterns to provide fits of applying frameworks in terms of return on investment.
higher-level descriptions of frameworks. We expect that the focus on framework economics will help to
Processes for managing framework development. Frame- bridge the gap among the technical, managerial, and financial aspects
works are inherently abstract since they generalize from a solution to of making, buying, or adapting frameworks [4].
a particular application challenge to provide a family of solutions. This Framework standards. In order to develop, document, inte-
level of abstraction makes it difficult to engineer their quality and man- grate, and adapt long-lived application frameworks, standards are a
age their production. Therefore, it is essential to capture and articu- must. As application frameworks become more complex and more
late development processes that can ensure the successful widely accepted, standards become invaluable and increasingly
development and use of frameworks. We believe that extensive pro- essential. Standards assure consistency, and form a base to justify
totyping and phased introduction of framework technology into orga- the framework cost and protect the investment. We believe that
nizations is crucial to reducing risk and helping to ensure successful several standards will emerge, such as framework development,
adoption [4, 10]. framework adaptation, framework interoperability and integration
Framework economics. The economics of developing frame- standards [10].