SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
Проектирование с
использованием UML




            Владислав Иофе
            28 апреля 2011 г.
2 из 48


                    Что обещано?
Мы расскажем о том, что такое UML: для чего он задумывался, и для
чего используется.

Вместе с вами мы рассмотрим:
 наиболее употребимые виды диаграмм с примерами
 инструменты работы с UML
 UML-анекдот
и ответим на вопросы:
 почему UML не достаточно
 блок-схема – это UML?

После чего вы попрактикуетесь в проектировании небольшой
информационной системы с помощью UML.
3 из 48


             Что такое UML




Объектно-ориентированное
     проектирование        Графическая
                             нотация
Объектно-ориентированное
   программирование
4 из 48


                       История
 1988-92 – основные работы по языкам графического
  моделирования, десятки языков
 1994 –      и         новый язык объектно-
                        ориентированного
                        моделирования

 1995 – Unified Method 0.8
 1995 –                      “Three Amigos”


 1996 – разработка стандарта переходит к
5 из 48


                  История
 1997 – UML 1.0
 2001 – UML 1.4.2, сейчас это международный
  стандарт ISO
 2005 – UML 2.0
 2010 – UML 2.3, пока это последняя версия
6 из 48


       Способы использования UML

     Практика
   использования                   Эскизное                Избирательность
  + Мартин Фаулер                                             передачи
                                 моделирование              информации,
                                     (набросок от руки)      нестрогость




   Способы
                                 Проектирование
использования                                                 Полнота
                                         (чертеж)
     UML

                                                                Пока
                               Программирование             недоразвитые
                               (граф.представление кода)    инструменты.
     Авторы                                                Эффективность
      UML
                                                                 ?
                    Executable UML
7 из 48


   Способы использования UML

                                         Модель программы;
                                        Понимание чужого кода




                                   Системная
     Бизнес-анализ                архитектура
     (анализ требований)          (проектирование)

                     Документирование


    Понятия из
предметной области
8 из 48


Виды диаграмм
9 из 48


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

 Распространены соглашения, которых нет в стандарте

 UML не достаточно
     «Команды разработчиков часто формируют собственные
      локальные соглашения»

     «… не надо избегать диаграмм, не имеющих отношения к
      UML, если не нашлось диаграмм UML, подходящих для ваших
      целей»
Диаграммы классов

Описывают типы объектов и
статические отношения между
ними
11 из 48

                    Основные понятия
                    диаграмм классов
             ПО                         UML
Класс                Класс
(Class)              (Class)
Наследование         Обобщение
(Inheritance)        (Generalization)
Инстанцирование
                     Классификация
(Instantiation)
Свойство                                             Атрибут
(Property)                              Свойство     (Attribute)
Ссылка, связь        Функциональность   (Property)   Ассоциация
(Reference, link)    (Feature)                       (Association)
Метод                                                Операция
(Method)                                             (Operation)
12 из 48


Типичная диаграмма классов
13 из 48

Основные элементы:
      классы
14 из 48

   Основные элементы:
обобщения и классификации

   Дискриминатор
15 из 48


   Классификация vs. обобщение

Не всегда слова естественного языка
обозначают одно и то же (это, является):
 Шарик – овчарка
 Овчарка – это собака
 Собаки являются животными
 Овчарка – это порода собак
 Собака – это биологический вид
16 из 48

                      Основные элементы:
                           атрибуты
видимость имя: тип [кратность] = нач.значение {огранич.}
      видимость: “+” – public, “-” – private, “#” – protected, “~” – package
      кратность:
           [0..1] – необязательный,
           [1] – обязательный,
           [*] – множественный (массив, список)
      ограничения: {frozen}, {readOnly}, {ordered}, {unique},
       {nonunique}


 Вычислимый (производный) атрибут:
      впереди ставится слеш (“/”)

 Статический:
      подчеркивается
17 из 48

                     Основные элементы:
                          операции
видимость имя (список параметров): возвращ.тип {огранич.}

      видимость: “+” – public, “-” – private, “#” – protected, “~” – package
      список параметров (может быть пустым):
          направление имя : тип = значение по умолчанию
             направление: in, out, inout (по умолчанию – in)

 Статическая:
      подчеркивается
