An Approach to Verifying Behavioral Compatibility between Objects using Successive Methods Rule

연속 메소드 규칙을 이용한 객체간의 행위적 호환성 검증 기법

  • 채흥석 (부산대학교 컴퓨터공학과) ;
  • 이준상 (고려대학교 임베디드 소프트웨어학과) ;
  • 배정호 (부산대학교 컴퓨터공학과)
  • Published : 2007.09.15

Abstract

In object-oriented systems, objects are organized in hierarchies such that subtypes Inherit and specialize the structure and the behavior of supertypes. Behavioral compatibility is a very crucial issue to permit the substitution between object types, which supports the extension and evolution of object oriented system. This paper proposes successive methods rule that extending methods rule for checking behavioral compatibility between objects on the basis of their dynamic behaviors expressed in finite state machine which is one of the most frequently used notations for expressing dynamic behaviors of object. Based on the classical methods rule, successive methods rule is used for guarantee behavioral compatibility by checking the traces of two objects. And we describe an algorithm for verifying behavioral compatibility between objects using the successive methods rule.

객체지향 시스템의 객체들은 서브타입과 수퍼타입의 관계로 구성될 수 있다. 즉 서브타입은 수퍼타입의 구조와 행위를 상속하고 특화하는 방식의 계층적 구조를 가진다. 기존 시스템의 확장과 진화를 가능케 하기 위해서 수퍼타입과 서브타입간의 행위적 호환성은 둘 간의 대체가능성을 위하여 중요한 문제이다. 본 논문에서는 객체의 동적 행위를 기술하는 범용적인 표현 방법 중 하나인 유한상태기계로 표현된 객체의 동적 행위를 바탕으로 객체간의 행위적 호환성을 검사할 수 있는 기법인 메소드 규칙을 확장한 연속 메소드 규칙을 제시한다. 연속 메소드 규칙은 기존의 메소드 규칙(methods rule)을 바탕으로 두 객체의 자취를 조사함으로써 두 객체가 행위적 호환성이 있음을 보장한다. 또한 연속 메소드 규칙을 이용하여 행위적 호환성을 검증할 수 있는 알고리즘을 제시한다.

Keywords

References

  1. Wegner, P. and S. Zdonik. 1988. Inheritance as an incremental modification mechanism or what like is and isn't like. In ECOOP '88, pp. 55-77
  2. America, P. 1991. Designing an Object-Oriented Programming Language with Behavioral Subtyping, In Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages. London, UK: Springer-Verlag, pp. 60-90
  3. Ebert, J. and G Engels. 1994. Observable or invocable behavior. You have to choose. Technical report Universitat Koblenz, Koblenz, Germany
  4. Liskov, B. and J. Wing. 1994. A Behavioral Notion of Subtyping. ACM Transactions on Programming Languages and Systems 15(6), pp. 1911-1841
  5. Meyer, B. 1992. \Design by Contract,' IEEE Computer 25(10), p. 4051
  6. Chow, T., S. 1978. Testing software design modeled by finite-state machines. IEEE Trans. Software Eng 4(3), pp. 178-187
  7. Knor, R. Trausmuth, G. and Weidl, J. 1998. Reengineering c/c++ source code by transforming state machines. In ESPRIT ARES Workshop, pp. 97-105
  8. Corbett, J., C. Dwyer, M., B. Hatcliff, J. Laubach, S. Pasareanu, C., S. Robby, and Zheng, H. 2000. Bandera:extracting finite-state models from java source code. In ICSE, pp. 439-448
  9. N. Pywes and P. Rehmet. 1996. Recovery of software design, state-machines, and speci-cations from source code. In ICECCS, pp. 279-288
  10. Chevalley, P. and Thevenod-Fosse, P. 2001. Automated generation of statistical test cases from uml state diagrams. In COMPSAC, pp. 205-214
  11. Kim, Y. Hong, H. Bae, D. and Cha. S. Test cases generation from uml state diagrams
  12. David, A. Moller, M., O. and Yi, W. 2002. Formal verification of uml statecharts with real-time extensions. In FASE, pp. 218-232
  13. van Katwijk, J. Toetenel, H. Sahraoui, A.-E.-K. Anderson, E. and Zalewski, J. 2000. Specification and verification of a safety shell with statecharts and extended timed graphs. In SAFECOMP, pp. 37-52
  14. Kang, K., C. and Ko, K.-I. 1996. Formalization and $veri^-cation$ of safety properties of statechart specifications. In APSEC, pp. 16-
  15. Pinter, G. and Majzik, I. 2004. Runtime verification of statechart implementations. In WADS, pp, 148-172
  16. Khler, H., J. Nickel, U. Niere, J. and Zndorf, A. 2000. Integrating uml diagrams for production control systems. In ICSE '00: Proceedings of the 22nd international conference on Software engineering, pp. 241-251
  17. Niaz, I. and Tanaka, J. 2003. Code generation from uml statecharts. In SEA '03: Proceedings of international conference on Software Engineering and Applications
  18. Canning, P., W. Cook, W. Hill and W. Olthoff. 1989. Interfaces for strongly-typed object-oriented programming. In OOPSLA '89, pp. 457-467
  19. Saake, G., R. Jungclaus, R. Wieringa and R. Feenstra. 1994. Inheritance Conditions for Object Life Cycle Diagrams. In Proceedings of EMISA. pp. 79-88
  20. Ehrich, H.-D., J. Goguen and A. Sernadas. 1990. A Categorical Theory of Objects as Observed Processes. In Proceedings of Foundations of Object-Oriented Languages(REX School/Workshop). pp. 203-228
  21. Sernadas, A. and H.-D. Ehrich. 1991. What is an Object, after all? In Proceedings of IFIP WG 2.6 Working Conference on Object-oriented Databases: Analysis, Design and Construction. pp. 39-70
  22. Schrefl, M. and M. Stumptner. 1995. Behavior Consistent Extension of Object Life Cycles. In Proceedings of OOER'95. pp. 133-145
  23. Schrefl, M. and M. Stumptner. 1997. Behavior Consistent Refinement of Object Life Cycles. In Proceedings of ER'97. pp. 155-168
  24. Schrefl, M. and M. Stumptner. 2002. Behaviorconsistent Specialization of Object Life Cycles,' ACM Transactions on Software Engineering and Methodology 11(1), pp. 92-148 https://doi.org/10.1145/504087.504091
  25. Fischer, C. and H. Wehrheim. 2000. Behavioral Subtyping Relations for Object-Oriented Formalisms,' Lecture Notes in Computer Science 1816, pp. 469-484
  26. Wehrheim, H. 2003. Behavioral Subtyping Relations for Active Objects,' Form. Methods Syst. Des. 23(2), pp. 143-170 https://doi.org/10.1023/A:1024764232069
  27. Hoare, C. 1985. Communicating Sequential Process. Prentice Hall
  28. Wehrheim, H. 2002. Behavioral Subtyping in Object-oriented Specification Formalisms.'
  29. Olderog, E.-R. and H. Wehrheim. 2005. Specification and (property) inheritance in CSP-OZ,' Sci. Comput. Program. 55(1-3), pp. 227-257 https://doi.org/10.1016/j.scico.2004.05.017
  30. Fischer, C. 1997. CSP-OZ: a combination of Object-Z and CSP. In Proc. 2nd IFIP Workshop on Formal Methods for Open Object-Based Distributed Systems (FMOODS)
  31. Model Development Tools (MDT) version 1.0, 2007. Available at http://www.eclipse.org/modeling/mdt/?project=uml2