Dynamic Diagrams by HC12091722110

VIEWS: 9 PAGES: 75

									ΔΥΝΑΜΙΚΑ
ΔΙΑΓΡΑΜΜΑΤΑ
Οψεις της UML
Οψεις καί Διαγράμματα
Δυναμικά Διαγράμματα
  Διαγράμματα Καταστάσεων
  Διαγράμματα Ακολουθίας
  Διαγράμματα Συνεργασίας
  Διαγράμματα Δραστηριοτήτων
Oψεις της UML


  Component               Logical
    view                   view


              Use-case
                View

 Deployment              Concurrency
    view                    View
    Οψη περίπτωσης χρήσης
    Use Case View
 Περιγράφει το ΤΙ. Δηλαδή τί λειτουργι-
  κότητα που αναμένεται να προσφέρει το
  σύστημα σε εξωτερικούς actors
 Οδηγεί τη δημιουργία των άλλων όψεων
 Χρησιμοποιείται γιά επικύρωση καί
  επιβεβαίωση από
     πελάτες,   σχεδιαστές, προγραμματιστές,
     ελεγκτές
    Λογική Όψη ή Όψη Σχεδιασμού
    Logical View or Design View


   Περιγράφει το ΠΩΣ, δηλαδή πως παρέχεται
    η λειτουργικότητα του συστήματος

   Είναι χρήσιμο γιά τους σχεδιαστές καί τους
    προγραμματιστές
    Όψη Συστατικών/Υλοποίησης
    Component/Implementation View

   Δείχνει
     την οργάνωση των συνιστωσών του κώδικα
      (code components)
     τη δομή των συνιστωσών, τις εξαρτήσεις
      μεταξύ τους, κατανομή πόρων, διοικητικές
      πληροφορίες
   Χρησιμοποιείται από τους προγραμματιστές
    Οψη Διεργασιών
    Concurrency/Process View
 Περιγράφει την κατανομή σε διεργασίες καί
  επεξεργαστές
 Συνισφέρει στην αποδοτική χρήση των
  πόρων
 Χρησιμοποιείται από όσους αναπτύσσουν
  καί ενοποιούν λογισμικό
    Φυσική Όψη
    Deployment View
   Περιγράφει τη φυσική όψη του
    συστήματος, δηλαδή τις φυσικές
    συνιστώσες του συστήματος: υπολογιστές,
    περιφερειακά, συνδέσεις

   Χρησιμοποιείται από όσους αναπτύσσουν,
    ενοποιούν καί ελέγχουν το λογισμικό
    UML Διαγράμματα

   Use case diagrams
   Class Diagrams and Object Diagrams
   State Diagrams
   Sequence Diagrams
   Collaboration Diagrams
   Αctivity Diagrams
   Component Diagrams
   Deployment Diagrams
                 UML Όψεις καί Διαγράμματα
                 UML Views and Diagrams

                         USE CASE View LOGICAL View COMPONENT View CONCURRENCY View DEPLOYMENT View

USE CASE Diagrams             X

CLASS Diagrams                             X

OBJECT Diagrams                            X

STATE Diagrams                             X                              X

SEQUENCE Diagrams                          X                              X

COLLABORATION Diagrams                     X                              X

ACTIVITY Diagrams             X            X                              X

COMPONENT Diagrams                                       X                X                X

DEPLOYMENT Diagrams                                                       X                X
     UML Διαγράμματα
   Use case diagrams                      Διαγράμματα
                                           Λειτουργικότητας

   Class Diagrams and Object Diagrams       Στατικά
                                             Διαγράμματα

   State Diagrams
   Sequence Diagrams                    Διαγράμματα
   Collaboration Diagrams               Συμπεριφοράς/
                                         Δυναμικά Διαγράμματα
   Αctivity Diagrams

   Component Diagrams                   Διαγράμματα
                                         Υλοποίησης
   Deployment Diagrams
     UML Διαγράμματα

 Λειτουργική               Use case διάγραμμα
 Όψη
  Στατική Όψη            Διαγράμματα αντικειμένων
                               και κλάσεων


                  Kαταστάσεων, Ακολουθίας,Συνεργασίας,
  Δυναμική Όψη             Δραστηριοτήτων



‘Οψη Υλοποίησης           Εξαρτημάτων,ανάπτυξης
     Δυναμικά Διαγράμματα

Γιατί χρειάζονται;
   Γιά να δείξουν στοιχεία που δεν δείχνουν τα διαγράμματα κλάσεων
   Γιά την κατανόηση της συμπεριφοράς ενός αντικειμένου σε σχέση με
    το χρόνο
   Γιά την κατανόηση συμπεριφοράς που εξαρτάται από την κατάσταση
    του αντικειμένου
   Γιά την αποκάλυψη κρυμμένων ιδιοτήτων
   Γιά τον προσδιορισμό ιδιωτικών λειτουργιών ή λειτουργιών που
    λείπουν
   Γιά τον προσδιορισμό της αλληλουχίας των λειτουργιών καί των
    μυνημάτων
     Είδη δυναμικών διαγραμμάτων

 Διαγράμματα καταστάσεων (State Diagrams) :
  Περιγράφουν τις διάφορες καταστάσεις που μπορεί να κατέχει
  κάποιο αντικείμενο και τα γεγονότα που οδήγησαν στην αλλαγή
 Διαγράμματα ακολουθίας (Sequence Diagrams):
  Περιγράφουν πώς τα αντικείμενα αλληλεπιδρούν μεταξύ τους,
  εστιάζοντας περισσότερο σε θέματα χρόνου.
 Διαγράμματα συνεργασίας (Collaboration Diagrams) :
  Περιγράφουν πως τα αντικείμενα επικοινωνούν μεταξύ τους,
  εστιάζοντας σε θέματα χώρου.
 Διαγράμματα δραστηριοτήτων (Activity Diagrams) :
  Δίνουν έμφαση σε θέματα λειτουργιών. Τα αντικείμενα εκτελούν
  κάποιο έργο μέσω κάποιων δραστηριοτήτων