18 из 48

                         Основные элементы:
                             ассоциации
Направление ассоциации




                           Класс-ассоциация                     Временное отношение




                                   Двунаправленная ассоциация
19 из 48

                      Основные элементы:
                    ассоциации vs. атрибуты
             ПО                            UML
Класс                   Класс
(Class)                 (Class)
Наследование            Обобщение
(Inheritance)           (Generalization)
Инстанцирование
                        Классификация
(Instantiation)
Свойство                                                Атрибут
(Property)                                 Свойство     (Attribute)
Ссылка, связь           Функциональность   (Property)   Ассоциация
(Reference, link)       (Feature)                       (Association)
Метод                                                   Операция
(Method)                                                (Operation)
20 из 48

  Основные элементы:
ассоциации vs. атрибуты


  Чтобы диаграмма
 не была перегружена
      «линиями»
21 из 48


      Агрегация и композиция
Агрегация (aggregation)           Композиция (composition)
 можно озвучить как               это агрегация с доп.
  «часть – целое»                   ограничением:
 следует использовать с особой        нет совместного владения
  осторожностью, так как в нее     в интерфейсе это
  вкладывают разный смысл!          «мастер – деталь»
                                   в XML: вложение тега одного в
                                    другой




                                                      Можно и не указывать,
                                                             тогда
                                                       предполагается 0..1
22 из 48

                     Композиция:
                полушутя-полусерьѐзно
«Нельзя объять необъятное».
Козьма Прутков

Опровержение:
23 из 48

Основные элементы:
   перечисление

    Перечисление
24 из 48

        Модель предметной области
                  Scrum
Sprint
 имеет номер
 на спринт обязательно формулируется цель!
 начинается в определенную дату
 заканчивается в назначенный день




 а еще на Sprint фиксируется время Daily Scrum Meeting-ов (DSM)
 и обязательно назначается время и место демонстрации (чтобы
  могли придти все желающие)
25 из 48

              Модель предметной области
                        Scrum
   в Scrum-е работу выполняет команда
   команда состоит из сотрудников, есть Scrum Master
   не каждый сотрудник обязан быть приписан к определенной команде




   при планировании Sprint-а фиксируется степень участия сотрудника
   исходя из этого (и длины спринта) вычисляется итоговое количество рабочих часов
   при помощи планируемого Focus factor-а (FF) эти часы пересчитываются в общее
    количество Story point-ов (SP) на Sprint
26 из 48

Модель предметной области
          Scrum
27 из 48


                              Пример кода на C#
public abstract class Backlog
{
    public Employee ProductOwner { get; set; }
    public Team Team { get; set; }
}
public abstract class BacklogItem
{
    public long Id { get; set; }
    public string Name { get; set; }
    // ...
}

public class ProductBacklog : Backlog
{
    public ProductBacklogItem[] Items { get; set; }
}

public enum ProductBacklogItemState
{
    None,
    InSprint,
    Done
}
public class ProductBacklogItem : BacklogItem
{
    public ProductBacklog Backlog { get; set; }
    public ProductBacklogItemState State { get; set;
}
28 из 48


            Основные элементы диаграммы классов
            Примечание

    Класс


 Атрибуты

«Производные»
  атрибуты


  Операции



 Ассоциация


 Кратность


 Обобщение


 Композиция
Переменка

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


 Показывают поведение
 нескольких объектов,
 упорядоченные по времени их
 проявления в рамках одного
 прецедента *

               * Прецедент – набор шагов для
               достижения цели пользователя
31 из 48

       Диаграммы последовательности:
              Google Checkout
Участник



  Найденное
  сообщение

  Сообщение

   Возврат

  Активация

  Самовызов

 Линия жизни

  Параметр
32 из 48

     Диаграммы последовательности:
            Google Checkout
Примерно та же диаграмма
в исполнении Google:
 Из официальной
   документации
 Не UML
 Но не менее понятна
 Выделяет
   дополнительные
   аспекты
   (напр., границы разных
   API)
33 из 48

Анекдот из
Преисподней
Один политик, один вор и один
работник аудиторской компании
умерли и попали прямо в ад…
                   umljokes.com
Диаграммы состояний

Описывают поведение одного
объекта в нескольких
прецедентах
35 из 48

