Программирование по контракту — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Пример)
(Пример)
Строка 21: Строка 21:
 
     intMINUTES;
 
     intMINUTES;
 
     intSECONDS;
 
     intSECONDS;
 
 
     getHours();
 
     getHours();
 
     {
 
     {
 
         returnHOURS;
 
         returnHOURS;
     }
+
     }  
   
 
 
     getMinutes();
 
     getMinutes();
 
     {
 
     {
 
         return MINUTES;
 
         return MINUTES;
 
     }
 
     }
 
 
     getSeconds()
 
     getSeconds()
 
     {
 
     {
 
         return SECONDS;
 
         return SECONDS;
 
     }
 
     }
 
 
     setHours(newHOURS);
 
     setHours(newHOURS);
 
     {
 
     {
 
         HOURS = newHOURS;
 
         HOURS = newHOURS;
 
     }
 
     }
 
 
     setMinutes(newMINUTES);
 
     setMinutes(newMINUTES);
 
     {
 
     {

Версия 15:46, 15 июня 2013

Программирование по контракту обеспечивает проверку предусловий и постусловий при выполнении методов классов, пользовательских функций. Также немаловажную роль в правильности написания функций играют инварианты.

Предусловие

Определение:
Предусловие - должно быть выполнено до исполнения действия.

Постусловие

Определение:
Постусловие - должно быть выполнено после исполнения действия.

Инвариант

Определение:
Инвариант - определяет глобальные свойства некоторого класса, которые должны соблюдаться после его создания на протяжении всего времени жизни.

Пример

 class Time

{

   intHOURS;
   intMINUTES;
   intSECONDS;
   getHours();
   {
       returnHOURS;
   }    
   getMinutes();
   {
       return MINUTES;
   }
   getSeconds()
   {
       return SECONDS;
   }
   setHours(newHOURS);
   {
       HOURS = newHOURS;
   }
   setMinutes(newMINUTES);
   {
       MINUTES = newMINUTES;
   }
   setSeconds(newSECONDS)
   {
       SECONDS = newSECONDS;
   }
 }