SlideShare a Scribd company logo
1 of 66
Download to read offline
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
Часть 1
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
Часть 2
‹#›ЛЕКЦИЯ №8 Перспективы и паттерны .
 Архитектура
 Модель качества
 Характеристики и подхарктеристики
модели качества продукта
 Сценарии атрибутов качества
 Профиль качества продукта
ЛЕКЦИЯ №8 Перспективы и паттерны . 4
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
ЛЕКЦИЯ №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 Перспективы и паттерны . ‹#›
• Component-based
• Monolithic application aka "Big Ball of Mud"
style
• Layered
• Pipes and filters
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
• Shared Memory
• Data-centric
• Blackboard
• Rule-based
• Messaging
• Event-
driven aka Implicit
invocation
• Publish-subscribe
• Asynchronous
messaging
ЛЕКЦИЯ №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 Перспективы и паттерны . ‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
ЛЕКЦИЯ №8
Перспективы и
паттерны .
Архитектурный
элемент
Архитектура
Взаимосвязь
Система
Заинтересованные
лица
Архитектурное
описание
Состоит из
Обладает
Может иметь
Описывает
архитектуру для
Удовлетворяет
потребности
Связывает
Вопрос / Интерес
Имеет
Точка зрения
(Viewpoint) Проекция (View)
Состоит из
Соответствует
Перспектива
(perspective)
Уточняется
Удовлетворяет
Удовлетворяет
‹#›
• Несмотря на то что совокупность всех проекций (view) системы
описывает систему полностью , каждая из проекций является
достаточно независимой.
• Кроме того, большая часть атрибутов качества системы
проявляются и влияют на несколько проекций.
• Определение: Перспектива (perspective) это совокупность
действий, приемов и руководств которые используются для
представления реализации конкретного набора атрибутов
качества которые требуют рассмотрения в нескольких
архитектурных проекциях.
ЛЕКЦИЯ №8
Перспективы и
паттерны .
‹#›
• Применимость (Applicability)
– Описывает к каким проекциям наиболее вероятно может быть применена
перспектива.
• Вопросы (Concerns)
– Определяет атрибут качества системы которому соответсвует
перспектива
• Действия (Activities)
– Описание шагов по применению перспективы к проекции.
• Архитектурная тактика (Architectural tactics):
– Это признанная практика которую вы можете использовать для достижения
определенного качества системы
• Проблемы и подводные камни:
• Контрольные списки
• Ссылки и рекомендации для углубленного изучения
ЛЕКЦИЯ №8
Перспективы и
паттерны .
‹#›
• Определение важных атрибутов
качества1
• Анализ проекций с точки зрения
удовлетворения выделенных атрибутов
качества2
• Принятие архитектурных решений
которые модифицируют и улучшают
соответствующие проекции3
ЛЕКЦИЯ №8
Перспективы и
паттерны .
‹#›
07.05.2013
Владелец продукта (Product Owner).
Работа с требованиями в Agile среде
16
Rosenberg.Use.Case.Driven.Object.Modeling.with.UML.Jan.2007
Stand Up
Meeting at
9:00
Pair Up -- Quick
Design Session
Test Q&A
Code Refactor
Integrate or
Toss
Go Home at
17:00
‹#›ЛЕКЦИЯ №8 Перспективы и паттерны .
• Бизнес приложения
– ERP, биллинг, credit scoring, logistics tracking
• Огромный объем сложных данных
– Терабайтные хранилища содержащие сотни таблиц
• Множество одновременных пользователей
• Большое кол-во ролей пользователей
• Бизнес логика может быть сложной и
иррациональной
• Большое кол-во систем с которыми приходится
интегрироваться
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
Каждый слой это согласованное целое
Замещение слоев
Множество вышестоящих слоев над одним
Предупреждения:
• Некоторые вопросы нельзя
инкапсулировать достаточно хорошо
• Может угрожать производительности
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
• Презентационный
– Взаимодействует с пользователем приложения
– Толстый/тонкий клиент, web сервис
• Домен
– Бизнес правила , валидаторы , расчеты
• Данные (Data Source)
– Интеграция
– Персистентность - способность ПО создавать и
поддерживать перманентные объекты
(Persistence): RDBMs
– Обмен сообщениями, Web сервисыЛЕКЦИЯ №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
‹#›
ЛЕКЦИЯ №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
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
Presentation
Domain
Data Source
Presentation
Business
Data Access
Kirtland, Designing Component Based Architectures, Microsoft Press
‹#›
• Transaction Script
• Domain Model
• Table Module
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
recognizedRevenue (contractNumber: long, asOf: Date) : Money
calculateRevenueRecognitions (contractNumber long) : void
Recognition Service
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
a Recognition
Service
calculateRecognitions (contractID)
a Data Gateway
a contract result
set
findContract (contract ID)
get data
* insert revenue recognition
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
recognizedRevenue (date)
calculateRecognitions
Contract
calculateRecognitions (contract)
Product
Recognition
Strategy
Complete
Recognition
Strategy
1
1
*
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
a Contract
calculateRecognitions
a Product
calculateRecognitions (a Contract)
a Recognition
Strategy
calculateRecognitions (a Contract)
a Revenue
Recognition
new
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
CalculateRecognitions (ID)
Contract
GetProductType (ID)
Product
Insert (ID, amount, date)
RecognizedRevenue (contractID, date)
Revenue Recognition
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
a Contract
new (theDataSet)
calculateRecognitions (contractID)
a Product
new (theDataSet)
a Revenue
Recognition
new (theDataSet)
getProductType (productID)
* insert
‹#›
Преимущества :
Простая (процедурная) модель
программирования
Простое взаимодействие с базой данных
Предупреждения:
• Дублирование логики в различных скриптах
• Сложность нарастает по мере усложнения
предметной области
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
Преимущества :
Позволяет работать с предметной областью
крайне высокой сложности
Предупреждения:
• Сдвиг парадигмы разработки
• Сложная стыковка с базой данных
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
Преимущества :
Единая структура данных для всех слоев
(Record Set)
Организована для процедур
Предупреждения:
• Сложно работать со сложной предметной
областью
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
• Модель вид контролер (Model View Controller)
• Контроллер приложения (Application Controller)
• Контроллер ВводаВывода (Input Controller)
– Page Controller
– Front Controller
• Представление (View)
– Template View
– Transform View
– Two Step View
ЛЕКЦИЯ №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
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
an input controller
an application
controller
request
get domain command
a domain
command
run
get view
a view
forward
Централизованная точка для обработки
навигации между экранами
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
Input Controller
View
Application
Controller
Domain Layer
‹#›
• Единая точка контроля для изменения
порядка выполнения и навигации
• Может быть расположен в промежуточном
слое между презентационным слоем и
слоем бизнес логики (domain)
• Позволяет использовать разные слои
представления
• Может быть протестирован отдельно от
уровня презентации
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
• Один контроллер для каждого действия или страницы
• Может использовать серверные страницы в качетсве обработчика
ЛЕКЦИЯ №8 Перспективы и паттерны .
-- handle http get
and post
-- decide which
model and view to
use
Page Controller -- domain logic
Model
-- display HTML
View
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
• Один контроллер ввода/вывода в приложении
doGet
doPost
Handler
process
Abstract
Command
process
Concrete
Command 1
process
Concrete
Command 2
‹#›
Контроллер страницы
• Легко сопровождать
• Не рекомендовано
хранить логику
контроллера в страницах
Центральный контроллер
• Единая точка для
добавления поведения
• Позволяет добавлять
поведение динамически
(перехватывающий фильтр)
ЛЕКЦИЯ №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
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
transformAlbum
transformArtist
Transformer
Album
Artist
Model
HTML
read
creates
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
artist: Artist
Album
renderAlbum
renderArtist
Stage 1
artist: Field
Screen
renderScreen
renderField
Stage 2
HTML
read
read
create
create
‹#›
• Шаблон представления
– Следует естественным принципам редактирования
– Позволяет редактирование HTML не программистами
– Требует дисциплины для избежания скриплетов
• Преобразование представления
– Может быть протестировано без использования Web сервера
– Хорош работает с XML (XSLT)
• Двух шаговое представление (Two Step View)
– Легко осуществлять глобальное изменение дизайна
– Легко поддерживать шкуры (skins)
– Сложно в реализации
ЛЕКЦИЯ №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 Перспективы и паттерны . ‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
find (id) : RecordSet
findForCompany(company id) : RecordSet
update (id, lastname, firstname, numberOfDependents)
insert (lastname, firstname, numberOfDependents)
delete (id)
Person Gateway
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
insert
update
delete
find (id)
findForCompany(companyID)
lastname
firstname
numbeOfDependents
Person Gateway
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
find (id)
findForCompany(company id)
Person Finder
insert
update
delete
lastname
firstname
numbeOfDependents
Person Gateway
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
insert
update
delete
getExemption
isFlaggedForAudit
getTaxableEarnings
lastName
firstName
numberOfDependents
Person
Row Data Gateway plus
domain logic in one class
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
insert
update
delete
Person Mapper
getExemption
isFlaggedForAudit
getTaxableEarnings
lastName
firstName
numberOfDependents
Person
‹#›
• Если используется Table Module
– Table Data Gateway
• Если используетсяTransaction Script и не
Domain Model
– Table Data Gateway
– Row Data Gateway
– Выбирайте по принципу комфортности работы
с record sets или row gateway objects
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
• Если вы используете простую и сходную по
структуре Domain Model
– Active Record
– Data Mapper: В случае использования
специального инструментария
• Если используете сложную Domain Model
– Data Mapper
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
• Remote Façade
• Data Transfer Object
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
Invoice Customer
Order Delivery
‹#›
• Детальное представление адреса:
– getStreet
– setStreet
– getCity
– setCity
– getZip
– setZip
ЛЕКЦИЯ №8 Перспективы и паттерны .
• Укрупненное :
– getAddressData
– setAddressData
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
getAddressData
setAddress(street, city, zip)
Address Facade
getStreet()
getCity()
getZip()
setStreet(arg)
setCity(arg)
setZip(arg)
Address
‹#›
ЛЕКЦИЯ №8 Перспективы и паттерны .
toXmlElement
readXml
title: String
artist: String
AlbumDTO
Album Assembler
title: String
Album
name: String
Artist
1
*
‹#›
• 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 Перспективы и паттерны . ‹#›
• Software Systems
Architecture : Working
With Stakeholders Using
Viewpoints and
Perspectives
ЛЕКЦИЯ №8 Перспективы и паттерны . 62
•
•
•
•
•
•
•
•
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
Часть 1
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
Часть 2
‹#›ЛЕКЦИЯ №8 Перспективы и паттерны .
Безуглый Дмитрий
bdl@system-approach.ru
ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

