UML-skeemide vormistamine

Size: px
Start display at page:

Download "UML-skeemide vormistamine"

Transcription

1 Tallinna Ülikool Matemaatika-Loodusteaduskond Informaatika osakond UML-skeemide vormistamine Proseminaritöö Koostanud: Kati Rääk Juhendaja: Inga Petuhhov Tallinn 2005

2 Sisukord Sisukord... 1 Sissejuhatus Mudelid ja kommunikatsioon Tarkvaraarenduse spetsiifikast ja mudelite osatähtsusest Visuaalne kompositsioon Taju ja kogemus Visuaalse ülekoormuse vältimine Järk-järguline avaldamine (Progressive disclousure) Detailide peitmine (Detail hiding) Eraldamine ja kiht-kihiline esitlemine (Layering and separation) Efektiivse diagrammi esteetika Joon ja kontuur (Line and contour) Mõõt ja proportsioon (Scale and proportion) Tasakaal (Balance) Värv (Color) Rõhutamine (Emphasis) Kordamine ja rütm (Repetition and rhythm) Kooskõla ja harmoonia (Unity and harmony) Esitlus (Presentation) Kuvamine seinale (Screen projection) Väljatrükk (Hard copy printouts) Kokkuvõte Kasutatud kirjandus... 31

3 Sissejuhatus Tarkvaraarenduses hõlmab tarkvarasüsteemide projekteerimine olulise osa kogu tegevusest. Projektide koostamiseks ja projekteerimise käigus toimuva kommunikatsiooni toetamiseks on otstarbekaks kasutada erinevaid skeeme. Hästi loetav ja korrektselt koostatud skeem lihtsustab inimeste vahelist kommunikatsiooni, aitab vajalikku lihtsamalt ja ülevaatlikumalt väljendada. Oskamatult ja loetamatult koostatud skeem võib aga arusaamise hoopis keerulisemaks teha. Käesoleva töö eesmärgiks on, kirjandusele toetudes, lahti seletada heade skeemide koostamise põhimõtteid, tuues sinna juurde ka näiteid. Töö koosneb kolmest osast. Esimeses osas on juttu mudelitest üldiselt ja info levimisest inimeste vahel, teises osas tarkvaraarenduse spetsiifikast ja mudelite osatähtsuses ning mudelite konstrueerimisest ning kolmandas osas kuidas UML-skeeme visuaalselt korrektselt koostada (UML [Unified Modeling Language] on standardiseeritud viis süsteemide modelleerimiseks). Skeemide joonistamiseks on kasutatud programmi Poseidon for UML Community Edition 3.2.

4 1. Mudelid ja kommunikatsioon Mudelid on alati olnud oluline osa inimtegevusest. Me loome mudeleid, mis baseeruvad viiele meeleorganile: nägemis-, kuulmis-, haistmis-, maitsmis- ja kompimismeelele. Me loome mudeleid liikumisest, kujust, vahemaast, ajast ja põhjus/tagajärjest, püüdes seostada seda uue ja segase maailmaga meie ümber. Alustades peaaegu puhtalt lehelt, peame me jõudma iga uue kogemuse mõistmiseni. [1, lk 1] Mudelid on samuti võtmeks keerukate mõistete edastamisel teistele inimestele. Kuna ükski inimene ei jaga täpselt sama kogemuste pagasit, siis ükski mudel ei ole täpselt sama. Näiteid mudelitest ja nende eesmärkidest [2, lk. 2-3]: matemaatilise mudelid astronoomilisteks ja majanduslikeks prognoosideks prognoosi saamiseks; kirja- ja kõnekeel, sümbolid, terminoloogia, kaardid ja graafikud õpetamiseks, informatsiooni edastamiseks; arhitektuurilised ehitusplaanid, UML diagrammid tarkvara arenduseks plaanide konstrueerimiseks; teaduslikud teooriad, matemaatiline/loogiline sümboolika uurimusteks/ põhjuste illustreerimiseks; raamatukogu register, geograafilised kaardid navigatsiooniks; maalid, tants, muusika, draama emotsionaalse vastukaja esilekutsumiseks; UML mudelid, kognitiivsed mudelid teiste mudelite kirjeldamiseks, seletamiseks. Mudelit võib defineerida kui komplektse süsteemi lihtsustust eesmärgil seletada spetsiifilisi detaile. [1, lk. 2] Mudel on kindlas vastavuses mingi teise objektiga (originaaliga), asendab seda tunnetamisel ja võimaldab selle kohta saada vahendatud andmeid. [11, lk 434] Kõige vähem kasulikeks mudeliteks võib lugeda selliseid mudeleid, mis vastavad saja protsendiliselt süsteemile endale. Iga suure süsteemi puhul, mis on suuremad sellest, et neid saaks korraga haarata, on vaja loovutada mõned täpsused. [1, lk.3] Mudelite loomisel on esmalt vaja kommunikatsiooni keskkonda (keelt, pilte, žeste jne.) ja seejärel tõlgendada oma mudelid, et tekiks seostatud mõistmine mudeli ja maailma vahel. Ilma selleta on väga raske ühel inimesel seletada teisele mingit nähtust või süsteemi. [1, lk.2]