                  Диаграммы состояний:
                   основные элементы


  Состояние


   Переход


   Начальное
псевдосостояние


   Конечное
  состояние




  Внутренние
  активности
36 из 48

                   Основные элементы:
                   переходы и их метки

                                              Направление перехода




  Событие или        Условия осуществимости     Внутренняя логика перехода
внешнее действие             перехода              (реализация перехода)
37 из 48

              Основные элементы:
                  состояния




 Самопереход возвращает объект в то же состояние
 Внутренние активности не инициируют entry и exit
38 из 48

    Продвинутые элементы:
супер- и параллельные состояния
Диаграммы деятельности

Описывают логику процедур,
бизнес-процессы и потоки работ,
в т.ч. параллельные.
40 из 48


                 Основные элементы

Начальный узел                     Слияние

Поток / ребро
                                Есть диаграмма
  Операция                         вложенной
                                 деятельности
  Ветвление

 Объединение                       Конец
                                деятельности
   Решение
41 из 48

               Основные элементы:
              декомпозиция операции

Входной параметр                Выходной параметр
42 из 48

Основные элементы:
     разделы
Не-UML

• Диаграммы планов счетов
44 из 48


      Когда UML не достаточно
Диаграмма плана счетов: личные финансы
                                         НЕ-UML



                                          UML
45 из 48


     Что мы не рассмотрели?
 Диаграммы пакетов
 Диаграммы прецедентов

Полезно в качестве самообразования
46 из 48


Инструменты
47 из 48