More Related Content

What's hot

Управление требованиями VS Разработка требований. Принципы и инструменты
Управление требованиями VS Разработка требований. Принципы и инструментыУправление требованиями VS Разработка требований. Принципы и инструменты
Управление требованиями VS Разработка требований. Принципы и инструменты
SQALab
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
Dima Dzuba
 
практика управления требованиями
практика управления требованиямипрактика управления требованиями
практика управления требованиями
ISsoft
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
Ievgenii Katsan
 
DUMP-2013 Управление разработкой - Как дорасти до аналитика? - Желнова Наталья
DUMP-2013 Управление разработкой - Как дорасти до аналитика? - Желнова НатальяDUMP-2013 Управление разработкой - Как дорасти до аналитика? - Желнова Наталья
DUMP-2013 Управление разработкой - Как дорасти до аналитика? - Желнова Наталья
it-people
 

What's hot (20)

Менеджер продукта: где границы роли?
Менеджер продукта: где границы роли?Менеджер продукта: где границы роли?
Менеджер продукта: где границы роли?
 
Обучение IT-аналитиков
Обучение IT-аналитиковОбучение IT-аналитиков
Обучение IT-аналитиков
 
Requirements in Agile
Requirements in AgileRequirements in Agile
Requirements in Agile
 
МАПО 2013 Лекция 06 CASE-системы
МАПО 2013 Лекция 06 CASE-системыМАПО 2013 Лекция 06 CASE-системы
МАПО 2013 Лекция 06 CASE-системы
 
