ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Часть 1
ЛЕКЦИЯ №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
• …
• Петроглифы
• Блок-схемы
• Р-технология
• Диаграммы потоков данных (DFD)
• Диаграммы «сущность-связь» (ERD)
• Методология структурного анализа и
проектирования (SADT)
• …
7
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 поколение
I поколение
finalization
2005
MDA
1 3
33
• В описании UML используются три
языковых уровня:
• Мета-метамодель - описание языка, на
котором описана метамодель - описание
используемого формализма
• Метамодель - описание языка, на котором
описываются модели - собственно
описание языка (элементов моделирования
• Модель - описание самой моделируемой
предметной области - естественный язык
10
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
• Абстрактный синтаксис =
– Структура +
– Ограничения
• В UML определен
– Диаграммами классов +
– Ограничениями на OCL
• Графическая нотация =
– Отображение структуры на графические
картинки
• Семантика первична, нотация
вторична
12
Classifier
Feature
Structural Feature Behaviour Feature
1
*
-name
Model Element
+Operation Name()
+Attribute Name
Class Name
• (от лат. structūra — строение)
• В своём основном значении, структура есть внутреннее
устройство чего-либо. Внутреннее устройство связано
с категориями целого и его частей. Выявление связей,
изучение взаимодействия и соподчиненности составных
частей различных по своей природе объектов позволяет
выявить аналогии в их организации и изучать структуры
абстрактно без связи с реальными объектами.
• Моделирование системы включает в себя
идентификацию объектов, которые
формируют словарь моделируемой
системы.
• Модель структуры: это представление
системы, которое подчеркивает структуру
объектов, включая их классификацию
(таксономию), взаимосвязи, атрибуты и
операции.
• Классификатор (classifier) - конструкция,
которая обобщает класс, с помощью
которого задаются элементы в модели,
которые могут иметь экземпляры, а также
операции и атрибуты.
• Например, экземпляры класса - это
объекты.
• Показывают граф классификаторов
соединенных постоянными связями.
• Виды
– Диаграмма классов - (class diagram): classifier
view
– Диаграмма объектов (object diagram): instance
view
– И т.д.
Классификаторы
( Графическое отображение)
Component1 Node1
UseCase1
move()
resize()
display()
Origin
Shape
+set() : object
+get() : object
«interface»Stateful «datatype»
Int
«signal»Signal1
Component2
Стереотип
Structure
diagram
Composite Structure
diagram
Object
diagram
Deployemnt
diagram
Component
diagram
Class
diagram
Package
diagram
Element
Carbon Hydrogen
<<covalent>>
<<covalent>>C
C
C H
:Carbon :Carbon
:Hydrogen
:Hydrogen
:Hydrogen
:Hydrogen
:Hydrogen:Hydrogen
Диаграмма классов
Диаграмма объектов
Fig. 3-84, UML Notation Guide
Dictionary
Spell-check
Synonyms
mymailer: Mailer
+Mailbox
+RoutingList
-MailQueue
• Моделирования
исходного кода
• Моделирования
выполняемого кода
• Моделирования
физических БД
• Моделирования
приспосабливаемых
систем
Planner
Scheduler
GUI
Reservations
Update
• Диаграммы
размещения
обычно
используются для:
– Моделирования
встроенных систем
– Моделирования
client/server систем
– Моделирования
полностью
распределенных
систем
Сервер
WebServer
Auth Service
Региональный
сервер : Серве
Региональный
сервер : Сервер
1
1
1
1
Persistent storage
1
*
Национальный
север : Серве
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
0..1
0..1
1
Represents
an incorporated entity.
• 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
• 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
Структурные
диаграммы
Composite Structure
diagram
Object
diagram
Deployemnt
diagram
Component
diagram
Диаграмма Классов
Class diagram
Пакеты
Диаграммы
• Структурная модель: представление
системы, которая подчеркивает
структуру объектов, включая их
классификаторы, отношения,
признаки и операции.
Package
Name
Class Name
Interface Name
<<Interface>>
Диаграмма классов
• Это представление статической структуры
системы
• Модель содержит множество диаграмм классов
• Диаграмма классов содержит:
– Пакеты (Packages), Классы (classes),
Интерфейсы (interfaces), и связи (relationships)
• Нотация:
Связи (Relationships)
• Диаграмма классов может содержать
следующие типы связей :
– Ассоциации (Association), Агрегации
(aggregation), зависимости (dependency),
реализации (realize), и наследования (inheritance)
• Нотация:
Association Aggregation Dependency
Inheritance Realize
• Основана на Объекно ориентированный
дизайн и программирование (OOD, OOP).
• Диаграмма классов разделяет систему на
области ответственности/responsibility
(classes), и показывает “ассоциации”
(зависимости ) между ними.
• Атрибуты(data), операции(methods),
ограничения , отношения часть
целое(aggregation) and kind-of (inheritance)
связи , доступ , и кардинальность(1 или
• Диаграммы классов как правило
используются на следующих уровня
абстракции:
▫ Концептуальные (Conceptual/domain): диаграмма
представляет концепции в домене предметной области.
Это моделирование соответствующих ролей и зон
ответственности предметной области.
▫ Спецификации(design): показывают интерфейсы между
компонентами в ПО. Интерфейсы не зависят от
реализации.
▫ Реализации (Implementation): показывают классы
которые соответствуют непосредственно коду (often Java
or C++ classes). Служат в качестве проекта (blueprint) для
реализации ПО. Этого уровня диаграммы дает Reverse-
engineering.
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 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)
• ….
• 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
• … 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
• 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
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
• A solution to a problem that occurs repeatedly in a variety of
contexts.
• Each pattern has a name.
• Use of each pattern has consequences.
• Generally at a “higher level” of abstraction.
• Not about designs such as linked lists or hash tables.
• Generally descriptions of communicating objects and classes.
• Name
• Intent
• Motivation
• Applicability
• Structure
• Consequences
• Implementation
• Known Uses
• Related Patterns
Problem
Solution
Benefits
Related Patterns
Consequences
Forces
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Концептуальная модель
Conceptual Model
• Концептуальная модель представляет собой
определенный набор понятий и отношений между ними,
который представляет собой концептуальную структуру
описываемой предметной области
• Любые вопросы связанные с реализацией программного
продукта считаются выходящими за пределы
концептуальной модели
• Концептуальная модель также называется аналитической
моделью
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• Домен является частью реального мира,
что необходимой или имеющей
непосредственное отношение к работе
программы.
– Другими словами, Домен включает в себя
только те объекты и связи между ними,
которые необходимы для описания требований
и условий для решения конкретной задачи.
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Аналитические
Analysis Patterns
• Аналитические паттерны используются для
анализа организационной структуры, процессов и
предметной области для дальнейшего
моделирования и реализации в программном
продукте (Martin Fowler, 1997).
• Некоторые Аналитические паттерны специфичны
для конкретных доменов, но большинство из них
имеют более широкое применение.
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• По решаемым задачам
– Структура объектов (Referring to Objects) -
методы идентификации объектов
– Объекты, которые меняются с течением
времени - методы, чтобы показать изменения
состояния объекта во времени
(M. Fowler)
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Referring to Objects (Problem)
• Большинство понятий являются
уникальными
• Концептуальная модель должна обеспечить
– Способы идентификации уникального объекта
– Способы объединения двух объектов,
представляющих тот же объект предметной
области
– Способы подтверждения идентичности двух
объектов
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• Идентификатор
• Схема определения
• Вытеснение объектов
• Сущность объекта
• Эквивалентность
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• Назначение :
– Дает способ идентифицировать объект пригодный для
использования в очередях
• Проблема
– Сложные системы могут иметь несколько идентификаторов
представляющих объект
– В разных контекстах могут быть использованы разные
идентификаторы
• Пример:
– данные паспорта идентифицируют гражданина России
– В туристической поездке вам нужен иностранный паспорт
– В библиотеке и Вас идентифицируют с помощью номера карты
библиотеки
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• Ограничения
– Идентификатор строки должен быть уникальным для
каждой схемы идентификации
– Идентификатор String должен быть неизменным
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• Объекты меняются
• Если вам нужно ответить на запросы,
связанные с предыдущим состоянием
объекта, вы должны записать его
изменения
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• Журнал (Audit Log)
– простой журнал аудита, где записи могут быть
легко добавлены
• Время действия (Effectivity)
– Добавление к объекту времени его действия
• Временные свойства
– Свойства изменяющиеся со временем
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• Snapshot
– Представление объекта в определенное время
• Временный объект (Temporal object)
– На время изменения создается временный
объект
• Отметки времени (Time Point)
– Создавать отметки времени для каждого
действия
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• Отчетность (Accountability) - описание отношений между
элементами структуры (например, организации).
• Наблюдение и измерение - используется для записи
информация о реальных процессах.
• Бухгалтерский учет - используется в системах учета.
• Планирование - системы планирования и распределения
ресурсов.
• Trading - используется в системах для торговли, анализ
деятельности.
• Производные контракты
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
• http://martinfowler.com/tags/analysis%20patt
erns.html
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
•
•
•
•
•
•
•
•
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Часть 1
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Часть 2
‹#›ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ
Безуглый Дмитрий
bdl@system-approach.ru
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

  • 1.
  • 2.
    Часть 1 ЛЕКЦИЯ №5КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  • 3.
    • Моделирование —исследование объектов познания на их моделях; построение и изучение моделей реально существующих предметов, процессов или явлений с целью получения объяснений этих явлений, а также для предсказания явлений, интересующих исследователя.
  • 4.
    • Субъект (исследователь), •Объект исследования, • Цель моделирования • Перспектива или точка зрения, • Метамодель (Правила моделирования), • Модель.
  • 5.
    Code No model “What’s a model?” Model Code Code visualization “Thecode 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
  • 7.
    • … • Петроглифы •Блок-схемы • Р-технология • Диаграммы потоков данных (DFD) • Диаграммы «сущность-связь» (ERD) • Методология структурного анализа и проектирования (SADT) • … 7
  • 8.
    8 UML 1.4 10/2001 UML1.5 11/2003 UML 2.0 8.03-9.05 Конкурс 1.2000-7.2003
  • 9.
    9 1997 UML 1.1 2001 UML 1.4 1999 UML1.3 2003 UML 1.5 UML 2.0 Инструментальная поддержка Самодеятельность III поколение II поколение I поколение finalization 2005 MDA 1 3 33
  • 10.
    • В описанииUML используются три языковых уровня: • Мета-метамодель - описание языка, на котором описана метамодель - описание используемого формализма • Метамодель - описание языка, на котором описываются модели - собственно описание языка (элементов моделирования • Модель - описание самой моделируемой предметной области - естественный язык 10
  • 11.
    11 Behavior::Common Behavior Behavior::Interactions Behavior::UseCase Behavior::State Machines Behavior::Activities Behavior::Actions Structure::Classes Structure::Composite Structures Structure::Components Structure::Deployments Profiles Auxiliary Elements
  • 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 – И т.д.
  • 17.
    Классификаторы ( Графическое отображение) Component1Node1 UseCase1 move() resize() display() Origin Shape +set() : object +get() : object «interface»Stateful «datatype» Int «signal»Signal1 Component2 Стереотип
  • 18.
  • 19.
    Element Carbon Hydrogen <<covalent>> <<covalent>>C C C H :Carbon:Carbon :Hydrogen :Hydrogen :Hydrogen :Hydrogen :Hydrogen:Hydrogen Диаграмма классов Диаграмма объектов
  • 21.
    Fig. 3-84, UMLNotation Guide Dictionary Spell-check Synonyms mymailer: Mailer +Mailbox +RoutingList -MailQueue
  • 22.
    • Моделирования исходного кода •Моделирования выполняемого кода • Моделирования физических БД • Моделирования приспосабливаемых систем Planner Scheduler GUI Reservations Update
  • 23.
    • Диаграммы размещения обычно используются для: –Моделирования встроенных систем – Моделирования client/server систем – Моделирования полностью распределенных систем Сервер WebServer Auth Service Региональный сервер : Серве Региональный сервер : Сервер 1 1 1 1 Persistent storage 1 * Национальный север : Серве
  • 24.
    COMPONENT AND DEPLOYMENTDIAGRAMS High level component communication and dependencies.
  • 25.
    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.
  • 26.
    • Adopt anopportunistic 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
  • 28.
  • 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.
  • 35.
  • 37.
    Zero or more0..* Oneor more1..* Zero or one0..1 Specified range2..7 Exactly one 1 Множественность • Каждый конец ассоциации содержит индикатор множественности – Показывает кол-во объектов участвующих в отношениях
  • 38.
  • 39.
  • 40.
    • writings ofarchitect 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 designpattern 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.
    • … afully 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
  • 43.
    • 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
  • 44.
    Global architecture Enterprise architecture Systemarchitecture Application architecture Macro-architecture Micro-architecture Objects * Mowbray and Malve ORB OO architecture Frameworks Subsystem Design patterns OO programming
  • 45.
    • A solutionto a problem that occurs repeatedly in a variety of contexts. • Each pattern has a name. • Use of each pattern has consequences.
  • 46.
    • Generally ata “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
  • 48.
  • 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.
    • Журнал (AuditLog) – простой журнал аудита, где записи могут быть легко добавлены • Время действия (Effectivity) – Добавление к объекту времени его действия • Временные свойства – Свойства изменяющиеся со временем ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  • 59.
    • Snapshot – Представлениеобъекта в определенное время • Временный объект (Temporal object) – На время изменения создается временный объект • Отметки времени (Time Point) – Создавать отметки времени для каждого действия ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  • 60.
    • Отчетность (Accountability)- описание отношений между элементами структуры (например, организации). • Наблюдение и измерение - используется для записи информация о реальных процессах. • Бухгалтерский учет - используется в системах учета. • Планирование - системы планирования и распределения ресурсов. • Trading - используется в системах для торговли, анализ деятельности. • Производные контракты ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  • 61.
  • 62.
  • 63.
    Часть 1 ЛЕКЦИЯ №5КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
  • 64.
    Часть 2 ‹#›ЛЕКЦИЯ №5КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ
  • 65.
    Безуглый Дмитрий bdl@system-approach.ru ЛЕКЦИЯ №5КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›