суббота, 15 ноября 2008 г.

Модель (1)

Но пойдем дальше… Мы заговорили о Модели, приводя в пример один из первых ее экземпляров - ритуальный танец, как бы отличая Модель от всех прочих типов Текста (кстати, достаточно интересная задача - типизация текста). В чем же это отличие? Наверное, только в одном, всякая Модель «внутри себя» содержит еще один Текст - Решение.

Попробуем заняться решением какой-нибудь несложной задачи. Например, попить чаю. Что для этого нам необходимо сделать? Заварить чай, добавить по вкусу сахара и получить удовольствие от процесса. Если не задаваться вопросами, что происходит с нами, когда мы попытаемся реализовать данную установку, то, что мы будем делать не покажется нам удивительным. Но давайте наблюдать за собой со стороны. (Я буду заниматься чаепитием, используя те условия, в которых в настоящий момент нахожусь. Если какие-то этапы у меня и у вас станут различаться, поверьте на слово, это не изменит суть происходящего.)

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

Вторая трудность - формулировка качества результата: я должен спросить себя: какой я хочу чай, сколько мне нужно сахара, буду ли я пить чай с молокой (шоколадом, печеньем), где я буду пить чай (на кухне, за рабочим бюро)?

У нас возникает замечательная Комплементарная пара: Начальные условия - Конечные требования. Те, кто проектировал софтверные системы знает о чем идет речь.

Комментариев нет: