Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

734 views

Published on

  • Be the first to comment

  • Be the first to like this

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

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

×