Modellering med UML 2000-05-09
Varför UML och vad är det? Stora komplexa system går inte att förstå utan modellering. Vi behöver någon sorts språk som passar för att modellera större system. Att modellera innebär även en form av dokumentation. Ett generellt språk för modellering, som också används frekvent i industrin, är Unified Modeling Language (UML) UML class diagrams 2
En standard i OMG, Object Management Group UML En standard i OMG, Object Management Group Upphovsmän: Jacobson, Rumbaugh, Booch et all. Målet: Att ge utvecklare ett generellt språk för modellering och kommunikation UML class diagrams 3
Olika typer av modellering i UML Statisk modellering Class Modelling (klass-modellering) Component Modelling (komponent-modellering) Deployment Modelling Dynamisk modellering Activity/Sequence Modelling (aktivitets-/sekvens-modellering) Use Case Modelling (användningsfalls-modellering) State Modelling (tillståndsmodellering) Olika typer av modellering uttrycks med olika typer av diagram. UML class diagrams 4
Ska vi titta på alltihop? I PUMA-kursen ska vi endast titta på klassmodellering. Statisk modellering Klass-modellering med hjälp av klassdiagram. UML class diagrams 5
Klassdiagram 2000-05-09
Grundläggande klassbeskrivning En klass ritas som en rektangel med tre fält i. Första fältet innehåller klassnamnet Andra fältet innehåller attributen/egenskaperna Tredje fältet innehåller operationerna. Alla utom det första fältet (klassnamnet) kan vara tomt eller, på annat sätt, icke komplett. UML class diagrams 7
Associationer Mellan klasser finns ofta en association som anges med en linje. Denna association kan beskrivas med en etikett där ett verb ingår. I figurerna “is told by” och “manages”. Till en association finns också en multiplicitet 0..1 (0 eller 1), 1 (exakt 1), * (flera), 1..* (en eller flera) Ibland kan också rolletiketter förekomma. ett substantiv som bskriver rollen i associationen. I figuren “Manager” och “Subordinate”. UML class diagrams 8
Två typer av associationer Komposition Komposition uttrycker en stark och exklusiv äganderätt. En person äger ett personnummer Ett objekt av klassen Person innehåller (är komponerad av) ett objekt av PIDNumber Livstiden för objektet av klassen PIDNumber kontrolleras av objektet av klassen Person. Aggregation Aggregation är en annan typ av association. Äganderätten är inte lika stark och exklusiv. En crew (besättning) har crew members (besättningsmedlemmar), men dessa kan även tänkas tillöra andra besättningar. Besättningsmedlemmarnas livstid bestäms heller inte av besättningen. Båda associationerna uttrycker “det hela och dess delar”. En fylld diamant för komposition och en ofylld för aggregation. UML class diagrams 9
Arv Arv Arv uttrycker ett är en/ett förhållande mellan klasser. Detta uttrycks med en “öppen” pil, där pilen riktas mot basklassen. A SingleBooking is a (är en) Booking A RepeatedBooking is a Booking Booking är en basklass, SingleBooking och RepeatedBooking är subklasser. Ett annat exempel är t ex ett fordon. En bil, en båt, ett flygplan, en mc är ett fordon. Fordon blir då en basklass Bil, Båt, Flygplan och Mc blir subklasser. Subklasser ärver från sin basklass. Basklassen är generell och subklasser är mer specialiserade. UML class diagrams 10
Källmaterial Från en presentation av Eivind J Nordby och Martin Blom UML class diagrams 11
UML-länkar hemsida för UML, http://www.uml.org/ Posidon – Community Edition, ett gratis-verktyg för att rita UML-diagram, http://www.gentleware.com Kräver att Java finns installerat. http://java.sun.com Läs mer om installationskrav på http://www.gentleware.com om du är intresserad. Inom kursen ges ingen support alls för detta program. UML class diagrams 12