Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Горбунов / УП_ОПТ1 / Р2_История.doc
Скачиваний:
26
Добавлен:
16.04.2013
Размер:
866.82 Кб
Скачать
      1. Наследие структурного программирования.

«Привычки отцов, и дурные и хорошие, превращаются в пороки детей».

Демокрит, ок 470-370 гг.до н.э.

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

  • выделение этапа системного анализа сложных проблемных ситуаций в самостоятельный вид профессиональной деятельности;

  • массовое освоение методик нисходящего и восходящего проектирования сложных программных систем, выделение проектирования программ как самостоятельного вида профессиональной деятельности;

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

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

  • общее определение области эффективного использования парадигмы структурного программирования;

  • осознанием недостатков структурного программирования как философии программных технологий для больших систем.

      1. Иерархия представлений.

«Если не желаешь многого, то и немногое будет казаться тебе многим».

Демокрит, ок 470-370 гг.до н.э.

Классическим приемом борьбы со сложностью представлений реальности является иерархическое построение представлений предметной области. Мы будем рассматривать этот вопрос дальше более детально. А пока отметим, что любое выделение объекта в реальности есть определение его границы. В свою очередь граница объекта есть некоторое правило, истинное в области объекта и ложное вне его. Наиболее общий формализм таких правил – алгоритм, работующий на значениях свойств некоторых различимых «атомах реальности», т.е. данных. Значения представленны в некоторой знаковой системе, т.е. на языке. Очевидна очередная рефлексия данной трактовки представления понятия объекта и его границы по отношению к разработке программ.

Если правила выделения «атомов реальности» допускают декомпозицию общего правила выделения объектов, то можно построить иерархию нарастающей детализации представления. Последовательность применения частных правил, как показано на Рис.2.2.8, может быть примерно следующей:

  • выделяем предметную область, как общую часть реальности представляющую для нас интерес (правило границ 0 уровня);

  • в предметной области выделяем различимые элементы, один или несколько из которых будет моделироваться (правило границ 1 уровня);

  • в конкретном моделируемом объекте выделяем входящие в него элементы и связи между ними (правило границ 2 уровня), одна часть из которых может быть раскрыта (структурные элементы), а другая – нет (терминальные элементы);

  • применяем к каждому структурному элементу правило границ 3-го уровня, что порождает новое множество элементов и связей (структурных и терминальных);

  • процесс раскрытия структурных элементов продолжается до тех пор, пока множество новых структурных элементов не станет пустым.

В конечном итоге мы получаем представление интересующего нас объекта в терминах только терминальных моделей элементов и связей между ними. Эта процедура мало что дает в случае, если все терминальные и структурные элементы различны. Но очень часто они оказываются эквиваленными, что позволяет резко сократить количество их моделей (при сохранении общего количества терминальных элементов с контекстом связей между ними). Считается, что использование иерархии - хорошее средство борьбы с количественной сложностью (т.е. большим количеством терминальных элементов) при низкой логической сложности (т.е. невысоком разнообразии их моделей). Отметим, что общий случай высокой количественной и логической сложности модели (большое количество элементов при разнообразии их моделей) исследуемого объекта требует особых усилий и не имеет стандартных решений (кроме нарашивания вычислительных мощностей). Такие модели мы будем считать сверхсложными и не будем рассматривать в данной работе.

Соседние файлы в папке УП_ОПТ1