Вопрос 10. Коллективная работа по созданию программного обеспечения на примере разработки текстового редактора.


Добавил:DMT
Дата создания:30 декабря 2007, 18:52
Дата обновления:8 января 2008, 19:26
Просмотров:8386 последний сегодня, 10:39
Комментариев: 0

Вопрос 10. Коллективная работа по созданию программного обеспечения на примере разработки текстового редактора.

Современные технологии разработки ПО рекомендуют определять команду как три независимые административно стороны . Каждая сторона состоит из независящих функционально ролей. Каждая роль может включать в себя несколько человек. Роли совместимы только внутри сторон. Итак, сторона заказчика имеет следующие ключевые роли: менеджер продукта и бизнес-аналитик. Менеджер продукта - это представитель разработчика у заказчика, он обязан представлять интересы заказчика у разработчика. Это главный источник информации, как для заказчика, так и для разработчика, его цель - полное удовлетворение потребностей заказчика в рамках выделенных ресурсов. Бизнес-аналитик - это представитель заказчика, ответственный за создание системы. Он досконально знает бизнес-процесс своего предприятия и обязан предоставлять полную и достоверную информацию.

Сторона разработчика : менеджер программы, аналитик, программист, тестировщик . Менеджер программы - это главный технический специалист проекта, он является хранителем спецификации и заинтересован в ее минимальных изменениях во время разработки. Аналитик - формализует информацию, получаемую со стороны заказчика в виде моделей, обязан уметь выявлять закономерности и делать правильные обобщения. Анализирует и проектирует комплекс взаимосвязанных программ для реализации функций предметной области. Программист - непосредственно кодировщик. Тестировщик - специалист по тестированию, отвечает за соответствие системы ее спецификации.

Сторона качества : бизнес-аналитик и технолог. Бизнес-аналитик - специалист по предметной области вообще, не зависимо от конкретного предприятия. Технолог - специалист по технологии, контролирующий правильность ее использования.

В реальности каждая сторона работает в противовес двум остальным и необходима для сохранения общего баланса.

Каждая роль может включать в себя несколько человек. Нужно учитывать, что при работе над большим проектом возникает проблема взаимодействия исполнителей между собой. Взаимодействие исполнителей друг с другом требует времени, что в определенной степени снижает производительность труда . Причем взаимное непонимание приводит к дополнительным затратам на последующих стадиях разработки, например, непонимание среди программистов приводит к дополнительным затратам на тестирование.

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

Решением этой проблемы может стать организация бригад . Если рассматривать на примере программистов, то организация бригады главного программиста . Бригада должна включать от 3 до 7 человек. Число 10 является верхней границей численности бригады. Это обусловлено требованием максимальной управляемости коллек­тива.

В бригаде в зависимости от квалификации выделяют следующих специалистов. Руководитель бригады (например, главный программист) - это превосходно подготовленный, творчески мыслящий, наделенный организацион­ными способностями специалист. Выполняет работу верхнего уровня, в том числе распределение работы внутри бригады. Заместитель руководителя бригады (например, старший программист) - поддерживает тесную связь с руководителем бригады и дорабатывает более мелкие вопросы. При обсуждении проекта заместитель должен выступать в роли оппонента руководителю бригады. Непосредственно исполнители (например, младшие программисты) - два или три "менее опытных" (но не "менее способных") специалистов. Выполняют работу нижнего уровня, определенную руководителем бригады.

В большом проекте в состав каждой или нескольких бригад могут входить следующие специалисты. Администратор . Отвечает за распределение времени, подбор кадров, размещение исполнителей, финансирование, поддержку связи с высшим руководством. Библиотекарь . Ведет системную библиотеку - например, библиотеку модулей, используемых в оперативном режиме. Все изменения в программные модули вносит только библиотекарь. Также ведет системную документацию - системный журнал. Технический исполнитель (документатор). Занимается написанием документации по проекту, что освобождает более квалифицированных специалистов от этой рутинной работы. Секретарь . Выполняет обычную работу секретаря.

Опыт разработки крупных ПО показывает , что для повышения эффективности работ необходимо разбить проект на отдельные слабо связанные по данным и функциям подсистемы . Реализация подсистем должна выполняться отдельными группами специалистов. Поэтому после первоначального определения функций, которые должно выполнять разрабатываемое ПО, проект распределяется между различными командами раз­работчиков (рис).

При этом необходимо обеспечить координацию веде­ния общего проекта и исключить дублирование результатов работ каждой проектной группы, которое может возникнуть в силу нали­чия общих данных и функций. В случае использования CASE -средств это означает деление функциональной модели системы (ди­аграммы потоков данных для структурного подхода).

Результатом стадии должны быть: общая информационная модель системы; глобальные функциональные модели системы в целом и подсистем, реализу­емых отдельными командами разработчиков; точно определенные интерфейсы между автономно разрабаты­ваемыми подсистемами (те данные, которые передаются между ними); построенные прототипы экранных форм, отчетов, диалогов (должен быть определен стандарт интерфейса пользователя).

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

up