jazyk uml – unified modelling · pdf fileštrukturálne uml diagramy o...
TRANSCRIPT
JazykUML–unifiedmodellinglanguage- VšeobecnýmodelovacíjazykpreSWinžinierstvo- Od1997JetoštandardskupinyObjectManagementGroup(OMG)- Niejetometódatvorbyarchitektúry,tošpecifikujúRUP,TOGAF,...- UMLposkytujeprostriedkyakoarchitektúruvizuálnepopísať-špecifikujeveľadruhovdiagramov
Štrukturálne UML diagramy
o Diagramtried(classdiagram)§ Vyjadrujúlogickúštruktúrusystému,akéatribútymajúaakosasprávajú(užsmemaliveľapríkladov...)
o Diagramkomponentov§ Závislostimedzikomponentamiaichorganizácia
o Diagramnasadenia§ Akoakdeječonasadené,čosakdevykonáva
o Diagrambalíkov§ Organizáciaprvkovdobalíkovazávislostimedzinimi
o Diagramobjektov§ inštancietriedaichvzťahyvnejakomčase
o Kompozitnýdiagram§ odrážainternúspoluprácutried,rozhraníakomponentovatýmpopisujefunkcionalitu
Príklad – diagram komponentov - príklad [AdminComponent]:
Vysvetlivky
- port - rozhranie
Príklad - Diagram nasadenia (deployment diagram)
Hardvérové zariadenia sú zobrazené ako uzly. Medzi uzlami sú vzťahy, ktoré odpovedanú fyzickému nasadeniu zariadení.
uzol, zariadanie, prostredie, ...
Príklad Diagram balíkov (package diagram)
Diagram balíkov znázorňuje organizovanie elementov do balíkov a závislosti medzi balíkmi. Vizualizuje aj priestory mien (namespaces).
balík
Diagram objektov (object diagram) Diagram tried Diagram objektov
, Diagram objektov • znázorňujeinštancietriedaichvzťahyvnejakomčase• objektymajúnázvy,používasanotácia<názov_objektu>:<názov_triedy>
Kompozitný diagram (composite structure diagram) • odrážainternúspoluprácutried,rozhraníakomponentovatýmpopisujefunkcionalitu
Definovanie spolupráce (collaboration) Využitie zadefinovanej spolupráce (collaboration use / occurecne)
Na rozdiel od diagramov tried, ktoré popisujú statické štruktúry a vzťahy • Kompozitnédiagramymodelujúšpecifickévyužitieštruktúry,Run–timevzťahy,vzorypoužitia,...• Bestspracticejemodelovať„spolupráce“abyvytváraliznovuvyužiteľnévzory
Behaviorálne UML diagramy - Diagramyaktivít
o Modelujúsprávaniesasystémuaspôsobakýmjetotosprávaniepreviazanéstokominformáciívsystéme
- Diagramypoužitia(Usecasediagram)o previazaniamedziaktérmiačinnosťami,ktorépomocousystémumôžuvykonávať.Popisujúsafunkčnépožiadavkynasystém–akoaktérisosystémompracujúaakosystémreaguje.
- Stavovédiagramyo Stavovédiagramyilustrujú,akosaelementmôžepresúvaťmedzistavmi,súvysvetlenéspúšťačeapodmienky(tentodiagramsmevyužilipripopisestavovtranzakcie)
- Časovédiagramyo Správaniesaviacerýchobjektovvnejakomčasovomúseku
- Sekvenčnédiagramyo Popisujúsprávaniesapomocousekvenčnýchkrokovvčase.
- Komunikačnédiagramyo Popisujúinterakciemedzielementamivčase–vývojvzťahovmedziobjektami
- Diagramisprehľadominterakcii
Diagram aktivít (activity diagram)
Diagramy aktivít sú používané na modelovanie správania sa systému. Môžu sa takto popisovať procedúry. Aktivity môžu byť súčasťou procesov, workflowov atď...
začiatok, koniec, rozhodnutie, fork/spájanie, očakávanie (vstupné/výstupné parametre), aktivia
Diagram prípadov použitia (use case diagram)
Diagram prípadov použitia mapuje previazania medzi aktérom a činnosťami, ktoré pomocou systému môže vykonávať. Dá sa použiť ako • popisfunkčnýchpožiadavieknasystém
• popisinterakcieaktérovsosystémom
• popisodpovedísystému
prípad použitia (UC), aktér, poznámka, UC zo štruktúrou
Pozor: každý prípad použitia (ako kompozitný element – v EA klik pravou myšou -> New child ...) môže obsahovať kombináciu dcérskych diagramov (Sequence, Communication, Activity, State Machine ... ), ktoré vo väčšom detaile definujú ako sa to má implementovať. Samotná implementácia prípadov použitia je realizovaná pomocou tried, komponentov, rozhraní, ... v ich vlastných diagramoch.
Diagram časovania (timing diagram)
Správanie sa viacerých objektov v nejakom časovom úseku. Využíva sa • najmäna:popisHWkomponentov,embeddedSWkomponentovnamikrokontolleroch,...
• Taktiežpripopiseprocesov,ktorésúspúšťanéčasom.
Sekvenčný diagram (sequence diagram)
Popisuje správanie sa pomocou sekvenčných krokov v čase. Použitie: Popis Workflowu, spracovania správ (tok informćie a zodpovednosti), kooperácie elementov. Dopĺňa prípady použitia – využijú sa aktéri a elementy z prípadov použitia a namodeluje sa sekvencia krokov, ktoré presne vedú k splneniu požadovanej úlohy.
, , , objekt a jeho čiara života, správa/volanie
Komunikačný diagram (communication diagram)
Komunikačný diagram ukazuje interakcia ako sekvenčný diagram. Komunikačný diagram kladie dôraz na vizualizáciu vzťahov a nie na časovú mierku. Komunikačný diagram potrebuje číselné zoradenie správ a prípadné vnorenia. Číslovacia schéma môže byť napr.: 1, 1.1, 1.2 2, 2.1, 2.2, 2.3 3, 3.1, 3.2, 3.3
,
Modelovanie požiadaviek – diagram požiadaviek (requirements) • PatrímedziCustomdiagramy.• Každápožiadavkajemodelovanáako„Requirementelement“.• Tietoelementymôžumaťvzťahsinýmipožiadavkami,• Tietoelementymôžumaťvzťahsprípadmipoužitiaakomponentami.Totosasledujeviných,tzv.traceability
diagramami.
Traceability diagramy • Požiadavkysúrealizované(implementované)pomocouPrípadovpoužitia,tried,Interfejsov,Komponentov.• OznačujesatoUMLvzťahom„realizácia“
• Ďalšievzťahysadajúzaznamenávaťpomocouvzťahu„trace“
Doménový model (Domain model)
• Doménovýmodeljekoncepčnýmodel,ktorýdefinujefyzickéaabstraktnéobjektyktorésavprojekte/doménevyskytujú
• Dokumentujevzťahymedzizodpovednosťamikoncepčnýchtriedo tosúinétriedyakotiezOOPo reprezentujúkoncepciuskupinyvecí
• Definujepojmy,ktorésavprojektevyskytujú
• Doménovýmodelukazuje:o fyzickéaorganizačnéjednotkyo vzťahmedzitýmitojednotkamio multiplicitutýchtovzťahov
• Modelujesapomocouo diagramutriedo E-Rdiagramom
• VariantajeBiznisdoménovýmodelo Poskytujebiznisslovník–pojmya
faktynazákladektorýchmôžubyťdefinovanébiznispravidlá
UIDiagram• Prispôsobené(customized)UMLdiagramy,ktorévizuálnereprezentujúpoužívateľskérozhraniepomocouriadicichprvkov,nadpisov,...
• Niekedysarobí„drotenýmodel“(wireframe)• Vnávrhujepotrebnéokrempopisuprvkovobrazovieknavrhnúťajprechodymedziobrazovkami
Diagramtokudát(dataflowdiagram)
• Proces=proces,aleboaktivita,vktorejsúdatapoužívanéalebogenerované
• Externé=externýzdrojdát
• Dátovéúložisko–internéfyzickéúložiskoúdajov
• Brána–reprezentujekoncovýbodvstupných/výstupnýchsprávprikomunikáciisinýmiprocesmi
, , , ,
Opakovaniezprvejprednášky-Typickéfázyprocesyvývojapripoužitívodopádovejmetodológii• Zberaanalýzapožiadaviek• Návrhriešenia• Vývoj/implementácia• Testovanie• Integrácia• Nasadenie• Údržba
Terazlepšiepopíšemetietofázyadokumenty,ktoréprinichvznikajú
Fáza1:Zber a analýza požiadaviek (vytvoreniepožiadavieknariešenie)Cieľ:vytvoreniepožiadavieknariešenie,neuvažujesanadkonkrétnymspôsobomrealizáciepožiadaviek.
Aktivity• Štúdiarealizovateľnosti(vrátanečastiCostBusinessAnalysis–CBA).Odpovedánaotázky:
o AkoprispejeSWkobchodnýmcieľomorganizácie?o JemožnéintegrovaťSQkexistujúcimriešeniam?o JepotrebnýnovýHW,poprípadenovýSW?o Dásarealizovaťsdanýmizdrojmiavdanomčase?
• Zberaanalýzapožiadaviek• Definíciaašpecifikáciapožiadaviek
Účastníci:• Používateľ(zákazník)–pozor,častovpodstatezákazníkneviečochceavyjdetonajavoažpočasprocesu
tvorbypožiadaviekasystematickéhopopisupotreby• Analytik(môžebyťodzákazníka,alebozavolanýnavykonaniaanalýzy,…atď)
Metódyprocesu• Rozhovorsozákazníkom,prípadnedotazníky• Monitorovaniepracovnýchpostupovzákazníka,Priamaúčasťnaprácachzákazníka• Analýzaexistujúcehosoftvéru,analýzaaštúdiumdokumentovaštandardov• Výsledkyprocesujetrebaajpriebežnepísomnezaznamenávať
Fáza1:Zber a analýza požiadaviek (vytvoreniepožiadavieknariešenie)|2Typypožiadaviek:1. Funkčné-Určujúchovanie,funkciesoftvéru–čotomárobiť(čomábyťvýsledkom)anieakotomádosiahnuť.
2. Nefunkčné-Špecifikujúvlastnostiaobmedzujúcepodmienkydanéhosoftvérua. Požiadavky na prevádzku systému (počet používateľov, ...)b. Požiadavkynasoftvér(efektívnosť,bezpečnosť,HWprostredie,OS,inýspolupracujúciSW)c. Externé požiadavky (legislatívne, etické požiadavky)
Čostanovujúpožiadavky?
Neformálnarovina FormálnarovinaIEEE830-1998
• Na čo bude SW slúžiť • Aké informácie sa budú uchovávať • Kto ho bude používať • Aké funkcie, operácie bude zabezpečovať • Aké sú vstupy a výstupy • Aké sú interakcie s inými systémami.
“Špecifikácia požiadaviek” • Prirodzený jazyk • Formuláre • Prípady použitia • Pseudokódy, scenáre, ...
Vysledoktvorbypožiadaviek-forma• SpravidlaŠpecifikáciapožiadaviekjevdokumente„výzvanapodávanieprojektov“(RFPrequestforproposals)
o Pozor,nepomýliťsisRFI–requestforinformation.totojenezáväznévyžiadaniestanoviska/názoruodperspektívnychuchádzačovvpriebehufázyanalýzyatvorbypožiadaviek
o Spôsobvýberuriešiteľov§ Priameoslovenie§ Výberovékonanie
• Formálne• Vzmyslezákona(verejnéobstarávanie/elektronickéaukcie)
o 04.12.2016 bol v Zbierke zákonov publikovaný nový zákon o verejnom obstarávaní 343/2015 Z.z
• Inéformy,napr.nazákladezmluvy,obsahujú„popispožadovanéhotechnickéhoriešenia“...
NáslednékrokyZadávateľ Realizátor1) Vytvorenieponukyktoréobsahujenávrhriešeniavpožadovanomrozsahu,navrhujespôsobplneniapožiadaviek.
2) Vyhodnotenieponúkavybratievýhercu3) Spísaniezmluvy
4) Poskytnutiesúčinnosti 5) Podrobnýnávrhriešenia...
Formapožiadaviekareakciínane • Zvyčajnemákaždápožiadavkaidentifikátoratextovýpopisapožiadavkysúvtabuľkách• Zvyčajnejevponukenapísanéakopresnebolapožiadavkapochopenáaakýmspôsobomsasplní• Užterazjedôležitémyslieťnainterpretáciu,abynebolinezhodypriakceptáciiriešenia(rôznyvýklad,nekompletnárealizáciaatď...)
• Maleprojektymajúniekoľkodesiatokpožiadaviek,veľké(apremyslenépojekty)ajtisicaviac...
Študenti • Akostedostalisformulovanépožiadavkynariešenievášhozadania?• Bolistespokojnísdetailomzadania?• Boloprílišobmedzujúce,činaopakprílišvoľné?• Spĺňalobyttotozadanieajminiatúrneajgigantickériešenie?• T.j.bolozadaniedobréadostatočné?
o NedostatočnepremyslenézadaniejeOBROVSKÝPROBLÉM!Častosapodceňuje!•
Fáza2:NávrhriešeniaArchitektonickýnávrh• CelkovákoncepciaarchitektúrySW• Definíciafunkcionalitysoftvéru• PlánnasadeniaSW
Podrobnýnávrh• Návrhkomponentovsystému• Špecifikáciaošetreniachybovýchstavov
Fáza3:Implementácia• Kódovaniekomponentov• Dokumentáciekomponentov• Testovaniekomponentov
Fáza4:Integráciaatestovanie • Integrovaniekomponentovdomodulov• Testovaniemodulovaceléhosystému
Fáza5:Akceptačnétestovanieainštalácia• Testovaniepoužívateľom• Školeniepoužívateľom• NasadenieSW• Dodaniedokumentácie
o veľmivariabilné,rozsahzáležíodrozsahuprojektuadohodyo spravidlaminimálne
§ užívateľskápríručka(čosystémrobízpohľaduužívateľa-funkcionalitaaobrazovky)§ popistechnickéhoriešenia(architektúrasystému)§ administračnápríručka(nasadenieaadministrácia/prevádzkovanie)
Biznis procesy – BMPN & BPEL • BPMN=BusinessprocessModelingnotation• BPEL=Biznisprocessexecutionlanguage,jetoskratkanázvuWebServiceBPEL(WS-BPEL)
o jazychnaorchestráciu,ktorýjeserializovanývXMLo používaWSDL(WebServiceDescritpionLanguage)
BPMN príklad BPEL príklad
Biznis architektúra - Archimate diagramy • Cieľom Archimate štandardu je poskytnúť grafický jazyk na reprezentáciu enterprise architektúry
v čase vrátane plánovania zmien, migrácií a motivácií a dôvodov k nim. Archimate štandard je tesne zviazaný s TOGAF štandardom, napr. neposkytuje vlastné definície pojmov, ale používa TOGAF definície.
• Snahou TOGAFu (The Opeg Group Architecture Framework) je na základe komunitných štandardov popísať metódy a nástroje používané pri tvorbe architektúry.
• Základný referenčný rámec Verejnej správy (VS) SR vychádza z TOGAF a ArchiMate architektonických rámcov. Prispôsobený metamodel je kompatibilnou podmnožinou ArchiMate meta modelu a bude sa postupne, s rastúcou architektonickou zrelosťou VS, rozvíjať do úplného ArchiMate meta modelu.
• Jednotlivé vrstvy a aspekty s príslušnými konceptami sú definované nasledovne: o motivácia, o biznis architektúra, o architektúra informačných systémov (aplikácie a dáta), o technologická architektúra, o bezpečnostná architektúra o implementácia a migrácia.
Archimate–príklad
Príklady,naprvAV_EAVSSR_2014-2020_Architektonicke_ramce_VS.pdf[www.informatizacia.sk].Množinaprvkovjetakáto:
ObjektyvmenuSWproduktu“Archi”
TvorbaSWaCASEnástroje • CASE=computeraidedsoftwareengineering• Pojemvznikolccavr.1970• PokrývacelývývojovýcyklusSW,vrátane
o nástrojenanávrho generovaniekóduo automatickégenerovaniedokumentácieo prototypovanieo repozitáreo ďalšiepomocnénástrojenazvýšenieproduktivity
• natomtopredmetejevášCASEnástrojNetbeans...
XML• eXtensiblemarkuplanguage(značkovacíjazyk)• nemápreddefinovanéznačky(nagy,názvyelementov)• umožnujeopisovať(značkovať)ľubovoľnéúdaje• pomocouXSL(eXtensiblestylesheetlanguage)transformácie(XSLT)viemetransformovatXML
o nainéXMLo nainýformát,napr.doHTML
• XMLdokumentyspĺňajúXMLšpecifikáciuamajúsprávnuštruktúru,sanazývajúwellformed(správneštrukturované
• XMLdokumenty,ktorénaviacspĺňajúpožiadavkyschémdefinovanévjazykochDTD,aleboXSDsanazývajúvalidnéo DTD(documenttypedefinition)–schéma,resp.gramatika,ktorádefinuještruktúrudokumentuaplatné
elementyaatribútyo XSD(XmlSchemaDefinition)–samotnáschémajenapísanavjazykuXML
§ Príkladnapr.nahttp://www.w3.org/TR/xmlschema-0/• XMLjetextovýformát,akokódovaťbinárneúdaje
o Pomocoubase64(RFC4648)§ <stuff dt:dt="binary.base64">84592gv8Z53815Zb82bA68g</stuff>
o XOP(XML-binaryOptimizedPackaging)–mechanizmus,ktorýumnožňujeobchádzaťbase64enkódovaniebinárnychinformácií,pomocoumultipartMIME...
§ http://www.w3.org/TR/xop10/• Netbeans-akoriadnyCASEnástroj,obsahujexmleditorà
Príklad XML/XSD z http://www.w3.org/TR/xmlschema-0/
WSDL
• WSDL=Webservicedefinitionlanguage• SpravidlaopisujeSOAPkomunikáciu
o SOAP=SimpleObjectAccessProtocol,protokolnavýmenusprávzaloženýnaXMLo nástupcaXML-RPC
• JezapisanývoformáteXMLo Špecifikáciajeprístupnánahttp://www.w3.org/TR/wsdl20/
• Napr:o https://www2.uvo.gov.sk/sluzby1
§ Zoznampodnikateľov:http://www2.uvo.gov.sk/uvoservices/RegPod?wsdl§ Vestníkverejnéhoobstarávania:http://www2.uvo.gov.sk:80/uvoservices/Vestnik?wsdl
o http://nipi.sazp.sk/arcgis/services/env_zataze/environmentalna_zataz/MapServer?wsdl§ Službysúnaďalšomslide(vizualizáciaponaimportovaníWSDLdoEA)
• NetbeansviewpracovatsWSDLo PomocouJAXB(JavaArchitectureforXMLBindingAPI)vienapr.generovatkomplettriedynazákladezadaniaURLsWSDL
§ § viacnapr.tuhttps://netbeans.org/kb/74/websvc/jaxb.html
Príklad WSDL (http://www2.uvo.gov.sk/uvoservices/RegPod?wsdl)
http://nipi.sazp.sk/arcgis/services/env_zataze/environmentalna_zataz/MapServer?wsdl • Služby-vizualizáciaponaimportovaníWSDLdoEA
Iné zaujímavé a dôležité témy, ktoré sme neprebrali podrobnejšie • RESTaSOAPverzusREST
o CRUDoperácieo idempodencia
• JSON• Javascript• AJAXaAJAJ• HTML,CSS• Servlety• Enterprisesystémy
o ichvysokádostupnosťo intergrácie
• ERPsystémy• DWHapodrobnejšie• Bezpečnostnéaspekty• ....• aveľaďalšieho...