Бизнес и системный анализ весна 2013 лекция 5
DESCRIPTION
TRANSCRIPT
ЛЕКЦИЯ №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
StructuresStructure::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
DictionarySpell-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..10..1
1
Representsan 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 more 0..*
One or more 1..*
Zero or one 0..1
Specified range 2..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 Malveau
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%20patterns.html
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
•
•
•
•
•
•
•
•
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Часть 1
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›
Часть 2
‹#› ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