병렬 객체지향 시스템의 검증

Model Checking of Concurrent Object-Oriented Systems

  • 조승모 (한국과학기술원 전산학과) ;
  • 김영곤 (한국과학기술원 전산학과) ;
  • 배두환 (한국과학기술원 전산학과) ;
  • 변성원 (한국통신 멀티미디어연구소) ;
  • 김상택 (한국통신 멀티미디어연구소)
  • 발행 : 2000.01.15

초록

모델체킹은 검증하려는 대상 시스템의 동작 모델이, 그 시스템이 만족해야 할 성질을 만족시키는지를, 시스템의 상태공간을 검사해 봄으로써 알아보는 정형 검증 기법의 하나이다. 이러한 모델체킹 기법을 병렬 객체지향 시스템에 적용하기 위해 기존의 모델체커인 SPIN에서 지원하는 모델링 언어인 Promela를 병렬객체지향 개념을 추가하여 확장한 언어인 APromela를 제안하였다. 이는 Promela가 프로세스를 단위로 하는 병렬성만을 지원하는데 반해, 액터 모델에 기반한 객체지향 병렬성을 지원한다. 또한 우리는 이 언어로 작성된 모델을 자동으로 Promela로 변환하는 규칙을 제안하였다. 이를 통해, 기존의 모델체커를 이용해 병렬 객체지향 시스템의 검증을 수행할 수 있다. 이 언어의 응용으로 UML 로 기술된 명세의 검증을 수행하는 과정을 제시하였다.

Model checking is a formal verification technique which checks the consistency between a requirement specification and a behavior model of the system by explorating the state space of the model. We apply model checking to the formal verification of the concurrent object-oriented system, using an existing model checker SPIN which has been successful in verifying concurrent systems. First, we propose an Actor-based modeling language, called APromela, by extending the modeling language Promela which is a modeling language supported in SPIN. APromela supports not only all the primitives of Promela, but additional primitives needed to model concurrent object-oriented systems, such as class definition, object instantiation, message send, and synchronization.Second, we provide translation rules for mapping APromela's such modeling primitives to Promela's. As an application of APromela, we suggest a verification method for UML models. By giving an example of specification, translation, and verification, we also demonstrate the applicability of our proposed approach, and discuss the limitations and further research issues.

키워드

참고문헌

  1. R. J. Anderson, P. Beame, S. Burns, W. Chan, F. Modugno, D. Notkin, and J. D. Reese, 'Model Checking Large Software Specifications,' in Proc. the Forth ACM SIGSOFT Symposium on the Foundation of SE, pp. 156-166, 1996
  2. W. Athas and C. Seitz, 'Cantor User Report Version 2.0,' Technical Report 5232:TR86, California Institute of Technology, Pasadena, CA, Jan. 1987
  3. G. Agha, S. Frolund, W. Kim, R. Panwar, A. Patterson, and D. Sturman, 'Abstraction and Modularity Mechanisms for Concurrent Computing,' in IEEE Parallel and Distributed Technology: Systems and Applications, 1(2):3-14, May 1993 https://doi.org/10.1109/88.218170
  4. G. Agha, 'Actors: A Model of Concurrent Computation in Distributed Systems,' MIT Press, 1986
  5. R. Alur, T.H. Henzinger, and P.H. Ho, 'Automatic Symbolic Verification of Embedded Systems,' IEEE Transactions of Software Engineering, 22(3): 181-201, 1996 https://doi.org/10.1109/32.489079
  6. J.R. Burch, E.M. Clarke, K.L. McMillan, D.L. Dill, and L.J. Hwang, 'Symbolic model checking : $10^{20}$ states and beyond,' Information and Computation, 98(2):142-171, 1992 https://doi.org/10.1016/0890-5401(92)90017-A
  7. P. Cousot and R. Cousot, 'Abstract interpretation frameworks,' in Journal of Logic and Computation, 2(4):511-547, Aug., 1992 https://doi.org/10.1093/logcom/2.4.511
  8. E.M. Clarke, E.A. Emerson, and A.P. Sisla, 'Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications,' ACM Transactions on Programming Languages and Systems, 8(2):244-263, 1986 https://doi.org/10.1145/5397.5399
  9. J. C. Corbett, 'Constructing Compact Models of Concurrent Java Programs,' in Proc. ISSTA 98, 1998 https://doi.org/10.1145/271771.271778
  10. G. Duval, 'Specification and Verification of an Object Request Broker,' in Proc. ICSE 98, 1998
  11. H. Eriksson and M. Penker, UML Toolkit, John Willey and Sons, Inc., 1998
  12. S. Frolund and G. Agha, 'A Language Framework for Multi-Object Coordination,' in Lecture Notes in Computer Science 627, 1993
  13. P. Godefroid, 'Partial-Order Methods for the Verification of Concurrent Systems,' Lecture Notes in Computer Science 1032, Springer-Verlag, 1996
  14. C. Hewitt, 'Viewing Control Structures as Patterns of Passing Messages,' in Journal of Artificial Intelligence, 8(3):323-364, 1977 https://doi.org/10.1016/0004-3702(77)90033-9
  15. G. Holzmann, 'Design and Validation of Computer Protocols,' New Jersey, 1991, Prentice Hall
  16. G. Holzmann, 'The Model Checker SPIN,' IEEE Transactions on Software Engineering, Vol. 23, No. 5, pp. 279-295, May 1997 https://doi.org/10.1109/32.588521
  17. W. Kim, 'THAL: An Actor Ststem for Efficient and Scalable Concurrent Computing,' Ph.D Thesis, Univ. of Illinois at Urbana-Champaign, 1997
  18. D. Kafura, M. Mukherji, and G. Lavender, 'ACT++: A Class Library for Concurrent Programming in C++ Using Actors,' in Jounal of Object-Oriented Programming, Oct. 1993
  19. H. Lieberman, 'Concurrent Object-Oriented Programming In ACT1,' In Object-Oriented Concurrent programming, MIT Press, Cambridge, MA,1987
  20. E. Najm and F. Olsen, 'Reactive EFSMs, Reactive PROMELA/RSPIN,' in Proc. Tools and Algorithms for the Construction and Analysis of Systems, (TACA96), pp. 349-368, LNCS 1055, Springer-Verlag, Mar. 1996
  21. M. Staskauskas, 'Tales from the Front: Industrial Experience with Formal Validation,' in Proc. First SPIN Workshop, INRS Quebec, Canada, Oct. 1995
  22. S. Tripakis and C. Courcoubetis, 'Extending PROMELA and SPIN for real-time,' in Proc. Tools and Algorithms for the Construction and Analysis of Systems, (TACA96), pp. 329-348, LNCS 1055, Springer-Verlag, Mar. 1996
  23. C. Weise, 'An incremental formal semantics for PROMELA,' in Proc. Third Spin workshop, Apr., 1997
  24. P. Wegner, 'Concepts and Paradigms of Object-Oriented Programming,' {\it ACM OOPS Massenger}, Aug., 1990 https://doi.org/10.1145/382192.383004
  25. A. Yonezawa, 'ABCL An Object-Oriented Concurrent Systems,' MIT Press, Cambridge, Mass., 1990