ЛЕКЦИЯ 2. История технологий программирования, методов ООА, ООD и языка UML
Разделы Лекции 1: 1.1 Содержание Курса, 1.2 Оглавление Курса.

Пояснение. Каждая последующая лекция Курса, также как Лекция 2, будет начинаться с перечня названий разделов предыдущей лекции. Когда вы будете выполнять курсовой проект, то в начале каждой последующей лекции разметите тэгами языка HTML наименования разделов предыдущей лекции, таким образом, чтобы наименования стали ссылками на соответствующие им разделы предыдущей лекции. Тем самым вы отобразите в веб-курсе 11 "взглядов" на его содержание, которые мы будем называть взглядами типа "повторение - мать учения". Как видите наш Курс лекций имеет оригинальную структуру, придуманную для повышения эффективности усвоения Курса студентами, изучающими его по веб-курсу.

2.1 История технологий программирования

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

Известно, что по мере совершенствования технологий программирования постоянно повышалась производительность труда программистов. На заре программирования программы составлялись на языках машинных кодов и производительность труда программистов была крайне низкой. Затем в 1950-1970 годах появились алгоритмические языки программирования (ALGOL-58, FORNRAN I и др.), процедурные языки, функциональные языки (ПРОЛОГ) и языки других видов. Производительность труда программистов в этот период значительно увеличилась, но, по современным меркам, оставалась невысокой. Чтобы убедиться в этом достаточно вспомнить, что в те далекие времена результаты труда программистов оценивались и оплачивались по числу написанных ими строк или команд. Сегодня производительность труда программистов неизмеримо возросла. Ныне, как вы знаете, даже новичок программист с помощью современных программных инструментов (например используя, MS Visual C++ или Interprise/Borland Delphi) нажатием нескольких клавиш диалогового меню может создать сотни строк программного кода.

Вегнер в статье, посвященной языку АДА, сгруппировал некоторые из наиболее известных языков программирования высокого уровня в четыре поколения в зависимости от их назначений:

