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

Материал из Викиконспекты
Перейти к: навигация, поиск
(Пример)
(Пример)
Строка 16: Строка 16:
 
}}
 
}}
 
== Пример ==
 
== Пример ==
 +
Необходимо гарантировать, что данный класс будет возвращать корректные данные, либо, вообще не будет работать (Исходя из принципа «Мертвые программы не лгут»).
 
   class Time {
 
   class Time {
 
     intHOURS;
 
     intHOURS;

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

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

Предусловие

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

Постусловие

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

Инвариант

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

Пример

Необходимо гарантировать, что данный класс будет возвращать корректные данные, либо, вообще не будет работать (Исходя из принципа «Мертвые программы не лгут»).

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