ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Часть 1
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• Моделирование — исследование объектов
познания на их моделях; построение и
изучение моделей реально существующих
предмет...
• Субъект (исследователь),
• Объект исследования,
• Цель моделирования
• Перспектива или точка зрения,
• Метамодель (Прави...
Code
No model
“What’s a
model?”
Model
Code
Code
visualization
“The code is
the model”
Model
Code
Round-trip
engineering
“C...
• Исторический контекст
• Развитие путем объединения и унификации
• Авторы и международное сообщество
• Современные тенден...
• …
• Петроглифы
• Блок-схемы
• Р-технология
• Диаграммы потоков данных (DFD)
• Диаграммы «сущность-связь» (ERD)
• Методол...
8
UML 1.4 10/2001
UML 1.5 11/2003
UML 2.0 8.03-9.05
Конкурс 1.2000-7.2003
9
1997
UML 1.1
2001
UML 1.4
1999
UML 1.3
2003
UML 1.5 UML 2.0
Инструментальная поддержка
Самодеятельность
III поколение
II...
• В описании UML используются три
языковых уровня:
• Мета-метамодель - описание языка, на
котором описана метамодель - опи...
11
Behavior::Common Behavior
Behavior::Interactions Behavior::Use Case Behavior::State Machines Behavior::Activities
Behav...
• Абстрактный синтаксис =
– Структура +
– Ограничения
• В UML определен
– Диаграммами классов +
– Ограничениями на OCL
• Г...
• (от лат. structūra — строение)
• В своём основном значении, структура есть внутреннее
устройство чего-либо. Внутреннее у...
• Моделирование системы включает в себя
идентификацию объектов, которые
формируют словарь моделируемой
системы.
• Модель с...
• Классификатор (classifier) - конструкция,
которая обобщает класс, с помощью
которого задаются элементы в модели,
которые...
• Показывают граф классификаторов
соединенных постоянными связями.
• Виды
– Диаграмма классов - (class diagram): classifie...
Классификаторы
( Графическое отображение)
Component1 Node1
UseCase1
move()
resize()
display()
Origin
Shape
+set() : object...
Structure
diagram
Composite Structure
diagram
Object
diagram
Deployemnt
diagram
Component
diagram
Class
diagram
Package
di...
Element
Carbon Hydrogen
<<covalent>>
<<covalent>>C
C
C H
:Carbon :Carbon
:Hydrogen
:Hydrogen
:Hydrogen
:Hydrogen
:Hydrogen...
Fig. 3-84, UML Notation Guide
Dictionary
Spell-check
Synonyms
mymailer: Mailer
+Mailbox
+RoutingList
-MailQueue
• Моделирования
исходного кода
• Моделирования
выполняемого кода
• Моделирования
физических БД
• Моделирования
приспосабли...
• Диаграммы
размещения
обычно
используются для:
– Моделирования
встроенных систем
– Моделирования
client/server систем
– М...
COMPONENT AND DEPLOYMENT DIAGRAMS
High level component communication and dependencies.
Member-of
Chair-of
{subset}Person Committee
Person Company
boss
{Person.employer =
Person.boss.employer}
employeremployee
...
• Adopt an opportunistic top-down+bottom-up approach to
modeling structure
– Specify the top-level structure using “archit...
• Define a “skeleton” (or “backbone”) that can be extended
and refined as you learn more about your domain.
• Focus on usi...
Структурные
диаграммы
Composite Structure
diagram
Object
diagram
Deployemnt
diagram
Component
diagram
Диаграмма Классов
Cl...
• Структурная модель: представление
системы, которая подчеркивает
структуру объектов, включая их
классификаторы, отношения...
Package
Name
Class Name
Interface Name
<<Interface>>
Диаграмма классов
• Это представление статической структуры
системы
•...
Связи (Relationships)
• Диаграмма классов может содержать
следующие типы связей :
– Ассоциации (Association), Агрегации
(a...
• Основана на Объекно ориентированный
дизайн и программирование (OOD, OOP).
• Диаграмма классов разделяет систему на
облас...
• Диаграммы классов как правило
используются на следующих уровня
абстракции:
▫ Концептуальные (Conceptual/domain): диаграм...
Package Relationships
Zero or more0..*
One or more1..*
Zero or one0..1
Specified range2..7
Exactly one
1
Множественность
• Каждый конец ассоциац...
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Множественность(2)
• writings of architect Christopher Alexander
(coined this use of the term "pattern" ca. 1977-1979)
• Kent Beck and Ward C...
• A design pattern captures design expertise
–patterns are not created from thin air, but
abstracted from existing design ...
• … a fully realized form, original, or model accepted or proposed for
imitation…[dictionary]
• ... describes a problem wh...
• design patterns (software design)
[Buschmann-POSA]
▫ architectural (systems design)
▫ design (micro-architectures) [Gamm...
Global architecture
Enterprise architecture
System architecture
Application architecture
Macro-architecture
Micro-architec...
• A solution to a problem that occurs repeatedly in a variety of
contexts.
• Each pattern has a name.
• Use of each patter...
• Generally at a “higher level” of abstraction.
• Not about designs such as linked lists or hash tables.
• Generally descr...
• Name
• Intent
• Motivation
• Applicability
• Structure
• Consequences
• Implementation
• Known Uses
• Related Patterns
P...
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Концептуальная модель
Conceptual Model
• Концептуальная модель представляет собой
определенный набор понятий и отношений м...
• Домен является частью реального мира,
что необходимой или имеющей
непосредственное отношение к работе
программы.
– Други...
Аналитические
Analysis Patterns
• Аналитические паттерны используются для
анализа организационной структуры, процессов и
п...
• По решаемым задачам
– Структура объектов (Referring to Objects) -
методы идентификации объектов
– Объекты, которые меняю...
Referring to Objects (Problem)
• Большинство понятий являются
уникальными
• Концептуальная модель должна обеспечить
– Спос...
• Идентификатор
• Схема определения
• Вытеснение объектов
• Сущность объекта
• Эквивалентность
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МО...
• Назначение :
– Дает способ идентифицировать объект пригодный для
использования в очередях
• Проблема
– Сложные системы м...
• Ограничения
– Идентификатор строки должен быть уникальным для
каждой схемы идентификации
– Идентификатор String должен б...
• Объекты меняются
• Если вам нужно ответить на запросы,
связанные с предыдущим состоянием
объекта, вы должны записать его...
• Журнал (Audit Log)
– простой журнал аудита, где записи могут быть
легко добавлены
• Время действия (Effectivity)
– Добав...
• Snapshot
– Представление объекта в определенное время
• Временный объект (Temporal object)
– На время изменения создаетс...
• Отчетность (Accountability) - описание отношений между
элементами структуры (например, организации).
• Наблюдение и изме...
• http://martinfowler.com/tags/analysis%20patt
erns.html
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
•
•
•
•
•
•
•
•
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Часть 1
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Часть 2
‹#›ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ
Безуглый Дмитрий
bdl@system-approach.ru
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5
Upcoming SlideShare
Loading in …5
×

Бизнес и системный анализ весна 2013 лекция 5

557 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
557
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Бизнес и системный анализ весна 2013 лекция 5

  1. 1. ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  2. 2. Часть 1 ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  3. 3. • Моделирование — исследование объектов познания на их моделях; построение и изучение моделей реально существующих предметов, процессов или явлений с целью получения объяснений этих явлений, а также для предсказания явлений, интересующих исследователя.
  4. 4. • Субъект (исследователь), • Объект исследования, • Цель моделирования • Перспектива или точка зрения, • Метамодель (Правила моделирования), • Модель.
  5. 5. Code No model “What’s a model?” Model Code Code visualization “The code is the model” Model Code Round-trip engineering “Code and model coexist” Model Code Model- centric approach “The model is the code” Model Model only “Let’s do some design”
  6. 6. • Исторический контекст • Развитие путем объединения и унификации • Авторы и международное сообщество • Современные тенденции 6
  7. 7. • … • Петроглифы • Блок-схемы • Р-технология • Диаграммы потоков данных (DFD) • Диаграммы «сущность-связь» (ERD) • Методология структурного анализа и проектирования (SADT) • … 7
  8. 8. 8 UML 1.4 10/2001 UML 1.5 11/2003 UML 2.0 8.03-9.05 Конкурс 1.2000-7.2003
  9. 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. 10. • В описании UML используются три языковых уровня: • Мета-метамодель - описание языка, на котором описана метамодель - описание используемого формализма • Метамодель - описание языка, на котором описываются модели - собственно описание языка (элементов моделирования • Модель - описание самой моделируемой предметной области - естественный язык 10
  11. 11. 11 Behavior::Common Behavior Behavior::Interactions Behavior::Use Case Behavior::State Machines Behavior::Activities Behavior::Actions Structure::Classes Structure::Composite Structures Structure::Components Structure::Deployments Profiles Auxiliary Elements
  12. 12. • Абстрактный синтаксис = – Структура + – Ограничения • В UML определен – Диаграммами классов + – Ограничениями на OCL • Графическая нотация = – Отображение структуры на графические картинки • Семантика первична, нотация вторична 12 Classifier Feature Structural Feature Behaviour Feature 1 * -name Model Element +Operation Name() +Attribute Name Class Name
  13. 13. • (от лат. structūra — строение) • В своём основном значении, структура есть внутреннее устройство чего-либо. Внутреннее устройство связано с категориями целого и его частей. Выявление связей, изучение взаимодействия и соподчиненности составных частей различных по своей природе объектов позволяет выявить аналогии в их организации и изучать структуры абстрактно без связи с реальными объектами.
  14. 14. • Моделирование системы включает в себя идентификацию объектов, которые формируют словарь моделируемой системы. • Модель структуры: это представление системы, которое подчеркивает структуру объектов, включая их классификацию (таксономию), взаимосвязи, атрибуты и операции.
  15. 15. • Классификатор (classifier) - конструкция, которая обобщает класс, с помощью которого задаются элементы в модели, которые могут иметь экземпляры, а также операции и атрибуты. • Например, экземпляры класса - это объекты.
  16. 16. • Показывают граф классификаторов соединенных постоянными связями. • Виды – Диаграмма классов - (class diagram): classifier view – Диаграмма объектов (object diagram): instance view – И т.д.
  17. 17. Классификаторы ( Графическое отображение) Component1 Node1 UseCase1 move() resize() display() Origin Shape +set() : object +get() : object «interface»Stateful «datatype» Int «signal»Signal1 Component2 Стереотип
  18. 18. Structure diagram Composite Structure diagram Object diagram Deployemnt diagram Component diagram Class diagram Package diagram
  19. 19. Element Carbon Hydrogen <<covalent>> <<covalent>>C C C H :Carbon :Carbon :Hydrogen :Hydrogen :Hydrogen :Hydrogen :Hydrogen:Hydrogen Диаграмма классов Диаграмма объектов
  20. 20. Fig. 3-84, UML Notation Guide Dictionary Spell-check Synonyms mymailer: Mailer +Mailbox +RoutingList -MailQueue
  21. 21. • Моделирования исходного кода • Моделирования выполняемого кода • Моделирования физических БД • Моделирования приспосабливаемых систем Planner Scheduler GUI Reservations Update
  22. 22. • Диаграммы размещения обычно используются для: – Моделирования встроенных систем – Моделирования client/server систем – Моделирования полностью распределенных систем Сервер WebServer Auth Service Региональный сервер : Серве Региональный сервер : Сервер 1 1 1 1 Persistent storage 1 * Национальный север : Серве
  23. 23. COMPONENT AND DEPLOYMENT DIAGRAMS High level component communication and dependencies.
  24. 24. Member-of Chair-of {subset}Person Committee Person Company boss {Person.employer = Person.boss.employer} employeremployee 0..1 0..1 1 Represents an incorporated entity.
  25. 25. • 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
  26. 26. • 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
  27. 27. Структурные диаграммы Composite Structure diagram Object diagram Deployemnt diagram Component diagram Диаграмма Классов Class diagram Пакеты Диаграммы
  28. 28. • Структурная модель: представление системы, которая подчеркивает структуру объектов, включая их классификаторы, отношения, признаки и операции.
  29. 29. Package Name Class Name Interface Name <<Interface>> Диаграмма классов • Это представление статической структуры системы • Модель содержит множество диаграмм классов • Диаграмма классов содержит: – Пакеты (Packages), Классы (classes), Интерфейсы (interfaces), и связи (relationships) • Нотация:
  30. 30. Связи (Relationships) • Диаграмма классов может содержать следующие типы связей : – Ассоциации (Association), Агрегации (aggregation), зависимости (dependency), реализации (realize), и наследования (inheritance) • Нотация: Association Aggregation Dependency Inheritance Realize
  31. 31. • Основана на Объекно ориентированный дизайн и программирование (OOD, OOP). • Диаграмма классов разделяет систему на области ответственности/responsibility (classes), и показывает “ассоциации” (зависимости ) между ними. • Атрибуты(data), операции(methods), ограничения , отношения часть целое(aggregation) and kind-of (inheritance) связи , доступ , и кардинальность(1 или
  32. 32. • Диаграммы классов как правило используются на следующих уровня абстракции: ▫ Концептуальные (Conceptual/domain): диаграмма представляет концепции в домене предметной области. Это моделирование соответствующих ролей и зон ответственности предметной области. ▫ Спецификации(design): показывают интерфейсы между компонентами в ПО. Интерфейсы не зависят от реализации. ▫ Реализации (Implementation): показывают классы которые соответствуют непосредственно коду (often Java or C++ classes). Служат в качестве проекта (blueprint) для реализации ПО. Этого уровня диаграммы дает Reverse- engineering.
  33. 33. Package Relationships
  34. 34. Zero or more0..* One or more1..* Zero or one0..1 Specified range2..7 Exactly one 1 Множественность • Каждый конец ассоциации содержит индикатор множественности – Показывает кол-во объектов участвующих в отношениях
  35. 35. ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  36. 36. Множественность(2)
  37. 37. • 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) • ….
  38. 38. • 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
  39. 39. • … 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
  40. 40. • design patterns (software design) [Buschmann-POSA] ▫ architectural (systems design) ▫ design (micro-architectures) [Gamma-GoF] ▫ idioms (low level) • analysis patterns (recurring & reusable analysis models) [Flower] • Patterns of Enterprise Application Architecture • organization patterns (structure of organizations/projects) • process patterns (software process design) • EAI Design Patterns • domain-specific patterns
  41. 41. 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
  42. 42. • A solution to a problem that occurs repeatedly in a variety of contexts. • Each pattern has a name. • Use of each pattern has consequences.
  43. 43. • Generally at a “higher level” of abstraction. • Not about designs such as linked lists or hash tables. • Generally descriptions of communicating objects and classes.
  44. 44. • Name • Intent • Motivation • Applicability • Structure • Consequences • Implementation • Known Uses • Related Patterns Problem Solution Benefits Related Patterns Consequences Forces
  45. 45. ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  46. 46. Концептуальная модель Conceptual Model • Концептуальная модель представляет собой определенный набор понятий и отношений между ними, который представляет собой концептуальную структуру описываемой предметной области • Любые вопросы связанные с реализацией программного продукта считаются выходящими за пределы концептуальной модели • Концептуальная модель также называется аналитической моделью ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  47. 47. • Домен является частью реального мира, что необходимой или имеющей непосредственное отношение к работе программы. – Другими словами, Домен включает в себя только те объекты и связи между ними, которые необходимы для описания требований и условий для решения конкретной задачи. ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  48. 48. Аналитические Analysis Patterns • Аналитические паттерны используются для анализа организационной структуры, процессов и предметной области для дальнейшего моделирования и реализации в программном продукте (Martin Fowler, 1997). • Некоторые Аналитические паттерны специфичны для конкретных доменов, но большинство из них имеют более широкое применение. ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  49. 49. • По решаемым задачам – Структура объектов (Referring to Objects) - методы идентификации объектов – Объекты, которые меняются с течением времени - методы, чтобы показать изменения состояния объекта во времени (M. Fowler) ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  50. 50. Referring to Objects (Problem) • Большинство понятий являются уникальными • Концептуальная модель должна обеспечить – Способы идентификации уникального объекта – Способы объединения двух объектов, представляющих тот же объект предметной области – Способы подтверждения идентичности двух объектов ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  51. 51. • Идентификатор • Схема определения • Вытеснение объектов • Сущность объекта • Эквивалентность ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  52. 52. • Назначение : – Дает способ идентифицировать объект пригодный для использования в очередях • Проблема – Сложные системы могут иметь несколько идентификаторов представляющих объект – В разных контекстах могут быть использованы разные идентификаторы • Пример: – данные паспорта идентифицируют гражданина России – В туристической поездке вам нужен иностранный паспорт – В библиотеке и Вас идентифицируют с помощью номера карты библиотеки ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  53. 53. • Ограничения – Идентификатор строки должен быть уникальным для каждой схемы идентификации – Идентификатор String должен быть неизменным ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  54. 54. • Объекты меняются • Если вам нужно ответить на запросы, связанные с предыдущим состоянием объекта, вы должны записать его изменения ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  55. 55. • Журнал (Audit Log) – простой журнал аудита, где записи могут быть легко добавлены • Время действия (Effectivity) – Добавление к объекту времени его действия • Временные свойства – Свойства изменяющиеся со временем ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  56. 56. • Snapshot – Представление объекта в определенное время • Временный объект (Temporal object) – На время изменения создается временный объект • Отметки времени (Time Point) – Создавать отметки времени для каждого действия ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  57. 57. • Отчетность (Accountability) - описание отношений между элементами структуры (например, организации). • Наблюдение и измерение - используется для записи информация о реальных процессах. • Бухгалтерский учет - используется в системах учета. • Планирование - системы планирования и распределения ресурсов. • Trading - используется в системах для торговли, анализ деятельности. • Производные контракты ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  58. 58. • http://martinfowler.com/tags/analysis%20patt erns.html ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  59. 59. • • • • • • • • ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  60. 60. Часть 1 ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  61. 61. Часть 2 ‹#›ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ
  62. 62. Безуглый Дмитрий bdl@system-approach.ru ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

×