Systemdesign

 
 
När ett nytt system ska skapas finns det många fallgropar. För att undvika några är det viktigt att se till att det finns tid avsatt för att skapa sig en idé av hur lösningen ska se ut på ett tidigt stadium. Det är viktigt att säkerställa rätt kompetens samt veta vad syftet med systemet är. Det är nödvändigt att lämna utrymme i planen för att såväl krav som lösning kan behöva justeras under resans gång. Det finns inte svar på alla de frågor som kan komma att ha betydelse för hur lösningen ska se ut.

Genom att hålla en god design i systemet läggs grunden till ett skalbart system. Det ger möjlighet till att underhålla och vidareutveckla där förändringar inte innebär omdesign utan det blir lätt att lägga till eller förändra delar i system arkitekturen.

Varför behövs systemdesign och systemarkitektur och hur vet man när ett system är väl designat?

Att avgöra vad som är bra design är en svår avvägning. Det beror mycket på den unika situationen. Ibland får designkrav stå tillbaka till förmån för andra krav, till exempel snabb leverans eller resursbrist. Det blir dock tydligt att det lönar sig att satsa resurser och tid på att tänka till innan arbetet börjar när man ser vad ett dåligt eller inte alls designat system kan orsaka för problem*:

  • Systemet blir svårt att förändra på grund av för hårda kopplingar genom beroenden.
  • Förändringar på ett ställe i koden får andra delar av koden att fallera.
  • Svårt att bryta ut kod till en återanvändbar modul.
  • Svårigheter att följa befintlig design utan att göra avsteg från den vid vidareutveckling.
  • Överdesignade system med mer design än systemet kräver.
  • Kodduplicering i stället för en abstraherad och delad kodbas.
  • Svårigheter med att förstå den grundläggande designen.

När vi pratar om design av system menar vi den process som syftar till att skapa en gemensam bild som visualiserar idén om hur lösningen på ett specifikt problem ska genomföras. Alla utvecklare stöter mer eller mindre dagligen på systemdesignfrågor. Där kommer utvecklarens kreativa problemlösningsförmåga väl till pass när det gäller att hitta och implementera en lösning för det specifika problem som man står inför. Varje situation och därmed problem är unik. För att hitta en lösning krävs ett unikt kunnande - ett kunnande baserad på stor erfarenhet. Vi vill våga påstå att lösningar inte alltid är helt och hållet unika, men de kan behöva anpassas för en unik situation.

*)Robert C. Martin, 2003, ”Agile Software Development, Principles, Patterns, and Practices”
 

Kontaktperson

 
Oscar Svensson
Business Manager
Telefon+46 8 5229 5716
e-postoscar.svensson@ramboll-informatik.se
Websitewww.ramboll-informatik.se
Application managementBusiness IntelligenceIndustriella lösningarIT-arkitekturIT-stöd i vårdenProjektledningSystemutvecklingVerksamhetsoptimering
© Ramböll Informatik AB  -  www.ramboll-informatik.se  -  tryckt 
© Ramböll Informatik AB    Org. nr. 5563160059       Sitemap    Kontakt