41
Компьютерная и программная инженерия Технология разработки программного обеспечения Тема лекции Понятия технологии разработки объектно- ориентированных информационных систем на основе UML 2

Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Embed Size (px)

Citation preview

Page 1: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Компьютерная и программная инженерия

Технология разработки программного обеспечения

Тема лекцииПонятия технологии разработки объектно-ориентированных

информационных систем на основе UML 2

Page 2: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

ПЛАН

1. Причины неудачных проектов2. Отсутствие моделей при разработке ПО3. Лучшие практики разработки ПО4. Что такое визуальное моделирование?5. Основные понятия визуального моделирования6. Классификация проектов по сложности7. Основные понятия ООП

Page 3: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Причины неудачных проектов

Недостаточно адекватное управление требованиямиНесогласованность требований, проектных решений и реализацииЖесткая архитектура ПОНарастающая сложность ПОНеточная и противоречивая коммуникацияНедостаточное тестированиеСубъективное отношение к приоритетам отдельных артефактов проектаИгнорирование рисков и отсутствие процедур управления рискамиБесконтрольное внесение изменений в артефакты проектаНедостаточное использование CASE-средств и средств поддержки отдельных этапов проекта

Page 4: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Отсутствие моделей при разработке ПОНе позволяет справиться с растущей сложностью разрабатываемых программных системНе позволяет эффективно управлять разработкой в условиях изменяющихся требованийСоздает барьеры непонимания: аналитик не понимает руководителя проекта, разработчик – аналитика, тестировщик – разработчика и пр.Не позволяет обеспечить контроль изменений в процессе выполнения работНе позволяет избежать субъективности в оценке качества разрабатываемых продуктовМодель (model) — абстракция физической системы, рассматриваемая с определенной точки зрения и представленная на некотором языке или в графической форме

Page 5: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Лучшие практики разработки ПО

Использование визуальных моделей при разработке ПОИтеративная разработка ПОУправление требованиямиУправление изменениями и конфигурацией артефактов ПОИспользование компонентных архитектурНепрерывное тестирование и верификация качества ПОИспользование паттернов проектированияИспользование CASE-средств и RAD-средствУправление рисками:

Технологическими рискамиСвязанными с требованиямиСвязанными с квалификацией персонала проектаПолитическими рисками

Page 6: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Что такое визуальное моделирование?

Визуальное моделирование есть моделирование с использованием некоторой графической нотации

На входе – Неструктурированнаяинформация

На выходе – Модели ПО ибизнес-процессов

Информация от потребителей

Прибыль

ФинансыПерсоналЭнергия

Продукция Реклама Заказы на сырье Отходы производства Демонстрация способности обеспечения качества

ЗаконодательствоСтандарты, технические условия и т.п. Технологии

Материалы и комплектующие

Page 7: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Основные понятия визуального моделирования

Нотация – система условных обозначений для графического представления визуальных моделейСемантика – система правил и соглашений, определяющая смысл и интерпретацию конструкций некоторого языкаМетодология – совокупность принципов моделирования и подходов к логической организации методов и средств разработки моделейCASE (Computer Aided Software Engineering) – методология разработка программного обеспечения, основанная на комплексном использовании компьютеров не только для написания исходного кода, но и для анализа и моделирования соответствующей предметной областиCASE-средства (CASE-tools) – программное обеспечение, которое предназначено для разработки визуальных моделей программных систем и генерации исходного кода или схемы базы данных на некотором языке

Page 8: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

CASE-средства

1-е поколение: генерация схем БД (Oracle Designer 2000, ERwin)2-е поколение: генерация программного кода (Borland Together Designer 2005)3-е поколение: прямая и обратная кодогенерация (IBM Rational Rose 2002/2003, Borland Together Developer 2005, Sparx Enterprise Architect)4-е поколение: синхронизация программного кода и моделей (IBM Rational Software Architect 6/7, Borland Together Architect 2006, Borland Development Studio 2006)

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

Oracle Designer

BPwin,ERwin

Rational Rose

Page 9: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Визуальные модели представляют архитектуру программных систем

Визуальная модель системы не должназависеть от языка ее реализации!

Интерфейсыпользователя

(Delphi,Visual Basic,

Java)

Бизнес-логика(C++, Java)

Базы данных(SQL)

Page 10: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Визуальные модели – основа многократного использования кода

Моделирование охватывает существенные (основные, релевантные) аспекты структуры и поведения системы

ERP Системы

Многократно используемые

компоненты(Reusable

Components)

Интернет порталы Базы данных

Page 11: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

ООП – основные понятия

