Анализ и выделение классов

advertisement
Анализ и выделение классов
Лекция № 1
Общие сведения о
дисциплине
В весенний семестр 2015-2016 учебного года:
 8 лекций;
 8 практических занятий;
 1 занятие – тест по теории.
 Формы контроля: зачет, курсовой проект
 Балльно-рейтинговая система:
 <60 баллов: не зачтено
 >=60 баллов: зачтено
Программное обеспечение
 IBM Rational Software Architect
(установлен в ПВК):
http://www.ibm.com/developerworks/downlo
ads/r/architect/
 Visual Paradigm: ссылки на странице
http://edu.susu.ru/main/course/view.php?id=1
351#section-0
Полезные ссылки
 Раздел «Объектно-ориентированные
CASE-технологии»:
http://ivanovaon.susu.ru/index.files/case.htm
 Курс «Объектно-ориентированные
CASE-технологии (2 семестр)»:
http://edu.susu.ru/main/course/view.php?id=1351
 Курс «Программная инженерия»
(Г.И. Радченко):
http://glebradchenko.ru/courses/bachelor/enginee
ring/2014/
Литература
1.
2.
3.
4.
5.
6.
7.
8.
Буч Г., Рамбо Дж., Якобсон И. Язык UML. Руководство
пользователя. М.: ДМК Пресс. 2007. 496 с.
Буч Г., Якобсон И., Рамбо Дж. UML. СПб: Питер. 2006. 736 с.
Кватрани Т., Палистрант Дж. Визуальное моделирование с
помощью IBM Rational Software Architect и UML. М.: КУДИЦПресс, 2007. 176 с.
Фаулер М. UML. Основы. -СПБ: Символ-Плюс, 2006. -192 с.
Арлоу Дж., Нейштадт А. UML 2 и Унифицированный процесс.
Практический объектно-ориентированный анализ и проектирование.
-СПБ: Символ-Плюс, 2007. - 624 с.
Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс
разработки программного обеспечения. – СПб.:Питер, 2002. – 496 с.
Ларман К. Применение UML 2.0 и шаблонов проектирования. М.:
Вильямс, 2009. 736 с.
Константайн Л., Локвуд Л. Разработка программного обеспечения. –
СПб.:Питер, 2004. – 592 с.
Буч Г., Рамбо Дж., Якобсон И. Язык UML.
Руководство пользователя. М.: ДМК Пресс. 2007.
496 с.
Книга содержит справочный материал,
дающий представление о том, как
можно использовать UML для решения
разнообразных проблем
моделирования. В книге подробно, шаг
за шагом, описывается процесс
разработки программных систем на
базе данного языка.
Буч Г., Якобсон И., Рамбо Дж. UML. СПб: Питер.
2006. 736 с.
Эта книга представляет собой полный справочник
по языку UML. Она адресована в первую очередь
разработчикам, системным архитекторам,
руководителям проектов, инженерам-системщикам,
программистам, аналитикам, заказчикам и вообще
всем, кому по роду деятельности приходится
описывать, проектировать и строить сложные
программные системы, а также разбираться в их
функционировании. В книге дается всестороннее
описание понятий и конструкций UML, включая их
семантику, нотацию и назначение. Материал
организован таким образом, чтобы книгой было
удобно пользоваться, несмотря на ее объем и
полноту содержания. Кроме того, авторы
попытались дополнительно осветить ряд моментов,
четкое толкование которых отсутствует в
стандартах, а также разъяснить основания для
принятия тех или иных решений в ходе разработки
языка UML.
Кватрани Т., Палистрант Дж. Визуальное
моделирование с помощью IBM Rational Software
Architect и UML. М.: КУДИЦ-Пресс, 2007. 176 с.
Книга посвящена инструменту
Rational Software Architect и версии
UML 2.0. На примере конкретной
системы авторы проходят весь путь
от постановки задачи до реализации
системы, знакомя читателя и с
возможностями инструмента, и с
возможностями новой версии UML.
Попутно авторы предлагают много
полезных сведений о процессе
разработки программного
обеспечения, полезных приемах
моделирования и документирования
проектных решений.
Фаулер М. UML. Основы. -СПБ: Символ-Плюс,
2006. -192 с.
Третье издание "UML. Основы" охватывает
UML 2 - версию, которая существенно
отличается от всех предыдущих. Главное
достоинство книги заключается в кратком и
сжатом изложении сути UML и
особенностей применения этого языка в
современном процессе разработки ПО. В
книге описаны все главные типы диаграмм
UML, рассказано, для чего они
предназначены и какие нотации
применяются при их создании и чтении. Это
диаграммы классов, последовательности,
объектов, пакетов, развертывания,
прецедентов, состояний, деятельности,
составных структур, компонентов, обзора
взаимодействия, коммуникационные и
временные.
Арлоу Дж., Нейштадт А. UML 2 и
Унифицированный процесс. Практический
объектно-ориентированный анализ и
проектирование. -СПБ: Символ-Плюс, 2007. - 624 с.
Книга представляет собой практическое руководство
по сложному процессу объектно-ориентированного
анализа и проектирования с помощью UML 2. В нем
показано место ОО анализа и проектирования в цикле
разработки программного обеспечения, как его
определяет Унифицированный процесс (UP).
Книга содержит массу практических, мощных и
удобных методик ОО анализа и проектирования,
готовых к непосредственному использованию. Вы
изучите синтаксис и семантику UML 2 и
соответствующие аспекты UP. Книга дает точный и
лаконичный обзор UML и UP с точки зрения ОО
аналитика и проектировщика.
Каждая глава начинается с плана в виде диаграммы и
заканчивается кратким обзором, идеальным для
контроля усвоения материала. Наиболее важная
информация оформлена в виде примечаний в рамке.
Обновленное издание содержит больше реальных
примеров и новый раздел, посвященный объектному
языку ограничений (OCL).
Якобсон А., Буч Г., Рамбо Дж. Унифицированный
процесс разработки программного обеспечения.
СПб.: Питер. 2002. 496 с.
Книга описывает унифицированный
процесс создания сложных программных
систем, включающий в себя как
использование средств
унифицированного языка моделирования
UML - стандартного способа
визуализации, конструирования,
документирования и пересылки
артефактов программных систем, - так и
все фазы подготовки и управления этим
процессом.
Ларман К. Применение UML 2.0 и шаблонов
проектирования. М.: Вильямс, 2009. 736 с.
Книга помогает разобраться с подходами
эволюционного определения требований и
прецедентов, моделированием предметной
области, проектированием на основе
обязанностей, а также наиболее важными
принципами объектно-ориентированного
проектирования и многоуровневой
архитектурой. С помощью этой книги вы
сможете познакомиться также с шаблонами
проектирования GoF и GRASP,
итеративными методами, гибким подходом
к использованию унифицированного
процесса и многими другими темами.
Этапы развития UML
1975-1988: языки объектноориентированного программирования
при постоянно возрастающей
сложности приложений
1989-1994: увеличение числа методов
ООП (от менее 10 до более 50), «войны
методов». Буч (метод Буча), Якобсон
(OOSE), Рамбо (OMT), языки Fusion,
Шлаера-Меллора и Коада-Уордана.
История появления UML
1995-2003: Г. Буч (Rational Software
Corporation), И. Якобсон (Objectory) и
Д. Рабмо (General Electric) объединили
усилия и начала адаптировать свои
идеи в общую концепцию. Появился
UML 0.8…1
2004-…: UML 2.0.
Принципы объектно-ориентированного
моделирования программных систем
 Цели моделирования:
 Модели помогают нам визуализировать систему