* Первое поколение (1954-1958)

  • FORTRAN I Математические формулы
  • ALGOL-58 "
  • Flowmetic "
  • * Второе поколение (1959-1961)

  • FORTRAN II Подпрограммы, раздельная компиляция
  • ALGOL-60 Блочная структура, типы данных
  • COBOL Описание данных, работа с файлами
  • Lisp Обработка списков, указатели, сборка мусора
  • * Третье поколение (1962-1970)

  • PL/1 FORTRAN+ALGOL+COBOL
  • ALGOL-68 Более строгий приемник ALGOL-60
  • Pascal Более простой приемник ALGOL-60
  • Simula Классы, абстрактные данные
  • * Четвертое, потерянное поколение (1970-1980)

    Создано много языков (около 2000), но мало выживших (например, Ada, Smaltalk)

    Для нашего курса наибольший интерес представляют объектно-ориентированные языки программирования, которые можно отнести к пятому поколению.

    2.2 История методов ООА и ООD

    Методы объектно-ориентированного анализа и проектирования (ООА и ООD), основанные на использовании графических языков моделирования, появились сравнительно недавно, но они имеют долгую предысторию. Начало разработкам графических языков моделирования сложных систем положил Дуглас Росс, который в середине 60-х годов создал оригинальный язык визуального моделирования систем.

    Графический язык Росса послужил стимулом для создания в США целого семейства методов моделирования и проектирования сложных систем, обозначаемых аббревиатурой IDEF. Все методы IDEF основаны на использовании визуальных языков. Наиболее известными из многочисленного семейства методов IDEF являются методы IDEF0, IDEF1X и IDEF3. Документацию этих и ряда других методов IDEF вы можете найти на сайте www.idef.org.

    Метод IDEF0 предназначен для моделирования функций сложных информационных систем и их процессов. Он поддерживается инструментальными программами BP-Win (бизнес процессы и окна). Метод IDEF1X используется для моделирования реляционных баз данных. Он поддерживается программами ER-Win (сущности-взаимосвязи и окна). Метод IDEF3 предназначен для детального моделирования бизнес процессов.

    В США методы IDEF0 и IDEF1X оформлены и утверждены как федеральные стандарты обработки информации (FIPS). Это означает, что все федеральные организации (например, министерства) и предприятия обязаны использовать стандарты IDEF0 и IDEF1X при разработке новых или при создании последующих очередей существующих информационных систем. В результате в значительной мере, обеспечивается, стандартизация программных средств, используемых федеральными организациями и предприятиями. Стандарты IDEF0 и IDEF1X служат также основой стандартизации информационного, программного и иных видов взаимодействия федеральных организаций и предприятий США. Методы IDEF0, IDEF1X используются и в нашей стране как государственными, так и частными организациями.

    Рассмотрим кратко диаграммы (визуальные модели) метода IDEF0. Исходными строительными элементами любой IDEF0 диаграммы служат прямоугольники и стрелки. Процесс на диаграмме изображается прямоугольником. Внутри процесса записывается его имя. Слева к прямоугольнику присоединяется стрелка вход, справа - стрелка выход, сверху - одна или две стрелки управления, снизу к прямоугольнику присоединяется стрелка, называемая механизмом. На Рис. 2.1 приведен пример корневой (исходной) диаграммы, моделирующей процесс составления и утверждения федерального бюджета Российской Федерации.

    РИС.2.1

    Рисунок раскрывает смысл, придаваемый стрелкам IDEF0 диаграммы в конкретном случае. Корневая IDEF диаграмма, имеющая один прямоугольник детализируется диаграммой второго уровня с несколькими (но не более 6-ти) прямоугольниками. На Рис.2.1 показано как это делается в случае моделирования процесса составления и утверждения федерального бюджета. Далее для прямоугольников на диаграмме второго уровня строятся диаграммы третьего уровня. Число уровней декомпозиции диаграмм определяется конкретной задачей.

    Диаграммы IDEF0 обладают рядом недостатков. В частности, они не имеют математической основы. Другой недостаток заключается в отсутствии визуальных средств для объектно-ориентированного представления сложных систем. Метод IDEF0 в сочетании с другими методами моделирования сложных систем послужил основой для создания методов объектно-ориентированного моделирования систем и языка UML.

    2.3 История языка UML

    К середине 90-х годов число методов моделирования сложных систем возросло до более чем 50-ти. В этой связи возникла проблема их обобщения и унификации. Частично она была решена в результате создания языка UML.

    По определению Гради Буча унифицированный язык моделирования (Unified Modeling Language, UML) является графическим языком для визуального представления, составления спецификаций, проектирования и документирования систем, в которых большая роль принадлежит программному обеспечению. Мы будем называть такие системы автоматизированными информационными системами (АИС) и полагать, что в работе АИС участвуют люди. С помощью языка UML можно разработать общесистемную документацию АИС, документацию ее программного обеспечения и создать многократно используемые (т.е. типовые) компоненты программного обеспечения.

    Решающую роль в создании языка UML сыграли Гарди Буч, Джеймс Рамбо и Айвар Джекобсон и созданные ими следующие методы моделирования различных сторон сложных систем:

    1. Метод Буча (Booch'93), ориентированный, в первую очередь, на моделирование программного обеспечения сложных систем.
    2. Метод Рамбо (ОМТ-2), ориентированный на анализ процессов обработки данных в информационных системах.
    3. Метод Джекобсона (метод OOSE), ориентированный на анализ требований к бизнес-приложениям.

    Авторы этих методов объединились с целью создания унифицированного языка моделирования сложных систем. Они сформулировали следующие требования к унифицированному языку, который был назван UML. Язык UML:

    1. Позволяет моделировать как программное обеспечение сложных систем, так и широкие классы самих систем и бизнес-приложений, с использованием объектно-ориентированных понятий и методов.
    2. Обеспечивает взаимосвязь между базовыми понятиями модели концептуального, программного и физического уровней.
    3. Понятен системным аналитикам и программистам.
    4. Поддерживается специальными инструментальными программными средствами, реализованными на различных компьютерных платформах.

    В 1996 г. была создана первая версия языка UML 0.9. После этого ведущие компьютерные фирмы Microsoft, IBM, Oracle и многие другие осознали, что язык UML имеет стратегическое значение для их бизнеса. В результате был организован консорциум UML, деятельность которого оплачивается за счет ежегодных денежных взносов фирм членов консорциума.

    Важную роль в создании языка UML сыграла его поддержка Группой по управлению объектами OMG (Object Management Groop). Группа OMG объединяет около 300 ведущих компьютерных фирм. Она выпускает стандарты в области Интернет/Веб. Язык UML приобрел статус второго стратегического направления деятельности OMG. В 1997 г. были созданы версии языка UML 1.0 и 1.1. В 1998 г была создана версия UML 1.2, а в 1999 г - версия UML 1.3. В переводной российской литературе по языку UML описывается его версия 1.3.

    В настоящее время разработаны инструментальные программы поддержки языка UML. Наиболее известной из них является программы Rational Rose 2000 фирмы Rational Software. Кроме того создан ряд средств визуального программирования, обеспечивающую прямую генерацию кода программ из UML моделей. Эти средства интегрированы с наиболее распространенными языками программирования Java, C++ и многими другими.

    Группа OMG продолжает работы по созданию новых версий языка UML.

    Hosted by uCoz