0% found this document useful (0 votes)
44 views7 pages

Fayad Application Frameworks

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views7 pages

Fayad Application Frameworks

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Object-Oriented

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

32 October 1997/Vol. 40, No. 10 COMMUNICATIONS OF THE ACM


COMMUNICATIONS OF THE ACM October 1997/Vol. 40, No. 10 33
to understand and maintain existing software. facto industry standard for creating graphical appli-
The stable interfaces provided by frameworks cations on PC platforms. Although MFC has limi-
enhance reusability by defining generic components tations (such as lack of portability to non-PC
that can be reapplied to create new applications. platforms), its widespread adoption demonstrates
Framework reusability leverages the domain knowl- the productivity benefits of reusing common frame-
edge and prior effort of experienced developers in works to develop graphical business applications.
order to avoid re-creating and revalidating common Application developers in more complex domains
solutions to recurring application requirements and (such as telecommunications, distributed medical
software design challenges. Reuse of framework com- imaging, and real-time avionics) have traditionally
ponents can yield substantial improvements in pro- lacked standard “off-the-shelf” frameworks. As a
grammer productivity, as well as enhancing the result, developers in these domains largely build, val-
quality, performance, reliability idate, and maintain software sys-
and interoperability of software. tems from scratch. In an era of
A framework enhances exten- deregulation and global competi-
sibility by providing explicit The benefits tion, however, it has become pro-
hook methods [8] that allow hibitively expensive and extremely
applications to extend its stable of object-oriented time-consuming to develop appli-
interfaces. Hook methods sys- cations entirely in-house.
tematically decouple the stable application Fortunately, the next generation
interfaces and behaviors of an of OO application frameworks are
application domain from the frameworks stem targeting complex business and
variations required by instantia- application domains. At the heart
tions of an application in a par- from the modularity, of this effort are Object Request
ticular context. Framework Broker (ORB) frameworks, which
extensibility is essential to ensure reusability, extensibility, facilitate communication between
timely customization of new local and remote objects. ORB
application services and features. and inversion of control frameworks eliminate many
The run-time architecture of a tedious, error-prone, and non-
framework is characterized by an they provide to portable aspects of creating and
inversion of control. This archi- managing distributed applications
tecture enables canonical appli- developers. and reusable service components.
cation processing steps to be This enables programmers to
customized by event handler develop and deploy complex appli-
objects that are invoked via the cations rapidly and robustly, rather
framework’s reactive dispatching than wrestling endlessly with low-
mechanism. When events occur, the framework’s dis- level infrastructure concerns.
patcher reacts by invoking hook methods on pre-reg-
istered handler objects, which perform Classifying Application Frameworks
application-specific processing on the events. Inver-
sion of control allows the framework (rather than
each application) to determine which set of applica- A
lthough the benefits and design principles
underlying frameworks are largely indepen-
dent of the domains to which they are
tion-specific methods to invoke in response to exter- applied, we’ve found it useful to classify frameworks
nal events (such as window messages arriving from by their scope, as follows:
end users or packets arriving on particular communi- System infrastructure frameworks simplify the devel-
cation ports). opment of portable and efficient system infrastruc-
ture such as operating system [2] and communication
Overview of Widely Used Frameworks frameworks [9], and frameworks for user interfaces

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

34 October 1997/Vol. 40, No. 10 COMMUNICATIONS OF THE ACM


