Ohjelmistokehitys on monimutkainen toiminta, joka vaatii liiketoimintataitoa ja tekniikan perusteellista tuntemusta. Tietokoneohjelmistoteollisuudessa on määritelty ja käytetty monia kehyksiä sen varmistamiseksi, että ohjelmisto vastaa asiakkaan tarpeita. Kaaosmalli on ohjelmistokehitysmalli, joka käyttää ketterän kehityskehyksen osia ja vesiputouskehyskehystä, mutta tarkastelee ongelmanratkaisun ainutlaatuisia tarpeita tehokkaan ohjelmistokoodin luomiseksi.
Kaaosmallin ja kaaoksen elinkaaren esitteli ensimmäisen kerran LBS Raccoon vuonna 1994. Tässä mallissa kaikki projektit määritellään lineaarisella ongelmanratkaisusilmukalla ja ryhmädynamiikan vaikutuksilla organisaatiossa ja ohjelmistokehitystiimissä. Jokainen mallin ongelma on jaettu pienempään ongelmanratkaisusilmukkaan organisaation sisällä olevan kerroksen perusteella.
Lineaarinen ongelmanratkaisu on prosessi, jossa ongelma ratkaistaan lineaarisesti vaiheiden tai prosessien avulla. Kaaosmallin lineaarinen ongelmanratkaisusilmukka koostuu ongelman määrittelystä, teknisestä kehityksestä, ratkaisujen integroinnista ja status quosta. Mallin keskeinen elementti on lineaarinen ongelmanratkaisusilmukka, jota käytetään kaikilla ohjelman ja organisaation tasoilla.
Kaaosmallissa on useita vaatimustasoja. Nämä ovat ohjelmataso, komponenttitaso, toimintotaso ja yksi kooditason rivi. Mallin perusidea on, että ohjelmistokoodi on monimutkainen integrointi tuhansista moduuleista, toiminnoista ja koodiriveistä. Tämä integroinnin kaaos edellyttää menetelmää, joka määrittää integraation koko ohjelman ja ohjelman määrittävän koodin välillä.
Useimmat ohjelmistokehitysmenetelmät keskittyvät nykyään viestintään ja yksityiskohtien kehittämisprosessiin. Tämä lähestymistapa luo läpinäkyvyyden korkean tason johdon toiveiden ja kehitysryhmän ymmärryksen välillä asioista ja prioriteeteista. Kaaosmalli määrittelee tarvittavan alemman tulkinnan tason ja yrittää käsitellä ohjelmistokehitystä lineaarisesta ongelmanratkaisuprosessista, joka on olennaista kaikessa ohjelmistokehityksessä.
Ketterät kehykset edellyttävät asiakkaiden asettavan liiketoiminnan toiminnallisuuden etusijalle. Kaaosmalli pyrkii ratkaisemaan tärkeimmät ongelmat ensin ylätason ohjelmasta alimman tason koodin luomiseen. Tämä ohjelmistosovelluksen kokonaisnäkymä ohjelmasta korostaa kriittistä tarvetta sisällyttää yksittäinen kooditason suunnittelu, joka on suoritettava ohjelmatason vaatimusten täyttämiseksi.
Tämä malli vastaa kehitystyön humanistista puolta. Kehitystiimi koostuu henkilöistä, joiden on suunniteltava ja konfiguroitava moduulit ohjelmistosovelluksessa. Jokaisen tiimin jäsenen on tehtävä koodissa kriittisiä päätöksiä, jotka voivat vaikuttaa koko ohjelmaan. Kaaosmalli vastaa tiimin jäsenten välisestä vuorovaikutuksesta koodausmuutoksia tehtäessä.
Lineaarinen ongelmanratkaisusilmukka olettaa, että kehitystiimin on oltava kommunikoiva tiimin kanssa ja varmistettava, että oikea tekniikka toteutetaan. Tämä lähestymistapa rajoittaa ratkaisun liiallisen suunnittelun riskiä. Ohjelmistokehittäjät, jotka käyttävät kaaosmallia, kehittävät lineaarisen ongelmanratkaisusilmukan ja alikomponentteja sisältäviä tuotteita monimutkaisten ohjelmistojen luomiseen.