Способ мышления-Форт


Глава 3. Предварительный проект / декомпозиция - часть 2


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

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

------------------------------------------------------------ СОВЕТ Целью предварительного проекта является определение того, какие компоненты необходимы для выполнения поставленных условий. ------------------------------------------------------------

К примеру, у Вас может быть задача, в которой события должны происходить в соответствии с заранее определенным расписанием. Для соблюдения последнего Вам вначале следует спроектировать несколько слов для образования "лексикона для составления расписаний". С их помощью Вы будете в состоянии описывать порядок событий, который должен соблюдаться в поставленной задаче.

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

Как можно узнать при проектировании компонента, какие команды могут понадобиться компонентам-пользователям? Известно, что это нечто вроде проблемы "цыпленка и яйца". Однако Форт-программисты справляются с ней тем же способом, что и цыплята с яйцами: итеративно.

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

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


Начало  Назад  Вперед