UML UML är en standard för att dokumentera och visualisera sina tankar och beslut under analys och design. Att lära sig allt om UML får inte plats i den här kursen, men vi kommer lära oss vissa delar. Börja med att titta igenom Appendix C i boken för att se exempel på olika UML diagram. Titta gärna på den här sidan som har massor av exempel och förklaringar! http://www.uml diagrams.org/ Om ni blir riktigt nyfikna kan ni även titta på OMGs hemsida: http://www.omg.org/spec/uml/2.4.1/ (OMG står här för Object Management Group och inget annat. Det är de som står för att hela tiden vidareutveckla UML standarden.)
Vad är ett objekt? Ett objekt är ofta en sak, t.ex. en boll, en bil, ett hus, etc Ett objekt har egenskaper. Dessa kallas attribut och är våra variabler i java. Ett objekt har även sätt man kan använda det. Dessa kallas objektets operationer och är våra metoder i java.
Objekt vs Klasser En klass är som en ritning för objekt, som anger vad objektet kan göra Ett objekt är i stort sett ett minnesblock som har allokerats och ställts in efter klassens specifikation Man kan skapa många objekt av samma klass istället för att behöva skriva samma kod flera gånger Objekt kallas också instanser (eller klassinstanser)
Inkapsling (encapsulation) Objektets variabler utgör objektets kärna. Metoderna omger och skyddar kärnan från andra objekt. Att paketera objektets variabler i en skyddad miljö med hjälp av metoder kallas dataabstraktion (inkapsling/ encapsulation).
Exempel Du startar din bil genom att sätta in nyckeln och vrida på nyckeln. (Du anropar en publik metod.) Detaljerna av vad som händer när du vrider på nyckeln göms från dig. Du behöver inte kunna något om detta för att starta bilden. Du kan heller inte påverka det interna tillståndet förutom att vrida på nyckeln.
Dataabstraktion Dataabstraktion är en enkel och kraftfull idé som ger utvecklaren framförallt två fördelar: Modularitet: Ett objekts källkod kan skrivas och underhållas självständigt från andra objekts källkod. Detta låter ett objekt att förflyttas och återanvändas. Du kan låna ut ditt objekt (t.ex. en klocka) till någon annan, och det ändras inte. Gömma information Ett objekt använder ett publikt gränssnitt för att kommunicera med andra objekt. Det kan bara användas på rätt sätt. Objektet kan ha privat information och metoder som kan ändras när som helst utan att påverka andra objekt som är beroende av det. Även om urverket byts ut så kollar du tiden på samma sätt.
Några fördelar med inkapsling Enkla att använda. Eftersom man bara kan använda de publika metoderna så behöver man inte fundera på om man använder en metod man borde låta bli. Enkla att underhålla. Om du ändrar på din privata kod så påverkar detta normalt inte hur dina publika metoder används. Flexibla. Av anledningen ovan blir det även lättare att lägga till ny funktionalitet.
Associations, Aggregations och Composition Alla objekt är kopplade till andra objekt Man kan koppla ihop objekt på olika sätt association, aggregering eller komposition Association betyder att de är löst grupperade. De samarbetar på nåt sätt. Aggregation betyder att sammanfoga objekt till ett större helhetsobjekt men där delarna fortfarande kan klara sig på egen hand. Composition är den starkaste formen av koppling. Här sammanfogar man några delar till ett större objekt där delarna är beroende av det större objektet.
Kopplingar i UML Kopplingarna, eller länkarna, visas som streck som eventuellt har extra symboler Man kan navigera i koden genom att använda länkarna Man ska detaljera så mycket som behövs för att illustrera det som är viktigast Olika personer ritar diagram olika!
Visio För att rita klassdiagram i Visio så gör ni såhär: Välj New, Software & Database, UML Model Diagram. Ni hittar symboler för Class (Klasser) och olika pilar/streck för att visa de olika klassernas förhållande till varandra under UML Static Structure i vänsterkanten. Under UML Deployment hittar ni Component symbolen som ni kan använda er av när ni vill representera en större del som innehåller flera klasser men som ni valt att inte modellera i detalj. Här kan ni tydligt se vad de olika pilarna symboliserar: http://www.csci.csusb.edu/dick/samples/uml0.html, klicka på Connections between classes in a UML class diagram.
Läshänvisning Kapitel 2.1 2.8 Kapitel 2.14 2.20