такой, как она есть, или такой, какой мы хотим,
чтобы она была
 Модели позволяют нам уточнить структуру или
поведение системы
 Модели дают нам шаблон, которым мы
руководствуемся при построении системы
 Модели документируют решения, которые мы
принимаем
Принципы объектно-ориентированного
моделирования программных систем
 Базовые принципы моделирования:
 Выбор того, какие модели разрабатывать, оказывает
глубокое влияние на то, как проблема будет решена, и
на форму решения
 Каждая модель может быть выражена на различных
уровнях детализации.
 Лучшие модели связаны с реальностью.
 Ни одна модель не является достаточной. В решению
любой нетривиальной системы лучше всего подходить
через небольшой набор почти не зависящих друг от
друга моделей.
Что такое UML?
 Unified Modeling Language (UML) – это стандартный язык
схематичного описания программных систем. UML может
быть использован для визуализации, детализации, создания
и документирования артефактов программной системы.
 UML – это только язык, поэтому это только одна из частей
метода разработки ПО.
 Три главных элемента модели:
 Базовые строительные блоки UML
 Правила, диктующие то, как данные строительные
блоки могут быть собраны вместе
 Некоторые общие механизмы, которые применимы для
всех типов моделей
Строительные блоки UML
Сущности
Отношения
Диаграммы
Сущности
 Сущности – это элементы всех моделей.
 Все UML-сущности делятся на три типа:
 Структурные сущности – существительные UML-моделей, такие
как: «класс», «интерфейс», «кооперация», «прецедент»,
«компонент», «модуль» и т.д.
 Поведенческие сущности – действия UML-моделей, такие как:
«взаимодействие», «активность», «группировка семантически
сходных элементов в пакет» и т.д.
 Общие сущности – примечания, которые могут быть добавлены к
модели для того, чтобы записать конкретную информацию (очень
похожи на стикеры)
Структурные сущности
 Структурные сущности – это
«существительные» UML-моделей. Они
преимущественно представляют собой
статические части модели, отражающие ее
концептуальные или физические элементы.
 Класс
 Интерфейс
 Кооперация
 Вариант использования (прецедент)
