Search Results for 'OCL'

1 POSTS

  1. 2006.10.20 Design by Contract의 문제점 1

Design by Contract의 문제점

Posted 2006. 10. 20. 16:04
현재 DbC 도구나 언어는 계약 관계를 표현하는 방법이 쉽지만은 않다. 간단한 예제들은 이진 표현(예를 들어 a >= 0.0)으로 간단하게 필요한 조건을 표현할 수 있었지만, 실제 프로젝트를 적용해 보려고 하면 생각보다 다양한 상황을 표현할 수 있는 방법이 필요함을 알 수 있다. 예를 들어 배열로 넘어온 인자에서 모든 값이 0보다 커야 한다던지 하는 경우 지금의 DbC 도구들로 표현하기가 어려운 면이 있다.

사실 계약에 사용되는 언어는 또 다른 프로그래밍 언어인 셈이다. Contract4J의 경우도 @Pre, @Post, @Invar 등에 사용되는 언어는 자바와 유사하지만 자바와는 또 다른 계약을 표기하기 위한 언어이다. $return이나 $old 같이 특수한 값을 지정할 수도 있어야하고, 계약 언어 특유의 요구 사항에 따라 자바 언어와는 다른 여러 가지 기능을 지원할 수도 있어야할 것이다.

이런 계약 언어가 아직까지는 초기 단계이기 때문에 표현력이 많이 떨어지는 편이다. 현재 UML의 OCL(Object Constraint Language)를 계약 언어로 사용하기 위한 노력들이 있는데, 관련 도구들이 발전한다면 앞으로의 상황은 점점 나아질 것이다. 하지만 금으로서는 DbC 언어의 한계가 사용에 걸림돌이 되는 것만은 사실이다.