TPL_YOOTHEME_SKIP_TO_MAIN_CONTENT

Funktionell arkitektur och krav: affärsmodell blir system

Funktionell arkitektur beskriver vilka funktioner som behövs för att stödja en affärsprocess. I metoden här har du detaljerat den en applikationsprocesses. Dessa processer ska du nyttja för att med AI skapa en funktionell arkitektur. 

Funktionell arkitektur är bron mellan affär och teknisk design. Funktioer och funktionella krav hittas i affärsprocesser och applikationsprocesserna som berättar hur verksamheten stödjs. Det är verksamheten och affärsprocesserna som ska stödjas. Nyttan med funktionella arkitektur är att fånga verksamhetens krav som en bro mot de systemen ni vill realisera.

Värdeströmmern blir krav

Funktionell arkitektur definierar vilka funktioner som krävs för att stödja en affärsprocess. Den utgör ett bryggande steg mellan affärsbehov och teknisk systemdesign.

Den här artikeln hur du tar fram funktionell arkitektur, funktionella krav och hur artificiell intelligens (AI) kan användas i dessa processer. Fokus ligger på en metodik för att omvandla affärs- och applikationsprocesser till konkreta arkitekturer och krav.

Funktionell arkitektur

Vad är funktionell arkitektur

Funktionell arkitektur används inom ISO/IEC 15288-för att validera att systemets beteende är komplett och håller ihop innan logisk och teknisk arkitektur fastställs.

Funktionella arkitekturen en vy som definierar vad systemet ska göra för att uppfylla, krav från intressenter snarare än hur det fysiskt ska implementeras.

Denna vy beskriver systemets funktionella element och deras interaktioner genom att kartlägga hur data flyter mellan och transformeras i funktionerna.

Funktionella krav, krav som specificerar funktioner och informationarkitektur

De funktionella kraven som de data som definierar systemets funktionella arkitektur. Den funktionella arkitekturen svarar på dessa krav genom att modellera vad systemet ska göra i form av abstrakta funktioner och dataflöden, helt oberoende av teknisk implementation.

En central aktivitet i ISO/IEC 15288 är allokeringen, där varje funktionellt krav mappas mot specifika element för att garantera att systemdesignen är komplett och uppfyller intressenternas behov. Struktur möjliggör full spårbarhet, vilket validerar att rätt problem löses.

Metod, process blir funkionell arkitektur

Värdeströmmern blir funktioner krav

Process översätts till funktionell arkitektur och funktionella krav

Funktionell arkitektur skapas i tre huvudsteg:

  • AI-generering (Steg 1–2): Applikationsprocessen analyseras av AI och ett första utkast på nödändiga funktioner och funktionella kravskapas.
  • Analys och Fastställande (Steg 3–4): Det AI-genererade underlaget analyseras och korrigeras
  • Säkerhet (Steg 5): Analys av fastställda funktioner och krav ger vilka data som måste hateras.

Sammanfattningsvis går du från en processbeskrivning via AI-stöd till en formell arkitektur och säkerhet.

Utgångspunkten, processerna

Affärsprocessen och den stödjande applikationsprocessen

Företaget gipsat.nu är vårdens uber. Det här skapar deras affärsmodell:
Du har halkat och slagit dig, ambulans behövs inte. Vi,
Gipsat.nu, utvecklar och driver en tjänst som förmedlar och planerar vård och transporttjänster. En knapptryckning i vår app tar dig från skadad på olycksplasten till gipsad i tv-soffan.

Vad gipsat.nu gör är att förmedla taxi, detta så att den skadade får hjäp med hela sin transport på ett optimalt sätt.

Applikationsprocessen, den som system aka realisera

Hantera den skadades larm

 Processen startar med larmningsfunktionen: Den skadade som halkat och slagit sig trycker på larmet i sin app i telefonen, ett larm går då till gipsat.nu som innehåller var den skadade befinner sig . Detta larm förmedlar gpsat.nu som en transportbeställning av till taxibilar som kan hjälpa den skadade, transportbeställningen innehåller var den skadade befinner sig och det sjukhus som taxin ska köra den skadade till, val av sjukhus baseras på vilket av de närmaste sjukhusen som har kortast kö för att få vård. Därefter skickas information till den skadades anhörige med ett sms att den skadade slagit sig men att denne nu är omhändertagen av gipsat.nubbb

Stödja transport till sjukvård

Nästa steg är transport: En taxibil väljer att ta larmet och skjutsa den skadade, detta konfirmeras till den skadade, dessutom uppdateras den anhörige. I taxin som tagit larmet skickas adressen och koordinaterna för att hämta upp den skadade samt adressen för sjukhuset till google maps. Google maps skapar en route för att hämta upp den skadade och köra denne till sjukhuset och guidar taxichauffören på sitt uppdrag. En uppdaterig skickas till den anhörige. När chauffören plockat upp den skadade skickas information till sjukhuset att den skadade är på väg tillsammans med ett dikterat meddelande från taxichauffören om vilka skador den skadade har. Även förväntad ankomst till sjukhuset meddelas. Sjukhuset skriver in den skadade. När taxin är framme hjälper taxin den skadade och lämnar över denne till akuten, där den skadade redan är inskriven. Taxichauffören avrapporterar sin körning till gipsat.nu, rapporten innehåller information för journalföring. Gipsat.nu skickar en transportrapport till sjukhuset för journalföring av transporten samt en rapport till taxi för debitering av transporten. Den anhörige meddelas att den skadade är på sjukhuset.

Stödja vård