01. Аналитик. Введение в профессию
01. Аналитик. Введение в профессию01. Аналитик. Введение в профессию
01. Аналитик. Введение в профессию
 
Оценка аутсорсинговых проектов
Оценка аутсорсинговых проектовОценка аутсорсинговых проектов
Оценка аутсорсинговых проектов
 
UX-команда и идеальные продукты
UX-команда и идеальные продуктыUX-команда и идеальные продукты
UX-команда и идеальные продукты
 
Управление требованиями VS Разработка требований. Принципы и инструменты
Управление требованиями VS Разработка требований. Принципы и инструментыУправление требованиями VS Разработка требований. Принципы и инструменты
Управление требованиями VS Разработка требований. Принципы и инструменты
 
Презентация к докладу на Secon.ru
Презентация к докладу на Secon.ruПрезентация к докладу на Secon.ru
Презентация к докладу на Secon.ru
 
Вебинар "Введение в процесс разработки ПО"
Вебинар "Введение в процесс разработки ПО"Вебинар "Введение в процесс разработки ПО"
Вебинар "Введение в процесс разработки ПО"
 
Cтадии проекта и состав технической документации
Cтадии проекта и состав технической документацииCтадии проекта и состав технической документации
Cтадии проекта и состав технической документации
 
It global meetup_02a
It global meetup_02aIt global meetup_02a
It global meetup_02a
 
