Расчет сложности программной системы

При расчете сложности программной системы оцениваются следующие показатели.

1) Временная и емкостная сложность алгоритмов отдельных модулей и, по-возможности, системы в целом;

2) Трудозатраты на разработку системы.

Первая характеристика изучалась в рамках дисциплины «Алгоритмы и структуры данных». Она должна дать общую оценку порядка сложности: n, n2 т.д.

Определение трудозатрат на разработку программной системы на разных стадиях ее проектирования и разработки может выполняться по-разному. При этом наиболее простой метрикой является LOC-оценка (Lines Of Code).

LOC-оценка равна количеству строк в программном продукте.

После окончания разработки системы определение этой оценки выполняется довольно просто – по исходному коду программы. Именно так предлагается вычислить ее в курсовом проекте.

На начальных этапах проектирования реальных систем учитываются следующие показатели:

1) предшествующий опыт оценки аналогичных систем;

2) доля новых разработок, а также применение и переработка имеющихся компонентов, в том числе и библиотечных;

3) квалификация сотрудников;

4) расходы на весь цикл создания программной системы, включая руководство процессом и этап тестирования.

Наиболее распространенная методика оценки трудозатрат - COCOMO (Constructive Cost Model). Базовая формула оценки трудозатрат COCOMO имеет вид:

Расчет сложности программной системы - №1 - открытая онлайн библиотека (1)

где E – трудозатраты, выраженные в человеко-месяцах; a и b – константы, определенные на основе регрессионного анализа, в зависимости от проекта;

KSLOC – количество тысяч строк кода (под строками кода SLOC понимаются логические строки кода, а именно строки в понимании используемого языка программирования, без учета комментариев);

EAF (Effort Adjustment Factor) – фактор корректировки трудозатрат. Он увеличивает или уменьшает трудозатраты в зависимости от факторов среды:

Расчет сложности программной системы - №2 - открытая онлайн библиотека (2)

где Ci – один из факторов среды.

В курсовом проекте выполним приближенный расчет. При этом будем считать, что коэффициенты aи b, а также фактор корректировки трудозатрат EAF равны 1.

Количество тысяч строк кода будем определять по формуле:

Расчет сложности программной системы - №3 - открытая онлайн библиотека (3)

где SLOCR - код, описывающий интерфейс системы. Обычно это код, описывающий сам интерфейс. Для компонентов, работающих в среде Интернет - HTML код;

SLOCI - код, обрабатывающий элементы интерфейса и связывающий его с другими частями системы. Обычно это классы обработки ошибок ввода данных, записи данных в базу и т.п.;

SLOCP - код, обеспечивающий определенную логику работы системы. Обычно, это классы, описывающие свойства объектов системы и взаимосвязь между функциями;

Kp – фактор изменения логики работы системы;

Ki – фактор изменения обработки интерфейсных элементов системы;

Kr – фактор изменения интерфейса системы.

Факторы K обычно подбираются опытным путем. Будем считать, что для изменений менее 20% фактор К может быть равен 0,2; для 50% изменений - 0,7; для вновь создаваемых компонент - 1,0. Если в курсовом проекте все компоненты создаются вновь, а не берутся из библиотек, то К = 1.