Vård. Den skadade får vård hos sjukhuset. Vårdpersonalen journalförs transporten och sjukhusets vård. När den skadade skrivs ut skickas detta till gipsat.nu samt tidpunkten för återbesök för patienten. Gipsat.nu lägger ut en transportbeställning av till taxibilar för att köra den skadade, från sjukhuset och hem. transportbeställningen innehåller sjukhuset som den skadade befinner sig på och den skadades hemadress. Dessutom skapas en körning för när den skadade ska köras till återbesök som skickas som ytterligare en framtida transportbeställning till taxi.

Stödja hemtransport

Hemtransport: En taxibil väljer att ta hemtransporten och skjutsa den skadade från sjukhuset och hem. Detta konfirmeras till den skadade och den anhörige uppdateras att den anhörige är färdigvårdad. I taxin som tagit larmet skickas adressen till sjukhuset för att hämta upp den skadade samt hemadressen för den skadade till google maps. Google maps skapar en route för att hämta upp den skadade och köra denne till hem och guidar taxichauffören på sitt uppdrag. En uppdaterig skickas till den anhörige. När taxin är hemma hos den skadade hjälper taxin den skadade in i sitt hem. Taxichauffören avrapporterar sin körning till gipsat.nu,  Gipsat.nu skickar en rapport till taxi för debitering av transporten. Den anhörige meddelas att den skadade är hemma.

Stödja transport till återbesök

Återbesökstransport: En taxibil väljer att ta transporten för återbesöket och skjutsa den skadade från hemmet till sjukhuset. I taxin som tagit larmet skickas adressen till den skadades hem och adressen för sjukhuset som den sjukhuset som den skadade ska till till google maps. Google maps skapar en route för att hämta upp den skadade hemma och köra denne sjukhuset och guidar taxichauffören på sitt uppdrag. När taxin är på sjukhuset hjälper taxin den skadade in. Taxichauffören avrapporterar sin körning till gipsat.nu,  Gipsat.nu skickar en rapport till taxi för debitering av transporten.

Stödja transport hem från återbesök

Hemtransport: När den skadade skrivs ut skickas detta till gipsat.nu. Gipsat.nu lägger ut en transportbeställning till taxibilar för att köra den skadade. En taxibil väljer att ta hemtransporten och skjutsa den skadade från sjukhuset och hem. Detta konfirmeras till den skadade. I taxin som tagit larmet skickas adressen till sjukhuset för att hämta upp den skadade samt hemadressen för den skadade till google maps. Google maps skapar en route för att hämta upp den skadade och köra denne till hem och guidar taxichauffören på sitt uppdrag. När taxin är hemma hos den skadade hjälper taxin den skadade in i sitt hem. Taxichauffören avrapporterar sin körning till gipsat.nu,  Gipsat.nu skickar en rapport till taxi för debitering av transporten.

Så här ser processen ut för Gigsat.nu

  1. Larm: Den som halkat trycker på larmet. Gpsat.nu ser till en taxibil hjälper den skadade till sjukhuset
  2. Sjuktransport: En taxibil väljer att ta larmet och skjutsa den skadade till ett sjukhus. 
  3. Vård. Den skadade får vård, taxi hem beställs.
  4. Hemtransport: En taxi skjutsar den skadade hem. 
  5. Återbesök: En taxi skjutsar den skadade till sjukhuset. 
  6. Den skadade får vård och taxi hem beställs.
  7. Hemtransport: skjutsar den skadade hem. 

1. Process blir Funktionell AI-arkitektur

1.1. Fösta steget, hitta funktioner i processen

Funktionell arkitektur AI-framtoagen

Första steget är funktionella analys av processen. Här tar du först processberättättelsen ovan, affärsprocessen och applikationsprocessen, och ber AI den att skapa en funktionell arkitektur. Efter en del modellerande så får du en spegling av processen mot  funktionell arkitektur.

arkitektur med de funktionella kraven relaterade till fnktionerna i den funktionella arkitekturen

Detta är en bra start som du sedan behöver analysera

Så låter du AI skapa en funktionell arkitektur från en applikationsprocess

Att använda artificiell intelligens (AI) för att generera en funktionell arkitektur från en applikationsprocess är en framväxande och kraftfull metod som kan accelerera utvecklingsprocessen och förbättra designkvaliteten. Kärnan i denna process är dock att förse AI:n med en exceptionellt välbeskriven applikationsprocess. Utan en detaljerad, tydlig och strukturerad indata blir resultatet i bästa fall mediokert och i värsta fall oanvändbart. Principen "skräp in, skräp ut" är här mer relevant än någonsin.

Här är en utförlig guide till hur processen fungerar, med särskilt fokus på hur applikationsprocessen måste beskrivas.

Steg 1: Grunden – Den Välbeskrivna Applikationsprocessen

AI-modellen, oftast en avancerad språkmodell (LLM) eller en specialiserad modell för källkods- och arkitektur-generering, har ingen egen förståelse för din affärslogik eller dina specifika behov. Den är helt beroende av den information den matas med. En välbeskriven applikationsprocess måste därför vara uttömmande och strukturerad.

