- •Глава 1. Организация процесса конструирования
- •Определение технологии конструирования программного обеспечения
- •Классический жизненный цикл
- •Макетирование
- •Стратегии конструирования по
- •Инкрементная модель
- •Быстрая разработка приложений
- •Спиральная модель
- •Компонентно-ориентированная модель
- •Тяжеловесные и облегченные процессы
- •Модели качества процессов конструирования
- •Контрольные вопросы
- •Глава 2. Руководство программным проектом
- •Процесс руководства проектом
- •Начало проекта
- •Измерения, меры и метрики
- •Процесс оценки
- •Анализ риска
- •Планирование
- •Трассировка и контроль
- •Планирование проектных задач
- •Размерно-ориентированные метрики
- •Функционально-ориентированные метрики
- •Выполнение оценки в ходе руководства проектом
- •Выполнение оценки проекта на основеLoc- иFp-метрик
- •Конструктивная модель стоимости
- •Модель композиции приложения
- •Модель раннего этапа проектирования
- •Модель этапа постархитектуры
- •Предварительная оценка программного проекта
- •Анализ чувствительности программного проекта
- •Сценарий понижения зарплаты
- •Сценарий наращивания памяти
- •Сценарий использования нового микропроцессора
- •Сценарий уменьшения средств на завершение проекта
- •Контрольные вопросы
- •Глава 3. Основы проектирования программных систем
- •Особенности процесса синтеза программных систем
- •Особенности этапа проектирования
- •Структурирование системы
- •Моделирование управления
- •Декомпозиция подсистем на модули
- •Модульность
- •Информационная закрытость
- •Связность модуля
- •Функциональная связность
- •Информационная связность
- •Коммуникативная связность
- •Процедурная связность
- •Временная связность
- •Логическая связность
- •Связность по совпадению
- •Определение связности модуля
- •Сцепление модулей
- •Сложность программной системы
- •Характеристики иерархической структуры программной системы
- •Контрольные вопросы
- •Глава 8. Организация процесса тестирования программного обеспечения
- •Методика тестирования программных систем
- •Тестирование элементов
- •Тестирование интеграции
- •Нисходящее тестирование интеграции
- •Восходящее тестирование интеграции
- •Сравнение нисходящего и восходящего тестирования интеграции
- •Тестирование правильности
- •Системное тестирование
- •Тестирование восстановления
- •Тестирование безопасности
- •Стрессовое тестирование
- •Тестирование производительности
- •Искусство отладки
- •Контрольные вопросы
- •Основы компонентной объектной модели
- •Организация интерфейса сом
- •Идентификация интерфейса
- •Описание интерфейса
- •Реализация интерфейса
- •Unknown— базовый интерфейсCom
- •Серверы сом-объектов
- •ПреимуществаCom
- •Работа с сом-объектами
- •Создание сом-объектов
- •IClassFactory :: Createlnstance (iid a); 2 — фабрика класса создает сом-объект и получает
- •Повторное использование сом-объектов
- •Маршалинг
Модель композиции приложения
Модель композиции используется на ранней стадии конструирования ПО, когда:
рассматривается макетирование пользовательских интерфейсов;
обсуждается взаимодействие ПО и компьютерной системы;
оценивается производительность;
определяется степень зрелости технологии.
Модель композиции приложения ориентирована на применение объектных указателей.
Объектный указатель — средство косвенного измерения ПО, для его расчета определяется количество экранов (как элементов пользовательского интерфейса), отчетов и компонентов, требуемых для построения приложения. Как показано в табл. 2.15, каждый объектный экземпляр (экран, отчет) относят к одному из трех уровней сложности. Здесь места подстановки измеренных и вычисленных значений отмечены прямоугольниками (прямоугольник играет роль метки-заполнителя). В свою очередь, сложность является функцией от параметров клиентских и серверных таблиц данных (см. табл. 2.16 и 2.17), которые требуются для генерации экрана и отчета, а также от количества представлений и секций, входящих в экран или отчет.
Таблица 2.15. Оценка количества объектных указателей
Тип объекта |
Количество |
Вес |
|
|
Итого |
|
|
Простой |
Средний |
Сложный |
|
Экран |
0 |
х1 |
х2 |
х3 |
= 0 |
Отчет |
0 |
х2 |
х5 |
х8 |
= 0 |
3GL компонент |
0 |
|
|
х10 |
= 0 |
Объектные указатели |
|
|
|
|
= 0 |
Таблица 2.16. Оценка сложности экрана
Экраны |
Количество серверных (срв) и клиентских (клт) таблиц данных | ||
Количество представлений |
Всего < 4 (< 2 срв, <3клт) |
Всего < 8 (2-3 срв, 3-5 клт) |
Всего > 8 (>3срв, >5клт) |
<3 |
Простой |
Простой |
Средний |
3-7 |
Простой |
Средний |
Сложный |
>8 |
Средний |
Сложный |
Сложный |
Таблица 2.17. Оценка сложности отчета
Отчеты |
Количество серверных (срв) и клиентских (клт) таблиц данных | ||
Количество представлений |
Всего < 4 (< 2 срв, < 3 клт) |
Всего < 8 (2-3 срв, 3-5 клт) |
Всего > 8 (>3срв, > 5 клт) |
0 или 1 |
Простой |
Простой |
Средний |
2 или 3 |
Простой |
Средний |
Сложный |
>4 |
Средний |
Сложный |
Сложный |
После определения сложности количество экранов, отчетов и компонентов взвешивается в соответствии с табл. 2.15. Количество объектных указателей определяется перемножением исходного числа объектных экземпляров на весовые коэффициенты и последующим суммированием промежуточных результатов.
Для учета реальных условий разработки вычисляется процент повторного использования программных компонентов %REUSE и определяется количество новых объектных указателей NOP:
NOP = (Объектные указатели) х [(100 - %REUSE) /100].
Для оценки затрат, основанной на величине NOP, надо знать скорость разработки продукта PROD. Эту скорость определяют по табл. 2.18, учитывающей уровень опытности разработчиков и зрелость среды разработки.
Проектные затраты оцениваются по формуле
ЗАТРАТЫ = NOP /PROD [чел.-мес],
где PROD — производительность разработки, выраженная в терминах объектных указателей.
Таблица 2.18. Оценка скорости разработки
Опытность / возможности разработчика |
Зрелость / возможности среды разработки |
PROD |
Очень низкая |
Очень низкая |
4 |
Низкая |
Низкая |
7 |
Номинальная |
Номинальная |
13 |
Высокая |
Высокая |
25 |
Очень высокая |
Очень высокая |
50 |
В более развитых моделях дополнительно учитывается множество масштабных факторов, формирователей затрат, процедур поправок.