Wprowadzenie do UML. Przegląd Co to jest modelowanie? Co to jest modelowanie? Co to jest UML? Co to jest UML? Krótka historia UML Krótka historia UML.

1 Wprowadzenie do UML ...
Author: Seweryn Baranowski
0 downloads 6 Views

1 Wprowadzenie do UML

2 Przegląd Co to jest modelowanie? Co to jest modelowanie? Co to jest UML? Co to jest UML? Krótka historia UML Krótka historia UML Podstawowe informacje o UML Podstawowe informacje o UML Diagramy UML Diagramy UML Narzędzia modelowania UML Narzędzia modelowania UML

3 Modelowanie Opisuje system na wysokim poziomie abstrakcji Opisuje system na wysokim poziomie abstrakcji Model system Model system Stosuje się do wymagań i specyfikacji Stosuje się do wymagań i specyfikacji Jest to niezbędne do modelowania oprogramowania systemów? Jest to niezbędne do modelowania oprogramowania systemów?

4 Modelowanie obiektowe

5 Co to jest UML? UML oznacza “Unified Modeling Language” UML oznacza “Unified Modeling Language” Jest to standard przemysłowy, graficzny język dla określania, wizualizacji, konstruowanie i dokumentowanie systemów oprogramowania Jest to standard przemysłowy, graficzny język dla określania, wizualizacji, konstruowanie i dokumentowanie systemów oprogramowania UML używa głównie graficznej notacji do wyrażania zorientowanej obiektowo analizy i projektowania projektów oprogramowania. UML używa głównie graficznej notacji do wyrażania zorientowanej obiektowo analizy i projektowania projektów oprogramowania. Upraszcza złożony proces projektowania oprogramowania Upraszcza złożony proces projektowania oprogramowania

6 Dlaczego UML do modelowania ? Za pomocą notacji graficznych komunikuje się jaśniej od języka naturalnego (nieprecyzyjne) i od kodu (zbyt szczegółowe). Za pomocą notacji graficznych komunikuje się jaśniej od języka naturalnego (nieprecyzyjne) i od kodu (zbyt szczegółowe). Pomoc w uzyskaniu ogólnego obrazu systemu. Pomoc w uzyskaniu ogólnego obrazu systemu. UML nie jest zależna od żadnego języka lub technologii. UML nie jest zależna od żadnego języka lub technologii. UML przenosi z fragmentacji do standaryzacji. UML przenosi z fragmentacji do standaryzacji.

7 Historia UML

8 Typy diagramów UML Use Case Diagram Use Case Diagram Class Diagram Class Diagram Sequence Diagram Sequence Diagram Collaboration Diagram Collaboration Diagram State Diagram State Diagram To jest tylko podzbiór diagramów... Ale te są najczęściej używane

9 Use Case Diagram (diagram użycia) Używane do opisywania zestaw scenariuszy użytkownika Głównie używany do zdiagnozowania wymagań użytkowników Działa jak kontrakt użytkownika końcowego i programistów

10 ) Actors: Role, jakie użytkownik odtwarza w odniesieniu do systemu, w tym użytkowników i innych systemów; system zewnętrzny, który potrzebuje pewnych informacji od obecnego systemu. Przypadek użycia: Zestaw scenariuszy który opisuję interakcję między użytkownikiem a systemem, w tym alternatywy. Granica systemu: diagram prostokątny reprezentujący granicę między uczestnikami oraz systemem. Use Case Diagram (elementy główne)

11 Asocjacja: Komunikacja między aktorem a przypadkiem użycia; Reprezentowana przez linię ciągłą. Uogólnienie: związek między ogólnym przypadkiem użycia i przypadkiem specjalnym (używane do definiowania specjalnych alternatywy) Reprezentowana przez linię z trójkątną strzałką w kierunku w przypadku użycia do obiektu nadrzędnego.

12 Use Case Diagram(core relationship) Extend: Linia kropkowana oznaczona > ze strzałką w kierunku bazowego przypadku użycia. Rozszerzanie może dodać zachowanie dodatkowego przypadku użycia do zachowanie bazowego przypadku użycia. Klasa podstawowa deklaruje "punkty rozszerzenia". > Include: Linia kropkowana oznaczona > rozpoczynająca się w bazowym przypadku użycia ze strzałkami skierowanymi w kierunku dołączanego przypadku użycia. Relacja include występuje jeżeli pewne zachowanie jest podobne w wielu przypadkach użycia W więcej niż jednym przypadku. “include” można używać zamiast kopiowania opisu tej samej funkcjonalności. >

13 Diagram użycia System biblioteczny Wypożyczyć Zamówić Tytuł Wpłacenie opłaty członkowskiej Client Pracownik Nadzorca Uogólniony opis użycia systemu. Zawiera omówienie zamierzonej funkcjonalności systemu Granica Aktor Przypadek użycia

