1 UML - yleiskatsaus UML - yleiskatsaus (ei kirjassa koottuna) Miksi mallinnus Mikä UML on? UML:n peruselementit Kaaviotyypit Esimerkkiprosessi
2 Ohjelmistojen tuottaminen = speksien tuottamista?
3 Järjestelmä Malli 3 Malli 1 Malli 2 Mallit antavat järjestelmään erilaisia näkökulmia(rakenne, toiminta) Miksi mallinnus?
4 Mikä on UML Unified Modeling Language Yhdistelmä vuosikymmenien varrella kehitetyistä mallinnusmenetelmistä (ER, SDL, tapahtumasekvenssit…) Päävaikuttajat: Grady Booch, Jim Rumbaugh ja Ivar Jacobson ( OMG:n syksyllä 1997 hyväksymä standardi (versio 1.1) Sopii käytettäväksi minkä tahansa menetelmän yhteydessä. Tavattoman rikas notaatio -- kaikkea ei tarvitse osata. Lähellä Rumbaughin OMT-notaatiota. Aivan erityisen hyvin sopii yhteen mm. Nokian OMT++ -menetelmän kanssa.
5 Historiaa
6 Kohteet Suhteet Rakenne ClassName Käyttäytyminen StateName Ryhmittely PackageName Kommentti Comment etc. Riippuvuus (Dependency) Assosiaatio Kooste (Aggregation) Yleistys (Generalization) Toteutus (Realization) 0..1 * role Muodoste (Composition) UML:n peruselementit
7 Luokkakaaviot Komponenttikaaviot Sijoittelukaaviot Tapahtumasekvenssik.:t Yhteistyökaaviot Tilakaaviot Aktiviteettikaaviot Ilmentymäkaaviot Käyttötapauskaaviot Rakenne Vuorovaikutus Olion käyttäytyminen Järjestelmän käyttäytyminen Kaaviotyypit
8 Vehicle ParkingHall Car VehicleStorage Vehicle rental system regnumber service(int km) Store service information Manager manages * reserve release engage return setReturned setReserved setActive Luokkakaaviot
9 Reserve vehicle Return vehicle Service Client Clerk > VehicleRentalSystem Käyttötapauskaaviot
10 : Manager aCar: Car setReturned UI Return(aCar) : Garage store(aCar) Tapahtumasekvenssit
11 aCar : Car : Garage UI : Manager 1: return(aCar) 1.2: store(aCar) 1.1: setReturned Yhteistyökaaviot
12 Available InService Reserved Active setReturned/ stopTiming setReserved setActive/startTiming service setReturned For a Car object: do/notify Tilakaaviot
13 Request car Make reservation Make bill Pay Prepare car Deliver car Client Clerk Take car Aktiviteettikaaviot
14 GUI Vehicle Manager Data Storage Komponenttikaaviot
15 SiteWorkStation: Client VehicleServer: Server : Data Storage : Database : GUI : Vehicle Manager Sijoittelukaaviot
16 Vehicle ParkingHall Car VehicleStorage regnumber service(int km) Store service information Manager manages * reserve release engage return setReturned setReserved setActive Vehicles Support Ryhmittely: pakkaukset (package)
17 Vehicles Support +Manager +Vehicle +Car > Ryhmittely
18 Stereotyypit Any UML element (class, association etc.) can be specialized by using standard, tool-defined or user-defined stereotypes. A stereotype has its own specialized semantics, tags etc. A stereotype is denoted >. Example: > Overflow "Tagit" A tag is a name-value pair that can be associated with any UML element. Example: MyClass {version = 1.2} Laajennusmekanismit
19 Rajoitteet A constraint restricts the set of possible instantiations of a model. It gives a condition that must be satisfied by every legal system following the model. A constraint can be a standard constraint (e.g. {ordered}), a free-form constraint (given as free text), or a formal constraint, given in a well-defined formal language (standard language: OCL, Object Constraint Language). Example: * {ordered} Laajennusmekanismit
20 OMT++: Tausta Kehitetty Nokian (NTC) verkonhallintasovelluksia varten Suuria (~3MLOC) c++ -sovelluksia. HP-UX, Oracle, XWindows. Prosessi tuottaa speksit vaatimuksista ja tuoterakenteen eri osista. Tuoterakenne:
21 Requirements Use cases Analysis model UI model Design model Code User System User UI System Operation specifications Task specifications Event traces User ViewContr Class C { … } void C::m() { … } Static path Collaboration path Ari Jaaksi: Object-Oriented Development of Interactive Systems. Ph.D thesis, TUT Jaaksi, A., Aalto, J-M., Aalto, A., and Vättö, K., Tried&True Object Development -- Industry Proven Approaches with UML. Cambridge University Press, SIGS Books (1999) 315pp.. Esimerkkiprosessi (yksinkertaistettu): OMT++
22 Millä piirrät? Jos et osaa paperilla ja kynällä ei välineestä ole apua. CASE-välineet (JUDE, Rational Rose, Prosa, …) –Hinta verraten korkea (10-50kmk). –Perustuvat tietokantaan, johon talletetaan kaikki malliin liittyvät tiedot, kaaviot ovat vain “näkymiä” tietokantaan. –“Ymmärtävät” kaavioiden semantiikkaa ainakin jossain määrin. –Reverse Engineering+Forward Engineering = Round Trip Engineering. –Tukevat dokumentointia (esim. Soda+Rose). –Demot ja pienet ohjelmaesimerkit antavat usein liian ruusuisen kuvan. –Raskaan sarjan käyttökokemuksia ei ole julkaistu (?). –Oppimiskynnys korkeahko. Piirto-ohjelmat (Visio, ABCFlowcharter) –Hinta muutama KMK. –Ainakin Visiossa melko hyvä UML-tuki, lähestyy CASE-välineen ominaisuuksia. –Hyvä valinta, jos ei tarvitse CASE-välineen tietokannan tuomia lisäetuja. Julkisohjelmiakin löytyy verkosta.