5 Kommunikatsioon on teabe edastus ja vastuvõtt kindla märgisüsteemi varal. Kommunikatsioon on mõtestatud märkide vahetus, mis vahendab isikute, gruppide või kultuurisüsteemide teadmisi, väärtusi, norme. [10, lk 673] Enne mudeli koostamist on modelleerijal vaja saada ettekujutus nendest, kellele see mudel suunatud on. Vastasel juhul võib mudel olla ebaefektiivne ja seda valesti mõista. Et kommunikatsiooni ideid mudelitega seostada, on kasulik mõista, kuidas informatsioon levib inimeste vahel. Üks esimesi kommunikatsioonimudelitest on loodud C. E. Shannoni poolt [13, lk. 2]: Joonis 1.1: Shannoni kommunikatsioonimudel Info levimise mudeleid on koostanud teisedki. Joonisel 1.2 on kujutatud Lasswelli ja Satiri info levimise mudelid inimeste vahel. [1, lk. 4] Lasswell,H.B. Satir, V Joonis 1.2: Lasswell i ja Satir i kommunikatsioonimudelid

6 2. Tarkvaraarenduse spetsiifikast ja mudelite osatähtsusest Tarkvara spetsifikatsiooni (detailne kirjeldus) eesmärgiks on kui kindlaks teha, mida vajatakse süsteemilt ja millised piirangud on süsteemi kasutamisel ja väljatöötamisel. Sageli kutsutakse seda tingimuste, nõuete tehnikaks (requirements engineering). See on oluline etapp tarkvaraarenduse protsessis, sest vead selles etapis põhjustavad hilisemaid probleeme süsteemi projekteerimisel ja rakendamisel. Seda protsessi illustreerib joonis 2.1. [4, lk. 55] Joonis 2.1 Tarkvara projekteerimise protsess võib kaasata mitmete süsteemimudelite väljatöötamist. Joonisel 2.2 on välja toodud mudel, mis näitab erinevaid projekteerimise etappe. [4, lk. 57] Joonis 2.2

7 See on väga üldine projekteerimise protsessi mudel ning reaalsed protsessid võivad kohanduda erinevalt. Tarkvara projekteerimise meetodid toetuvad järgnevatele süsteemimudelitele [4, lk.59]: andmevoo mudel (a data-flow model); olem-seos mudel (an entity-relation model); struktuurne mudel (a structural model); objekt-orienteeritud mudel (object-oriented model). Kui arendatakse tarkvarasüsteeme, peab iga inimene arendusmeeskonnast peab mõistma ühtemoodi süsteemi vajadusi ja eesmärke. See informatsioon on sageli kogutud mõne spetsialisti poolt, kes esitab selle info meeskonnaliikmetele, kasutades mitmeid visuaalseid ja tunnetuslikke mudeleid. [1, lk. 2] UML on maailmas üha enam leviv standardiseeritud viis süsteemide modelleerimiseks. UML loomise eesmärkideks on modelleerida süsteeme objekt-orienteeritud (OO) tehnikaid kasutades alates nende mõistetest kuni rakenduslike tehisteni välja; võimaldata tööd ka suuremahuliste ja keeruliste süsteemidega; luua modelleerimiskeel, mida suudaksid lugeda nii inimesed kui masinad. UML kasutusalaks on kõikvõimalikud süsteemid: infosüsteemid, tehnilised süsteemid, reaalajasüsteemid, hajussüsteemid, ärisüsteemid jne. UML on keel süsteemi visualiseerimiseks, spetsifitseerimiseks, väljatöötamiseks ja dokumenteerimiseks. UML-i modelleerimistehnikatest saab lähemalt lugeda Liina Langi bakalaureusetööst. [14] Mudeli konstrueerimisel tuleb esmalt valida teema ja võtmeabstraktsioon, seejärel leida elemendid ja suhted nende vahel ning koostada mudeli vaated. Oluline on pöörata tähelepanu subjekti olulistele iseloomuomadustele ja otsustada kas nad peaksid sisaldama mudelis. Hästi valitud võtmeabstraktsioon aitab valida efektiivse mudeli keskpunkti. Võtmeabstraktsiooni leidmine on sageli kõige raskem modelleerimise juures, sest tuleb näha kuidas süsteemi elemendid omavahel käituvad. Modelleerimis subjekti elemente võib käsitleda kui asju, mis moodustavad terviku. Terviklikud mudelid on väga kasulikud tarkvara arenduses, sest neid võib kiirelt luua ja modifitseerida väheste disaini vahenditega. [2, lk. 7-9] Elementide vahelisi suhteid on mitmeid [2, lk. 9-10]: 1 Aatom-suhe (atomic relationship) elemendid ei sõltu teistest elementidest.

