상속변칙 해결을 위한 상태 추상화 기반 상속 인터페이스 설계

Design of Inheritance Interface based on State Abstraction to Solve the Inheritance Anomaly

  • 이광 (청주과학대학 컴퓨터과학과) ;
  • 이준 (조선대학교 전자·정보공과대학 컴퓨터공학부)
  • 발행 : 2002.06.01

초록

병행 객체지향언어에서 상속성과 병행성은 가장 중요한 특성이다. 하지만, 상속성과 병행성은 상충적인 특성을 가지고 있기 때문에 이들을 병행으로 사용할 경우, 객체 내부의 코드 재정의를 요구하는 상속변칙이 발생된다. 본 논문에서는 캡슐화의 손상 없이 상속변칙을 해결하기 위해 상태 추상화 개념을 도입하였다 이를 통해 캡슐화된 객체의 내부 상태를 추상형 상태로 사상하였고, 효율적인 상속을 위해 상속 인터페이스를 설계하였다. 추상형 상태 집합을 가진 상속 인터페이스를 통해 메소드의 재정의가 발생하더라도 상속 계층 내에 존재하는 클래스들에 미치는 영향을 제거함으로써 상속변칙 문제를 해결하였다.

In concurrent object-oriented languages, inheritance and concurrence are the primary features. But concurrent objects and inheritance have conflicting characteristics thereby simultaneously use of them causes the problem, so called inheritance anomaly, which requires code redefinition of inherited methods to maintain integrity of objects. In this paper, to solve this inheritance anomaly without broken of encapsulation, we introduce the state abstraction concept and map internal states of the encapsulated object into abstract slates. And also, we design the inheritance interface for efficient inheritance. Through the inheritance interface containing abstract state set, though redefinition of the method is incurred, we can remove the influence of other classes in inheritance hierarchy. And also, we can solve the inheritance anomaly problems.

키워드

참고문헌

  1. J Lechner U. Lengauer C. Nick E. I. Wirsing M., '(Object + concurrent) and Reusability: A Proposal to Circumvent the Inheritance Anomaly,' ECOOP'96 Object-Oriented Programming 10th European Conference Proceedings. pp.232-247, 1996 https://doi.org/10.1007/BFb0053064
  2. Crinogorac L. Rao S. Rarnamohanarao K., 'Inheritance anomaly. A formal treatment,' FMOODS'97, Vol. 2, pp.319-34, 1997
  3. 이준, 김성근, 유재우, 송후봉, 'C++의 병행성을 위한 클래스 라이브러리 구현', 한국통신학회지, 제20권, 제12호, 1995
  4. Baquero C. Maora F.. 'Concurrency Annotations in C+, ,' AC'V1 SIGPLAN Notices, Vol.29, No.7, pp.61-67, 1994 https://doi.org/10.1145/181593.181603
  5. Mitchel S. E. Wellings A. J., 'Synchronization, Concurrent Object-Oriented Programming and Inheritance Anomaly,' Comput. Lang., Vol.22, No.1 , pp.15-26, 1996 https://doi.org/10.1016/0096-0551(96)00002-1
  6. Kuno Y. Ohki A., p6-A State Abstraction-Based Parallel Object-Oriented Language, Research Report 96-02, Graduate School of Systems Management, Univ. of Tsukuba, Tokyo, 1996
  7. Kuno Y, 'Solving Inheritance Anomaly Problems by State Abstraction-Based Synchronization,' Proc. 1997 France- Japan Workshop on Object- Based Parallel and Distributed Computing, October 1997
  8. Barry C. Leung L. Peter P. Chiu K., 'Behaviour Equation as Solution of Inheritance Anomaly in Concurrent Object-Oriented Programming Languages,' IEEE'96, Proceedings of PDP'96, pp.360-366, 1996 https://doi.org/10.1109/EMPDP.1996.500608
  9. Agha G. Wenger P. Yonezawa A., Research Direction in Concurrent Object-Oriented Programming, MIT Press, pp. 107-150, 1993
  10. Lechner U. Lengauer C. Nick F. Wirsing M., 'How to Overcome the Inheritance Anomaly,' ECOOP'96, LNCS 1098, 1996
  11. Matsuoka S. Taura K., 'Highly Effective and Encapsulated Re-use of Synchronization Code in Concurrent Object-Oriented Languages,' OOPSLA' 93, pp.109-126, 1993 https://doi.org/10.1145/165854.165875
  12. Decouchant D. et. al., 'A Synchronization Mechanism for Typed Object Oriented in a Distributed System,' ACM SIGPLAN workshop on Object-Based Concurrent Programming Vol.24, pp.105-107, ACM Press, 1989 https://doi.org/10.1145/67386.67414
  13. Yokoto Y. Tokoro M., Concurrent Programming in ConcurrentSmalltalk, Object-Oriented Concurrent Programming MIT Press., pp.159-198, 1987
  14. Caromel D., 'Concurrency and Reusability : From Sequential To Parallel,' JOOP90, pp.34-42, 1990