Руководство программным проектом
Процесс разработки продукта. Процесс оценки, анализ риска, планирование, трассировка и контроль. Структура распределения работ. Типовая структура распределения проектных работ. Анализ чувствительности программного проекта к изменению условий разработки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 26.06.2009 |
Размер файла | 319,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Содержание
1. Введение
2. Руководство программным проектом
3. Планирование проектных задач
4. Конструктивная модель стоимости
5. Заключение
6. Список литературы
Введение
Руководство программным проектом - первый слой процесса конструирования ПО. Термин "слой" подчеркивает, что руководство определяет сущность процесса разработки от его начала до конца. Принцип руководства иллюстрирует рис. 2.1.
Рис. 2.1. Руководство в процессе конструирования ПО
На этом рисунке прямоугольник обозначает процесс конструирования, в нем выделены этапы, а вверху, над каждым из этапов, размещен слой деятельности "руководство программным проектом".
Для проведения успешного проекта нужно понять объем предстоящих работ, возможный риск, требуемые ресурсы, предстоящие задачи, прокладываемые вехи, необходимые усилия (стоимость), план работ, которому желательно следовать. Руководство программным проектом обеспечивает такое понимание. Оно начинается перед технической работой, продолжается по мере развития ПО от идеи к реальности и достигает наивысшего уровня к концу работ [32], [64], [69].
2. Руководство программным проектом
Начало проекта
Перед планированием проекта следует:
· установить цели и проблемную область проекта;
· обсудить альтернативные решения;
· выявить технические и управленческие ограничения.
Измерения, меры и метрики
Измерения помогают понять как процесс разработки продукта, так и сам продукт. Измерения процесса производятся в целях его улучшения, измерения продукта - для повышения его качества. В результате измерения определяется мера - количественная характеристика какого-либо свойства объекта. Путем непосредственных измерений могут определяться только опорные свойства объекта. Все остальные свойства оцениваются в результате вычисления тех или иных функций от значений опорных характеристик. Вычисления этих функций проводятся по формулам, дающим числовые значения и называемым метриками.
В IEEE Standard Glossary of Software Engineering Terms метрика определена как мера степени обладания свойством, имеющая числовое значение. В программной инженерии понятия мера и метрика очень часто рассматривают как синонимы.
Процесс оценки
При планировании программного проекта надо оценить людские ресурсы (в человеко-месяцах), продолжительность (в календарных датах), стоимость (в тысячах долларов). Обычно исходят из прошлого опыта. Если новый проект по размеру и функциям похож на предыдущий проект, вполне вероятно, что потребуются такие же ресурсы, время и деньги.
Анализ риска
На этой стадии исследуется область неопределенности, имеющаяся в наличии перед созданием программного продукта. Анализируется ее влияние на проект. Нет ли скрытых от внимания трудных технических проблем? Не станут ли изменения, проявившиеся в ходе проектирования, причиной недопустимого отставания по срокам? В результате принимается решение - выполнять проект или нет.
Планирование
Определяется набор проектных задач. Устанавливаются связи между задачами, оценивается сложность каждой задачи. Определяются людские и другие ресурсы. Создается сетевой график задач, проводится его временная разметка.
Трассировка и контроль
Каждая задача, помеченная в плане, отслеживается руководителем проекта. При отставании в решении задачи применяются утилиты повторного планирования. С помощью утилит определяется влияние этого отставания на промежуточную веху и общее время конструирования. Под вехой понимается временная метка, к которой привязано подведение промежуточных итогов.
В результате повторного планирования:
· могут быть перераспределены ресурсы;
· могут быть реорганизованы задачи;
· могут быть пересмотрены выходные обязательства.
3. Планирование проектных задач
Основной задачей при планировании является определение WBS - Work Breakdown Structure (структуры распределения работ). Она составляется с помощью утилиты планирования проекта. Типовая WBS приведена на рис. 2.2.
Первыми выполняемыми задачами являются системный анализ и анализ требований. Они закладывают фундамент для последующих параллельных задач.
Системный анализ проводится с целью:
1. выяснения потребностей заказчика;
2. оценки выполнимости системы;
3. выполнения экономического и технического анализа;
4. распределения функций по элементам компьютерной системы (аппаратуре, программам, людям, базам данных и т. д.);
5. определения стоимости и ограничений планирования;
6. создания системной спецификации.
В системной спецификации описываются функции, характеристики системы, ограничения разработки, входная и выходная информация.
Анализ требований дает возможность:
1. определить функции и характеристики Программного продукта;
2. обозначить интерфейс продукта с другими системными элементами;
3. определить проектные ограничения программного продукта;
4. построить модели: процесса, данных, режимов функционирования продукта;
5. создать такие формы представления информации и функций системы, которые можно использовать в ходе проектирования.
Рис. 2.2. Типовая структура распределения проектных работ
Результаты анализа сводятся в спецификацию требований к программному продукту.
Как видно из типовой структуры, задачи по проектированию и планированию тестов могут быть распараллелены. Благодаря модульной природе ПО для каждого модуля можно предусмотреть параллельный путь для детального (процедурного) проектирования, кодирования и тестирования. После получения всех модулей ПО решается задача тестирования интеграции - объединения элементов в единое целое. Далее проводится тестирование правильности, которое обеспечивает проверку соответствия ПО требованиям заказчика.
Ромбиками на рис. 2.2 обозначены вехи - процедуры контроля промежуточных результатов. Очень важно, чтобы вехи были расставлены через регулярные интервалы (вдоль всего процесса разработки ПО). Это даст руководителю возможность регулярно получать информацию о текущем положении дел. Вехи распространяются и на документацию как на один из результатов успешного решения задачи.
Параллельность действий повышает требования к планированию. Так как параллельные задачи выполняются асинхронно, планировщик должен определить межзадачные зависимости. Это гарантирует "непрерывность движения к объединению". Кроме того, руководитель проекта должен знать задачи, лежащие на критическом пути. Для того чтобы весь проект был выполнен в срок, необходимо выполнять в срок все критические задачи.
Основной рычаг в планирующих методах - вычисление границ времени выполнения задачи.
Обычно используют следующие оценки:
1. Раннее время начала решения задачи Tinmin (при условии, что все предыдущие задачи решены в кратчайшее время).
2. Позднее время начала решения задачи Tinmax (еще не вызывает общую задержку проекта).
3. Раннее время конца решения задачи Toutmin
Toutmin = Tinmin + Tреш
4. Позднее время конца решения задачи Toutmax
Toutmax = Tinmax + Tреш.
5. Общий резерв - количество избытков и потерь планирования задач во времени, не приводящих к увеличению длительности критического пути Tк.п.
Все эти значения позволяют руководителю (планировщику) количественно оценить успех в планировании, выполнении задач.
Рекомендуемое правило распределения затрат проекта - 40-20-40:
· на анализ и проектирование приходится 40% затрат (из них на планирование и системный анализ - 5%);
· на кодирование - 20%;
· на тестирование и отладку - 40%.
Выполнение в ходе руководства проектом
Процесс руководства программным проектом начинается с множества действий, объединяемых общим названием планирование проекта. Первое из этих действий - выполнение оценки. Оно закладывает фундамент для других действий по планированию проекта. При оценке проекта чрезвычайно высока цена ошибок. Очень важно провести оценку с минимальным риском.
Выполнение оценки проекта на основе LOC- и FP-метрик
Цель этой деятельности - сформировать предварительные оценки, которые позволят:
· предъявить заказчику корректные требования по стоимости и затратам на разработку программного продукта;
· составить план программного проекта.
При выполнении оценки возможны два варианта использования LOC- и FP-данных:
· в качестве оценочных переменных, определяющих размер каждого элемента продукта;
· в качестве метрик, собранных за прошлые проекты и входящих в метрический базис фирмы.
Обсудим шаги процесса оценки.
· Шаг 1. Область назначения проектируемого продукта разбивается на ряд функций, каждую из которых можно оценить индивидуально:
f1,f2, ...,fn.
· Шаг 2. Для каждой функции f1 планировщик формирует лучшую LОСлучшi (FРлучшi), худшую LOСХУДШi (FРХУДШi) и вероятную оценку LOСвероятнi (FРвероятнi). Используются опытные данные (из метрического базиса) или интуиция. Диапазон значения оценок соответствует степени предусмотренной неопределенности.
· Шаг 3. Для каждой функции fi в соответствии с в-распределением вычисляется ожидаемое значение LOC- (или FP-) оценки:
LOCожi = LOCлучшi + LOCхудшi + 4 x LOCвероятнi) / 6.
· Шаг 4. Определяется значение LOC- или FP-производительности разработки функции.
Используется один из трех подходов:
1. для всех функций принимается одна и та же метрика средней производительности ПРОИЗВср, взятая из метрического базиса;
2. для i-й функции на основе метрики средней производительности вычисляется настраиваемая величина производительности:
ПРОИЗВi = ПРОИЗВср х (LOСср / LOСожi) ,
где LOCcp - средняя LOC-оценка, взятая из метрического базиса (соответствует средней производительности);
4. Конструктивная модель стоимости
В данной модели для вывода формул использовался статистический подход - учитывались реальные результаты огромного количества проектов. Автор оригинальной модели - Барри Боэм (1981) - дал ей название СОСОМО 81 (Constructive Cost Model) и ввел в ее состав три разные по сложности статистические подмодели [1].
Иерархию подмоделей Боэма (версии 1981 года) образуют:
· базисная СОСОМО - статическая модель, вычисляет затраты разработки и ее стоимость как функцию размера программы;
· промежуточная СОСОМО - дополнительно учитывает атрибуты стоимости, включающие основные оценки продукта, аппаратуры, персонала и проектной среды;
· усовершенствованная СОСОМО - объединяет все характеристики промежуточной модели, дополнительно учитывает влияние всех атрибутов стоимости на каждый этап процесса разработки ПО (анализ, проектирование, кодирование, тестирование и т. д.).
Подмодели СОСОМО 81 могут применяться к трем типам программных проектов. По терминологии Боэма, их образуют:
· распространенный тип - небольшие программные проекты, над которыми работает небольшая группа разработчиков с хорошим стажем работы, устанавливаются мягкие требования к проекту;
· полунезависимый тип - средний по размеру проект, выполняется группой разработчиков с разным опытом, устанавливаются как мягкие, так и жесткие требования к проекту;
· встроенный тип - программный проект разрабатывается в условиях жестких аппаратных, программных и вычислительных ограничений.
Уравнения базовой подмодели имеют вид
Е = ab x (KLOCbb [чел-мес];
D = cb x (E)db[Mec],
где Е- затраты в человеко-месяцах, D - время разработки, KLOC - количество строк в программном продукте.
Заключение
СОСОМО II - авторитетная и многоплановая модель, позволяющая решать самые разнообразные задачи управления программным проектом.
Рассмотрим возможности этой модели в задачах анализа чувствительности - чувствительности программного проекта к изменению условий разработки.
Будем считать, что корпорация "СверхМобильныеСвязи" заказала разработку ПО для встроенной космической системы обработки сообщений. Ожидаемый размер ПО - 10 KLOC, используется серийный микропроцессор. Примем, что масштабные факторы имеют номинальные значения (показатель степени В = 1,16) и что автоматическая генерация кода не предусматривается. К проведению разработки привлекаются главный аналитик и главный программист высокой квалификации, поэтому средняя зарплата в команде составит $ 6000 в месяц. Команда имеет годовой опыт работы с этой проблемной областью и полгода работает с нужной аппаратной платформой.
В терминах СОСОМО II проблемную область (область применения продукта) классифицируют как "операции с приборами" со следующим описанием: встроенная система для высокоскоростного мультиприоритетного обслуживания удаленных линий связи, обеспечивающая возможности диагностики.
Оценку пост-архитектурных факторов затрат для проекта сведем в табл. 2.27.
Из таблицы следует, что увеличение затрат в 1,3 раза из-за очень высокой сложности продукта уравновешивается их уменьшением вследствие высокой квалификации аналитика и программиста, а также активного использования программных утилит.
Список литературы
1. Боэм Б. У. Инженерное проектирование программного обеспечения. М.: Радио и связь, 1985. 511 с.
2. Липаев В. В. Отладка сложных программ: Методы, средства, технология. М.: Энергоатомиздат, 1993. 384 с.
3. Майерс Г. Искусство тестирования программ. М.: Финансы и статистика, 1982. 176с.
4. Орлов С. А. Принципы объектно-ориентированного и параллельного программирования на языке Ada 95. Рига: TSI, 2001. 327 с.
5. Чеппел Д. Технологии ActiveX и OLE. M.: Русская редакция, 1997. 320 с.
6. Abreu, F. В., Esteves, R., Goulao, M. The Design of Eiffel Programs: Quantitative Evaluation Using the MOOD metrics. Proceedings of the TOOLS'96. Santa Barbara, California 20 pp. July 1996.
Подобные документы
Технологический процесс в организации и его компоненты. Организационная структура и роли в технологических процессах. Пятиуровневая модель зрелости технологического процесса разработки программного обеспечения. Внутренняя структура уровней зрелости.
курсовая работа [184,1 K], добавлен 29.06.2010Создание программного продукта, представляющего моделирование на компьютере логнормального распределения, определение вероятностной оценки стоимости актива. Описание работы программного продукта. Работа с графиками, таблицами, математическими функциями.
курсовая работа [742,7 K], добавлен 08.01.2009Приобретение практических навыков в применении методов сетевого планирования разработки крупных программных систем в заданные сроки и с оценкой необходимых ресурсов. Диаграмма распределения ресурсов для полученного субоптимального сетевого графика.
лабораторная работа [70,9 K], добавлен 15.03.2009Анализ существующего программного обеспечения. Этапы создания проекта. Концептуальное, логическое и физическое проектирование базы данных. Структура программного продукта. Руководство программиста и оператора. Тестирование программного продукта.
курсовая работа [586,4 K], добавлен 26.06.2015Rational Unified Process - конфигурируемый процесс разработки программного обеспечения, его назначение и использование. Методология, процесс, этапы и компоненты RUP. Структура жизненного цикла проекта. Примеры построения диаграмм и иерархии классов.
презентация [175,7 K], добавлен 07.12.2013Модель этапа пост-архитектуры. Предварительная оценка программного проекта на основе LOC-метрик. Расчет затрат на разработку ПО. Стоимость, длительность разработки проекта на основе модели этапа пост-архитектуры конструктивной модели стоимости СОСОМО II.
курсовая работа [89,9 K], добавлен 29.09.2009Анализ деятельность предприятия. Формирование базовых документов по управлению проектом: Устава и Плана. Иерархическая структура работ. Реализация проекта информационной системы "Учет товара" с использованием MS Project. Работа со списком ресурсов.
курсовая работа [564,6 K], добавлен 29.04.2016Инструментальные средства разработки сайта. Таблицы базы данных, их описание. Общие принципы разработки программного продукта. Структура программного продукта клиента. Страница информации о пользователе и его заказов, информационная безопасность.
дипломная работа [3,5 M], добавлен 14.06.2012Применение промышленных технологий создания программного продукта. Описания принципов, методов, применяемых процессов и операций. Общие понятия методологии разработки программного обеспечения (ПО). Сравнение современных методологий проектных групп.
курсовая работа [1,6 M], добавлен 04.12.2009Описание документов, на основании которых ведется разработка. Назначение разработки и анализ функций проектируемого программного средства. Этапы разработки программы для поиска и открытия файлов. Руководство для пользователя на разработанную программу.
курсовая работа [3,3 M], добавлен 10.11.2010