SlideShare uma empresa Scribd logo
1 de 43
Трудности при разработке
сложных распределѐнных
систем на Java.
Способы решения проблем.
Вводная часть


  Цель выступления
    1. Нет цели научить и рассказать как делать проекты.
    2. Нет цели научить разрабатывать проект «from scratch».
Основная цель выступления - Познакомить аудиторию с реальным опытом разработки большого
  JAVA приложения.
1. Познакомить с применяемыми принципами анализа требований
2. Рассказать подходе к управлению требованиями
3. Использование системы хранения версий.
Познакомить с реальной жизнью в проектах. Рассказать о своѐм опыте.



  Термины. Определения
    1. «Большая система».
    2. Подсистема.




                                                                                          2
Часть 1. Проработка
архитектуры. Обеспечение
дальнейшего развития.
Часть 1. Проработка архитектуры (1)


Архитектура приложения определяет:
   1. Функции, которые будет выполнять приложение в целом
   2. Компоненты из которых будет состоять приложение
   3. Функции которые будут выполнять компоненты
   4. Как компоненты будут взаимодействовать между собой




Правильный анализ – залог будущего вашего проекта




                                                            4
Часть 1. Проработка архитектуры (2)


Основные составляющие архитектуры:
   1. Authentication/Authorization (User, Password, Roles)
   2. Управление конфигурацией приложения – глобальные и локальные переменные, настройки
   3. Deployment strategy (including tools)
   4. Функции которые будут выполнять компоненты
   5. Как компоненты будут взаимодействовать между собой
   6. Доступ к данным – DataBase, в файлах, внешние системы
   7. Схема работы с исключительными ситуациями.
   8. Принципы логирования
   9. Взаимодействие с пользователем, определение общего подхода
   10. Data validation




                                                                                           5
Часть 1. Проработка архитектуры (3)


Разделение общего целого на блоки.                   First application   Second application

Не скатываться к - «Целое состоит из частей»




1. Общий код переносится из одной
части системы в другую
2. Группировка сущностей в пакет
3. Выделение общего функционала в отдельные пакеты
Пакет как отдельная подсистема-проект.




                                                                                              6
Часть 1. Проработка архитектуры (4)


Влияние факторов на процесс разработки.

Одно принятое решение = один фактор влияния




Technical debt
1. Business pressure
2. Lack of process or understanding
3. Lack of building loosely components
4. Lack of design/project documentation
5. Feature parallel development
6. Delayed refactoring.
7. Laziness of project staff.




                                              7
Часть 1. Проработка архитектуры (5)

Предвидение будущего. Масштабирование нагрузки.
Первый этап оптимизация
Основные шаги оптимизации
1. Запросы к DB. Скорость получения результата.
2. Необходимость изменения структуры DB
3. Анализ алгоритмов обработки данных
4. Оптимизация –, есть ли необходимость оптимизировать структуру DB, алгоритмы обработки данных
   (оптимальная работа алгоритмов)
Масштабирование
1. Вертикальное – увеличение ресурсов в рамках одного узла.
2. Горизонтальное – добавление новых узлов.
Закон Амдала
В случае, когда задача разделяется на несколько частей,
суммарное время еѐ выполнения на параллельной системе не
может быть меньше времени выполнения самого длинного фрагмента




                                                                                                  8
Часть 1. Проработка архитектуры (6)




                                      9
Часть 2. Декомпозиция на
отдельные независимые
подсистемы.
Часть 2. Декомпозиция (1)


Декомпозиция
1. Как часть аналитического метода
2. Как часть работ по планированию
3. Разделение
одной большой задачи
на группу мелких задач




                                     11
Часть 2. Декомпозиция (2)


Разработка в два основных этапа:
1. Разработка базовой функциональности
2. Разработка отдельных подсистем, как самостоятельных проектов.




                                                                   12
Часть 3. Процесс разработки
распределѐнной системы.
Часть 3. Процесс разработки (1).