                Инструменты
•   MS Visio    http://softwarestencils.com/uml/
•   UML Graph   http://www.umlgraph.org
•   Violet      http://www.horstmann.com/violet/
•   UMLet       http://www.umlet.com/
•   ArgoUML     http://argouml.tigris.org/
•   StarUML     http://staruml.sourceforge.net/en/

• Есть и коммерческие продукты
48 из 48


Литература

Más contenido relacionado

La actualidad más candente

Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...Aimurat Adilbekov
 
Проверка для DMN: проектирование мультиагентной интеллектуальной системы
Проверка для DMN: проектирование мультиагентной интеллектуальной системыПроверка для DMN: проектирование мультиагентной интеллектуальной системы
Проверка для DMN: проектирование мультиагентной интеллектуальной системыCEE-SEC(R)
 
МАСТЕР-КЛАСС. Моделирование на UML
МАСТЕР-КЛАСС. Моделирование на UMLМАСТЕР-КЛАСС. Моделирование на UML
МАСТЕР-КЛАСС. Моделирование на UMLSQALab
 
tema1
tema1tema1
tema1comp
 
С.Ковалёв -- теория категорий как математическое основание MBSE
С.Ковалёв -- теория категорий как математическое основание MBSEС.Ковалёв -- теория категорий как математическое основание MBSE
С.Ковалёв -- теория категорий как математическое основание MBSEAnatoly Levenchuk
 
А.Левенчук -- системноинженерное мышление
А.Левенчук -- системноинженерное мышлениеА.Левенчук -- системноинженерное мышление
А.Левенчук -- системноинженерное мышлениеAnatoly Levenchuk
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной областиCUSTIS
 
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...Alexey Neznanov
 
структура языка UML
структура языка UMLструктура языка UML
структура языка UMLОтшельник
 
Моделирование как метод познания
Моделирование как метод познанияМоделирование как метод познания
Моделирование как метод познанияstudent_SSGA
 
язык Uml. диаграмма использования. (19)
язык Uml. диаграмма использования. (19)язык Uml. диаграмма использования. (19)
язык Uml. диаграмма использования. (19)romachka_pole
 
МАПО 2013 Лекция 08 Бизнес-правила IDEF0
МАПО 2013 Лекция 08 Бизнес-правила IDEF0МАПО 2013 Лекция 08 Бизнес-правила IDEF0
МАПО 2013 Лекция 08 Бизнес-правила IDEF0Олег Гудаев
 
RDSDataSource: Построение UML диаграмм
RDSDataSource: Построение UML диаграммRDSDataSource: Построение UML диаграмм
RDSDataSource: Построение UML диаграммRAMBLER&Co
 
Системный подход в стандартах
Системный подход в стандартахСистемный подход в стандартах
Системный подход в стандартахAnatoly Levenchuk
 
Software Engineering Knowledge Matrix
Software Engineering Knowledge MatrixSoftware Engineering Knowledge Matrix
Software Engineering Knowledge MatrixOlena Syrota
 
Диаграмма компонентов
Диаграмма компонентовДиаграмма компонентов
Диаграмма компонентовDEVTYPE
 
Диаграмма развертывания
Диаграмма развертыванияДиаграмма развертывания
Диаграмма развертыванияDEVTYPE
 

La actualidad más candente (20)

Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...
 
Проверка для DMN: проектирование мультиагентной интеллектуальной системы
Проверка для DMN: проектирование мультиагентной интеллектуальной системыПроверка для DMN: проектирование мультиагентной интеллектуальной системы
Проверка для DMN: проектирование мультиагентной интеллектуальной системы
 
МАСТЕР-КЛАСС. Моделирование на UML
МАСТЕР-КЛАСС. Моделирование на UMLМАСТЕР-КЛАСС. Моделирование на UML
МАСТЕР-КЛАСС. Моделирование на UML
 
tema1
tema1tema1
tema1
 
С.Ковалёв -- теория категорий как математическое основание MBSE
С.Ковалёв -- теория категорий как математическое основание MBSEС.Ковалёв -- теория категорий как математическое основание MBSE
С.Ковалёв -- теория категорий как математическое основание MBSE
 
Нотация UML / UML Notation
Нотация UML / UML NotationНотация UML / UML Notation
Нотация UML / UML Notation
 
А.Левенчук -- системноинженерное мышление
А.Левенчук -- системноинженерное мышлениеА.Левенчук -- системноинженерное мышление
А.Левенчук -- системноинженерное мышление
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной области
 
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
 
структура языка UML
структура языка UMLструктура языка UML
структура языка UML
 
Моделирование как метод познания
Моделирование как метод познанияМоделирование как метод познания
Моделирование как метод познания
 
язык Uml. диаграмма использования. (19)
язык Uml. диаграмма использования. (19)язык Uml. диаграмма использования. (19)
язык Uml. диаграмма использования. (19)
 
Idef0
Idef0Idef0
Idef0
 
МАПО 2013 Лекция 08 Бизнес-правила IDEF0
МАПО 2013 Лекция 08 Бизнес-правила IDEF0МАПО 2013 Лекция 08 Бизнес-правила IDEF0
МАПО 2013 Лекция 08 Бизнес-правила IDEF0
 
RDSDataSource: Построение UML диаграмм
RDSDataSource: Построение UML диаграммRDSDataSource: Построение UML диаграмм
RDSDataSource: Построение UML диаграмм
 
Системный подход в стандартах
Системный подход в стандартахСистемный подход в стандартах
Системный подход в стандартах
 
Software Engineering Knowledge Matrix
Software Engineering Knowledge MatrixSoftware Engineering Knowledge Matrix
Software Engineering Knowledge Matrix
 
Диаграмма компонентов
Диаграмма компонентовДиаграмма компонентов
Диаграмма компонентов
 
Диаграмма развертывания
Диаграмма развертыванияДиаграмма развертывания
Диаграмма развертывания
 
Лекция 3. UML (dynamic logical model)
Лекция 3. UML (dynamic logical model)Лекция 3. UML (dynamic logical model)
Лекция 3. UML (dynamic logical model)
 

Destacado

Use-case diagram
Use-case diagramUse-case diagram
Use-case diagramaepetelin
 
МАПО Лекция 14 UML Use Case
МАПО Лекция 14 UML Use CaseМАПО Лекция 14 UML Use Case
МАПО Лекция 14 UML Use CaseОлег Гудаев
 
Use cases на практике
Use cases на практикеUse cases на практике
Use cases на практикеSoftline
 
МАПО Лекция 21 User-Интерфейс
МАПО Лекция 21 User-ИнтерфейсМАПО Лекция 21 User-Интерфейс
МАПО Лекция 21 User-ИнтерфейсОлег Гудаев
 
моделирование на языке Uml 2
моделирование на языке Uml 2моделирование на языке Uml 2
моделирование на языке Uml 2Elena Kasimova
 
ТПСЭК 2014 Лекция 02 "Бизнес"
ТПСЭК 2014 Лекция 02 "Бизнес"ТПСЭК 2014 Лекция 02 "Бизнес"
ТПСЭК 2014 Лекция 02 "Бизнес"Олег Гудаев
 
лабораторная работа №4 uml
лабораторная работа №4 umlлабораторная работа №4 uml
лабораторная работа №4 umlNatasha Lysakova
 
Политика информационной безопасности: как сделать правильно и полезно
Политика информационной безопасности: как сделать правильно и полезноПолитика информационной безопасности: как сделать правильно и полезно
Политика информационной безопасности: как сделать правильно и полезноАлексей Волков
 
Стратегия Cisco в области информационной безопасности
Стратегия Cisco в области информационной безопасностиСтратегия Cisco в области информационной безопасности
Стратегия Cisco в области информационной безопасностиCisco Russia
 
МАПО Практическая №2
МАПО Практическая №2МАПО Практическая №2
МАПО Практическая №2Олег Гудаев
 
МАПО Пактическая №1
МАПО Пактическая №1МАПО Пактическая №1
МАПО Пактическая №1Олег Гудаев
 
Marketing Management Project.
Marketing Management Project.Marketing Management Project.
Marketing Management Project.roomzkazi
 

Destacado (17)

Use-case diagram
Use-case diagramUse-case diagram
Use-case diagram
 
МАПО Лекция 14 UML Use Case
МАПО Лекция 14 UML Use CaseМАПО Лекция 14 UML Use Case
МАПО Лекция 14 UML Use Case
 
Use cases на практике
Use cases на практикеUse cases на практике
Use cases на практике
 
Lev diploma
Lev diplomaLev diploma
Lev diploma
 
МАПО Лекция 21 User-Интерфейс
МАПО Лекция 21 User-ИнтерфейсМАПО Лекция 21 User-Интерфейс
МАПО Лекция 21 User-Интерфейс
 
моделирование на языке Uml 2
моделирование на языке Uml 2моделирование на языке Uml 2
моделирование на языке Uml 2
 
Chattering device IoT
Chattering device IoTChattering device IoT
Chattering device IoT
 
ТПСЭК 2014 Лекция 02 "Бизнес"
ТПСЭК 2014 Лекция 02 "Бизнес"ТПСЭК 2014 Лекция 02 "Бизнес"
ТПСЭК 2014 Лекция 02 "Бизнес"
 
лабораторная работа №4 uml
лабораторная работа №4 umlлабораторная работа №4 uml
лабораторная работа №4 uml
 
Политика информационной безопасности: как сделать правильно и полезно
Политика информационной безопасности: как сделать правильно и полезноПолитика информационной безопасности: как сделать правильно и полезно
Политика информационной безопасности: как сделать правильно и полезно
 
Стратегия Cisco в области информационной безопасности
Стратегия Cisco в области информационной безопасностиСтратегия Cisco в области информационной безопасности
Стратегия Cisco в области информационной безопасности
 
МАПО Лаба №1
МАПО Лаба №1МАПО Лаба №1
МАПО Лаба №1
 
МАПО Лекция 25 StarUML
МАПО Лекция 25 StarUMLМАПО Лекция 25 StarUML
МАПО Лекция 25 StarUML
 
МАПО Практическая №2
МАПО Практическая №2МАПО Практическая №2
МАПО Практическая №2
 
МАПО Пактическая №1
МАПО Пактическая №1МАПО Пактическая №1
МАПО Пактическая №1
 
Marketing Management Project.
Marketing Management Project.Marketing Management Project.
Marketing Management Project.
 
Deep C
Deep CDeep C
Deep C
 

Similar a Uml for students

UML_Yznaika.com.pptx
UML_Yznaika.com.pptxUML_Yznaika.com.pptx
UML_Yznaika.com.pptxssuserd0eb401
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Sergey Nemchinsky
 
Unified modeling language basic-part 1
Unified modeling language basic-part 1Unified modeling language basic-part 1
Unified modeling language basic-part 1ISsoft
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановSQALab
 
Шаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UMLШаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UMLSergey Nemchinsky
 
Введення Uml
Введення UmlВведення Uml
Введення Umlpogromskaya
 
1 общие понятия о проектировании мехатронных систем
1 общие понятия о проектировании мехатронных систем1 общие понятия о проектировании мехатронных систем
1 общие понятия о проектировании мехатронных системMakhabbat Kalenova
 
Формирование описания грамматики языка программирования Modelica и его внедр...
Формирование описания грамматики языка программирования Modelica  и его внедр...Формирование описания грамматики языка программирования Modelica  и его внедр...
Формирование описания грамматики языка программирования Modelica и его внедр...Boris Chumichev
 
Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5Technopark
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8Technopark
 
C++ осень 2012 лекция 7
C++ осень 2012 лекция 7C++ осень 2012 лекция 7
C++ осень 2012 лекция 7Technopark
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.EatDog
 
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]Alex V. Petrov
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]Alex V. Petrov
 

