Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Публикации участников форума [игнор отключен] [закрыт для гостей] / О частичном применении методов формальной разработки ПО / 1 сообщений из 1, страница 1 из 1
27.04.2026, 14:41
    #40143389
tchingiz
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О частичном применении методов формальной разработки ПО
см. https://www.researchgate.net/publication/404225388

Последний раз обсуждается пример Мартина по поводу нарушения принципа подстановки.
С++ код программировался с библиотекой GSL -- Guidelines Support Library.

Во - первых, получен результат, который противоречит Мартину, далее цитата:
This leads us to a very important conclusion. A model, viewed in isolation, can not be meaningfully validated. The validity of a model can only be expressed in terms of its clients. Это ведет нас к очень важному выводу. Модель, которая рассматривается изолированно, не поддается содержательной проверке. Корректность модели может быть выражена только в терминах её клиента.
При правильном применении проектирования по контракту нарушение получено на стадии дымовых тестов.
То есть, модель рассматривалась исключительно изолированно и поддалась содержательной проверке.

Во- вторых, надо использовать окончательную редакцию принципа подстановки (а не предварительную, как делаем Мартин).
.= Пусть $f(r)$ -- некоторое свойство, выполняющееся (или утверждение, которое истинно) на объектах $r$ типа $T$. Тогда свойство $f(s)$ должно выполняться на объектах типа $S$, если $S$ является подтипом типа $T$. .= В качестве свойства $f(r)$ используем следующее утверждение: .= Для всех объектов $r$ класса $Rectangle$ выполнение функции $g$ достигает оператора $return$. .= Поскольку в первом, бесконтрактном, варианте классов на объекте $s$ класса $Square$ выполнение функции $g$ не достигало оператор $return$, становится очевидным нарушение принципа подстановки без дополнительных аппеляций автора примера (то есть, Мартина) к изменившемуся поведению функции $g$ и каким- то осмысленным предположениям разработчика этой функции $g$. Разработчик ПО должен выполнять требования спецификации без собственных предположений.
...
Рейтинг: 0 / 0
Форумы / Публикации участников форума [игнор отключен] [закрыт для гостей] / О частичном применении методов формальной разработки ПО / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]