8 Joonis 2.3: aatom-suhe 2 Täielik/rolliline suhe (Whole/part relationship) seotud elemendid ei ulatu süsteemi kontekstist välja. Joonis 2.4: täielik/rolliline suhe 3 Viitamisega suhe (Reference relationship) üks element viitab teisele, kuid ei ole selle elemendi omanik. Joonis 2.5: viitamisega suhe

9 4 Eraldav suhe (Abstract relationship) üldelement on jagatud spetsiifilistemaks elementideks. Joonis 2.6: eraldav suhe Tarkvara arenduses enamikest mudelitest koostatakse erinevaid vaateid, mida vastavalt sihtgrupile kasutatakse. Iga vaade tüüpiliselt sisaldab piiritletud fookust. UML-is on vaateid liigitatud järgnevalt [2, lk. 11]: struktuursed ja dünaamilised vaated süsteemi disainiks; kasutuslugude vaated süsteemi funktsiooni kirjeldamiseks; konstruktsiooni vaated komponentide loomiseks; arhitektuuri vaated süsteemi installeerimise kirjeldamiseks. Iga vaade kirjeldab süsteemi erinevast aspektist lähtudes.

10 3. Visuaalne kompositsioon Tarkvara arendajad kasutavad laialdaselt diagramme, et teha tarkvara programmide nähtamatud aspektid inimestele arusaadavamaks. Üheks võimaluseks diagramme luua on kasutada UMLi (Unified Modeling Language). See modelleerimiskeel on olnud üldises kasutuses alles aastast 1997 ning on see saanud tegelikult standardseks tarkvara konstruktsioonide visuaalsel esitlemisel ja see on varustatud laialdase modelleerimistööriistade valikuga. Kuid diagrammide kasutamine on kasulik ainult siis, kui nad on sihtrühmale kergelt mõistetavad. [3, lk. 1] 3.1 Taju ja kogemus Esmane informatsiooni allikas inimestele on visuaalne taju. Taju on psüühiline protsess, mis seisneb esemete ja nähtuste meelelises tervikpeegelduses, ühendab ja korrastab aistinguid tajukujundiks, vahendab objektiivset maailma ning aitab kohaneda keskkonnaga. [12, lk. 208] Inimestel on parem aru saada väga keerukatest probleemidest, kui need probleemid on esitatud sobilikus visuaalses vormis. Selle sobiliku vormi leidmine on sageli tõeline väljakutse. Psühholoogid on loonud tajuteooria, mida tuntakse Geštalt teooria nime all (saksa keelsest sõnast kuju ) [3, lk. 2]. See lähtub seisukohast, et psüühikaprotsessides valitseb struktuur elementide üle ja terviku omadusi ei saa tuletada elementide omadustest. See põhineb meie võimel eristada kujundeid taustast [9, lk. 158]. Kuid need kujundid peavad olema tuttavad vaatajale või kujutatud selliselt, mis kutsub esile õige vastuse. Samuti kui esitada tuttavaid elemente mittetuttavas kontekstis või ebasobilikul teel, kutsub see esile segadust ja mittemõistmist. Vaadates joonist 3.1, näeme, et esimesel elementide paigutuse viisil (A) on sarnased elemendid selgemini äratuntavad kui teisel juhul (B). [3, lk 2] Joonis 3.1: visuaalne äratundmine elementide paigutuse abil

11 Taju püsivus see on kui hoida igat elementi geomeetriliselt konstantsena. See on võti, et kindlustada mõistmist ning see on oluline sellepärast, et oma mõistuses me seostame uusi kujundeid varemomandatutega. See on eriti tähtis, kui me kasutame intuitiivset mõtlemist, et seostada mudeli elemente reaalse elu objektidega. Intuitiivne mõtlemine toetub mudeli vaataja tavalisele kogemusele järeldada õigesti sümbolite tähendust. [3, lk. 2-3] Näiteks liiklusmärgid kasutavad sageli intuitiivseid sümboleid metafoore (joonis 4.2): Teetööd; Metsloomad teel; Jalakäijad teel. Joonis 3.2: liiklusmärgid kasutavad metafoore Tarkvaras kasutatakse samuti metafoore. UMLi kasutuslooskeemid on lähedased intuitiivsetele mudelitele: kriipsujukud kujutamaks süsteemi kasutajaid. Kuid kasutatakse ka teistsuguseid kujundeid ning seetõttu peavad modelleerijad lisama tekstilisi juhtnööre, et vaatajad tõlgendaksid visuaalseid elemente korrektselt. Joonis 3.3 näitab erinevust ebaefektiivse ja efektiivse diagrammi vahel. Ebaefektiivsel diagrammil vasakul on kasutatud mittekirjeldavaid märgistusi A, B. Parempoolsel diagrammil on aga kirjeldavad nimed märkimaks süsteemi kasutajaid ja tegevusi. Mustad nooled, pastelsed värvid ja horisontaalsed/vertikaalsed jooned on kasutatud diagrammis, et aidata vaatajal kiirelt aru saada diagrammi elementidest. [3, lk. 3]