Nyckelkomponenter i en välbeskriven applikationsprocess:

  • Systemets Mål och Syfte: Börja med en koncis sammanfattning av vad applikationen ska göra och vilket problem den löser. Detta ger AI:n en övergripande kontext.

    • Exempel: "Systemet är en e-handelsplattform för försäljning av skräddarsydda möbler. Huvudsyftet är att låta kunder designa en produkt, få ett pris i realtid och lägga en beställning."

  • Funktionella Krav: Beskriv i detalj vad systemet ska göra. Använd gärna användarberättelser (user stories) för att göra kraven tydliga och kontextuella.

    • Användarroller: Definiera de olika typerna av användare (t.ex. kund, administratör, lagerarbetare).

    • Användarberättelser: För varje roll, beskriv deras interaktioner med systemet.

      • Exempel (Kund): "Som kund vill jag kunna välja en möbeltyp, anpassa dess dimensioner, material och färg, så att jag kan skapa en unik produkt."

      • Exempel (Administratör): "Som administratör vill jag kunna lägga till nya materialval och uppdatera deras priser, så att produktkonfiguratorn är aktuell."

  • Icke-funktionella Krav (Kvalitetsattribut): Detta är ett kritiskt område där många misslyckas. AI:n måste få veta hur systemet ska fungera. Dessa krav styr valet av arkitekturmönster och teknologier.

    • Prestanda: "Systemet ska kunna hantera 1000 samtidiga användare i produktkonfiguratorn med en svarstid på under 500 ms."

    • Skalbarhet: "Arkitekturen måste vara skalbar för att kunna hantera en 50-procentig ökning av användare årsvis utan att kräva en fullständig omskrivning. Använd molnbaserade, serverlösa komponenter där det är möjligt."

    • Säkerhet: "All användardata, särskilt betalningsinformation, måste krypteras både under överföring och i vila. Systemet måste efterleva GDPR."

    • Tillgänglighet: "Systemet ska ha en upptid på 99,9 %."

    • Underhållbarhet: "Arkitekturen ska vara modulär (t.ex. mikrotjänster) för att teamen ska kunna arbeta oberoende av varandra."

  • Datamodell: Beskriv de centrala dataentiteterna och deras relationer. Detta behöver inte vara ett komplett ER-diagram, men en tydlig beskrivning är nödvändig.

    • Exempel: "Vi har Kunder, Produkter, Beställningar, Material och Anpassningar. En Beställning är kopplad till en Kund och kan innehålla flera anpassade Produkter. Varje Anpassning är kopplad till ett specifikt Material."

  • Tekniska Begränsningar och Preferenser: Ange eventuella befintliga tekniska ramverk, plattformar eller programmeringsspråk som måste användas.

    • Exempel: "Systemet ska byggas på AWS-plattformen. Backend-tjänster ska skrivas i Python. Frontend ska använda React."

  • Användningsscenarier och Arbetsflöden: Beskriv steg-för-steg hur en användare rör sig genom systemet för att utföra en central uppgift. Detta hjälper AI:n att förstå dataflöden och interaktioner mellan olika komponenter.

    • Exempel (Beställningsprocess):

      1. "Kunden navigerar till produktsidan."

      2. "Kunden startar konfiguratorn."

      3. "För varje anpassning (t.ex. val av träslag) anropas en prissättningstjänst för att uppdatera totalpriset."

      4. "När kunden är nöjd, läggs produkten i varukorgen."

      5. "Kunden går till kassan, fyller i leveransinformation och betalar via en extern betalningsgateway (t.ex. Stripe)."

      6. "Efter lyckad betalning skapas en beställning i systemet och ett bekräftelsemail skickas till kunden."

Steg 2: Interaktionen med AI – Prompt Engineering

När du har din välbeskrivna applikationsprocess är nästa steg att omvandla den till en eller flera prompter för AI-modellen. Detta kallas "Prompt Engineering" och är konsten att formulera instruktioner som ger önskat resultat.

Struktur för en effektiv prompt:

  1. Agera som en roll: "Agera som en erfaren systemarkitekt."

  2. Ge Kontext: Klistra in hela den välbeskrivna applikationsprocessen.

  3. Ge en specifik uppgift: Var tydlig med vad du vill att AI:n ska generera.

    • "Baserat på ovanstående krav, föreslå en funktionell arkitektur."

    • "Beskriv de huvudsakliga komponenterna (t.ex. mikrotjänster) och deras ansvarsområden."

    • "Illustrera dataflödet för beställningsprocessen."

    • "Föreslå en lämplig teknikstack för varje komponent."

    • "Generera ett arkitekturdiagram i PlantUML- eller Mermaid-format."

Iterativ process: Sällan blir resultatet perfekt på första försöket. Processen är iterativ:

  • Generera ett första utkast: Kör din initiala prompt.

  • Analysera och förfina: Granska det genererade förslaget. Kanske föreslog AI:n en monolitiskt arkitektur när du ville ha mikrotjänster.

  • Ställ följdfrågor: Justera din prompt eller ställ förtydligande frågor. "Det där var ett bra förslag, men kan du omarbeta det till en mikrotjänstarkitektur? Vilka specifika mikrotjänster skulle du rekommendera och vad skulle deras API:er innehålla?"

Steg 3: Resultatet – Den AI-genererade Funktionella Arkitekturen

En framgångsrik AI-generering, baserad på en solid beskrivning, kan producera följande artefakter:

  • Arkitekturöversikt: En beskrivning av det valda arkitekturmönstret (t.ex. mikrotjänster, händelsedriven arkitektur, serverless) och varför det passar kraven.

  • Komponentbeskrivningar: En lista över de olika funktionella komponenterna eller tjänsterna och deras ansvarsområden.

    • Exempel från möbel-appen:

      • Produktkonfigurator-tjänst: Hanterar logiken för att anpassa produkter.

      • Prissättnings-tjänst: Beräknar priser baserat på valda material och dimensioner.

      • Användar-tjänst: Hanterar kundregistrering och autentisering.

      • Beställnings-tjänst: Hanterar skapande och spårning av beställningar.

      • Betalnings-tjänst: Integrerar med externa betalningsgateways.

  • Teknikstack: Förslag på databaser, meddelandeköer, API-gateways och andra teknologier.

  • Diagramkod: Kod i textformat (t.ex. PlantUML, Mermaid) som kan klistras in i en editor för att visualisera arkitekturen. Detta är extremt kraftfullt för att snabbt kunna skapa och dela diagram.