designed to enhance the ability of software develop- frameworks. However, black-box frameworks are
ers to modularize, reuse, and extend their software more difficult to develop since they require frame-
infrastructure to work seamlessly in a distributed work developers to define interfaces and hooks that
environment. Middleware integration frameworks anticipate a wider range of potential use cases [6].
represent a thriving market, and are rapidly becom-
ing commodities. Common examples include ORB Strengths and Weaknesses of
frameworks, message-oriented middleware, and Application Frameworks
transactional databases.
Enterprise application frameworks address broad
application domains (such as telecommunications,
avionics, manufacturing, and financial engineering
[1, 10, 11]) and are the cornerstone of enterprise
W hen used in conjunction with patterns,
class libraries, and components, OO
application frameworks can signifi-
cantly increase software quality and reduce develop-
ment effort. However, a number of challenges must
business activities [3]. Relative to system infrastruc- be addressed in order to employ frameworks effec-
ture and middleware integration frameworks, enter- tively. Companies attempting to build or use large-
prise frameworks are expensive to develop and/or scale reusable frameworks often fail unless they
purchase. However, enterprise frameworks can pro- recognize and resolve challenges such as develop-
vide a substantial return on investment since they ment effort, learning curve, integrability, maintain-
support the development of end-user applications ability, validation and defect removal, efficiency,
and products directly. In contrast, system infrastruc- and lack of standards [10].
ture and middleware integration frameworks focus
largely on internal software development concerns. • While developing complex software is difficult
Although these frameworks are essential to create enough, developing high quality, extensible, and
high-quality software rapidly, they typically do not reusable frameworks for complex application
generate substantial revenue for large enterprises. As domains is even harder. The skills required to
a result, it is often more cost-effective to buy system produce frameworks successfully often remain
infrastructure and middleware integration frame- locked in the heads of expert developers. One of
works rather than build them in-house [3, 4, 11]. the goals of this special section is to demystify
Regardless of their scope, frameworks can also be the software process and design principles associ-
classified by the techniques used to extend them, ated with developing and using frameworks.
which range along a continuum from white-box • Learning to use an OO application framework
frameworks to black-box frameworks. White-box effectively requires considerable investment of
frameworks rely heavily on OO language features like effort. For instance, it often takes 6–12 months
inheritance and dynamic binding in order to achieve to become highly productive with a GUI frame-
extensibility. Existing functionality is reused and work like MFC or MacApp, depending on the
extended by (1) inheriting from framework base experience of the developers. Typically, hands-on
classes and (2) overriding pre-defined hook methods mentoring and training courses are required to
using patterns like the Template Method [5]. Black- teach application developers how to use such a
box frameworks support extensibility by defining framework effectively. Unless the effort required
interfaces for components that can be plugged into to learn a framework can be amortized over many
the framework via object composition. Existing func- projects, this investment may not be cost-effec-
tionality is reused by (1) defining components that tive. Moreover, the suitability of a framework for
conform to a particular interface and (2) integrating a particular application may not be apparent
these components into the framework using patterns until the learning curve has flattened.
like Strategy [5] and Functor. • Application development will be increasingly
White-box frameworks require application devel- based on the integration of multiple frameworks
opers to have intimate knowledge of each frame- (e.g., GUIs, communication systems, databases)
work’s internal structure. Although white-box together with class libraries, legacy systems, and
frameworks are widely used, they tend to produce existing components. However, many earlier gen-
systems that are tightly coupled to the specific details eration frameworks were designed for internal
of the framework’s inheritance hierarchies. In con- extension rather than for integration with other
trast, black-box frameworks are structured using frameworks developed externally. Integration
object composition and delegation rather than inher- problems arise at several levels of abstraction,
itance. As a result, black-box frameworks are gener- ranging from documentation issues [3, 4], to the
ally easier to use and extend than white-box concurrency/distribution architecture, to the

COMMUNICATIONS OF THE ACM October 1997/Vol. 40, No. 10 35


event dispatching model. For instance, while typically avoids application-specific details,
inversion of control is an essential feature of a which are provided via subclassing, object com-
framework, integrating frameworks with event position, or template parameterization. While
loops that are not designed to interoperate with this improves the flexibility and extensibility of
other frameworks is hard. the framework, it greatly complicates module
• Application requirements change frequently. testing since the components cannot be validated
Therefore, the requirements of frameworks often in isolation from their specific instantiations. It
change as well. As frameworks evolve, the appli- is usually hard to distinguish bugs in the frame-
cations that use them must evolve with them. work from bugs in the application code. As with
• Framework maintenance activities include modi- any software development, bugs are introduced
fication and adaptation of the framework. Both into a framework from many possible sources,
modification and adaptation may occur on the such as failure to understand the requirements,
functional level (i.e., certain framework function- overly coupled design, or an incorrect implemen-
ality does not fully meet developers’ require- tation. When customizing the components in a
ments), as well as on the non-functional level framework to a particular application, the num-
(which includes more qualitative aspects such as ber of possible error sources will increase.
portability or reusability). • Inversion of control and lack of explicit control
• Framework maintenance may take different flow. Applications written with frameworks can
forms, such as adding functionality, removing be hard to debug since the framework’s
functionality, and generalization. A deep under- “inverted’’ flow of control oscillates between the
standing of the framework components and their application-independent framework infrastruc-
interrelationships is essential to perform this task ture and the application-specific method call-
successfully. In some cases, the application devel- backs. This increases the difficulty of
opers and/or the end-users must rely entirely on “single-stepping’’ through the run-time behavior
framework developers to maintain the frame- of a framework within a debugger since the con-
work. trol flow of the application is driven implicitly
• Although a well-designed modular framework can by callbacks and developers may not understand
localize the impact of software defects, validating or have access to the framework code. This is
and debugging applications built using frame- similar to the problems encountered trying to
works can be tricky for the following reasons: debug a compiler lexical analyzer and parser
• Generic components are harder to validate in the written with LEX and YACC. In these applica-
abstract. A well-designed framework component tions, debugging is straightforward when the

enterprise frameworks for key business domains such as manufac-