12 Joonis 3.3: ebaefektiivne (vasakul) ja efektiivne (paremal) diagramm 3.2 Visuaalse ülekoormuse vältimine Et vaatajad sümbolitest korrektselt aru saaksid, tuleb lisada diagrammi rohkem informatsiooni. Kuid sellega tuleb olla ettevaatlik, et vältida visuaalsed ülekoormust. Tihti ei ole kasulik kogu infot ühe korraga avada. Mitmed tehnikad on võimelised kontrollima seda, kui palju ja kuidas info vaatajateni jõuab. Sinna hulka kuuluvad järk-järguline avaldamine, detailide peitmine, süsteemi detailide eraldamine ja kiht kihiline esitlemine. [3, lk. 4] Järk-järguline avaldamine (Progressive disclousure) Järk-järguline avaldamine annab vaatajale järgemööda detailsemat informatsiooni mingist elementide hulgast. Selline kasvav info esiletoomine võimaldab vaatajal säilitada seost elementide vahel järjest kasvavas keerulises mudelis. [3, lk. 4] Joonistel 3.4 A-C olev klassiskeem on järk-järgulise avaldamise näiteks. Joonistele 3.4 B ja C on lisatud täiendavaid elemente.

13 Joonis 3.4 A: seosed raamatukogus olevate raamatute, raamatukogu ja lugejate vahel

14 Joonis 3.4 B: eelneval joonisel olevatele seostele lisandub statistika laenutuste kohta, nõudluse kontroll

15 Joonis 3.4 C: eelneval joonisel olevatele seostele lisandub nõudluse kontrolli täpsustus: nõudlus raamatute järgi ja lugejate soovid

16 Joonis 3.5 näitab järjestikuse avaldamise teistsugust vormi. Elementide ühenduste juures on äratoodud ka kordsused, rollid. Joonis 3.5: elementide ühenduste juures on ära toodud kordsused ja rollid Detailide peitmine (Detail hiding) UML näeb ette laialdast informatsiooni tarbimist. Eriti struktuursete elementide (klasside, ühenduste) kasutamist. Mudel võib sisaldada palju rohkem informatsiooni kui enamikele inimestele vaatamiseks vaja. Esmane UML diagrammide eesmärk on võimaldada disaineritel ja programmeerijatel mõistlikult arutleda väljundsüsteemi elementide üle. Need diagrammid ei ole detailsed konstruktsioonprojektid, nagu on ehitusprojektid. Iga meetodi, atribuudi, rolli, kordsuse ja nii edasi lõplik väljatoomine iga süsteemiklassi kohta muudab diagrammi segaseks, arusaamatuks ja lõppkokkuvõttes kasutuks. [3, lk. 6] Üldisel süsteemikirjeldusel ei ole näiteks kõigi atribuutide ja operatsioonide väljatoomine mõistlik.

17 Joonis 3.6: detailide peitmisel jäetakse ära atribuudid ja operatsioonid Eraldamine ja kiht-kihiline esitlemine (Layering and separation) Süsteemi elementide eraldamine ja kiht-kihiline esitlemine on sarnased järk-järgulisele avaldamisele. Kuid see tehnika on efektiivsem ühendamatute, kuid omavahel seotud esitluste jaoks. Näiteks inimkeha sisaldab mitmeid omavahel seotud süsteeme. Närvisüsteem ja lihassüsteem on olulised liikumiseks. Kui esitleda ühte nendest süsteemidest eraldi, siis ei saa kogu pilti sellest, kuidas toimub lihaste kokkutõmbumine liikumisel. Kuid kui esitleda mõlemat süsteemi üheaegselt võib tulemus olla visuaalselt segane. Parim lähenemine on eraldada need kaks vaadet. Esmalt esitleda pilt lihassüsteemist ja seejärel järkjärgult tuua juurde närvisüsteem. Sellisel teel vaataja näeb esmalt ühte süsteemi isoleeritult ning kiht-kihilise esitlemise tõttu tekib mõistmine esimese ja teise süsteemi seotuse üle. Tarkvaraarenduse juures saab kasutada sarnast lähenemist. [3, lk. 6-7] 3.3 Efektiivse diagrammi esteetika Diagrammide esteetika hõlmab rohkem kui ilusate piltide loomist, see on efektiivse mudelivaadete loomine. Mudeli diagrammid ei ole nagu abstraktne kunst, vaid see eeldab maksimaalset selguse taset. Rohkem tähelepanu tuleb pöörata joontele ja kontuuridele, mõõdule ja proportsioonile, tasakaalule, värvidele ja diagrammielementide üldkompositsioonile. Need on olulised mudeli informatsiooni meelespidamisel. [3, lk. 7] Joon ja kontuur (Line and contour) Jooned on olulisteks elementideks paljudes diagrammides. Need on eriti olulised UMLi põhistel diagrammidel, kus jooned tähistavad erinevaid suhteid elementide vahel. Näiteks tüüpilisel klassdiagrammil on kaks põhilist joonte vormi [3, lk. 7]: pidevjoon; punktiirjoon; ja palju nooleotsi:

18 erinevad nooled üldistussuhte seose näitamiseks; lihtne pidev nool ühendamiseks; teemantlõpuga nool näitamaks sisaldust: 1. seest täis kompositsioon; 2. seest tühi agregeerimine. Joone vorme tuleb valida hoolikalt kuna iga joone variant on erineva tähendusega. Kõik suhtejooned (relatinship lines) peavad olema võrdse kaaluga ja sobima kontuurjoontega. Kui suhtejooned ei ole sobilikus kaalus, põhjustavad nad vaatajas segadust ning paksemad jooned rõhutavad tähtsust, kuigi seda vaja pole (joonis 3.7 A). Kui kontuurjooned on liiga rasked, suruvad nad alla suhtejooned ja teevad ülddiagrammi raskemini mõistetavaks (joonis 3.7 B). [3, lk. 7-8] A Joonis 3.7 B Joontekasutuse teine valik on kasutada kas horisontaalseid/vertikaalseid või kaldjooni. Kaldjooned võivad olla mistahes nurga all. Kaldjooned teevad diagrammi visuaalselt rohkem segaseks, sest nad on mitteregulaarsed. Meil on lihtsam tajuda täisnurki ja regulaarseid kujundeid. [3, lk. 8] Vaadates joonist 3.8 näeme, et parempoolsest joonisest on märksa lihtsam aru saada.

19 Tüüpiliselt me loeme tekste vasakult paremale ja ülevalt alla. See mõjutab seda, et me ka diagramme loeme sarnasel teel. Me eeldame, et üleval vasakus nurgas olev informatsioon on alguspunkt ja all paremas nurgas lõpppunkt. [3, lk. 8] Seepärast on parempoolne joonis palju mugavam enamikele vaatajatele. Joonis 3.8 Tähtis on ka vältida ristuvaid jooni ja sõlmi diagrammides. Mitmed ristuvad jooned tekitavad ämblikuvõrgu efekti: silm ei ole võimeline kaua mingit joont jälgima kui see lõikub teiste joonte või objektidega. Eriti kehtib see kaldjoonte puhul. Peaaegu alati on võimalik vältida ristuvaid jooni paigutades elemente ringi (vt. Joonis 3.9 A, 3.9 B). Kui ristuvaid jooni pole võimalik vältida, tuleks joonte ristumiskoht viia 90º nurga alla. See vähendab negatiivset efekti. [3, lk. 9]

20 Joonis 3.9 A Joonis 3.9 B Mõõt ja proportsioon (Scale and proportion) Diagrammid sisaldavad sageli mitmeid objekte samas vaates (näiteks mitmeid kaste). Mõõt näitab ülddiagrammi suurust, proportsioon näitab iga diagrammi elemendi suhtelist suurust. Nii mõõt kui ka proportsioon peavad olema tasakaalus, et saavutada visuaalselt meeldivat diagrammi. Esimene proportsiooni reegel on kuldlõige, mis on suhe ligikaudu 1:1,62. [3, lk. 10] Kuldlõige (jumalik proportsioon) on suhe, mida võib tähele panna väga paljudes kohtades. Kuldlõige on lõigu jaotamine kaheks nii, et lõigu pikkus suhtub pikemasse osasse nii nagu pikem osa suhtub lühemasse. Kuldlõike suhtearv, mille ligikaudne väärtus on

21 , on irratsionaalne avaldis. Jumalik proportsioon esineb paljudes huvitavates seostes [10]. Antiik kreeklased avastasid mitmeid looduslikke objekte, nagu männi käbid, lilled, loomade kilbid ja kojad, mis olid oma proportsioonidelt sama suhtega [3, lk. 10]. Kuldlõige sai suurema avaliku tähelepanu osaliseks renessanssi-ajastul. Just siis oli oluline jumalike sõnumite edastamine.kuldlõike termini võttis kasutusele Leonardo da Vinci. Kui me mõtleme, et mingi asi on heas tasakaalus, siis peame silmas just kuldlõiget. Taju otsib tasakaalu (ja see ei ole 1:1). [6] Joonis 3.10: spiraalis olevad lõigud on kuldlõikes [5] Joonis 3.11: teokarbid, kus järjestikuste segmentide suhe on kuldlõikes [5] Diagrammide loomisel on see suhe (1:1,62) kõige kasulikum, kui luuakse nelinurkseid objekte. Joonisel 3.12 A oleval olekuskeemil on kõik elemendid erinevate suurustega. Joonisel 3.12 B on iga element oma proportsioonidelt kuldlõikes. Nagu näha on joonis 3.12 B visuaalselt palju parem. Erinevused elementide suuruses muudavad diagrammi sisust arusaamise raskemaks. Ühesugune elementide suurus vähendab visuaalset pinget ja lubab vaatajal keskenduda mudeli sisule mitte presentatsiooni detailidele. [3, lk ]

