Gruppenavn Beskrivelse av arkitektur For Navn på systemet Versjon <1.0>
Revisjonshistorie Dato Versjon Beskrivelse av endring Forfatter <dd/mmm/yy> <x.x> <beskrivelse> <navn>
Innhold 1. Innledning 4 1.1 Dokumentets hensikt 4 1.2 Avgrensning 4 1.3 Definisjoner og forkortelser 4 1.4 Referanser 4 1.5 Oversikt over innholdet 4 2. Bakgrunn og oversikt 4 2.1 Use-case UML-diagram 4 2.2 Ikkefunksjonelle krav 4 2.3 Forutsetninger og avhengigheter 4 3. n 4 3.1 Logisk perspektiv 5 3.2 Prosessperspektivet 5 3.3 Deploymentperspektivet 5 3.4 Implementasjonsperspektivet 5 3.5 Andre perspektiver 5 4. Tilleggsinformasjon 5
1. Innledning Beskrivelse av arkitektur Innledningen til dokumentet skal fortelle leseren hva som er hensikten med dokumentet og hva det inneholder. Han skal også forstå i hvilken forbindelse dette dokumentet er skrevet. Innledningen har følgende underpunkter: 1.1 Dokumentets hensikt Hensikten med dette dokumentet er å beskrive arkitekturen til systemet som er utviklet. 1.2 Avgrensning Her finner vi en kortfattet beskrivelse av det aktuelle prosjektet slik at det går klart frem hva dette dokumentet dekker. Hvis dokumentet dekker deler av systemet må det gå klart frem. Eventuelle relasjoner til andre systemer eller delsystemer beskrives. 1.3 Definisjoner og forkortelser Alle begreper og forkortelser må defineres når dette er nødvendig for å forstå innholdet i dokumentet. NB! Husk at dette dokumentet skal leses også av brukerne. Hvis det er laget en ordbok i prosjektet, kan det refereres her. 1.4 Referanser Alle dokumenter som refereres andre steder i dette dokumentet skal listes opp her. 1.5 Oversikt over innholdet Her forteller vi leserne hva dette dokumentet inneholder og hvordan det er organisert (hva han finner hvor) 2. Bakgrunn og oversikt Arkitekturen er bestemt av kravene til systemet, både funksjonelle og ikkefunksjonelle krav. Her oppsummeres de krav som har vært drivende for arkitekturen. Nevn også eventuelle krav som ikke er oppfylt/gjenstår. Dette er spesielt aktuelt hvis arkitekturbeskrivelsen gjelder for et system under utvikling. 2.1 Use Case modell Her kan vi vise den delen av Use Case diagrammet som inneholder de Use Case som har vært bestemmende for arkitekturen. Dette er det som kalles Use Case perspektivet av arkitekturen og er et utsnitt av Use Case modellen. 2.2 Ikkefunksjonelle krav Her listes opp de ikkefunksjonelle kravene som har vært bestemmende for arkitekturen. Disse er dokumentert i Tilleggsspesifikasjonen som det kan henvises til. 2.3 Forutsetninger og avhengigheter Her beskriver vi så nøyaktig som mulig de forutsetningene som beskrivelsene i dette dokumentet bygger på. Videre beskriver vi så nøyaktig som mulig hvilke avhengigheter vi har, f.eks. til andre systemer. 3. n Her skal arkitekturen beskrives. Den kan beskrives ut fra flere forskjellige perspektiver. Vi vil alltid ha et logisk perspektiv. Avhengig av type system kan det være aktuelt å vise flere andre perspektiver. Det begrunnes her i innledningen.
3.1 Logisk perspektiv Her beskriver vi den konseptuelle organiseringen av programvaren i form av lag, subsystemer, pakker, klasser og grensesnitt. Beskriv hvilke arkitektoniske mønstre som er brukt og hvorfor. Diskuter hvordan arkitekturen tilfredsstiller hvert enkelt av de sentrale funksjonelle (Use Case) og ikkefunksjonelle kravene. Ta med eventuelle alternative løsninger og hvorfor disse ikke ble valgt. Organiser i underkapitler for hvert krav. Bruk UML pakkediagram til å illustrere. 3.2 Prosessperspektivet Hvis systemet kjører flere prosesser og/eller tråder vises disse med ansvarsfordeling og samarbeidsmønstre. Disse illustreres med klasse og interaksjonsdiagrammer (sekvensdiagram). 3.3 Deploymentperspektivet 1 Dette brukes for å beskrive den fysiske arkitekturen til et distribuert system. Det viser hvordan prosesser og komponenter er fordelt på prosesseringsnoder i et nettverk. Illustreres med UML deploymentdiagram. 3.4 Implementasjonsperspektivet Dette perspektivet er en modell som viser det virkelige systemet i form av hva som skal leveres kildekode, biblioteker, eksekverbar kode og hvordan disse er organisert. For eksempel hvis det er utviklet i Java, viser man Javapakker og organisering i JAR-filer. 3.5 Andre perspektiver Andre perspektiver som det kan være aktuelt å vise er: - Dataperspektivet som viser mapping fra objekter til persistente data (vanligvis en relasjonsdatabase; ER-modell, relasjonsskjema). - Sikkerhetsperspektivet som er en oversikt over sider ved arkitekturen som berører sikkerhet. Dette kan være et utsnitt av deploymentmodellen som fremhever sikkerhetsaspektene. 4. Tilleggsinformasjon Evt. annen informasjon som vi ønsker å ta med for å øke forståeligheten og tilgjengeligheten av det som er dokumentert. 1 Ikke pensum og skal dermed ikke være med