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.

Ross2013 rubanov

363 views

Published on

  • Be the first to comment

  • Be the first to like this

Ross2013 rubanov

  1. 1. Автоматизация разработки СПО спомощью современных средств итехнологийВладимир РубановПервый зам. ген. директора(руководитель разработки)к.ф.-м.н., доцент, PMPМосква, 12 апреля 2013 г.
  2. 2. Владимир Рубанов об автоматизации разработки СПОРазработка сложного ПО: нюансы Сложные программы - это сотни тысяч файлов с исходнымикодами, тысячи модулей, многокомпонентная архитектура. Из одних и тех же файлов в исходных кодах можно собиратьразные версии и конфигурации целевой программы. Развитие разных модулей идет параллельно разнымикомандами. Состыковка разных модулей в разных конфигурациях –нетривиальная задача.Разработка сложного ПО должна осуществляться спомощью специальных средств автоматизации2 из 28
  3. 3. Владимир Рубанов об автоматизации разработки СПОСложное программное обеспечениеГод Система Строк кода, млн.1996 Windows NT 4.0 122000 Windows 2000 302001 Windows XP 452003 Windows Server 2003 502011 Mac OS X 10.4 862002 Debian 3.0 1042007 Debian 4.0 2832009 Debian 5.0 3242012 ROSA Desktop 2012 6603 из 28
  4. 4. Владимир Рубанов об автоматизации разработки СПОСостав дистрибутива LinuxПриложения (Firefox, OpenOffice и др.)Кол-во: ~100 - 1000Библиотеки и системные утилиты(Glibc, Gtk, Qt и др.)Кол-во: ~5 000 - 15 000Ядро (kernel)Кол-во: 1 - 24 из 28
  5. 5. Владимир Рубанов об автоматизации разработки СПОРазработка дистрибутива Linux5 из 28
  6. 6. Владимир Рубанов об автоматизации разработки СПОРазработка Linux и независимость «Косметическая» независимость – меняется название и «обои»дистрибутива, все пакеты в бинарном виде используются отисходного дистрибутива (BolgenOS). «Оптимизирующая» независимость – конфигурация и составпакетов дистрибутива оптимизируются для какой то задачи, самипакеты полностью заимствуются из исходного дистрибутива. «Крупноузловая сборка» - основа дистрибутива берется изисходного дистрибутива с минимальными изменениями, априкладной слой компонуется независимо на основеоригинального upstream. Часть или все пакеты пересобираются изисходных кодов. «Полная» независимость – все ~10 000 компонентов берутсяизначально из оригинальных upstream источников и компонуютсямежду собой. Проводится полная пересборка из исх. кодов.6 из 28
  7. 7. Генеалогия и дистрибутивы Linux7 из 61
  8. 8. Владимир Рубанов об автоматизации разработки СПОРазработчик (мейнтейнер пакетов) в LinuxОтвечает за жизненный цикл определенногокомпонента (пакета) в составе дистрибутива. Участвует в разработке пакета как член upstreamпроекта или как независимый разработчик.Является «связником» с upstream разработчиками. Обновляет пакет на основе исходного upstream проекта. Обеспечивает совместимость пакета со всеми остальнымисвязанными пакетами в составе дистрибутива. Тестирует пакет. Документирует пакет. Собирает пакет из исходных кодов и размещает врепозитории дистрибутива.8 из 28
  9. 9. Владимир Рубанов об автоматизации разработки СПОИнструменты:URPM-Repoclosure Замкнутость репозитория по зависимостям Проверяет собранный репозиторий Виды анализа:статическийдинамическийhttp://fba.rosalinux.ru/repoclosure/9 из 28
  10. 10. Владимир Рубанов об автоматизации разработки СПООтчеты:URPM-RepoclosureСломанные пакетыМетрики10 из 28
  11. 11. Владимир Рубанов об автоматизации разработки СПОИнструменты:ABI Compliance Checker Анализ совместимости версий С/C++библиотек Приоретизация найденных проблем Используется вUpstream: разработчиками библиотекDownstream: мейнтейнерамиhttp://github.com/lvc/abi-compliance-checker11 из 28
  12. 12. Владимир Рубанов об автоматизации разработки СПООтчеты:ABI Compliance CheckerSummaryПроблемы совместимости12 из 28
  13. 13. Владимир Рубанов об автоматизации разработки СПООтчеты:ABI Compliance CheckerРазбор конкретных проблем13 из 28
  14. 14. Владимир Рубанов об автоматизации разработки СПООтчеты:ABI Compliance CheckerАнализ конкретных изменений14 из 28
  15. 15. Владимир Рубанов об автоматизации разработки СПОИнструменты:Upstream Tracker Мониторинг и анализ библиотек в апстриме:отслеживание новых версийизменения в API/ABIСтабилизация апстримаhttp://upstream-tracker.org/15 из 28
  16. 16. Владимир Рубанов об автоматизации разработки СПООтчеты:Upstream Tracker16 из 28
  17. 17. Владимир Рубанов об автоматизации разработки СПОИнструменты:Updates TrackerОпределение устаревших пакетов•по сравнению•с апстримом•другими дистрибутивамиhttp://upstream-tracker.org/updates/rosa/2012/17 из 28
  18. 18. Владимир Рубанов об автоматизации разработки СПООтчеты:Updates Tracker18 из 28
  19. 19. Владимир Рубанов об автоматизации разработки СПОИнструменты:PkgDiff Изменения в пакетах:ВизуализацияКлассификацияhttp://pkgdiff.github.com/pkgdiff/19 из 28
  20. 20. Владимир Рубанов об автоматизации разработки СПООтчеты:PkgDiffМетрикиКлассификация файлов20 из 28
  21. 21. Владимир Рубанов об автоматизации разработки СПООтчеты:PkgDiffОценка изменений21 из 28
  22. 22. Владимир Рубанов об автоматизации разработки СПОСборка дистрибутива. Кратко.22 из 28
  23. 23. Владимир Рубанов об автоматизации разработки СПОСистема разработки и сборки ROSA ABF:основные особенности Поддержка полного цикла сборки: от отдельных файлови пакетов до финальных образов (.iso). Поддержка разработки разных дистрибутивов. Поддержка сборки для разных аппаратных платформ. Эргономичный веб-интерфейс – возможна кросс-платформенная разработка. Персональные репозитории разработчиков. Интеграция процессов разработки, конфигурационногоуправления и сборки на единой площадке.23 из 28
  24. 24. Владимир Рубанов об автоматизации разработки СПОROSA ABF: основные функции Площадка обсуждения и прямого обмена кодоммежду разработчиками. Встроенный трекер задач. Контекстная WIKI. Интеграция с ведущей системой контроля версий Git. Мониторинг статуса по компонентам и платформамв целом. Автоматизированные процессы жизненного цикларазработки ПО.24 из 28
  25. 25. Владимир Рубанов об автоматизации разработки СПОABF как продукт для сторонних компаний Безопасная система для хостинга и разработкидистрибутивов на основе Linux и приложений дляних. Система сборки пакетов под множестводистрибутивов в безопасной среде. Система централизованной доставки обновленийдля клиентских машин (как пользовательских, так исерверных). Может быть использован, как Continuous Integrationсервер.25 из 28
  26. 26. Владимир Рубанов об автоматизации разработки СПОКарьера мейнтейнера Linux «Энтузиаст» – отвечает за один или несколько пакетов just for fun. «Part-time мейнтейнер» – отвечает за несколько десятков пакетовfor fun & money. «Full-time мейнтейнер» – отвечает за «много» пакетов. «Ведущий мейнтейнер» – отвечает за много пакетов сам икоординирует связанных с ним мейнтейнеров. «Менеджер репозитория» – отвечает за весь репозиторий,координирует работу всех мейнтейнеров. «Релиз-менеджер» – отвечает за подготовку релиза дистрибутива. «Руководитель разработки дистрибутива» - отвечает за все.26 из 28
  27. 27. Владимир Рубанов об автоматизации разработки СПОДругие роли в мире Linux Разработчики ПО (от младших до гуру) Архитекторы ПО Инженеры по внедрению и адаптации Системные администраторы Менеджеры продуктов Руководители проектов Тестировщики Юзабилисты Дизайнеры интерфейсов Специалисты поддержки Руководители групп Agile-роли Технические писатели27 из 28
  28. 28. Владимир Рубанов об автоматизации разработки СПОХотите поучаствовать в разработке Linux?Присоединяйтесь к сообществу РОСА! http://upstream-tracker.org/ https://abf.rosalinux.ru/ http://fba.rosalinux.ru/ http://rosalab.ru/http://wiki.rosalab.ru/en/index.php/ROSA_Developer_QuickStartE-mail: rubanov@rosalab.ru28 из 28

×