Shifting Up Reflection from the Implementation to the Analysis Level
Traditional methods for object-oriented analysis and modeling focus on the functional specification of software systems, i.e., application domain modeling. Non-functional requirements such as fault-tolerance, distribution, integration with legacy systems, and so on, have no clear collocation within the analysis process, since they are related to the architecture and workings of the system itself rather than the application domain. They are thus addressed in the system’s design, based on the partitioning of the system’s functionality into classes resulting from analysis. As a consequence, the smooth transition from analysis to design that is usually celebrated as one of the main advantages of the object-oriented paradigm does not actually hold for what concerns non-functional issues. A side effect is that functional and non-functional concerns tend to be mixed at the implementation level. We argue that the reflective approach whereby non-functional properties are ascribed to a meta-level of the software system may be extended “back to” analysis. Adopting a reflective approach in object-oriented analysis may support the precise specification of non-functional requirements in analysis and, if used in conjunction with a reflective approach to design, recover the smooth transition from analysis to design in the case of non-functional system’s properties.
KeywordsCausal Connection Functional Object Credit Limit Persistent Object Card Database
Unable to display preview. Download preview PDF.
- 1.Massimo Ancona, Walter Cazzola, Gabriella Dodero, and Vittoria Gianuzzi. Channel Reification: a Reflective Approach to Fault-Tolerant Software Development. In OOPSLA’95 (poster section), page 137, Austin, Texas, USA, on 15th–19th October 1995. ACM. Available at http://www.disi.unige.it/person/CazzolaW/references.html.
- 2.Massimo Ancona, Walter Cazzola, and Eduardo B. Fernandez. Reflective Authorization Systems: Possibilities, Benefits and Drawbacks. In Jan Vitek and Christian Jensen, editors, Secure Internet Programming: Security Issues for Mobile and Distributed Objects, Lecture Notes in Computer Science 1603, pages 35–51. Springer-Verlag, July 1999.Google Scholar
- 4.Walter Cazzola, Andrea Savigni, Andrea Sosio, and Francesco Tisato. Architectural Reflection: Bridging the Gap Between a Running System and its Architectural Specification. In Proceedings of 6th Reengineering Forum (REF’98), pages 12-1–12-6, Firenze, Italia, on 8th–11th March 1998. IEEE.Google Scholar
- 5.Walter Cazzola, Andrea Savigni, Andrea Sosio, and Francesco Tisato. Architectural Reflection: Concepts, Design, and Evaluation. Technical Report RIDSI 234-99, DSI, University degli Studi di Milano, May 1999. Available at http://www.disi.unige.it/person/CazzolaW/references.html.
- 6.Walter Cazzola, Andrea Savigni, Andrea Sosio, and Francesco Tisato. Rule-Based Strategic Reflection: Observing and Modifying Behaviour at the Architectural Level. In Proceedings of 14th IEEE International Conference on Automated Software Engineering (ASE’99), pages 263–266, Cocoa Beach, Florida, USA, on 12th–15th October 1999.Google Scholar
- 7.Shigeru Chiba. A Meta-Object Protocol for C++. In Proceedings of the 10th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’95), volume 30 of Sigplan Notices, pages 285–299, Austin, Texas, USA, October 1995. ACM.Google Scholar
- 8.Scott Danforth and Ira R. Forman. Reflections on Metaclass Programming in SOM. In Proceedings of the 9th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’94), volume 29 of Sigplan Notice, pages 440–452, Portland, Oregon, USA, October 1994. ACM.Google Scholar
- 9.François-Nicola Demers and Jacques Malenfant. Reflection in Logic, Functional and Object-Oriented Programming: a Short Comparative Study. In Proceedings of the IJCAI’95 Workshop on Reflection and Metalevel Architectures and their Applications in AI, pages 29–38, Montréal, Canada, August 1995.Google Scholar
- 10.Jean-Charles Fabre, Vincent Nicomette, Tanguy Pérennou, Robert J. Stroud, and Zhixue Wu. Implementing Fault Tolerant Applications Using Reflective Object-Oriented Programming. In Proceedings of FTCS-25 “Silver Jubilee”, Pasadena, CA USA, June 1995. IEEE.Google Scholar
- 11.Jacques Ferber. Computational Reflection in Class Based Object Oriented Languages. In Proceedings of 4th Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’89), volume 24 of Sigplan Notices, pages 317–326. ACM, October 1989.Google Scholar
- 12.Luciane Lamour Ferreira and Cecília M. F. Rubira. The Reflective State Pattern. In Steve Berczuk and Joe Yoder, editors, Proceedings of the Pattern Languages of Program Design, TR #WUCS-98-25, Monticello, Illinois-USA, August 1998.Google Scholar
- 13.Nicolas Graube. Metaclass Compatibility. In Norman K. Meyrowitz, editor, Proceedings of the 4th Conference on Object-Oriented Programming: Systems, Languages, and Applications (OOPSLA’89), volume 24(10) of Sigplan Notices, pages 305–316, New Orleans, Louisiana, USA, October 1989. ACM.Google Scholar
- 14.Walter Hürsch and Cristina Videira Lopes. Separation of Concerns. Technical Report NU-CCS-95-03, Northeastern University, Boston, February 1995.Google Scholar
- 15.Mangesh Kasbekar, Chandramouli Narayanan, and Chita R. Das. Using Reflection for Checkpointing Concurrent Object Oriented Programs. In Shigeu Chiba and Jean-Charles Fabre, editors, Proceedings of the OOPSLA Workshop on Reflection Programming in C++ and Java, October 1998.Google Scholar
- 16.Gregor Kickzales, Jim des Rivières, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, Massachusetts, 1991.Google Scholar
- 17.Arthur H. Lee and Joseph L. Zachary. Using Meta Programming to Add Persistence to CLOS. In International Conference on Computer Languages, Los Alamitos, California, 1994. IEEE.Google Scholar
- 18.Orlando Loques, Julius Leite, Marcelo Lobosco, and Alexandre Sztajnberg. Integrating Meta-Level Programming and Configuration Programming. In Walter Cazzola, Robert J. Stroud, and Francesco Tisato, editors, Proceedings of the 1st Workshop on Object-Oriented Reflection and Software Engineering (OORaSE’99), pages 137–151. University of Milano Bicocca, November 1999.Google Scholar
- 19.Pattie Maes. Concepts and Experiments in Computational Reflection. In Norman K. Meyrowitz, editor, Proceedings of the 2nd Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’87), volume 22 of Sigplan Notices, pages 147–156, Orlando, Florida, USA, October 1987. ACM.Google Scholar
- 20.Juan-Carlos Ruiz-Garcia Marc-Olivier Killijian, Jean-Charles Fabre and Shigeru Chiba. A Metaobject Protocol for Fault-Tolerant CORBA Applications. In Proceedings of the 17th Symposium on Reliable Distributed Systems (SRDS’98), pages 127–134, 1998.Google Scholar
- 21.Philippe Mulet, Jacques Malenfant, and Pierre Cointe. Towards a Methodology for Explicit Composition of MetaObjects. In Proceedings of the 10th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’95), volume 30 of Sigplan Notice, pages 316–330, Austin, Texas, USA, October 1995. ACM.Google Scholar
- 22.Thomas Riechmann and Jürgen Kleinöder. Meta-Objects for Access Control: Role-Based Principals. In Colin Boyd and Ed Dawson, editors, Lecture Notes in Computer Science, number 1438 in Proceedings of 3rd Australasian Conference on Information Security and Privacy (ACISP’98), pages 296–307, Brisbane, Australia, July 1998. Springer-Verlag.Google Scholar
- 23.James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice-Hall, Englewood Cliffs, NJ, 1991.Google Scholar
- 24.Robert J. Stroud. Transparency and Reflection in Distributed Systems. ACM Operating System Review, 22:99–103, April 1992.Google Scholar
- 25.Robert J. Stroud and Ian Welch. Dynamic Adaptation of the Security Properties of Application and Components. In Proceedings of ECOOP Workshop on Distributed Object Security (EWDOS’98), in 12th European Conference on Object-Oriented Programming (ECOOP’98), pages 41–46, Brussels, Belgium, July 1998. Unité de Recherche INRIA Rhone-Alpes.Google Scholar
- 26.Robert J. Stroud and Zhixue Wu. Using Meta-Object Protocol to Implement Atomic Data Types. In Walter Olthoff, editor, Proceedings of the 9th Conference on Object-Oriented Programming (ECOOP’95), LNCS 952, pages 168–189, Aarhus, Denmark, August 1995. Springer-Verlag.Google Scholar
- 27.Robert J. Stroud and Zhixue Wu. Using Metaobject Protocols to Satisfy Non-Functional Requirements. In Chris Zimmerman, editor, Advances in Object-Oriented Metalevel Architectures and Reflection, chapter 3, pages 31–52. CRC Press, Inc., 2000 Corporate Blvd., N.W., Boca Raton, Florida 33431, 1996.Google Scholar
- 28.Junichi Suzuki and Yoshikazu Yamamoto. Extending UML for Modeling Reflective Software Components. In Robert France and Bernhard Rumpe, editors, Lecture Notes in Computer Science, number 1723 in Proceedings of «UML»’99-The Unified Modeling Language: Beyond the Standard, the Second International Conference, pages 220–235, Fort Collins, CO, USA, October 1999. Springer-Verlag.Google Scholar
- 29.Michiaki Tatsubori. An Extension Mechanism for the Java Language. Master of engineering dissertation, Graduate School of Engineering, University of Tsukuba, University of Tsukuba, Ibaraki, Japan, February 1999.Google Scholar