Abstract
System architectures are described in abstract terms, often using Design Patterns. Actual reuse based on such descriptions requires that each development project derive a concrete architecture from the chosen Patterns, and then implement it in code.
This paper describes a case study of an industrial development project that adopted a reference application as a starting point, in order to avoid the need to design a complete architecture. Reference applications are usually made by platform or component vendors. Such applications are used to provide executable examples of best practices, for a particular platform, component set, or other technology. In this case study, the Pet Store application for the J2EE platform was chosen. Pet Store is documented by Design Patterns and is also available as source code. The development consisted of replacing the application logic, while keeping the architecture intact. The project was thus transformed from an ab initio development project into a major reuse/modification project. This development project was part of a software process improvement effort looking at processes for and with reuse.
Our results indicate that this approach works well, provided that the functional and non-functional requirements of the project match those of the reference application. The development time was shortened by approximately one third relative to the original estimate, and a well-designed application was produced despite lack of experience with the platform and n-layer architectures. Surprisingly, the production deployment to a different application server was still problematic, even though the original reference application was available as a sample for that server.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aeinehchi, N.: Do NOT use WebSphere unless you are BLUE (2002), http://www.theserverside.com/reviews/thread.jsp?thread_id=13639
Almaer, D.: Making a Real World PetStore, TSS Newsletter #31, The Server Side (2002), http://www.theserverside.com/resources/article.jsp?l=PetStore
Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns, p. 460. Sun Microsystems, Inc. (2001)
Apache Jakarta Project, STRUTS home page (2003), http://jakarta.apache.org/struts/
ATG, ATG Business Commerce Reference Application Guide. ATG (2003), http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG6.0.0/pdf/ATG6BusCommRefGuide.pdf
Bernus, P., Nemes, L.: A framework to define a generic enterprise reference architecture and methodology. Computer Integrated Manufacturing Systems 9(3), 179–191 (1996)
Brooks, F.P.J.: No silver bullet: Essence and accidents of Software Engineering. IEEE Computer (1987)
Buschmann, F., et al.: Pattern-Oriented Software Architecture. Wiley, Chichester (1996)
Ciancarini, P., et al.: Coordinating multiagent applications on the WWW: A reference architecture. IEEE Transactions on Software Engineering 24(5), 362–375 (1998)
Ditzel, C.: Charles’s Corner: Java Technology Pointers, Sun (2003), http://java.sun.com/jugs/pointers.html
Frederick, C.: Extreme Programming: Growing a Team Horizontally. In: XP/Agile Universe 2003, Springer, Heidelberg (2003)
Gamma, E., et al.: Design Patterns: Elements of reusable object-oriented software. Addison-Wesley, Reading (1995)
Hallsteinsen, S., Swane, E.: Handling the diversity of networked devices by means of a product family approach. In: Software Product-Family Engineering, pp. 264–281 (2002)
Henry, E., Faller, B.: Large-scale industrial reuse to reduce cost and cycle time. IEEE Software 12(5), 47–53 (1995)
Infragistics, Expense Application - reference application, Infragistics (2003), http://www.infragistics.com/products/thinreference.asp
ISO, ISO/IEC 10746: Information technology – Open Distributed Processing – Reference model (1998), http://www.iso.org/iso/en/CombinedQueryResult.CombinedQueryResult?queryString=10746
Kassem, N.: Designing Enterprise Applications with the J2EE Platform, p. 368. Addison-Wesley Pub Co., Reading (2000)
Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 2nd edn., p. 656. Prentice Hall, Englewood Cliffs (2001)
van der Linden, F.: Software product families in Europe: the Esaps & Cafe projects. IEEE Software 19(4), 41–49 (2002)
van der Linden, F., Muller, J.K.: Composing product families from reusable components. In: Proceedings of the 1995 International Symposium and Workshop on Systems Engineering of Computer Based Systems (1995)
McIlroy, D.: Mass produced software components. In: NATO Conference, Garmisch, Germany (1968)
Microsoft: Application Architecture for.NET: Designing Applications & Services. Microsoft Press, Redmond (2003)
Microsoft, Duwamish 7.0, Microsoft (2003), http://msdn.microsoft.com/netframework/downloads/samples/?pull=/library/en-us/dnbda/html/bdasampduwam7.asp
Microsoft, Microsoft.NET Pet Shop 2.0, Microsoft (2003), http://msdn.microsoft.com/netframework/downloads/samples/?pull=/library/en-us/dnbda/html/bdasamppet.asp
Ngu, A.: CS5369A Enterprise Application Integration, Department of Computer Science, Southwest Texas State University (2003), http://www.cs.swt.edu/~hn12/teaching/cs5369/2003Spring/admin/intro.html
Oracle, Oracle9iAS Containers for J2EE User’s Guide Release 2 (9.0.2), Oracle Inc. (2003), http://otn.oracle.com/tech/java/oc4j/doc_library/902/A95880_01/html/toc.htm
Rational Inc., PearlCircle Online Auction for J2EE, Rational Inc. (2003), http://www.rational.com/rda/wn_2002.jsp?SMSESSION=NO#pearlcircle
Reimer, D., Srinivasan, H.: Analyzing Exception Usage in Large Java Applications. In: ECOOP workshop on Exception Handling, Dramstadt (2003)
Rising, L.: The Patterns Handbook. Cambridge University Press, Cambridge (1998)
Singh, I., et al.: Designing Enterprise Applications with the J2EE Platform, p. 352. Addison-Wesley, Reading (2002)
Sun, J2EE Patterns Catalog, Sun Microsystems, Inc. (2002), http://java.sun.com/blueprints/patterns/j2ee_patterns/index.html
Sun, Java Pet Store Demo 1.1.2, Sun (2003), http://java.sun.com/blueprints/code/jps11/docs/index.html
Thomas, W.T., Delis, A., Basili, V.R.: An analysis of errors in a reuse-oriented development environment, University of Maryland, Institute of Advanced Computer Studies (1995)
Yin, R.K.: Case Study Research, Design and Methods, 3rd edn. Sage Publications, Thousand Oaks (2003)
Öberg, R.: Review of The Petstore Revisited: J2EE vs.NET Application Server Performance Benchmark, Rickard Öberg (2003), http://www.google.com/search?q=cache:8OPCFEFDFd0J:www.dreambean.com/petstore.html+petstore+java+experience&hl=en&ie=UTF-8
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Vokáč, M., Jensen, O. (2004). Using a Reference Application with Design Patterns to Produce Industrial Software. In: Bomarius, F., Iida, H. (eds) Product Focused Software Process Improvement. PROFES 2004. Lecture Notes in Computer Science, vol 3009. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24659-6_24
Download citation
DOI: https://doi.org/10.1007/978-3-540-24659-6_24
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21421-2
Online ISBN: 978-3-540-24659-6
eBook Packages: Springer Book Archive