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

         

Поверхностность структуры


Парнас предлагает два критерия разбиения:

  • возможное (хотя пока и незапланированное) использование и
  • возможное (хотя и незапланированное) изменение.

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

    Двое других авторов описывают ту же идею по-другому, используя выражение "абстрагирование данных" [5]. Они приводят в пример стековую структуру. Стековый "модуль" состоит из процедур для очистки стека, отправки значения в стек, снятия значения оттуда и определения пустоты стека. Этот "многопроцедурный" модуль скрывает информацию о том как оргазизован стек от остальных частей программы. При этом он считается единым модулем потому, что его процедуры взаимозависимы. Нельзя изменить способ загрузки значения в стек без изменения способа снятия его оттуда.

    Слово `использовать` играет важную роль в этой концепции. Парнас пишет в своей более поздней статье [6]:

    Системы, достигнувшие определенной степени "элегантности" ... сделали это за счет "использования" одними частями системы других ...

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

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

    Разработка, при которой модули группируются в соответствии с потоком передачи управления, не готова к быстрым изменениям в проекте. Структура, построенная в соответствии с иерархией управления, является поверхностной.

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



    Содержание раздела