- •Оглавление
- •Глава 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 особенности современных проектов
- •Категории «безнадежных» проектов
- •Причины, порождающие «безнадежные» проекты
- •Причины разногласий между участниками проекта
- •Переговоры в «безнадежном» проекте
- •Человеческий фактор в «безнадежных» проектах
- •Процессы в «безнадежных» проектах
- •Динамика процессов
- •Контроль над продвижением проекта
- •Технология и инструментальные средства «безнадежных» проектов
- •Дополнительная литература
- •Краткий словарь терминов
- •Список основных сокращений
Пример структурного проектирования по
Здесь продолжено рассмотрение примера из подразд. 3.2.5.
Построение диаграмм системных процессов и диаграмм последовательностей экранных форм
Результаты перехода от модели бизнес-процессов к модели системных процессов представлены на рис. 4.1—4.2. На диаграмме системных процессов первого уровня вместо отдельных процессов введены процессоры — компьютеры, на которых выполняются соответствующие процессы.
Рис. 4.1. Диаграмма системных процессов нулевого уровня
Рис. 4.2. Диаграмма системных процессов первого уровня
Результаты построения абстрактной модели пользовательского интерфейса системы, отражающей последовательность появления экранных форм в приложении, представлены на рис. 4.3.
Рис. 4.3. Диаграмма последовательности экранных форм
4.3.
Объектно-ориентированный анализ
Целью объектно-ориентированного анализа25 является трансформация функциональных требований к ПО в предварительный системный проект и создание стабильной основы архитектуры системы. В процессе проектирования системный проект «погружается» в среду реализации с учетом всех нефункциональных требований.
Объектно-ориентированный анализ включает два вида деятельности: архитектурный анализ и анализ вариантов использования. Изложение их методики будет сопровождаться примерами из системы регистрации учебного заведения, которая рассматривалась в главе 3.
4.3.1.
Архитектурный анализ
Архитектурный анализ выполняется архитектором системы и включает в себя:
утверждение общих стандартов (соглашений) моделирования и документирования системы;
предварительное выявление архитектурных механизмов (механизмов анализа);
формирование набора основных абстракций предметной области (классов анализа);
формирование начального представления архитектурных уровней.
Соглашения моделирования определяют:
используемые диаграммы и элементы модели;
правила их применения;
соглашения по именованию элементов модели;
организацию модели (пакеты).
Пример набора соглашений моделирования:
Имена вариантов использования должны быть короткими глагольными фразами.
Имена классов должны быть существительными, соответствующими, по возможности, понятиям предметной области.
Имена классов должны начинаться с заглавной буквы.
Имена атрибутов и операций должны начинаться со строчной буквы.
Составные имена должны быть сплошными, без подчеркиваний, каждое отдельное слово должно начинаться с заглавной буквы.
Все классы и диаграммы, описывающие предварительный системный проект, помещаются в пакет с именем Analysis Model.
Диаграммы классов, реализующих вариант использования, и диаграммы взаимодействия, отражающие взаимодействие объектов в процессе реализации сценариев варианта использования, помещаются в кооперацию (см. подразд. 2.6) с именем данного варианта использования и стереотипом «use-case realization». Все кооперации помещаются в пакет с именем Use Case Realizations. Связь между вариантом использования и его реализацией изображается на специальной диаграмме трассировки (рис. 4.4).
Рис. 4.4. Фрагмент диаграммы трассировки
Архитектурные механизмы отражают нефункциональные требования к системе (надежность, безопасность, хранение данных в конкретной среде, интерфейсы с внешними системами и т.д.) и их реализацию в архитектуре системы. В процессе анализа они только обозначаются, отвлекаясь от особенностей среды реализации, а все детали их реализации определяются в процессе проектирования.
Архитектурные механизмы, по существу, представляют собой набор типовых решений, или образцов, принятых в качестве стандарта данного проекта.
Идентификация основных абстракций заключается в предварительном определении набора классов системы (классов анализа) на основе описания предметной области и спецификации требований к системе (в частности, глоссария). Способы идентификации основных абстракций аналогичны способам идентификации сущностей в модели ERM.
Так, для системы регистрации идентифицировано пять классов анализа:
Student (Студент);
Professor (Профессор);
Schedule (Учебный график);
Course (Курс);
CourseOffering (Предлагаемый курс).
Классы анализа показаны на рис. 4.5.
Рис. 4.5. Классы анализа системы регистрации
Архитектурные уровни образуют иерархию уровней представления любой крупномасштабной системы. В практике разработки таких систем существует ряд типовых решений — архитектурных образцов, среди которых наиболее распространенным является образец «Уровни» (Layers). Этот образец можно описать следующим образом:
Наименование образца:
«Уровни».
Контекст:
Крупномасштабные системы, нуждающиеся в декомпозиции.
Проблема:
Архитектура крупномасштабной системы должна удовлетворять следующим требованиям:
компоненты системы должны иметь возможность замены;
изменения в одних компонентах не должны сильно затрагивать другие;
однородные функции должны группироваться вместе;
размер компонентов не должен быть слишком большим.
Решение:
Предлагается базовый вариант, включающий следующие уровни (сверху вниз):
прикладной (Application Subsystems) — набор компонентов, реализующих основную функциональность системы, отраженную в вариантах использования;
бизнес-уровень (Business-specific) — набор компонентов, специфичных для конкретной предметной области;
промежуточный (Middleware) — различные платформо-независимые сервисы (библиотеки пользовательского интерфейса, брокеры запросов и др.);
системный (System software) — ПО для вычислительной и сетевой инфраструктуры (ОС, сетевые протоколы и др.).
Архитектурные уровни представляются в модели в виде пакетов со стереотипом «1ауег». Количество и структура уровней зависят от сложности предметной области и среды реализации. В рамках архитектурного анализа определяется начальная структура модели (набор пакетов и их зависимостей) и рассматриваются только верхние уровни (прикладной и бизнес-уровень).
4.3.2.
