3. • Моделирование — исследование объектов
познания на их моделях; построение и
изучение моделей реально существующих
предметов, процессов или явлений с целью
получения объяснений этих явлений, а также
для предсказания явлений, интересующих
исследователя.
4. • Субъект (исследователь),
• Объект исследования,
• Цель моделирования
• Перспектива или точка зрения,
• Метамодель (Правила моделирования),
• Модель.
9. 9
1997
UML 1.1
2001
UML 1.4
1999
UML 1.3
2003
UML 1.5 UML 2.0
Инструментальная поддержка
Самодеятельность
III поколение
II поколение
I поколение
finalization
2005
MDA
1 3
33
10. • В описании UML используются три
языковых уровня:
• Мета-метамодель - описание языка, на
котором описана метамодель - описание
используемого формализма
• Метамодель - описание языка, на котором
описываются модели - собственно
описание языка (элементов моделирования
• Модель - описание самой моделируемой
предметной области - естественный язык
10
12. • Абстрактный синтаксис =
– Структура +
– Ограничения
• В UML определен
– Диаграммами классов +
– Ограничениями на OCL
• Графическая нотация =
– Отображение структуры на графические
картинки
• Семантика первична, нотация
вторична
12
Classifier
Feature
Structural Feature Behaviour Feature
1
*
-name
Model Element
+Operation Name()
+Attribute Name
Class Name
13. • (от лат. structūra — строение)
• В своём основном значении, структура есть внутреннее
устройство чего-либо. Внутреннее устройство связано
с категориями целого и его частей. Выявление связей,
изучение взаимодействия и соподчиненности составных
частей различных по своей природе объектов позволяет
выявить аналогии в их организации и изучать структуры
абстрактно без связи с реальными объектами.
14. • Моделирование системы включает в себя
идентификацию объектов, которые
формируют словарь моделируемой
системы.
• Модель структуры: это представление
системы, которое подчеркивает структуру
объектов, включая их классификацию
(таксономию), взаимосвязи, атрибуты и
операции.
15. • Классификатор (classifier) - конструкция,
которая обобщает класс, с помощью
которого задаются элементы в модели,
которые могут иметь экземпляры, а также
операции и атрибуты.
• Например, экземпляры класса - это
объекты.
16. • Показывают граф классификаторов
соединенных постоянными связями.
• Виды
– Диаграмма классов - (class diagram): classifier
view
– Диаграмма объектов (object diagram): instance
view
– И т.д.
23. • Диаграммы
размещения
обычно
используются для:
– Моделирования
встроенных систем
– Моделирования
client/server систем
– Моделирования
полностью
распределенных
систем
Сервер
WebServer
Auth Service
Региональный
сервер : Серве
Региональный
сервер : Сервер
1
1
1
1
Persistent storage
1
*
Национальный
север : Серве
26. • Adopt an opportunistic top-down+bottom-up approach to
modeling structure
– Specify the top-level structure using “architecturally significant”
classifiers and model management constructs (packages, models,
subsystems; see Tutorial 3)
– Specify lower-level structure as you discover detail re classifiers and
relationships
• If you understand your domain well you can frequently start
with structural modeling; otherwise
– If you start with use case modeling (as with a use-case driven
method) make sure that your structural model is consistent with
your use cases
– If you start with role modeling (as with a collaboration-driven
method) make sure that your structural model is consistent with
your collaborations
27. • Define a “skeleton” (or “backbone”) that can be extended
and refined as you learn more about your domain.
• Focus on using basic constructs well; add advanced
constructs and/or notation only as required.
• Defer implementation concerns until late in the modeling
process.
• Structural diagrams should
– emphasize a particular aspect of the structural model
– contain classifiers at the same level of abstraction
• Large numbers of classifiers should be organized into
packages
29. • Структурная модель: представление
системы, которая подчеркивает
структуру объектов, включая их
классификаторы, отношения,
признаки и операции.
30. Package
Name
Class Name
Interface Name
<<Interface>>
Диаграмма классов
• Это представление статической структуры
системы
• Модель содержит множество диаграмм классов
• Диаграмма классов содержит:
– Пакеты (Packages), Классы (classes),
Интерфейсы (interfaces), и связи (relationships)
• Нотация:
31. Связи (Relationships)
• Диаграмма классов может содержать
следующие типы связей :
– Ассоциации (Association), Агрегации
(aggregation), зависимости (dependency),
реализации (realize), и наследования (inheritance)
• Нотация:
Association Aggregation Dependency
Inheritance Realize
32. • Основана на Объекно ориентированный
дизайн и программирование (OOD, OOP).
• Диаграмма классов разделяет систему на
области ответственности/responsibility
(classes), и показывает “ассоциации”
(зависимости ) между ними.
• Атрибуты(data), операции(methods),
ограничения , отношения часть
целое(aggregation) and kind-of (inheritance)
связи , доступ , и кардинальность(1 или
33. • Диаграммы классов как правило
используются на следующих уровня
абстракции:
▫ Концептуальные (Conceptual/domain): диаграмма
представляет концепции в домене предметной области.
Это моделирование соответствующих ролей и зон
ответственности предметной области.
▫ Спецификации(design): показывают интерфейсы между
компонентами в ПО. Интерфейсы не зависят от
реализации.
▫ Реализации (Implementation): показывают классы
которые соответствуют непосредственно коду (often Java
or C++ classes). Служат в качестве проекта (blueprint) для
реализации ПО. Этого уровня диаграммы дает Reverse-
engineering.
37. Zero or more0..*
One or more1..*
Zero or one0..1
Specified range2..7
Exactly one
1
Множественность
• Каждый конец ассоциации содержит
индикатор множественности
– Показывает кол-во объектов участвующих в
отношениях
40. • writings of architect Christopher Alexander
(coined this use of the term "pattern" ca. 1977-1979)
• Kent Beck and Ward Cunningham, Textronix, OOPSLA'87
(used Alexander's "pattern" ideas for Smalltalk GUI design)
• Erich Gamma, Ph. D. thesis, 1988-1991
• Gamma, Helm, Johnson, Vlissides ("Gang of Four“ - GoF)
Design Patterns: Elements of Reusable Object-Oriented Software, 1991-
1994
• PLoP Conferences and books, 1994-present
• Buschmann, Meunier, Rohnert, Sommerland, Stal, Pattern-Oriented
Software Architecture: A System of Patterns (“POSA book”)
• Patterns of Enterprise Application ArchitectureBy Martin Fowler, David
Rice, .. (2002)
• ….
41. • A design pattern captures design expertise
–patterns are not created from thin air, but
abstracted from existing design examples
• Using design patterns is reuse of design
expertise
• Studying design patterns is a way of
studying how the “experts” do design
• Design patterns provide a vocabulary for
talking about design
42. • … a fully realized form, original, or model accepted or proposed for
imitation…[dictionary]
• ... describes a problem which occurs over and over again in our
environment, and then describes the core of the solution to that problem,
in such a way that you can use this solution a million times over, without
ever doing it the same way twice [Alexander]
• … the abstraction from a concrete form which keeps recurring in specific
non-arbitrary contexts [Riehle]
• ...a literary format for capturing the wisdom and experience of expert
designers, and communicating it to novices
44. Global architecture
Enterprise architecture
System architecture
Application architecture
Macro-architecture
Micro-architecture
Objects
* Mowbray and Malve
ORB
OO architecture
Frameworks
Subsystem
Design patterns
OO programming
45. • A solution to a problem that occurs repeatedly in a variety of
contexts.
• Each pattern has a name.
• Use of each pattern has consequences.
46. • Generally at a “higher level” of abstraction.
• Not about designs such as linked lists or hash tables.
• Generally descriptions of communicating objects and classes.
47. • Name
• Intent
• Motivation
• Applicability
• Structure
• Consequences
• Implementation
• Known Uses
• Related Patterns
Problem
Solution
Benefits
Related Patterns
Consequences
Forces
49. Концептуальная модель
Conceptual Model
• Концептуальная модель представляет собой
определенный набор понятий и отношений между ними,
который представляет собой концептуальную структуру
описываемой предметной области
• Любые вопросы связанные с реализацией программного
продукта считаются выходящими за пределы
концептуальной модели
• Концептуальная модель также называется аналитической
моделью
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
50. • Домен является частью реального мира,
что необходимой или имеющей
непосредственное отношение к работе
программы.
– Другими словами, Домен включает в себя
только те объекты и связи между ними,
которые необходимы для описания требований
и условий для решения конкретной задачи.
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
51. Аналитические
Analysis Patterns
• Аналитические паттерны используются для
анализа организационной структуры, процессов и
предметной области для дальнейшего
моделирования и реализации в программном
продукте (Martin Fowler, 1997).
• Некоторые Аналитические паттерны специфичны
для конкретных доменов, но большинство из них
имеют более широкое применение.
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
52. • По решаемым задачам
– Структура объектов (Referring to Objects) -
методы идентификации объектов
– Объекты, которые меняются с течением
времени - методы, чтобы показать изменения
состояния объекта во времени
(M. Fowler)
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
53. Referring to Objects (Problem)
• Большинство понятий являются
уникальными
• Концептуальная модель должна обеспечить
– Способы идентификации уникального объекта
– Способы объединения двух объектов,
представляющих тот же объект предметной
области
– Способы подтверждения идентичности двух
объектов
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
54. • Идентификатор
• Схема определения
• Вытеснение объектов
• Сущность объекта
• Эквивалентность
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
55. • Назначение :
– Дает способ идентифицировать объект пригодный для
использования в очередях
• Проблема
– Сложные системы могут иметь несколько идентификаторов
представляющих объект
– В разных контекстах могут быть использованы разные
идентификаторы
• Пример:
– данные паспорта идентифицируют гражданина России
– В туристической поездке вам нужен иностранный паспорт
– В библиотеке и Вас идентифицируют с помощью номера карты
библиотеки
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
56. • Ограничения
– Идентификатор строки должен быть уникальным для
каждой схемы идентификации
– Идентификатор String должен быть неизменным
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
57. • Объекты меняются
• Если вам нужно ответить на запросы,
связанные с предыдущим состоянием
объекта, вы должны записать его
изменения
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
58. • Журнал (Audit Log)
– простой журнал аудита, где записи могут быть
легко добавлены
• Время действия (Effectivity)
– Добавление к объекту времени его действия
• Временные свойства
– Свойства изменяющиеся со временем
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
59. • Snapshot
– Представление объекта в определенное время
• Временный объект (Temporal object)
– На время изменения создается временный
объект
• Отметки времени (Time Point)
– Создавать отметки времени для каждого
действия
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
60. • Отчетность (Accountability) - описание отношений между
элементами структуры (например, организации).
• Наблюдение и измерение - используется для записи
информация о реальных процессах.
• Бухгалтерский учет - используется в системах учета.
• Планирование - системы планирования и распределения
ресурсов.
• Trading - используется в системах для торговли, анализ
деятельности.
• Производные контракты
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›