SlideShare a Scribd company logo
1 of 27
Download to read offline
Документирование архитектуры




1                              МАИ, каф 806, ППС
Документирование архитектуры
 Правило №1


Пиши документы с точки зрения читателей.
Дейкстра (1930–2002) говорил, что стоит потратить пару часов что бы
     сделать отдельно взятое предложение в документе проще.
Нужно понять, кто читатель документации и что он ждет от неё. Нужно
     понимать что читатели знают.
Нужно понимать на какие вопросы отвечают определенные секции
     документа. Документ должен иметь четкий план изложения
Не злоупотребляйте жаргоном, специфичным для организации или
     предметной области.
Сокращения хороши для военных методичек, но не для реальных
     документов.




 2                                           МАИ, каф 806, ППС
Документирование архитектуры
 Правило №2


Избегайте повторений.
Каждая информация должна быть записана только в одном месте. Это
     упрощает использование и модифицирование документа.
Самое страшное если одна и та же информация появляется в двух
     местах в разных формах, это может серьезно запутать читателя.
Используйте в документах ссылки и hyperlink
В крайнем случае можно изложить одну информацию в нескольких
     вариантах, но обязательно с разных точек зрения и аккуратно описав,
     зачем это сделано.




 3                                              МАИ, каф 806, ППС
Документирование архитектуры
 Правило №3


Избегайте двусмысленности.
Она появляется, когда документ может быть интерпретирован
     несколькими способами.
Рецензирование документа членами команды хорошо позволяет
     выявить двусмысленность.
Объясняйте нотацию в которой пишется документ.
Помните, что диаграммы могут быть двусмысленными.

Самый верный признак истины - это простота и ясность. Ложь
     всегда бывает сложна, вычурна и многословна. /Л.Толстой/




 4                                          МАИ, каф 806, ППС
Документирование архитектуры
 Правило №4


Используйте стандартную структуру документа (шаблон).
Это помогает пользователю ориентироваться в документе и упрощает
     поиск нужных пунктов.
Помогает писателю планировать работу над документом.
Помогает записывать информацию сразу как она будет известна
     (например мы можем заполнить вначале 3ую секцию, а потом первые
     две)
Показывает, какие работы ещё осталось выполнить (например,
     помеченные как TBD).
Позволяет судить о полноте документа (если шаблон документ
     описывает все аспекты)




 5                                           МАИ, каф 806, ППС
Документирование архитектуры
 Правило №5


Всегда описывайте причину, по которой принимаются те или иные
     решения.
Можно так же описать альтернативные решения, которые вы отбросили,
     и описать почему это сделали.
Описанное обоснование решения экономит много времени и Вам и
     читателю.
Нужно всегда помнить, что через пол года даже Вы забудете, почему
     принималось такое решение.




 6                                         МАИ, каф 806, ППС
Документирование архитектуры
 Правило №6


Поддерживайте документ актуальным (но не очень)
Документы, которые не актуальные – ни кто не использует.
Актуальные документы все любят использовать (потому что там проще
     найти ответы на вопросы).
В процессе активной разработки решения часто меняются и очень
     трудоемко все сразу записывать в документ. Поэтому в плане проекта,
     обычно определяют точки, когда документ актуален.




 7                                             МАИ, каф 806, ППС
Документирование архитектуры
 Правило №7


Проверяйте документ на соответствие целям.
Только пользователи документа могут Вам сказать, что в нем есть
     нужная информация и она представлена в нужном виде.
Перед тем как сделать финальный документ. Обязательно обсудите его
     с командой.




 8                                           МАИ, каф 806, ППС
документирование

    ИНТЕРФЕЙСЫ


9                      МАИ, каф 806, ППС
Интерфейсы
 Что важно помнить?


Элементы программного обеспечения обладают интерфейсами.
Интерфейс – это способ взаимодействия элемента с внешним миром.
Интерфейс элемента отделен от его реализации.
Элемент может иметь множество интерфейсов.
   Для поддержки различной функциональности.
   Для поддержки эволюции интерфейсов.
Элемент не только предоставляет интерфейсы но и может требовать их
      для корректной работы.
Несколько внешних систем могут взаимодействовать с интерфейсом в
      одно и то же время.




 10                                       МАИ, каф 806, ППС
Интерфейсы
 Guideline по документированию


Фокусируйтесь на том как интерфейс взаимодействует с окружающей
      средой, а не на том как он реализован.
Интерфейс должен предоставлять только ту информацию, которую
      внешние системы должны знать. Как только вы предоставляете какую-то
      информацию, то сразу внешние системы начинают от неё зависеть и Вы
      уже не сможете её поменять.
Помни для кого документируешь интерфейс:
   Для разработчика из соседней команды – достаточно минимума
           информации.
          Для коммерческого API нужна как можно более полная информация.
