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

65
ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

Upload: technopark

Post on 05-Dec-2014

486 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

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

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

Часть 1

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• Моделирование — исследование объектов познания на их моделях; построение и изучение моделей реально существующих предметов, процессов или явлений с целью получения объяснений этих явлений, а также для предсказания явлений, интересующих исследователя.

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

• Субъект (исследователь),

• Объект исследования,

• Цель моделирования

• Перспектива или точка зрения,

• Метамодель (Правила моделирования),

• Модель.

Page 5: Бизнес и системный анализ весна 2013 лекция 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”

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

• Исторический контекст

• Развитие путем объединения и унификации

• Авторы и международное сообщество

• Современные тенденции

6

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

• …

• Петроглифы

• Блок-схемы

• Р-технология

• Диаграммы потоков данных (DFD)

• Диаграммы «сущность-связь» (ERD)

• Методология структурного анализа и проектирования (SADT)

• … 7

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

8

UML 1.4 10/2001

UML 1.5 11/2003 UML 2.0 8.03-9.05

Конкурс 1.2000-7.2003

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

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

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

• В описании UML используются три языковых уровня:

• Мета-метамодель - описание языка, на котором описана метамодель - описание используемого формализма

• Метамодель - описание языка, на котором описываются модели - собственно описание языка (элементов моделирования

• Модель - описание самой моделируемой предметной области - естественный язык

10

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

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

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

• Абстрактный синтаксис =

– Структура +

– Ограничения

• В UML определен

– Диаграммами классов +

– Ограничениями на OCL

• Графическая нотация =

– Отображение структуры на графические

картинки

• Семантика первична, нотация

вторична

12

Classifier

Feature

Structural Feature Behaviour Feature

1

*

-name

Model Element

+Operation Name()

+Attribute Name

Class Name

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

• (от лат. structūra — строение)

• В своём основном значении, структура есть внутреннее устройство чего-либо. Внутреннее устройство связано с категориями целого и его частей. Выявление связей, изучение взаимодействия и соподчиненности составных частей различных по своей природе объектов позволяет выявить аналогии в их организации и изучать структуры абстрактно без связи с реальными объектами.

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

• Моделирование системы включает в себя идентификацию объектов, которые формируют словарь моделируемой системы.

• Модель структуры: это представление системы, которое подчеркивает структуру объектов, включая их классификацию (таксономию), взаимосвязи, атрибуты и операции.

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

• Классификатор (classifier) - конструкция, которая обобщает класс, с помощью которого задаются элементы в модели, которые могут иметь экземпляры, а также операции и атрибуты.

• Например, экземпляры класса - это объекты.

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

• Показывают граф классификаторов соединенных постоянными связями.

• Виды

– Диаграмма классов - (class diagram): classifier view

– Диаграмма объектов (object diagram): instance view

– И т.д.

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

Классификаторы

( Графическое отображение)

Component1 Node1

UseCase1

move()

resize()

display()

Origin

Shape

+set() : object

+get() : object

«interface»Stateful «datatype»

Int

«signal»Signal1

Component2

Стереотип

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

Structure diagram

Composite Structure diagram

Object diagram

Deployemnt diagram

Component diagram

Class diagram

Package diagram

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

Element

Carbon Hydrogen

<<covalent>>

<<covalent>>C

C

C H

:Carbon :Carbon

:Hydrogen

:Hydrogen

:Hydrogen

:Hydrogen

:Hydrogen:Hydrogen

Диаграмма классов

Диаграмма объектов

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

Fig. 3-84, UML Notation Guide

DictionarySpell-check

Synonyms

mymailer: Mailer

+Mailbox+RoutingList

-MailQueue

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

• Моделирования исходного кода

• Моделирования выполняемого кода

• Моделирования физических БД

• Моделирования приспосабливаемых систем

Planner

Scheduler

GUI

Reservations

Update

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

• Диаграммы размещения обычно используются для: – Моделирования

встроенных систем

– Моделирования client/server систем

– Моделирования полностью распределенных систем

Сервер

WebServer

Auth Service

Региональный

сервер : Серве

Региональный

сервер : Сервер

1

1

1

1

Persistent storage

1

*

Национальный

север : Серве

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

COMPONENT AND DEPLOYMENT DIAGRAMS

High level component communication and dependencies.

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

Member-of

Chair-of

{subset}Person Committee

Person Company

boss

{Person.employer =Person.boss.employer}

employeremployee

0..10..1

1

Representsan incorporated entity.

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

• 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

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

• 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

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

Структурные диаграммы

Composite Structure diagram

Object diagram

Deployemnt diagram

Component diagram

Диаграмма Классов Class diagram

Пакеты Диаграммы

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

• Структурная модель: представление

системы, которая подчеркивает

структуру объектов, включая их

классификаторы, отношения, признаки и операции.

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

Package Name

Class Name Interface Name

<<Interface>>

Диаграмма классов

• Это представление статической структуры

системы

• Модель содержит множество диаграмм классов

• Диаграмма классов содержит:

– Пакеты (Packages), Классы (classes),

Интерфейсы (interfaces), и связи (relationships)

• Нотация:

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

Связи (Relationships)

• Диаграмма классов может содержать

следующие типы связей :

– Ассоциации (Association), Агрегации

(aggregation), зависимости (dependency),

реализации (realize), и наследования (inheritance)

• Нотация:

Association Aggregation Dependency

Inheritance Realize

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

• Основана на Объекно ориентированный дизайн и программирование (OOD, OOP).

• Диаграмма классов разделяет систему на области ответственности/responsibility (classes), и показывает “ассоциации” (зависимости ) между ними.

• Атрибуты(data), операции(methods), ограничения , отношения часть целое(aggregation) and kind-of (inheritance) связи , доступ , и кардинальность(1 или много) могут быть документированы.

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

• Диаграммы классов как правило используются на следующих уровня абстракции: ▫ Концептуальные (Conceptual/domain): диаграмма

представляет концепции в домене предметной области. Это моделирование соответствующих ролей и зон ответственности предметной области.

▫ Спецификации(design): показывают интерфейсы между компонентами в ПО. Интерфейсы не зависят от реализации.

▫ Реализации (Implementation): показывают классы которые соответствуют непосредственно коду (often Java or C++ classes). Служат в качестве проекта (blueprint) для реализации ПО. Этого уровня диаграммы дает Reverse-engineering.

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

Package Relationships

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

Zero or more 0..*

One or more 1..*

Zero or one 0..1

Specified range 2..7

Exactly one 1

Множественность

• Каждый конец ассоциации содержит

индикатор множественности

– Показывает кол-во объектов участвующих в

отношениях

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

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

Множественность(2)

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

• 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)

