The cost effective development of web applications is perhaps one of the most challenging areas of software engineering today. Not only are the problems to be solved, and the solution technologies to be used, in web application development among the most rapidly changing in the software industry, but the business pressures of cost, quality and time-to-market are among the most extreme. Web application development therefore has potentially the most to gain from software reuse approaches that can offer a greater return on development time than traditional approaches. However, simply combining ideas from these reuse paradigms and traditional web development technologies in ad-hoc ways will not result in sustainable improvements. In this paper we describe a systematic way of combining the benefits of component-based development and model driven architectures, two important reuse approaches, to support the cost effective development and maintenance of web applications. After first defining a suitably abstract component-model, the paper explains how component architectures can be systematically and rigorously modeled using UML. It then describes a powerful technique, known as stratification, for separating the various cross cutting aspects of a web application such that a suitable platform specific architecture can be traceably generated. Finally, the paper introduces a technique for increasing the trustworthiness of components by giving them the capability to check their deployment environment at run-time.
This is a preview of subscription content, access via your institution.
Atkinson, C., J. Bayer, C. Bunse, O. Laitenberger, L. Laqua, E. Kamsties, P. Paech, J. Wüst, and J. Zettel (2001), Component Based Product Line Engineering with UML, Addison-Wesley, Reading, MA.
Atkinson, C. and T. Kühne (2002), “Stratified Frameworks, ” International Journal of Computing Science and Informatics, Informatica, accepted.
Atkinson, C., T. Kühne, and C. Bunse (1999), “Dimensions of Component-Based Development, ” In Fourth International Workshop on Component-Oriented Programming (WCOP'99; in conjunction with ECOOP'99), Lisbon, Portugal.
Bass, L., P. Clements, and R. Kazman (1998), Software Architecture in Practice, Addison-Wesley, Reading, MA.
Bosch, J. (2000), Design and Use of Software Architectures, Addison-Wesley, Reading, MA.
Cheesman, J. and J. Daniels (2000), UML Components: A Simple Process for Specifying Component-Based Software, Addison-Wesley, Reading, MA.
Coleman D., P. Arnold, S. Bodoff, C. Dollin, H. Gilchrist, F. Hayes, and P. Jeremaes (1994), Object-Oriented Development: The Fusion Method, Prentice-Hall, Englewood Cliffs, NJ.
Component+ (2001), “Built-In Testing for Component-Based Development, ” EC IST 5th Framework Project IST-1999–20162 (Component+) Technical Report, November.
Conallen, J. (1999), Building Web Applications with UML, Addison-Wesley, Reading, MA.
Cooks, S. and J. Daniels (1992), Designing Object Systems, Prentice-Hall, England.
Cox, B.J. (1986), Object-Oriented Programming: An Evolutionary Approach, Addison-Wesley, Reading, MA.
D'souza, D.F. and A.C. Wills (1998), Objects, Components and Frameworks with UML: The Catalysis Approach, Addison-Wesley, Reading, MA.
Jézéquel, J.M., D. Deveaux, and Y. LeTraon (2001), Reliable Objects: Lightweight Testing for OO Languages, IEEE Software.
Kiczales, G., J. Lampling, A. Mendhekar, C. Maeda, V. Lopez, J.-M. Loingtier, and J. Irwin (1997), “Aspect-Oriented Programming, ” European Conference on Object-Oriented Programming, Lecture Notes in Computer Sciences, Vol. 124, Springer, Berlin.
Matena, V. and B. Stearns (2001), Applying Enterprise Java BeansTM, Addison-Wesley, Reading, MA.
McKay, C.W. and C. Atkinson (1995), “Supporting the Evolution of Distributed, Non-Stop, Mission and Safety Critical Systems, ” Informatica 19, 1.
Meyer, B. (1997), Object-Oriented Software Construction, Prentice-Hall, Englewood Cliffs, NJ.
Mill, H.D., R.C. Linger, and A.R. Hevner (1987), “Box structured information systems, ” IBM Systems Journal 26, 4, 395–413.
OMG (2000), Unified Modeling Language Specification, Version 1.4, Object Management Group.
OMG (2001), Model-Driven Architecture, http://www.omg.org.
Robertson, R. (1997), “Integrating Legacy Systems with Modern Corporate Applications, ” Communications of the ACM 40, 5.
Robinson, P.J. (1992), Hierarchical Object-Oriented Design, Prentice-Hall, England.
Rumbaugh, J., M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen (1991), Object-Oriented Modelling and Design, Prentice Hall International, Englewood Cliffs, NJ.
Selic, B., G. Gullekson, and P.T. Ward (1994), Real-Time Object-Oriented Modeling, Willey, New York.
Siegel, J. (1999), “OMG Overview: CORBA and the OMA in Enterprise Computing”, Communications of the ACM 41, 10.
Szyperski, C. (1999), Component Software: Beyond Object-Oriented Programming, Addison-Wesley, Reading, MA.
Tapadiya, P. (2000), COM+ Programming: A Practical Guide, Prentice-Hall, Englewood Cliffs, NJ.
Wang, Y., King, G., Fayad, M., Patel, D., Court, I., Staples, G., and Ross, M. (2000), “On Built-in Tests Reuse in Object-Oriented Framework Design, ” ACM Journal on Computing Surveys 23, 1.
Webster, B.F. (1995), Pitfalls of Object-Oriented Development, M&T Books.
Weiss, D.M. and C.T.R. Lai (1999), Software Product Line Engineering: A Family Based Software Engineering Process, Addison-Wesley, Reading, MA.
About this article
Cite this article
Atkinson, C., Bunse, C., Groß, HG. et al. Towards a General Component Model for Web-Based Applications. Annals of Software Engineering 13, 35–69 (2002). https://doi.org/10.1023/A:1016589208824
- Software Industry
- Software Reuse
- Component Architecture
- Challenging Area
- Specific Architecture