ТЕМА 4. Технологии внедрения информационных систем Лекция 17. Стадия реализации ИС. Оценка трудоемкости разработки ИС. Рабочее проектирование Рабочее проектирование – детальное проектирование, включающее: разработку программ ИС, выбор и адаптацию приобретаемых программных средств, разработку спецификаций каждого компонента, разработку интерфейсов между компонентами, разработку требований к тестам, разработку плана интеграции компонентов. 2 Связь между этапами проектирования Эскизное проектирование Информационная модель Бизнесаналитики, системные аналитики Функциональная модель Техническое проектирование Модель данных Схема БД Системные аналитики, проектировщики Функциональные спецификации Технические спецификации Рабочее проектирование База данных Проектировщики, программисты, тестировщики Программный код 3 Документация этапа рабочего проектирования Рабочий проект – комплекс документации, содержащий все необходимые и достаточные сведения для обеспечения выполнения работ по вводу ИС в действие и её эксплуатации, а также для поддержания уровня эксплуатационных характеристик (качества) системы в соответствии с принятыми проектными решениями. Источником разработки рабочего проекта служит технический проект. Рабочий проект оформляется в соответствии с ГОСТ 34.20190 «Виды, комплектность и обозначение документов при создании автоматизированных систем». В комплекс рабочего проекта входит также программная документация в соответствии с ГОСТ 19.701-90. 4 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Каталог базы данных Состав выходных данных (сообщений) Инструкция по формированию и ведению базы данных Чертеж формы документа (видеокадра) Ведомость машинных носителей информации Массив входных данных Методика (технология) автоматизированного проектирования Технологическая инструкция Руководство пользователя Описание технологического процесса обработки данных Инструкция по эксплуатации КТС Схема соединений внешних проводок Схема подключения внешних проводок Таблица соединений и подключений 15. Схема деления системы (структурная) 16. Чертеж общего вида 17. Чертеж установки технических средств 18. Схема принципиальная 19. Схема структурная комплекса технических средств 20. План расположения оборудования и проводок 21. Спецификация оборудования 22. Ведомость потребности в материалах 23. Локальная смета 24. Общее описание системы 25. Программа и методика испытаний (компонентов, комплексов средств автоматизации, подсистемы, систем) 26. Проектная оценка надежности системы 27. Ведомость держателей подлинников 28. Ведомость эксплуатационных 5 документов Разработка спецификаций модулей ИС разработка спецификаций, которые выражают функциональные возможности каждого модуля в физических категориях; определение средств разработки для каждого модуля (или выделенных групп модулей), если используются несколько средств разработки в одном проекте; определение последовательности реализации модулей и зависимостей модулей. 6 Предназначение спецификаций Спецификации Функциональная Разрабатывается для заказчика с целью получения санкции на завершение проектирования и начало реализации. Техническая Создается для разработчиков модулей и групп тестирования, содержит описание деталей проекта, а также ряд отчетов из репозитария CASEсредств. Основанием для разработки служит постановка задачи. 7 Содержание технической спецификации описание назначения формы или функции модуля; данные навигации; формат вызова формы (модуля); список входных параметров и параметров по умолчанию; список выходных параметров и правила их обработки; описание обработки (события внутри модуля и их обработка); список ошибок, которые генерируются в процессе обработки и реакция на них; ограничения доступа к форме (модулю); вероятные блокировки (потенциальные конфликты и обработка ожидания); ожидаемое состояние базы данных после выполнения модуля; способ проверки целостности данных. 8 Отсутствие спецификаций Ошибки Последствия Неконтролируемый рост объемов данных Резкое снижение производительности системы Возникновение потоков запросов с изначально высокой вероятностью конфликта Смешивание системных и интерфейсных модулей, ошибки в размещении бизнеслогики Дублирование модулей Зацикливание Отсутствие или неполная реализация требуемых заказчиком функций системы Увеличение сроков разработки и конфликты с заказчиком Создание «монолитной», тяжело сопровождаемой системы Неоправданный рост затрат 9 Разработка метрик генерации кода Метрика генерации кода – это таблица плановой трудоемкости по кодированию и отладке ПО. Оценку времени разработки производят: на основе аналитической документации (на этапе эскизного проектирования или при разработке ТЗ); после выполнения большей части проектирования схемы данных и модулей (на этапе технического проектирования). В метрике учитываются: трудоемкость проектирования модуля, трудоемкость генерации кода модуля, трудоемкость тестирования модуля. 10 Тестирование Объект Наименование тестирования теста Цель проведения теста Отдельный модуль Автономный тест 1) обнаружение отказов модуля; 2) соответствие модуля спецификации. Группа модулей Тесты связей Определение взаимного влияния модулей Тесты имитации Определение степени восстановления отказов системы системы после сбоев Подсистема (система) Тесты наработки на отказ Определение степени устойчивости системы в условиях штатной работы, оценка времени безотказной работы Тесты пиковой нагрузки Определение степени устойчивости системы в условиях перегрузки. Системный тест Внутренняя приемка продукта, показывающая уровень его качества 11 Основные причины неудач проектов разработки ИС Плохое управление проектом «Плывущие» требования Неправильная оценка проекта, связанная с отсутствием опыта или методики оценки проекта; непредвиденными проблемами в используемых средствах и компонентах; непониманием ключевых технических проблем проекта. 12 Единица измерения проекта Наиболее популярные единицы измерения – время и функции системы. зависит от сложности проекта и позволяет изменять оценку размера проекта с изменением требований; применима на всех стадиях жизненного цикла системы, причем на различных этапах жизненного цикла проекта его эффективность определяется заново, с различной глубиной проработки; дает независимые оценки времени выполнения проекта и его трудоемкости; позволяет распределить риски между всеми участниками проекта. 13 Методы оценки трудоемкости разработки ПО ИС 1. Алгоритмическое моделирование Основан на анализе статистических данных о ранее выполненных проектах, затраты прогнозируются в зависимости от количественного показателя 2. Экспертные оценки Основан на опросе экспертов по технологии разработки ПО в заданной предметной области 3. Оценка по аналогии Основан на сравнении проекта с предыдущими, имеющими подобные характеристики 14 Хорошая оценка трудоемкости создается и поддерживается коллективом разработчиков; основывается на подробно описанной и обоснованной модели оценки; основывается на данных по аналогичным проектам; учитывает все области риска. 15 Факторы оценки трудоемкости Размер конечного продукта (количество строк кода или количество функциональных точек); Особенности технологии разработки ПО; Квалификация персонала; Особенности среды разработки (инструментальных средств); Требуемое качество продукта (функциональные возможности, производительность, надежность). 16 Недостатки метода определения размера продукта через количество строк кода 1. Не применяется на ранних стадиях разработки. 2. Строки исходного кода зависят от типа языков программирования, методов проектирования, стиля и квалификации программиста. 3. Разработка ПО связана с большими затратами, напрямую не зависящими от размера программного кода. 4. Генераторы кода продуцируют чрезмерный объем кода, в результате чего искажаются показатели трудоемкости. 17 Показатель (по стадиям ЖЦ) Команда №1 Команда №2 (низкоуровневый ЯП) (высокоуровневый ЯП) Изучение требований к ПО 1 мес. 1 мес. Внешнее и концептуальное проектирование 2 мес. 2 мес. Кодирование 9 мес. 2 мес. Тестирование 4 мес. 2 мес. Подготовка комплекта документации 3 мес. 2 мес. ИТОГО по времени 19 мес. 9 мес. Число строк кода 30000 5000 Затраты 150000 у.е. 90000 у.е. Цена строки кода 5 у.е. 18 у.е. Производительность труда 1500 строк/мес. 500 строк/мес. 18 Методы определения размера продукта 1. Количество строк кода - точка зрения разработчика. 2. Количество функциональных точек – точка зрения пользователей. Разработчик метода Алан Альбрехт (IBM),1979 Основная идея метода - максимальный отказ от деталей реализации ПО и перенос оценки в область функциональности, наблюдаемой пользователем. 1986 г. – сформирована Международная Ассоциация Пользователей Функциональных Точек (International Function Point User Group — IFPUG) 19 Алгоритм метода функциональных точек 20 Алгоритм метода функциональных точек 1. 2. 3. 4. 5. 6. 7. Определение типа оценки. Определение области оценки и границ продукта. Подсчет функциональных точек, связанных с данными. Подсчет функциональных точек, связанных с транзакциями. Определение суммарного количества не выровненных функциональных точек (UFP). Определение значения фактора выравнивания (FAV). Расчет количества выровненных функциональных точек (AFP). Тип оценки Проект разработки Область оценки Оценивается количество Все разрабатываемые функциональности, функции поставляемой пользователям в первом релизе продукта. Оценивается проект Проект доработки: добавление, развития (поддержки) изменение и удаление Все добавляемые, изменяемые и удаляемые функции функционала. Готовый продукт Оценивается объем уже существующего и установленного продукта. Только функции, реально используемые 22 Границы продукта Что является «внешним» по отношению к продукту. Где располагается «граница системы», через которую проходят транзакции, передаваемые или принимаемые приложением, с точки зрения пользователя. Какие данные поддерживаются приложением, а какие — внешние. 23 Внутренние логические файлы (ILFs) — выделяемые пользователем логически связанные группы данных или блоки управляющей информации, которые поддерживаются внутри продукта. Внешние интерфейсные файлы (EIFs) — выделяемые пользователем логически связанные группы данных или блоки управляющей информации, на которые ссылается продукт, но которые поддерживаются вне продукта. 24 Функциональные точки, связанные с данными DET (data element type) — неповторяемое уникальное поле данных, например, Имя Клиента — 1 DET; Адрес Клиента (индекс, страна, область, район, город, улица, дом, корпус, квартира) — 9 DET's RET (record element type) — логическая группа данных, например, адрес, паспорт, ФИО. Объект данных «Клиент» 25 Матрица сложности данных 1-19 DET 1 RET Низкая 2-5 RET Низкая 6+ RET Средняя 20-50 DET Низкая Средняя Высокая 50+ DET Средняя Высокая Высокая Оценка в функциональных точках объекта данных «Клиент» 26 FP, связанные с транзакциями Виды FP Назначение EI (external inputs) внешние входные транзакции, элементарная операция по обработке данных или управляющей информации, поступающих в систему из вне. EO (external outputs) внешние выходные транзакции, элементарная операция по генерации данных или управляющей информации, которые выходят за пределы системы. Предполагает определенную логику обработки или вычислений информации из одного или более ILF. EQ (external inquiries) внешние запросы, элементарная операция, которая в ответ на внешний запрос извлекает данные или управляющую информацию из внутренних логических файлов (ILF) или внешних интерфейсных файлов (EIF). 27 Основные отличия между типами транзакций Функция EI EO Изменяет поведение системы Поддержка ILF Основная Дополнительная Не применяется Основная Дополнительная Не применяется Представление информации пользователю Дополнительная Основная EQ Основная 28 Характеристики транзакций FTR (file type referenced) — позволяет подсчитать количество различных файлов типа ILF и/или EIF, модифицируемых или считываемых в транзакции. DET (data element type) – неповторяемое уникальное поле данных: EI – поле ввода, кнопка; EO – поле данных отчета, сообщение об ошибке; EQ – поле ввода для поиска, поле вывода результатов поиска. 29 Оценка сложности транзакций Матрица сложности внешних входных транзакций (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 Средняя Высокая Высокая Оценка в функциональных точках сложности транзакций Сложность транзакции Количество UFP (EI) Количество UFP (EO) Количество UFP (EQ) Низкая 3 4 3 Средняя 4 5 4 Высокая 6 7 6 30 1 DET 1 DET 1 DET Пример оценки сложности управляющей транзакции (EI) 17 DET, 1 FTR Средняя сложность 1 FTR 4 UFP 31 Определение суммарного количества не выровненных функциональных точек Общий объем продукта в не выровненных функциональных точках (UFP) определяется путем суммирования по всем информационным объектам (ILF, EIF) и элементарным операциям (транзакциям EI, EO, EQ). 32 Расчет количества выровненных функциональных точек Учет общесистемных требований осуществляется путем применения фактора выравнивания (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 37 Количество строк кода на одну функциональную точку Язык (средство) программирования Оценка количества строк кода на 1 UFP Наиболее Оптимис- Пессимисвероятная тическая тическая Assembler JavaScript C++ Visual Basic SQL 172 56 60 50 46 86 44 29 14 14 320 65 178 276 110 38 Число FP Длительность Количество Пример разработчиков приложений 1 1 день 10 До 1 месяца 1 Дополнения к готовой системе 100 До 6 месяцев (85%) До 1 года 1 Небольшое приложение 10 Клиент-серверные приложения 100 Крупные приложения До 1000 Операционные системы 1000 От 1,5 до 5 лет 100000 От 3 до 8 лет 10000 1 Утилиты 39 Статистическая модель оценки трудоемкости Модель COCOMO (COnstructive COst MOdel) – конструктивная модель стоимости (1985, Барри Боэм, данные о 63 проектах). Модель COCOMO II (1997, Центр по разработке ПО Южно-Калифорнийского университета, данные о 161 проекте). В модели используется формула регрессии с параметрами, определяемыми на основе отраслевых данных и характеристик конкретного проекта. Допущения модели COCOMO Исходный код конечного продукта включает в себя все строки кода, кроме комментариев. Начало цикла разработки совпадает с началом стадии реализации продукта. Окончание цикла разработки совпадает с окончанием приемочного тестирования. Виды деятельности включают в себя только работы, непосредственно направленные на выполнение проекта. Человеко-месяц состоит из 152 часов. Проект управляется надлежащим образом. Требования стабильны. 41 Оценка трудоемкости проекта PM – трудоемкость в чел./мес. SIZE — размер продукта в тыс. строк исходного кода EMi — множители трудоемкости SFj — факторы масштаба n=7 — для предварительной оценки n=17 — для детальной оценки Оценка длительности проекта С = 3,67; D = 0,28; TDEV – продолжительность проекта PMNS — трудоемкость проекта без учета множителя SCED, определяющего сжатие расписания. Факторы масштаба в COCOMO Фактор Очень низкий Балл Сверх высокий уровень уровень Балл Прецедентность (наличие опыта аналогичных разработок) PREC опыт в продукте и 6,2 платформе отсутствует продукт и платформа полностью знакомы 0 5,07 определены только общие цели 0 Архитектура и риски неизвестны 7,07 разрешение рисков или не RESL анализировались риски определены на 100% 0 Сработанность команды TEAM формальные взаимодействия 5,48 полное доверие, 0 взаимозаменяемость и взаимопомощь Зрелость процессов PMAT CMM Уровень 1 7,8 CMM Уровень 5 Гибкость процесса процесс строго разработки FLEX детерминирован 0 Значение фактора масштаба в зависимости от оценки его уровня Фактор PREC Уровень FLEX RESL TEAM PMAT Очень низкий 6,2 5,07 7,07 5,48 7,8 Низкий 4,96 4,05 5,65 4,38 6,24 Номинальный 3,72 3,04 4,24 3,29 4,68 Высокий 2,48 2,03 2,83 2,19 3,12 Очень высокий Сверх высокий 1,24 1,01 1,41 1,10 1,56 0 0 0 0 0 Множители трудоемкости Множители EMi отражают совместное влияние многих параметров. Позволяют характеризовать и нормировать среду разработки по параметрам, содержащимся в БД проектов модели COCOMO II. Для конкретного проекта каждый множитель оценивается с помощью лингвистической переменной – очень низкий, низкий, номинальный, высокий, очень высокий. Множители трудоемкости для предварительной оценки Квалификация персонала (PERS) 1. Low — аналитики и программисты имеют низшую квалификацию, текучесть больше 45%; High — аналитики и программисты имеют высшую квалификацию, текучесть меньше 4% Сложность и надежность продукта (RCPX) 2. Low — продукт простой; High — продукт очень сложный Разработка для повторного использования (RUSE) 3. Low — не требуется; High — требуется многократное использование в других продуктах Множители трудоемкости для предварительной оценки Сложность платформы разработки (PDIF) 4. Low — специальные ограничения по памяти и быстродействию отсутствуют, платформа стабильна; High — жесткие ограничения по памяти и быстродействию, платформа нестабильна Опыт персонала (PREX) 5. Low — новое приложение, инструменты и платформа; High — приложение, инструменты и платформа хорошо известны Оборудование (FCIL) 6. Low — инструменты простейшие, коммуникации затруднены; High — интегрированные средства поддержки жизненного цикла, интерактивные мультимедиа коммуникации Сжатие расписания (SCED) 7. Low — 75% от номинальной длительности; High — 160% от номинальной длительности Значение множителя трудоемкости в зависимости от оценки его уровня Множитель PERS Уровень RCPX RUSE PDIF PREX FCIL SCED Сверх низкий 2,12 0,49 - - 1,59 1,43 - Очень низкий 1,62 0,6 - - 1,33 1,3 1,43 Низкий 1,26 0,83 0,95 0,87 1,22 1,1 1,14 Номинальный 1 1 1 1 1 1 1 Высокий 0,83 1,33 1,07 1,29 0,87 0,87 1 Очень высокий 0,63 1,91 1,15 1,81 0,74 0,73 1 Сверх высокий 0,5 2,72 1,24 2,61 0,62 0,62 - Множители трудоемкости для окончательной оценки Идент. Описание множителя Диапазон 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