Sammanfattning: Människa och Maskin i Samverkan

Processen att låta en AI skapa en funktionell arkitektur är inte en helautomatisk "tryck-på-knappen"-lösning. Det är en symbios mellan en mänsklig expert och en kraftfull AI.

  • Människans roll: Att djupt förstå affärsbehoven och kunna formulera dessa i en extremt detaljerad och strukturerad specifikation. Att sedan agera som granskare, ställa kritiska frågor och guida AI:n mot ett optimalt resultat.

  • AI:ns roll: Att snabbt bearbeta den stora mängden information, identifiera mönster, föreslå standardiserade och beprövade arkitekturlösningar och generera de tekniska artefakterna (text och diagram).

Genom att investera tid och omsorg i att skapa en högkvalitativ beskrivning av applikationsprocessen kan man utnyttja AI:ns fulla potential för att snabbt och effektivt skapa robusta och välfungerande funktionella arkitekturer.

1.2. Koppla processens information till funktionell AI-arkitektur

I det här steget kopplar du alla informationsobekt som flödar i processen till flöden i den AI-framtagna funktionella arkitekturen

1.3. Säkra att allt är med

I nästa steg tar du bort processen men har kvar alla informationsobjekt. Flytta in dem intill de pilar du associerat informationsobjekten till. De du inte asocierat behåller du till analysen av den AI-framtagna arkitekturen

2. Process till Funktionella krav

2.1. Säkra att allt är med

Nästa steg är att med i få de funktionella kraven ur processen. Lägg in processbeskrivningen i prompten och be om de funktionella kraven. När du fått kraven lägger du in dem i modellen- 

Kraven i bilden är funktionsbeskrivningar av aktiviteterna i applikationsprocessen: Till exempel:

  • Processsteget "Skicka larm om vårdbehov" motsvarar FR01 och FR03.
  • Processsteget "Välja körning från hem till sjukhus" motsvarar FR07 och FR15
Krav mot gipsat.nu

A

Absolut, här är en sammanställning av de funktionella kraven (FR) som syns på ”post-it-lapparna” i den första bilden. Dessa krav är numrerade FR01 till FR34 och verkar syfta till att digitalisera och automatisera processen för akutvårdstransport (troligen via tjänsten "Gipsat.nu" som nämns).

Jag har grupperat dem logiskt utifrån processflödet (från larm till avslutad vård/hemtransport) för att göra det enklare att läsa:

1. Larm och Positionering

Dessa krav rör det inledande skedet när användaren begär hjälp.

  • FR01: Initiera larm

  • FR02: Skicka platsdata

  • FR12: Hantera misslyckad platsbestämning

  • FR03: Larmnotifikation till Gipsat.nu

  • FR11: Återkoppling till användare vid larm

2. Val av sjukhus och Bokning

Systemet ska intelligenta val baserat på data (AI-krav) och skapa en order.

  • FR05: Identifiera närliggande sjukhus

  • FR06: Hämta köinformation (t.ex. väntetider på akuten)

  • FR07: Välja optimalt sjukhus (troligen baserat på närhet + kötid)

  • FR04: Generera transportbeställning

  • FR08: Inkludera sjukhusinformation i beställning

  • FR26: Inkludera sjukhusdestination

3. Kommunikation med Anhöriga

Automatiska uppdateringar till patientens närstående genom hela processen.

  • FR09: Skicka anhörig-SMS

  • FR10: Inkludera relevant information i SMS

  • FR19: Skicka uppdatering till anhörig

  • FR30: Uppdatera anhörig om ankomst till sjukhus

  • FR32: Uppdatera anhörig om färdigvård och hemtransport

4. Taxihantering och Transport

Kommunikationen mellan systemet och taxibolaget/chauffören.

  • FR14: Mottaga transportbeställning

  • FR15: Distribuerar beställning till tillgängliga taxibilar

  • FR16: Taxichaufför kan acceptera/avböja

  • FR17: Bekräfta accepterad transport

  • FR18: Skicka bekräftelse till skadad/patient

  • FR20: Tillhandahålla navigationsinformation (till chauffören)

  • FR21: Rapportering av påbörjad transport

  • FR22: Rapportering av avslutad transport

5. Integration med Sjukhus

Information som skickas till vårdgivaren för att förbereda mottagandet.

  • FR27: Skicka förhandsinformation till sjukhus

  • FR28: Vidarebefordra information om skador

  • FR29: Meddela beräknad ankomsttid till sjukhus

  • FR31: Inkludera information för journalföring i rapport till sjukhus

6. Administration, Loggning och Betalning

Krav för att hantera "baksidan" av systemet.

  • FR13: Loggning av larmhändelser

  • FR23: Registrera transportinformation

  • FR24: Generera transportrapport

  • FR25: Transportrapport för taxidebitering

7. Återbesök och Uppföljning

Hantering av transport efter vårdbesöket eller för framtida behov.

  • FR33: Beställa tp (transport) återbesök

  • FR34: Bevaka behov av transport

2.2.Kraven länkade till funktionerna.

Nästa steg är att länka kraven mot funktionerna

Process blir funktionella krav

Att använda AI för att skapa en funktionell arkitektur från en applikationsprocess är en modern och effektiv metod. Processens framgång hänger dock helt på en avgörande faktor: kvaliteten på indatan. En AI kan inte gissa sig till dina behov, den kan bara tolka den information den får.

Principen är enkel: Ju mer detaljerad och välstrukturerad beskrivningen av din applikationsprocess är, desto mer träffsäker och användbar blir den arkitektur som AI:n genererar.

Här är en steg-för-steg-guide för hur du gör detta i praktiken.

