Генерация предоставляемого списка наборов сценариев - PullRequest
0 голосов
/ 27 октября 2011

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

  1. Правильные данные
  2. Неверные данные (вне диапазона, неправильное форматирование, что угодно)
  3. Неизвестно (Нуль)

Итак, если у нас есть 3 входные переменные и 3 состояния на каждую из этих переменных, мы получим 27 возможных сценариев. Предположим, мне нужно сделать некоторую логику, основанную на состоянии определенных переменных или комбинации состояний (AND, NAND, OR и т. Д.). Могу ли я легко структурировать программу таким образом, чтобы можно было с уверенностью охватить все сценарии без полного беспорядка в логике стиля if / else? Первое, что пришло в голову, были машины состояний, но, посмотрев на них немного, я не совсем убедился, что это то же самое.

1 Ответ

0 голосов
/ 17 июня 2012

Будет, если стиль логики, но вы можете использовать карты Карно , чтобы сделать его намного чище и быть уверенным, что вы рассмотрели все возможности.Что вы делаете, вы делаете сетку, показывающую каждую возможную комбинацию состояний.Затем отметьте каждое состояние по-своему, в зависимости от того, как вы хотите на него отреагировать.Целью этого является группировка состояний.Затем вы можете легко увидеть, являются ли ваши группы состояний логически «близкими», и если это так, вы можете упростить свою логику управления.Быстрый поиск карт Карно приведет к объяснениям , за которыми будет намного легче следить благодаря изображениям, но идея состоит в том, чтобы использовать сетку, чтобы увидеть, какие переменные не имеют отношения к группе состояний, и оптимизировать ихвне логики.

...