Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 6. Оценка стоимости программного продукта.

Презентация:



Advertisements
Похожие презентации
Масштабируемость, переносимость и мобильность ПО Выполнил: ТРИНЕЕВ А.А.
Advertisements

Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 8. Управление качеством.
Разработка программного обеспечения (Software Engineering) Часть 2. Создание ПО.
Прогнозирование сложности проектирования заказных программных продуктов Презентация на тему: Проверил: Б.М.МихайловВыполнил: Д.Ю.Ермилов 2017.
Разработка программного обеспечения (Software Engineering) Часть 1. Введение.
Положение об отделе В.Андреев, Д.Сатин. Штат отдела начальник отдела; бизнес-аналитик; проектировщик пользовательских интерфейсов; специалист по анализу.
Методология проектирования RAD МДК Раздел 1.
Александров А.Г ИТО Методы теории планирования экспериментов 2. Стратегическое планирование машинных экспериментов с моделями систем 3. Тактическое.
2 Модель ЖЦ ИС – это структура, описывающая процессы, действия и задачи, которые осуществляются в ходе разработки, функционирования и сопровождения в.
Lecture 2.3C 1 Методы повышения ценности НАП – Независимый Анализ Проекта Основан в 1987 Оценка проекта и контрольные точки проекта Более 70 компаний во.
ПРОЦЕСС УПРАВЛЕНИЯ ПРОЕКТОМ И ОРГАНИЗАЦИОННАЯ СТРУКТУРА.
Жизненный цикл ИС период создания и использования информационных систем, начиная с момента возникновения необходимости в данной информационной системы.
Руководство программным проектом. Схема разработки программ.
Продолжение темы 4. Основные этапы проектирования CSRP-системы.
Технология внедрения CASE- средств Технология внедрения CASE-средств базируется в основном на стандартах IEEE (IEEE - Institute of Electrical and Electronics.
Анализ ресурсов организации. Компоненты внутреннего анализа ресурсов организации (ресурсы и организация корпорации, финансирование, производство, персонал).
ТЕМА 5 Выполнила: студент гр.М-21 Хайртдинова Гульфина.
СОЗДАНИЕ ПЛАТФОРМЫ для ИНТЕРНЕТ МАГАЗИНА. Решения План работ Разработка Дизайн Контент Интеграция в социальные сети Стоимость Привлечение Вопросы ОГЛАВЛЕНИЕ.
Презентация к уроку по теме: Презентация на тему "Закупочная логистика"
ТЕСТИРОВАНИЕ МЕТОД «ЧЕРНОГО ЯЩИКА» ВЫПОЛНИЛ СТУДЕНТ ГР. ИВТ-51 з БАННИКОВА Н.Р.
Транксрипт:

Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 6. Оценка стоимости программного продукта

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

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

Факторы, влияющие на стоимость программного продукта Фактор Описание Возможности рынка ПО Организация-разработчик может выставить низкие цены на программный продукт из-за намерения переместиться в другой сегмент рынка ПО, что в будущем может привести к более высоким доходам. Непредвиден ные факторы Если организация примет фиксированную величину стоимости, издержки производства могут возрасти из-за непредвиденных расходов Условия контракта Если, например, право на владение программным кодом после завершения проекта передано заказчику, то проект стоит дороже. Изменение требований После заключения контракта за изменение требований можно назначить дополнительную цену Финансовая стабильность Во избежание банкротства фирмы, испытывающие финансовые затруднения, для получения заказа могут снизить цены на свои разработки.

Оценка производительности разработки ПО основана на измерении количественных показателей программных продуктов и последующем делении их на количество усилий, затраченных на разработку этих продуктов: Показатель размера. Зависит от размера выходного результата очередного этапа работ, например, количество строк программного кода. Показатель размера. Зависит от размера выходного результата очередного этапа работ, например, количество строк программного кода. Функциональный показатель. Зависит от функциональных возможностей программного продукта в целом, например, количество функциональных и объектных точек. Функциональный показатель. Зависит от функциональных возможностей программного продукта в целом, например, количество функциональных и объектных точек. Производительность

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

Для определения можно воспользоваться методом функциональных точек. Критерием оценки производительности выступает количество функциональных точек, созданных за человеко-месяц. Функциональная точка это комбинация свойств ПО: Интенсивности использования ввода и вывода внешних данных. Интенсивности использования ввода и вывода внешних данных. Взаимодействия системы с пользователем. Взаимодействия системы с пользователем. Внешних интерфейсов. Внешних интерфейсов. Файлов, используемых системой. Файлов, используемых системой. Нескорректированный подсчет функциональных точек (UFC) выполняется путем вычисления суммы произведений оценки каждого фактора (количество элементов, составляющих данный фактор) на выбранную весовую величину этого фактора: UFC = 2 (количество элементов данного типа) х (весовая величина). Производительность Функциональный показатель

Для определения можно воспользоваться методом объектных точек. Количество объектных точек в программе можно получить путем предварительного подсчета ряда элементов: Количество изображений на дисплее. Простые изображения принимаются за 1 объектную точку, изображения умеренной сложности принимаются за 2 точки, а очень сложные изображения принято считать за 3 точки. Количество изображений на дисплее. Простые изображения принимаются за 1 объектную точку, изображения умеренной сложности принимаются за 2 точки, а очень сложные изображения принято считать за 3 точки. Количество представленных отчетов. Для простых отчетов назначаются 2 точки, умеренно сложным отчетам назначаются 5 точек. Написание сложных отчетов оценивается в 8 точек. Количество представленных отчетов. Для простых отчетов назначаются 2 точки, умеренно сложным отчетам назначаются 5 точек. Написание сложных отчетов оценивается в 8 точек. Каждый модуль на языке третьего поколения считается за 10 объектных точек. Каждый модуль на языке третьего поколения считается за 10 объектных точек. Производительность Функциональный показатель

Самым важным фактором являются индивидуальные способности. Факторы, влияющие на производительность программиста Производительность программиста ФакторОписание Опыт разработки ПО для предметной области Для эффективной разработки программного продукта необходимо знание той предметной области, где будет эксплуатироваться области разрабатываемое ПО. Процесс управления качеством Применяемый метод программирования может оказать существенное влияние на производительность написания кода. Размер проекта Чем больше проект, тем больше времени уходит на согласование различных вопросов внутри группы разработчиков и ниже производительность.

Производительность программиста Поддержка технологии разработки ПО Хорошая поддержка технологии разработки ПО, например CASE-средства или системы управления конфигурацией, может значительно повысить производительность труда программиста Рабочая обстановка Спокойное рабочее окружение с индивидуальными рабочими местами способствует повышению производительности ФакторОписание

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

Методы оценивания МетодОписание Закон Паркинсона Усилия, затраченные на работу, распределяются равномерно по выделенному на проект времени. Здесь критерием для оценки затрат по проекту являются человеческие ресурсы, а не целевая оценка самого программного продукта. Назначение цены с целью выиграть контракт Затраты на проект определяются наличием тех средств, которые имеются у заказчика. Поэтому себестоимость проекта зависит от бюджета заказчика, а не от функциональных характеристик создаваемого продукта.

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

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

Алгоритмическое моделирование стоимости Модель СОСОМО Эта модель основана на опыте реализации многих программных проектов. Она создана путем сбора данных о большом количестве проектов и анализа этой информации. Достоинства модели: Эта модель имеет хорошую техническую документацию, общедоступна,существуют коммерческие программные средства ее поддержки. Эта модель имеет хорошую техническую документацию, общедоступна,существуют коммерческие программные средства ее поддержки. Модель популярна и ценится среди широкого круга пользователей. Модель популярна и ценится среди широкого круга пользователей. Она прошла достаточно долгий путь развития со времени первого появления в 1981 году, была усовершенствована для разработки ПО на языке Ada, последняя версия модели опубликована в 1995 году [44]. Она прошла достаточно долгий путь развития со времени первого появления в 1981 году, была усовершенствована для разработки ПО на языке Ada, последняя версия модели опубликована в 1995 году [44].

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

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

Стоимость программного продукта (SC) вычисляется следующим образом: SC = оценка затрат х RELY x TIME x STOR х TOOL х ЕХР х $ Алгоритмические модели стоимости в планировании проекта

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

Вопросы 1. Какое место занимает оценка стоимости ПО в жизненном цикле и какого её значение в нём? К каким последствиям могут привести ошибки на этапе оценки стоимости ПО? 2. Какой фактор, по Вашему мнению, наиболее НЕпредсказуем при оценке стоимости ПО? 3. Как Вы думаете, какие ещё действия может предпринять менеджер при превышении планируемых затрат на ПО? 4. Какие способы оценки производительности труда программиста Вы считаете наиболее адекватными? 5. Какие плюсы и минусы у метода оценки стоимости ПО - «выиграть контракт»? 6. Какие последствия возможны при сжатии графика работ до минимума? Как их избежать?