Managing Concern Interfaces

Programming languages provide various mechanisms to support information hiding. One problem with information hiding, however, is that providing a stable interface behind which to hide implementation details involves fixing in advance the services offered through the interface. We introduce a flexible approach to define and manage interfaces to achieve separation of concerns in evolving software. Our approach involves explicitly specifying interface and implementation classes for individual concerns, and automatically classifying implementation classes based on their relation to the interface. Our approach is supported by JMantlet, a tool that provides advanced interface management within an integrated development environment. We report on a case study of a large system that provides evidence that flexible interface management is desirable and adequately supported by our approach

[2]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[3]  Martin P. Robillard,et al.  ConcernMapper: simple view-based separation of scattered concerns , 2005, eclipse '05.

[4]  C. Chambers,et al.  ArchJava: connecting software architecture to implementation , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[5]  Kim Mens,et al.  Declaratively codifying software architectures using virtual software classifications , 1999, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275).

[6]  Stéphane Ducasse,et al.  The class blueprint: visually supporting the understanding of glasses , 2005, IEEE Transactions on Software Engineering.

[7]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[8]  David Notkin,et al.  Software Reflexion Models: Bridging the Gap between Design and Implementation , 2001, IEEE Trans. Software Eng..

[9]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[10]  Martin P. Robillard,et al.  FEAT a tool for locating, describing, and analyzing concerns in source code , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[11]  Stanley M. Sutton,et al.  Concern modeling in the concern manipulation environment , 2005, ACM SIGSOFT Softw. Eng. Notes.

[12]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[13]  Itay Maman,et al.  Micro patterns in Java code , 2005, OOPSLA '05.

[14]  Kim Mens,et al.  Towards a framework for testing structural source-code regularities , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).