Разработка проекта несколькими независимыми группами разработчиков




                                                                     14
Часть 3. Процесс разработки (2).


Процесс отчѐтности
Последствия неверно составленного отчѐта
1. Трата времени на выяснение действительного статуса работ.
2. Несвоевременное принятие решений по проекту. Потеря времени может оказать негативное влияние на
   проект в целом.


Способы решения
1. Формулировка в отчѐте по задаче должна отвечать на вопрос - Что сделал? Какой результат?
2. Детальное описание результата.
3. Единое время посылки отчѐтов для всех инженеров.




                                                                                                     15
Часть 4. Поддержка процесса
разработки с помощью
AccuRev.
Часть 4. Процесс разработки. AccuRev (1)


Дано:
1.   Команда разработчиков, тестировщиков, аналитиков, архитекторов…. Более 100 человек.
2.   Исходный код, который содержит несколько миллионов строк.



Почему AccuRev
1.   Необходимость обеспечить сложную разветвлѐнную структуру версий разрабатываемого продукта
2.   Регламентированные роли доступа – инженеры различных категорий, лидеры групп, QA инженеры,
     релиз инженеры.
3.   Обеспечение различных уровней доступа к коду для разных категорий специалистов.


Особенности работы
1.   Нет привычных терминов tag, branch, trunk.
2.   Оригинальная терминология. Каждый новый сотрудник должен пройти небольшой вводный курс.




                                                                                                  17
Часть 4. Процесс разработки. AccuRev (2)


Терминология:
        Stream




                                           18
Часть 4. Процесс разработки. AccuRev (3)




Picture source: http://www.accurev.com/scm-features.html


                                                           19
Часть 4. Процесс разработки. AccuRev (4)


Терминология:
        Snapshot




                                           20
Часть 4. Процесс разработки. AccuRev (5)


Терминология:
        Promote




                                           21
Часть 4. Процесс разработки. AccuRev (6)




Picture source: http://www.accurev.com/scm-features.html


                                                           22
Часть 4. Процесс разработки. AccuRev (7)




Picture source: http://www.accurev.com/scm-features.html


                                                           23
Часть 4. Процесс разработки. AccuRev (8)




Picture source: http://www.accurev.com/scm-features.html


                                                           24
Часть 4. Процесс разработки. AccuRev (9)




                                           25
Часть 5. Как работать с
большим объѐмом требований.
Contour.
Управление требованиями в проекте с
помощью Contour
Часть 5. Требования. Contour (1)


Что такое изменение требований?
- CR (Change Request)
- New Feature


Цели
- Добавить новый функционал
- Добавить новую возможность
- Изменить существующий бизнес процесс.
- Внести изменения в




                                          27
Часть 5. Требования. Contour (2)


Инициаторы изменений
  Представители заказчика разного уровня– аналитики, участники различных бизнес процессов.
  Бизнес аналитик со стороны исполнителя проекта
  Архитекторы
  Представители отдела R&D (Research and Development)


Формулировка требования с точки зрения аналитика.
Пример:
Система должна логировать действия пользователя при изменениях в реестре товаров.




                                                                                             28
Часть 5. Требования. Contour (3)


Формулировка требования с точки зрения архитектора системы.
1. Все операции изменения реестра должны содержать атрибут «Исполнитель»
2. Добавить журнал изменений. Просмотр журнала изменений.


Формулировка задачи для разработчиков
1. Задача 123 – разработать Журнал изменений
2. Добавить атрибуты ID пользователя (Long userId;) и текст изменения (String changeMessage;)
3. При внесении изменения в реестр создавать запись в журнале изменений.


Формулировка задачи для тестировщиков. Тестовый сценарий.
1. Войти в систему под тестовым пользователем, который имеет право на изменение в реестре товаров.
2. Произвести изменение в реестре.
3. Убедиться, что изменение отражено в журнале изменений.


