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