1 / 109

Proiectarea high-level Proiectarea mid-level MDD & TDD BPMN AOP

Proiectarea high-level Proiectarea mid-level MDD & TDD BPMN AOP. drd . Ionut Apetrei. Agenda. 1. Proiectarea high-level 2. Proiectarea mid-level 3. Model Driven Development & Test Driven Development 4. Business Process Modeling Notation

dash
Télécharger la présentation

Proiectarea high-level Proiectarea mid-level MDD & TDD BPMN AOP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Proiectarea high-levelProiectarea mid-levelMDD &TDDBPMNAOP drd. IonutApetrei

  2. Agenda • 1. Proiectarea high-level • 2. Proiectarea mid-level • 3. Model Driven Development & Test Driven Development • 4. Business Process Modeling Notation • 5. Aspect Oriented Programming

  3. 1. Proiectarea high-level • Arhitectura software – proiectare • Metodologie: • descompunereasistemuluiînsubsisteme • fiecare subsistem conţine o mulţime disjunctă de servicii • subsistemele se descompunîn module • Definireconcepte: • Subsistem - este independent - exploatarea sa nu depinde de serviciile oferite de alte subsisteme;format din module;comunică cu alte subsisteme prin interfeţe bine definite

  4. 1. Proiectarea high-level • Definireconcepte (cont.) : • Modul - componentă a unui sistem care: furnizează servicii altor module; foloseşte serviciile oferite de alte module. Nu este considerat sistem independent • Modele de arhitectura: • Modelul structural - ilustrează subsistemele (componentele) care urmează a fi dezvoltate independent • Modeluldinamic – prezintasistemul la executie,proceseleceapartinsistemului • Modelul de interfata - definesteserviciile oferite de fiecare subsistem (componentă) prin interfaţasa publică

  5. 1. Proiectarea high-level • Modele de arhitectura (cont.): • Modelul de relatii- definesterelaţiiledintresubsisteme (componente) (dependenţe, fluxuride date etc) • Modelul de distribuire– denotadistribuirea fizică a subsistemelor (componentelor) p e dispozitive fizice

  6. 1. Proiectarea high-level • Arhitecturibazatepeservicii • Viziune: acces direct prin web la informaţia aflată pe servere la distanţă fără a folosi browsere

  7. 1. Proiectarea high-level • Servicii web: reprezentare standard pentru o resursă de calcul sau informaţie ce poate fi folosită de alte programe; furnizarea serviciului este independentăde aplicaţia care-l foloseşte • Arhitecturaconceptuala: • furnizor de servicii(“service provider”) - oferă serviciul definind interfaţa şiimplementândfuncţionalitatea • utilizator de servicii(“service requestor”) - leagă serviciul într-o aplicaţie proprie; aplicaţia conţine cod care apelează serviciul şi foloseşte rezultatele furnizate de acesta • registru de servicii(“service registry”) - permitedescoperireaserviciilor; service provider înregistrează serviciul în registry, descriind interfaţa acestuia

  8. 1. Proiectarea high-level • Arhitecturastratificata - def. de Larman

  9. 1. Proiectarea high-level • Arhitecturastratificata – MVC (“Model- View-Controller)

  10. 2. Proiectareamid-level • Face referire la utilizarea de sabloane de proiectare (GoF – creationale, structurale, comportamentale) siutilizarea de framework-uri, librarii etc. • Vom continua prezentareaproiectarii mid-level seminarulviitor!

  11. 3. Model Driven Development (AMDD) & Test Driven Development • Prezentareoferita de Lect.Dr.Ioan Lazar, Univ. "Babes-Bolyai", Cluj-Napoca • Procese de dezvoltare a sistemelor software • Consultatiprezentarea– PDILazar.pptx

  12. 4. BPMN - Preambul(1) • Ce este BPMN? • De ce avem nevoie de el?

  13. Preambul(2) • BPMN reprezintă o notaţie grafică (standard) menită să definească procesele de afaceri dintr-un “workflow”. • Proces de afaceri = colecţie de activităţi înrudite ce produce un anumit produs sau serviciu pentru un anumit client/clienţi. • “Workflow” = secvenţă de operaţii, abstractizarea unei activităţi concrete, şablon de activitate încapsulat intr-un proces, în vederea integrării acestuia intr-un sistem.

  14. Preambul(3) • Folosirea unei astfel de notaţii conferă un limbaj comun, ce poate fi folosit atât de către utilizatorul tehnic, cât şi de utilizatorul de business, păstrând în acelaşi timp nealterată semantica procesului de afaceri.

  15. Scurt istoric • Standardul BPMN a fost creat de către BPMI (Business Process Management Initiative) • Scopul declarat este acela de a unii cele două faze separate (cea de proiectare a unui proces de afaceri şi cea de implementare) • În 2005 BPMI şi OMG(Object Management Group) au fuzionat, versiunea curentă fiind BPMN 1.1, urmând ca în scurt timp un update la specificaţia să apară sub numele de BPMN 2.0

  16. Introducere • Informaţiile prezentate fac parte din cadrul specificaţiei BPMN 1.2 beta 3. • Scopul este acela de a prezenta notaţiile şi semantica unei diagrame proces de afaceri (Business Process Diagram). • Un alt obiectiv este acela de asigura ca limbajele XML proiectate pentru execuţia proceselor de afaceri (ex. BPEL4WS ) pot fi vizualizate cu o notaţie “business oriented”.

  17. Contextul general(1) • Volumul de muncă depus în ultimii ani în ceea ce priveşte dezvoltarea de limbaje de execuţie, axate pe servicii web XML, ca parte integrantă a sistemelor BPM (Business Process Management) a scos în evidenţă anumite discrepanţe. • Un prim argument îl constitue faptul că aceste limbaje sunt orientate exclusiv pe interrelaţionarea dintre sistemele BPM, monitorizarea şi proiectarea unor astfel de procese de afaceri de către utilizatorul uman fiind destul de redusă, scopul declarat al acestor limbaje fiind acela de a conferii modele matematice formale şi de a profita de beneficiile serviciilor web.

  18. Contextul general(2) • Astfel a apărut necesitatea existenţei unei interoperabilităţi şi portabilităţi la un nivel "human friendly".Soluţia la această problemă fiind dată de standardul BPMN. Chiar dacă această specificaţie încearcă să creeze o notaţie grafică general acceptată de cei care supravegheazăşi proiectează procesele de afaceri, se pune un accent destul de important şi pemaparea diagramelor de proces către limbajele de execuţie aparţinând sistemelor BPM.

  19. Contextul general(3) • O delimitare a scopului prezentei specificaţii este necesară. “Business Process Modeling Notation” este proiectatnumai pentru a transpune conceptele de modelare ce fac subiectul proceselor de afaceri. Astfel încât alte tipuride modelări ca modele de date, organigrame, administrarea resurselor, strategii si reguli de afaceri nu intrăîn sferade interes a standardului BPMN.

  20. Modelul BPMN • In ceea ce priveste modelul BPMN exista trei subtipuri principale: • Procese de afaceri private, cunoscute şi sub numele de procese interne. • Procese abstracte, sau publice. • Procese de colaborare, sau globale Notă: aceste subtipuri încă nu au foststandardizate,urmând ca în viitorul apropiat o formă finală să fie propusă.

  21. Modelul BPMN • Procesele de afaceri private sunt acele procese specifice unei anumite organizaţii şi sunt acele tipuri de procesecare au fost generic denumite "workflow"-uri sau procese BPM. Un singur proces privat poate fi mapat către unul sau mai multedocumente BPEL4WS. • Procesele abstracte reprezintă interacţiunea dintre un proces privat şi un alt proces sau participant.Numai acele activităţi ce sunt destinate comunicării cu exteriorul procesului privat, în concordanţă cumecanismele corespunzătoare de control ale "flow"-ului, vor fi incluse în procesul abstract. Astfel, procesul abstractarată "lumii exterioare" doar secvenţele de mesaje ce sunt destinate exclusiv interacţionării cu procesul privat curent.

  22. Modelul BPMN • Procesele de colaborare.Un proces global reprezintă interacţiunile dintre două sau mai multe entităţi de tip "business".Aceste interacţiuni sunt definite ca o secvenţă de activităţi ce reprezintă??şabloanele de tip "message -exchange" dintre entităţile implicate. Cu alte cuvinte un proces global poate fi privit ca două sau mai multe procese abstracte ce comunică intre ele.

  23. Business Process Diagram • In cadrul şi între cele trei submodele BPMN pot fi create o serie întreagă de diagrame (BPD). Vom prezenta o lista cu tipurile de procese de afaceri ce pot fi modelate cu ajutorul standardului BPMN: • Activitati apartinand proceselor private de nivel inalt. • Procese private detaliate • Procese private detaliate ce interactioneaza cu unu sau mai multe entitati externe ( sau procese "Black Box").

  24. Business Process Diagram • Doua sau mai multe procese private detaliate interactionand. • Proces privat detaliat in relationare cu un proces abstract. • Proces privat detaliat in relationare cu un proces de colaborare. • Doua sau mai multe procese abstracte. • Proces abstract in relationare cu un proces de colaborare. • Numai procese de colaborare.

  25. Business Process Diagram • Doua sau mai multe procese private detaliate interactionand prin intermediul propriilor procese abstracte. • Doua sau mai multe procese private detaliate interactionand prin intermediul unui proces de colaborare. • Doua sau mai multe procese private detaliate interactionand prin intermediul propriilor procese abstracte si cu un proces de colaborare.

  26. Elemente de bază ale BPD • Cele patru categorii principale de elemente sunt: • “Flow Objects” • “Connecting Objects” • “Swimlanes” • “Artifacts”

  27. Elemente de bază ale BPD • Obiectele de tip "flow" sunt principalele elemente grafice ce ajută la definirea comportamentului proceselor de afaceri. Întâlnim trei subcategorii: • Evenimente • Activităţi • Gateway-uri

  28. Elemente de bază ale BPD • Există trei modalităţi prin care obiectele de tip "flow" pot fi interconectate între ele sau cu alte informaţii.Există trei tipuri de obiecte de conectare (“Connecting Objects”): • Sequence Flow • Message Flow • Association

  29. Elemente de bază ale BPD • În ceea ce priveşte gruparea elementelor primare de modelare există două modalităţi prin intermediul aşa numitelor "Swimlanes“. • Pools • Lanes

  30. Elemente de bază ale BPD • Artefactele ("Artifacts") sunt folosite cu scopul de a furniza informatii aditionale referitor la unproces.Principalele artefacte prezente sunt: • Data Object • Group • Annotation • Artefactele pot fi adăugate oricât de mult, în funcţie de necesitatea modelării.

  31. Elemente de modelare de bază • Eveniment • un eveniment este ceva care se petrece în timpul desfăşurării unui proces de afaceri. Acest eveniment afectează "flow"-ul întregului proces şi de obicei există o cauză,un declanşator ("trigger"). Ca notaţie grafică, un eveniment este reprezentat printr-un cerc.Există trei tipuri de evenimente în funcţie de momentul în care intervin în "flow", astfel avem: • Eveniment de inceput • Eveniment intermediar • Eveniment de sfârşit

  32. Elemente de modelare de bază • Activitate • Este un termen generic pentru "munca" pe care o companie o efectuează. O activitate poate fi atomică sau compusă. Există şi aici trei tipuri de activităţi, acestea fiind: • Proces (este conţinut în cadrul elementului "Pool") • Subproces • Task

  33. Elemente de modelare de bază • Gateway • Acest element este folosit pentru a controla divergenţa şi convergenţa caracteristică "Sequence Flow"-ului.Va determina operaţii ca divizare ("forking"), contopire ("merging") şi unire ("joining").

  34. Elemente de modelare de bază • "Sequence Flow“ • Este folosit pentru a evidenţia ordinea în care activităţile se vor desfăşura într-un proces.

  35. Elemente de modelare de bază • "Message Flow“ • Relevă "flow"-ul de mesaje existent între doi participanţi. Cei doi participanţi vor fi reprezentaţi într-un BPD ca două elemente "Pool" separate.

  36. Elemente de modelare de bază • Asocierea • Folosită la asocierea informaţiei cu obiectele de tip "flow" ("Flow Objects").

  37. Elemente de modelare de bază • "Pool“ • Reprezintă un participant în cadrul unui proces, se comportă şi ca un "swimlane“ şi container grafic în ceea ce priveşte partiţionarea unei mulţimi de activităţi prezente în cadrul altor elemente de tip "Pool". Astfel de situaţii se întâlnesc mai ales in contextul B2B ("Business to Business").

  38. Elemente de modelare de bază • "Lane“ • Este o subpartiţie în cadrul unui element "Pool" ce va extinde întregul "Pool", fie pe verticală sau pe orizontală. Sunt folosite pentru a organiza si structura activităţile.

  39. Elemente de modelare de bază • "Data Object" • Sunt considerate artefacte, deoarece nu au impact direct asupra elementelor ca "Sequence Flow" sau "Message Flow" din cadrul unui proces, dar furnizează informaţii în legătură cu activităţile ce trebuie efectuate şi mai ales descriu rezultatul acelor activităţi, ceea ce se produce.

  40. Elemente de modelare de bază • "Group“ • Este un chenar ce cuprinde o mulţime (grup) de obiecte din cadrul aceleaşi categorii. Folosirea acestui element este o modalitate prin care categorii de obiecte pot fi afişate în cadrul unei diagrame.

  41. Elemente de modelare de bază • Adnotari textuale • Se anexează deobicei asocierilor. Sunt un mecanism prin care proiectantul poate furniza informaţii suplimentare pentru cititorul diagramei BPMN.

  42. Setul extins de elemente BPD • Elementul "Eveniment" cu cele trei subcategorii • Start(None,Message,Timer,Conditional,Signal,Multiple) • Intermediar (None,Message,Timer,Error,Cancel, Compensation,Conditional,Link,Signal, Multiple) • Sfarsit (None,Message,Error,Cancel, Compensation,Signal,Terminate,Multiple) Cele trei subelemente redau dimensiunea flowului

  43. Setul extins de elemente BPD • Evenimentele Start şi Intermediar deţin declanşatori, ce definesc cauza instanţierii evenimentului.Există o serie intreagă prin care aceste evenimente pot fi declanşate. Evenimentele de tip Sfârşit pot definii un rezultat, ce va fi un direct corespondent al terminarii"Sequence Flow"-ului. Evenimentele de tip Start pot reacţiona la un declanşator (il pot prinde - "catch"). Evenimentele de tip Sfarsit pot doar să creeze un rezultat ( să arunce - "throw"). Iar evenimentele Intermediare pot prinde sau arunca declanşatori.

  44. Setul extins de elemente BPD

  45. Setul extins de elemente BPD • Task • Este o activitate atomică ce este inclusăîn cadrul unui proces. Un Task este folosit atunci când munca din cadrul procesului nu este divizată la un nivel mai detaliat al PM-ului (Process Model).

  46. Setul extins de elemente BPD • Proces/Subproces • Un subproces este o activitate compusă ce este inclusăîn cadrul unui proces. Prin proprietatea de compunere înţelegem faptul că respectiva activitate poate fi descompusă la un nivel mult mai detaliat prin intermediul unui setde subactivităţi.

  47. Setul extins de elemente BPD • Subprocese de tip "collapsed“ • Detaliile subproceselor nu sunt vizibile în diagramă. Semnul plus din partea de jos a figurii semnificând că respectiva activitate este un subproces şi are un nivel mai detaliat decat cel de la pasul curent.

  48. Setul extins de elemente BPD • Subprocese expandate • Limita unui subproces este expandatăşi detaliile (un proces) sunt visibile în cadrul respectivei delimitări. Totuşi, trebuie de reţinut că elementul "Sequence Flow" nu poate traversa limita unui subproces.

  49. Setul extins de elemente BPD • Tipuri de control asociate elementului "Gateway“ Tipurile de control includ: • Decizii exclusive şi de contopire ( "Data-Based" and "Event-Based") • Decizii de incluziune şi contopire • Condiţii complexe • "Forking" paralel şi unificare Fiecare tip de control afectează atât fluxulinput, cat si fluxul output.

  50. Setul extins de elemente BPD • "Sequence Flow“ • Fluxul normal ("Normal flow") - face referinţă la fluxul ce îşi are originea dintr-un eveniment de tip Start şi continuă prin activităţi via căi paralele sau alternative, până când ajunge la un eveniment de tip Sfârsit ("End").

More Related