Будь как можно более конкретен и точен



 11                                            МАИ, каф 806, ППС
Интерфейсы
 Последовательная детализация информации.


В начале процесса проектирования
   Определяется последовательность взаимодействий элементов
   Потоки данных
   Формируются сервисы
Границы модулей определены
   Определяется семантика интерфейса, его параметры, поведение.
Модуль разработан
   Описывается уточнённый синтаксис интерфейса и уточненные
      детали




 12                                       МАИ, каф 806, ППС
Интерфейсы
 Из чего состоят?


Interface Identity
   Описывает идентификацию интерфейса с точки зрения языка
               программирования.
              Например: OutputObject Method (InputObject parameter)
Описание ресурсов, предоставляемых интерфейсом
      class PromisedPayment


               IL.DomainModel::Payment

          +   PaymentId: UniqueIdentifier
          +   Amount: double
          +   InternalAmount: double
          +   DateOfPayment: DateTime
          +   DateOfTransaction: DateTime
          +   PaymentDocumentNumber: string
          +   PaymentType: string
          +   Currency: Currency
          +   Parameters: PaymentParameters




                    PromisedPayment

         +    Status: PromisedPaymentStatusEnum
         +    Channel: ChannelEnum
         +    ExpiredDate: DateTime?
         +    StornoReason: BaseDictionary             МАИ, каф 806, ППС
 13
Интерфейсы
 Ресурсы – что это?


 Ресурсами могут быть как операции/методы так и данные.
 Синтаксис ресурса
 Семантика ресурса
      Что будет если вызвать ресурс? Как и какие данные поменяются? Как изменится поведение?
          У переменных появились новые значения(например у возвращаемого результата)
          Изменение в видимом состоянии элемента
          События, которые появились в результате использования ресурса
          Побочные эффекты
          Результат, видимый человеком (например, программа закрылась)
          Синхронное или асинхронное использование ресурса
          Ограничение на использование ресурса (параметры, состояние элемента)
 Обработка ошибок
    Неправильные параметры, внутренние ошибки, бизнес-ошибки, ошибки среды передачи
           (разрывы соединения)




 14                                                        МАИ, каф 806, ППС
Интерфейсы
 Ресурсы – guideline


 Описывайте только тот результат использования ресурса, который заметен
      снаружи элемента.
 Попробуйте описать семантику использования интерфейса, в терминах его
      использования: если положить элемент в стэк методом push то потом он доступен
      методом pop
 Избегайте слов с «двойным толкованием», таких как «может». Будьте точными.
 Описывайте все предположения о параметрах (точность, диапазоны значений,
      зависимости между параметрами)
 Если нужно приводить пример использования, то делайте это отдельно от
      описания ресурса. Если примеры описывать рядом, то пользователь может
      предположить что ресурс можно использовать только указанным способом.
 Никогда не приводите описания того как ресурс реализуется.
 Не забывайте об атрибутах качества
    Количество запросов в единицу времени, время отклика, скорость работы и
         т.д.


 15                                                  МАИ, каф 806, ППС
Интерфейсы
 Кому интересны?


Разработчик элемента
Тестировщик
Разработчик системы, использующей данный элемент
Аналитик
Архитектор
Руководитель проекта




 16                                      МАИ, каф 806, ППС
Architecture Tradeoff Analysis Method




               "Cheshire-Puss," [Alice] began, rather timidly … "Would you tell me, please,
               which way I ought to go from here?" "That depends a good deal on where
               you want to go to," said the Cat. "Oh, I don't much care where—" said Alice.
               Then it doesn't matter which way you go," said the Cat. "—so long as I get
               somewhere," said Alice. "Oh, you're sure to do that," said the Cat, "if only you
               walk long enough."
                                  —Lewis Carroll, Alice's Adventures in Wonderland.




17                                                     МАИ, каф 806, ППС
LAAM
 Lightweight Architecture Alternative Assessment Method


 Сравниваем архитектурные решения с точки зрения качества.




 18                                                    МАИ, каф 806, ППС
LAAM
 Lightweight Architecture Alternative Assessment Method


 Измеримые сценарии




 19                                         МАИ, каф 806, ППС
LAAM
 Lightweight Architecture Alternative Assessment Method


 Определяем, приоритеты сценариев




 20                                         МАИ, каф 806, ППС
LAAM
 Lightweight Architecture Alternative Assessment Method


 Определяем вес сценария




 21                                         МАИ, каф 806, ППС
LAAM
 Lightweight Architecture Alternative Assessment Method


 Альтернативы

Scenario         Weight     Alternative 1   Alternative 2         Alternative 3



Scenario 1       .140625    Poor (0)        Fair (1)              Excellent (4)



