Понятия технологии разработки...

Post on 14-Feb-2017

302 views 0 download

Transcript of Понятия технологии разработки...

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

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

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

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

ПЛАН

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

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

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

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

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

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

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

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

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

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

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

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

Прибыль

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

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

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

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

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

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

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

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

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

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

(Delphi,Visual Basic,

Java)

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

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

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

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

ERP Системы

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

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

Components)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

приложения

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

наблюдения

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

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

доступа

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

порталы

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

Системы

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

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

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

Локальные БД

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

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

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

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

мониторинга

ERP & MESСистемы

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

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

ERP-систем

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

ERP-систем

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

системы

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

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

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

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

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)

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

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

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

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

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

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

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

Best Practices

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

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

СредствоARIS Toolset

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

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

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

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

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

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

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

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

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

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

варианты

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

структуры

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

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

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

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

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

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

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

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

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

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

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

системы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<Заголовок>

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

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

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

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

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

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

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

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

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

Кассир

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

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

<<extend>>

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

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

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

<<extend>>

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

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

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

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

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

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

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

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

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

Актер (actor)

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

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

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

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

39

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

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

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

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

40

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

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

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

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

41

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

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

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