Future Trends turing, banking, insurance, and medical systems [4, 11]. As more
experience is gained developing frameworks for these business
Over the next several years, we expect the following frame- domains, however, we expect that the collective knowledge of
work-related topics will receive considerable attention from frameworks will be expanded to cover an increasingly wide range of
researchers and developers: domain-specific topics and an increasing number of enterprise appli-
Reducing framework development effort. Traditionally, cation frameworks will be produced [3, 4]. As a result, benefits of
reusable frameworks have been developed by generalizing from frameworks will become more immediate to application program-
existing systems and applications. Unfortunately, this incremental mers as well as to infrastructure developers.
process of organic development is often slow and unpredictable Black-box frameworks. Many framework experts [7, 10]
since core framework design principles and patterns must be discov- favor black-box frameworks over white-box frameworks since
ered from the “bottom-up.’’ However, since many good framework black-box frameworks emphasize dynamic object relationships (via
examples now exist, we expect that the next generation of develop- patterns like Bridge and Strategy [5]) rather than static class rela-
ers will leverage this collective knowledge to conceive, design, and tionships. Thus, it is easier to extend and reconfigure black-box
implement higher-quality frameworks more rapidly [11]. frameworks dynamically. As developers become more familiar with
Greater focus on domain-specific enterprise frame- techniques and patterns for factoring out common interfaces and
works. Existing frameworks have focused largely on system infra- components, we expect that an increasing percentage of black-box
structure and middleware integration domains (such as user frameworks will be produced.
interfaces [5, 8] and OS/communication systems [2, 6, 9, 11]). In Framework documentation. Accurate and comprehensible
contrast, there are relatively few widely documented examples of documentation is crucial to the success of large-scale frameworks.

36 October 1997/Vol. 40, No. 10 COMMUNICATIONS OF THE ACM


thread of control is in the standard frameworks (such as
user-defined action routines. CORBA, DCOM, and Java RMI)
Once the thread of control currently lack the semantics, fea-
returns to the generated DFA The articles tures and interoperability to be
skeleton, however, it is hard truly effective across multiple
to trace the program’s logic. appearing here application domains. Often, ven-
dors use industry standards to sell
Frameworks enhance extensi- reinforce our belief proprietary software under the
bility by employing additional guise of open systems. Therefore, it
levels of indirection. For instance, that object-oriented is essential for companies and devel-
dynamic binding is commonly opers to work with standards orga-
used to allow developers to sub- application nizations and middleware vendors
class and customize existing to ensure that the emerging specifi-
interfaces. However, the resulting frameworks will be cations support true interoperabil-
generality and flexibility often ity and define features that meet
reduce efficiency. For instance, in at the core of their software needs.
languages like C++ and Java, the
use of dynamic binding makes it leading-edge software The Articles
impractical to support Concrete
Data Types (CDTs), which are
often required for time-critical
software. The lack of CDTs yields
(1) an increase in storage layout
technology in the
twenty-first century. powerful
describe how OO applica-
tion frameworks provide aT
he articles in this section

vehicle for reuse, as well


as a way to capture the essence of
(due to embedded pointers to vir- successful patterns, architectures,
tual tables), (2) performance degradation (due to the components, policies, services, and programming
additional overhead of invoking a dynamically bound mechanisms. We begin with an overview of the
method and the inability to inline small methods), topic by Ralph Johnson. “Frameworks = (Compo-
and (3) a lack of flexibility (due to the inability to nents + Patterns)” compares and contrasts frame-
place objects in shared memory). works with other object-oriented reuse
Currently, there are no widely accepted standards techniques—patterns and components.
for designing, implementing, documenting, and “An Adaptive Framework for Developing Multi-
adapting frameworks. Moreover, emerging industry media Software Components” by Posnak, Lavender,

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].

COMMUNICATIONS OF THE ACM October 1997/Vol. 40, No. 10 37


