Разработването на всеки продукт в областта на софтуерните технологии трябва да бъде подчинено на определена методология. В теорията (виж, например, [12]) някои от методологиите са определени като класически (например линейният метод  и методът с прототипиране), а други - като еволюционни. Линейният метод е най-подходящ за модела за разработване, които нарекохме “готово решение”. При него етапите на формулиране на задачата (анализ), детайлното проектиране, програмирането и тестването протичат в строга последователност. Всеки следващ етап започва едва когато предходният е завършил. След завършването на разработката готовият продукт се предоставя на клиенти и е обект само на съпровождане.

Методът с прототипиране пък е най-подходящ за модела “решение по поръчка”. При него отделните фази на разработването са “размити” заради непрекъснатия контакт на разработчика с клиента. Клиентът може да “наблюдава” качеството на продукта в текущото му състояние (прототип), да изпробва прототипа и да проверява доколко той отговаря на изискванията. В резултат, клиентът може да подсказва важни идеи за подобрения далеч преди окончателното завършване на разработката.

Предлаганата от нас иновативна идея изисква различна методология. Същественото при нея е отказът от моделите “готово решение” и “решение по поръчка” в чист вид или по-скоро съчетаване на отделни елементи от тези модели. Нашата идея предполага един непрекъснат процес на следене на новостите в областта (подобно на процеса предхождащ разработките на “готови решения”) и нуждите на потенциални клиенти (подобно на проучването на нуждите на реален клиент), в следствие на който да се извършва обновяване и усъвършенстване на съвкупността от елементи на продукта. От еволюционните методологии най-близка до предлаганата идея е т.н. инкрементален метод.

Инкременталният метод комбинира елементи на линейното изграждане на продукта с итеративно прототипиране, т.е. процесът на разработка съдържа няколко линейни сегмента. Всеки от линейните сегменти има своите фази на анализ, детайлно проектиране, програмиране и тестване. В края на всеки линеен сегмент се създава поредна итерация на софтуерния продукт. Всяка нова итерация допълва и обогатява предходната - добавя нова функционалност, подобрява ефективността на използваните в предната итерация  алгоритми  и т.н.

Първата итерация е наречена ядро на продукта. Тя до голяма степен определя облика на бъдещия продукт, съдържа най-важната функционалност и технологични решения. Възможно е в ядрото на продукта някои второстепенни възможности (осъзнато или неосъзнато) да не са реализирани или да са само загатнати. Ядрото се изпробва от потребители и се оценяват неговите качества, в резултат на което се планира следващата итерация. В плана за следваща итерация се залагат подобряване на функционалността и добавяне на нови елементи и функционалност. Процесът се повтаря в края на всеки линеен сегмент, в резултат на което се получава нов прототип, и т.н. до получаване на окончателния продукт.

Както се вижда, инкременталният модел, подобно на метода с прототипиране е инкрементален по своята същност. За разлика от чистото прототипиране обаче, във всеки момент от работата при инкременталния модел, след момента на създаване на ядрото, е налице работоспособен продукт. Макар че, в ранните итерации могат да липсват някои от предвидените възможности на продукта, той може да бъде използван за задоволяване нуждите на клиента и за планиране на подобрения. Ранните итерации изискват по-малко работна ръка и други ресурси и така се намалява икономическият риск. Всяка успешна итерация дава възможност за разширяване обсега на продукта, привличане на повече и по-квалифицирани изпълнители и води до още по-успешна следваща итерация.

Важно е да се отбележи, че колективът, предлагащ иновативната идея, вече има разработено ядро. Инкременталният метод дава отлична възможност за визуализация на резултатите и отчитане на извършеното, тъй като във всеки момент от работата над продукта, след създаване на ядро, разработчикът е в състояние да демонстрира качествата на действащия прототип. Така организацията, финансираща проекта, може на всеки етап да получи по-ясна картина за напредъка на разработката и гаранции, че инвестираните средства се използват разумно и по предназначение.

От методологическа гледна точка важен за реализацията на идеята е и т.н. компонентно-базирано разработване (Component-based Development или CBD). CBD е метод, който е много подходящ за реализиране на предлаганата иновативна идея. Същността му е в създаването на множество (библиотека) от разнообразни компоненти, проектирани така, че да могат да бъдат “сглобявани” един с друг в сложни системи (подобно на сглобяването на сложни водопроводни инсталации от разнообразни стандартизирани компоненти - фитинги).

CBD е изключително икономически ефективен метод, защото позволява многократното използване (reuse) на еднократно разработените компоненти. Когато анализът на нуждите на крайния потребител покаже необходимост от нова компонента, разработването и става сравнително бързо и с малък разход на ресурси (изследванията на QSM Associate, Inc. показват, че CBD може да доведе до намаляване времетраенето на разработката със 70%, намаляване цената на разработката с 80% и индекс на продуктивност 26.2, при обичайна стойност на индекса от 16.9). Като допълнително предимство на CBD метода може да се посочи, че той е в много близко съответствие с господстващия обектно-ориентиран стил на програмиране.

Цитиране източници: http://computationalsystems.net/projects/iws/sources