Similar a Uml for students (20)

UML_Yznaika.com.pptx
UML_Yznaika.com.pptxUML_Yznaika.com.pptx
UML_Yznaika.com.pptx
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"
 
п15 16
п15 16п15 16
п15 16
 
Unified modeling language basic-part 1
Unified modeling language basic-part 1Unified modeling language basic-part 1
Unified modeling language basic-part 1
 
Uml
UmlUml
Uml
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Шаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UMLШаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UML
 
UML (basics of)
UML (basics of)UML (basics of)
UML (basics of)
 
Введення Uml
Введення UmlВведення Uml
Введення Uml
 
1 общие понятия о проектировании мехатронных систем
1 общие понятия о проектировании мехатронных систем1 общие понятия о проектировании мехатронных систем
1 общие понятия о проектировании мехатронных систем
 
Формирование описания грамматики языка программирования Modelica и его внедр...
Формирование описания грамматики языка программирования Modelica  и его внедр...Формирование описания грамматики языка программирования Modelica  и его внедр...
Формирование описания грамматики языка программирования Modelica и его внедр...
 
Лекция 2. UML (static logical model)
Лекция 2. UML (static logical model)Лекция 2. UML (static logical model)
Лекция 2. UML (static logical model)
 
Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8
 
C++ осень 2012 лекция 7
C++ осень 2012 лекция 7C++ осень 2012 лекция 7
C++ осень 2012 лекция 7
 