Scenario 2       .046875    Good (3)        Adequate (2)          Fair (1)



Total                       .140625         .234375               .609375




 22                                           МАИ, каф 806, ППС
Architecture Tradeoff Analysis Method
командный метод оценки архитектуры




23                                      МАИ, каф 806, ППС
Architecture Tradeoff Analysis Method
участники


 Роль              Ответственность                                                    Характеристика
 Team Leader       Организует мероприятие, контактирует с клиентом, убеждается        Лидер, хорошо
                   что все потребности клиента выполнены, формирует команду.          организованный, умеющий
                                                                                      общаться с клиентом
 Evaluation        Проводит мероприятие, создает сценарии, управляет выбором          Хорошее понимание
 Leader            и приоритезацией сценариев                                         архитектурных проблем,
                                                                                      умение управлять темой
                                                                                      дискуссии
 Scenario Scribe   Записывает найденные сценарии и согласует формулировки             Умение выделить суть в
                   сценариев                                                          технических обсуждениях
 Processing        Создает описание процесса в электронной форме, описывает           Хорошее понимание
 Scribe            причины возникновения сценария                                     архитектурных проблем,
                                                                                      быстрая печать
 Time Keeper       Определяет сколько времени тратится на обсуждение                  Умеет прерывать дискурсии
                   сценариев
 Process           Следит за процессом в целом, делает выводы о том как               Большой опыт в оценке
 Observer          процесс может быть улучшен                                         архитектуры
 Process           Помогает идти по шагам процесса оценки архитектуры                 Хорошо разбирается в
 Enforcer                                                                             процессе оценки
 Questioner        Определяет важные вопросы и точки риска                            Разбирается в архитектуре
                                                                                      и требованиях спонсоров


24                                                                МАИ, каф 806, ППС
Architecture Tradeoff Analysis Method
 результаты


 Краткое изложение архитектуры.
      Доступной для изложения в течении одного часа.
 Формулировки бизнес-целей.
      Зачастую все участники видят бизнес-цели первый раз.
 Атрибуты качества в виде перечня сценариев.
 Связь архитектурных решений с атрибутами качества.
 Набор точек «компромисов».
      Обычно они связаны с решениями, которые затрагивают несколько атрибутов качества.
 Перечень рисков.
      Набор архитектурных решений, которые могут повлечь негативное влияние на атрибуты
      качества.
 Системные риски.
      При рассмотрении полного набора рисков выявляются системные недостатки в архитектуре.
      Если не бороться с такими системными рисками, то они будут угрожать бизнес-цели проекта.




 25                                                          МАИ, каф 806, ППС
Architecture Tradeoff Analysis Method
фазы

     Фаза   Действие                Участники                         Продолжительность

     0      Подготовка              Руководители команды оценки и     Проходит
                                    люди влияющие на принятие         неформально
                                    решений




     1      Оценка                  Команда оценки и люди             1 день
                                    влияющие на принятие решений



     2      Оценка с руководством   Команда оценки, люди влияющие 2 дня
                                    на принятие решений, спонсоры
                                    проекта


     3      Оценка с клиентом       Команда оценки и клиент           1 неделя




26                                                            МАИ, каф 806, ППС
Architecture Tradeoff Analysis Method
 шаги оценки


1.    Объяснение процесса ATAM
2.    Презентация бизнес составляющих проекта (главные функции, ограничения, цели, атрибуты
      качества).
3.    Презентация архитектуры (технические ограничения, главные арх. решения, применяемые
      шаблоны …)
4.    Определяются ключевые архитектурные подходы и анализируются командой
5.    Дерево атрибутов качества, существенных для проекта.
6.    Анализ архитектуры с точки зрения выявления сценариев для атрибутов качества.
7.    Мозговой штурм. Цель – определение приоритетов сценариев. И определения наиболее
      значимых для последующего анализа.
8.    Анализ архитектуры. Архитектор рассказывает как предлагаемая архитектура решает задачи
      поставленные в сценариях.
9.    Презентация результатов: архитектурные тактики, набор приоритезированных сценариев
      качества, дерево атрибутов качества, риски, точки принятия компромиссных решений.




 27                                                          МАИ, каф 806, ППС

More Related Content

Viewers also liked

Проектирование программных систем. Занятие 1
Проектирование программных систем. Занятие 1Проектирование программных систем. Занятие 1
Проектирование программных систем. Занятие 1Dima Dzuba
 
Проектирование программных систем. Занятие 9
Проектирование программных систем. Занятие 9Проектирование программных систем. Занятие 9
Проектирование программных систем. Занятие 9Dima Dzuba
 
Проектирование программных систем. Занятие 7
Проектирование программных систем. Занятие 7Проектирование программных систем. Занятие 7
Проектирование программных систем. Занятие 7Dima Dzuba
 