and Vin describes a framework that simplifies the build and use them. Creating robust, efficient, and
development of dynamically adaptive multimedia reusable application frameworks requires develop-
software components by promoting the reuse of code, ment teams with a wide range of skills. We need
design patterns, and domain expertise. Hans expert analysts and designers who have mastered pat-
Albrecht Schmid’s article “Systematic Framework terns, software architectures, and protocols in order to
Design by Generalization” presents a systematic alleviate the inherent and accidental complexities of
method for designing frameworks based on identify- complex software. Likewise, we need expert middle-
ing “hot spots,” which capture key sources of varia- ware developers who can implement these patterns,
tion in an application domain. architectures, and protocols within reusable frame-
“Framework Development for Large Systems’’ by works. In addition, we need application programmers
Bäumer et al. draws upon the authors’ experience who have the motivation, skills, and training to learn
developing large-scale industrial banking projects to how to use these frameworks effectively. We encour-
present concepts and techniques for domain parti- age you to get involved with others working on
tioning, framework layering, and framework con- frameworks by attending conferences, participating
struction. in online mailing lists and newsgroups, and con-
Demeyer, Meijler, Nierstrasz, and Steyaert also tributing your insights and experiences. More infor-
focus on hot spots in their article “Design Guidelines mation can be found about this subject at
for ‘Tailorable’ Frameworks,” which presents design http://www.cs.unr.edu/~fayad/frameworks. c
guidelines for developing frameworks for open sys-
tems. “The Framework Life Span” by Brugali, References
Menga, and Aarsten highlights the relationships 1. Birrer, E.T. Frameworks in the financial engineering domain: An expe-
rience report. In Proceedings of ECOOP ‘93 Proceedings, Lecture Notes in
between application frameworks, patterns, and pat- Computer Science nr. 707, Springer-Verlag, 1993.
tern languages in the domain of manufacturing sys- 2. Campbell, R.H. and Islam, N. A technique for documenting the
framework of an object-oriented system. Computing Systems 6, 4 (Fall
tems. “From Custom Applications to Domain- 1993).
Specific Frameworks” by Codenie et al. discusses 3. Fayad, M.E. and Hamu, D.S. Object-oriented enterprise frameworks:
solutions to common framework development chal- Make vs. buy decisions and guidelines for selection. Commun. ACM,
submitted for publication.
lenges such as avoiding the proliferation of versions, 4. Fayad, M.E. and Hamu, D.S. Object-Oriented Enterprise Frameworks.
estimating effort and alleviating the tendency toward Wiley, NY, 1997, to appear.
5. Gamma, E, Helm, R., Johnson, R. and Vlissides, J. Design Patterns:
architectural drift. Elements of Reusable Software Architecture. Addison-Wesley, Reading,
Adele Goldberg, Steven Abell, and David Leibs Mass., 1995.
describe LearningWorks—a framework for exploring 6. Hueni, H., Johnson, R., and Engel, R. A framework for network pro-
tocol software. In Proceedings of OOPSLA’95, (Austin, Texas, Oct.
ideas about computing and software system construc- 1995).
tion—in a succinct contribution to this section. 7. Johnson, R.E. and Foote, B. Designing reusable classes. J. Object-Ori-
ented Programming 1, 5 (June/July 1988), 22–35.
Another short article, “SEMATECH’s Experiences 8. Pree, W. Design Patterns for Object-Oriented Software Development. Addi-
with the CIM Framework,” by Doscher and Hodges, son-Wesley, Reading, Mass. 1994.
describes the structure of a framework for computer- 9. Schmidt, D.C. Applying design patterns and frameworks to develop
object-oriented communication software. In P. Salus, Ed., Handbook of
integrated manufacturing of semiconductors. Programming Languages, Volume I, MacMillan Computer Publishing,
We conclude the section with a brief consideration 1997.
of lessons learned from our varied experiences apply- 10. Fayad, M.E., Schmidt, D.C., and Johnson, R.E. Object-Oriented Applica-
tion Frameworks: Problems and Perspectives. Wiley, NY, 1997, to appear.
ing frameworks to real-world business situations. 11. Fayad, M.E., Schmidt, D.C., and Johnson, R.E. Object-Oriented Applica-
The articles appearing here reinforce our belief tion Frameworks: Implementation and Experience. Wiley, NY, 1997, to
appear.
that object-oriented application frameworks will be
at the core of leading-edge software technology in the
twenty-first century. The extensive focus on applica- Mohamed Fayad ([email protected]) is an associate professor in
the College of Engineering at the University of Nevada-Reno.
tion frameworks in the object-oriented community Douglas C. Schmidt ([email protected]) is an assistant
offers software developers an important vehicle for professor in the Department of Computer Science at Washington
reuse and a means to capture the essence of successful University in St. Louis, Missouri.
patterns, architectures, components, and program-
Permission to make digital/hard copy of part or all of this work for personal or class-
ming mechanisms. room use is granted without fee provided that copies are not made or distributed for
It is significant that frameworks are becoming profit or commercial advantage; the copyright notice, the title of the publication, and
its date appear; and notice is given that copying is by permission of ACM, Inc. To copy
mainstream and that developers at all levels are otherwise, to republish, to post on servers, or to redistribute to lists requires prior spe-
cific permission and/or a fee.
increasingly adopting and succeeding with frame-
work technologies. However, OO application frame-
works are ultimately only as good as the people who © ACM 0002-0782/97/1000 $3.50

38 October 1997/Vol. 40, No. 10 COMMUNICATIONS OF THE ACM

You might also like