Steg 1: Skapa en Exceptionellt Välbeskriven Applikationsprocess

Detta är det viktigaste steget och lägger hela grunden. Se det som att du skriver en kravspecifikation för AI:n. Den måste innehålla följande delar:

1. Mål och Syfte: Börja med en kort, övergripande sammanfattning. Vad är applikationens huvudsyfte? Vilket problem löser den?

  • Exempel: "Systemet är en mobilapp för bokning av tvättstugor i bostadsrättsföreningar. Målet är att förenkla bokningsprocessen, minska dubbelbokningar och ge medlemmar notiser."

2. Användarroller och Funktionella Krav: Definiera vem som ska använda systemet och vad de ska kunna göra. Användarberättelser (User Stories) är ett utmärkt format för detta.

  • Roller: Boende, Administratör (styrelsen).

  • Funktionella krav (exempel):

    • "Som boende vill jag kunna se lediga tider i en kalender och boka en tid."

    • "Som boende vill jag få en påminnelse via en push-notis 24 timmar innan min bokade tid."

    • "Som administratör vill jag kunna blockera tider för underhåll."

    • "Som administratör vill jag kunna se statistik över bokningsgraden."

3. Icke-Funktionella Krav (Kvalitetskrav): Detta är kritiskt och styr många av arkitekturvalen. Beskriv hur systemet ska fungera.

  • Prestanda: "Appen måste ladda kalendervyn på under 1 sekund, även med 500 användare."

  • Skalbarhet: "Systemet ska designas för att kunna hantera 100 föreningar utan att arkitekturen behöver göras om."

  • Säkerhet: "Endast boende i en förening ska kunna se och boka tider i sin egen förenings kalender. Inloggning ska ske via BankID."

  • Tillgänglighet: "Tjänsten ska ha en upptid på 99.8%."

4. Dataflöden och Processer: Beskriv de viktigaste arbetsflödena steg-för-steg.

  • Exempel (Bokningsflöde):

    1. En boende loggar in i appen.

    2. Systemet verifierar användaren mot föreningens medlemsregister.

    3. Appen anropar en tjänst för att hämta alla bokningar för föreningens tvättstuga.

    4. Kalendern visas för användaren.

    5. Användaren väljer en ledig tid och klickar på "Boka".

    6. Systemet validerar att tiden fortfarande är ledig och sparar bokningen i databasen.

    7. En bekräftelse visas i appen och en push-notis schemaläggs.

5. Tekniska Ramar och Begränsningar: Om du har några specifika krav på teknik, plattform eller integrationer, måste AI:n veta det.

  • Exempel: "Systemet ska driftas på molnplattformen Azure. Backend ska skrivas i C#/.NET. Integration med BankID är ett krav."

Steg 2: Interagera med AI:n (Prompt Engineering)

När du har din detaljerade beskrivning är det dags att mata AI-modellen (som t.ex. Gemini, ChatGPT-4 eller liknande). Formulera en tydlig instruktion, en så kallad "prompt".

En bra prompt kan struktureras så här:

  1. Tilldela en roll: "Agera som en erfaren lösningsarkitekt."

  2. Ge kontext: Klistra in hela den välbeskrivna applikationsprocessen från Steg 1.

  3. Ge en specifik uppgift: Var extremt tydlig med vad du vill ha ut.

    • "Baserat på ovanstående kravspecifikation, föreslå en funktionell mikrotjänstarkitektur."

    • "Identifiera och namnge de olika tjänsterna och beskriv kort deras ansvarsområden."

    • "Föreslå en lämplig teknikstack (databaser, meddelandesystem, etc.) för denna arkitektur."

    • "Skapa ett diagram som visualiserar arkitekturen med hjälp av Mermaid-syntax."

Steg 3: Analysera och Iterera Resultatet

AI:n kommer att ge dig ett första utkast baserat på dina instruktioner. Förvänta dig inte ett perfekt resultat direkt. Processen är iterativ.

AI:n kan producera:

  • Val av arkitekturmönster: T.ex. "En mikrotjänstarkitektur är lämplig för att separera de olika delarna som användarhantering, bokning och notiser."

  • Definition av komponenter/tjänster:

    • Användartjänst: Hanterar inloggning och användarprofiler.

    • Bokningstjänst: Hanterar all logik för att skapa, visa och ta bort bokningar.

    • Notistjänst: Ansvarar för att skicka push-notiser och e-post.

    • Föreningstjänst: Hanterar information om föreningar och deras medlemmar.

  • Förslag på datalagring: "Använd en relationsdatabas (t.ex. PostgreSQL) för Bokningstjänsten och en dokumentdatabas (t.ex. MongoDB) för Föreningstjänsten."

  • Diagramkod (Mermaid/PlantUML): Text som du kan klistra in i en editor för att direkt få ett visuellt diagram över arkitekturen.

Din uppgift är nu att granska och förfina:

  • Är förslaget rimligt?

  • Missade AI:n något viktigt från dina icke-funktionella krav?

  • Ställ följdfrågor: "Det var ett bra förslag. Hur skulle kommunikationen mellan Bokningstjänsten och Notistjänsten fungera på ett tillförlitligt sätt?" eller "Kan du omarbeta förslaget för att använda en serverless-arkitektur istället för att minska driftskostnaderna?"

Sammanfattning

Att låta AI skapa en funktionell arkitektur är en kraftfull metod för att snabbt gå från idé till en konkret teknisk design. Det är inte en magisk process som ersätter mänsklig expertis, utan ett verktyg som förstärker den.

  • Människan sätter ramarna, definierar kraven och har den djupa domänkunskapen.

  • AI:n agerar som en blixtsnabb och kunnig arkitekt som kan generera standardiserade, mönsterbaserade lösningar och visualisera dem.

