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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Dijkstra, E.W. (1976), A Discipline of Programming, Prentice-Hall, Englewood Cliffs, NJ.
Fayad, M.E., D.C. Schmidt, and R.E. Johnson (1999), Building Application Frameworks,Wiley, New York.
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.
Fowler, M., K. Beck, J. Brant, W. Opdyke, and D. Roberts (1999), Refactoring: Improving the Design of Existing Code, Addison-Wesley, Reading, MA.
Gamma, E., R. Helm, R. Johnson, and J. Vlissides (1995), Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA.
Goguen, J.A. (1986), “Reusing and Interconnecting Software Components, ” IEEE Computer 19, 2, 16–28.
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.
IBM Visual Age (1994), Visual Age: Concepts and Features, IBM Corporation.
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.
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.
Krueger, C.W. (1992), “Software Reuse, ” ACM Computing Surveys 24, 2, 131–183.
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.
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.
Optima++ (1996), Sybase Optima++, Sybase Inc.
Parnas, D.L. (1972), “On Criteria to be Used in Decomposing Systems into Modules, ” Communications of the ACM 15, 2, 1053–1058.
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.
UML (1999), Unified Modeling Language 1.3, specification available at http://www.uml.org
Watcom VX-REXX (1993), WATCOM VX-REXX for OS/2 Programmer's Guide and Reference, Watcom International Corporation.
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.
Wiederhold, G., P.Wegner, and S. Ceri (1992), “Towards Megaprogramming, ” Communications of the ACM 35, 11, 89–99.
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
- separation of concerns
- object-oriented relationships
- abstract design views
- software engineering
- design patterns