Mjukvaruarkitektur
Mjukvaruarkitektur handlar om hur ett mjukvarusystem skall byggas upp. Man håller sig vid arkitekturdesign på en mer abstrakt nivå än vid mjukvarudesign. Vid arkitekturdesign så bryter man ner ett systems funktionalitet i en mängd moduler där varje modul fokuseras på att tillhandahålla en viss typ av funktionalitet. Därefter bygger man upp en lösnig där de olika modulerna sammarbetar för att lösa systemets uppgift. I arkitekturen ingår även hur modulerna interagerar med varandra samt i viss mån även hur interaktion sker inom modulerna.Vid mjukvaruutveckling så utgår man från en mängd krav som samlats in från systemets beställare. Kraven kan grovt delas upp i två kategorier, funktionella och ickefunktionella krav. De funktionella kraven är krav som beskriver vad systemet skall göra (rita en kub på skärmen) medan de ickefunktionella kraven beskriver mer abstrakta krav på systemet (det skall vara lätt att byta ut kuben mot ett klot). Andra ickefunktionella krav är till exempel prestanda, flexibilitet och utbyggbarhet.
När ett systems arkitektur designas så gör man först en arkitektur som uppfyller alla de funktionella krav som ställs på systemet. Därefter så utvärderar man denna design mot de ickefunktionella kraven för att se om arkitekturen klarar av att uppfylla dessa. Om man redan på arkitekturnivå kan säga att ett system kommer att misslyckas med att uppfylla t.ex de prestandakrav som ställs på det så är det ju inte mycket mening att fortsätta dess utveckling. Arkitekturen måste då anpassas så att de krav som ställs blir uppfyllda.
Om man tittar på hur ett system konkretiseras så kan man se följande skala:
Abstrakt | Arkitektur || Objektorienterad design || Kod Konkret
Systemet börjar sin utveckling på arkitekturnivå och slutar i en kodmassa som (om design och implementation gjorts korrekt) återspeglar arkitekturen. Givetvis så är inte arkitekturen skriven i sten utan kan modifieras under utvecklingens gång, viktigt att tänka på är dock att ändringar i arkitekturen efter det att kod har börjat skrivas är ett mycket dyrt och svårt företag i ett lite större system.
Nedbrytningen i moduler påminner mycket om objektorienterad design men det är viktigt att inte blanda ihopa de båda. Vid objektorienterad design så är man betydligt mer konkret än vid arkitekturdesign, man definierar variabler och metoder som direkt återspeglas i koden. Ett vanligt nybörjarfel är att man ät för konkret vid designen av arkitekturen och på så sätt blandar oo design och arkitektur.
Artikeln skriven 2009-01-21 av Learning4sharing
Kategorier för Mjukvaruarkitektur
dålig översättning(1)Intresserad av fler artiklar?
Hjalmar SöderbergHundra Reklambyrå
Ritsa
Open Content Alliance
Bungie
Halo
Metanol
Miranda Otto
Internet 5