- •Оглавление
- •Глава 1. Жизненный цикл программного обеспечения ……………………………………………43
- •Глава 2. Методические аспекты
- •Глава 3. Моделирование бизнес-процессов
- •Глава 4. Анализ и проектирование
- •Глава 5. Технологии создания программного
- •Глава 6. Оценка трудоемкости создания
- •Глава 7. Особенности современных проектов ........527
- •Предисловие
- •Введение
- •Глава 1 жизненный цикл программного обеспечения
- •Нормативно-методическое обеспечение создания по
- •Стандарт жизненного цикла по
- •Основные процессы жц по
- •Вспомогательные процессы жизненного цикла по
- •Организационные процессы жизненного цикла по
- •Взаимосвязь между процессами жц по
- •Модели жизненного цикла по
- •Каскадная модель жц
- •Итерационная модель жизненного цикла
- •Методика spmn
- •Пример процесса «управление требованиями»
- •Пример процесса «управление конфигурацией по»
- •Общие принципы проектирования систем
- •Визуальное моделирование
- •Структурные методы анализа и проектирования по
- •Метод функционального моделирования
- •Описание типов связей
- •Моделирования процессов idef3
- •Типы связей idef3
- •Типы соединений
- •Моделирование потоков данных
- •Количественный анализ диаграмм
- •Сравнительный анализ sadt-моделей и диаграмм потоков данных
- •Моделирование данных
- •Объектно-ориентированные методы анализа и проектирования по
- •Основные принципы построения объектной модели
- •Основные элементы объектной модели
- •Значения мощности
- •Унифицированный язык моделирования uml
- •Диаграммы вариантов использования
- •Диаграммы взаимодействия
- •Диаграммы классов
- •Диаграммы состояний
- •Диаграммы деятельности
- •Диаграммы компонентов
- •Диаграммы размещения
- •Механизмы расширения uml
- •Количественный анализ диаграмм uml
- •Основные элементы языка uml
- •Основные типы связей языка uml
- •Диапазоны оценок для диаграмм uml
- •Образцы
- •Сопоставление и взаимосвязь структурного и объектно-ориентированного подходов
- •Структурный (процессный) подход к моделированию бизнес-процессов
- •Принципы процессного подхода
- •Применение диаграмм потоков данных
- •Система моделирования aris
- •Метод ericsson-penker21
- •Пример использвания процессного подхода
- •История болезни пациента
- •Спецификация структур данных
- •Построение диаграмм потоков данных нулевого и последующих уровней
- •Объектно-ориентированный подход к моделированию бизнес-процессов
- •Методика моделирования
- •Пример использования объектно-ориентированного подхода
- •Пример спецификации требований к программному обеспечению
- •Пример структурного проектирования по
- •Построение диаграмм системных процессов и диаграмм последовательностей экранных форм
- •Объектно-ориентированный анализ
- •Архитектурный анализ
- •Анализ вариантов использования
- •Объектно-ориентированное проектирование
- •Проектирование архитектуры системы
- •Проектирование элементов системы
- •Глава 5 технологии создания программного обеспечения
- •Определение технологии
- •Общие требования, предъявляемые
- •Внедрение тс по в организации
- •Общие сведения
- •Определение потребностей в тс по
- •Оценка и выбор тс по
- •Критерии оценки и выбора тс по
- •Выполнение пилотного проекта
- •Практическое внедрение тс по
- •Примеры тс по
- •Технология rup (rational unified process)
- •Технология oracle
- •Технология borland
- •Технология computer associates
- •Глава 6 оценка трудоемкости создания программного обеспечения
- •Методы оценки и их классификация
- •Методика оценки трудоемкости разработки по на основе функциональных точек
- •Определение функциональных типов
- •Определение количества и сложности функциональных типов по данным
- •Сложность ilf и eif
- •Определение количества и сложности транзакционных функциональных типов
- •Подсчет количества функциональных точек
- •Зависимость количества fp от сложности функционального типа
- •Коммуникации данных
- •Распределенная обработка данных
- •Сложность ei
- •Сложность ео
- •Производительность
- •Эксплуатационные ограничения
- •Частота транзакций
- •Ввод данных в режиме «онлайн»
- •Эффективность работы конечных пользователей1
- •Онлайновое обновление
- •Сложная обработка31
- •Повторное использование
- •Простота установки
- •Простота эксплуатации
- •Количество возможных установок на различных платформах
- •Гибкость32
- •Оценка трудоемкости разработки
- •Размер программного обеспечения в fp и loc
- •Распределение временных затрат по стадиям для маленьких и больших проектов
- •Статистические данные
- •Статистические (регрессионные) модели
- •Группа процессов
- •Определение весовых показателей вариантов использования
- •Определение технической сложности проекта
- •Определение уровня квалификации разработчиков
- •Оценка трудоемкости проекта
- •Методы, основанные на экспертных оценках
- •Метод дельфи
- •Метод декомпозиции работ
- •Средства оценки трудоемкости
- •Планирование итерационного процесса создания по
- •Глава 7 особенности современных проектов
- •Категории «безнадежных» проектов
- •Причины, порождающие «безнадежные» проекты
- •Причины разногласий между участниками проекта
- •Переговоры в «безнадежном» проекте
- •Человеческий фактор в «безнадежных» проектах
- •Процессы в «безнадежных» проектах
- •Динамика процессов
- •Контроль над продвижением проекта
- •Технология и инструментальные средства «безнадежных» проектов
- •Дополнительная литература
- •Краткий словарь терминов
- •Список основных сокращений
Критерии оценки и выбора тс по
Критерии формируют базис для процессов оценки и выбора и могут принимать различные формы:
числовые меры в широком диапазоне значений, например, объем требуемых ресурсов;
числовые меры в ограниченном диапазоне значений, например простота освоения, выраженная в баллах от 1 до 5;
двоичные меры (истина/ложь, да/нет), например способность генерации документации в заданном формате;
меры, которые могут принимать одно значение или более из конечных множеств значений, например платформы, для которых поддерживается ТС ПО.
Типичный процесс оценки и (или) выбора может использовать набор критериев различных типов. Каждый критерий должен быть выбран и адаптирован экспертом с учетом особенностей конкретного процесса. В большинстве случаев только некоторые из множества описанных ниже критериев оказываются приемлемыми для использования, при этом также добавляются дополнительные критерии. Выбор и уточнение набора используемых критериев является критическим шагом в процессе оценки и (или) выбора.
Факторы выбора ТС ПО:
характеристики объекта внедрения, определяющие требования, предъявляемые к ТС ПО;
параметры доступных ТС ПО;
ресурсы проекта (финансовые, кадровые и технические).
Исходные данные для выбора и оценки применимости — набор параметров (технико-экономических характеристик) ТС ПО (рис. 5.4).
1. Функциональные характеристики, ориентированные на процессы жизненного цикла ПО.
1.1. Управление проектом:
управление работами и ресурсами (контроль и управление процессом проектирования ПО в терминах структуры заданий и назначения исполнителей, последовательности их выполнения, завершенности отдельных этапов проекта и проекта в целом; возможность поддержки плановых данных, фактических данных и их анализа. Типичные данные включают графики (с учетом календаря, рабочих часов, выходных и др.), компьютерные ресурсы, распределение персонала, бюджет и др.);
оценка затрат, трудоемкости и времени;
планирование;
мониторинг проекта.
1.2. Разработка ПО
1.2.1. Моделирование:
Рис. 5.4. Совокупность параметров (технико-экономических характеристик) ТС ПО
построение и анализ диаграмм (возможность создания и редактирования диаграмм различных типов, возможность анализа графических объектов, а также хранения и представления проектной информации в графическом виде);
спецификация требований и проектных решений (включая возможность импорта, экспорта и редактирования спецификаций с использованием формального языка);
моделирование данных и процессов;
проектирование архитектуры ПО;
имитационное моделирование (возможность динамического моделирования различных аспектов функционирования системы на основе спецификаций требований и (или) проектных спецификаций, включая внешний интерфейс и производительность, например, время отклика, коэффициент использования ресурсов и пропускную способность);
прототипирование (возможность проектирования и генерации предварительного варианта всей системы или ее отдельных компонентов на основе спецификаций требований и (или) проектных спецификаций);
трассировка (возможность сквозного анализа функционирования системы от спецификации требований до конечных результатов (установления и отслеживания соответствий и связей между функциональными и другими внешними требованиями к ПО и техническими решениями и результатами проектирования); прямая трассировка (проверка учета всех требований) и обратная трассировка (поиск проектных решений, не связанных ни с какими внешними требованиями)).
1.2.2. Программирование:
генерация кода (программного кода, схемы базы данных, запросов, экранов/меню);
синтаксически управляемое редактирование (возможность ввода и редактирования исходных кодов на одном или нескольких языках с одновременным синтаксическим контролем);
компиляция кода;
конвертирование кода;
отладка (трассировка программ, выделение узких мест и наиболее часто используемых фрагментов кода и т.д.).
1.3. Сопровождение:
идентификация и локализация проблем;
реверсный инжиниринг (возможность анализа существующих исходных кодов и формирования на их основе проектных спецификаций);
реструктуризация исходного кода (возможность модификации формата и (или) структуры существующего исходного кода).
1.4. Документирование:
редактирование текстов и графики;
редактирование с помощью форм;
возможности издательских систем;
поддержка функций и форматов гипертекста;
автоматическое извлечение данных из репозитория и генерация документации.
1.5. Управление конфигурацией:
контроль доступа и изменений (возможность контроля доступа на физическом уровне к элементам данных и контроля изменений. Контроль доступа включает возможности определения прав доступа к компонентам, а также извлечения элементов данных для модификации, блокировки доступа к ним на время модификации и помещения обратно в репозиторий);
отслеживание модификаций (фиксация и ведение журнала всех модификаций, внесенных в систему в процессе разработки или сопровождения);
управление версиями (ведение и контроль данных о версиях системы и всех ее коллективно используемых компонентах);
учет состояния объектов управления конфигурацией (возможность получения отчетов о всех последовательных версиях, содержимом и состоянии различных объектов конфигурационного управления);
генерация версий и модификаций (поддержка пользовательского описания последовательности действий, требуемых для формирования версий и модификаций, и автоматическое выполнение этих действий);
архивирование (возможность автоматического архивирования элементов данных для последующего использования).
1.6. Обеспечение качества:
управление данными о качестве;
управление рисками.
1.7. Верификация:
анализ трассировки спецификаций;
анализ спецификаций (синтаксический и семантический контроль проектных спецификаций - контроль синтаксиса диаграмм и типов их элементов, контроль декомпозиции функций, проверка спецификаций на полноту и непротиворечивость);
анализ исходного кода (определение размера кода, вычисление показателей сложности, генерация перекрестных ссылок и проверка на соответствие стандартам).
1.8. Аттестация:
описание тестов (генерация тестовых данных, алгоритмов тестирования, требуемых результатов и т.д.);
фиксация и повторение действий оператора (возможность фиксировать данные, вводимые оператором с помощью клавиатуры, мыши и т.д., редактировать их и воспроизводить в тестовых примерах);
автоматический запуск тестовых примеров;
регрессионное тестирование (возможность повторения и модификации ранее выполненных тестов для определения различий в системе и (или) среде);
статистический анализ результатов тестирования;
анализ тестового покрытия (оснащенность средствами контроля исходного кода и анализ тестового покрытия. Проверяются, в частности, исполняемые и вызываемые (или нет) операторы, процедуры и переменные);
анализ производительности (возможность анализа производительности программ. Анализируемые параметры производительности могут включать степень использования ресурсов центрального процессора и памяти, количество обращений к определенным элементам данных и (или) сегментам кода, временные характеристики и т.д.);
анализ исключительных ситуаций;
динамическое моделирование среды;
интеграционное тестирование.
2. Функциональные характеристики применения (инструментальных средств).
2.1. Среда функционирования:
требуемые технические средства;
требуемое ПО.
2.2. Совместимость:
совместимость с различными средами функционирования;
совместимость с другими средствами по данным, представлению и управлению (способность к взаимодействию с другими средствами, включая непосредственный обмен данными (примерами таких средств являются текстовые процессоры и другие средства документирования, базы данных и другие CASE-средства) и возможность преобразования репозитория или его части в стандартный формат для обработки другими средствами).
2.3. Аспекты применения:
соответствие технологическим стандартам (касающимся языков, баз данных, репозитория, коммуникаций, графического интерфейса пользователя, документации, безопасности, стандартов обмена информацией);
область применения (системы обработки транзакций, системы реального времени, экономические информационные системы и др.);
размер поддерживаемых приложений (определяет ограничения на такие величины, как количество строк кода, уровней вложенности, размер базы данных, количество элементов данных, количество объектов управления конфигурацией);
поддерживаемые методы (набор методов и методик, поддерживаемых CASE-средством. Примерами являются структурный или объектно-ориентированный анализ и проектирование);
поддерживаемые языки (все языки, используемые CASE-средством: языки программирования, языки баз данных, графические языки, языки спецификации проектных требований и интерфейсы операционных систем);
локализация.
3. Характеристики качества.
3.1. Надежность:
контроль и обеспечение целостности проектных данных;
автоматическое резервирование;
безопасность (защита от несанкционированного доступа);
обработка ошибок (обнаружение ошибок в работе системы, извещение пользователя, корректное завершение работы или сохранение состояния к моменту прерывания);
анализ отказов в критических приложениях.
3.2. Удобство использования:
удобство пользовательского интерфейса (удобство расположения и представления часто используемых элементов эк рана, способов ввода данных и др.);
простота освоения (трудовые и временные затраты на освоение средств);
адаптируемость к конкретным требованиям пользователя: различным алфавитам, режимам текстового и графического представления (слева направо, сверху вниз), различным форматам даты, способам ввода-вывода (экранным формам и форматам), изменениям в методологии (изменениям графических нотаций, правил, свойств и состава предопределенных объектов) и др.;
качество документации и учебных материалов (полнота, понятность, удобочитаемость, полезность компьютерных учебных материалов, учебных пособий, курсов);
качество диагностики (понятность и полезность диагностических сообщений для пользователя);
простота установки и обновления версий.
3.3. Эффективность:
требования к оптимальному размеру внешней и оперативной памяти, типу и производительности процессора, обеспечивающим приемлемый уровень производительности;
эффективность рабочей нагрузки: эффективность выполнения CASE-средством своих функций в зависимости от интенсивности работы пользователя (например, количество нажатий клавиш или кнопки мыши, требуемое для выполнения определенных функций);
производительность: время, затрачиваемое CASE-средством для выполнения конкретных задач (например, время ответа на запрос, время анализа 100 000 строк кода).
3.4. Сопровождаемость:
уровень поддержки со стороны поставщика - скорость разрешения проблем, поставки новых версий, обеспечение дополнительных возможностей;
трассируемость обновлений — простота освоения отличий новых версий от существующих;
совместимость обновлений — совместимость новых версий с существующими, включая, например, совместимость по входным или выходным данным;
адаптируемость к изменениям в методах;
сопровождаемость конечного продукта.
3.5. Переносимость:
совместимость с версиями операционной системы;
переносимость данных между различными версиями средств;
соответствие стандартам переносимости, включающим документацию, коммуникации и пользовательский интерфейс, оконный интерфейс, языки программирования, языки запросов и др.
4. Общие характеристики.
4.1. Приобретение:
затраты на технологию, включающие стоимость приобретения, установки, начального сопровождения и обучения. Следует учитывать цену для всех необходимых конфигураций, включая единственную копию, много копий, локальную лицензию, лицензию для предприятия, сетевую лицензию;
лицензионная политика — доступные возможности лицензирования, право копирования (носителей и документации), любые ограничения и (или) штрафные санкции за вторичное использование (подразумевается продажа пользователем ТС ПО продуктов, в состав которых входят некоторые компоненты ТС ПО, использовавшиеся при разработке продуктов);
экспортные ограничения.
4.2. Реализация:
оценочный эффект от внедрения ТС ПО — уровень продуктивности, качества и т.д. Такая оценка может потребовать экономического анализа;
инфраструктура, требуемая для внедрения ТС ПО.
4.3. Поддержка:
профиль поставщика — общие показатели возможностей поставщика. Профиль поставщика может включать масштаб его организации, стаж в бизнесе, финансовое положение, список любых дополнительных продуктов, деловые связи (в частности, с другими поставщиками технологии), планируемую стратегию развития;
профиль продукта — общая информация о продукте, включая срок его существования, количество проданных копий, наличие, размер и уровень деятельности пользовательской группы, систему отчетов о проблемах, программу развития продукта, совокупность применений, наличие ошибок и др.;
доступность и качество обучения (обучение может предоставляться на площади поставщика, пользователя или где-либо в другом месте).
4.4. Сертификация:
сертификация поставщика — сертификаты, полученные от специализированных организаций в области создания ПО (например, SEI и ISO), удостоверяющие, что квалификация поставщика в области создания и сопровождения ПО удовлетворяет некоторым минимально необходимым или вполне определенным требованиям. Сертификация может быть неформальной, например на основе анализа качества работы поставщика;
сертификация продукта;
поддержка поставщика — доступность, реактивность и качество услуг, предоставляемых поставщиком для пользователей ТС ПО. Такие услуги могут включать телефонную «горячую линию», местную техническую поддержку, поддержку в самой организации.
На основе данного набора параметров анализируются и классифицируются существующие ТС ПО. Общий набор критериев, применяемых для оценки ТС ПО, приведен ниже.
Критерии, применяемые для оценки ТС ПО
Критерий |
Определение |
Минимум времени обучения |
Количество человеко-часов, затрачиваемых на обучение ТС ПО |
Минимум затрат на обучение |
Стоимость процесса обучения плюс все накладные расходы, связанные с обучением |
Минимум трудоемкости создания ПО |
Количество человеко-месяцев, затрачиваемых на создание ПО с использованием ТС ПО
|
Минимум трудоемкости сопровождения ПО |
Количество человеко-месяцев, затрачиваемых на сопровождение ПО с использованием ТС ПО
|
Минимум времени создания ПО |
Временной интервал от начала до завершения проекта (сдачи ПО в эксплуатацию) при использовании данной ТС ПО |
Максимум продуктивности
|
Объем работы (измеряемый в количестве строк кода или функциональных точек), приходящийся на единицу трудоемкости (человеко-месяц) при использовании данной ТС ПО |
Максимум качества создаваемого ПО |
Количество дефектов в рабочих продуктах при использовании данной ТС ПО 1. Доход от использования ПО — Затраты на создание и сопровождение ПО / Затраты на создание и сопровождение ПО 2. Трудоемкость создания и сопровождения ПО без использования ТС ПО — Трудоемкость создания и сопровождения ПО с использованием ТС ПО / Трудоемкость создания и сопровождения ПО с использованием ТС ПО |
Возврат инвестиций
|
|
Минимум затрат на создание ПО |
Стоимость выполнения проекта (до сдачи ПО в эксплуатацию) с использованием ТС ПО |
Минимум затрат на сопровождение ПО
|
Отношение стоимости сопровождения ПО при использовании данной ТС ПО к совокупным затратам на информационные ТС ПО в организации
|
Минимум времени внедрения ТС ПО |
Временной интервал от начала внедрения ТС ПО до выхода на безубыточный уровень (начало возврата инвестиций в ТС ПО) |
Минимум затрат на внедрение ТС ПО |
Суммарная стоимость приобретения, обучения и сопровождения ТС ПО |
Минимальный срок окупаемости затрат на внедрение ТС ПО
|
Временной интервал от начала внедрения ТС ПО до полной окупаемости затрат на ее внедрение |
В результате выполненной оценки может оказаться, что ни одна доступная технология не удовлетворяет в нужной мере всем критериям и не покрывает все потребности проекта. В этом случае может применяться набор средств, позволяющий построить на их базе единую технологическую среду.
5.3.5
