Stack (int
s
) {
2 2
size=s;
2 2
array=new int [size];
2
top=0;}
int IsEmpty () {
2
return top==0};
int Size (){
2
return size};
intVtop(){
3 3
return array [top-1]; }
void Push (int item) {
2
2
2
if (top= =size)
printf ("Empty stack. \n");
else
3
3
3
array [top++]=item;}
int Pop () {
1
if (IsEmpty ())
printf ("Full stack. \n");
else
1
--top;}
};
Очевидно, что CSA(Stack) включает три секции с 19 лексемами, имеет 5 сильно склеенных лексем и 12 склеенных лексем.
Расчеты по рассмотренным метрикам дают следующие значения:
SDC(CSA(Stack)) = 5/19 = 0,26
WDC(CSA(Stack)) = 12/19 = 0,63
DA(CSA(Stack)) =(7*2 + 5*3)/(19*3) = 0,51
УНИФИЦИРОВАННЫЙ ПРОЦЕСС РАЗРАБОТКИ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ ПС
В первой главе рассматривались основы организации процессов разработки ПО. В данной главе внимание сосредоточено
на детальном обсуждении унифицированного процесса разработки объектно-ориентированного ПО, на базе которого
возможно построение самых разнообразных схем конструирования программных приложений. Далее описывается
содержание ХР-процесса
экстремальной разработки, являющегося носителем адаптивной технологии, применяемой в
условиях частого изменения требований заказчика.
Эволюционно-инкрементная организация жизненного цикла разработки
Рассматриваемый подход является развитием спиральной модели Боэма [8], [40], [44], [57]. В
этом случае процесс
разработки программной системы организуется в виде эволюционно-инкрементного жизненного цикла. Эволюционная
составляющая цикла основывается на доопределении
требований в ходе работы, инкрементная составляющая — на
планомерном приращении реализации требований.
В этом цикле разработка представляется как серия итераций, результаты которых развиваются от начального макета до
конечной системы. Каждая итерация
включает сбор требований, анализ, проектирование, реализацию и тестирование.
Предполагается, что вначале известны не все требования, их дополнение и изменение осуществляется на
всех итерациях
жизненного цикла. Структура типовой итерации показана на рис. 15.1.
Видно, что критерием управления этим жизненным циклом является уменьшение риска. Работа начинается с
оценки
начального риска. В ходе выполнения каждой итерации риск пересматривается. Риск связывается с каждой итерацией так, что
ее успешное завершение уменьшает риск. План последовательности реализаций гарантирует,
что наибольший риск
устраняется в первую очередь.
Такая методика построения системы нацелена на выявление и уменьшение риска в самом начале жизненного цикла. В
итоге минимизируются затраты на уменьшение риска.