Подход к разработке программ по правилу Design by contract



Design by Contract - основан на формальной верификации, формальной спецификации и логике Хоара.

Проектирование по контракту - это установление отношений между классом и его клиентами в виде формального соглашения, недвусмысленно устанавливающие права и обязанности сторон.

Логика Хоара — формальная система с набором логических правил, предназначенных для доказательства корректности компьютерных программ (предложена в 1969 г.). Пусть A – это некоторая операция, тогда формула корректности (correctness formula) – это выражение вида: {P} A {Q}

Формула корректности (триада Хоара) говорит: любое выполнение А, начинающееся в состоянии, где Р истинно, обязательно завершится и в заключительном состоянии будет истинно Q, где P и Q – это утверждения, при этом P является предусловием, а Q – постусловием.

Пример: {x = 5} x = x ^ 2 {x > 0}

Эта триада корректна, так как если перед выполнением операции x^2 предусловие выполняется и значение x равно 5, то после выполнения этой операции постусловие (x больше нуля) будет гарантировано выполняться.

Формальная спецификация — это математическое описание программной системы, которая может быть реализована в соответствии с этим описанием (описывается, что должна делать система).

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

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

Автоматного программирование. Особенности.

Автоматное программирование — это парадигма программирования, при использовании которой программа или её фрагмент осмысливается как модель какого-либо формального автомата.

Определяющими для автоматного программирования являются следующие особенности: 

1. Временной период выполнения программы разбивается на шаги автомата, каждый из которых представляет собой выполнение определённой (одной и той же для каждого шага) секции кода с единственной точкой входа; такая секция может быть оформлена, например, в виде отдельной функции и может быть разделена на подсекции, соответствующие отдельным состояниям или категориям состояний.

2. Передача информации между шагами автомата осуществляется только через явно обозначенное множество переменных, называемых состоянием автомата; между шагами автомата программа не может содержать неявных элементов состояния, таких как значения локальных переменных в стеке, адреса возврата из функций, значение текущего счётчика команд и т. п..

3. Полностью выполнение кода в автоматном стиле представляет собой цикл шагов автомата.

Интернационализация программного обеспечения.

Интернационализация(internationalization) — технологические приёмы разработки ПО, упрощающие адаптацию продукта к языковым и культурным особенностям региона , отличного от того, в котором разрабатывался продукт.

Есть два подхода - интернационализация и локализация.

Интернационализация — это адаптация продукта для потенциального использования практически в любом месте.

Локализация — это добавление специальных функций для использования в некотором определённом регионе. Интернационализация производится на начальных этапах разработки, в то время как локализация — для каждого целевого языка.

Существует три уровня локализации: 

1. Обеспечить поддержку языка и национальных стандартов

2. Перевод текстов в интерфейсе программы на целевой язык

3. Тонкая настройка под целевую страну

Для интернационализации используют следующие приемы: 

1. Текстовые строки хранятся в отдельных файлах

2. Активно используется Unicode. 

3. Поскольку строки в процессе перевода могут удлиняться и укорачиваться, в диалоговых окнах применяют такие меры: окна специально компонуют «с запасом», в языковые ресурсы вносят компоновку диалоговых окон, диалоговые окна сами устанавливают свой размер в зависимости от длин строк. 

4. Стараются использовать стандартные и проверенные оконные компоненты, избегая «самописных». 

5. Делают конфигурируемыми все параметры, которые можно было бы изменять в другой стране. Для вывода на экран чисел, дат, времени и т. д. используют стандартные, а не «самописные» функции


Дата добавления: 2018-06-01; просмотров: 405; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!