Проектирование программных систем. Занятие 6
Проектирование программных систем. Занятие 6Проектирование программных систем. Занятие 6
Проектирование программных систем. Занятие 6Dima Dzuba
 
Проектирование программных систем. Занятие 5
Проектирование программных систем. Занятие 5Проектирование программных систем. Занятие 5
Проектирование программных систем. Занятие 5Dima Dzuba
 
Проектирование программных систем. Занятие 2
Проектирование программных систем. Занятие 2Проектирование программных систем. Занятие 2
Проектирование программных систем. Занятие 2Dima Dzuba
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Dima Dzuba
 
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
Объектно-Ориентированное Программирование на C++, Лекции  3 и 4 Объектно-Ориентированное Программирование на C++, Лекции  3 и 4
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4 Dima Dzuba
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Dima Dzuba
 
Проектирование программных систем. Занятие 3
Проектирование программных систем. Занятие 3Проектирование программных систем. Занятие 3
Проектирование программных систем. Занятие 3Dima Dzuba
 
Объектно-ориентированное программирование. Лекции 15 и 16
Объектно-ориентированное программирование. Лекции 15 и 16Объектно-ориентированное программирование. Лекции 15 и 16
Объектно-ориентированное программирование. Лекции 15 и 16Dima Dzuba
 

Viewers also liked (12)

Проектирование программных систем. Занятие 1
Проектирование программных систем. Занятие 1Проектирование программных систем. Занятие 1
Проектирование программных систем. Занятие 1
 
Проектирование программных систем. Занятие 9
Проектирование программных систем. Занятие 9Проектирование программных систем. Занятие 9
Проектирование программных систем. Занятие 9
 
Проектирование программных систем. Занятие 7
Проектирование программных систем. Занятие 7Проектирование программных систем. Занятие 7
Проектирование программных систем. Занятие 7
 
Проектирование программных систем. Занятие 6
Проектирование программных систем. Занятие 6Проектирование программных систем. Занятие 6
Проектирование программных систем. Занятие 6
 
Проектирование программных систем. Занятие 5
Проектирование программных систем. Занятие 5Проектирование программных систем. Занятие 5
Проектирование программных систем. Занятие 5
 
Проектирование программных систем. Занятие 2
Проектирование программных систем. Занятие 2Проектирование программных систем. Занятие 2
Проектирование программных систем. Занятие 2
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12
 
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
Объектно-Ориентированное Программирование на C++, Лекции  3 и 4 Объектно-Ориентированное Программирование на C++, Лекции  3 и 4
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
 
Проектирование программных систем. Занятие 3
Проектирование программных систем. Занятие 3Проектирование программных систем. Занятие 3
Проектирование программных систем. Занятие 3
 
Объектно-ориентированное программирование. Лекции 15 и 16
Объектно-ориентированное программирование. Лекции 15 и 16Объектно-ориентированное программирование. Лекции 15 и 16
Объектно-ориентированное программирование. Лекции 15 и 16
 

Similar to Проектирование программных систем. Занятие 8

Как спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноКак спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноBubon Makabra
 
BusinessObjects глазами аналитика - Tern4
BusinessObjects глазами аналитика -  Tern4 BusinessObjects глазами аналитика -  Tern4
BusinessObjects глазами аналитика - Tern4 Valeriy Titov
 
Titanic.csv – Как заметить макушку айсберга в океане багов?
Titanic.csv – Как заметить макушку айсберга в океане багов?Titanic.csv – Как заметить макушку айсберга в океане багов?
Titanic.csv – Как заметить макушку айсберга в океане багов?CEE-SEC(R)
 
20160323 Пример бизнес-приложения контроля качества в розничной торговле
20160323 Пример бизнес-приложения контроля качества в розничной торговле20160323 Пример бизнес-приложения контроля качества в розничной торговле
20160323 Пример бизнес-приложения контроля качества в розничной торговлеAndrew Sovtsov
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPmikhailshurgulaya
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСYury Petrov
 
Тестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesТестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesSQALab
 
Talksum dec2013 rus_generic
Talksum dec2013 rus_genericTalksum dec2013 rus_generic
Talksum dec2013 rus_genericdartemiev
 
IOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureIOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureVadim Novitskiy
 
ISO 15926 -- Стандарт датацентрического информационного моделирования и интег...
ISO 15926-- Стандарт датацентрического информационного моделирования и интег...ISO 15926-- Стандарт датацентрического информационного моделирования и интег...
ISO 15926 -- Стандарт датацентрического информационного моделирования и интег...Anatoly Levenchuk
 
Реальный мир и хорошие модели данных.
Реальный мир и хорошие модели данных. Реальный мир и хорошие модели данных.
Реальный мир и хорошие модели данных. Victor Agroskin
 
проектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинапроектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинаITMsupport
 
моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0vaha1411
 
проектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинапроектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинаТауруна
 
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundationCarlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundationKshitiz Chauhan
 
СЭД/ECM-система DocSpace - основа для принятия управленческих решений
СЭД/ECM-система DocSpace - основа для принятия управленческих решенийСЭД/ECM-система DocSpace - основа для принятия управленческих решений
СЭД/ECM-система DocSpace - основа для принятия управленческих решенийTaisia Lebedenko
 
Концепция применения онтологических структур в ERP-системах
Концепция применения онтологических структур в ERP-системахКонцепция применения онтологических структур в ERP-системах
Концепция применения онтологических структур в ERP-системахAnatoly Simkin
 

Similar to Проектирование программных систем. Занятие 8 (20)

Как спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноКак спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важно
 
9946
99469946
9946
 
BusinessObjects глазами аналитика - Tern4
BusinessObjects глазами аналитика -  Tern4 BusinessObjects глазами аналитика -  Tern4
BusinessObjects глазами аналитика - Tern4
 
Titanic.csv – Как заметить макушку айсберга в океане багов?
Titanic.csv – Как заметить макушку айсберга в океане багов?Titanic.csv – Как заметить макушку айсберга в океане багов?
Titanic.csv – Как заметить макушку айсберга в океане багов?
 
20160323 Пример бизнес-приложения контроля качества в розничной торговле
20160323 Пример бизнес-приложения контроля качества в розничной торговле20160323 Пример бизнес-приложения контроля качества в розничной торговле
20160323 Пример бизнес-приложения контроля качества в розничной торговле
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAP
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
 
Тестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesТестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The Scenes
 
Talksum dec2013 rus_generic
Talksum dec2013 rus_genericTalksum dec2013 rus_generic
Talksum dec2013 rus_generic
 
IOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureIOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows Azure
 
ISO 15926 -- Стандарт датацентрического информационного моделирования и интег...
ISO 15926-- Стандарт датацентрического информационного моделирования и интег...ISO 15926-- Стандарт датацентрического информационного моделирования и интег...
ISO 15926 -- Стандарт датацентрического информационного моделирования и интег...
 
Реальный мир и хорошие модели данных.
Реальный мир и хорошие модели данных. Реальный мир и хорошие модели данных.
Реальный мир и хорошие модели данных.
 
проектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинапроектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазина
 
моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0моделирование бизнес процессов с B pwin 4.0
моделирование бизнес процессов с B pwin 4.0
 
проектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинапроектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазина
 
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundationCarlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
 
СЭД/ECM-система DocSpace - основа для принятия управленческих решений
СЭД/ECM-система DocSpace - основа для принятия управленческих решенийСЭД/ECM-система DocSpace - основа для принятия управленческих решений
СЭД/ECM-система DocSpace - основа для принятия управленческих решений
 
Концепция применения онтологических структур в ERP-системах
Концепция применения онтологических структур в ERP-системахКонцепция применения онтологических структур в ERP-системах
Концепция применения онтологических структур в ERP-системах
 
Html лаб 2
Html лаб 2Html лаб 2
Html лаб 2
 

More from Dima Dzuba

Объектно-ориентированное программирование. Лекции 13 и 14
Объектно-ориентированное программирование. Лекции 13 и 14Объектно-ориентированное программирование. Лекции 13 и 14
Объектно-ориентированное программирование. Лекции 13 и 14Dima Dzuba
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Dima Dzuba
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation processDima Dzuba
 
Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Dima Dzuba
 
Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Dima Dzuba
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных системDima Dzuba
 
Производительность программных систем
Производительность программных системПроизводительность программных систем
Производительность программных системDima Dzuba
 
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Dima Dzuba
 
Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №6
МАИ, Сети ЭВМ, Лекция №6МАИ, Сети ЭВМ, Лекция №6
МАИ, Сети ЭВМ, Лекция №6Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1Dima Dzuba
 
МАИ, Сети ЭВМ, Лекция №7
МАИ, Сети ЭВМ, Лекция №7МАИ, Сети ЭВМ, Лекция №7
МАИ, Сети ЭВМ, Лекция №7Dima Dzuba
 
Решение конфликтов в процессе проектирования сложных систем
Решение конфликтов в процессе проектирования сложных системРешение конфликтов в процессе проектирования сложных систем
Решение конфликтов в процессе проектирования сложных системDima Dzuba
 
Arch intro4sts
Arch intro4stsArch intro4sts
Arch intro4stsDima Dzuba
 
Проектирование программных систем. Занятие 10
Проектирование программных систем. Занятие 10Проектирование программных систем. Занятие 10
Проектирование программных систем. Занятие 10Dima Dzuba
 