22 A Joonis 3.12 B Tasakaal (Balance) Tasakaal tähendab elementide asetust diagrammis. Enamikel juhtudel on soovitav elemendid paigutada sümmeetriliselt (nii vertikaalselt kui ka horisontaalselt). See tähendab, et vasakul peab olema sama palju elemente kui paremal ja ülal sama palju kui all (joonis 3.13). [3, lk. 11] Joonis 3.13 Enamik inimesi leiab, et sümmeetriliselt paiknevate elementidega pildid annavad edasi stabiilsust ja rahulikkust. Sümmeetrilised pildid peegeldavad paljusid elus asju, mis on radiaal- või telg- (bilaterally) sümmeetrilised. Ebasümmeetrilisi diagramme saab kasutada

23 kui tahetakse näidata aktiivsust või liikumist. Samuti spetsiifilise elementide gruppi rõhutamiseks. Diagrammis, mille fookus on keskpunktis, viib tähelepanu keskpunkti. Kui elemendid on koondunud diagrammi äärtesse, viib see tähelepanu keskpunktist eemale. Kuid kui selliseid asümmeetrilisi diagramme ei konstrueerita hoolikalt, võivad nad olla seostamatud ja segased. [3, lk. 11] Värv (Color) Värvide teooria on suur teema, mida on laialdaselt käsitletud paljudes väljaannetes. Arusaamad sageli baseeruvad kogemusel. On selge, et värve saab kasutada efektiivselt mudeli elementide eristamiseks, kuid seal ei ole kindlat teooriat selle kohta, millised värvikombinatsioonid on kõige efektiivsemad. Värvid võivad teha suuri muutusi diagrammi esteetilises kvaliteedis ja sisust arusaamisel. Kuid värvid võivad põhjustada samuti visuaaset lärmi, segadust ja isegi ebamugavust vaatajale. Kõige tavalisem värvisuhete esitlus on värviring, mille avastas Isaac Newton 1666 aastal. Traditsiooniline värviring (joonis 3.14) näitab nähtavat värvispektrit. Põhivärvideks on punane, sinine ja kollane. Neid värve saab omavahel segada kõikideks teisteks nähtavateks värvideks. [3, lk. 12] Joonis 3.14: värviring Inimsilm tajub kõiki värve läbi spetsiaalsete struktuuride kompleksi võrkkesta (retina) tagumises osas, mis reageerivad närviimpulssidega erinevatele valguse lainepikkustele. [8]

24 Joonis 3.15: silm [8] Hilisemates avastustes anatoomias ja psühholoogias on esikohal teooriad, mis käsitlevad punast, sinist ja rohelist kui esmaseid värve, sest need on need värvid, mida kolm tüüpi võrkkesta kolvikesi meie silmas suudavad tajuda. [8] Joonis 3.16: eri tüüpi võrkkesta kolvikeste paiknemine silmas [8] Teadmised inimpsühholoogiast aitavad meil tuletada mõned reeglid värvide kasutuse kohta diagrammis. Need reeglid arvestavad nii võrkkesta kepikeste ja kolvikeste jaotusega kui ka muutustega läätses, et korralikult kujutist näha. Värviliste diagrammide loomisel tuleks arvestada järgnevat [3, lk. 12]: 1 Üheaegselt mitte kasutada küllastunud värve. See põhjustab silmade läätsedes järske muutusi, mis viib silmade väsimiseni. Küllastunud värvid tuleks asendada näiteks pastelsetega või muude värvidega, mis paiknevad spektris lähestikku. 2 Mitte kasutada puhast sinist tekstis, peenikestes joontes ja väikestes kujundites. Kuna võrkkesta keskel puuduvad kolvikesed, mis reageerivad sinisele, ei näe me neid elemente korralikult. Kuid helesinine on väga hea taustavärv. Samuti tuleks

