Программная инженерия Андрей Дмитриев ©2009
Совместная разработка
План Контроль версий Организация команды Почта как инструмент
Системы контроля версий …
CVS Visual Source Safe git Subversion (svn) Mercurial (hg) SCCS RCS …
Master-пространство «Главное» хранилище проекта Права на модификацию есть у избранных Иерархия подчинения пространств может быть условной Разработчики договариваются между собой об обмене Но все равно удобнее иметь выделенное главное хранилище
Иерархия пространств Изменения из пространств разработчиков А и В поступаю в основное пространство через промежуточное. Integrator WS Bs workspace As workspace Master WS
Внедрение изменений Изменения могут внедряться в определенный интервал времени. В крупном проекте может требоваться получение одобрения на каждое изменение в коде от: Коллег Менеджера Специального комитета
Проектная команд а* Главный программист Второй пилот Инструментальщик Языковед Контролер Архивариус Редактор + секретарь Администратор+секретарь * Операционная бригада Ф.Брукса
Иерархия подчинения 1. Президент 2. Директор 3. Менеджер второго звена 4. Менеджер первого звена 5. Лидеры проектов 6. Разработчики, исправители дефектов, SQE/SQA инженеры, CTE инженеры, инженеры по выпуску, технические писатели Где место project manager-а? ()
Что можно делать с помощью ?
Функции Документирование процесса разработки: Обсуждение Уведомление Техническая информация Уведомления о состоянии главного пространства Уведомления об изменении состояния дефекта Организационная информация
Почему ? Входящая почта часто – основной источник информации Рекомендуется: Заполнять все поля письма Сохранять соответствие заголовка письма и содержимого Сохранять контекст обсуждения Отвечать быстро Быть вежливым Использовать напоминания Рассылать итоги собраний, обсуждений и т.д.
Сложность программ Maurice Halstead – оценка на основе числа операторов и операндов McCafe, цикломатическая сложность – управляющий граф программы: узлы – операторы, дуги – передача управления Оценка ООП программ: Число сущностей Число переменных Число методов Число методов, вызываемых из класса
Факторы процесса разработки «Human resources» Типовые процедуры Инструментарий
Процесс разработки Panic model – решение тактических задач Capability Maturity Model (CMM) от Университета Карнеги- Меллоуна – предполагает несколько уровней
Выводы Знание процесса разработки ускоряет работу Оценка сложности и длительности проекта может носить неформализованный характер Существуют независимые попытки формализовать процесс разработки
Ссылки и литература Лекции по управлению программными проектами Набор серебряных пуль: Справочник удачных проектных решений при разработке ПО tehnologii/Proektirovanie-PO/nabor-serebryannyh-pul.zip Mills H. Chief programmer teams, principles, and procedures // IBM Federal Systems Division Report FSC Gaithersburg, Md., Кияев В.И. «Метрология, стандартизация и качество программного обеспечения»
Q&A
Спасибо! Андрей Дмитриев ©2009