Слайд 1МФ ПГУ им.М.В.Ломоносова
Высокоуровневые методы информатики и программирования
Лекция 2
UML
– язык моделирования и документирования сложных систем
Слайд 2МФ ПГУ им.М.В.Ломоносова
Содержание
OOP, OOD, OOA
Эволюция технологий
История UML
Роль UML
Структура языка UML
Слайд 3МФ ПГУ им.М.В.Ломоносова
OOP, OOD, OOA
По определению одного из создателей языка
UML (Unified Modelling Language) Гради Буча:
Объектно-ориентированное программирование (ООP) -
это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
Объектно-ориентированное проектирование (ООD) - это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.
Слайд 4МФ ПГУ им.М.В.Ломоносова
OOP, OOD, OOA
Объектно-ориентированный анализ (ООА) - это методология,
при использовании которой требования к проектируемой системе воспринимаются с точки
зрения классов и объектов, выявленных в предметной области.
Как соотносятся ООА, ООD и ООP? На результатах ООА формируются модели, на которых основывается ООD. В свою очередь OOD создает фундамент для окончательной реализации компьютерной системы с использованием методологии ООP.
Слайд 5МФ ПГУ им.М.В.Ломоносова
Развитие технологий
Произошедшие существенные изменения в течение последнего десятилетия
в области технологий программирования обусловлены появлением:
Объектно-ориентированных языков программирования (С++,
Java и др.)
Метода объектно-ориентированного программирования
Метода объектно-ориентированного анализа и проектирования
Языка UML, позволяющего моделировать и документировать предметные области ИС и коды объектно-ориентированных программ.
Инструментальных компьютерных программ, помогающих создавать UML диаграммы. Одной из таких инструментальных программ является пакет Rational Rose 2000 фирмы Rational Software Corporation.
Слайд 6МФ ПГУ им.М.В.Ломоносова
Эволюция технологий
Посмотрим на эволюцию технологий с позиций повышения
производительности труда программистов и развития языков программирования.
По мере совершенствования
технологий программирования постоянно повышалась производительность труда программистов. На заре программирования программы составлялись на языках машинных кодов и производительность труда программистов была крайне низкой.
Слайд 7МФ ПГУ им.М.В.Ломоносова
Эволюция технологий
Затем в 1950-1970 гг. появились алгоритмические языки
программирования (ALGOL-58, FORNRAN I и др.), процедурные языки, функциональные языки
(ПРОЛОГ) и языки др.видов. Производительность труда программистов в этот период значительно увеличилась, но, по современным меркам, оставалась невысокой. Чтобы убедиться в этом достаточно вспомнить, что в те далекие времена результаты труда пр-ов оценивались и оплачивались по числу написанных ими строк или к-д.
Слайд 8МФ ПГУ им.М.В.Ломоносова
Эволюция технологий
Сегодня производительность труда программистов неизмеримо возросла. Ныне,
как вы знаете, даже новичок программист с помощью современных программных
инструментов (например используя, MS Visual C++ или Interprise/Borland Delphi) нажатием нескольких клавиш диалогового меню может создать сотни строк программного кода.
Вегнер в статье, посвященной языку АДА, сгруппировал некоторые из наиболее известных языков программирования высокого уровня в четыре поколения в зависимости от их назначений:
Слайд 9МФ ПГУ им.М.В.Ломоносова
Эволюция технологий
Первое поколение (1954-1958)
FORTRAN I Математические формулы
ALGOL-58
Flowmetic
Второе поколение (1959-1961)
FORTRAN II Подпрограммы, раздельная компиляция
ALGOL-60
Блочная структура, типы данных
COBOL Описание данных, работа с файлами
Lisp Обработка списков, указатели, сборка мусора
Слайд 10МФ ПГУ им.М.В.Ломоносова
Эволюция технологий
Третье поколение (1962-1970)
PL/1 FORTRAN+ALGOL+COBOL
ALGOL-68 Более
строгий приемник ALGOL-60
Pascal Более простой приемник ALGOL-60
Simula Классы,
абстрактные данные
Четвертое, потерянное поколение (1970-1980)
Создано много языков (около 2000), но мало выживших (напр., Ada, Smaltalk)
ОО языки программирования можно отнести к пятому поколению.
Слайд 11МФ ПГУ им.М.В.Ломоносова
История методов OOA и OOD
Методы объектно-ориентированного анализа и
проектирования (ООА и ООD), основанные на использовании графических языков моделирования,
появились сравнительно недавно, но они имеют долгую предысторию.
Начало разработкам графических языков моделирования сложных систем положил Дуглас Росс, который в середине 60-х годов создал оригинальный язык визуального моделирования систем.
Слайд 12МФ ПГУ им.М.В.Ломоносова
История методов OOA и OOD
Графический язык Росса послужил
стимулом для создания в США целого семейства методов моделирования и
проектирования сложных систем, обозначаемых аббревиатурой IDEF.
Все методы IDEF основаны на использовании визуальных языков. Наиболее известными из многочисленного семейства методов IDEF являются методы IDEF0, IDEF1X и IDEF3. Документацию этих и ряда других методов IDEF вы можете найти на сайте www.idef.org.
Слайд 13МФ ПГУ им.М.В.Ломоносова
История методов OOA и OOD
Метод IDEF0 предназначен для
моделирования функций сложных ИС и их процессов. Он поддерживается инструментальными
программами BP-Win (бизнес процессы и окна).
Метод IDEF1X используется для моделирования реляционных БД. Он поддерживается программами ER-Win (сущности-взаимосвязи и окна).
Метод IDEF3 предназначен для детального моделирования бизнес процессов.
Слайд 14МФ ПГУ им.М.В.Ломоносова
История методов OOA и OOD
В США методы IDEF0
и IDEF1X оформлены и утверждены как федеральные стандарты обработки информации
(FIPS).
Диаграммы IDEF0 обладают рядом недостатков:
они не имеют математической основы;
отсутствуют визуальные средства для объектно-ориентированного представления сложных систем.
Метод IDEF0 в сочетании с другими методами моделирования сложных систем послужил основой для создания методов объектно-ориентированного моделирования систем и языка UML.
Слайд 15МФ ПГУ им.М.В.Ломоносова
История языка UML
К середине 90-х годов число методов
моделирования сложных систем возросло до более чем 50-ти. В этой
связи возникла проблема их обобщения и унификации. Частично она была решена в результате создания языка UML.
Слайд 16МФ ПГУ им.М.В.Ломоносова
История языка UML
По определению Гради Буча унифицированный язык
моделирования (Unified Modeling Language, UML) является графическим языком для визуального
представления, составления спецификаций, проектирования и документирования систем, в которых большая роль принадлежит программному обеспечению.
Мы будем называть такие системы автоматизированными информационными системами (АИС) и полагать, что в работе АИС участвуют люди. С помощью языка UML можно разработать общесистемную документацию АИС, документацию ее программного обеспечения и создать многократно используемые (т.е. типовые) компоненты программного обеспечения.
Слайд 17МФ ПГУ им.М.В.Ломоносова
История языка UML
Решающую роль в создании языка UML
сыграли Гради Буч, Джеймс Рамбо и Айвар Джекобсон и созданные
ими следующие методы моделирования различных сторон сложных систем:
Метод Буча (Booch'93), ориентированный, в первую очередь, на моделирование программного обеспечения сложных систем.
Метод Рамбо (ОМТ-2), ориентированный на анализ процессов обработки данных в ИС.
Метод Джекобсона (метод OOSE), ориентированный на анализ требований к бизнес-приложениям.
Слайд 18МФ ПГУ им.М.В.Ломоносова
История языка UML
Авторы этих методов объединились с целью
создания унифицированного языка моделирования сложных систем. Они сформулировали следующие требования
к унифицированному языку, который был назван UML.
Слайд 19МФ ПГУ им.М.В.Ломоносова
История языка UML
Язык UML:
Позволяет моделировать как программное
обеспечение сложных систем, так и широкие классы самих систем и
бизнес-приложений, с использованием объектно-ориентированных понятий и методов.
Обеспечивает взаимосвязь между базовыми понятиями модели концептуального, программного и физического уровней.
Понятен системным аналитикам и программистам.
Поддерживается специальными инструментальными программными средствами, реализованными на различных компьютерных платформах.
Слайд 20МФ ПГУ им.М.В.Ломоносова
История языка UML
В 1996 г. была создана первая
версия языка UML 0.9. После этого ведущие компьютерные фирмы Microsoft,
IBM, Oracle и многие другие осознали, что язык UML имеет стратегическое значение для их бизнеса. В результате был организован консорциум UML, деятельность которого оплачивается за счет ежегодных денежных взносов фирм членов консорциума.
Слайд 21МФ ПГУ им.М.В.Ломоносова
История языка 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.
Слайд 22МФ ПГУ им.М.В.Ломоносова
История языка UML
В настоящее время разработаны инструментальные программы
поддержки языка UML.
Наиболее известной из них является программа
Rational
Rose 2000 фирмы Rational Software.
Кроме того создан ряд средств визуального программирования, обеспечивающую прямую генерацию кода программ из UML моделей. Эти средства интегрированы с наиболее распространенными языками программирования Java, C++ и многими другими.
Группа OMG продолжает работы по созданию новых версий языка UML.
Слайд 23МФ ПГУ им.М.В.Ломоносова
Роль UML
Ситуация до создания UML
Слайд 24МФ ПГУ им.М.В.Ломоносова
Роль UML
Слайд 25МФ ПГУ им.М.В.Ломоносова
Роль UML
Язык UML помог в решении болезненной для
компьютерных фирм проблемы увольнения программистов с работы. Действительно, если программист
уволится, то другой программист, пришедший ему на смену, чтобы войти в курс дела должен разобраться во всех тонкостях исходного кода программы. Практика показывает, что если программа сложная, то сделать это трудно, а иногда и невозможно. До появления языка UML увольнение программиста могло повлечь за собой потерю его программ.
Слайд 26МФ ПГУ им.М.В.Ломоносова
Роль UML
Сегодня, если программы документированы на языке UML,
то после увольнения программиста другой программист, используя UML диаграммы и
спецификации, может понять исходный код программы и заменить уволившегося.
Помимо решения проблемы увольнения программистов, документирование исходных кодов программ UML диаграммами и спецификациями создает единый язык общения между программистами, а также между программистами, системными аналитиками и заказчиками автоматизированной системы.
Слайд 27МФ ПГУ им.М.В.Ломоносова
Роль UML
Но самое главное, что дал UML -
это возможность широкой стандартизации языков программирования.
Известно, что в разных
языках программирования используются одинаковые операции и методы, но они имеют разные названия и символьные обозначения. Язык UML позволяет стандартизовать как сами операции и методы языков программирования так и их терминологию.
Мы рассмотрели лишь часть проблем, решаемых с помощью языка UML. Но даже из этого неполного обзора видно насколько важна роль языка UML в совершенствовании технологий программирования и методов разработки АИС.
Слайд 28МФ ПГУ им.М.В.Ломоносова
Структура языка UML
Слайд 30МФ ПГУ им.М.В.Ломоносова
Примеры пиктограмм UML
Слайд 31МФ ПГУ им.М.В.Ломоносова
Примеры пиктограмм UML
Слайд 32МФ ПГУ им.М.В.Ломоносова
Примеры пиктограмм UML
Термин "прецедент" это не очень удачный
перевод на русский язык английского выражения use case (Computer Aided
Software Engineering).
Прецедент это описание множества последовательных событий, выполняемых компьютерной системой, которые приводят к наблюдаемому актером результату. Графически прецедент изображается в виде ограниченного непрерывной линией эллипса, обычно содержащего только имя прецедента.
Слайд 33МФ ПГУ им.М.В.Ломоносова
Примеры пиктограмм UML
Актер - это кто-то (или что-то)
внешний по отношению к компьютерной системе, кто взаимодействует с ней.
Графически актер изображается в виде пиктограммы, представляющей человека, поскольку актер это человек или группа людей, использующих данные, предоставляемые компьютерной системой. Например, в системе регистрации учебных курсов, которую мы рассмотрим в следующих лекциях, актером являются студенты, записывающиеся на курсы преподавателей через АИС регистрации курсов. Для базы данных федерального бюджета, функционирующей в Минфине РФ, актерами являются чиновники, получающие информацию на рабочих местах базы данных Минфина. На UML диаграммах пиктограммы прецедента и актера обычно располагаются рядом. В совокупности они могут описывать внешнюю границу компьютерной системы.
Слайд 34МФ ПГУ им.М.В.Ломоносова
Примеры пиктограмм UML
Пиктограмма "пакет" изображает единственную в языке
UML первичную группирующую сущность. В пакет можно поместить структурные и
поведенческие сущности и даже другие пакеты. Изображается пакет в виде папки с закладкой. Существуют также вариации пакетов, например, каркасы, модели и подсистемы.
Последняя пиктограмма - "примечание". Примечание изображается в виде прямоугольника с загнутым краем. На UML диаграмме примечание присоединяется к одному или нескольким элементам диаграммы. Внутри прямоугольника-примечания помещаются комментарии или ограничения, относящиеся к элементу (или нескольким элементам) диаграммы. Комментарий может быть текстовым или графическим.
Слайд 35МФ ПГУ им.М.В.Ломоносова
Пиктограммы отношений UML
Работодатель
Слайд 36МФ ПГУ им.М.В.Ломоносова
Вопросы?