Работа началась……..




                                                                                                     29
Часть 5. Требования. Contour (4)



               STOP


Заказчик снова меняет требования после начала работ.
1. Производить запись в журнал изменения, которые касаются только добавления новых позиций в реестр.


Сложности и возможные ошибки:
1. Внести изменения во все связанные документы. Высока вероятность того, что необходимые изменения
   будут внесены не во все связанные документы.
2. Проинформировать всех заинтересованных лиц. Высока вероятность того, что не все будут
   проинформированы о произошедших изменениях.


Как следствие – потеря времени на установление истины.




                                                                                                     30
Часть 5. Требования. Contour (5)


Единый репозиторий требований Countour.
1. Взаимные связи.
2. Поддержка хранения версий документов.
3. Синхронизация.


Преимущества использование Contour
1. Все требования и изменения к ним публикуются в Contour.
2. Уникальные идентификаторы для каждого документа. Поддержка связей между документами.
3. Всем участникам проекта доступна одинаковые версии документов. Описание требований, тест планы.
4. Просмотр истории изменений.
5. Уведомление. Каждый разработчик и тестировщик, которые работают над разработкой конкретной
   feature получает уведомление о внесѐнных изменениях.




                                                                                                     31
Часть 5. Требования. Contour (6)




Picture source: http://www.jamasoftware.com/contour/screenshots.php


                                                                      32
Часть 5. Требования. Contour (7)




Picture source: http://www.jamasoftware.com/contour/screenshots.php


                                                                      33
Часть 5. Требования. Contour (8)


Пример.

FEATURE_000123 123 – номер feature


FR-123-000001 – Функциональное требование




                                            34
Часть 5. Требования. Contour (9)




Picture source: http://www.jamasoftware.com/contour/screenshots.php


                                                                      35
Часть 6. Тестирование
финального продукта в облаке.
Часть 6. Тестирование. Облако (1)


Часто встречающаяся проблема
Большая система требует много аппаратных ресурсов для промежуточного и финального тестирования.




Обеспечение каждого сотрудника проекта
необходимыми аппаратными средствами
может привести к значительному
перерасходу бюджета проекта.




                                                                                                  37
Часть 6. Тестирование. Облако (2)


Пример решение проблемы

     QA инженеры




                             Серверы




      Группы разработчиков




                                       38
Часть 7. Поддержка и
дальнейшая модернизация
проекта. Bug fixing and new
features.
Часть 7. Bug fixing and new features (1)


Непрерывный bug fixing

Работа двух команд из разных часовых поясов



                 Нижний                            США
                 Новгород

                              Transfer meeting




                                  Email transfer




                                                         40
Useful Links.


           http://www.accurev.com
           http://www.jamasoftware.com/contour
           http://home.wlu.edu/~whaleyt/classes/parallel/topics/amdahl.html
           http://en.wikipedia.org/wiki/Amdahl's_law
           http://cc2e.com/




                                                                         41
Questions Time.




                  42
Contacts




                              Thank You and
                    We Look Forward to Working with You


Auriga, USA                                                       Auriga, Russia
92 Potter Rd, Ste 1                             125 Varshavskoe Shosse, Unit 16A
Wilton, NH 03086, USA                                            Moscow, 117587
Phone: +1 (866) 645-1119                                   Tel:+7 (495) 713-9900
Fax: +1 (603) 386-6097                                    Fax:+7 (495) 939-0300
info@auriga.com                                                  info@auriga.com
www.auriga.com                                                   www.auriga.com




                                                                              43

Mais conteúdo relacionado

Mais procurados

Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03.
Igor Shkulipa
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
Sergii Shmarkatiuk
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
Mykyta Hopkalo
 

Mais procurados (19)

Trpo 7 повторное использ_компонентов
Trpo 7 повторное использ_компонентовTrpo 7 повторное использ_компонентов
Trpo 7 повторное использ_компонентов
 
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
Ромуальд Здебский, Обеспечение качества через интегрированное управление прое...
 
МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)
 
МиСПИСиТ (IDEF)
МиСПИСиТ (IDEF)МиСПИСиТ (IDEF)
МиСПИСиТ (IDEF)
 
Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03.
 
Модуль 14. Лекция 55-56. Управление релизами и развертыванием продукта
Модуль 14. Лекция 55-56. Управление релизами и развертыванием продуктаМодуль 14. Лекция 55-56. Управление релизами и развертыванием продукта
Модуль 14. Лекция 55-56. Управление релизами и развертыванием продукта
 
тестирование программного обеспечения
тестирование программного обеспечениятестирование программного обеспечения
тестирование программного обеспечения
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
Методоллогии Agile
Методоллогии AgileМетодоллогии Agile
Методоллогии Agile
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
 
Современные подходы в инжиниринге сложных технических систем
Современные подходы в инжиниринге сложных технических системСовременные подходы в инжиниринге сложных технических систем
Современные подходы в инжиниринге сложных технических систем
 
технология Rational unified process (44)
технология Rational unified process (44)технология Rational unified process (44)
технология Rational unified process (44)
 
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.
 
Решения СМ-Консалт»
Решения СМ-Консалт»Решения СМ-Консалт»
Решения СМ-Консалт»
 
Статья «Применение Agile Scrum в проектах SAP»
Статья «Применение Agile Scrum в проектах SAP»Статья «Применение Agile Scrum в проектах SAP»
Статья «Применение Agile Scrum в проектах SAP»
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.
 
190
190190
190
 
Управление проектами в Ms Project
Управление проектами в Ms ProjectУправление проектами в Ms Project
Управление проектами в Ms Project
 
Типовое проектирование эис
Типовое проектирование эисТиповое проектирование эис
Типовое проектирование эис
 

Semelhante a «трудности при разработке сложных распределённых систем на Java. способы решения проблем» (константин миронов, auriga)

HighLoad весна 2014 лекция 1
HighLoad весна 2014 лекция 1HighLoad весна 2014 лекция 1
HighLoad весна 2014 лекция 1
Technopark
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Mail.ru Group
 
лекция 2
лекция 2лекция 2
лекция 2
cezium
 
эволюция методологий управления (водопад, Rup, Agile) башакин
эволюция методологий управления (водопад, Rup, Agile)   башакинэволюция методологий управления (водопад, Rup, Agile)   башакин
эволюция методологий управления (водопад, Rup, Agile) башакин
WRider
 

Semelhante a «трудности при разработке сложных распределённых систем на Java. способы решения проблем» (константин миронов, auriga) (20)

Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с Agile
 
жц (2)
жц (2)жц (2)
жц (2)
 
жц (2)
жц (2)жц (2)
жц (2)
 
жц (2)
жц (2)жц (2)
жц (2)
 
HighLoad весна 2014 лекция 1
HighLoad весна 2014 лекция 1HighLoad весна 2014 лекция 1
HighLoad весна 2014 лекция 1
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?
 
Test plan Толстова Ольга
Test plan Толстова ОльгаTest plan Толстова Ольга
Test plan Толстова Ольга
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
 
Теплюк А.В. Проведение пилотного проекта по организации системы сквозного про...
Теплюк А.В. Проведение пилотного проекта по организации системы сквозного про...Теплюк А.В. Проведение пилотного проекта по организации системы сквозного про...
Теплюк А.В. Проведение пилотного проекта по организации системы сквозного про...
 
Как из хаоса рождается порядок
Как из хаоса рождается порядокКак из хаоса рождается порядок
Как из хаоса рождается порядок
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
 
Статья «Формирование универсальных требований к пользовательским программам п...
Статья «Формирование универсальных требований к пользовательским программам п...Статья «Формирование универсальных требований к пользовательским программам п...
Статья «Формирование универсальных требований к пользовательским программам п...
 
