프로그램을 디자인 하는 절차

"How to Design Programs" 라는 책에서 언급된 DESIGN RECIPE 라고 불리우는 프로그램 디자인을 하는데 필요한 몇가지 단계 


Contract 단계 

   area-of-ring : number number -> number 

   area-of-ring 이라는 프로그램은 number 2개를 인자로 받아서 number 를 리턴하는 프로그램이다. 라고 구상하는 단계 


Purpose 단계 

outer 라는 바깥쪽의 원의 반지름과 inner 라는 안쪽 원의 반지름을 가진 두원의 사이에 끼어져 있는 고리의 영역을 계산하기 위한 것이 목적이다. 


Example 단계 

   (area-of-ring 5 3) 이거나 area-of-ring (5, 3); 은 50.24 의 값이 나와야 한다. 


Definition 단계 

 

 (define (area-of-ring outer inner)
     (- (area-of-disk outer)
        (area-of-disk inner)))



이건 Scheme 으로 구현한 것이고 

 

  int area-of-ring (int outer , int inner) {
     int outer-area = area-of-disk(outer);
     int inner-area = area-of-disk(inner);

     return outer-area - inner-area ;
    }


이건 (C/C++, Java) 계열 이겠군요. 자신이 즐겨 쓰는 언어로 구현 하는 단계를 말합니다. 

   
Tests 단계

   (area-of-ring 5 3) 또는 area-of-ring (5 ,3);
   의 기대값 
   50.24 

크나 작으나 이러한 절차를 따라서 자기도 모르게 만들어가고 있는 것이라고 볼 수가 있습니다.