Бизнес и системный анализ весна 2013 лекция 5
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 334 views

 

Statistics

Views

Total Views
334
Views on SlideShare
308
Embed Views
26

Actions

Likes
0
Downloads
14
Comments
0

1 Embed 26

https://tech-mail.ru 26

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Бизнес и системный анализ весна 2013 лекция 5 Бизнес и системный анализ весна 2013 лекция 5 Presentation 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 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 КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ‹#›