Lection 3 4_pm
Lection 3 4_pmLection 3 4_pm
Lection 3 4_pm
 
Test Automation as a way of Natural Evolution of a Project
Test Automation as a way of Natural Evolution of a ProjectTest Automation as a way of Natural Evolution of a Project
Test Automation as a way of Natural Evolution of a Project
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
 
Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1
 
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
 
лекция 2
лекция 2лекция 2
лекция 2
 
эволюция методологий управления (водопад, Rup, Agile) башакин
эволюция методологий управления (водопад, Rup, Agile)   башакинэволюция методологий управления (водопад, Rup, Agile)   башакин
эволюция методологий управления (водопад, Rup, Agile) башакин
 
методология Rad (46)
методология Rad (46)методология Rad (46)
методология Rad (46)
 

«трудности при разработке сложных распределённых систем на Java. способы решения проблем» (константин миронов, auriga)

  • 1. Трудности при разработке сложных распределѐнных систем на Java. Способы решения проблем.
  • 2. Вводная часть Цель выступления 1. Нет цели научить и рассказать как делать проекты. 2. Нет цели научить разрабатывать проект «from scratch». Основная цель выступления - Познакомить аудиторию с реальным опытом разработки большого JAVA приложения. 1. Познакомить с применяемыми принципами анализа требований 2. Рассказать подходе к управлению требованиями 3. Использование системы хранения версий. Познакомить с реальной жизнью в проектах. Рассказать о своѐм опыте. Термины. Определения 1. «Большая система». 2. Подсистема. 2
  • 3. Часть 1. Проработка архитектуры. Обеспечение дальнейшего развития.
  • 4. Часть 1. Проработка архитектуры (1) Архитектура приложения определяет: 1. Функции, которые будет выполнять приложение в целом 2. Компоненты из которых будет состоять приложение 3. Функции которые будут выполнять компоненты 4. Как компоненты будут взаимодействовать между собой Правильный анализ – залог будущего вашего проекта 4
  • 5. Часть 1. Проработка архитектуры (2) Основные составляющие архитектуры: 1. Authentication/Authorization (User, Password, Roles) 2. Управление конфигурацией приложения – глобальные и локальные переменные, настройки 3. Deployment strategy (including tools) 4. Функции которые будут выполнять компоненты 5. Как компоненты будут взаимодействовать между собой 6. Доступ к данным – DataBase, в файлах, внешние системы 7. Схема работы с исключительными ситуациями. 8. Принципы логирования 9. Взаимодействие с пользователем, определение общего подхода 10. Data validation 5
  • 6. Часть 1. Проработка архитектуры (3) Разделение общего целого на блоки. First application Second application Не скатываться к - «Целое состоит из частей» 1. Общий код переносится из одной части системы в другую 2. Группировка сущностей в пакет 3. Выделение общего функционала в отдельные пакеты Пакет как отдельная подсистема-проект. 6
  • 7. Часть 1. Проработка архитектуры (4) Влияние факторов на процесс разработки. Одно принятое решение = один фактор влияния Technical debt 1. Business pressure 2. Lack of process or understanding 3. Lack of building loosely components 4. Lack of design/project documentation 5. Feature parallel development 6. Delayed refactoring. 7. Laziness of project staff. 7
  • 8. Часть 1. Проработка архитектуры (5) Предвидение будущего. Масштабирование нагрузки. Первый этап оптимизация Основные шаги оптимизации 1. Запросы к DB. Скорость получения результата. 2. Необходимость изменения структуры DB 3. Анализ алгоритмов обработки данных 4. Оптимизация –, есть ли необходимость оптимизировать структуру DB, алгоритмы обработки данных (оптимальная работа алгоритмов) Масштабирование 1. Вертикальное – увеличение ресурсов в рамках одного узла. 2. Горизонтальное – добавление новых узлов. Закон Амдала В случае, когда задача разделяется на несколько частей, суммарное время еѐ выполнения на параллельной системе не может быть меньше времени выполнения самого длинного фрагмента 8
  • 9. Часть 1. Проработка архитектуры (6) 9
  • 10. Часть 2. Декомпозиция на отдельные независимые подсистемы.
  • 11. Часть 2. Декомпозиция (1) Декомпозиция 1. Как часть аналитического метода 2. Как часть работ по планированию 3. Разделение одной большой задачи на группу мелких задач 11
  • 12. Часть 2. Декомпозиция (2) Разработка в два основных этапа: 1. Разработка базовой функциональности 2. Разработка отдельных подсистем, как самостоятельных проектов. 12
  • 13. Часть 3. Процесс разработки распределѐнной системы.
  • 14. Часть 3. Процесс разработки (1). Разработка проекта несколькими независимыми группами разработчиков 14
  • 15. Часть 3. Процесс разработки (2). Процесс отчѐтности Последствия неверно составленного отчѐта 1. Трата времени на выяснение действительного статуса работ. 2. Несвоевременное принятие решений по проекту. Потеря времени может оказать негативное влияние на проект в целом. Способы решения 1. Формулировка в отчѐте по задаче должна отвечать на вопрос - Что сделал? Какой результат? 2. Детальное описание результата. 3. Единое время посылки отчѐтов для всех инженеров. 15
  • 16. Часть 4. Поддержка процесса разработки с помощью AccuRev.
  • 17. Часть 4. Процесс разработки. AccuRev (1) Дано: 1. Команда разработчиков, тестировщиков, аналитиков, архитекторов…. Более 100 человек. 2. Исходный код, который содержит несколько миллионов строк. Почему AccuRev 1. Необходимость обеспечить сложную разветвлѐнную структуру версий разрабатываемого продукта 2. Регламентированные роли доступа – инженеры различных категорий, лидеры групп, QA инженеры, релиз инженеры. 3. Обеспечение различных уровней доступа к коду для разных категорий специалистов. Особенности работы 1. Нет привычных терминов tag, branch, trunk. 2. Оригинальная терминология. Каждый новый сотрудник должен пройти небольшой вводный курс. 17
  • 18. Часть 4. Процесс разработки. AccuRev (2) Терминология: Stream 18
  • 19. Часть 4. Процесс разработки. AccuRev (3) Picture source: http://www.accurev.com/scm-features.html 19
  • 20. Часть 4. Процесс разработки. AccuRev (4) Терминология: Snapshot 20
  • 21. Часть 4. Процесс разработки. AccuRev (5) Терминология: Promote 21
  • 22. Часть 4. Процесс разработки. AccuRev (6) Picture source: http://www.accurev.com/scm-features.html 22
  • 23. Часть 4. Процесс разработки. AccuRev (7) Picture source: http://www.accurev.com/scm-features.html 23
  • 24. Часть 4. Процесс разработки. AccuRev (8) Picture source: http://www.accurev.com/scm-features.html 24
  • 25. Часть 4. Процесс разработки. AccuRev (9) 25
  • 26. Часть 5. Как работать с большим объѐмом требований. Contour. Управление требованиями в проекте с помощью Contour
  • 27. Часть 5. Требования. Contour (1) Что такое изменение требований? - CR (Change Request) - New Feature Цели - Добавить новый функционал - Добавить новую возможность - Изменить существующий бизнес процесс. - Внести изменения в 27
  • 28. Часть 5. Требования. Contour (2) Инициаторы изменений Представители заказчика разного уровня– аналитики, участники различных бизнес процессов. Бизнес аналитик со стороны исполнителя проекта Архитекторы Представители отдела R&D (Research and Development) Формулировка требования с точки зрения аналитика. Пример: Система должна логировать действия пользователя при изменениях в реестре товаров. 28
  • 29. Часть 5. Требования. Contour (3) Формулировка требования с точки зрения архитектора системы. 1. Все операции изменения реестра должны содержать атрибут «Исполнитель» 2. Добавить журнал изменений. Просмотр журнала изменений. Формулировка задачи для разработчиков 1. Задача 123 – разработать Журнал изменений 2. Добавить атрибуты ID пользователя (Long userId;) и текст изменения (String changeMessage;) 3. При внесении изменения в реестр создавать запись в журнале изменений. Формулировка задачи для тестировщиков. Тестовый сценарий. 1. Войти в систему под тестовым пользователем, который имеет право на изменение в реестре товаров. 2. Произвести изменение в реестре. 3. Убедиться, что изменение отражено в журнале изменений. Работа началась…….. 29
  • 30. Часть 5. Требования. Contour (4) STOP Заказчик снова меняет требования после начала работ. 1. Производить запись в журнал изменения, которые касаются только добавления новых позиций в реестр. Сложности и возможные ошибки: 1. Внести изменения во все связанные документы. Высока вероятность того, что необходимые изменения будут внесены не во все связанные документы. 2. Проинформировать всех заинтересованных лиц. Высока вероятность того, что не все будут проинформированы о произошедших изменениях. Как следствие – потеря времени на установление истины. 30
  • 31. Часть 5. Требования. Contour (5) Единый репозиторий требований Countour. 1. Взаимные связи. 2. Поддержка хранения версий документов. 3. Синхронизация. Преимущества использование Contour 1. Все требования и изменения к ним публикуются в Contour. 2. Уникальные идентификаторы для каждого документа. Поддержка связей между документами. 3. Всем участникам проекта доступна одинаковые версии документов. Описание требований, тест планы. 4. Просмотр истории изменений. 5. Уведомление. Каждый разработчик и тестировщик, которые работают над разработкой конкретной feature получает уведомление о внесѐнных изменениях. 31
  • 32. Часть 5. Требования. Contour (6) Picture source: http://www.jamasoftware.com/contour/screenshots.php 32
  • 33. Часть 5. Требования. Contour (7) Picture source: http://www.jamasoftware.com/contour/screenshots.php 33
  • 34. Часть 5. Требования. Contour (8) Пример. FEATURE_000123 123 – номер feature FR-123-000001 – Функциональное требование 34
  • 35. Часть 5. Требования. Contour (9) Picture source: http://www.jamasoftware.com/contour/screenshots.php 35
  • 37. Часть 6. Тестирование. Облако (1) Часто встречающаяся проблема Большая система требует много аппаратных ресурсов для промежуточного и финального тестирования. Обеспечение каждого сотрудника проекта необходимыми аппаратными средствами может привести к значительному перерасходу бюджета проекта. 37
  • 38. Часть 6. Тестирование. Облако (2) Пример решение проблемы QA инженеры Серверы Группы разработчиков 38
  • 39. Часть 7. Поддержка и дальнейшая модернизация проекта. Bug fixing and new features.
  • 40. Часть 7. Bug fixing and new features (1) Непрерывный bug fixing Работа двух команд из разных часовых поясов Нижний США Новгород Transfer meeting Email transfer 40
  • 41. Useful Links. http://www.accurev.com http://www.jamasoftware.com/contour http://home.wlu.edu/~whaleyt/classes/parallel/topics/amdahl.html http://en.wikipedia.org/wiki/Amdahl's_law http://cc2e.com/ 41
  • 43. Contacts Thank You and We Look Forward to Working with You Auriga, USA Auriga, Russia 92 Potter Rd, Ste 1 125 Varshavskoe Shosse, Unit 16A Wilton, NH 03086, USA Moscow, 117587 Phone: +1 (866) 645-1119 Tel:+7 (495) 713-9900 Fax: +1 (603) 386-6097 Fax:+7 (495) 939-0300 info@auriga.com info@auriga.com www.auriga.com www.auriga.com 43