25 vältida lähedasi siniseid toone, mis erinevad ainult intensiivsuse poolest. Vastasel juhul pole kujutised kuigi teravad. 3 Hele-tumeduselt võrdseid värve on raske kõrvuti või üksteise taustal vaadata, sest nende piire on silmal raske tajuda ja seetõttu hakkavad need virvendama. Mida kontrastsemad on üksteisega külgnevad värvid, seda kergem on neid tajuda. 4 Värviaisting sõltub vanusest, soost ja tervislikust seisundist. Vanemad inimesed, mehed ja värvipimedad tajuvad värve nõrgemalt kui noored, naised ja terved inimesed. 5 Peab olema teadlik ümbritsevast valgustuse tasemest. See mõjutab seda, kuidas me tajume värvivarjundeid. Vältida õrnu värvivarjundeid elementide eristamiseks. 6 Sama värvitoon mõjub erinevas keskkonnas erinevalt. Valge taust ei mõjuta värvi tajumist, seega mõjub tumepunane ristkülik valgel taustal tumepunaselt. Hele taust aga rõhutab värvi tumedust ja seetõttu mõjub tumepunane ristkülik helepunasel taustal veelgi tumedamalt, peaaegu lillakalt. Seevastu tumedal taustal tajume värvi veelgi heledamana, kui see tegelikult on. 7 Kasutada musti kontuurjooni teravustamiseks. Ainult värvidel on raske teravust saavutada. 8 Kuna kolvikesed, mis reageerivad punasele ja rohelisele paiknevad võrkkesta keskel, vältida punase ja rohelise värvi kasutamist suure diagrammi äärtes. 9 Vastandvärvid kui ka naabervärvid sobivad hästi kokku. 10 Väheste värvide kasutamisel mitte kasutada koos punast ja rohelist või sinist ja rohelist. See on oluline kõige sagedasema värvipimeduse vormi (punane-roheline) puhul, samuti vähem sagedase vormi (sinine-roheline) puhul. Umbes 9% elanikkonnast kannatab mingit tüüpi värvipimeduse all. 11 Värvid monitoril ei sobitu täpselt värvidega prinditud lehel. Mõni põhivalem esteetiliseks värvikombinatsioonide kasutamiseks põhineb sellel, kuidas meie aju tõlgendab värve (tunnetuslik mõtlemine). Näiteks meeldiv värvikombinatsioon koosneb kolmest külgnevast värvist värviringil, kus üks värv domineerib teiste üle. Atraktiivne täiendav värvikombinatsioon koosneb kahest värvist, mis on värviringil üksteise vastas. Kahte värvust, mille liitudes tekib valge värvus, nimetatakse teineteise suhtes täiendvärvusteks. Värviringil asuvad täiendvärvused vastakuti ja on ühendatud mustade nooltega. [7]

26 Joonis 3.17: teineteise suhtes täiendvärvused Naturaalsete värvide kombinatsioonid, nagu metsa pruuni, rohelise ja halli varjundid, näivad vaatajale tuttavad ja meeldivad, kuigi nad ei lange standardsetesse suhetesse värviringil. Küllastunud või põhivärve tuleb kasutada kokkuhoidlikult, kuna nad nõuavad tähelepanu ja võtavad ära tähelepanu teistelt elementidelt. Tugevate värvide ülekasutus samuti väsitab ja varjutab teksti, mis paikneb tugevasti värvitud objektide peal või lähedal. Joonisel 3.18 A värvid aitavad meil elemente grupeerida ja eristada, tekst on kergesti loetav ning kõik elemendid näivad sama tähtsusega. Joonisel 3.18 B küllastunud sinine varjutab teksti, erepunane loob eksitava fookuse ja ereroheline tõmbab tähelepanu diagrammi äärtesse ilma silmnähtava põhjuseta. Joonis 3.18 A

27 Joonis 3.18 B Rõhutamine (Emphasis) Visuaalne rõhutamine diagrammis ei tohiks olla väga silmatorkav, kuid siiski selge ja efektiivne. Iga väiksem muutus diagrammis võib muuta elemendi suhtelist positsiooni. See põhineb Geštalt printsiibile elementide grupeerimisest või naaberelementide ühendamisest. Elemente saab rõhutada ka isoleerides neid teistest elementidest. Elemente on võimalik rõhutada, muutes nende kuju või proportsiooni. Näiteks kui on üks ristkülikukujuline element ja kõik teised on ruudukujulised, siis ristkülikukujuline element püüab rohkem tähelepanu kui ruudukujulised. Samuti saab rõhutamiseks kasutada värve. Mõistlik värvikasutus juhib vaataja tähelepanu kõige tähtsamatele elementidele. Kuid värve tuleb kasutada hoolikalt. Värve valesti kasutades, võib see rõhutada valesid elemente ja viia visuaalse segaduseni. [3, lk ] Kordamine ja rütm (Repetition and rhythm) Sama tüüpi diagrammides peaks elementide suurus ja positsioon olema sama. Näiteks kui kasutada järjestikuse avaldamise tehnikat, peab alusdiagramm olema kooskõlas järgnevatega. Kui luua mitmeid mudelivaateid, saab anda järjekindla rütmi säilitades

