
- •Модели жизненного цикла программного обеспечения
- •Методологические стратегии
- •Производственные функции в моделировании жизненного цикла: модель фазы-функции
- •Модель Rational Unified Process
- •Модель процессов msf
- •Экономическая модель разработки по. Оценка технико-экономических показателей проекта. Модели cocomo, cocomo II, метод функциональных точек
- •Экономическая модель разработки по
- •Модель оценки стоимости сосомо
- •Исходная модель сосомо
- •Описание жизненного цикла в модели сосомо
- •Факторы, влияющие на значение eaf
- •Стандартное распределение работ по видам деятельности
- •Сосомо II
- •Усовершенствованная постархитектурная модель cocomo II
Методологические стратегии
Рис. 8.1. Конус операционных маршрутов проекта
Рис. 8.2. Выявление отклонений и корректировка траектории
Рис. 8.3. Последовательное развитие проекта.
Рис. 8.4. Итеративное наращивание возможностей системы
Таблица 8.1.
Сопоставление жесткой и быстрой стратегий в методологиях программирования
Жесткие методологии |
Быстрые методологии |
Ориентация на предсказуемые процессы разработки программного обеспечения с четко обозначенными целями |
Осознание того, что процессы разработки программного обеспечения в принципе непредсказуемы |
Распознавание ситуаций и применение готовых методов |
Распознавание ситуаций и конструирование методов для работы в них |
Планирование, в котором определяются этапы с объемом работ, ресурсами, сроками и уровнем качества работ |
Соблюдение баланса между параметрами проекта: объем работ, ресурсы, сроки и уровень качества работ |
Заказчик – внешний по отношению к проекту субъект, влияющий на разработку только через предоставление ресурсов и контроль результатов, в том числе по поэтапным срокам выполнения проекта |
Заказчик (его представитель) – член команды разработчиков, наделенный правом влиять на разработку; его главной целью является отслеживание актуальности решаемых задач |
Ролевое разделение труда работников проекта |
Совместная деятельность сотрудников и деперсонифицированная ответственность |
Дисциплина и подчинение |
Самодисциплина и сотрудничество |
Обезличенный процесс, исполнители которого определяются только по квалификационным требованиям |
Процесс, максимально учитывающий личностные качества исполнителей |
Производственные функции в моделировании жизненного цикла: модель фазы-функции
Рис. 8.5. Фазовое измерение модели фазы – функции.
Рис. 8.6. Матрица фазы—функции модели Гантера
Рис.8.7. Учет итеративности в модели фазы–функции (фазовое измерение, показаны лишь некоторые возвраты)
Модель Rational Unified Process
Рис. 8.9. Модель Rational Unified Process
Модель процессов msf
Каскадная модель |
Спиральная модель |
Модель жизненного цикла MSF |
|
|
|
Рис. 8.10. Построение модели жизненного цикла MSF на базе каскадной и спиральной моделей
Экономическая модель разработки по. Оценка технико-экономических показателей проекта. Модели cocomo, cocomo II, метод функциональных точек
Таблица 9.1
Примеры информационных характеристик
Информационная характеристика |
Элементы данных |
Внешние Вводы |
Поля ввода данных, сообщения об ошибках, вычисляемые значения, кнопки |
Внешние Выводы |
Поля данных в отчетах, вычисляемые значения, сообщения об ошибках, заголовки столбцов, которые читаются из внутреннего файла |
Внешние Запросы |
Вводимые элементы: поле, используемое для поиска, щелчок мыши. Выводимые элементы – отображаемые на экране поля |
Таблица 9.2
Учет элементов данных из графического интерфейса пользователя
Элемент данных |
Правило учета |
Группа радиокнопок |
Так как в группе пользователь выбирает только одну радиокнопку, все радиокнопки группы считаются одним элементом данных |
Группа флажков (переключателей) |
Так как в группе пользователь может выбрать несколько флажков, каждый флажок считают элементом данных |
Командные кнопки |
Командная кнопка может определять действие добавления, изменения, запроса. Кнопка ОК может вызывать транзакции (различных типов). Кнопка Next может быть входным элементом запроса или вызывать другую транзакцию. Каждая кнопка считается отдельным элементом данных |
Списки |
Список может быть внешним запросом, но результат запроса может быть элементом данных внешнего ввода |
Таблица 9.3
Ранг и оценка сложности внешних вводов
Ссылки на файлы |
Элементы данных |
||
1-4 |
5-15 |
>15 |
|
0-1 2 >2 |
Низкий (3) Низкий (3) Средний (4) |
Низкий (3) Средний (4) Высокий (6) |
Средний (4) Высокий (6) Высокий (6) |
Таблица 9.4
Ранг и оценка сложности внешних выводов
Ссылки на файлы |
Элементы данных |
||
1-4 |
5-19 |
>19 |
|
0-1 2-3 >3 |
Низкий (4) Низкий (4) Средний (5) |
Низкий (4) Средний (5) Высокий (7) |
Средний (5) Высокий (7) Высокий (7) |
Таблица 9.5
Ранг и оценка сложности внешних запросов
Ссылки на файлы |
Элементы данных |
||
1-4 |
5-19 |
>19 |
|
0-1 2-3 >3 |
Низкий (3) Низкий (3) Средний (4) |
Низкий (3) Средний (4) Высокий (6) |
Средний (4) Высокий (6) Высокий (6) |
Таблица 9.6
Ранг и оценка сложности внутренних логических файлов
Типы элементов-записей |
Элементы данных |
||
1-19 |
20-50 |
>50 |
|
1 2-5 >5 |
Низкий (7) Низкий (7) Средний (10) |
Низкий (7) Средний (10) Высокий (15) |
Средний (10) Высокий (15) Высокий (15) |
Таблица 9.7
Ранг и оценка сложности внешних интерфейсных файлов
Типы элементов-записей |
Элементы данных |
||
1-19 |
20-50 |
>50 |
|
1 2-5 >5 |
Низкий (5) Низкий (5) Средний (7) |
Низкий (5) Средний (7) Высокий (10) |
Средний (7) Высокий (10) Высокий (10) |
Таблица 9.8
Исходные данные для расчета FP-метрик
Имя характеристики |
Ранг, сложность, количество |
|||
Низкий |
Средний |
Высокий |
Итого |
|
Внешние вводы |
__x3 = __ |
__x4 = __ |
__x6 = __ |
= __ |
Внешние выводы |
__x4 = __ |
__x5 = __ |
__x7 = __ |
= __ |
Внешние запросы |
__х3 = __ |
__x4 = __ |
__x6 = __ |
= __ |
Внутренние логические файлы Внешние интерфейсные файлы |
__x7 = __ __x5 = __ |
__x1__= __ __x7 = __ |
__x15 = __ __x1__ = __ |
= __ = __ |
Общее количество |
= __ |
Количество функциональных точек вычисляется по формуле
(9.1)
где Fi – коэффициенты регулировки сложности.
Каждый коэффициент может принимать следующие значения:
0 – нет влияния, 1 – случайное,
2 – небольшое, 3 – среднее,
4 – важное, 5 – основное.
Значения выбираются эмпирически в результате ответа на 14 вопросов, которые характеризуют системные параметры приложения (табл. 9.9).
Таблица 9.9
Определение системных параметров приложения
№ |
Системный параметр |
Описание |
1 |
Передачи данных |
Сколько средств связи требуется для передачи или обмена информацией с приложением или системой? |
2 |
Распределенная обработка данных |
Как обрабатываются распределенные данные и функции обработки? |
3 |
Производительность |
Нуждается ли пользователь в фиксации времени ответа или производительности? |
4 |
Распространенность используемой конфигурации |
Насколько распространена текущая аппаратная платформа, на которой будет выполняться приложение? |
5 |
Скорость транзакций |
Как часто выполняются транзакции? (каждый день, каждую неделю, каждый месяц) |
6 |
Оперативный ввод данных |
Какой процент информации надо вводить в режиме онлайн? |
7 |
Эффективность работы конечного пользователя |
Приложение проектировалось для обеспечения эффективной работы конечного пользователя? |
8 |
Оперативное обновление |
Как много внутренних файлов обновляется в онлайновой транзакции? |
9 |
Сложность обработки |
Выполняет ли приложение интенсивную логическую или математическую обработку? |
10 |
Повторная используемость |
Приложение разрабатывалось для удовлетворения требований одного или многих пользователей? |
11 |
Легкость инсталляции |
Насколько трудны преобразование и инсталляция приложения? |
12 |
Легкость эксплуатации |
Насколько эффективны и/или автоматизированы процедуры запуска, резервирования и восстановления? |
13 |
Разнообразные условия размещения |
Была ли спроектирована, разработана и поддержана возможность инсталляции приложения в разных местах для различных организаций? |
14 |
Простота изменений |
Была ли спроектирована, разработана и поддержана в приложении простота изменений? |
Производится преобразование функциональных точек в единицы LOC с помощью таблицы 9.10.
Таблица 9.10
Пересчет FP-оценок в LOC-оценки
Язык программирования |
Количество операторов на один FP |
Ассемблер С |
320 128 |
Кобол |
106 |
Фортран |
106 |
Паскаль |
90 |
C++ |
64 |
Java |
53 |
Ada 95 |
49 |
Visual Basic |
32 |
Visual C++ |
34 |
Delphi Pascal |
29 |
Smalltalk |
22 |
Perl |
21 |
HTML3 |
15 |
LISP |
64 |
Prolog |
64 |
Miranda |
40 |
Haskell |
38 |