ABSTRACT
In this paper, we present our experience with applying multidimensional separation of concerns to a software engineering environment. By comparing two different designs of our system, we show the importance of separating integration issues from the implementation of the individual concerns. We present a model in which integration issues are encapsulated into rst--class connector objects and indicate how this facilitates the understandability, maintenance and evolution of the system. We identify issues of binding time, binding granularity and binding cardinality as important criteria in selecting an appropriate model for separation of concerns. We finally show how a good choice following these criteria and considering the requirements of software engineering environments leads to a system with dynamic configurability, high--level component integration and support for multiple instantiable views.
- 1.M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abstracting Object Interactions using Composition-Filters. In Object-Based Distributed Processing, LNCS 791, pp. 152-184, 1993. 17 Google ScholarDigital Library
- 2.K. Arnold and J. Gosling. The Java Programming Language. Addison Wesley, 1997. 6 Google ScholarDigital Library
- 3.Kim B. Bruce, Martin Odersky, and Philip Wadler. A statically safe alternative to virtual types. In European Conference on Object-Oriented Programming (ECOOP), Brussels, July 1998. 15 Google ScholarDigital Library
- 4.Clemens Czyperski. Component Software, Beyond Object-Oriented Programming. Addison-Wesley, 1998. 4 Google ScholarDigital Library
- 5.D. D.aberitz and U. Kelter. Rapid Prototyping of Graphical Editors in an open SEE. In Proc. of 7th Conference on Software Engineering Environments (SEE'95), pp. 61-72. IEEE Computer Society Press, 1995. Google ScholarDigital Library
- 6.R. DeLine. Avoiding Packaging Mismatch with Flexible Packaging. In Proceedings of the 21st International Conference on Software Engineering (ICSE '99), 1999. 17 Google ScholarDigital Library
- 7.E. W. Dijkstra. A Discipline of Programming. Prentice- Hall, 1976. 1 Google ScholarDigital Library
- 8.E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison Wesley, 1995. 6 Google ScholarDigital Library
- 9.D. Garlan. Views for Tools in Integrated Environments. PhD Thesis, Carnegie Mellon University, May 1987. 5, 14, 16 Google ScholarDigital Library
- 10.D. Garlan, R. Allen, and J. Ockerbloom. Architectural Mismatch, or, Why it's Hard to Build Systems out of Existing Parts. In Proceedings of the 17th Internation Conference on Software Engineering (ICSE '95), pp. 179-185, April 1995. 17 Google ScholarDigital Library
- 11.A. Goldberg and D. Robson. Smalltalk 80: The Language and its Implementation. Addison-Wesley, 1983. 15 Google ScholarDigital Library
- 12.The GoodStep Team. The GOODSTEP Project: General Object-Oriented Database for Software Engineering Processes. In Proc. of the 1st Asian Pacific Software Engineering Conf, pp. 10-19. IEEE Computer Society Press, 1994. 16Google Scholar
- 13.G. Gottlob, M. Schre , and B. Roeck. Extending Object-Oriented Systems with Roles. ACM Transactions on Information Systems, 14(3):268-296, 1996. 17 Google ScholarDigital Library
- 14.B. Groth, S. Herrmann, S. J.ahnichen, and W. Koch. Project Integrating Reference Object Library (PIROL): An Object-Oriented Multiple-View SEE. In Proc. of 7th Conference on Software Engineering Environments (SEE'95), pp. 184-193, IEEE Computer Society Press, Apr. 1995. 3 Google ScholarDigital Library
- 15.W. Harrison and H. Ossher. Subject-Oriented Programming: a Critique of Pure Objects. In Proceedings of ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '93), Sigplan Notices 28(10), pp. 411-428, 1993. 1, 2 Google ScholarDigital Library
- 16.S. Herrmann. Lua/P - A Repository Language for Flexible Software Engineering Environments. In Proc. of The Second International Symposium on Constructing Software Engineering Tools, pp. 78-86, ISBN 0 86418 725 4, 2000. 3, 5Google Scholar
- 17.S. Herrmann and M. Mezini.Dynamic View Connectors, http://pirol.cs.tu-berlin.de/papers/DVC.pdf, Technical Report, Technical University of Berlin, 2000. 12Google Scholar
- 18.I. Holland. The Design and Representation of Object- Oriented Components. PhD Thesis, Northeastern University, Computer Science, 1993. 1, 17Google Scholar
- 19.R. Ierusalimschy, L. H. de Figueiredo, and W. Celes, \Lua|an extensible extension language," Software: Practice and Experience, 26(6):635-652, 1996. 15 Google ScholarDigital Library
- 20.M. Kersten and G. Murphy. Atlas: A Case Study in Building a Web-Based Learning Environment Using Aspect-Oriented Programming. In Proeedings of ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'99), Sigplan Notices 34(10):340-352, 1999. 17 Google ScholarDigital Library
- 21.G. Kiczales, J. des Rivieres, and D. G. Bobrow. The Art of the Metaobject Protocol. The MIT Press, 1991. 1 Google ScholarDigital Library
- 22.G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.V. Lopes, J.M. Loingtier, and J. Irwin. Aspect Oriented Programming. In Proceedings of European Conference on Object-Oriented Programming (ECOOP '97), LNCS 1241, pp. 220-243, 1997. 1, 15, 17Google ScholarCross Ref
- 23.K. Lieberherr. Adaptive Programming: the Demeter Method. PWS Publishing Company, 1996. 12, 17Google Scholar
- 24.C. Lopes. D: A Language Framework for Distributed Programming. PhD Thesis, Northeastern University, Computer Science, Nov. 1997. 2Google Scholar
- 25.P. Maes. Concepts and Experiments in Computational Re ection. In Proceedings of ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '87), Sigplan Notices, 22(12):147-155, 1987. 1 Google ScholarDigital Library
- 26.J. McAffer. Meta-Level Programming with Coda. In Proceedings of European Conference on Object-Oriented Programming (ECOOP '95), LNCS 952, pp. 190-241, Springer Verlag, 1995. 1 Google ScholarDigital Library
- 27.M. Mezini. Variational Object-Oriented Programming Beyond Classes and Inheritance. Kluwer Academic Publisher, 1998. 1, 17Google ScholarCross Ref
- 28.M. Mezini and K. Lieberherr. Adaptive Plug-and-Play Components for evolutionary software development. In Proceedings of ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '98), Sigplan Notices, 33(10):97-116, 1998. 1, 8, 15, 17 Google ScholarDigital Library
- 29.M. Mezini, L. Seiter, and K. Lieberherr. Component Integration with Pluggable Composite Adapters. In M. Aksit (ed.) Software Architecture and Component Technology: State of the Art in Research and Industry, Kluwer Academic Publishers, 2000. 2, 8, 15Google Scholar
- 30.R. Monson-Haefel. Enterprise Java Beans. O'Reilly & Associates, Inc, 1999. 18 Google ScholarDigital Library
- 31.A. Nordwig. Entwicklung einer Notation und eines graschen Editors f. ur den objektorientierten Entwurf hybrider Systeme. Master's Thesis, TU Berlin, 1997. 4, 5Google Scholar
- 32.B. Nuseibeh, J. Kramer, and A. Finkelstein. A Framework for Expressing the Relationships Between Multiple Views in Requirements Specification. IEEE Transactions on Software Engineering, 20(10):760-773, Oct. 1994. 17 Google ScholarDigital Library
- 33.Object Design, Inc, Burlington, MA. ObjectStore Advanced C++ API User Guide, March 1998. 16Google Scholar
- 34.H. Ossher, M. Kaplan, A. Katz, W. Harrison, and V. Kruskal. Specifying Subject-Oriented Composition. Theory and Practice of Object Systems, 2(3):179-202, 1996. 5, 14 Google ScholarDigital Library
- 35.PARC Xerox, available from http://aspectj.org. AspectJ Language Specification, Aug 1999. 2Google Scholar
- 36.D. L. Parnas. On the Criteria to be Used in Decomposing Systems in Modules. Communications of the ACM, 15(12), 1972. 1 Google ScholarDigital Library
- 37.ISO/IEC 13719-1: Portable Common Tool Environment (PCTE). Abstract Specification, International Organization for Standardization (ISO), 1995. 16Google Scholar
- 38.PIROL Web-page. http://pirol.cs.tu-berlin.de. 3Google Scholar
- 39.T. Reenskaug, E. P. Andersen, A. J. Berre, A. Hurlen, A. Landmark, O. A. Lehne, E. Nordhagen, E. Ness- Ulseth, G. Oftedal, A. L. Skaar, and P. Stenslet. OORASS: Seamless Support for the Creation and Maintenance of Object Oriented Systems. Journal of Object-Oriented Programming, Oct. 1992. 1Google Scholar
- 40.S. P. Reiss. Connecting Tools Using Message Passing in the FIELD Environment. IEEE Software, 7(4):57- 66, July 1990. 3 Google ScholarDigital Library
- 41.S. P. Reiss. The Desert Environment. ACM Transactions on Software Engineering and Methodology, 8(4):297-342, Oct. 1999. 17 Google ScholarDigital Library
- 42.J. Richardson and P. Schwarz. Aspects: Extending Objects to Support Multiple, Independent Roles. In Proceedings of the 1991 ACM SIGMOD International Conference on Management of Data, 1991. 2, 7 Google ScholarDigital Library
- 43.C. Santos, S. Delobel, and S. Abiteboul. Virtual Schemas and Bases. In Proceedings of the International Conference on Extending Database Technology, LNCS 779, 1994. 16 Google ScholarDigital Library
- 44.L. Seiter, J. Palsberg, and K. Lieberherr. Evolution of Object Behavior using Context Relations. IEEE Transactions on Software Engineering, 24(1):79-92, Jan. 1998. 17 Google ScholarDigital Library
- 45.M. Shaw and D. Garlan. Software Architecture: Perspectives of an Emerging Discipline. Prentice Hall, 1996. 2, 3 Google ScholarDigital Library
- 46.Y. Smaragdakis and D. Batory. Implementing Layered Designs with Mixin Layers. In Proceedings of European Conference on Object-Oriented Programming (ECOOP '98), LNCS 1445, pp. 550-570, Springer Verlag, 1998. 1, 17 Google ScholarDigital Library
- 47.M. Steffik, D. Bobrow, and K. Kahn. Integrating Access- Oriented Programming into a Multiparadigm Environment. IEEE Software, 3(1):10-18, Jan. 1986. 5Google ScholarDigital Library
- 48.K. Sullivan and D. Notkin. Reconciling Environment Integration and Software Evolution. ACM Transactions on Software Engineering and Methodology, 1(3):229- 268, 1992. 1, 3, 7, 16 Google ScholarDigital Library
- 49.P. Tarr, H. Ossher, W. Harrison, and S. Sutton Jr. N degrees of Separation: Multi-Dimensional Separation of Concerns. In Proceedings of the 21st International Conference on Software Engineering (ICSE '99), 1999. 1, 15, 17 Google ScholarDigital Library
- 50.D. Ungar and R. Smith. Self: The power of simplicity. In Proceedings of ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '87), Sigplan Notices, 22(12):227-242, 1987. 15 Google ScholarDigital Library
- 51.M. VanHilst and D. Notkin. Using Role Components to Implement Collaboration-Based Designs. In Proceedings of ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '96), Sigplan Notices, 31(10):359-369, 1996. 1, 17 Google ScholarDigital Library
- 52.R.J. Wieringa and W. de Jonge. Object Identifiers, Keys, and Surrogates. Theory and Practice of Object Systems, 1(2):101-114, 1995. 7 Google ScholarDigital Library
Index Terms
- PIROL: a case study for multidimensional separation of concerns in software engineering environments
Recommendations
PIROL: a case study for multidimensional separation of concerns in software engineering environments
In this paper, we present our experience with applying multidimensional separation of concerns to a software engineering environment. By comparing two different designs of our system, we show the importance of separating integration issues from the ...
Addressing separation of concerns in software engineering environments
SE'07: Proceedings of the 25th conference on IASTED International Multi-Conference: Software EngineeringSoftware engineering tools and environments have play an essential role to improve the quality and productivity of the software processes and products. However, most tools and environments have been closed isolated, presenting specific architectures and ...
Preserving the separation of concerns while composing aspects on shared joinpoints
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applicationsAspect-oriented programming (AOP) is a programming paradigm which makes possible the separation of crosscutting concerns in different modules (the aspects). AOP is known to have issues when aspects are composed in a base program. Several approaches have ...
Comments