- •Оглавление
- •Глава 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 особенности современных проектов
- •Категории «безнадежных» проектов
- •Причины, порождающие «безнадежные» проекты
- •Причины разногласий между участниками проекта
- •Переговоры в «безнадежном» проекте
- •Человеческий фактор в «безнадежных» проектах
- •Процессы в «безнадежных» проектах
- •Динамика процессов
- •Контроль над продвижением проекта
- •Технология и инструментальные средства «безнадежных» проектов
- •Дополнительная литература
- •Краткий словарь терминов
- •Список основных сокращений
Краткий словарь терминов
А
Абстрагирование — выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и четко определяют его концептуальные границы относительно дальнейшего рассмотрения и анализа.
Агрегация (форма ассоциации) - связь между целым (составным) объектом и его частями (компонентными объектами).
Ассоциация - семантическая связь между классами. Ассоциация отражает структурные связи между объектами различных классов.
Атрибут — любая характеристика сущности, значимая для рассматриваемой предметной области и предназначенная для квалификации, идентификации, классификации, количественной характеристики или выражения состояния сущности.
Архитектура ПО — описание системы ПО, включающее совокупность структурных элементов системы и связей между ними; поведение элементов системы в процессе их взаимодействия и иерархию подсистем, объединяющих структурные элементы.
Бизнес-модель — формализованное описание процессов, связанных с ресурсами и отражающих существующую или предполагаемую деятельность предприятия.
Бизнес-процесс — логически завершенный набор взаимосвязанных и взаимодействующих видов деятельности, поддерживающий деятельность организации и реализующий ее политику, направленную на достижение поставленных целей.
Вариант использования (use case) - последовательность действий (транзакций), выполняемых системой в ответ на событие, инициируемое некоторым внешним объектом (действующим лицом).
Внешняя сущность — материальный предмет или физическое лицо, представляющие собой источник или приемник информации.
Действующее лицо (actor) — роль, которую пользователь играет по отношению к системе.
Ж-3
Жизненный цикл программного обеспечения - период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации.
Зрелость процессов (software process maturity) - степень управляемости, контролируемости и эффективности процессов создания ПО.
И
Иерархия - ранжированная или упорядоченная система абстракций, расположение их по уровням.
Индивидуальность - набор свойств объекта, отличающих его от всех других объектов.
Инкапсуляция — физическая локализация свойств и поведения в рамках единственной абстракции (рассматриваемой как «черный ящик»), скрывающая их реализацию за общедоступным интерфейсом.
Инструментальное средство (CASE-средство) - программное средство, поддерживающее процессы жизненного цикла ПО, определенные в стандарте ISO/IEC 12207:1995.
Интерфейс — совокупность операций, определяющих набор услуг класса, подсистемы или компонента.
Информационная система — совокупность функциональных и информационных процессов конкретной предметной области; средств и методов сбора, хранения, анализа, обработки и передачи информации, зависящих от специфики области применения; методов управления процессами решения функциональных задач, а также информационными, материальными и денежными потоками в предметной области.
К
Качество ПО — совокупность свойств, которые характеризуют способность ПО удовлетворять заданным требованиям.
Класс — множество объектов, связанных общностью свойств, поведения, связей и семантики. Класс инкапсулирует (объединяет) в себе данные (атрибуты) и поведение (операции).
Класс принадлежности — характеристика обязательности участия экземпляра сущности в связи.
Компонент - относительно независимая и замещаемая часть системы, выполняющая четко определенную функцию в контексте заданной архитектуры. Компонент представляет собой физическую реализацию проектной абстракции.
Конфигурация ПО — совокупность его функциональных и физических характеристик, установленных в технической документации и реализованных в ПО.
М
Моделирование - процесс создания формализованного описания системы в виде совокупности моделей.
Модель ПО - формализованное описание системы ПО на определенном уровне абстракции.
Модель ЖЦ ПО — структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач на протяжении ЖЦ.
Модульность — свойство системы, связанное с возможностью ее декомпозиции на ряд внутренне связных, но слабо связанных между собой подсистем (модулей).
Мощность связи — максимальное число экземпляров сущности, которое может быть связано с одним экземпляром данной сущности.
Н
Накопитель данных — абстрактное устройство для хранения информации.
Наследование — построение новых классов на основе существующих с возможностью добавления или переопределения свойств (атрибутов) и поведения (операций).
Нотация (языка моделирования) — совокупность графических объектов, которые используются в моделях.
Нормативно-методическое обеспечение (НМО) - комплекс документов, регламентирующих порядок разработки, внедрения и сопровождения ПО; общие требования к составу ПО и связям между его компонентами, а также к его качеству; виды, состав и содержание проектной и программной документации.
О
Образец — общее решение некоторой проблемной ситуации в заданном контексте. Образец состоит из четырех основных элементов: имя, проблема, решение и следствия.
Объект — осязаемая сущность (tangible entity) - предмет или явление, имеющие четко определяемое поведение.
Объектная декомпозиция - описание структуры системы в терминах объектов и связей между ними, а поведения системы — в терминах обмена сообщениями между объектами.
Операция (метод) — определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию. Операция - это реализация услуги, которую можно запросить у любого объекта данного класса.
П
Поведение - набор действий объекта и его реакций на запросы от других объектов. Поведение характеризует воздействие объекта на другие объекты и, наоборот, с точки зрения изменения состояния этих объектов и передачи сообщений. Поведение представляется с помощью набора сообщений, воспринимаемых объектом (операций, которые может выполнять объект).
Полиморфизм — способность скрывать множество различных реализаций под единственным общим интерфейсом. Понятие полиморфизма может быть интерпретировано, как способность класса принадлежать более чем одному типу.
Поток данных - информация, передаваемая через некоторое соединение от источника к приемнику.
Программная инженерия 1. Совокупность инженерных методов и средств создания ПО. 2. Дисциплина, изучающая применение строгого систематического количественного (т.е. инженерного) подхода к разработке, эксплуатации и сопровождению ПО.
Программное обеспечение (программный продукт) — совокупность компьютерных программ, процедур и, возможно, связанной с ними документации и данных.
Проект — временное предприятие, осуществляемое с целью создания уникального продукта или услуги.
Проект ПО — совокупность спецификаций программного обеспечения (включающих модели и проектную документацию), обеспечивающих создание ПО в конкретной программно-технической среде.
Проектирование ПО — процесс создания спецификаций программного обеспечения на основе исходных требований к нему. Проектирование ПО сводится к последовательному уточнению его спецификаций на различных стадиях процесса создания ПО.
Прототип — действующий программный компонент, реализующий отдельные функции и внешние интерфейсы разрабатываемого ПО.
Процесс (ЖЦ ПО) — совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные.
Процесс создания ПО — совокупность упорядоченных во времени, взаимосвязанных и объединенных в стадии работ, выполнение которых необходимо и достаточно для создания ПО, соответствующего заданным требованиям.
Процесс (на диаграмме потоков данных) — преобразование входных потоков данных в выходные в соответствии с определенным алгоритмом.
Р
Рабочий продукт — информационная или материальная сущность, которая создается, модифицируется или используется в некоторой технологической операции (модель, документ, код, тест и т.п.). Рабочий продукт определяет область ответственности роли и является объектом управления конфигурацией.
Разработка ПО - комплекс работ по созданию ПО и его компонентов в соответствии с заданными требованиями, включая оформление проектной и эксплуатационной документации, подготовку материалов, требуемых для проверки работоспособности и соответствующего качества программных продуктов, материалов, необходимых для организации обучения персонала, и т.д.
Репозиторий - база данных, предназначенная для хранения проектных данных (версий проекта и его отдельных компонентов), синхронизации поступления информации от различных разработчиков при групповой разработке, контроля данных на полноту и непротиворечивость.
Роль - определение поведения и обязанностей отдельного лица или группы лиц в среде организации-разработчика ПО, осуществляющих деятельность в рамках некоторого технологического процесса и ответственных за определенные рабочие продукты.
Руководство - практическое руководство по выполнению одной операции или совокупности технологических операций. Руководства включают методические материалы, инструкции, нормативы, стандарты и критерии оценки качества рабочих продуктов.
С
Связь - поименованная ассоциация между двумя сущностями, значимая для рассматриваемой предметной области (в модели «сущность-связь»).
Сообщение (message) — средство, с помощью которого объект-отправитель запрашивает у объекта-получателя выполнение одной из его операций.
Сопровождение ПО — внесение изменений в программное обеспечение в целях исправления ошибок, повышения производительности или адаптации к изменившимся условиям работы или требованиям.
Состояние объекта — одно из возможных условий, в которых он может существовать. Оно характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими (динамическими) значениями каждого из этих свойств. Состояние объекта определяется значениями его свойств (атрибутов) и связями с другими объектами.
Стадия процесса создания ПО - часть процесса создания ПО, ограниченная определенными временными рамками и заканчивающаяся выпуском конкретного продукта (моделей ПО, программных компонентов, документации), определяемого заданными для данной стадии требованиями.
Степень связи — количество сущностей, участвующих в связи.
Стереотип (UML) — новый тип элемента модели, который определяется на основе уже существующего элемента. Стереотипы расширяют нотацию модели, могут применяться к любым элементам модели и представляются в виде текстовой метки или пиктограммы.
Сущность - реальный либо воображаемый объект, имеющий существенное значение для рассматриваемой предметной области.
Т
Технология создания ПО — упорядоченная совокупность взаимосвязанных технологических процессов в рамках жизненного цикла программного обеспечения.
Технологический процесс — совокупность взаимосвязанных технологических операций.
Технологическая операция — основная единица работы, выполняемая определенной ролью, которая подразумевает четко определенную ответственность роли; дает четко определенный результат (набор рабочих продуктов), базирующийся на определенных исходных данных (другом наборе рабочих продуктов); представляет собой единицу работы с жестко определенными границами, которые устанавливаются при планировании проекта.
Трассировка требований — установка и отслеживание связей требований с другими требованиями или проектными решениями
Требование — условие, которому должна удовлетворять система, или свойство, которым она должна обладать, чтобы удовлетворить потребность пользователя в решении некоторой задачи, а также удовлетворить требования контракта, стандарта или спецификации.
У
Уникальный идентификатор — неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности.
Управление конфигурацией — применение административных и технических процедур для определения состояния компонентов ПО в системе, управления модификациями ПО, описания и подготовки отчетов о состоянии компонентов ПО и запросов на модификацию, обеспечения полноты, совместимости и корректности компонентов ПО, управления хранением и поставкой ПО.
Управление требованиями 1. Систематический подход к выявлению, организации и документированию требований к системе. 2. Процесс, устанавливающий соглашение между заказчиками и разработчиками относительно изменения требований к системе и обеспечивающий его выполнение.
Ф-Я
Функциональная декомпозиция — описание структуры системы в терминах иерархии ее функций и передачи информации между отдельными функциональными элементами.
Функциональный тип — логическая группа взаимосвязанных данных, используемых и поддерживаемых приложением, а также элементарный процесс, связанный с вводом и выводом информации.
Язык моделирования — совокупность элементов модели — фундаментальных концепций моделирования и их семантики; нотации (системы обозначений) — визуального представления элементов моделирования; руководства по использованию — правил применения элементов в рамках построения тех или иных типов моделей ПО.