Объектно-ориентированное программирование (Object-Oriented Programming) — совокупность принципов, технологии и инструментальных средств для создания программных систем, в основу которых закладывается архитектура взаимодействия объектовАбстракция — характеристика сущности, которая отличает ее от других сущностейНаследование — принцип, в соответствии с которым знание о более общей категории разрешается применять для более частной категорииИнкапсуляция — сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователейПолиморфизм — свойство элементов модели с одинаковыми именами иметь различное поведение

Page 12: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

ООАП – основные понятия

Объектно-ориентированный анализ и проектирование (Object-Oriented Analysis/Design) — технология разработки программных систем, в основу которых положена объектно-ориентированная методология представления предметной области в виде объектов, являющихся экземплярами соответствующих классовПредметная область (domain) – часть реального мира, которая имеет существенное значение или непосредственное отношение к процессу функционирования программыДиаграмма (diagram) — графическое представление совокупности элементов модели в форме связного графа, вершинам и ребрам (дугам) которого приписывается определенная семантикаНотация канонических диаграмм является основным средством разработки моделей на языке UML

Page 13: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Классификация проектов по сложностиВысокая техническая сложность• Встроенные системы реального времени• Распределенные высоконадежные системы• Высокопроизводительные системы

Низкая техническая сложность - Использование макроязыков или 4GL - Реинжиниринг приложений баз данных - Разработка учетно-расчетных приложений

Высокаясложностьуправления- Большой масштаб- Контрактные заказы- Много пользователей- «Проекты»

Низкаясложностьуправления - Малый масштаб - Неформальные заказы - Один пользователь - “Продукты”

Использование языка UML не обязательно

Использование языка UML

обязательно!

Page 14: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Использование языка UML

обязательно!

Классификация проектов по типу приложений

Проекты для использования внутрикомпании (IIT-проекты)

Монопользовательские

приложения

СистемыВидео

наблюдения

Текстовыередакторы

СистемыАуторизации

доступа

Корпора-тивные

порталы

КастомизацияERP-системБухгалтерские

Системы

КорпоративныеБД

ТиповыеИнтернет-магазины

Системыконтроллинга

Локальные БД

Проекты в интересахвнешнего заказчика,аутсорсинг(EIT-проекты)

Проекты разработки «коробочных»Приложений(ISV-проекты)

Web-приложения

ВстроенныеСистемы

мониторинга

ERP & MESСистемы

Графическиередакторы

Разработкакоммерческих

ERP-систем

Внедрениемодулей

ERP-систем

БанковскиеИнформационные

системы

Page 15: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Использование языка UML в проектах по отраслевой принадлежности

Банки и инвестиционные фондыСвязь и телекоммуникацииНефтегазовая промышленностьСтраховые фондыЭнергетикаМашиностроениеТорговляФармацевтическая промышленностьОборонная промышленностьФедеральная таможенная службаУчебные заведения

Средний проект по разработке ПО:5-10 человек10-15 месяцев10-15 внешних интерфейсовНезначительная неопределенность и риски

Page 16: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Графические нотации моделирования, используемые в России

UML (Unified Modeling Language) – отраслевой стандарт OMG, поддерживают более 50 CASE-средств, основной инструмент IBM Rational Rose/ IBM RSA (IBM Rational Software)IDEF – семейство нотаций, стандарт МО США, рекомендован Правительством РФ для применения в государственных учреждениях, основной инструмент AllFusion Pricess Modeller (Computer Associations)ARIS (ARchitecture of Integrated Information Systems) – методология и нотация для профессионального моделирования бизнес-процессов, инструмент ARIS Toolset (IDS Scheer AG)

Page 17: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Пример визуальной модели в нотации IDEF

IDEF не объектно-ориентированная нотация!

Стрелки - объекты

Page 18: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Взаимосвязь нотации UML, методологии и инструментальных средств

+ дополнительная интеграция с линейкой продуктов IBM Rational

Нотация – UML 1.х

Методология - RUP Средство – IBM Rational Rose

Best Practices

Page 19: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Взаимосвязь нотации UML, методологии и инструментальных средств

МетодологияARIS Houseof BusinessEngineering (HOBE)

СредствоARIS Toolset

МетодологияMSF (Microsoft Solutions Framework)

СредствоMS Visual Studio/.NET

Нотация – UML 1.х Нотация – UML 1.хварианты

Page 20: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Взаимосвязь нотации UML, методологии и инструментальных средств

Нотация – UML 2.х

МетодологияALM (ApplicationLifecycleManagement)

СредствоBorland Together Architect 2006

Нотация - UML 2.х

МетодологияRUP

СредствоIBM Rational Software Architect

варианты

Page 21: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Определение языка UML

Unified Modeling Language — унифицированный язык моделирования для описания, визуализации и документирования объектно-ориентированных систем в процессе их анализа и проектирования