лб2 UML.pptx
лб2 UML.pptxлб2 UML.pptx
лб2 UML.pptx
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.
 
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
 
семинар Uml
семинар Umlсеминар Uml
семинар Uml
 

Uml for students

  • 1. Проектирование с использованием UML Владислав Иофе 28 апреля 2011 г.
  • 2. 2 из 48 Что обещано? Мы расскажем о том, что такое UML: для чего он задумывался, и для чего используется. Вместе с вами мы рассмотрим:  наиболее употребимые виды диаграмм с примерами  инструменты работы с UML  UML-анекдот и ответим на вопросы:  почему UML не достаточно  блок-схема – это UML? После чего вы попрактикуетесь в проектировании небольшой информационной системы с помощью UML.
  • 3. 3 из 48 Что такое UML Объектно-ориентированное проектирование Графическая нотация Объектно-ориентированное программирование
  • 4. 4 из 48 История  1988-92 – основные работы по языкам графического моделирования, десятки языков  1994 – и новый язык объектно- ориентированного моделирования  1995 – Unified Method 0.8  1995 – “Three Amigos”  1996 – разработка стандарта переходит к
  • 5. 5 из 48 История  1997 – UML 1.0  2001 – UML 1.4.2, сейчас это международный стандарт ISO  2005 – UML 2.0  2010 – UML 2.3, пока это последняя версия
  • 6. 6 из 48 Способы использования UML Практика использования Эскизное Избирательность + Мартин Фаулер передачи моделирование информации, (набросок от руки) нестрогость Способы Проектирование использования Полнота (чертеж) UML Пока Программирование недоразвитые (граф.представление кода) инструменты. Авторы Эффективность UML ? Executable UML
  • 7. 7 из 48 Способы использования UML Модель программы; Понимание чужого кода Системная Бизнес-анализ архитектура (анализ требований) (проектирование) Документирование Понятия из предметной области
  • 8. 8 из 48 Виды диаграмм
  • 9. 9 из 48 Допустимый UML  Сам по себе UML не предполагает возможностей для расширения нотации  кстати, за это его очень часть критикуют  Распространены соглашения, которых нет в стандарте  UML не достаточно  «Команды разработчиков часто формируют собственные локальные соглашения»  «… не надо избегать диаграмм, не имеющих отношения к UML, если не нашлось диаграмм UML, подходящих для ваших целей»
  • 10. Диаграммы классов Описывают типы объектов и статические отношения между ними
  • 11. 11 из 48 Основные понятия диаграмм классов ПО UML Класс Класс (Class) (Class) Наследование Обобщение (Inheritance) (Generalization) Инстанцирование Классификация (Instantiation) Свойство Атрибут (Property) Свойство (Attribute) Ссылка, связь Функциональность (Property) Ассоциация (Reference, link) (Feature) (Association) Метод Операция (Method) (Operation)
  • 12. 12 из 48 Типичная диаграмма классов
  • 13. 13 из 48 Основные элементы: классы
  • 14. 14 из 48 Основные элементы: обобщения и классификации Дискриминатор
  • 15. 15 из 48 Классификация vs. обобщение Не всегда слова естественного языка обозначают одно и то же (это, является):  Шарик – овчарка  Овчарка – это собака  Собаки являются животными  Овчарка – это порода собак  Собака – это биологический вид
  • 16. 16 из 48 Основные элементы: атрибуты видимость имя: тип [кратность] = нач.значение {огранич.}  видимость: “+” – public, “-” – private, “#” – protected, “~” – package  кратность:  [0..1] – необязательный,  [1] – обязательный,  [*] – множественный (массив, список)  ограничения: {frozen}, {readOnly}, {ordered}, {unique}, {nonunique}  Вычислимый (производный) атрибут:  впереди ставится слеш (“/”)  Статический:  подчеркивается
  • 17. 17 из 48 Основные элементы: операции видимость имя (список параметров): возвращ.тип {огранич.}  видимость: “+” – public, “-” – private, “#” – protected, “~” – package  список параметров (может быть пустым):  направление имя : тип = значение по умолчанию  направление: in, out, inout (по умолчанию – in)  Статическая:  подчеркивается
  • 18. 18 из 48 Основные элементы: ассоциации Направление ассоциации Класс-ассоциация Временное отношение Двунаправленная ассоциация
  • 19. 19 из 48 Основные элементы: ассоциации vs. атрибуты ПО UML Класс Класс (Class) (Class) Наследование Обобщение (Inheritance) (Generalization) Инстанцирование Классификация (Instantiation) Свойство Атрибут (Property) Свойство (Attribute) Ссылка, связь Функциональность (Property) Ассоциация (Reference, link) (Feature) (Association) Метод Операция (Method) (Operation)
  • 20. 20 из 48 Основные элементы: ассоциации vs. атрибуты Чтобы диаграмма не была перегружена «линиями»
  • 21. 21 из 48 Агрегация и композиция Агрегация (aggregation) Композиция (composition)  можно озвучить как  это агрегация с доп. «часть – целое» ограничением:  следует использовать с особой  нет совместного владения осторожностью, так как в нее  в интерфейсе это вкладывают разный смысл! «мастер – деталь»  в XML: вложение тега одного в другой Можно и не указывать, тогда предполагается 0..1
  • 22. 22 из 48 Композиция: полушутя-полусерьѐзно «Нельзя объять необъятное». Козьма Прутков Опровержение:
  • 23. 23 из 48 Основные элементы: перечисление Перечисление
  • 24. 24 из 48 Модель предметной области Scrum Sprint  имеет номер  на спринт обязательно формулируется цель!  начинается в определенную дату  заканчивается в назначенный день  а еще на Sprint фиксируется время Daily Scrum Meeting-ов (DSM)  и обязательно назначается время и место демонстрации (чтобы могли придти все желающие)
  • 25. 25 из 48 Модель предметной области Scrum  в Scrum-е работу выполняет команда  команда состоит из сотрудников, есть Scrum Master  не каждый сотрудник обязан быть приписан к определенной команде  при планировании Sprint-а фиксируется степень участия сотрудника  исходя из этого (и длины спринта) вычисляется итоговое количество рабочих часов  при помощи планируемого Focus factor-а (FF) эти часы пересчитываются в общее количество Story point-ов (SP) на Sprint
  • 26. 26 из 48 Модель предметной области Scrum
  • 27. 27 из 48 Пример кода на C# public abstract class Backlog { public Employee ProductOwner { get; set; } public Team Team { get; set; } } public abstract class BacklogItem { public long Id { get; set; } public string Name { get; set; } // ... } public class ProductBacklog : Backlog { public ProductBacklogItem[] Items { get; set; } } public enum ProductBacklogItemState { None, InSprint, Done } public class ProductBacklogItem : BacklogItem { public ProductBacklog Backlog { get; set; } public ProductBacklogItemState State { get; set; }
  • 28. 28 из 48 Основные элементы диаграммы классов Примечание Класс Атрибуты «Производные» атрибуты Операции Ассоциация Кратность Обобщение Композиция
  • 30. Диаграммы последовательности Показывают поведение нескольких объектов, упорядоченные по времени их проявления в рамках одного прецедента * * Прецедент – набор шагов для достижения цели пользователя
  • 31. 31 из 48 Диаграммы последовательности: Google Checkout Участник Найденное сообщение Сообщение Возврат Активация Самовызов Линия жизни Параметр
  • 32. 32 из 48 Диаграммы последовательности: Google Checkout Примерно та же диаграмма в исполнении Google:  Из официальной документации  Не UML  Но не менее понятна  Выделяет дополнительные аспекты (напр., границы разных API)
  • 33. 33 из 48 Анекдот из Преисподней Один политик, один вор и один работник аудиторской компании умерли и попали прямо в ад… umljokes.com
  • 34. Диаграммы состояний Описывают поведение одного объекта в нескольких прецедентах
  • 35. 35 из 48 Диаграммы состояний: основные элементы Состояние Переход Начальное псевдосостояние Конечное состояние Внутренние активности
  • 36. 36 из 48 Основные элементы: переходы и их метки Направление перехода Событие или Условия осуществимости Внутренняя логика перехода внешнее действие перехода (реализация перехода)
  • 37. 37 из 48 Основные элементы: состояния  Самопереход возвращает объект в то же состояние  Внутренние активности не инициируют entry и exit
  • 38. 38 из 48 Продвинутые элементы: супер- и параллельные состояния
  • 39. Диаграммы деятельности Описывают логику процедур, бизнес-процессы и потоки работ, в т.ч. параллельные.
  • 40. 40 из 48 Основные элементы Начальный узел Слияние Поток / ребро Есть диаграмма Операция вложенной деятельности Ветвление Объединение Конец деятельности Решение
  • 41. 41 из 48 Основные элементы: декомпозиция операции Входной параметр Выходной параметр
  • 42. 42 из 48 Основные элементы: разделы
  • 44. 44 из 48 Когда UML не достаточно Диаграмма плана счетов: личные финансы НЕ-UML UML
  • 45. 45 из 48 Что мы не рассмотрели?  Диаграммы пакетов  Диаграммы прецедентов Полезно в качестве самообразования
  • 47. 47 из 48 Инструменты • MS Visio http://softwarestencils.com/uml/ • UML Graph http://www.umlgraph.org • Violet http://www.horstmann.com/violet/ • UMLet http://www.umlet.com/ • ArgoUML http://argouml.tigris.org/ • StarUML http://staruml.sourceforge.net/en/ • Есть и коммерческие продукты