Views and Patterns in E-Commerce Application Design

Abstract

Separation of concerns is a well-established principle in software engineering that supports reuse by hiding complexity through abstraction mechanisms. The Abstract Design Views model was created with reuse in mind and allows the designer to apply separation of concerns in a software system from the design to the implementation. In this model, viewed objects represent the basic concern, i.e., the algorithms that provide the essential functionality relevant to an application domain, and viewer objects represent the special concerns related to other software issues, such as user interface presentation, synchronization, and timing. In this paper we use a reuse taxonomy to analyze and validate this model. Using this analysis and the properties of the relationship between viewer and viewed objects, called “views,” we also indicate how to map the views-based designs into implementations based on design patterns that satisfy the views properties. Finally, we show how to apply the principles of our approach, using views and the design patterns, to design e-commerce applications.

This is a preview of subscription content, access via your institution.

References

  1. Alencar, P.S.C., D.D. Cowan, and C.J.P. Lucena (2001), “A Logical Theory of Objects and Interfaces, ” IEEE Transactions on Software Engineering (TSE), to appear.

  2. Alencar, P.S.C., D.D. Cowan, and C.J.P. Lucena (1996), “A Formal Approach to Architectural Design Patterns, ” In Proceedings of the Formal Methods Europe Symposium (FME'96), Springer, Heidelberg, pp. 576–594.

    Google Scholar 

  3. Alencar, P.S.C., D.D. Cowan, and C.J.P. Lucena (1995), “Formal Specification of Reusable Interface Objects, ” ACM SIGSOFT Software Engineering Notes 20, SI, 88–96.

    Article  Google Scholar 

  4. Buschmann, F., R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal (1996), A System of Patterns: Pattern-Oriented Software Architecture, Wiley Computer Publishing, New York.

    Google Scholar 

  5. Czarnecki, K., U.W. Eisenecker, and P. Steyaert (1996), “Beyond Objects: Generative Programming, ” In Proceedings of the ECOOP'97 Workshop on Aspect-Oriented Programming, Jyväskylä, Finland.

  6. Civello, F. (1993), “Roles for Composite Objects in Object-Oriented Analysis and Design, ” In Proceedings of OOPSLA'93, ACM Press, New York, pp. 376–393.

    Google Scholar 

  7. Common Object Broker (1991), “The Common Object Broker: Architecture and Specification, ” OMG Document Number 91.12.1, Revision 1.1, Digital Equipment Corporation, Hewlett-Packard Company, Hyperdesk Corporation, NCR Corporation, Object Design Inc. and Sunsoft Inc., OMG Press, Needham, MA.

    Google Scholar 

  8. Cowan, D.D. and C.J.P. Lucena (1995), “Abstract Data Views: An Interface Specification Concept to Enhance Design for Reuse, ” IEEE Transactions on Software Engineering (TSE) 21, 3, 229–243.

    Article  Google Scholar 

  9. DeRemer, F. and H. Kron (1976), “Programming-in-the-large Versus Programming-in-the-small, ” IEEE Transactions on Software Engineering (TSE) 2, 2, 80–86.

    Google Scholar 

  10. Dijkstra, E.W. (1976), A Discipline of Programming, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  11. Fayad, M.E., D.C. Schmidt, and R.E. Johnson (1999), Building Application Frameworks,Wiley, New York.

    Google Scholar 

  12. Fontoura, M.F., S. Crespo, C.J.P. Lucena, P.S.C. Alencar, and D.D. Cowan (2000), “Using Viewpoints to Derive a Conceptual Model for Web-Based Education Environments, ” Journal of Systems and Software (JSS) 54, 3, 239–257.

    Article  Google Scholar 

  13. Fowler, M., K. Beck, J. Brant, W. Opdyke, and D. Roberts (1999), Refactoring: Improving the Design of Existing Code, Addison-Wesley, Reading, MA.

    Google Scholar 

  14. Gamma, E., R. Helm, R. Johnson, and J. Vlissides (1995), Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA.

    Google Scholar 

  15. Goguen, J.A. (1986), “Reusing and Interconnecting Software Components, ” IEEE Computer 19, 2, 16–28.

    Google Scholar 

  16. Helm, R., I.M. Holland, and D. Gangopadhyay (1990), “Contracts: Specifying Behavioral Compositions in Object Oriented Systems, ” In Proceedings of ECOOP/OOPSLA'90, Springer, Heidelberg, pp. 169- 180.

  17. IBM Visual Age (1994), Visual Age: Concepts and Features, IBM Corporation.

  18. Kiczales, G., J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and I. Irwin (1997), “Aspect-Oriented Programming, ” In Proceedings of European Conference on Object-Oriented Programming (ECOOP'97), Springer, Heidelberg, pp. 220–242.

    Google Scholar 

  19. Krasner, G.E. and S.T. Pope (1988), “A Cookbook for Using the Model- View- Controller User Interface Paradigm in Smalltalk-80, ” Journal of Object-Oriented Programming 3, 1, 26–49.

    Google Scholar 

  20. Krueger, C.W. (1992), “Software Reuse, ” ACM Computing Surveys 24, 2, 131–183.

    Article  Google Scholar 

  21. Markiewicz, M.E., C.J.P. Lucena, and D.D. Cowan (2000), “Taming Access Control Security Using the “Views” Relationship, ” Technical Report MCC19/00, Departamento de Informatica, Pontifical Catholic University (PUC-Rio), Rio de Janeiro, Brazil.

  22. Mili, H., F. Mili, and A. Mili (1995), “Reusing Software: Issues and Research Directions, ” IEEE Transactions on Software Engineering (TSE) 21, 6, 528–561. Nelson, T., D.D. Cowan, and P.S.C. Alencar (2000), “A Model for Describing Object-Oriented Systems from Multiple Perspectives, ” In Proceedings of the Conference on Foundational Aspects of Software Engineering (FASE2000), ETAPS2000 (the European Joint Conferences on Theory and Practice of Software), Technical University of Berlin, Germany, pp. 237- 248.

    Article  Google Scholar 

  23. Optima++ (1996), Sybase Optima++, Sybase Inc.

  24. Parnas, D.L. (1972), “On Criteria to be Used in Decomposing Systems into Modules, ” Communications of the ACM 15, 2, 1053–1058.

    Article  Google Scholar 

  25. Steyaert, P., C. Lucas, T. Mens, and T. D'Hondt (1996), “Reuse Contracts: Managing the Evolution of Reusable Assets, ” In Proceedings of OOPSLA'96, ACM Press, New York, pp. 268–285.

    Google Scholar 

  26. UML (1999), Unified Modeling Language 1.3, specification available at http://www.uml.org

  27. Watcom VX-REXX (1993), WATCOM VX-REXX for OS/2 Programmer's Guide and Reference, Watcom International Corporation.

  28. Wentzel, K.D. (1994), “Software Reuse - Facts and Myths, ” In Proceedings of the IEEE International Conference on Software Engineering (ICSE), ACM Press, New York, pp. 267–268.

    Google Scholar 

  29. Wiederhold, G., P.Wegner, and S. Ceri (1992), “Towards Megaprogramming, ” Communications of the ACM 35, 11, 89–99.

    Article  Google Scholar 

Download references

Author information

Affiliations

Authors

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Markiewicz, M.E., Lucena, C.J., Alencar, P.S. et al. Views and Patterns in E-Commerce Application Design. Annals of Software Engineering 13, 111–140 (2002). https://doi.org/10.1023/A:1016545426571

Download citation

  • design
  • separation of concerns
  • reuse
  • views
  • object-oriented relationships
  • abstract design views
  • software engineering
  • design patterns