Язык UML предоставляет стандартный способ написания проектной документации на системы, включая концептуальные аспекты, такие как бизнес процессы и функции системы, а также конкретные аспекты, такие как выражения языков программирования, схемы баз данных и повторно используемые компоненты ПО

Язык UML не является методологиейЯзык UML не является процессомЯзык UML не является языком программированияЯзык UML не является формальным языком

UML = нотация + семантика !

Page 22: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Назначение языка UML

Предоставить разработчикам легко воспринимаемый и выразительный язык визуального моделирования, специально предназначенный для разработки и документирования моделей сложных систем различного целевого назначенияСнабдить исходные понятия языка UML возможностью расширения и специализации для более точного представления моделей систем в конкретной предметной областиГрафическое представление моделей в нотации UML не должно зависеть от конкретных языков программирования и инструментальных средств проектированияОписание языка UML должно включать в себя семантический базис для понимания общих особенностей ООАПСпособствовать распространению объектных технологий и поощрять развитие рынка программных инструментальных средствИнтегрировать в себя новейшие и наилучшие достижения практики ООАП

Page 23: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Особенности изображения графического

элементов диаграмм языка UML

Page 24: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Особенности изображения диаграмм в нотации UML

Графические узлы на плоскости, которые изображаются с помощью геометрических фигур и могут иметь различную высоту и ширину с целью размещения внутри этих фигур других конструкций языка UMLПути, которые представляют собой последовательности из отрезков линий, соединяющих отдельные графические узлыЗначки или пиктограммы. Значок представляет собой графическую фигуру фиксированного размера и формы, которая не может увеличивать свои размеры, чтобы разместить внутри себя дополнительные символы.Строки текста. Служат для представления различных видов информации в некоторой грамматической форме.

Page 25: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Общие рекомендации по изображению диаграмм в нотации языка UML

Каждая диаграмма должна служить законченным представлением соответствующего фрагмента моделируемой предметной областиВсе сущности на диаграмме модели должны быть одного концептуального уровня Вся информация о сущностях должна быть явно представлена на диаграммахДиаграммы не должны содержать противоречивой информацииДиаграммы не следует перегружать текстовой информацией Каждая диаграмма должна быть само достаточной для правильной интерпретации всех ее элементов и понимания семантики всех используемых графических символов

Page 26: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Противоречивость и адекватность моделей в нотации UML

Модель, соответствующая правилам нотации или семантики языка UML называется непротиворечивой (well-formed model)Модель, нарушающая правила нотации или семантики языка UML называется противоречивой (ill-formed model)Здесь могут быть использованы формальные критерии – соответствие спецификации языка UML!Модель, достаточно полно и правильно отражающая предметную область или решаемую проблему называется адекватнойМодель, не достаточно полно или неправильно отражающая предметную область или решаемую проблему называется не адекватнойЗдесь могут быть использованы только неформальные критерии – субъективное мнение экспертов!Моя модель – это не ваша модель, а ваша модель – не моя…

Page 27: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Классификаторы – основные

элементы языка UML

Прямоугольник – основной символ для графического изображения классификатора

Page 28: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Классификация моделей в языке UML

Структурные модели (structured models) – модели, предназначенные для описания статической структуры сущностей или элементов некоторой системы, включая их классы, интерфейсы, атрибуты и отношения.Модели поведения (behavioral models) – модели, предназначенные для описания процесса функционирования элементов системы, включая их методы и взаимодействие между ними, а также процесс изменения состояний отдельных элементов и системы в целом.

Page 29: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Канонические диаграммы языка UML 2.хДиаграмма

Диаграммаструктуры

Диаграммаповедения

Диаграммаклассов

Диаграммадеятельности

Диаграммавариантов

использования

Диаграммаконечногоавтомата

Диаграммаобъектов

Диаграммакомпонентов

Диаграммакомпозитной

структуры

Диаграммаразвертывания

Диаграммапакетов

Диаграммавзаимодействия

Временнаядиаграмма

Диаграммакоммуникации

Диаграммаобзора

взаимодействия

Диаграммапоследовательности

Page 30: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Взаимосвязь представлений сложной системы

Физическое представлениекомпонентов

Логическое представлениеархитектуры

системы

Логическоепредставление

процессафункционирования

Концептуальноепредставление

поведения системы

М ОДЕЛЬ СЛОЖНОЙСИСТЕМ Ы

Статическаямодельсложнойсистемы

Динами-ческаямодельсложнойсистемы

Общая модельсложной системы

Детальная модельсложной системы

Архитектор системы,программист

Системный аналитик,системный инженер

Конечный пользователь,системный аналитик

Системный аналитик,архитектор системы

Page 31: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Рекомендации по изображению диаграмм в нотации языка UML

