Arkitektur Michael Åhs

Relevanta dokument
OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

RUP - Rational Unified Process

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

Inkapsling (encapsulation)

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Symptom på problemen vid programvaruutveckling

Objektorientering. Grunderna i OO

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

RUP Rational Unified Process. 17 november 2004

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Föreläsning 11 Tisdag 6/6 2000

SAS Intelligence Architecture. Patrick Eckemo IT Arkitekt / PM Arkitektur SAS Institute

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

UML 2.0 och dess roll för modellbaserad utveckling

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL:

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

När? Varför? För vem? Resultat? (Artefakter?)

Objektorienterad analys och design

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Användning av modeller för system/produktutveckling

KravinsamlingAnalys Design Implementation Testning

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

LÖSNINGSFÖRSLAG. Tentamen. Objektorienterad modellering och design. EDA665, 4 poäng

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Arkitektur. Den Röda Tråden

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Datavetenskap. Therese Sundström. Utveckling av ett affärssystem med. Unified Process. Examensarbete, D-nivå 30 ECTS 2005:05

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN Åbo, Finland url:

Objektorienterad analys och design

Vad är. Domändriven design?

Objektorienterad programmering

Handbok Umbrello UML Modeller

Tentamen NOA011 Systemarkitektprogrammet. 51 poäng

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Företagsmodellering i UML

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Final Course Marks will be combined from the examination and the project:

Objektorientering Användning

Distribuerade affärssystem

Opponentrapport på examensarbete Utveckling av ett affärssystem med Unified Process av Therese Sundström.

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Tillämpning av Unified Process och Design Patterns vid integrering av system

TDP005 Projekt: objektorienterade system

Om fem stycken :GameObject ligger i vägen för b:bullet så kommer alltid loopen köras fem gånger. Välj ett alternativ

CliMate följer Tre-lager-arkitektur. Domänobjekt - domänlogiklagret. Viktiga domänklasser i CliMate. De tre lagren. Paketen i CliMate:

Ny skalbar och öppen OLAP-teknologi, SAS OLAP server

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

TDDE10 TDDE11, 725G91/2. Objektorienterad programmering i Java, Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

F2 Exchange EC Utbildning AB

Konceptuell modellering. Formalisering, automatisering och effektivisering

Observer Pattern och MVC. Objekt-orienterad programmering och design Alex Gerdes, 2016

Praktikum i programvaruproduktion

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Lars Wiktorin, IT plan

" «Observable» DataGenerator" betyder att klassen DataGenerator ärver från den abstrakta klassen Observable.

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

Projektering av informationssystem

Institutionen för programvaruteknik och datavetenskap FRÅN OMT TILL UML - ETT NÖDVÄNDIGT VAL?

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

Configuration Management Vägen till ordning och reda med rätt stöd!

SKOLFS. beslutade den XXX 2017.

Repetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005

Objektorienterad metodik. Programutvecklingsmetodik. Objektmodellen. Varje objekt har en unik identitet

Programutvecklingsmetodik

DIG IN TO. Nätverksadministration

Teoridel (svaren direkt på lydelsen)

Användningsfalls- mönster

Interaktions- och klassdiagram, kap F4 ht -10

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Bilaga A. Klassdiagram i OMT (klasser och dess relationer) Klassdiagram i UML (klasser och dess relationer) 1 st

Introduktion. Byggstenar TDBA

Från Data till Process

Manual HSB Webb brf

Tentamen i Objektorienterad modellering och design Helsingborg

Objektorienterad konstruktion

Datacentertjänster IaaS

Objektorientering Klasser

DVGB05 Grafiska användargränssnitt. Mjukvarudesign med Model-View-Controller

System Arkitektur. Vad är en arkitektur? Har alla system en arkitektur? Hur designar man en arkitektur? Olika synsätt på arkitektur. Mönster.

Objektorienterad Systemutveckling Period 3

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

Problem 1-1,5p Två av följande metoder för kravspecifikation är ej lämpade att använda vid ett COTSprojekt,

729G06 Föreläsning 1 Objektorienterad programmering

Tentamen NOA011 Systemarkitektprogrammet

Eventuella felaktiga svar kanselerar motsvarande mängd rätta svar

Akronymer. CD5130 OOP, fk. Mjukvarumönster. Mjukvarumönster. Mjukvarumönster, forts. Mjukvarumönster, forts