L4 requirements
L4 requirementsL4 requirements
L4 requirements
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Аналитик на тёмной стороне
Аналитик на тёмной сторонеАналитик на тёмной стороне
Аналитик на тёмной стороне
 
It global meetup_01
It global meetup_01It global meetup_01
It global meetup_01
 
практика управления требованиями
практика управления требованиямипрактика управления требованиями
практика управления требованиями
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
 
DUMP-2013 Управление разработкой - Как дорасти до аналитика? - Желнова Наталья
DUMP-2013 Управление разработкой - Как дорасти до аналитика? - Желнова НатальяDUMP-2013 Управление разработкой - Как дорасти до аналитика? - Желнова Наталья
DUMP-2013 Управление разработкой - Как дорасти до аналитика? - Желнова Наталья
 
Открытая лекция №2 - Веб разработка. Часть 2
Открытая лекция №2 - Веб разработка. Часть 2Открытая лекция №2 - Веб разработка. Часть 2
Открытая лекция №2 - Веб разработка. Часть 2
 

Viewers also liked

Moskva Architecture Highload
Moskva Architecture HighloadMoskva Architecture Highload
Moskva Architecture Highload
Ontico
 
Что такое Transfer Learning, или как перестать бояться и начать использовать ...
Что такое Transfer Learning, или как перестать бояться и начать использовать ...Что такое Transfer Learning, или как перестать бояться и начать использовать ...
Что такое Transfer Learning, или как перестать бояться и начать использовать ...
it-people
 
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
it-people
 
Анатомия веб-сервиса (РИТ-2014)
Анатомия веб-сервиса (РИТ-2014)Анатомия веб-сервиса (РИТ-2014)
Анатомия веб-сервиса (РИТ-2014)
Andrey Smirnov
 
aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)
Andrey Smirnov
 
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
Andrey Smirnov
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)
Andrey Smirnov
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шаги
Anton Gorokhov
 

Viewers also liked (20)

