Utvecklingen av mjukvaruarkitektur
Vi vet alla vad “vanlig” arkitektur är – en designmetod och praktiska färdigheter som används för att bygga vackra och stabila byggnader för vissa att arbeta och bo i och andra att beundra. Men vad är mjukvaruarkitektur, och hur har den förändrats under decennierna för att nå de former den har idag? Mjukvaruarkitektur är den grundläggande organisationen av ett system med alla dess individuella komponenter och hur dessa förhåller sig till varandra för att följa systemets logiska kärnstruktur.
Från min erfarenhet av att arbeta i ett skräddarsytt mjukvaruutvecklingsföretag med erfarenhet av att utveckla lösningar för branscher som sjukvård, bank och försäkring, har jag lärt mig att en stabil men flexibel arkitektur spelar en central roll i att bygga mjukvaruprojekt. Även om moderna tillvägagångssätt tillåter senare förändringar i vissa arkitekturmönster, är det avgörande att fatta rätt beslut i förväg eftersom lyhördheten och anpassningsförmågan hos alla nya programvaruprojekt kommer att återspeglas i dess interna infrastruktur. Åtminstone typen av arkitektur kan väljas innan projektet påbörjas efter att affärsmålen har diskuterats.
Syftet med all genomtänkt arkitekturdesign är att hjälpa till att underhålla hela mjukvaran enkelt, vara utbyggbar och relevant i det långa loppet även om nya funktioner och strukturer måste läggas till i efterhand. Ur ett affärsperspektiv måste bra arkitekturer vara skalbara och lättbegripliga för företagarna, vilket ofta beror på kommunikationsförmågan hos de utvecklare som är involverade i projektet och det utvecklingsramverk de använder för processen. Det är därför det är viktigt för företagsledare att lära känna sina tekniska partners och känna sig bekväma att arbeta med dem eftersom detta är avgörande för projektets framgång.
Innehållsförteckning
2. Andra perioden: Etablering (1990-2000) Mjukvaruarkitektur blev officiellt en integrerad del av mjukvaruteknik på 1990-talet när ytterligare en banbrytande artikel med syftet att “bygga grunden för mjukvaruarkitektur” kom ut. I Foundations for the Study of Software Architecture kommer författarna E.Perry och A. Wolf ner till en formel för att beskriva essensen: mjukvaruarkitektur = designelement, form och logik.
I mitten av 90-talet publicerade Software Engineering Institute (SEI) i Pittsburgh en annan viktig artikel ägnad åt arkitektur – Software Architecture Analysis Method. Konceptet behandlade frågor som bristen på ett enhetligt språk som beskriver arkitekturer och att förstå arkitektur som en del av den organisatoriska livscykeln, vilket är väsentligt idag. Programvaruegenskaper som underhållbarhet, återanvändbarhet, modularitet och portabilitet förblir mjukvaruarkitekters kärntekniska ansvar.
1996 var året då Mönsterorienterad mjukvaruarkitektur publicerades, som täckte flera abstraktionsnivåer, arkitektoniska mönster på medelhög till hög nivå, t.ex. flerskiktsdesign, kedja-av-ansvar beteendedesign eller fasadarkitektur i objektorienterad programmering. Många stora företag började visa intresse för att implementera en återanvändbar och flexibel mjukvaruarkitektur enligt deras affärsbehov.
3. Tredje perioden: (2000- Idag) Vi kan observera den gradvisa utvecklingen av mjukvaruarkitekturprinciper och grundläggande koncept som äger rum under decennierna. De mest använda typerna relaterar till de senaste trenderna inom mjukvaruutvecklingsbranschen som molnberäkning, utvecklingsmetoder med låg kod eller ingen kod, reaktiv programmering, Internet of Things (IoT) etc.
Tjänsteorienterad arkitektur (SOA) är särskilt intressant eftersom de är användbara för olika tillvägagångssätt för mobilappsutveckling. Till exempel är mikrotjänstarkitektur löst kopplad och samverkande tjänster som kommunicerar med varandra effektivt. Några av de enorma fördelarna med sådan mjukvaruarkitektur är de snabba och frekventa utvecklingsstadierna och oberoende driftsättning av enskilda tjänster inom systemet, vilket resulterar i förbättrad testbarhet och underhåll.
Agila metoder som Scrum eller Kanban har för närvarande en betydande inverkan på hela mjukvaruutvecklingsprocessen, inklusive arkitekturstil. Det kontrasterande tillvägagångssättet är Big Design Up Front (BDUF) som kräver tydligt definierade projektmål och omfattning innan utvecklingsprocessen. BDUF förlitar sig på förutsägelser och brukade vara ett relevant tillvägagångssätt under de senaste decennierna men blir nu långsamt föråldrat. Men olika agila metoder har etablerat sig som ett mer attraktivt och relevant tillvägagångssätt under de senaste åren på grund av deras höga anpassningsförmåga till förändrade affärskrav, vilket blir allt viktigare i dagens osäkra post-pandemiska ekonomi.
Aleksandrina är en innehållsskapare på Dreamix, ett företag för anpassad mjukvaruutveckling, och är angelägen om innovativa tekniska lösningar med en positiv inverkan på vår värld. Hennes lärarbakgrund, blandat med intressen för psykologi, driver henne att dela kunskap. Hon är en ivrig läsare och entusiastisk bloggare som alltid letar efter nästa inspiration.