Διαγράμματα Καταστάσεων
       State Charts
             ή
     State Diagrams
           Τα δυναμικά αντικείμενα αλλάζουν
           κατάσταση με την πάροδο του χρόνου


Η συμπεριφορά/κατάσταση
 επηρεάζεται από:
    αλλαγές σε τιμές μεταβλητών
    αποτελέσματα λειτουργιών
    εξωτερικά ή εσωτερικά
     γεγονότα/συμβάντα
    Διαγράμματα Καταστάσεων

   Περιγράφουν
      τον κύκλο ζωής των στιγμιοτύπων των κλάσεων
      την εκτέλεση μίας πράξης ενός στιγμιοτύπου μίας
       κλάσης
   μοντελοποιούν
      τις πιθανές καταστάσεις των στιγμιοτύπων των
       κλάσεων
      τις πιθανές μεταβάσεις από μία κατάσταση σε άλλη
      τα συμβάντα που προκαλούν τις μεταβάσεις
      τις πράξεις (δράσεις και δραστηριότητες) που
       εκτελούνται στην κατάσταση ή κατά τη μετάβαση
         Διάγραμμα Κατάστασης:
         Σχηματική Αναπαράσταση


  Δημιουργία
  τιμολογίου                                    Καταστροφή
                          Πληρωμή               τιμολογίου
               Απλήρωτο             Πληρωμένο



Ο μαυρισμένος κύκλος δείχνει το σημείο έναρξης των τιμολογίων
(δημιουργία αντικειμένου).Ο κύκλος με το άσπρο περίγραμμα
φανερώνει το σημείο λήξης (καταστροφή αντικειμένου).Τα βέλη
ανάμεσα στις καταστάσεις δείχνουν τις μεταβολές των καταστάσεω
και τα γεγονότα/συμβάντα που τον προκαλούν
    Είδη γεγονότων/συμβάντων

 CallEvent: λήψη ενός μηνύματος, π.χ.
      cancel
 SignalEvent: λήψη ενός σήματος, π.χ.
  left_button_down
 ChangeEvent: συνθήκη γίνεται αληθής,
  π.χ. when(x<y)
 TimeEvent: σχετικό ή απόλυτο σημείο στο
  χρόνο, π.χ. after(5 sec)
      Μυνήματα - Τύποι μηνυμάτων

   Τα μυνήματα δείχνουν την αλληλεπίδραση
   μεταξύ των αντικειμένων καί είναι τριών
   ειδών:
 Απλά : Περιγράφουν πως ο έλεγχος περνάει από το ένα αντικείμενο
  στο άλλο , χωρίς να περιγράφει λεπτομέρειες για την επικοινωνία
 Σύγχρονα : Υλοποιούνται σαν μια κλήση συνάρτησης. Η συνάρτηση
  που διαχειρίζεται το μήνυμα συμπληρώνεται πριν τη διαδικασία της
  εκτέλεσης.
 Ασύγχρονα : O αποστολέας συνεχίζει να εκτελεί τις υπόλοιπες
  λειτουργίες του αφού στείλει το μήνυμα , χωρίς να περιμένει για την
  διαχείρισή του.Χρησιμοποιείται κυρίως σε συστήματα πραγματικού
  χρόνου, όπου τα αντικείμενα εκτελούνται ταυτόχρονα
Σχηματική αναπαράσταση τύπου
          μηνυμάτων


              Σύγχρονα
              Ασύγχρονα

               Απλά

              Σύγχρονα με άμεση
              επιστροφή
                      Διάγραμμα κατάστασης
                       χωρίς σημείο τέλους

                      On first floor      Go up (floor)
                                                          Moving up


         arrived