Moskva Architecture Highload
Moskva Architecture HighloadMoskva Architecture Highload
Moskva Architecture Highload
 
Про Git
Про GitПро Git
Про Git
 
Что такое Transfer Learning, или как перестать бояться и начать использовать ...
Что такое Transfer Learning, или как перестать бояться и начать использовать ...Что такое Transfer Learning, или как перестать бояться и начать использовать ...
Что такое Transfer Learning, или как перестать бояться и начать использовать ...
 
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
 
Анатомия веб-сервиса (РИТ-2014)
Анатомия веб-сервиса (РИТ-2014)Анатомия веб-сервиса (РИТ-2014)
Анатомия веб-сервиса (РИТ-2014)
 
aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
 
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
 
Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub
 
Map reduce
Map reduceMap reduce
Map reduce
 
Шардинг в MongoDB, Henrik Ingo (MongoDB)
Шардинг в MongoDB, Henrik Ingo (MongoDB)Шардинг в MongoDB, Henrik Ingo (MongoDB)
Шардинг в MongoDB, Henrik Ingo (MongoDB)
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шаги
 
Voldemort
VoldemortVoldemort
Voldemort
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Курс высокие нагрузки: сеть (отрывок)
Курс высокие нагрузки: сеть (отрывок)Курс высокие нагрузки: сеть (отрывок)
Курс высокие нагрузки: сеть (отрывок)
 
Курс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокКурс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывок
 
Курс высокие нагрузки: очереди (отрывок)
Курс высокие нагрузки:  очереди (отрывок)Курс высокие нагрузки:  очереди (отрывок)
Курс высокие нагрузки: очереди (отрывок)
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
 
Netflix Global Cloud Architecture
Netflix Global Cloud ArchitectureNetflix Global Cloud Architecture
Netflix Global Cloud Architecture
 

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

Тимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПОТимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПО
Yandex
 
доклад на SQADays 2011 в Казани
доклад на SQADays  2011 в Казанидоклад на SQADays  2011 в Казани
доклад на SQADays 2011 в Казани
margo-qa
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действии
Gleb Rybalko
 

Similar to Бизнес и системный анализ весна 2013 лекция 8 (20)

Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
 
Опыт ДС БАРС по внедрению процессов КТ-178B
Опыт ДС БАРС по внедрению процессов КТ-178BОпыт ДС БАРС по внедрению процессов КТ-178B
Опыт ДС БАРС по внедрению процессов КТ-178B
 
Тимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПОТимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПО
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
 
Никита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗНикита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗ
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
Бизнес-анализ в мобильной разработке
Бизнес-анализ в мобильной разработкеБизнес-анализ в мобильной разработке
Бизнес-анализ в мобильной разработке
 
Технический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&AT
 
Организация процесса ручного тестирования
Организация процесса ручного тестированияОрганизация процесса ручного тестирования
Организация процесса ручного тестирования
 
Развертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСРазвертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИС
 
доклад на SQADays 2011 в Казани
доклад на SQADays  2011 в Казанидоклад на SQADays  2011 в Казани
доклад на SQADays 2011 в Казани
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действии
 
R-Style Part
R-Style PartR-Style Part
R-Style Part
 
Промышленная разработка ПО. Лекция 6. Особенности работы системного аналитика
Промышленная разработка ПО. Лекция 6. Особенности работы системного аналитикаПромышленная разработка ПО. Лекция 6. Особенности работы системного аналитика
Промышленная разработка ПО. Лекция 6. Особенности работы системного аналитика
 
Dump nzh 01
Dump nzh 01Dump nzh 01
Dump nzh 01
 
Тестирование требований
Тестирование требованийТестирование требований
Тестирование требований
 
Методы оценки качества требований и работы аналитика
Методы оценки качества требований и работы аналитикаМетоды оценки качества требований и работы аналитика
Методы оценки качества требований и работы аналитика
 
Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...
Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...
Конференция Cybermarketing 2015: Яндекс.Метрика или как «большой брат» следит...
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
 