Genom att bemästra konsten att beskriva din applikationsprocess i detalj, kan du utnyttja AI för att producera högkvalitativa arkitekturförslag på en bråkdel av tiden det traditionellt skulle ta.

3. AI-arkitektur till slutlig arkitektur

3.1. Granska AI arrkitektur och rätt upp till fastsälld arkitektur

I nästa steg rensar du det funktionella arkitekturen du fick fram av analysen. Gör det först ur ett övergripande perspektiv

Funktionell Arkitektur för Gipsat.nu

I den funktionella arkitekturen finns funktionerna platsbestämning, larmhantering, transportledning, transportadmin, navigering, vårdstöd, statushantering skadad, avrapportering och kommunikation anhörig.

Funktionen platsbestämning håller ordning på var den skadade är, den levererar position funktionen larmhantering.

Funktionen larmhantering triggas av att den skadade trycker på larmknappen. Den ser då till att att larm skickas om behov av transport till sjukhus till funktionen transportledninng. Att larmet är mottaget skickas till funktionen statushantering skadad.

Funktionen transportledning tarm mot larmet och kalkylerrar vilket sjukhus den skadadade ska köras till baserat på sjukhusets kölängd ach avstånd. Därefter skickas en transportbeställning till de taxibilar som är närmast den skadade. När en taxi med funktionen transportadmin accepterat en transport och meddelat detta till funktionen transportledning meddelar Funktionen transportledning detta till alla andra taxibilar med Funktionen transportadmin. Att en taxi tagit transporten skickas till funktionen statushantering skadad. När taxin kommit fram till den skadade och plockat upp denne skickas inte längre taxistatus till funktionen statushantering skadad. Data för inskrivning skickas till funktionen vårdstöd samt en uppdaterad beräknad ankomsttid till sjukhus.

Funktionen transportadmin i taxin som tar transportbesällningen skickar att den accepterat körningen till Funktionen transportledning. den skickar körrouten till funktionen navigering. När Funktionen transportadmin erhåller beräknad ankomsttid till den skadade och till sjukhuset från funktionen navigering skickas ankomsttid till sjukhuset till funktionen vårdstöd och ankomsttid till den skadade till funktionen statushantering skadad. När den skadade är avlämnad skickas information om transporten fill funktionen avrapportering.

När funktionen navigering startat navigeringen skickar Funktionen navigering regelbundet beräknad ankomsttid till den skadade och till sjukhuset. När taxin ankommit till sjukhuset meddeklas transportadmin mom detta.

I funktionen avrapportering dikterar taxiföraren en rapport om körningen som skickas till funktionen vårdstöd. Funktionen avrapportering skickar äver en transportrapport till taxiföretaget och bokföring.

Funktionen vårdstöd kommunicerar ankomsttid, patientdata och journalunderlag till sjukhuset.

Skapa en förankrad funktionell arkitektur

Detta är det kritiska och absolut nödvändiga steget där ett tekniskt förslag omvandlas till en verklig, hållbar och värdeskapande lösning för just er organisation. Den AI-framtagna arkitekturen är en fantastisk accelerator och ett högkvalitativt första utkast, men den saknar kontext om er verksamhet.

Här är en steg-för-steg-process för hur du tar den AI-framtagna funktionella arkitekturen och förankrar den i din organisations policyer och referensarkitekturer.

Steg 1: Gapanalys – Validera mot Policy och Referensarkitekturer

Börja med att behandla AI-förslaget som ett externt konsultförslag. Ditt första jobb är att systematiskt granska det mot organisationens interna regelverk.

Hur du gör det:

  1. Samla in styrande dokument: Leta fram er IT-strategi, arkitekturprinciper, policy för molnanvändning, säkerhetspolicyer och eventuella formella referensarkitekturer. En referensarkitektur kan till exempel beskriva "standardmönstret för en mikrotjänst med API" hos er.

  2. Jämför teknikstacken:

    • AI-förslag: Föreslår PostgreSQL som databas och RabbitMQ för meddelanden.

    • Er policy/referensarkitektur: "För nya system rekommenderas Microsoft SQL Server som primär databas" och "Vi använder Azure Service Bus för asynkron kommunikation."

    • Åtgärd: Notera avvikelsen. Du måste antingen anpassa arkitekturen till SQL Server/Service Bus eller förbereda en motivering till varför PostgreSQL/RabbitMQ är ett bättre val i just detta fall.

  3. Granska säkerhetsaspekter:

    • AI-förslag: Föreslår en generisk "Användartjänst" för autentisering.

    • Er policy: "All användarautentisering för kundinriktade applikationer ska ske via vår centrala Identity and Access Management (IAM)-lösning (t.ex. Azure AD B2C eller en intern OpenID Connect-provider)."

    • Åtgärd: Ersätt den generiska användartjänsten i diagrammet med en integration mot er befintliga IAM-lösning.

  4. Kontrollera integrationsmönster:

    • AI-förslag: Visar en direkt-integration från en tjänst till en annan via ett REST API.

    • Er referensarkitektur: "All intern system-till-system-kommunikation ska gå via vår centrala API Gateway för att säkerställa enhetlig spårning, loggning och säkerhet."

    • Åtgärd: Rita om arkitekturen så att anropen flödar via API-gatewayen.

  5. Bedöm drift och övervakning:

    • AI-förslag: Nämns kanske inte alls.

    • Er policy: "Alla applikationer måste exponera hälsocheck-endpoints och skicka strukturerade loggar till vår centrala loggplattform (t.ex. Splunk eller Datadog)."

    • Åtgärd: Lägg till krav och komponenter för loggning och övervakning i arkitekturen.