Moving to 1st floor                                            arrived   Go up (floor




                                         arrived
                       Moving down                          Idle



                                        Go down (floor)


                             Time out
           Διάγραμμα Καταστάσεων γιά την
           κλάση appointment


                                                   cancel()           Canceled
Appointment
                                                                           delete()
start
duration      new()
                      Enter Details     Active

cancel()                                                                    delete()
delete()
                                                                      Finished
                                      when(start + duration <= now)
    Μετάβαση κατάστασης
   Μία μετάβαση κατάστασης λαμβάνει χώρα αν
      λαμβάνει χώρα ένα συμβάν και
      η συνθήκη είναι αληθής
   Υποθέσεις
      η έλειψη συμβάντος δηλώνει ότι η δραστηριότητα έχει τελειώσει
       (μετάβαση ολοκλήρωσης)
      η έλλειψη συνθήκης αντιστοιχεί σε [true]
   Είναι δυνατές οι δράσεις κατά τη μετάβαση
      Ειδική δράση: αποστολή μηνύματος σε άλλο αντικείμενο
       ^receiver.message()
      Παράδειγμα:
            right-mouse-down (loc) [loc in window] / obj := pick-
             obj(loc); ^obj.highlight()
          ΤΜΗΜΑΤΑ ΚΑΤΑΣΤΑΣΗΣ


                             Όνομα
                             Μεταβλητές
                             κατάστασης

                           Δραστηριότητες



     Η τυπική σύνταξη γιά το τμήμα δραστηριοτήτων έχει ως εξής:

Event-name argument-list ‘/ ‘ action-expression
Το event-name μπορεί να είναι κάποιο γεγονός πχ είσοδος , έξοδος κι
εκτέλεση. Η action-expression φανερώνει ποια ενέργεια πρέπει να
εκτελεστεί (αύξηση μετρητών, κλήση συναρτήσεων)
            Παράδειγμα κατάστασης


                         Login

                     Login-time=Current time

                      Entry/type «login»
                      do/get user name
                      do / get password
                      help/display help
                      exit/login(user name,pwd)

H κατάσταση login περιλαμβάνει τη log-in time που σχετίζεται με τη
τρέχουσα ώρα κι όπου ένας αριθμός ενεργειών εφαρμόζονται πάνω
στην είσοδο , έξοδο και εκτέλεση
    Τυπική σύνταξη για την μετάβαση
              κατάστασης




Event-signature ‘ [ ‘ guard-condition ‘]’
action-expression ‘ ^ ‘ send-clause
       Υπογραφή γεγονότος (Event-signature

Ορισμός
Αποτελείται από ένα όνομα γεγονότος και παραμέτρους που
προσδιορίζουν το γεγονός που ενεργοποιεί μια μετάβαση από μι
κατάσταση σε μια άλλη

Σύνταξη παραμέτρων
 Όνομα -παραμέτρου ‘ : ‘ έκφραση-τύπου ,όνομα παραμέτρου
‘ : ‘ έκφραση-τύπου.
( η έκφραση τύπου δεν είναι τίποτε άλλο από τον τύπο της
παραμέτρου πχ ακέραιος,πραγματικός )

Παραδείγματα
 draw ( f: Figure, c: Color)
 print (invoice)
           Συνθήκη φύλαξης
           ( Guard Condition)

 Ορισμός

   Eίναι μια λογική έκφραση που βρίσκεται σε μια μετάβαση
 κατάστασης. Αν η συνθήκη φύλαξης συνδυάζεται με μια υπογραφ
 γεγονότος (event-signature) , για να ενεργοποιηθεί η μετάβαση
 κατάστασης , πρέπει να είναι αληθής η συνθήκη φύλαξης.

Παράδειγμα μεταβάσεων καταστάσεων με guard cond

[t = 15sec]
[number-of-invoices > n]
withdrawl (amount) [balance >= amount]
         Έκφραση-Δράσης
        (Action-expression)

Oρισμός
  Η έκφραση δράσης (action-expression) είναι μια έκφρ
διαδικασιών που εκτελείται όταν ενεργοποιείται η μετάβα
καταστάσεων.Αυτή μπορεί να γραφτεί είτε μέσα στο
αντικείμενο που κατέχει όλες τις καταστάσεις ,είτε με
παραμέτρους εντός της υπογραφής συμβάντος

Παραδείγματα των action-expression
 increase () / n:=n+1 / m:=m+1
 add (n) / sum := sum + n      Αction expression
       Send-Clause ( Όροι αποστολής)

Ορισμός
   To send -clause είναι μια σαφής σύνταξη για την αποστολή
του μηνύματος κατά την διάρκεια της μετάβασης ανάμεσα σε δύο
 καταστάσεις.

Σύνταξη
 Αποτελείται από μια έκφραση προορισμού κι ένα όνομα συμβάν
Η έκφραση προορισμού μπορεί να αξιολογεί ένα αντικείμενο ή έν
σύνολο από αντικείμενα.

Παράδειγμα
  [timer = Time-out ] / go down (first floor)
  αυτό μεταφράζεται σ’ ένα send-clause ως εξής :
  [timer = Time-out ] ^ self.go down (first floor)
             Events (Γεγονότα)


  Ορισμός

Ένα γεγονός είναι κάτι που συμβαίνει και μπορεί να προκαλέσει κάπ
ενέργεια (action ) πχ το πάτημα ενός κουμπιού μπορεί να προκαλέσ
έναρξη της ενέργειας play.


  Causality (σχέση αιτίου-αιτιατού)

Όταν υπάρχουν καλά ορισμένες συνδέσεις ανάμεσα στα
γεγονότα και στις ενέργειες , αυτό καλείται αιτιώδης συνάφεια
(causality)
     Είδη των μηνυμάτων στην UML

Mια συνθήκη γίνεται αληθής : Αυτό παριστάνεται σαν μια
  συνθήκη φύλαξης σε ένα διάγραμμα κατάστασης
Λήψη ενός συγκεκριμένου σήματος από άλλο
 αντικείμενο.Το μήνυμα είναι επίσης ένα αντικείμενο. Παριστάνεται
  στις υπογραφές συμβάντος στα διαγράμματα κατάστασης.Αυτό το
  είδος συμβάντος ονομάζεται μήνυμα.
Λήψη από μια κλήση μιας λειτουργίας από άλλο
  αντικείμενο.Ονομάζεται επίσης μήνυμα και παριστάνεται σαν
  υπογραφή συμβάντος
Πέρασμα μιας συγκεκριμένης χρονικής περιόδου :O χρόνος
  υπολογίζεται μετά από κάποιο συγκεκριμένο γεγονός ή μετά το
  πέρασμα κάποιου χρονικού ορίου
     Παράδειγμα
                                     DigitalWatch

                                    modeButton()
                                    inc()



                                    inc / hours:=hours+1                 inc / min:=min+1


                       modeButton                          modeButton
  Display time                         Set hours                          Set minutes
do / Display current         new        entry / beep                         entry / beep
        time                         do / display hours                 do / display minutes




                                          modeButton
    Εκλεπτύνσεις διαγραμμάτων

   Ξένα μεταξύ τους υποδιαγράμματα - OR-
    εκλέπτυνση
     Ακριβώς  μία υποκατάσταση είναι ενεργή κάθε
      φορά που είναι ενεργή η υπερ-κατάσταση
      (σύνθετη κατάσταση)
                                      Z

                                  A
                                          B
    Aποστολή μηνύματος ανάμεσα σε
      διαγράμματα καταστάσεων
      Υποκαταστάσεις (substates)


                Εν κινήσει

              Προς τα εμπρός   Προς τα πίσω




Μια υποκατάσταση διάζευξης (or-substate) έχει υποκαταστάσεις αλλά
μόνο μία κάθε φορά μπορεί να είναι ενεργή. Για παράδειγμα ένα
αυτοκίνητο που βρίσκεται στην κατάσταση εν κινήσει μπορεί να έχει
δύο υποκαταστάσεις μπροστά ή πίσω.Είναι αυτονόητο ότι οι δύο αυτές
υποκαταστάσεις , δεν μπορεί να είναι ενεργές ταυτόχρονα.
    Εκλέπτυνση διαγραμμάτων (2)

   Παράλληλες υποκαταστάσεις - AND-
    εκλέπτυνση
     Όταν  η υπερκατάσταση είναι ενεργή και όλες
      οι υποκαταστάσεις είναι ενεργές
     Οι υποκαταστάσεις εκλεπτύνονται με OR

                       Z

                       A

                       B
  Παράδειγμα - Appointment (1/2)


                                   cancel             Canceled


                                                                 delete
new
      Enter Details     Active



                                                      Finished
                      when(start + duration <= now)
Παράδειγμα - Appointment (2/2)
                           Active
                                                                                      Occurred

                      when(start<=now)
                                                          when(start+duration<=now)
    Not Current                           Current




                  Reschedule (newStart)
                  [not in Current]
                  / start := newStart          Rescheduled
    Fixed                                    do/notify participants
                                             and update views
         Μια υποκατάσταση σύζευξης
               (And-substate)


                   Εν κινήσει
                                    Προς τα
               Προς τα
               εμπρός               πίσω



                Χαμηλή              Υψηλή
               ταχύτητα            ταχύτητα


Μια υποκατάσταση σύζευξης (and-substate) μπορεί να συμβεί ταυτόχρονα μ
κάποια άλλη. Στο παραπάνω παράδειγμα συνδυάζεται και με or-substrate κ
υποκατάσταση μπροστά , μπορεί να συνυπάρξει με την υποκατάσταση χ
 υψηλή ταχύτητα.
    Ιστορική κατάσταση (1/2)

   Οι σύνθετες καταστάσεις μπορούν να θυμούνται την
    εσωτερική κατάσταση από την οποία έφυγαν λόγω
    διακοπής.
   Στο μέλλον μπορούν να επιστρέψουν σε αυτή μέσω μίας
    μετάβασης από την υπερκατάσταση μέσω μίας ψευδο-
    κατάστασης H.
      επανεκτελούνται όλες οι δράσεις εισόδου.
   Μέσω της Η* απομνημονεύονται όλες οι καταστάσεις στο
    βάθος της ένθεσης.
  Ιστορική κατάσταση (2/2)
                        when(Balance < 0)
                   +    when(Balance > 0)
                                                      -         Balancing
                                                                [not in Frozen]
                                                                / Balance := 0

                   H
Deposit(b)
/ Balance :=
Balance + b                     Withdrawal(b) [not in Frozen]
                                / Balance := Balance - b



                                                                 Open
                                                                 / Balance := 0
                       Freeze
          Normal
                                             Frozen
                       Unfreeze
Σημασιολογία AND-
εκλέπτυνσης
                              when(Balance < 0)

                 N/+                                              N/-
                             when(Balance > 0)
                                                                                   Balancing
                                                                                   / Balance := 0
                               H




                                                       Unfreeze
      Unfreeze

                   Freeze




                                                                        Freeze
                                                                                 Open
                            Withdrawal(b)                                        / Balance := 0
                            / Balance := Balance - b
                            when(Balance < 0)

         F/+                                              F/-
                            when(Balance > 0)
 H*



                            Deposit(b) / Balance := Balance + b
Κατάσταση stubbed
                              yes
              Question
                              no




   Question                         F1 / display help


                   do / pose question


               “ναι”                    “όχι”
                  yes               no
    Κατάσταση synch

 Συγχρονισμός ελέγχου ανάμεσα σε
  συντρέχουσες περιοχές.
 Παραγωγός - καταναλωτής.
 Κατά την ενεργοποίηση εισάγεται στην
  κατάσταση synch ένα διακριτικό (token) (το
  πολύ k διακριτικά, k = 1, 2, … *).
 Η εξερχόμενη μετάβαση μπορεί να
  ενεργοποιηθεί μόνο αν υπάρχει
  τουλάχιστον ένα διακριτικό.
Παράδειγμα

  P1             P2


             k

       C1             C2
Διαγράμματα Ακολουθίας

  Sequence Diagrams
         Γενικά χαρακτηριστικά των διαγραμμάτων
              ακολουθίας (sequence diagram)

 Φανερώνουν πώς τα αντικείμενα αλληλεπιδρούν μεταξύ τους.
 Εστιάζουν στο πώς στέλνονται και λαμβάνονται μηνύματα ανάμεσα
  στα αντικείμενα.
 Έχουν δύο άξονες : ο κάθετος άξονας που δείχνει τον χρόνο κι ο
  οριζόντιος που φανερώνει ένα σύνολο αντικειμένων.
 Κάθε αντικείμενο του οριζόντιου άξονα παριστάνεται από ένα
  ορθογώνιο που έχει υπογραμμισμένο το όνομα της κλάσης
 Επίσης μια διακεκομμένη κάθετη γραμμή ονομάζεται γραμμή ζωής
  του αντικειμένου(lifeline) ,και δείχνει την εκτέλεση του αντικειμένου
  κατά την διάρκεια της ακολουθίας.
 Η ανάγνωση του ακολουθιακού διαγράμματος γίνεται από πάνω προς
  τα κάτω ,βλέποντας με αυτόν τον τρόπο την ακολουθία των
  μηνυμάτων με την πάροδο του χρόνου.
       Μορφές των διαγραμμάτων ακολουθίας
     (γενική ή στιγμιότυπο)- generic or instance

 Η μορφή στιγμιότυπο περιγράφει λεπτομερώς ένα
  συγκεκριμένο σενάριο
 Η γενική μορφή περιγράφει όλες τις εναλλακτικές ενός
  σεναρίου ,έτσι μπορούν να συμπεριληφθούν σε αυτή
  διακλαδώσεις , συνθήκες κι επαναλήψεις.
 Το μήνυμα (message) είναι ένας τρόπος επικοινωνίας
  ανάμεσα στα αντικείμενα , που μεταφέρει πληροφορίες με
  την προσδοκία ότι θα ληφθεί κάποια ενέργεια.Μπορεί να
  είναι σύγχρονο, ασύγχρονο ή απλό.
 Όταν λαμβάνεται κάποιο μήνυμα , αρχίζει μια
  δραστηριότητα στο λαμβανόμενο αντικείμενο.Αυτό
  οναμάζεται ενεργοποίηση (activation)
          ΤΙ ΠΑΡΙΣΤΑΝΕΙ ΚΑΘΕ ΙΔΙΑΙΤΕΡΟ ΣΧΗΜΑ ΣΕ
               ΕΝΑ ΑΚΟΛΟΥΘΙΑΚΟ ΔΙΑΓΡΑΜΜΑ


Εκτύπωση(αρχείου)
               :Υπολογιστής       :Serverεκτυπωτ.   :Εκτυπωτής


                                           [όχι ουρά]
Απλό μήνυμα               Εκτύπωση(αρχ.)                         Αντικείμενο
                                           εκτυπ.(αρχείου)

   Δραστηριοποίηση                                           Συνθήκη φύλαξη


      Σύγχρονο μήνυμα


 Γραμμή ζωής (lifeline)


        Επιστροφή
Παράδειγμα ακολουθιακού διαγράμματος (sequence diagram
  Περιγραφή εναλλακτικών καταστάσεων σε ακολουθιακό
                       διάγραμμα


  :Υπολογιστής   :Serverεκτυπ.    :Εκτυπωτής   :Ουρά




                         [Εκτυπ,ελευθερος]
                         εκτυπ (αρχείου)
        Εκτύπωση(αρχ.)

                         Εκτυπ.απασχολημ
                         . Αποθ.αρχείου
   Ετικέτες που προσδιορίζουν κάποιους
               περιορισμούς

Εκτύπωση(αρχείου)
                  :Yπολογιστής       :Serverεκτυπωτ     :Εκτυπωτής



                            Εκτυπ (αρχείου)
                      a
     { b-a < 5 sec}
                      b
     { b’-b <1 sec}
                      b’




 Οι ετικέτες χρησιμοποιούνται για να προσδιορίσουν περιορισμούς σχετικά με τον χ
 Η χρονική διάρκεια ανάμεσα στο a και το b δεν πρέπει να είναι μεγαλύτερη από 5 se
 To μήνυμα Εκτύπωση από τον Serverεκτυπωτή θα πρέπει να ληφθεί εντός ενός
 δευτερολέπτου.Οι περιορισμοί φαίνονται μέσα σε άγκιστρα.
     Ετικέτες που προσδιορίζουν επανάληψη
         (διακοπή της με κάποια συνθήκη)

        op1( )
                       C1:C              D1:D   D2:D



                              Op2( )

Στείλε το μήνυμα op2
μέχρι...
                                Op3( )
           Δημιουργία αντικειμένων


       NewCustomer(Data)
                            :CustomerWindow



                                    Customer(Data)
                                                     :Customer




Ένα αντικείμενο μπορεί να δημιουργήσει κάποιο άλλο αντικείμενο μέσω ενός μηνύματ
Το αντικείμενο τοποθετείται ακριβώς τη χρονική στιγμή που δημιουργείται
(στον κάθετο άξονα του χρόνου).Το μήνυμα δημιουργίας ενός αντικειμένου είναι ένα
σύγχρονο μήνυμα
            ΚΑΤΑΣΤΡΟΦΗ ΑΝΤΙΚΕΙΜΕΝΟΥ


         RemoveCustomer()
                            :CustomerWindow          :Customer




                                      DeleteCustomer( )


                                                       X

Όταν ένα αντικείμενο καταστρέφεται, μαρκάρεται με ένα μεγάλο Χ. Επίσης διαγράφετα
η γραμμή ζωής (lifeline) από το σημείο καταστροφής του αντικειμένου κι έπειτα.
        ΑΝΑΔΡΟΜΗ (RECURSION)

           Oper( )       Object name
                            :class




                                       Oper()




H λειτουργία oper ( ) καλεί τον εαυτό της..Πρέπει να υπάρχει μια συνθήκη στην λειτ
που διακόπτει την αναδρομή
Διαγράμματα συνεργασίας

 Collaboration diagrams
        Διάγραμμα συνεργασίας (collaboration
          diagram) - Γενικά χαρακτηριστικά


• Το διάγραμμα συνεργασίας εστιάζει σε θέματα χώρου σε
  αντίθεση με το διάγραμμα ακολουθίας που εστιάζει σε
  θέματα χρόνου.
• Δείχνει τα αντικείμενα και τους μεταξύ τους συνδέσμους
  καθώς επίσης και τα μηνύματα που στέλνονται ανάμεσα
  στα συνδεδεμένα αντικείμενα.
• Τα μηνύματα συνοδεύονται κι από ετικέτες που
  προσδιορίζουν μεταξύ άλλων και τον ακολουθιακό
  αριθμό του μηνύματος.
• Αρχικοποιείται με ένα μήνυμα όπως η κλήση μιας
  συνάρτησης.
         Παράδειγμα διαγράμματος συνεργασίας
                (collaboration diagram)


                             Εκτύπωση(αρχείου)

            :Υπολογιστής


                    1: εκτύπωση(αρχείου)


           :Serverεκτυπωτ.                             :Εκτυπωτής
                             [εκτυπωτ.ελεύθερος]
                             1.1: εκτύπωση (αρχείου)

O actor στέλνει ένα μήνυμα εκτύπωσης στον υπολογιστή .Ο υπολογιστής σ
ένα μήνυμα εκτύπωσης στον server του εκτυπωτή.Ο server του εκτυπωτή
μήνυμα εκτύπωσης στον εκτυπωτή αν αυτός είναι ελεύθερος.
               ΡΟΗ ΜΗΝΥΜΑΤΩΝ
       ΣΥΝΤΑΞΗ ΕΤΙΚΕΤΩΝ ΤΟΥ ΜΗΝΥΜΑΤΟΣ

Σύνταξη ετικέτας μηνύματος
 προκάτοχος συνθήκη-φύλαξης έκφραση-ακολουθίας επιστρεφόμενη
 υπογραφόμενη τιμή
 predecessor guard-condition sequence-expression return-value:=signa
 Σύνταξη προκατόχου
   αριθμός-ακολουθίας ‘ , ’ … ‘/’
 Σύνταξη συνθήκης φύλαξης
   ‘ [ ‘ συνθήκη ‘ ] ‘
 Σύνταξη έκφραση ακολουθίας
   [ακέραιος | όνομα ] [αναδρομή] ‘: ‘
 Σύνταξη αναδρομής
   ‘* ‘ ‘[ ‘ συνθήκη επανάληψης ‘] ‘
   ‘[ ‘ συνθήκη ‘ ] ‘
     Τρόπος αναπαράστασης επανάληψης κι
επιστρεφόμενης τιμής σε ένα collaboration diagra



       Calcprim (n)
                      :Calculator             Επιστρεφόμεν
                                               τιμή

                             1* [z:=1..n] :prim :=nextPrim(prim)


                  :Prim module           επανάληψη
                    Σύνδεσμοι (Links)
           Ρόλοι αντικειμένων στους συνδέσμους

 Σφαιρικός (global) : προσδιορίζει ότι το αντίστοιχο στιγμιότυπο είναι
  ορατό σε ολόκληρο το σύστημα
 Τοπικός (local) : το στιγμιότυπο είναι ορατό επειδή είναι μια τοπική
  μεταβλητή στη συνάρτηση
 Παραμετρικός (parameter) : το αντίστοιχο στιγμιότυπο είναι ορατό
  επειδή αποτελεί την παράμετρο μιας συνάρτησης.
 Ατομικός (self) : ο περιορισμός αυτός προσδιορίζει ότι ένα
  αντικείμενο μπορεί να στείλει κάποιο μήνυμα και στον εαυτό του
 Από ψηφοφορία (vote) : αυτή προσδιορίζει ότι η επιστρεφόμενη τιμή
  επιλέγεται ανάμεσα από μια συλλογή μηνυμάτων επιστροφής , λόγω
  πλειοψηφίας.
 Εκπομπή (broadcast) : προσδιορίζει ότι το σύνολο των μηνυμάτων
  ενεργοποιούνται σε τυχαία σειρά.
             Η ζωή ενός αντικειμένου (lifetime of an object)
             Δημιουργία ενός αντικειμένου σ’ένα διάγραμμα
                             συνεργασίας.

                                                                                  2:nextjob=Getjob()
1.1 [all queues] : len:=Length() {broadcast}                   :Queue                                       :Elevator
1.3 : invoke (job)


                                                                {parameter} job

              :Elevator control                                                   :Order(new)
                                                1.2:Create()                                              {local} nextjob
                                                                              job

1:Getelevator(floorid)


                                     Push()
          :Button

Ένα διάγραμμα συνεργασίας όπου κάποιος actor πατάει ένα κουμπί για να φέρει τον ανελκυστήρα στον όροφό του.Το αντικείμενο
elevator control ελέγχει το μήκος όλων των ουρών εργασίας του ανελκυστήρα κι επιλέγει τη μικρότερη..Μετά δημιουργεί ένα
καινούριο job order αντικείμενο και το ανακαλεί με το να το βάλει στην ουρά. Η δήλωση new δηλώνει την δημιουργία ενός
αντικειμένου. To αντικείμενο elevator τρέχει συγχρόνως καί παίρνει jobs από τις ουρές. O elevator είναι ένα active object, δηλαδή
εκτελείται συγχρόνως με το δικό του thread of control.
                    ΖΩΗ ΕΝOΣ ΑΝΤΙΚΕΙΜΕΝΟΥ
          Προσωρινά αντικείμενα - transient: δημιουργούνται
         και καταστρέφονται στο ίδιο collaboration διάγραμμα.



        NewCustomer()                  [free memory] 1:Create()
                        :MainWindow                          :Customer{new}

                                                     {parameter}

       3:show(Customer)         2:Create( )


                                       : CustomerWindow
                                           {transient}
                                                              3.1:update(data)

To αντικείμενο Main Window λαμβάνει το μήνυμα NewCustomer και δημιουργεί τα
αντικείμενο Customer. To CustomerWindow δημιουργείται και το αντικείμενο Cus
περνιέται στο CustomerWindow , το οποίο επιτρέπει ή όχι την ενημέρωση των δε
 του πελάτη
Διαγράμματα Δραστηριοτήτων

     Activity Diagrams
          Διάγραμμα δραστηριοτήτων: Στόχοι


 Η καταγραφή των ενεργειών που εφαρμόζονται κατά την εκτέλεση
  μιας λειτουργίας (στιγμιότυπο της υλοποίησης της λειτουργίας)
 Περιγραφή της εσωτερικής λειτουργίας ενός αντικειμένου
 Περιγραφή συσχετιζόμενων ενεργειών που εφαρμόζονται, και πως
  αυτές επηρεάζουν τα γύρω αντικείμενά τους.
 Υπόδειξη του τρόπου που ένα στιγμιότυπο κάποιου use-case
  μπορεί να εφαρμοστεί στο πλαίσιο των αλλαγών της κατάστασης
  του αντικειμένου.
 Αναφορά στο πώς μια επιχείρηση λειτουργεί (εργαζόμενοι,ροή
  εργασιών,οργάνωση και αντικείμενα)
                          Ενέργειες και μεταβάσεις
                          (Actions and transitions)

  CustomerWindow.PrintAllCustomers()
                                           Show
                                       MessageBox         Create postsscript
                                   “Printing” on Screen          file


Σημείο έναρξης
Ενέργεια (Action)
Σημείο λήξης           Μετάβαση


                                          Remove            Send Postcript
                                         MessageBox          file to printer



    Όταν κάποιος καλεί την συνάρτηση εκτύπωση( ), τότε αρχίζουν οι διάφορες
    ενέργειες. Η πρώτη ενέργεια είναι η εμφάνιση μηνύματος στην οθόνη ,ενώ η
    δεύτερη η δημιουργία κάποιου αρχείου.Τρίτη ενέργεια η αποστολή αρχείου
    εκτυπωτή και τέταρτη η εξαφάνιση των κουτιών μηνυμάτων.
    Παράδειγμα μετάβασης μεταξύ καταστάσε


                                 Show MessageBox
CustomerWindow.PrintAllCustomer ()
                              «Printing on              Create postscript
                              screen»                          file




                                                   ^Printer.Print(file)
                               Remove
                             MessageBox



Οι μεταβάσεις ανάμεσα στις καταστάσεις μπορούν να παρασταθ
με βέλη τα οποία πιθανώς να συνοδεύονται από κάποιες συνθή
φύλαξης (guard-condition) , όροι αποστολής (send-clause) κτλ.
     Μετάβαση καταστάσεων μέσω κάποιων
             συνθηκών φύλαξης


                         [ Δίσκος γεμάτος ]    Εμφάνισε μύνημα
                                               «Δίσκος γεμάτος»
ΠαράθυροΠελάτη.Εκτύπωση ( )


                                               Εμφάνισε μύνημα
                                                 «Εκτύπωση»
                    [ Ελεύθερος χώρος δίσκου ]   στην οθόνη




            Μετακίνησε    ^Εκτυπωτής.Εκτύπωση() Δημιουργησε
         κουτιά μηνυμάτων                      postscript αρχείο



Ο ρόμβος φανερώνει ότι ακολουθεί κάποια διακλάδωση .Ανάλογ
λοιπόν αν ισχύει ή όχι κάποια συνθήκη έπεται η αντίστοιχη ενέρ
Η έντονη γραμμή φανερώνει ότι οι ενέργειες που ακολουθο
     εκτελούνται παράλληλα. Επίσης υποδηλώνουν την
        ενοποίηση των διακλαδιζόμενων ενεργειών.



Sampler.Run(channerl, frequency)
                                         Initiate




                             Updating
                                                    Measuring
                             displayer
   Το swimlane δείχνει που εφαρμόζονται οι διάφορες
  ενέργειες, δηλ. σε ποιο αντικείμενο ή σε ποιο κομμάτι
                     της οργάνωσης


Displayer                            Sampler

                                      Sampler.run(channel, freq.)

                                   Initiate




      Updating                                Μeasuring
      displayer
               Aντικείμενα στο διάγραμμα δραστηριοτήτ

           Οθόνη                                         Δειγματολήπτη
                                                          Sampler.Run (channel,frequency)

Αντικείμενο , που χρησιμεύει σαν είσοδος
στην Updating Displayer και σαν έξοδος                Initiate
measuring




                    Updating               Measured              Measuring
                    displayer              value
               Μυνήματα στα διαγράμματα δραστηριοτήτω


aPrinter:Printer
                                       CustomerWindow.PrintAllCustomers ( )

                                     Show
                                 MessageBox
                                 ‘Printing’ on
                                    screen
  Print
                               Create postcript
                                     file


Print (file)                    Print (file)



                                 Remove
                               MessageBox
    Περίληψη (1/3)

   Όλα τα συστήματα έχουν στατική δομή καί δυναμική
    συμπεριφορά
   Η στατική δομή περιγράφεται με κλάσεις, συσχετίσεις,
    αντικείμενα καί συστατικά
   Η συμπεριφορά περιγράφει πώς αλληλεπιδρούν στο χρόνο
    τα συστατικά της στατικής δομής
   Η UML παρέχει 4 διαγράμματα γιά τη μοντελοποίηση της
    δυναμικής συμπεριφοράς, καθένα από τα οποία
    εξυπηρετεί διαφορετικό σκοπό
       διαγράμματα καταστάσεων, ακολουθίας, συνεργασίας καί
        δραστηριοτήτων
     Περίληψη (2/3)

   Τα διαγράμματα κατάστασης περιγράφουν τη συμπεριφορά καί τις
    εσωτερικές καταστάσεις μιάς κλάσης ή ενός συστήματος ή
    υποσυστήματος. Εστιάζουν στο πώς τα αντικείμενα αλλάζουν
    καταστάσεις στο χρόνο ανάλογα με το τί συμβαίνει: γεγονότα,
    συμπεριφορά καί δραστηριότητες μέσα στις καταστάσεις, καί
    μεταβάσεις. Ένα γεγονός μπορεί να είναι η επαλήθευση μιάς
    συνθήκης, η λήψη ενός μυνήματος ή απλά η πάροδος του χρόνου.

   Τα διαγράμματα ακολουθίας περιγράφουν πώς ένα σύνολο από
    αντικείμενα αλληλεπιδρούν μεταξύ τους βάσει ενός συγκεκριμένου
    σεναρίου. Εστιάζουν στη διαδοχή των μυνημάτων που στέλνονται καί
    λαμβάνονται μεταξύ των αντικειμένων. Έχουν δύο άξονες: τον κάθετο
    άξονα που δείχνει το χρόνο καί τον οριζόντιο άξονα που δείχνει τα
    αντικείμενα που εμπλέκονται στο σενάριο. Η βασική εστίαση των
    διαγραμμάτων ακολουθίας είναι ο χρόνος.
     Περίληψη (3/3)

   Τα διαγράμματα συνεργασίας περιγράφουν πώς αλληλεπιδρούν τα
    αντικείμενα στο χώρο, δηλαδή, εκτός από τη δυναμική τους
    αλληλεπίδραση, το διάγραμμα δείχνει καί πώς συνδέονται μεταξύ τους
    τα αντικείμενα. Δεν υπάρχει άξονας χρόνου. Τα μυνήματα
    αριθμούνται ακολουθιακά.

   Τα διαγράμματα δραστηριοτήτων περιγράφουν πώς γίνονται οι
    διάφορες δουλειές που πρέπει να εκτελεστούν. Χρησιμοποιούνται γιά
    να περιγράψουν λειτουργίες, κλάσεις, use cases, καθώς επίσης καί γιά
    να δείξουν ροή εργασίας. Μπορούν επίσης να χρησιμοποιηθούν γιά να
    μοντελοποιήσουν επιχειρησιακές διαδικασίες με εργαζόμενους καί
    οργανωτικές δομές.

								
To top