More from Dima Dzuba (19)

Объектно-ориентированное программирование. Лекции 13 и 14
Объектно-ориентированное программирование. Лекции 13 и 14Объектно-ориентированное программирование. Лекции 13 и 14
Объектно-ориентированное программирование. Лекции 13 и 14
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation process
 
Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8. Объектно-ориентированное программирование. Лекция 7 и 8.
Объектно-ориентированное программирование. Лекция 7 и 8.
 
Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6Объектно-ориентированное программирование. Лекция 5 и 6
Объектно-ориентированное программирование. Лекция 5 и 6
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных систем
 
Производительность программных систем
Производительность программных системПроизводительность программных систем
Производительность программных систем
 
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.
 
Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01
 
МАИ, Сети ЭВМ, Лекция №6
МАИ, Сети ЭВМ, Лекция №6МАИ, Сети ЭВМ, Лекция №6
МАИ, Сети ЭВМ, Лекция №6
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5
 
МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
 
МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №1
 
МАИ, Сети ЭВМ, Лекция №7
МАИ, Сети ЭВМ, Лекция №7МАИ, Сети ЭВМ, Лекция №7
МАИ, Сети ЭВМ, Лекция №7
 
Решение конфликтов в процессе проектирования сложных систем
Решение конфликтов в процессе проектирования сложных системРешение конфликтов в процессе проектирования сложных систем
Решение конфликтов в процессе проектирования сложных систем
 
Arch intro4sts
Arch intro4stsArch intro4sts
Arch intro4sts
 
Проектирование программных систем. Занятие 10
Проектирование программных систем. Занятие 10Проектирование программных систем. Занятие 10
Проектирование программных систем. Занятие 10
 

