Терминология Разработки программного обеспечения - Что “Несоответствие” и “Неполнота” действительно означают [закрытый]

5
задан Julian 24 January 2010 в 00:30
поделиться

7 ответов

Непротиворечивость и неполнота - термины из формальной логики, где они используются для описания логических систем.

Полные определения зависят от точного контекста, но противоречивость обычно означает что-то вроде "для некоторого X можно доказать как X, так и !X", а неполнота означает что-то вроде "для некоторого X нельзя доказать X и нельзя доказать !X".

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

3
ответ дан 14 December 2019 в 01:08
поделиться

Название вопроса указывает на программное обеспечение ENG. Но тело определяет дизайн программного обеспечения. Эти два термина не являются эквивалентами.

Что касается несоответствия и неполноты, есть много областей, в которых они применяются. Просто чтобы назвать несколько из них:

неполнота:

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

несоответствие

  • конвенций и стиля кодирования
  • дизайна по реализации - интерфейс функций, классов И алгоритмы, разработанные в непоследовательном способе (т. Е. Сортировать для вектора ожидает, что для передачи вектора, сортировка для списка принимает два итератора)
  • дизайна пользовательского интерфейса с точки зрения взаимодействия - на одном диалоге пользователь должен попадать в Enter, чтобы принять, но на Другой диалог OK кнопка отображается для этого действия
  • внешнего вида и ощущения графического пользовательского интерфейса - различные окна имеют совершенно другой вид; или интерфейс командной строки - один вариант задан как -v значение, но другой AS --V = значение
  • лицензирования - представить продукцию Visual Studio на BSD, но .NET Framework на GPL: -)
4
ответ дан 14 December 2019 в 01:08
поделиться

Один смысл согласованности и полноты (и их соответствующие отрицания) в контексте формальных систем является следующим. Примерно, система является последовательной IFF. Невозможно избавиться от этого противоречия. Система завершается IFF, можно генерировать все истины о базовой модели. Идеал состоит в том, чтобы придумать разумный набор аксиом, которые могут «захватить» все и только истины о некоторой данной области.

1
ответ дан 14 December 2019 в 01:08
поделиться

Они могут означать так много вещей, что я просто приведу несколько примеров:

Несоответствие:

  • Наличие абстрактного класса, унаследованного несколькими классами, но с противоречивыми/не согласующимися реализациями
  • Использование различных шаблонов дизайна в нескольких одинаковых реализациях/моделях

Незавершенность:

  • Не имея целостной обработки исключений, реализованы только очевидные
  • Не охватывая весь спектр требуемых пользователем функций/функций

Перечни продолжаются и продолжаются.....

0
ответ дан 14 December 2019 в 01:08
поделиться

В системах баз данных является последовательной транзакцией - это то, что не нарушает никаких ограничений целостности во время его выполнения. Если транзакция покидает базу данных в незаконном состоянии, она прервана, и сообщается об ошибке.

В алгоритмах понятие полноты относится к способности алгоритма находить решение, если кто-то существует, и если нет, сообщает, что никакое решение невозможно.

В теории вычислительной сложности задача P выполнена для класса C сложности C, под заданным типом уменьшения, если P находится в C, и каждая проблема в C сводится к P, используя это уменьшение. Например, каждая проблема в классе NP-Complet завершена для класса NP, в рамках полиномиального времени, многие-один снижение.

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

Вы могли бы продолжать и на таких определениях ... возможно, сделайте вопрос менее расплывчатой?

, и если бы у меня был плохой день, я бы ссылался на «Геды неполнотыми теоремами», как это окончательно тема;)

-121--4817825-

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

0
ответ дан 14 December 2019 в 01:08
поделиться

в системах баз данных, согласованная транзакция является той, которая не нарушает никаких ограничений целостности во время его выполнения. Если транзакция покидает базу данных в незаконном состоянии, она прервана, и сообщается об ошибке.

В алгоритмах понятие полноты относится к способности алгоритма находить решение, если кто-то существует, и если нет, сообщает, что никакое решение невозможно.

В теории вычислительной сложности задача P выполнена для класса сложности C, под данным типом уменьшения, если P находится в C, и каждая проблема в C сводится к P, используя это уменьшение. Например, каждая проблема в классе NP-Complet завершена для класса NP, в рамках полиномиального времени, многие-один снижение.

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

Вы могли бы продолжать и на таких определениях ... возможно, сделайте вопрос менее расплывчатой?

, и если бы у меня был плохой день, я бы ссылался на «Гедлс неполнотыми теоремами», так как это окончательно будет на тема;)

1
ответ дан 14 December 2019 в 01:08
поделиться

В контексте указанного вами примера они просто означают, что наложение формального процесса - тот, который имеет сквозной документированный подход, методология, набор результатов, определен Роли и обязанности, будут создавать лучший продукт, чем специальный подход к тому же вопросу. Другими словами, формальные системы, которые описывают полный процесс разработки программного обеспечения, используемые последовательно и применяемые в течение всего срока службы этого проекта, будут создавать лучшие результаты, чем системы, которые не предоставляют эту структуру поддержки.

Это так же, как построение дома. Да, вы можете просто закончиться и начать вместе гвоздь вместе, и вы сможете построить что-то, что вы можете жить, но если вы вместо этого изучите архитектуру, строительные материалы и методы, определите рабочий процесс и т. Д., Вы будете в конечном итоге лучший дом. Еще лучше, чем это, однако, вы сможете построить тот же дом или аналогичный, снова с значительно более высокой вероятностью успеха.

0
ответ дан 14 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: