Skip to main content

Using a Reference Application with Design Patterns to Produce Industrial Software

  • Conference paper
Product Focused Software Process Improvement (PROFES 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3009))

  • 1163 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aeinehchi, N.: Do NOT use WebSphere unless you are BLUE (2002), http://www.theserverside.com/reviews/thread.jsp?thread_id=13639

  2. Almaer, D.: Making a Real World PetStore, TSS Newsletter #31, The Server Side (2002), http://www.theserverside.com/resources/article.jsp?l=PetStore

  3. Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns, p. 460. Sun Microsystems, Inc. (2001)

    Google Scholar 

  4. Apache Jakarta Project, STRUTS home page (2003), http://jakarta.apache.org/struts/

  5. ATG, ATG Business Commerce Reference Application Guide. ATG (2003), http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG6.0.0/pdf/ATG6BusCommRefGuide.pdf

  6. Bernus, P., Nemes, L.: A framework to define a generic enterprise reference architecture and methodology. Computer Integrated Manufacturing Systems 9(3), 179–191 (1996)

    Article  Google Scholar 

  7. Brooks, F.P.J.: No silver bullet: Essence and accidents of Software Engineering. IEEE Computer (1987)

    Google Scholar 

  8. Buschmann, F., et al.: Pattern-Oriented Software Architecture. Wiley, Chichester (1996)

    Google Scholar 

  9. Ciancarini, P., et al.: Coordinating multiagent applications on the WWW: A reference architecture. IEEE Transactions on Software Engineering 24(5), 362–375 (1998)

    Article  Google Scholar 

  10. Ditzel, C.: Charles’s Corner: Java Technology Pointers, Sun (2003), http://java.sun.com/jugs/pointers.html

  11. Frederick, C.: Extreme Programming: Growing a Team Horizontally. In: XP/Agile Universe 2003, Springer, Heidelberg (2003)

    Google Scholar 

  12. Gamma, E., et al.: Design Patterns: Elements of reusable object-oriented software. Addison-Wesley, Reading (1995)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Henry, E., Faller, B.: Large-scale industrial reuse to reduce cost and cycle time. IEEE Software 12(5), 47–53 (1995)

    Article  Google Scholar 

  15. Infragistics, Expense Application - reference application, Infragistics (2003), http://www.infragistics.com/products/thinreference.asp

  16. ISO, ISO/IEC 10746: Information technology – Open Distributed Processing – Reference model (1998), http://www.iso.org/iso/en/CombinedQueryResult.CombinedQueryResult?queryString=10746

  17. Kassem, N.: Designing Enterprise Applications with the J2EE Platform, p. 368. Addison-Wesley Pub Co., Reading (2000)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. van der Linden, F.: Software product families in Europe: the Esaps & Cafe projects. IEEE Software 19(4), 41–49 (2002)

    Article  MathSciNet  Google Scholar 

  20. 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)

    Google Scholar 

  21. McIlroy, D.: Mass produced software components. In: NATO Conference, Garmisch, Germany (1968)

    Google Scholar 

  22. Microsoft: Application Architecture for.NET: Designing Applications & Services. Microsoft Press, Redmond (2003)

    Google Scholar 

  23. Microsoft, Duwamish 7.0, Microsoft (2003), http://msdn.microsoft.com/netframework/downloads/samples/?pull=/library/en-us/dnbda/html/bdasampduwam7.asp

  24. Microsoft, Microsoft.NET Pet Shop 2.0, Microsoft (2003), http://msdn.microsoft.com/netframework/downloads/samples/?pull=/library/en-us/dnbda/html/bdasamppet.asp

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

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

  27. Rational Inc., PearlCircle Online Auction for J2EE, Rational Inc. (2003), http://www.rational.com/rda/wn_2002.jsp?SMSESSION=NO#pearlcircle

  28. Reimer, D., Srinivasan, H.: Analyzing Exception Usage in Large Java Applications. In: ECOOP workshop on Exception Handling, Dramstadt (2003)

    Google Scholar 

  29. Rising, L.: The Patterns Handbook. Cambridge University Press, Cambridge (1998)

    Google Scholar 

  30. Singh, I., et al.: Designing Enterprise Applications with the J2EE Platform, p. 352. Addison-Wesley, Reading (2002)

    Google Scholar 

  31. Sun, J2EE Patterns Catalog, Sun Microsystems, Inc. (2002), http://java.sun.com/blueprints/patterns/j2ee_patterns/index.html

  32. Sun, Java Pet Store Demo 1.1.2, Sun (2003), http://java.sun.com/blueprints/code/jps11/docs/index.html

  33. 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)

    Google Scholar 

  34. Yin, R.K.: Case Study Research, Design and Methods, 3rd edn. Sage Publications, Thousand Oaks (2003)

    Google Scholar 

  35. Ö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

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics