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

66
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

Upload: technopark

Post on 18-Jan-2015

331 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

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

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

Часть 1

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

Часть 2

‹#› ЛЕКЦИЯ №8 Перспективы и паттерны .

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

Архитектура

Модель качества

Характеристики и подхарктеристики модели качества продукта

Сценарии атрибутов качества

Профиль качества продукта

ЛЕКЦИЯ №8 Перспективы и паттерны . 4

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

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• An architectural style is a specific method of construction, characterized by the features that make it notable. A style may include such elements as form, method of construction, materials, and regional character.

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• Adaptable systems

• Plug-ins

• Microkernel

• Reflection

• Domain specific languages

• Distributed Systems

• Client-server (2-tier, 3-tier, n-tier exhibit this style)

• Shared nothing architecture

• Space based architecture

• Broker

• Peer-to-peer

• Representational State Transfer

• Service-oriented

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

ЛЕКЦИЯ №8

Перспективы и

паттерны .

Архитектурный элемент

Архитектура

Взаимосвязь

Система

Заинтересованные лица

Архитектурное описание

Состоит из

Обладает

Может иметь

Описывает архитектуру для

Удовлетворяет потребности

Связывает

Вопрос / Интерес

Имеет

Точка зрения (Viewpoint) Проекция (View)

Состоит из

Соответствует

Перспектива (perspective)

Уточняется Удовлетворяет

Удовлетворяет

‹#›

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

• Несмотря на то что совокупность всех проекций (view) системы описывает систему полностью , каждая из проекций является достаточно независимой.

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

• Определение: Перспектива (perspective) это совокупность действий, приемов и руководств которые используются для представления реализации конкретного набора атрибутов качества которые требуют рассмотрения в нескольких архитектурных проекциях.

ЛЕКЦИЯ №8

Перспективы и

паттерны .

‹#›

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

• Применимость (Applicability)

– Описывает к каким проекциям наиболее вероятно может быть применена перспектива.

• Вопросы (Concerns)

– Определяет атрибут качества системы которому соответсвует перспектива

• Действия (Activities)

– Описание шагов по применению перспективы к проекции.

• Архитектурная тактика (Architectural tactics):

– Это признанная практика которую вы можете использовать для достижения определенного качества системы

• Проблемы и подводные камни:

• Контрольные списки

• Ссылки и рекомендации для углубленного изучения

ЛЕКЦИЯ №8

Перспективы и

паттерны .

‹#›

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

• Определение важных атрибутов качества 1

• Анализ проекций с точки зрения удовлетворения выделенных атрибутов качества 2

• Принятие архитектурных решений которые модифицируют и улучшают соответствующие проекции 3

ЛЕКЦИЯ №8

Перспективы и

паттерны .

‹#›

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

07.05.2013 Владелец продукта (Product Owner). Работа с требованиями в Agile среде

16

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

Rosenberg.Use.Case.Driven.Object.Modeling.with.UML.Jan.2007

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

Stand Up

Meeting at

9:00

Pair Up -- Quick

Design Session

Test Q&A

Code Refactor

Integrate or

Toss

Go Home at

17:00

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

‹#› ЛЕКЦИЯ №8 Перспективы и паттерны .

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

• Бизнес приложения – ERP, биллинг, credit scoring, logistics tracking

• Огромный объем сложных данных – Терабайтные хранилища содержащие сотни таблиц

• Множество одновременных пользователей

• Большое кол-во ролей пользователей

• Бизнес логика может быть сложной и иррациональной

• Большое кол-во систем с которыми приходится интегрироваться

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

Каждый слой это согласованное целое

Замещение слоев

Множество вышестоящих слоев над одним

Предупреждения:

• Некоторые вопросы нельзя инкапсулировать достаточно хорошо

• Может угрожать производительности

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• Презентационный – Взаимодействует с пользователем приложения

– Толстый/тонкий клиент, web сервис

• Домен – Бизнес правила , валидаторы , расчеты

• Данные (Data Source) – Интеграция

– Персистентность - способность ПО создавать и поддерживать перманентные объекты (Persistence): RDBMs

– Обмен сообщениями, Web сервисы ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

Presentation

Controller / Mediator

Domain

Data Mapping

Data Source

Presentation

Domain

Data Source

Application Controller

Data Mapper

Brown et al, Enterprise Java Programming with IBM Websphere, Addison-Wesley

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

Client

Presentation

Business

Integration

Resource

Presentation

Domain

Data Source

Client side

Server Side

External systems

Alur, Crupi and Malks, Core J2EE Patterns, Prentice Hall

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

Presentation

Domain

Data Source

Presentation

Business

Data Access

Kirtland, Designing Component Based Architectures, Microsoft Press

‹#›

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

• Transaction Script

• Domain Model

• Table Module

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

recognizedRevenue (contractNumber: long, asOf: Date) : Money

calculateRevenueRecognitions (contractNumber long) : void

Recognition Service

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

a Recognition

Service

calculateRecognitions (contractID)

a Data Gateway

a contract result

set

findContract (contract ID)

get data

* insert revenue recognition

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

recognizedRevenue (date)

calculateRecognitions

Contract

calculateRecognitions (contract)

Product

Recognition

Strategy

Complete

Recognition

Strategy

1

1

*

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

a Contract

calculateRecognitions

a Product

calculateRecognitions (a Contract)

a Recognition

Strategy

calculateRecognitions (a Contract)

a Revenue

Recognitionnew

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

CalculateRecognitions (ID)

Contract

GetProductType (ID)

Product

Insert (ID, amount, date)

RecognizedRevenue (contractID, date)

Revenue Recognition

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

a Contract

new (theDataSet)

calculateRecognitions (contractID)

a Product

new (theDataSet)

a Revenue

Recognition

new (theDataSet)

getProductType (productID)

* insert

‹#›

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

Преимущества :

Простая (процедурная) модель программирования

Простое взаимодействие с базой данных

Предупреждения:

• Дублирование логики в различных скриптах

• Сложность нарастает по мере усложнения предметной области

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

Преимущества :

Позволяет работать с предметной областью крайне высокой сложности

Предупреждения:

• Сдвиг парадигмы разработки

• Сложная стыковка с базой данных

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

Преимущества :

Единая структура данных для всех слоев (Record Set)

Организована для процедур

Предупреждения:

• Сложно работать со сложной предметной областью

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• Модель вид контролер (Model View Controller)

• Контроллер приложения (Application Controller)

• Контроллер Ввода\Вывода (Input Controller) – Page Controller

– Front Controller

• Представление (View) – Template View

– Transform View

– Two Step View

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• Model – The domain object

• View – Presents information to user

• (Input) Controller – Handles user input

ЛЕКЦИЯ №8 Перспективы и паттерны .

Model

View Controller

Separation of Presentation (View/Controller) from Domain (Model)

Separation of View and Controller

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

an input controlleran application

controller

request

get domain command

a domain

command

run

get view

a view

forward

Централизованная точка для обработки навигации между экранами

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

Input Controller

View

Application

ControllerDomain Layer

‹#›

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

• Единая точка контроля для изменения порядка выполнения и навигации

• Может быть расположен в промежуточном слое между презентационным слоем и слоем бизнес логики (domain)

• Позволяет использовать разные слои представления

• Может быть протестирован отдельно от уровня презентации

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• Один контроллер для каждого действия или страницы

• Может использовать серверные страницы в качетсве обработчика

ЛЕКЦИЯ №8 Перспективы и паттерны .

-- handle http get

and post

-- decide which

model and view to

use

Page Controller -- domain logic

Model

-- display HTML

View

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

• Один контроллер ввода/вывода в приложении

doGet

doPost

Handler

process

Abstract

Command

process

Concrete

Command 1

process

Concrete

Command 2

‹#›

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

Контроллер страницы

• Легко сопровождать

• Не рекомендовано хранить логику контроллера в страницах

Центральный контроллер

• Единая точка для добавления поведения

• Позволяет добавлять поведение динамически (перехватывающий фильтр)

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

Book

Author

Model

<HTML><P><B>

<jsp:getProperty

name="bookHelper"

property="title"/></B>

<BR/>

Author:

<jsp:getProperty

name="bookHelper"

property="author"/>

</P>

</HTML>

getTitle

getAuthor

Book Helper

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

transformAlbum

transformArtist

TransformerAlbum

Artist

Model

HTML

read

creates

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

artist: Artist

Album

renderAlbum

renderArtist

Stage 1

artist: Field

Screen

renderScreen

renderField

Stage 2

HTML

read

read

create

create

‹#›

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

• Шаблон представления – Следует естественным принципам редактирования

– Позволяет редактирование HTML не программистами

– Требует дисциплины для избежания скриплетов

• Преобразование представления – Может быть протестировано без использования Web сервера

– Хорош работает с XML (XSLT)

• Двух шаговое представление (Two Step View) – Легко осуществлять глобальное изменение дизайна

– Легко поддерживать шкуры (skins)

– Сложно в реализации

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• Table Data Gateway

• Row Data Gateway

• Active Record

• Data Mapper

• Structural Patterns

– Foreign Key Mapping, Identity Field, Association Table Mapping, Single Table Inheritance….

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

find (id) : RecordSet

findForCompany(company id) : RecordSet

update (id, lastname, firstname, numberOfDependents)

insert (lastname, firstname, numberOfDependents)

delete (id)

Person Gateway

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

insert

update

delete

find (id)

findForCompany(companyID)

lastname

firstname

numbeOfDependents

Person Gateway

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

find (id)

findForCompany(company id)

Person Finder

insert

update

delete

lastname

firstname

numbeOfDependents

Person Gateway

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

insert

update

delete

getExemption

isFlaggedForAudit

getTaxableEarnings

lastName

firstName

numberOfDependents

Person

Row Data Gateway plus domain logic in one class

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

insert

update

delete

Person Mapper

getExemption

isFlaggedForAudit

getTaxableEarnings

lastName

firstName

numberOfDependents

Person

‹#›

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

• Если используется Table Module

– Table Data Gateway

• Если используетсяTransaction Script и не Domain Model

– Table Data Gateway

– Row Data Gateway

– Выбирайте по принципу комфортности работы с record sets или row gateway objects

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• Если вы используете простую и сходную по структуре Domain Model

– Active Record

– Data Mapper: В случае использования специального инструментария

• Если используете сложную Domain Model

– Data Mapper

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• Remote Façade

• Data Transfer Object

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

Invoice Customer

Order Delivery

‹#›

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

• Детальное представление адреса: – getStreet

– setStreet

– getCity

– setCity

– getZip

– setZip

ЛЕКЦИЯ №8 Перспективы и паттерны .

• Укрупненное : – getAddressData

– setAddressData

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

getAddressData

setAddress(street, city, zip)

Address Facade

getStreet()

getCity()

getZip()

setStreet(arg)

setCity(arg)

setZip(arg)

Address

‹#›

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

ЛЕКЦИЯ №8 Перспективы и паттерны .

toXmlElement

readXml

title: String

artist: String

AlbumDTO

Album Assembler

title: String

Album

name: String

Artist

1

*

‹#›

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

• Fowler – Patterns of Enterprise Application Architecture –

martinfowler.com/eaaCatalog

• Hohpe and Woolf – Enterprise Integration Patterns –

enterpriseIntegrationPatterns.com

• Hohmann – Beyond Software Architecture -

lukehohmann.com

• Evans – Domain Driven Development – domainLanguage.com

• Alur, Crupi, and Malks – Core J2EE Patterns

• Marinescu – EJB Patterns По материалам ThoughtWorks martinfowler.com

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

• Software Systems Architecture : Working With Stakeholders Using Viewpoints and Perspectives

ЛЕКЦИЯ №8 Перспективы и паттерны . 62

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

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

Часть 1

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

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

Часть 2

‹#› ЛЕКЦИЯ №8 Перспективы и паттерны .

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

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

[email protected]

ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›