14 Inny diagram użycia (SYSTEM OBSŁUGI KLINIKI(PRZYCHODNI)

15 Use Case Diagram użycia (c.d.) Pay Bill to bazowy przypadek użycia w stosunku do Bill Insurance – potomnego przypadku użycia. (ogólnienie) Make Appointment oraz Request Medication zawierają Check Patient Record jako podzadanie.(include) Rozszerzenie jest dodane do bazowego przypadku Pay bill; klasa rozszerzajaca Defer payment deklaruje dodatkowe zachowanie w punkcie rozszerzającym klasy bazowej (extend)

16 Class diagram (Diagram klas) Używany do opisu struktury i zachowania w przypadkach użycia Używany do opisu struktury i zachowania w przypadkach użycia Definiuje konceptualny model systemu w terminologii encji i relacji między nimi Definiuje konceptualny model systemu w terminologii encji i relacji między nimi Używane do przechwytywania wymogów interakcji użytkownika końcowego Używane do przechwytywania wymogów interakcji użytkownika końcowego Szczegółowe diagramy klas są wykorzystywane przez programistów (developerów) Szczegółowe diagramy klas są wykorzystywane przez programistów (developerów)

17 Class representation Każda klasa jest definiowana przez prostokąt podzielony na trzy części Każda klasa jest definiowana przez prostokąt podzielony na trzy części Nazwa Nazwa Atrybuty (pola) Atrybuty (pola) Operacje (metody) Operacje (metody) Modyfikatory ograniczają widoczność pól i metod (por. temat enkapsulacji javy i C++) Modyfikatory ograniczają widoczność pól i metod (por. temat enkapsulacji javy i C++) ‘+’ widoczność typu Public (wszyscy) ‘+’ widoczność typu Public (wszyscy) ‘#’ widoczność typu Protected (przyjaciele i pochodne) ‘#’ widoczność typu Protected (przyjaciele i pochodne) ‘-’ widoczność typu Private (nikt poza klasą) ‘-’ widoczność typu Private (nikt poza klasą) Domyślnie atrybuty są prywatne a operacje publiczne. Domyślnie atrybuty są prywatne a operacje publiczne.

18 Przykład klasy Przykład klasy Konto - Nazwa_klienta - Saldo +Dodaj_Środki( ) +wypłać() +przelew( ) Nazwa Atrybuty Operacje

19 Relacje między obiektami Można zdefiniować dwa główne rodzaje relacji Można zdefiniować dwa główne rodzaje relacji Uogólnienie/dziedziczenie (relacja rodzic - dziecko) Uogólnienie/dziedziczenie (relacja rodzic - dziecko) Asocjacja (połączenie) Asocjacja (połączenie) Asocjacje dzielone są z kolei na: Asocjacje dzielone są z kolei na: Agregacja Agregacja Kompozycja Kompozycja

20 Subtype2 Supertype Subtype1 OO Relationships: Generalization - Generalization expresses a parent/child relationship among related classes. - Used for abstracting details in several layers Regular Customer Loyalty Customer Example: Regular Customer Loyalty Customer or:

21 Represent relationship between instances of classes Represent relationship between instances of classes Student enrolls in a course Student enrolls in a course Courses have students Courses have students Courses have exams Courses have exams Etc. Etc. Association has two ends Association has two ends Role names (e.g. enrolls) Role names (e.g. enrolls) Multiplicity (e.g. One course can have many students) Multiplicity (e.g. One course can have many students) Navigability (unidirectional, bidirectional) Navigability (unidirectional, bidirectional) OO Relationships: Association

22 Association: Multiplicity and Roles UniversityPerson 1 0..1 * * Multiplicity SymbolMeaning 1One and only one 0..1Zero or one M..NFrom M to N (natural language) *From zero to any positive integer 0..*From zero to any positive integer 1..*From one to any positive integer teacher employer Role “A given university groups many people; some act as students, others as teachers. A given student belongs to a single university; a given teacher may or may not be working for the university at a particular time.” student

23 Class Diagram Order -dateReceived -isPrepaid -number :String -price : Money +dispatch() +close() Customer -name -address +creditRating() : String() Corporate Customer -contactName -creditRating -creditLimit +remind() +billForMonth(Integer) Personal Customer -creditCard# OrderLine -quantity: Integer -price: Money -isSatisfied: Boolean Product * 1 1 * Employee * {if Order.customer.creditRating is "poor", then Order.isPrepaid must be true } * 1 Constraint (inside braces{}} Operations Attributes Name Association Multiplicity: mandatory Multiplicity: Many value Multiplicity: optional Generalization [from UML Distilled Third Edition] class 0..1

24 Association: Model to Implementation Class Student { Course enrolls[4]; Course enrolls[4];} Class Course { Student have[]; } Student Course enrollshas * 4

25 OO Relationships: Composition Class W Class P 1 Class P 2 Composition: expresses a relationship among instances of related classes. It is a specific kind of Whole-Part relationship. It expresses a relationship where an instance of the Whole-class has the responsibility to create and initialize instances of each Part-class. It may also be used to express a relationship where instances of the Part-classes have privileged access or visibility to certain attributes and/or behaviors defined by the Whole-class. Composition should also be used to express relationship where instances of the Whole-class have exclusive access to and control of instances of the Part-classes. Composition should be used to express a relationship where the behavior of Part instances is undefined without being related to an instance of the Whole. And, conversely, the behavior of the Whole is ill-defined or incomplete if one or more of the Part instances are undefined. Whole Class Part Classes Automobile Engine Transmission Example [From Dr.David A. Workman]

26 OO Relationships: Aggregation Class C Class E 1 Class E 2 AGGREGATION Aggregation: expresses a relationship among instances of related classes. It is a specific kind of Container- Containee relationship. It expresses a relationship where an instance of the Container-class has the responsibility to hold and maintain instances of each Containee-class that have been created outside the auspices of the Container-class. Aggregation should be used to express a more informal relationship than composition expresses. That is, it is an appropriate relationship where the Container and its Containees can be manipulated independently. Aggregation is appropriate when Container and Containees have no special access privileges to each other. Container Class Containee Classes Bag Apples Milk Example [From Dr.David A. Workman]

27 Aggregation vs. Composition CompositionComposition is really a strong form of aggregation components have only one owner components cannot exist independent of their owner components live or die with their owner e.g. Each car has an engine that can not be shared with other cars. Aggregations may form "part of" the aggregate, but may not be essential to it. They may also exist independent of the aggregate. e.g. Apples may exist independent of the bag.

28 Class Reservations Responsibility Keep list of reserved titles Handle reservation Collaborators Catalog User session Good Practice: CRC Card Benefits: It is easy to describe how classes work by moving cards around; allows to quickly consider alternatives. (Class Responsibility Collaborator)

29 Sequence Diagram(make a phone call) CallerPhoneRecipient Picks up Dial tone Dial Ring notificationRing Picks up Hello

30 Sequence Diagram:Object interaction Self-Call Self-Call: A message that an Object sends to itself. Condition: indicates when a message is sent. The message is sent only if the condition is true. Iteration Condition AB Synchronous Asynchronous Transmission delayed Self-Call [condition] remove() *[for each] remove()

31 Sequence Diagrams – Object Life Spans Creation Creation Create message Create message Object life starts at that point Object life starts at that point Activation Activation Symbolized by rectangular stripes Symbolized by rectangular stripes Place on the lifeline where object is activated. Place on the lifeline where object is activated. Rectangle also denotes when object is deactivated. Rectangle also denotes when object is deactivated. Deletion Deletion Placing an ‘X’ on lifeline Placing an ‘X’ on lifeline Object’s life ends at that point Object’s life ends at that point Activation bar A B Create X Deletion Return Lifeline

32 Sequence Diagram Sequence diagrams demonstrate the behavior of objects in a use case by describing the objects and the messages they pass. The horizontal dimension shows the objects participating in the interaction. The vertical arrangement of messages indicates their order. The labels may contain the seq. # to indicate concurrency. Message

33 Interaction Diagrams: Collaboration diagrams Interaction Diagrams: Collaboration diagrams User Catalog Reservations start 1: look up 2: title data 3 : [not available] reserve title 4 : title returned 5 : hold title 6 : borrow title 6: remove reservation 5: title available Shows the relationship between objects and the order of messages passed between them. between them. The objects are listed as rectangles and arrows indicate the messages being passed The numbers next to the messages are called sequence numbers. They show the sequence of the messages as they are passed between the objects. convey the same information as sequence diagrams, but focus on object roles instead of the time sequence.

34 State Diagrams ( Billing Example) State Diagrams ( Billing Example) State Diagrams show the sequences of states an object goes through during its life cycle in response to stimuli, together with its responses and actions; an abstraction of all possible behaviors. Unpaid Start End Paid Invoice createdpayingInvoice destroying

35 State Diagrams (Traffic light example) Yellow Red Green Traffic Light State Transition Event Start

36 UML Modeling Tools Rational Rose (www.rational.com) by IBM Rational Rose (www.rational.com) by IBMwww.rational.com TogetherSoft Control Center, Borland ( http://www.borland.com/together/index.html ) TogetherSoft Control Center, Borland ( http://www.borland.com/together/index.html ) http://www.borland.com/together/index.html ArgoUML ( free software ) ( http://argouml.tigris.org/ ) ArgoUML ( free software ) ( http://argouml.tigris.org/ ) OpenSource; written in java OpenSource; written in java Others (http://www.objectsbydesign.com/tools/umltools_byCompany.html ) Others (http://www.objectsbydesign.com/tools/umltools_byCompany.html )http://www.objectsbydesign.com/tools/umltools_byCompany.html

37 Reference 1. UML Distilled: A Brief Guide to the Standard Object Modeling Language Martin Fowler, Kendall Scott Martin FowlerKendall Scott Martin FowlerKendall Scott 2. IBM Rational http://www-306.ibm.com/software/rational/uml/ 3. Practical UML --- A Hands-On Introduction for Developers http://www.togethersoft.com/services/practical_guides/umlonlinecourse/ http://www.togethersoft.com/services/practical_guides/umlonlinecourse/http://www.togethersoft.com/services/practical_guides/umlonlinecourse/ 4. Software Engineering Principles and Practice. Second Edition; Hans van Vliet. 5. http://www-inst.eecs.berkeley.edu/~cs169/ http://www-inst.eecs.berkeley.edu/~cs169/