28 ülddiagrammi suuruse ja tasakaalu, isegi kui esitleda informatsiooni erinevatest süsteemi osadest. [3, lk. 15] Kooskõla ja harmoonia (Unity and harmony) Geštalt teooria järgi püüavad inimesed tuua terviklikkust visuaalsete elementide sekka. Sest see on efektiivne elementide grupeerimiseks, mis paiknevad kõrvuti või omavad samu omadusi (kuju, värv, suurus). Inimene õpib neid kognitiivseid omadusi väga varases lapsepõlves, et mõista ja tajuda informatsiooni. Ta püüab näha tuttavlikku mittetuttavates elementides, et mõista uut keskkonda ja vältida segadusse sattumist. Diagramme luues on oluline tuua sisse tuttavaid elemente, mis on ankruks vaatajale, et avastada uut informatsiooni. Joonistel 3.4 A-C on paigutatud uus informatsioon olemasolevate elementide ümbrusesse. Mudeleid luuakse selleks, et käsitleda mingit kindlat teemat. Iga diagramm kirjeldab ühte selle teema aspekti. UMLi mudelid kirjeldavad tarkvara süsteemi arengut (alustades kasutuslugudest, seejärel liikudes läbi analüüsi ja projekteerimise realisatsioonini). Iga teemaosa peaks viima iga teise teemaosani. See on sama oluline kui mudeli sisu, kui saadakse kogu teemast aru läbi üheainsa esitluse. Näiteks kui mõelda novelli sisule, iga uus tegevus on seotud mingil moel varasema tegevusega. See viib lugu edasi ja annab kooskõlalisuse ja sidususe. [3, lk ] 3.4 Esitlus (Presentation) Mudeli esitlusel on erinevaid võimalusi. Skulptor võib suure marmorist kuju esitlemiseks luua väikese kolmemõõtmelise savist kuju. Arhitekt võib esitleda ehitist luues väikese mudeli puidust, paberist või mõnest muust materjalist. UMLi mudeleid saab esitleda neid seinale kuvades või väljatrükina. [3, lk. 16] Kuvamine seinale (Screen projection) Kuna arvuti monitori suurus ja vaatenurk on piiratud grupis töötamisel, on võimalik mudelit näidata seinale või ekraanile. Selle meetodi juures on võimalik kasutada kaardikeppi või pointerit (laser-osutit). See meetod võimaldab kiirelt ja täpselt esile tõsta mudelit koos kommentaaridega ja korrektuuridega ning hõlbustab diskussiooni. [3, lk. 16]

29 3.4.2 Väljatrükk (Hard copy printouts) Mudelitest saab teha väljatrükke printeri, plotteri abiga. Väljatrüki eelis on see, et seda saab esitleda vahetult ja kirjutada kommentaare vaatamise ja arutelu käigus. Suur väljatrükk lubab näha olulist osa mudelist antud hetkel. Enamus mudeleid ei mahu hästi A4 formaati, seega läheb vaja laia kirjutajaga printerit. Kuid enamasti maksavad nad küllaltki palju. Väikese rühmaga aruteluks on head A2 formaadis väljatrükid ning A1 formaadis seinale asetamiseks. [3, lk. 16]

30 Kokkuvõte Mudelid on väga olulised kui tahetakse teistele selgeks teha keerulisi süsteeme, nähtusi, mõisteid jne. Et mudeleid efektiivselt koostada, tuleb mõista kuidas info inimeste vahel levib. Selleks on koostatud mitmeid kommunikatsioonimudeleid. Tarkvaraarenduses kasutatakse mudeleid laialdaselt. Mudel võib olla nii tekstiline kui ka graafik, joonis vms. Et graafikuid paremini mõista, peavad nad visuaalselt korrektselt koostatud olema. Antud töö koostamisel sai tutvutud materjaliga. Kasutatud on peamiselt ingliskeelseid materjale. Tutvutud on UML-diagrammide koostamise tarkvaraga Poseidon for UML Community Edition 3.2. Diagrammide kujunduse poole pealt ei saanud antud programmiga noolte ega ka kontuurjoonte paksusi muuta, mida programmi puuduseks lugeda ei saa. Koostatud materjaliga võiksid tutvuda UML-i skeeme õppivad üliõpilased.

31 Kasutatud kirjandus [1] Ben Lieberman The art of modeling: Constructing an analytical framework ibm.com/developerworks/rational/library/content/RationalEdge/aug03/f_modeling_bl. pdf [2] Ben Lieberman The art of modelling: Model organization and construction ibm.com/developerworks/rational/library/content/RationalEdge/nov03/f_art_bl.pdf [3] Ben Lieberman The art of modeling: Visual composition [4] Ian Sommerville Software Engineering, 2001 [5] The Nautilus Shell Spiral [6] Mis on kuldlõige es [7] Värviring [8] Physiological Principles for the Effective Use of Color [9] ENE 3 [10] ENE 4 [11] EE 6 [12] EE 9 [13] Claude E. Shannon "A Mathematical Theory of Communication" unication&hl=et [14] Liina Lang "UML-i õppematerjal", bakalaureusetöö, 2003 [15] UML keele sõnastik