Resultatet av detta steg är en "gaplista" – en lista över alla punkter där AI-förslaget avviker från er standard.

Steg 2: Förankring – Involvera Intressenter

Arkitektur är en teamsport. Nu när du har en teknisk bild och en gaplista är det dags att socialisera och förankra förslaget.

Vem du ska prata med:

  • Enterprise/Domänarkitekter: De har helikopterperspektivet och säkerställer att din lösning passar in i det större IT-landskapet och följer långsiktiga strategier. Presentera din gapanalys för dem.

  • Utvecklingsteamet: De som faktiskt ska bygga lösningen. Har de rätt kompetens för den föreslagna tekniken? Ser de några praktiska hinder? Deras input är ovärderlig för att säkerställa att arkitekturen är byggbar.

  • Säkerhetsansvarig (CISO/Security Architect): Gå igenom säkerhetsaspekterna. Validera att din tolkning av säkerhetspolicyn är korrekt.

  • Drift/Infrastruktur (Operations/DevOps): Kan de drifta och underhålla den föreslagna lösningen? Passar den in i befintliga CI/CD-pipelines och övervakningsverktyg?

  • Produktägare/Verksamheten: Förklara på en begriplig nivå hur arkitekturen stödjer de funktionella och icke-funktionella kraven (t.ex. "Genom att välja detta mönster säkerställer vi att systemet kan växa i framtiden utan stora kostnader.").

Målet med detta steg är att få feedback, identifiera ytterligare begränsningar och, viktigast av allt, skapa ett gemensamt ägarskap för arkitekturen.

Steg 3: Anpassning och Formalisering

Med insikterna från de två föregående stegen är det dags att skapa den slutgiltiga, förankrade arkitekturen.

  1. Uppdatera arkitekturen: Modifiera AI-förslaget baserat på din gapanalys och den feedback du fått. Byt ut generiska komponenter mot organisationens specifika tjänster och teknologier.

  2. Använd organisationens verktyg och mallar: Rita om diagrammen i det modelleringsverktyg som används hos er (t.ex. Sparx Enterprise Architect, Archi, Miro). Beskriv arkitekturen med hjälp av de dokumentmallar som er organisation har för arkitekturbeskrivningar (t.ex. ett Solution Architecture Document). Att använda rätt format och terminologi är avgörande för den formella processen.

  3. Dokumentera arkitekturbeslut: Skriv ner de viktigaste besluten och motiveringarna bakom dem i ett "Architecture Decision Record" (ADR). Detta är särskilt viktigt för de val där ni medvetet avviker från standarden. Exempel: "Vi valde RabbitMQ istället för Azure Service Bus eftersom kravet på realtidsmeddelanden med låg latens vägde tyngre än fördelarna med att följa standarden."

Steg 4: Formellt Godkännande

Den slutliga, anpassade och väldokumenterade arkitekturen är nu redo att presenteras för organisationens formella granskningsforum, ofta kallat ett Arkitekturråd (Architecture Review Board, ARB).

Eftersom du redan har förankrat förslaget med alla nyckelintressenter (Steg 2) blir denna presentation oftast en formalitet snarare än en prövning. Du kan visa att du har tagit hänsyn till företagets policyer, referensarkitekturer och att lösningen har stöd från både teknik och verksamhet.

Genom att följa denna process omvandlar du AI:ns snabba, intelligenta men kontextlösa förslag till en robust, förankrad och godkänd arkitektur som är redo att implementeras i din organisation.

3.2. Upprätta spårbarhet mot applikationspocesen

Här granskar du varje funktion och säkrar dess spårbarhet mot applikationsprocessen. Det här är ett mycket viktigt steg: Det är här verkligen städar och tänker efter och gör kvalitet av det AI skapade

Arbetet går rent praktiskt till så att du sätter en en funktion i taget i centrum. Sätt 

4. AI-krav blir fastställda krav

Nu ska du hitta vilka data som finns i arkitekturen 

Fastställda funktionella krav

Precis som med arkitektur, ger AI:n dig en rå, kontextlös lista med funktionella krav. Din uppgift är att agera som analytiker och produktägare för att förädla och förankra dessa krav i er unika verklighet.

Processen handlar om att gå från ett generiskt "Vad systemet ska göra" till ett förankrat "Hur detta skapar värde för oss, inom våra ramar".

Här är en steg-för-steg-guide för hur du tar AI-framtagna funktionella krav och förankrar dem.

Startpunkt: De AI-framtagna Kraven

Du har förmodligen en lista som ser ut ungefär så här, genererad från en processbeskrivning:

  • Systemet ska kunna skapa en ny kund.

  • Systemet ska kunna registrera en order.

  • Användaren ska kunna se sin orderhistorik.

  • Systemet ska skicka en orderbekräftelse.

Dessa krav är korrekta, men de saknar själ. De är inte förankrade och därmed svåra att prioritera, designa och bygga på rätt sätt.


Steg 1: Kategorisering och Gruppering

Innan du kan analysera, måste du sortera. AI:ns output är ofta en osorterad lista. Gruppera kraven logiskt, till exempel efter:

  • Affärsprocess: (t.ex. Kundhantering, Orderläggning, Leverans)

  • Användarresa (User Journey): (t.ex. Onboarding av ny kund, Första köpet)

  • Systemmodul/Epics: (t.ex. Kundregister, Produktkatalog, Varukorg)

Detta skapar en struktur som är mycket enklare att diskutera med intressenter.

Steg 2: Förankringsprocessen – Ställ de Rätt Rätta Frågorna

För varje grupperat krav eller kravområde, genomför du en systematisk granskning mot organisationens kontext. Använd dessa fyra perspektiv:

A. Förankring i Affärsmodellen (Varför gör vi detta?)