Бизнес-анализ: грани разумного
Бизнес-анализ: грани разумногоБизнес-анализ: грани разумного
Бизнес-анализ: грани разумного
 

More from Technopark

СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark
 

More from Technopark (20)

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 

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

  • 1. ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 2. Часть 1 ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 3. Часть 2 ‹#›ЛЕКЦИЯ №8 Перспективы и паттерны .
  • 4.  Архитектура  Модель качества  Характеристики и подхарктеристики модели качества продукта  Сценарии атрибутов качества  Профиль качества продукта ЛЕКЦИЯ №8 Перспективы и паттерны . 4
  • 5. ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 6. ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 7. • 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 Перспективы и паттерны . ‹#›
  • 8. • Component-based • Monolithic application aka "Big Ball of Mud" style • Layered • Pipes and filters ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 9. • Shared Memory • Data-centric • Blackboard • Rule-based • Messaging • Event- driven aka Implicit invocation • Publish-subscribe • Asynchronous messaging ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 10. • 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 Перспективы и паттерны . ‹#›
  • 11. ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 12. ЛЕКЦИЯ №8 Перспективы и паттерны . Архитектурный элемент Архитектура Взаимосвязь Система Заинтересованные лица Архитектурное описание Состоит из Обладает Может иметь Описывает архитектуру для Удовлетворяет потребности Связывает Вопрос / Интерес Имеет Точка зрения (Viewpoint) Проекция (View) Состоит из Соответствует Перспектива (perspective) Уточняется Удовлетворяет Удовлетворяет ‹#›
  • 13. • Несмотря на то что совокупность всех проекций (view) системы описывает систему полностью , каждая из проекций является достаточно независимой. • Кроме того, большая часть атрибутов качества системы проявляются и влияют на несколько проекций. • Определение: Перспектива (perspective) это совокупность действий, приемов и руководств которые используются для представления реализации конкретного набора атрибутов качества которые требуют рассмотрения в нескольких архитектурных проекциях. ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 14. • Применимость (Applicability) – Описывает к каким проекциям наиболее вероятно может быть применена перспектива. • Вопросы (Concerns) – Определяет атрибут качества системы которому соответсвует перспектива • Действия (Activities) – Описание шагов по применению перспективы к проекции. • Архитектурная тактика (Architectural tactics): – Это признанная практика которую вы можете использовать для достижения определенного качества системы • Проблемы и подводные камни: • Контрольные списки • Ссылки и рекомендации для углубленного изучения ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 15. • Определение важных атрибутов качества1 • Анализ проекций с точки зрения удовлетворения выделенных атрибутов качества2 • Принятие архитектурных решений которые модифицируют и улучшают соответствующие проекции3 ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 16. 07.05.2013 Владелец продукта (Product Owner). Работа с требованиями в Agile среде 16
  • 18. Stand Up Meeting at 9:00 Pair Up -- Quick Design Session Test Q&A Code Refactor Integrate or Toss Go Home at 17:00
  • 20. • Бизнес приложения – ERP, биллинг, credit scoring, logistics tracking • Огромный объем сложных данных – Терабайтные хранилища содержащие сотни таблиц • Множество одновременных пользователей • Большое кол-во ролей пользователей • Бизнес логика может быть сложной и иррациональной • Большое кол-во систем с которыми приходится интегрироваться ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 21. Каждый слой это согласованное целое Замещение слоев Множество вышестоящих слоев над одним Предупреждения: • Некоторые вопросы нельзя инкапсулировать достаточно хорошо • Может угрожать производительности ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 22. • Презентационный – Взаимодействует с пользователем приложения – Толстый/тонкий клиент, web сервис • Домен – Бизнес правила , валидаторы , расчеты • Данные (Data Source) – Интеграция – Персистентность - способность ПО создавать и поддерживать перманентные объекты (Persistence): RDBMs – Обмен сообщениями, Web сервисыЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 23. ЛЕКЦИЯ №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 ‹#›
  • 24. ЛЕКЦИЯ №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 ‹#›
  • 25. ЛЕКЦИЯ №8 Перспективы и паттерны . Presentation Domain Data Source Presentation Business Data Access Kirtland, Designing Component Based Architectures, Microsoft Press ‹#›
  • 26. • Transaction Script • Domain Model • Table Module ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 27. ЛЕКЦИЯ №8 Перспективы и паттерны . recognizedRevenue (contractNumber: long, asOf: Date) : Money calculateRevenueRecognitions (contractNumber long) : void Recognition Service ‹#›
  • 28. ЛЕКЦИЯ №8 Перспективы и паттерны . a Recognition Service calculateRecognitions (contractID) a Data Gateway a contract result set findContract (contract ID) get data * insert revenue recognition ‹#›
  • 29. ЛЕКЦИЯ №8 Перспективы и паттерны . recognizedRevenue (date) calculateRecognitions Contract calculateRecognitions (contract) Product Recognition Strategy Complete Recognition Strategy 1 1 * ‹#›
  • 30. ЛЕКЦИЯ №8 Перспективы и паттерны . a Contract calculateRecognitions a Product calculateRecognitions (a Contract) a Recognition Strategy calculateRecognitions (a Contract) a Revenue Recognition new ‹#›
  • 31. ЛЕКЦИЯ №8 Перспективы и паттерны . CalculateRecognitions (ID) Contract GetProductType (ID) Product Insert (ID, amount, date) RecognizedRevenue (contractID, date) Revenue Recognition ‹#›
  • 32. ЛЕКЦИЯ №8 Перспективы и паттерны . a Contract new (theDataSet) calculateRecognitions (contractID) a Product new (theDataSet) a Revenue Recognition new (theDataSet) getProductType (productID) * insert ‹#›
  • 33. Преимущества : Простая (процедурная) модель программирования Простое взаимодействие с базой данных Предупреждения: • Дублирование логики в различных скриптах • Сложность нарастает по мере усложнения предметной области ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 34. Преимущества : Позволяет работать с предметной областью крайне высокой сложности Предупреждения: • Сдвиг парадигмы разработки • Сложная стыковка с базой данных ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 35. Преимущества : Единая структура данных для всех слоев (Record Set) Организована для процедур Предупреждения: • Сложно работать со сложной предметной областью ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 36. • Модель вид контролер (Model View Controller) • Контроллер приложения (Application Controller) • Контроллер ВводаВывода (Input Controller) – Page Controller – Front Controller • Представление (View) – Template View – Transform View – Two Step View ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 37. • 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 ‹#›
  • 38. ЛЕКЦИЯ №8 Перспективы и паттерны . an input controller an application controller request get domain command a domain command run get view a view forward Централизованная точка для обработки навигации между экранами ‹#›
  • 39. ЛЕКЦИЯ №8 Перспективы и паттерны . Input Controller View Application Controller Domain Layer ‹#›
  • 40. • Единая точка контроля для изменения порядка выполнения и навигации • Может быть расположен в промежуточном слое между презентационным слоем и слоем бизнес логики (domain) • Позволяет использовать разные слои представления • Может быть протестирован отдельно от уровня презентации ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 41. • Один контроллер для каждого действия или страницы • Может использовать серверные страницы в качетсве обработчика ЛЕКЦИЯ №8 Перспективы и паттерны . -- handle http get and post -- decide which model and view to use Page Controller -- domain logic Model -- display HTML View ‹#›
  • 42. ЛЕКЦИЯ №8 Перспективы и паттерны . • Один контроллер ввода/вывода в приложении doGet doPost Handler process Abstract Command process Concrete Command 1 process Concrete Command 2 ‹#›
  • 43. Контроллер страницы • Легко сопровождать • Не рекомендовано хранить логику контроллера в страницах Центральный контроллер • Единая точка для добавления поведения • Позволяет добавлять поведение динамически (перехватывающий фильтр) ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 44. ЛЕКЦИЯ №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 ‹#›
  • 45. ЛЕКЦИЯ №8 Перспективы и паттерны . transformAlbum transformArtist Transformer Album Artist Model HTML read creates ‹#›
  • 46. ЛЕКЦИЯ №8 Перспективы и паттерны . artist: Artist Album renderAlbum renderArtist Stage 1 artist: Field Screen renderScreen renderField Stage 2 HTML read read create create ‹#›
  • 47. • Шаблон представления – Следует естественным принципам редактирования – Позволяет редактирование HTML не программистами – Требует дисциплины для избежания скриплетов • Преобразование представления – Может быть протестировано без использования Web сервера – Хорош работает с XML (XSLT) • Двух шаговое представление (Two Step View) – Легко осуществлять глобальное изменение дизайна – Легко поддерживать шкуры (skins) – Сложно в реализации ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 48. • Table Data Gateway • Row Data Gateway • Active Record • Data Mapper • Structural Patterns – Foreign Key Mapping, Identity Field, Association Table Mapping, Single Table Inheritance…. ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 49. ЛЕКЦИЯ №8 Перспективы и паттерны . find (id) : RecordSet findForCompany(company id) : RecordSet update (id, lastname, firstname, numberOfDependents) insert (lastname, firstname, numberOfDependents) delete (id) Person Gateway ‹#›
  • 50. ЛЕКЦИЯ №8 Перспективы и паттерны . insert update delete find (id) findForCompany(companyID) lastname firstname numbeOfDependents Person Gateway ‹#›
  • 51. ЛЕКЦИЯ №8 Перспективы и паттерны . find (id) findForCompany(company id) Person Finder insert update delete lastname firstname numbeOfDependents Person Gateway ‹#›
  • 52. ЛЕКЦИЯ №8 Перспективы и паттерны . insert update delete getExemption isFlaggedForAudit getTaxableEarnings lastName firstName numberOfDependents Person Row Data Gateway plus domain logic in one class ‹#›
  • 53. ЛЕКЦИЯ №8 Перспективы и паттерны . insert update delete Person Mapper getExemption isFlaggedForAudit getTaxableEarnings lastName firstName numberOfDependents Person ‹#›
  • 54. • Если используется Table Module – Table Data Gateway • Если используетсяTransaction Script и не Domain Model – Table Data Gateway – Row Data Gateway – Выбирайте по принципу комфортности работы с record sets или row gateway objects ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 55. • Если вы используете простую и сходную по структуре Domain Model – Active Record – Data Mapper: В случае использования специального инструментария • Если используете сложную Domain Model – Data Mapper ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 56. • Remote Façade • Data Transfer Object ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 57. ЛЕКЦИЯ №8 Перспективы и паттерны . Invoice Customer Order Delivery ‹#›
  • 58. • Детальное представление адреса: – getStreet – setStreet – getCity – setCity – getZip – setZip ЛЕКЦИЯ №8 Перспективы и паттерны . • Укрупненное : – getAddressData – setAddressData ‹#›
  • 59. ЛЕКЦИЯ №8 Перспективы и паттерны . getAddressData setAddress(street, city, zip) Address Facade getStreet() getCity() getZip() setStreet(arg) setCity(arg) setZip(arg) Address ‹#›
  • 60. ЛЕКЦИЯ №8 Перспективы и паттерны . toXmlElement readXml title: String artist: String AlbumDTO Album Assembler title: String Album name: String Artist 1 * ‹#›
  • 61. • 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 Перспективы и паттерны . ‹#›
  • 62. • Software Systems Architecture : Working With Stakeholders Using Viewpoints and Perspectives ЛЕКЦИЯ №8 Перспективы и паттерны . 62
  • 64. Часть 1 ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 65. Часть 2 ‹#›ЛЕКЦИЯ №8 Перспективы и паттерны .
  • 66. Безуглый Дмитрий bdl@system-approach.ru ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›