Transkript:

Arkitektur Michael Åhs Kalle & Hobbe: En utvecklares drömsystem 1. Vad är arkitektur? 2. Arkitektur i UML Innehåll 3. Utveckla en arkitektur 4. Arkitektur i projektet Del 1 - Vad är Arkitektur? Pattern-Oriented Software Architecture: A software architecture is a description of the subsystems and components of a software system and the relationship between them. Enligt UML: The organizational structure of a system, including its decomposition into parts, their connectivity, interaction and mechanisms and the guiding principles that inform the design of a system. Vad gör en bygg- och systemarkitekt Byggnadsarkitekt Systemarkitekt Bestämmer utseende och Beskriver systemets stil. fysiska infrastruktur och Väljer material. implementationsstruktur. Dimensionerar för Delar upp systemet i hållfastighet. logiska delar Modellerar utrymmen Bestämmer vilka för mänsklig aktivitet. konventioner och riktlinjer Och så vidare som skall följas. Och så vidare. Båda: Identifierar och ger namn åt viktiga delar 1

Varför Arkitektur? En arkitektur behövs inte alltid Inte så stort behov för mindre system (jämför med en hundkoja) Dock oumbärligt för större system (jämför med Öresundsbron) För framgångsrika system ökar storleken Kostnaden för att utveckla och underhålla beror i hög grad på arkitekturen. Varför Arkitektur? (2) UML är processoberoende men dess skapare rekommenderar en process som: Drivs av användningsfall ( use-cases ) Är centrerad kring en arkitektur Är iterativ och inkrementell Projektet: När och var? Under vilka aktiviteter? Främst under design Sannolikt har ni redan tänkt på arkitekturen. Man bör tidigt bör skissa på möjliga lösningar. Del 2 - Arkitektur med UML UML diagram ur olika synvinklar (vyer) The 4+1 view model of architecture Diagrammen hjälper till att etablera den gemensamma begreppsapparat och mentala modeller som krävs för effektiv kommunikation. 2

The 4+1 view model of architecture Logisk vy Klassdiagram Interaktionsdiagram Implementationsvy Komponentdiagram Användningsfallsvy Processvy Grupperingsvy Tillståndsdiagram Grupperingsdiagram Interaktionsdiagram UML vyer: Användningsfall Systemets beteende ur användarens synvinkel. Beskrivna i tidigare faser Beakta de viktigaste användningsfallen, de som fundamentalt påverkar systemets arkitektur. Innehåll: Användningsfallsdiagram Diagramsuppdelningen är ej absolut UML Vyer: Process-vy Dynamiskt förlopp av signifikant intresse för förståelsen av systemets prestanda och skalbarhet. Exempelvis Processer, trådar Parallellitet och synkronisering Innehåll: Sekvensdiagram, samarbetsdiagram, tillståndsdiagram och aktivitetsdiagram. UML Vyer: Logisk-vy Betydelsefulla klasser, för att tillgodose de funktionella kraven: Strukturerade i paket (t.ex. lager och subsystem) Samarbete mellan dessa Bestämmer programkodens struktur. Innehåll: Klassdiagram 3

Klassdiagram Presentation Model Exempel: Tre-lagers arkitektur From Mud to Structure med Lager Organisation med skiktning (Layers). Inte den enda möjligheten. Varianter, t.ex. Relaxed Layers Koppling, t.ex Facade (pull) och Observer (push) Inverted pyramid of resuse Felhantering kräver eftertanke, före. Storage Paket Paket - exempel Lämpar sig för att dela upp systemet i delar. Ej begränsat till klasser Representeras grafiskt av en mapp med tillhörande etikett. Namnet antingen i etiketten eller direkt på mappen. Exempel på nedbrytning av stora strukturer till logiska och hanterbara enheter. 4

Paket - notationsvarianter Paket - relationer Math::Number betyder att Number ingår i Math (jämför med C++) Paket - stereotyper Följande stereotyper för paket är definierade som standardelement i UML: <<facade>> Beskriver ett paket som endast är en vå av något annat paket (Design Pattern) <<framework>> Består av samverkande klasser där en del används som mallar för nya klasser (mer i kommande föreläsning) <<model>> Innehåller verksamhets- eller domänmodellen. <<subsystem>> Beskriver ett delsystem i det övergripande systemet. <<system>> Beskriver ett paket som representerar hela det systemet som konstrueras. UML Vyer: Implementationsvy Beskriver de komponenter som ingår i systemet Strukturerade i paket Samarbete mellan dessa Komponent fysiska saker (i bitarnas värld) Innehåller: Komponentdiagram 5