Виды отношений между
сущностями в UML
Основные, наиболее часто используемые:
Зависимость
Ассоциация
Обобщение (уточнение)
Реализация
Агрегация
Композиция
Включение
Виды отношений между
сущностями в UML
Вид отношения
UML синтаксис
Исходный элемент –
Целевой элемент
Семантика
Зависимость
Исходный элемент зависит от
целевого элемента. Изменения в
целевом элементе могут повлиять
на исходный элемент
Ассоциация
Описание набора связей между
элементами
Агрегация
Целевой элемент – это часть
исходного элемента (компонент,
логическая часть)
Композиция
Строгая форма агрегации: целевой
элемент – физическая часть
исходного элемента
Виды отношений между
сущностями в UML
Вид отношения
UML синтаксис
Исходный элемент –
Целевой элемент
Семантика
Включение
Исходный элемент
содержит целевой элемент
Обобщение (уточнение)
Исходный элемент – это
специализация более
широкого целевого
элемента и может заменять
его в некоторых случаях
Реализация
Исходный элемент
гарантированно исполняет
функцию целевого
элемента
Diagrams in the UML
 Диаграмма – это графическое представление
набора элементов, наиболее часто
выражающееся в форме связанного графа,
состоящего из вершин (сущностей) и дуг
(отношений).
 Диаграмма – это не модель!
 Сущности или отношения могут удалены из
одной или более диаграмма, но они
продолжают существовать в модели.
Диаграммы в UML
 Диаграмма классов
 Диаграмма объектов
 Диаграмма прецедентов (вариантов
использования)
 Диаграмма последовательности
 Диаграмма взаимодействия
 Диаграмма состояний
 Диаграмма деятельности
 Диаграмма компонентов
 Диаграмма размещения
Диаграмма классов
 Диаграмма классов показывает набор
классов, интерфейсов, взаимодействий и
отношений между ними.
 Эти диаграммы – наиболее общие
диаграммы, использующиеся при объектноориентированном моделировании систем.
Диаграмма объектов
 Диаграмма объектов показывает набор
объектов и их отношений. Диаграмма
объектов представляет статические
экземпляры сущностей, отраженных в
диаграмме классов. These diagrams address
the static process view of a system, but from the
perspective of real or prototypical cases.
Диаграмма прецедентов
(вариантов использования)
 Диаграмма прецедентов показывает набор
вариантов использования системы и актеров
(специальный вид классов), а также
отношения между ними.
 Эти диаграммы особенно важны для
организации и моделирования поведения
системы.
Диаграммы последовательности
и взаимодействия
 Как диаграмма последовательности, так и диаграмма
взаимодействия – виды диаграмм, показывающие взаимосвязь
компонентов системы. Они показывают взаимодействие между
набором объектов и из отношениями, включая сообщения,
которые могут передаваться между ними. Диаграммы
взаимосвязей адресуются к динамическому представлению
системы.
 Диаграмма последовательности – это диаграмма взаимосвязей,
которая подчеркивает временной порядок появления сообщений.
Диаграмма взаимодействия – это диаграмма взаимосвязей,
которая подчеркивает структурную организацию объектов,
которые отправляют и получают сообщения. Диаграммы
последовательности и взаимодействия изоморфны, т.е. можно
преобразовать одну в другую.
Диаграммы состояния
 Диаграмма состояния показывает автомат
состояний, включающий в себя состояния,
переходы, события и действия. Диаграмма
состояния адресуется к динамическому
представлению системы.
 Они особенно важны при моделировании
поведения интерфейсов, классов или
взаимодействий и делают упор на событийноупорядоченное поведение объекта, что
особенно полезно при моделировании систем
реагирования.
Диаграмма деятельности
 Диаграмма деятельности – это специальный
вид диаграммы состояний, который
показывает поток от действия к действию
внутри системы. Диаграмма деятельности
адресуется к динамическому представлению
системы.
 Они особенно важны при моделировании
функций системы и подчеркивают поток
исполнения и контроля объектов.
Диаграмма компонентов
 Диаграмма компонентов показывает
структурную организацию и зависимости
между компонентами. Диаграмма
компонентов адресуется к статической
реализации системы.
 Они связаны с диаграммой классов в том,
что компонент обычно отражает один или
несколько классов, интерфейсов или
взаимодействий.
Диаграмма размещения
 Диаграмма размещения показывает
конфигурацию узлов по время исполнения и
компоненты, размещенные на них.
Диаграмма размещения адресуется к
архитектурному представлению
размещения.
 Они соотносятся с диаграммой компонентов
в том, что узел обычно включает в себя один
или несколько компонентов.
Основные понятия
Абстрактный тип данных
Обязанности
Метод Аббота
Метод именных групп
Метод карточек класс-контрактколлеги (CRC)
Метод шаблонных классов
Контрольные списки
Download