Проектирование программных систем. Занятие 8

  • 2. Документирование архитектуры Правило №1 Пиши документы с точки зрения читателей. Дейкстра (1930–2002) говорил, что стоит потратить пару часов что бы сделать отдельно взятое предложение в документе проще. Нужно понять, кто читатель документации и что он ждет от неё. Нужно понимать что читатели знают. Нужно понимать на какие вопросы отвечают определенные секции документа. Документ должен иметь четкий план изложения Не злоупотребляйте жаргоном, специфичным для организации или предметной области. Сокращения хороши для военных методичек, но не для реальных документов. 2 МАИ, каф 806, ППС
  • 3. Документирование архитектуры Правило №2 Избегайте повторений. Каждая информация должна быть записана только в одном месте. Это упрощает использование и модифицирование документа. Самое страшное если одна и та же информация появляется в двух местах в разных формах, это может серьезно запутать читателя. Используйте в документах ссылки и hyperlink В крайнем случае можно изложить одну информацию в нескольких вариантах, но обязательно с разных точек зрения и аккуратно описав, зачем это сделано. 3 МАИ, каф 806, ППС
  • 4. Документирование архитектуры Правило №3 Избегайте двусмысленности. Она появляется, когда документ может быть интерпретирован несколькими способами. Рецензирование документа членами команды хорошо позволяет выявить двусмысленность. Объясняйте нотацию в которой пишется документ. Помните, что диаграммы могут быть двусмысленными. Самый верный признак истины - это простота и ясность. Ложь всегда бывает сложна, вычурна и многословна. /Л.Толстой/ 4 МАИ, каф 806, ППС
  • 5. Документирование архитектуры Правило №4 Используйте стандартную структуру документа (шаблон). Это помогает пользователю ориентироваться в документе и упрощает поиск нужных пунктов. Помогает писателю планировать работу над документом. Помогает записывать информацию сразу как она будет известна (например мы можем заполнить вначале 3ую секцию, а потом первые две) Показывает, какие работы ещё осталось выполнить (например, помеченные как TBD). Позволяет судить о полноте документа (если шаблон документ описывает все аспекты) 5 МАИ, каф 806, ППС
  • 6. Документирование архитектуры Правило №5 Всегда описывайте причину, по которой принимаются те или иные решения. Можно так же описать альтернативные решения, которые вы отбросили, и описать почему это сделали. Описанное обоснование решения экономит много времени и Вам и читателю. Нужно всегда помнить, что через пол года даже Вы забудете, почему принималось такое решение. 6 МАИ, каф 806, ППС
  • 7. Документирование архитектуры Правило №6 Поддерживайте документ актуальным (но не очень) Документы, которые не актуальные – ни кто не использует. Актуальные документы все любят использовать (потому что там проще найти ответы на вопросы). В процессе активной разработки решения часто меняются и очень трудоемко все сразу записывать в документ. Поэтому в плане проекта, обычно определяют точки, когда документ актуален. 7 МАИ, каф 806, ППС
  • 8. Документирование архитектуры Правило №7 Проверяйте документ на соответствие целям. Только пользователи документа могут Вам сказать, что в нем есть нужная информация и она представлена в нужном виде. Перед тем как сделать финальный документ. Обязательно обсудите его с командой. 8 МАИ, каф 806, ППС
  • 9. документирование ИНТЕРФЕЙСЫ 9 МАИ, каф 806, ППС
  • 10. Интерфейсы Что важно помнить? Элементы программного обеспечения обладают интерфейсами. Интерфейс – это способ взаимодействия элемента с внешним миром. Интерфейс элемента отделен от его реализации. Элемент может иметь множество интерфейсов.  Для поддержки различной функциональности.  Для поддержки эволюции интерфейсов. Элемент не только предоставляет интерфейсы но и может требовать их для корректной работы. Несколько внешних систем могут взаимодействовать с интерфейсом в одно и то же время. 10 МАИ, каф 806, ППС
  • 11. Интерфейсы Guideline по документированию Фокусируйтесь на том как интерфейс взаимодействует с окружающей средой, а не на том как он реализован. Интерфейс должен предоставлять только ту информацию, которую внешние системы должны знать. Как только вы предоставляете какую-то информацию, то сразу внешние системы начинают от неё зависеть и Вы уже не сможете её поменять. Помни для кого документируешь интерфейс:  Для разработчика из соседней команды – достаточно минимума информации.  Для коммерческого API нужна как можно более полная информация. Будь как можно более конкретен и точен 11 МАИ, каф 806, ППС
  • 12. Интерфейсы Последовательная детализация информации. В начале процесса проектирования  Определяется последовательность взаимодействий элементов  Потоки данных  Формируются сервисы Границы модулей определены  Определяется семантика интерфейса, его параметры, поведение. Модуль разработан  Описывается уточнённый синтаксис интерфейса и уточненные детали 12 МАИ, каф 806, ППС
  • 13. Интерфейсы Из чего состоят? Interface Identity  Описывает идентификацию интерфейса с точки зрения языка программирования.  Например: OutputObject Method (InputObject parameter) Описание ресурсов, предоставляемых интерфейсом class PromisedPayment IL.DomainModel::Payment + PaymentId: UniqueIdentifier + Amount: double + InternalAmount: double + DateOfPayment: DateTime + DateOfTransaction: DateTime + PaymentDocumentNumber: string + PaymentType: string + Currency: Currency + Parameters: PaymentParameters PromisedPayment + Status: PromisedPaymentStatusEnum + Channel: ChannelEnum + ExpiredDate: DateTime? + StornoReason: BaseDictionary МАИ, каф 806, ППС 13
  • 14. Интерфейсы Ресурсы – что это?  Ресурсами могут быть как операции/методы так и данные.  Синтаксис ресурса  Семантика ресурса Что будет если вызвать ресурс? Как и какие данные поменяются? Как изменится поведение?  У переменных появились новые значения(например у возвращаемого результата)  Изменение в видимом состоянии элемента  События, которые появились в результате использования ресурса  Побочные эффекты  Результат, видимый человеком (например, программа закрылась)  Синхронное или асинхронное использование ресурса  Ограничение на использование ресурса (параметры, состояние элемента)  Обработка ошибок  Неправильные параметры, внутренние ошибки, бизнес-ошибки, ошибки среды передачи (разрывы соединения) 14 МАИ, каф 806, ППС
  • 15. Интерфейсы Ресурсы – guideline  Описывайте только тот результат использования ресурса, который заметен снаружи элемента.  Попробуйте описать семантику использования интерфейса, в терминах его использования: если положить элемент в стэк методом push то потом он доступен методом pop  Избегайте слов с «двойным толкованием», таких как «может». Будьте точными.  Описывайте все предположения о параметрах (точность, диапазоны значений, зависимости между параметрами)  Если нужно приводить пример использования, то делайте это отдельно от описания ресурса. Если примеры описывать рядом, то пользователь может предположить что ресурс можно использовать только указанным способом.  Никогда не приводите описания того как ресурс реализуется.  Не забывайте об атрибутах качества  Количество запросов в единицу времени, время отклика, скорость работы и т.д. 15 МАИ, каф 806, ППС
  • 16. Интерфейсы Кому интересны? Разработчик элемента Тестировщик Разработчик системы, использующей данный элемент Аналитик Архитектор Руководитель проекта 16 МАИ, каф 806, ППС
  • 17. Architecture Tradeoff Analysis Method "Cheshire-Puss," [Alice] began, rather timidly … "Would you tell me, please, which way I ought to go from here?" "That depends a good deal on where you want to go to," said the Cat. "Oh, I don't much care where—" said Alice. Then it doesn't matter which way you go," said the Cat. "—so long as I get somewhere," said Alice. "Oh, you're sure to do that," said the Cat, "if only you walk long enough." —Lewis Carroll, Alice's Adventures in Wonderland. 17 МАИ, каф 806, ППС
  • 18. LAAM Lightweight Architecture Alternative Assessment Method  Сравниваем архитектурные решения с точки зрения качества. 18 МАИ, каф 806, ППС
  • 19. LAAM Lightweight Architecture Alternative Assessment Method  Измеримые сценарии 19 МАИ, каф 806, ППС
  • 20. LAAM Lightweight Architecture Alternative Assessment Method  Определяем, приоритеты сценариев 20 МАИ, каф 806, ППС
  • 21. LAAM Lightweight Architecture Alternative Assessment Method  Определяем вес сценария 21 МАИ, каф 806, ППС
  • 22. LAAM Lightweight Architecture Alternative Assessment Method  Альтернативы Scenario Weight Alternative 1 Alternative 2 Alternative 3 Scenario 1 .140625 Poor (0) Fair (1) Excellent (4) Scenario 2 .046875 Good (3) Adequate (2) Fair (1) Total .140625 .234375 .609375 22 МАИ, каф 806, ППС
  • 23. Architecture Tradeoff Analysis Method командный метод оценки архитектуры 23 МАИ, каф 806, ППС
  • 24. Architecture Tradeoff Analysis Method участники Роль Ответственность Характеристика Team Leader Организует мероприятие, контактирует с клиентом, убеждается Лидер, хорошо что все потребности клиента выполнены, формирует команду. организованный, умеющий общаться с клиентом Evaluation Проводит мероприятие, создает сценарии, управляет выбором Хорошее понимание Leader и приоритезацией сценариев архитектурных проблем, умение управлять темой дискуссии Scenario Scribe Записывает найденные сценарии и согласует формулировки Умение выделить суть в сценариев технических обсуждениях Processing Создает описание процесса в электронной форме, описывает Хорошее понимание Scribe причины возникновения сценария архитектурных проблем, быстрая печать Time Keeper Определяет сколько времени тратится на обсуждение Умеет прерывать дискурсии сценариев Process Следит за процессом в целом, делает выводы о том как Большой опыт в оценке Observer процесс может быть улучшен архитектуры Process Помогает идти по шагам процесса оценки архитектуры Хорошо разбирается в Enforcer процессе оценки Questioner Определяет важные вопросы и точки риска Разбирается в архитектуре и требованиях спонсоров 24 МАИ, каф 806, ППС
  • 25. Architecture Tradeoff Analysis Method результаты  Краткое изложение архитектуры. Доступной для изложения в течении одного часа.  Формулировки бизнес-целей. Зачастую все участники видят бизнес-цели первый раз.  Атрибуты качества в виде перечня сценариев.  Связь архитектурных решений с атрибутами качества.  Набор точек «компромисов». Обычно они связаны с решениями, которые затрагивают несколько атрибутов качества.  Перечень рисков. Набор архитектурных решений, которые могут повлечь негативное влияние на атрибуты качества.  Системные риски. При рассмотрении полного набора рисков выявляются системные недостатки в архитектуре. Если не бороться с такими системными рисками, то они будут угрожать бизнес-цели проекта. 25 МАИ, каф 806, ППС
  • 26. Architecture Tradeoff Analysis Method фазы Фаза Действие Участники Продолжительность 0 Подготовка Руководители команды оценки и Проходит люди влияющие на принятие неформально решений 1 Оценка Команда оценки и люди 1 день влияющие на принятие решений 2 Оценка с руководством Команда оценки, люди влияющие 2 дня на принятие решений, спонсоры проекта 3 Оценка с клиентом Команда оценки и клиент 1 неделя 26 МАИ, каф 806, ППС
  • 27. Architecture Tradeoff Analysis Method шаги оценки 1. Объяснение процесса ATAM 2. Презентация бизнес составляющих проекта (главные функции, ограничения, цели, атрибуты качества). 3. Презентация архитектуры (технические ограничения, главные арх. решения, применяемые шаблоны …) 4. Определяются ключевые архитектурные подходы и анализируются командой 5. Дерево атрибутов качества, существенных для проекта. 6. Анализ архитектуры с точки зрения выявления сценариев для атрибутов качества. 7. Мозговой штурм. Цель – определение приоритетов сценариев. И определения наиболее значимых для последующего анализа. 8. Анализ архитектуры. Архитектор рассказывает как предлагаемая архитектура решает задачи поставленные в сценариях. 9. Презентация результатов: архитектурные тактики, набор приоритезированных сценариев качества, дерево атрибутов качества, риски, точки принятия компромиссных решений. 27 МАИ, каф 806, ППС