Количество диаграмм различных типов для модели конкретного приложения не является строго фиксированнымЛюбая из моделей системы должна содержать только те элементы, которые определены в соответствующей версии языка UMLКаждая диаграмма в нотации языка UML 2.х имеет область содержания для изображения графических узлов и путей между ними, которые представляют собой собственно элементы модели в нотации UML 2.хФрейм в нотации UML 2.х используется в тех случаях, когда отдельные элементы диаграммы имеют графическую границу с другими элементами диаграммы

Page 32: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Изображение диаграмм языка UML 2 в виде фрейма

<Область содержания>

<Заголовок>

Заголовок диаграммы является строкой текста, записанной в прямоугольнике с обрезанным углом в верхнем левом углу фрейма и имеющей следующий синтаксис:

[<тип диаграммы>]<имя>[<параметры>]

Page 33: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Теги заголовков и их сокращения для диаграмм UML 2.х

activity <act> (для фреймов диаграммы деятельности)class (для фреймов диаграммы классов)component <cmp> (для фреймов диаграммы компонентов)interaction <sd> (для фреймов диаграмм взаимодействия)package <pkg>(для фреймов диаграммы пакетов)state machine <stm> (для фреймов диаграммы конечного

автомата)use case <uc> (для фреймов диаграммы вариантов

использования)

Page 34: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Диаграмма вариантов использования(use case diagram)

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

О ткры ть счетКл иент Б анка

Кассир

П о по лнить счет

С нять д ень ги со счета

<<extend>>

актерыв арианты испо л ьзо в ания

зав исим о сть с тексто в ы мстерео типо массо ц иац ии

О перац ио нист Закры ть счет

<<extend>>

Page 35: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Назначение диаграммы вариантов использования

Определить общие границы функциональности проектируемой системы в контексте моделируемой предметной области.Специфицировать требования к функциональному поведению проектируемой системы в форме вариантов использования.Разработать исходную концептуальную модель системы для ее последующей детализации в форме логических и физических моделей.Подготовить исходную документацию для взаимодействия разработчиков системы с ее заказчиками и пользователями

Page 36: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Основные обозначения на диаграмме вариантов использования

Page 37: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Вариант использования (use case)

– представляет собой общую спецификацию совокупности выполняемых системой действий с целью предоставления некоторого наблюдаемого результата, который имеет значение для одного или нескольких актеровОтвечает на вопрос «Что должна выполнять система?», не отвечая на вопрос «Как она должна выполнять это?»Имена – отглагольное существительное или глагол в неопределенной форме

Проверка состояниятекущего счета клиента

<<use case>>Формирование отчета по

выполненным заказам

Формирование отчета повыполненным заказам

Page 38: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

Актер (actor)

Удаленныйпользователь

<<actor>>Посетитель

Интернет-магазинаКлиент банка

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

Page 39: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

39

ГЛОССАРИЙ:ГЛОССАРИЙ:

1. 1. ИСУТП - служат для автоматизации функций производственного персонала по контролю и управлению производственными операциями. 2. CASE-средства - создание моделей, их контроль, преобразование и предоставление в коллективное пользование осуществляется с использованием специальных программных инструментов -3. САПР- предназначены для автоматизации функций инженеров-проектировщиков, конструкторов, архитекторов, дизайнеров при создании новой техники или технологии.

М И Н И С Т Е Р С Т В О О Б Р А З О В А Н И Я И Н А У К И Р Е С П У Б Л И К И К А З А Х С Т А НКАЗАХСКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ имени К.И. САТПАЕВА

ИНСТИТУТ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

Page 40: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

40

Вопросы для самоподготовки:Вопросы для самоподготовки:

1. Диаграмма прецедентов1. Диаграмма прецедентов? 2. 2. Основные элементы языка UML?3. Противоречивость и адекватность моделей в нотации UML?  

М И Н И С Т Е Р С Т В О О Б Р А З О В А Н И Я И Н А У К И Р Е С П У Б Л И К И К А З А Х С Т А НКАЗАХСКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ имени К.И. САТПАЕВА

ИНСТИТУТ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

Page 41: Понятия технологии разработки объектно-ориентированных информационных систем на основе UML 2

41

Литература и ссылки на Литература и ссылки на интернет ресурсы:интернет ресурсы:1. 1. Леффингуал, Дин, Ундри, Дон. Принципы работы с требованиями к ПО. Унифицированный подход. М., 2002г.2. 2. У. Боггс, М. Боггс. UML, Rational Rose. М., ЛОРИ, 2000 г. Сэм Канер и др. Тестирования программного обеспечения. Киев, 2000 г.

М И Н И С Т Е Р С Т В О О Б Р А З О В А Н И Я И Н А У К И Р Е С П У Б Л И К И К А З А Х С Т А НКАЗАХСКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ имени К.И. САТПАЕВА

ИНСТИТУТ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