• ….

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

• 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

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

• … 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

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

• 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

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

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

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

• A solution to a problem that occurs repeatedly in a variety of contexts.

• Each pattern has a name.

• Use of each pattern has consequences.

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

• Generally at a “higher level” of abstraction.

• Not about designs such as linked lists or hash tables.

• Generally descriptions of communicating objects and classes.

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

• Name • Intent • Motivation • Applicability • Structure • Consequences • Implementation • Known Uses • Related Patterns

Problem

Solution

Benefits

Related Patterns

Consequences

Forces

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

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

Концептуальная модель Conceptual Model

• Концептуальная модель представляет собой определенный набор понятий и отношений между ними, который представляет собой концептуальную структуру описываемой предметной области

• Любые вопросы связанные с реализацией программного продукта считаются выходящими за пределы концептуальной модели

• Концептуальная модель также называется аналитической моделью

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• Домен является частью реального мира, что необходимой или имеющей непосредственное отношение к работе программы.

– Другими словами, Домен включает в себя только те объекты и связи между ними, которые необходимы для описания требований и условий для решения конкретной задачи.

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

Аналитические Analysis Patterns

• Аналитические паттерны используются для анализа организационной структуры, процессов и предметной области для дальнейшего моделирования и реализации в программном продукте (Martin Fowler, 1997).

• Некоторые Аналитические паттерны специфичны для конкретных доменов, но большинство из них имеют более широкое применение.

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• По решаемым задачам

– Структура объектов (Referring to Objects) - методы идентификации объектов

– Объекты, которые меняются с течением времени - методы, чтобы показать изменения состояния объекта во времени

(M. Fowler)

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

Referring to Objects (Problem)

• Большинство понятий являются уникальными

• Концептуальная модель должна обеспечить

– Способы идентификации уникального объекта

– Способы объединения двух объектов, представляющих тот же объект предметной области

– Способы подтверждения идентичности двух объектов

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• Идентификатор

• Схема определения

• Вытеснение объектов

• Сущность объекта

• Эквивалентность

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• Назначение : – Дает способ идентифицировать объект пригодный для

использования в очередях

• Проблема – Сложные системы могут иметь несколько идентификаторов

представляющих объект

– В разных контекстах могут быть использованы разные идентификаторы

• Пример: – данные паспорта идентифицируют гражданина России

– В туристической поездке вам нужен иностранный паспорт

– В библиотеке и Вас идентифицируют с помощью номера карты библиотеки

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• Ограничения

– Идентификатор строки должен быть уникальным для каждой схемы идентификации

– Идентификатор String должен быть неизменным

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• Объекты меняются

• Если вам нужно ответить на запросы, связанные с предыдущим состоянием объекта, вы должны записать его изменения

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• Журнал (Audit Log)

– простой журнал аудита, где записи могут быть легко добавлены

• Время действия (Effectivity)

– Добавление к объекту времени его действия

• Временные свойства

– Свойства изменяющиеся со временем

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• Snapshot

– Представление объекта в определенное время

• Временный объект (Temporal object)

– На время изменения создается временный объект

• Отметки времени (Time Point)

– Создавать отметки времени для каждого действия

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• Отчетность (Accountability) - описание отношений между элементами структуры (например, организации).

• Наблюдение и измерение - используется для записи информация о реальных процессах.

• Бухгалтерский учет - используется в системах учета.

• Планирование - системы планирования и распределения ресурсов.

• Trading - используется в системах для торговли, анализ деятельности.

• Производные контракты

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

• http://martinfowler.com/tags/analysis%20patterns.html

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

Часть 1

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›

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

Часть 2

‹#› ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ

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

Безуглый Дмитрий

[email protected]

ЛЕКЦИЯ №5 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›