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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

367

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
367
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 17. Rosenberg.Use.Case.Driven.Object.Modeling.with.UML.Jan.2007
  • 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
  • 19. ‹#›ЛЕКЦИЯ №8 Перспективы и паттерны .
  • 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
  • 63. • • • • • • • • ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 64. Часть 1 ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›
  • 65. Часть 2 ‹#›ЛЕКЦИЯ №8 Перспективы и паттерны .
  • 66. Безуглый Дмитрий bdl@system-approach.ru ЛЕКЦИЯ №8 Перспективы и паттерны . ‹#›

×