Här kopplar du kravet till affärsvärde och strategi.

  • Värdeerbjudande: Vilken del av vårt värdeerbjudande till kunden stödjer detta krav? Hjälper det oss att vara billigare, bättre eller mer innovativa?

  • Kundsegment: Vilket specifikt kundsegment gynnas av denna funktion?

  • Intäktsströmmar: Hur bidrar detta krav till våra intäkter? Är det en del av en kärnprodukt vi säljer, effektiviserar det en kostsam process, eller möjliggör det en ny tjänst?

  • Prioritering: Hur viktigt är detta för affärsmålen just nu? Använd en metod som MoSCoW (Must, Should, Could, Won't) för att ge kravet en affärsprioritet.

B. Förankring i Organisationen (Vem påverkas och hur?)

Här säkerställer du att kravet passar in i de mänskliga och processmässiga flödena.

  • Användare och Roller: Vem är den faktiska slutanvändaren? Är det en intern handläggare, en kund, en partner? Behöver olika roller olika versioner av funktionen?

  • Processpåverkan: Passar kravet in i befintliga arbetsflöden? Eller kräver det att vi ändrar hur vi arbetar? Vem ansvarar för den processen?

  • Dataägarskap: Vem äger den information som kravet hanterar? Vem är ansvarig för dess kvalitet och korrekthet?

  • Kompetens: Har de team som ska förvalta och använda funktionen rätt utbildning och förutsättningar?

C. Förankring i Policy (Vilka regler måste vi följa?)

Här säkerställer du regelefterlevnad och minimerar risk.

  • GDPR och Dataskydd: Hanterar kravet personuppgifter? Om ja, vilka rättsliga grunder har vi? Hur säkerställer vi individens rättigheter (insyn, radering etc.)?

  • Informationssäkerhet: Vilken klassning har informationen? Kräver den särskild åtkomstkontroll, loggning eller kryptering enligt vår säkerhetspolicy?

  • Lagkrav och Branschstandarder: Finns det specifika lagar (t.ex. bokföringslagen) eller branschregler (t.ex. inom finans eller vård) som styr hur denna funktion måste utformas?

D. Förankring i Referensarkitektur (Hur passar detta in tekniskt?)

Här kopplar du det funktionella kravet till den tekniska verkligheten.

  • Befintliga System: Kan detta krav tillgodoses av ett befintligt system eller en befintlig mikrotjänst? Undvik att bygga samma funktion två gånger.

  • "Buy before Build": Är detta en standardfunktion som vi borde köpa som en färdig tjänst istället för att bygga själva, enligt vår IT-strategi?

  • Standardmönster: Hur ska detta realiseras enligt våra tekniska riktlinjer? Om en kund ska skapas, ska det ske via ett anrop till vårt centrala kund-API? Ska orderbekräftelsen skickas som en händelse till vårt meddelandesystem?

  • Icke-funktionella Krav: Vilka icke-funktionella krav (prestanda, tillgänglighet, skalbarhet) medför detta funktionella krav? "Att se sin orderhistorik" måste kanske fungera även för kunder med tusentals ordrar, vilket ställer höga krav på prestanda.

Steg 3: Omskrivning och Formalisering – Exemplet

Nu tar du det råa AI-kravet och skriver om det till ett förankrat, värdefullt krav, ofta i form av en User Story med acceptanskriterier.

Före (AI-framtaget krav):

"Systemet ska skicka en orderbekräftelse."

Efter (Förankrat och förädlat krav):

User Story: "Som en e-handelskund vill jag få en detaljerad orderbekräftelse via e-post direkt efter slutfört köp, för att känna mig trygg med att min beställning är mottagen och korrekt."

Acceptanskriterier:

  • E-postmeddelandet måste skickas inom 1 minut efter att betalningen har godkänts (Affärsmodell: Uppfyller kundförväntan på snabb feedback).

  • Bekräftelsen ska skickas till den e-postadress som är registrerad i kundens profil i vårt centrala CRM-system (Referensarkitektur: Integration med masterdata-system).

  • Meddelandet ska innehålla fullständigt orderinnehåll, totalpris, moms, leveransadress och en länk för att spåra ordern.

  • En kopia av orderdata ska sparas i 7 år enligt bokföringslagen (Policy: Lagkrav).

  • Utskicket ska hanteras av vår standardtjänst för transaktionell e-post (t.ex. SendGrid), och händelsen ska loggas i vårt centrala loggsystem (Referensarkitektur: Använder standardplattformar).

  • Inga känsliga personuppgifter utöver vad som är nödvändigt för bekräftelsen får inkluderas (Policy: GDPR, dataminimering).

Genom denna process har ett enkelt, generiskt krav omvandlats till en specifik, värdefull och genomförbar uppgift som är fullständigt anpassad till just er verksamhet.

5. Riskanalys och säkerhetskrav

Riskanalys av system och organisation skapar grunden för säkerhetsåtgärder och krav mot säkerhetssystemet, säkerhetskrav.

Input till riskanalys av system och organisation arkitektur för system och organisation från arkitekturarbetet. Resultatet är prioriterade riskbedömningar som ska ligga till grund för arbetet med att hitta säkerhetsåtgärder och att sätta de säkerhetskrav som är nödvändiga.

Nu ska identifierade risker resultera i säkerhetskrav. Det börjar med att definiera den logiska säkerhetsarkitekturen med funktionella säkerhetskrav, Det sker i fem steg:

  1. Säkerhetsfunktioner på logisk nivå
  2. Granska åtgärder relativt ISO 27002
  3. Definiera funktionssäkerhetskrav
  4. Välj säkerhetsåtgärder
  5. Bestäm krav på integritet i säkerhetsfunktioner