Hva er UML (Martin Fowler) UML as Sketch – kommunikasjon, tenking UML as Blueprint – spesifikasjon, byggeplan UML as Language – grafisk programmering http://www.martinfowler.com/bliki/UmlMode.html Ønsker man å bruke UML til å kommunisere, spesifisere, eller definere systemet?
Diagramtyper (UML 1.3) Diagrammer (Diagrams) Brukstilfellediagram (Use case diagram) Klassediagram (Class diagram) Objektdiagram (Object diagram) Sekvensdiagram (Sequence diagram) Samarbeidsdiagram (Collaboration diagram) Tilstandsdiagram (Statechart) Aktivitetsdiagram (Activity diagram) Komponentdiagram (Component Grupperingsdiagram (Deployment
Use Case (brukertilfeller) Gir en oversikt. Hver Use Case må beskrives grundigere. Gjerne med strukturert tekst (”Writing Effective Use Cases”, Alistair Cockburn) Kan være valgfritt ”abstraksjonsnivå” Jo nærmere man er brukernes verdi ved systemet, desto mer verdifullt er det Jo lengre man er unna tekniske detaljer, desto bedre er det
Noen Use Cases for ”datalag” Lav nytteverd CRUD patterns
Klassediagram – pakker Lager her ”logiske pakker” Disse kan være forskjellige fra pakker i det endelige systemet De behøver ikke være fysisk fordelt på forskjellige maskiner (pakker spesifisere ikke dette)
Logiske data - struktur Vanskeligheter: Transformasjon er ikke spesielt enkelt i .NET Transformasjonen kan inkluderes i data lesing – men kan da ikke autogeneres Brukertjenester kan benytte utransformert data, men blir da vanskeligere å skrive
Objektdiagram Bruk til å visualisere eksempler Brukt for lite, i alle fall av meg
Sekvensdiagram Bruk sekvensdiagram til å tenke rundt og kommunisere designforslag Se opp for: Delegering (gir lite mening å tegne) To objekter som kommuniserer
Sekvensdiagram
Klassediagram
Klassediagram (ADO.NET)
Autogenerert diagram
Eksempel fra JFsm
Tools Whiteboard – Microsoft Visio Navision stencils (free) UML stencil (harder to use) Velocitis FlyWheel (plugin for VS.NET) Enterprise Architect http://www.sparxsystems.com.au/ Borland Together
Essensial references Allan Holub’s UML reference http://www.holub.com/goodies/uml/ Martin Fowler ”UML Distilled”
ADO.NET Checklist DataRelations DataView DataSet.Merge DataTable.PrimaryKey DbDataAdapter Ikke nødvendig Men dere bør kjenne den Typede dataset Ikke start med persistenslaget før dere kan litt om alt på listen
Datalag Mer enn cirka 20 tabeller: Autogenerer SQL Typet eller utypet dataset? Typet gir mer info, men kan være ”tyngre” Hva er enkelt med generatoren? VS.NET Wizard kode fungere ikke så godt til ”industrialisering” av kode Godt verktøy for kode generering: Ruby