ТЕМА 5. Стадии проектирования и реализации ИС Лекция 24. Оценка трудоемкости разработки ИС. Основные причины неудач проектов разработки ИС Плохое управление проектом «Плывущие» требования Неправильная оценка проекта, связанная с отсутствием опыта или методики оценки проекта; непредвиденными проблемами в используемых средствах и компонентах; непониманием ключевых технических проблем проекта. 2 Единица измерения проекта Наиболее популярные единицы измерения – время и функции системы. зависит от сложности проекта и позволяет изменять оценку размера проекта с изменением требований; применима на всех стадиях жизненного цикла системы, причем на различных этапах жизненного цикла проекта его эффективность определяется заново, с различной глубиной проработки; дает независимые оценки времени выполнения проекта и его трудоемкости; позволяет распределить риски между всеми участниками проекта. 3 Методы оценки трудоемкости разработки ПО ИС 1. Алгоритмическое моделирование Основан на анализе статистических данных о ранее выполненных проектах, затраты прогнозируются в зависимости от количественного показателя 2. Экспертные оценки Основан на опросе экспертов по технологии разработки ПО в заданной предметной области 3. Оценка по аналогии Основан на сравнении проекта с предыдущими, имеющими подобные характеристики 4 Факторы оценки трудоемкости Размер конечного продукта (количество строк кода или количество функциональных точек); Особенности технологии разработки ПО; Квалификация персонала; Особенности среды разработки (инструментальных средств); Требуемое качество продукта (функциональные возможности, производительность, надежность). 5 Недостатки метода определения размера продукта через количество строк кода 1. Не применяется на ранних стадиях разработки. 2. Строки исходного кода зависят от типа языков программирования, методов проектирования, стиля и квалификации программиста. 3. Разработка ПО связана с большими затратами, напрямую не зависящими от размера программного кода. 4. Генераторы кода продуцируют чрезмерный объем кода, в результате чего искажаются показатели трудоемкости. 6 Показатель (по стадиям ЖЦ) Команда №1 Команда №2 (низкоуровневый ЯП) (высокоуровневый ЯП) Изучение требований к ПО 1 мес. 1 мес. Внешнее и концептуальное проектирование 2 мес. 2 мес. Кодирование 9 мес. 2 мес. Тестирование 4 мес. 2 мес. Подготовка комплекта документации 3 мес. 2 мес. ИТОГО по времени 19 мес. 9 мес. Число строк кода 30000 5000 Затраты 150000 у.е. 90000 у.е. Цена строки кода 5 у.е. 18 у.е. Производительность труда 1500 строк/мес. 500 строк/мес. 7 Методы определения размера продукта 1. Количество строк кода - точка зрения разработчика. 2. Количество функциональных точек – точка зрения пользователей. Разработчик метода Алан Альбрехт (IBM),1979 Основная идея метода - максимальный отказ от деталей реализации ПО и перенос оценки в область функциональности, наблюдаемой пользователем. 1986 г. – сформирована Международная Ассоциация Пользователей Функциональных Точек (International Function Point User Group — IFPUG) 8 Алгоритм метода функциональных точек 9 Алгоритм метода функциональных точек 1. 2. 3. 4. 5. 6. 7. Определение типа оценки. Определение области оценки и границ продукта. Подсчет функциональных точек, связанных с данными. Подсчет функциональных точек, связанных с транзакциями. Определение суммарного количества не выровненных функциональных точек (UFP). Определение значения фактора выравнивания (FAV). Расчет количества выровненных функциональных точек (AFP). Тип оценки Проект разработки Область оценки Оценивается количество Все разрабатываемые функциональности, функции поставляемой пользователям в первом релизе продукта. Оценивается проект Проект доработки: добавление, развития (поддержки) изменение и удаление Все добавляемые, изменяемые и удаляемые функции функционала. Готовый продукт Оценивается объем уже существующего и установленного продукта. Только функции, реально используемые 11 Границы продукта Что является «внешним» по отношению к продукту. Где располагается «граница системы», через которую проходят транзакции, передаваемые или принимаемые приложением, с точки зрения пользователя. Какие данные поддерживаются приложением, а какие — внешние. 12 Функциональные точки, связанные с данными DET (data element type) — неповторяемое уникальное поле данных, например, Имя Клиента — 1 DET; Адрес Клиента (индекс, страна, область, район, город, улица, дом, корпус, квартира) — 9 DET's RET (record element type) — логическая группа данных, например, адрес, паспорт, ФИО. Объект данных «Клиент» 13 Матрица сложности данных 1-19 DET 1 RET Низкая 2-5 RET Низкая 6+ RET Средняя 20-50 DET Низкая Средняя Высокая 50+ DET Средняя Высокая Высокая Оценка в функциональных точках объекта данных «Клиент» 14 FP, связанные с транзакциями Виды FP Назначение Пример EI (external inputs) внешние входные транзакции, элементарная операция по обработке данных или управляющей информации, поступающих в систему из вне. Поле ввода, кнопка EO (external outputs) внешние выходные транзакции, элементарная операция по генерации данных или управляющей информации, которые выходят за пределы системы. Предполагает определенную логику обработки или вычислений информации из одного или более ILF. Поле данных отчета, сообщение об ошибке EQ (external inquiries) внешние запросы, элементарная операция, которая в ответ на внешний запрос извлекает данные или управляющую информацию из ILF или EIF. Поле ввода для поиска, поле вывода результата поиска 15 Оценка сложности транзакций Матрица сложности внешних входных транзакций (EI) 1-4 DET 5-15 DET 16+ DET 0-1 FTR Низкая Низкая Средняя 2 FTR Низкая Средняя 3+ FTR Средняя Высокая Матрица сложности внешних выходных транзакций и внешних запросов (EO & EQ) 1-5 DET 6-19 DET 20+ DET 0-1 FTR Низкая Низкая Средняя Высокая 2-3 FTR Низкая Средняя Высокая Высокая 4+ FTR Средняя Высокая Высокая FTR (file type referenced) — позволяет подсчитать количество различных файлов типа ILF и/или EIF, модифицируемых или считываемых в транзакции. Оценка в функциональных точках сложности транзакций Сложность Количество FP (EI) Количество FP (EO) Количество FP (EQ) Низкая 3 4 3 Средняя 4 5 4 Высокая 6 7 6 16 1 DET 1 DET 1 DET Пример оценки сложности транзакции 17 DET, 1 FTR Средняя сложность 1 FTR 4 UFP 17 Определение суммарного количества не выровненных функциональных точек Общий объем продукта в не выровненных функциональных точках (UFP) определяется путем суммирования по всем информационным объектам (ILF, EIF) и элементарным операциям (транзакциям EI, EO, EQ). 18 Расчет количества выровненных функциональных точек Учет общесистемных требований осуществляется путем применения фактора выравнивания (VAF – Value Adjustment Factor) . Значение фактора выравнивания зависит от 14 параметров (DI - degree of influence), каждый из которых оценивается по 5-балльной шкале. TDI = ∑ DI – суммарный эффект параметров VAF = (TDI *0.01) + 0.65 AFP = UFP * VAF Общесистемные параметры Обмен данными 1. 0 — продукт представляет собой автономное приложение; 5 — продукт обменивается данными по более, чем одному телекоммуникационному протоколу. Распределенная обработка данных. 2. 0 — продукт не перемещает данные; 5 — распределенная обработка данных выполняется несколькими компонентами системы. Производительность. 3. 0 — пользовательские требования по производительности не установлены; 5 — время отклика критично для всех бизнес-операций, для удовлетворения требованиям необходимы специальные проектные решения и инструменты анализа. Ограничения по аппаратным ресурсам 4. 0 — нет ограничений; 5 — продукт целиком должен функционировать на определенном процессоре и не может быть распределен. Транзакционная нагрузка. 5. 0 — транзакций не много, без пиков; 5 — число транзакций велико и неравномерно, требуются специальные решения и инструменты. Общесистемные параметры Интенсивность взаимодействия с пользователем. 6. 0 — все транзакции обрабатываются в пакетном режиме; 5 — более 30% транзакций - интерактивные. Эргономика 7. 0 — нет специальных требований; 5 — требования по эффективности очень жесткие. Интенсивность изменения данных пользователями. 8. 0 — не требуются; 5 — изменения интенсивные, жесткие требования по восстановлению Сложность обработки 9. 0 — обработка минимальна; 5 — требования безопасности, логическая и математическая сложность Повторное использование 10. 0 — не требуется; 5 — продукт разрабатывается как стандартный многоразовый компонент Общесистемные параметры Удобство инсталляции. 11. 0 — нет требований; 5 — установка и обновление ПО производится автоматически Удобство администрирования 12. 0 — не требуется; 5 — система автоматически самовосстанавливается Портируемость 13. 0 — продукт имеет только 1 инсталляцию на единственном процессоре; 5 — система является распределенной и предполагает установку на различные ТО и ОС Гибкость 14. 0 — не требуется; 5 — гибкая система запросов и построение произвольных отчетов, модель данных изменяется пользователем в интерактивном режиме Размер ПО в функциональных точках Текстовые процессоры – 3500 Клиент-серверные приложения – 7500 ПО баз данных – 7500 Бизнес-приложения – 10000 Корпоративные приложения – 25000 Приложения в госучреждениях – 50000 Операционные системы – 75000 Системы масштаба предприятия – 150000 Крупные оборонные системы – 250000 23 Количество строк кода на одну функциональную точку Язык (средство) программирования Оценка количества строк кода на 1 FP Наиболее Оптимис- Пессимисвероятная тическая тическая Assembler JavaScript C++ Visual Basic 172 56 60 50 86 44 29 14 320 65 178 276 24 Число FP Длительность Количество Пример разработчиков приложений 1 1 день 10 До 1 месяца 1 Дополнения к готовой системе 100 До 6 месяцев (85%) До 1 года 1 Небольшое приложение 10 Клиент-серверные приложения 100 Крупные приложения До 1000 Операционные системы 1000 От 1,5 до 5 лет 100000 От 3 до 8 лет 10000 1 Утилиты 25 Статистическая модель оценки трудоемкости Модель COCOMO (COnstructive COst MOdel) – конструктивная модель стоимости (1985, Барри Боэм, данные о 63 проектах). Модель COCOMO II (1997, Центр по разработке ПО Южно-Калифорнийского университета, данные о 161 проекте). В модели используется формула регрессии с параметрами, определяемыми на основе отраслевых данных и характеристик конкретного проекта. Допущения модели COCOMO Исходный код конечного продукта включает в себя все строки кода, кроме комментариев. Начало цикла разработки совпадает с началом стадии реализации продукта. Окончание цикла разработки совпадает с окончанием приемочного тестирования. Виды деятельности включают в себя только работы, непосредственно направленные на выполнение проекта. Человеко-месяц состоит из 152 часов. Проект управляется надлежащим образом. Требования стабильны. 27 Оценка трудоемкости проекта PM – трудоемкость в чел./мес. SIZE — размер продукта в тыс. строк исходного кода EMi — множители трудоемкости SFj — факторы масштаба n=7 — для предварительной оценки n=17 — для детальной оценки Оценка длительности проекта С = 3,67; D = 0,28; TDEV – продолжительность проекта PMNS — трудоемкость проекта без учета множителя SCED, определяющего сжатие расписания. Факторы масштаба в COCOMO Фактор Низкий уровень Балл Высокий уровень Балл Прецедентност ь опыт в продукте и платформе отсутствует 6,2 продукт и платформа полностью знакомы 0 Гибкость процесса разработки процесс строго детерминирован 5,07 определены только общие цели 0 Архитектура и разрешение рисков риски неизвестны/не 7,07 проанализированы риски определены на 100% 0 Сработанность команды формальные взаимодействия 5,48 полное доверие, 0 взаимозаменяемость и взаимопомощь Зрелость процессов CMM Уровень 1 7,8 CMM Уровень 5 0 Множители трудоемкости Множители EMi отражают совместное влияние многих параметров. Позволяют характеризовать и нормировать среду разработки по параметрам, содержащимся в БД проектов модели COCOMO II. Для конкретного проекта каждый множитель оценивается с помощью лингвистической переменной – очень низкий, низкий, номинальный, высокий, очень высокий. Множители трудоемкости для предварительной оценки Квалификация персонала (PERS) 1. Low — аналитики и программисты имеют низшую квалификацию, текучесть больше 45%; High — аналитики и программисты имеют высшую квалификацию, текучесть меньше 4% Сложность и надежность продукта (RCPX) 2. Low — продукт простой, специальных требований по надежности нет, БД маленькая, документация не требуется; High — продукт очень сложный, требования по надежности жесткие, БД сверхбольшая, документация требуется в полном объеме Сложность платформы разработки (PDIF) 3. Low — специальные ограничения по памяти и быстродействию отсутствуют, платформа стабильна; High — жесткие ограничения по памяти и быстродействию, платформа нестабильна Множители трудоемкости для предварительной оценки Опыт персонала (PREX) 4. Low — новое приложение, инструменты и платформа; High — приложение, инструменты и платформа хорошо известны Оборудование (FCIL) 5. Low — инструменты простейшие, коммуникации затруднены; High — интегрированные средства поддержки жизненного цикла, интерактивные мультимедиа коммуникации Сжатие расписания (SCED) 6. Low — 75% от номинальной длительности; High — 160% от номинальной длительности Разработка для повторного использования (RUSE) 7. Low — не требуется; High — требуется многократное использование в других продуктах Множители трудоемкости Идент. Описание множителя Диапазон RELY Требуемая надежность 0,82 – 1,26 DATA Размер базы данных 0,9 – 1,28 CLPX Сложность продукта 0,73 – 1,74 RUSE Требуемый уровень повторного использования 0,95 – 1,24 DOCU Соответствие документации требованиям ЖЦ 0,81 – 1,23 TIME Ограничение времени выполнения 1,0 – 1,63 STOR Ограничение по объему основной памяти 1,0 – 1,46 PVOL Изменчивость платформы 0,87 – 1,30 Множители трудоемкости Идент. Описание множителя Диапазон ACAP Способность аналитика 1,42 – 0,71 PCAP Способность программиста APEX Знание приложений 1,34 – 0,76 1,22 – 0,81 Знание платформы 1,19 – 0,85 PCON Преемственность персонала 1,29 – 0,81 PLEX LTEX Знание языка/инструментальных средств TOOL Использование инструментальных средств 1,20 – 0,84 1,17 – 0,78 SCED Требуемые сроки разработки 1,43 – 1,0 SITE Распределенность команды разработчиков 1,22 – 0,8 Пример определения TOOL Элементы множителя Уровни рейтинга Значение Редакторы кода, отладчики Очень низкий 1,17 Простые CASE-средства с минимальной интеграцией Низкий Средства поддержки основных процессов ЖЦ, средняя степень интеграции Номинальный 1,0 Развитые средства поддержки ЖЦ, средняя степень интеграции Высокий 0,9 Мощные средства поддержки ЖЦ, хорошо интегрированные Очень высокий 0,78 1,09 Методы оценки трудоемкости разработки ТД ГОСТ Р ИСО/МЭК 15910-2002 «Информационная технология. Процесс создания документации пользователя программного средства» Метод нисходящего проектирования Поминутно-почасовой метод Справочник базовых цен на разработку технической документации на автоматизированные системы управления технологическими процессами (АСУТП) 37 Метод нисходящего проектирования Число страниц оценивается: автор может за месяц подготовить 22 страницы нового текста; автор может за месяц подготовить 44 страницы текста с изменениями. 15 % - планирование; 50 % - написание первой редакции; 25 % - написание второй редакции; 10 % - подготовка фотошаблонов (скриншотов). 38 Поминутно-почасовой метод Определение номенклатуры поставки Исследование содержания документации Написание плана документирования Проектирование структуры документа и правил оформления его страниц 5) Написание первой редакции (документации) 6) Разработка графических материалов 7) Объединение текстовых и графических материалов 8) Проверка первой редакции (эксперт) 9) Корректировка первой редакции и графики 10) Внесение замечаний пользователя 11) Грамматическое редактирование 12) Подготовка второй редакции (документации) 13) Проверка второй редакции (эксперт) 14) Окончательная корректировка документации 15) Нормоконтроль документации 16) Изготовление фотошаблонов 17) Печать и переплетение оригиналов 18) Печать и брошюровка копий 19) Рассылка 1) 2) 3) 4) 16 ч на проект 24 ч на проект 48 ч на проект 8 ч на том 1 ч на страницу 5 ч на материал 30 мин на страницу 30 мин на страницу 30 мин на страницу 30 мин на страницу 15 мин на страницу 15 мин на страницу 15 мин на страницу 10 мин на страницу 15 мин на страницу 3 сут. 5 сут. 10 сут. 1 сут. 39 40 Метрики документирования Метрики проекта Метрики пользовательской перспективы Метрики данных Метрики интерфейса пользователя Объем Количество Количество Количество доступной документации; Количество экспертов Количество рецензентов функциональных ролей; Количество пользовательских задач; Количество функций программы; Количество реакций пользователя на сообщения программы сущностей; Количество атрибутов объектов; Количество поддерживаемых форматов данных главных окон и рабочих областей; Количество крупных экранных форм; Количество команд главного меню; Количество сообщений об ошибках 41 Последовательность разработки эксплуатационной документации Изучение продукта •Чтение документации; •Интервью; •Работа на стенде Составление плана документирования •Анализ требований к документу; •Составление структуры документа; •Составление и согласование плана документирования Написание текста Согласование текста Оформление текста •Изложение структурной информации; •Изложение процедурной информации; •Изложение справочной информации; •Подготовка рисунков •Обсуждение замечаний; •Внесение исправлений •Авторская разметка; •Расстановка перекрестных ссылок; •Разметка указателя 42 Для решаемой задачи измеряются значения каждого показателя из списка метрик. Для каждого вида работ рассчитывается трудоемкость по формуле: Трудоемкостьi = Метрика1*Ti1 + Метрика2*Ti2 +…+ МетрикаN*TiN. 43 Расчет стоимости работ по созданию ТД Базовая цена разработки ТД определяется в зависимости от количества баллов, подсчитанных по основным факторам трудоемкости, соответствующего ценностного множителя и общего поправочного коэффициента: Цбаз = S x Б x К Цены установлены отдельно на разработку каждой из следующих частей проектной документации на АСУТП: общесистемные решения (ОР); организационное обеспечение (ОО); информационное обеспечение (ИО); техническое обеспечение (ТО). математическое обеспечение (МО). программное обеспечение (ПО). 44 Факторы трудоемкости разработки проектной документации на АСУТП 1. Характер протекания управляемого технологического процесса во времени (непрерывный, циклический, дискретный) 2. Количество технологических операций, контролируемых или управляемых АСУТП 3. Степень развитости информационных функций АСУТП (I-IV) 4. Степень развитости управляющих функций АСУТП (I-VII) 5. Режим выполнения управляющих функции АСУТП (автоматизированный/автоматический, всего 5 режимов) 6. Количество переменных, измеряемых, контролируемых и регистрируемых АСУТП 7. Количество управляющих воздействий, вырабатываемых АСУТП 45 Ориентировочное распределение базовой цены двухстадийной разработки ТД Части ТД ТП РД Общесистемные решения 70-80% 20-30% Организационное обеспечение 30-40% 60-70% Информационное обеспечение 40-50% 50-60% Техническое обеспечение 40-50% 50-60% Математическое обеспечение 80-90% 10-20% Программное обеспечение 10-20% 80-90% 46 Пример определения цены разработки проектной документации на АСУТП Исходные данные по факторам трудоемкости: 1. 2. 3. 4. 5. 6. 7. Характер протекания управляемого технологического процесса во времени – полунепрерывный технологический процесс; Количество технологических операций, контролируемых или управляемых АСУТП – 36; Степень развитости информационных функций АСУТП - III степень (косвенное измерение (вычисление) отдельных комплексных показателей функционирования ТОУ); Степень развитости управляющих функций АСУТП - IV степень (оптимальное управление установившимися режимами (в статике)); Режим выполнения управляющих функции АСУТП – автоматизированный режим "советчика"; Количество переменных, измеряемых, контролируемых и регистрируемых АСУТП – 365; Количество управляющих воздействий, вырабатываемых АСУТП – 130 47 Пример определения цены разработки проектной документации на АСУТП Исходные данные для поправочных коэффициентов: создаваемая АСУТП является впервые разрабатываемой и подлежит эксплуатации в России; АСУТП создается с использованием зарубежных технических средств (К6); АСУТП подлежит эксплуатации в условиях взрывоопасного производства (К10.1); АСУТП создается на вновь проектируемом технологическом объекте управления; разработка документации выполняется в две стадии. 48 Определение базовой цены Сумма баллов для каждого вида документации для ОР для ОО для ИО для ТО для МО для ПО 2+5+6+6+1+4+5= 29 1+3+2+3+1+4+4= 18 2+5+6+7+2+7+8= 37 1+3+5+7+1+7+8= 32 2+5+6+7+2+7+8= 37 2+5+6+7+2+7+8= 37 Повышающий коэффициент К6 = 1,1; К10.1 = 1,3. 49 Определение баллов для факторов трудоемкости Пример для фактора 7 (количество управляющих воздействий, вырабатываемых АСУТП = 130) Части ТД ОР ОО ИО ТО МО ПО 5 4 8 8 8 8 Значение фактора 120-160 50 Базовая цена двухстадийной разработки проектной документации на АСУТП Части документации Ценностный множитель ОР 2,04 ОО 1,24 ИО 1,83 ТО 4,38 МО 4,92 ПО 6,00 51 Экспертиза технической документации Экспертиза документации определяет согласованность документов, разработанных на разных стадиях создания ИС. Согласованность – главное требование к технической документации, выражающееся в непротиворечивости сведений, излагаемых в отдельных документах, входящих в состав комплекта технической документации. 52 Цели и задачи экспертизы ТД ЦЕЛИ: снижение финансовых рисков заказчика и исполнителя при создании ИС; сокращение сроков ввода ИС в действие. ЗАДАЧИ: проверка технической документации на комплектность; проверка структуры разделов технической документации на соответствие требованиям стандартов, нормативных документов и актов; проверка соответствия содержательной части технической документации требованиям НТД и техническим требованиям организации-эксперта. 53 Техническая документация, подлежащая экспертизе Техническое задание на создание автоматизированной системы; Технический или технорабочий проект; Документы, разрабатываемые на стадии «Рабочая документация»; Эксплуатационная документация; Программа и методики испытаний. 54 Взаимосвязь технической документации Требования Стадия Техническое анализа задание предметной области Проектная стадия Стадия реализации (разработки) Решения Пояснительная записка к техническому проекту Сведения о системе Общее описание системы (рабочий проект) 55 Техническое задание Пояснительная записка к ТП Общее описание системы перечень подсистем, их назначение и основные характеристики... требования к характеристикам взаимосвязей системы со смежными системами, требования к ее совместимости описание взаимосвязей АС с другими системами решения по сведения об АС в структуре системы, целом и ее частях... подсистем… решения по взаимосвязям АС со смежными системами, обеспечению ее совместимости требования к режимам решения по описание функционирования режимам функционирования системы функционирования системы 56 57