Komponenter - grafisk notation Komponenter Vanligt (och tillåtet) att man ersätter den med andra grafiska symboler UML komponenter!= Vanliga komponenter Komponentinstanser existerar på noder Modelleras Filer: källkod, exekverbara, dokument Databaser och tabeller Delar i dynamiskt kopplat system Komponenter - stereotyper Följande stereotyper för paket är definierade som standardelement i UML: <<document>> Denna komponent representerar ett dokument. <<executable>> En komponent som kommer kunna exekveras i en nod. <<file>> Representerar ett dokument som innehåller källkod eller data. <<library>> Representerar ett statiskt eller dynamiskt objektbibliotek. <<table>> Representerar en databastabell. UML Vyer: Grupperings-vy Beskriver systemets hårdvara (den fysiska världen). Topologi och noder Distribution, leverans och installation. Innehåller: Grupperings ( Deployment ) -diagram 6

Grupperingsdiagram Nod representeras av en låda Såsom objekt har noder klasser och instanser. Relationer mellan noder är oftast associationer och beroende. Del 3 Utveckla en Arkitektur En fullständig arkitektur för ett exempelsystem, en Internetbutik. Skapa en bra arkitektur är väldig svårt, görs aldrig i ett enda steg (big bang utveckling). :Internet Utvecklingssteg: 1. Krav (Icke funktionella och Funktionella) 2. Gruppering 3. Logisk och implementation Struktur, samarbete och komponenter Icke funktionella krav Identifiera icke funktionella kraven som styr systemets egenskaper Exempelvis: tillgänglighet (när och var kunder vill handla) effektivitet För kund (svarstid för produktsidor) För kundtjänst (order per minut) integritet (betald order får ej försvinna) Funktionella krav Identifiera av de viktiga användningsfallen Kritisk funktionalitet, stor påverkan på arkitekturen 7

Gruppering Centraliserat mönster Ta fram grupperingsdiagram för systemet Som det se ut när det är klart :Client User More clients System Tre möjliga alternativ (grupperingsmönster) Centraliserat mönster Distribuerat mönster Decentraliserat mönster :Server User System Vilken lösning? Function Model Distribuerat mönster Decentraliserat mönster :Client User System More clients Function Model :Server User System Function Model 8

Vald gruppering Logisk vy Möjliga strukturalternativ (arkitekturmönster) Layers Call-Return Pipes and Filters Vilken lösning? Call-and-Return: Objektorienterad Pipes and Filters Objects Encapsulate representations Provide s for services Connectors Call-return Service inovocation Välkänt mönster och naturligt i språk såsom Java, dock 9

Presentation Domain Model Remote Access Vald logisk struktur En kombination av Layers och Call-Return. Notera hur högre paket får vara direkt beroende av Storage. Anledning? Implementationsvy: Komponenter Ta fram komponenter och beskriv beroenden och både logisk och fysik placering. Logisk komponentplacering Storage Komponenter (2) Utforska kritiska förlopp Ta fram komponenter och beskriv beroenden och både logisk och fysik placering Fysik komponent placering De kritiska förloppen Vilka delar och hur samarbetar de för att uppnå kraven? <<executable>> 10

Utforska kritiska förlopp (2) Utforska kritiska förlopp (3) Kundtjänst har liknande men ändå annorlunda behov. Hur hantera? 3: create(row) Del 4 - Arkitektur i projektet Ett kort förslag på arbetsgång Betrakta systemet så som det ska se ut när det är klart. Ta fram ett grupperingsdiagram som beskriver detta läge. Strukturera systemet i skikt och delsystem (logiska vyn) parallellt med dess komponenter (implementationsvyn). Beskriv flöden för kritiska förlopp. Beskriv koppling till befintliga ramverk. Kommande föreläsning Innehållet på Ramverksföreläsningen är ej ännu bestämt. Kontakta mig med önskemål och förslag: michael@creatus.se Tack så mycket! 11