Use Case Diagram
(Διάγραμμα περιπτώσεων χρήσης)

Συμβολισμοί








Πως χρησιμοποιούνται τα στοιχεία μέσα στο διάγραμμα

Actor : Ο χρήστης του προγράμματος . Συνήθως αφορά φυσικά πρόσωπα ή στοιχεία που επιδρούν στο σύστημα. Για παράδειγμα ένας υπάλληλος ή μια βάση δεδομένων.

Use Case: Περίπτωση χρήσης. Αφορά μια γενική λειτουργία του συστήματος στην οποία θα επιδρά ο χρήστης ή και άλλες περιπτώσεις χρήσης.
Για παράδειγμα «Ο χρήστης κάνει login στο σύστημα».

Extends: Δηλώνει μια προαιρετική λειτουργία ή μια επιλογή από ένα σύνολο λειτουργιών.



Η UC2 είναι προαιρετική λειτουργία της UC1
Για παράδειγμα, αν UC1 είναι η «πληρωμή», η UC2 μπορεί να είναι η «πληρωμή με κάρτα» κτλπ .

Προσοχή στην κατεύθυνση του βέλους. Δείχνει πάντα αυτή που προηγείται.


Include : Δηλώνει υποχρεωτικό χαρακτήρα της εκτέλεσης μιας λειτουργίας .






Η UC2 θα εκτελεστεί αφού υποχρεωτικά εκτελεστεί πρώτα η UC1.


Προσοχή στην κατεύθυνση του βέλους. Δείχνει πάντα αυτή που ακολουθεί.


Generalization: Γενίκευση.
ή     

Η UC1 αποκτά τις ιδιότητες των UC2 και UC3. Συνήθως πρέπει να αποφεύγεται η γενίκευση μεταξύ των use cases. Είναι δύσκολο στην περιγραφή και προτείνετε να χρησιμοποιείται το Extends.
Μεταξύ Actors όμως μπορεί να χρησιμοποιηθεί, σε περιπτώσεις που λειτουργίες αφορούν ένα ή και περισσότερους χρήστες. Για παράδειγμα, αν ο Α1 είναι ο «Εργαζόμενος» τότε ο Α2 είναι ο «Προϊστάμενος» και ο Α3 ο «Υπάλληλος» μιας εταιρίας.


Προσοχή :
Σε καμία περίπτωση, τόσο το Extend όσο και το Include δεν το χρησιμοποιούμε με την λογική της χρονικής ακολουθίας. Δεν υπάρχει χρονική ακολουθία σε ένα Use Case διάγραμμα.


Παράδειγμα:

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

1. Τίτλος, όνομα συγγραφέα (ή ονόματα συγγραφέων), ημερομηνία δημοσίευσης, τίτλος περιοδικού, όνομα εκδοτικού οίκου.
2. Λέξεις κλειδιά που ορίζονται από το συγγραφέα, αλλά και από τον αναγνώστη.
3. Αναφορές που υπάρχουν στο άρθρο. Κάθε αναφορά έχει και μια σύντομη περιγραφή.

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

• Προβολή των άρθρων που είναι καταχωρημένα στο σύστημα.

• Εύρεση και προβολή των άρθρων ανά συγγραφέα και ανά λέξη κλειδί.

• Εύρεση συγκεκριμένου άρθρου και προβολή των αναφορών που αυτό περιέχει.

Ερώτημα Α
Σχεδιάστε το διάγραμμα περιπτώσεων χρήσης που αντιστοιχεί στην πιο πάνω περιγραφή. Κάντε τις αναγκαίες παραδοχές ώστε το διάγραμμα να είναι όσο το δυνατόν πλήρες. Χρησιμοποιήστε σχέσεις ανάμεσα στις περιπτώσεις χρήσης όπου είναι δυνατόν. 

Απάντηση :
Υπάρχουν τρεις χειριστές:
 
• Συγγραφέας
• Αναγνώστης και
• Βάση Δεδομένων (δευτερεύων χειριστής)

Ο Συγγραφέας είναι μια εξειδίκευση (specialization) του Αναγνώστη, αφού μπορεί να εκτελέσει επιπλέον ΠΧ.

Ο Αναγνώστης μπορεί
Α) Να κάνει login στο σύστημα.
Β) Να ψάξει για άρθρα:

Η εύρεση άρθρου περιλαμβάνει («include») την προβολή του άρθρου και προαιρετικά («extend») την Προβολή των αναφορών που αυτό περιέχει.

Η εύρεση του άρθρου μπορεί να γίνει (generalization):

Ψάχνοντας με βάση το συγγραφέα.
Ψάχνοντας με βάση τη λέξη κλειδί.
Ψάχνοντας ένα συγεκριμένο άρθρο με βάση τον τίτλο του.
Την ώρα που προβάλλεται ένα άρθρο ο αναγνώστης μπορεί προαιρετικά («extend») να εισάγει νέες λέξειςκλειδιά.

Γ) Να προβάλει όλα τα άρθρα που είναι καταχωρημένα στο σύστημα.

Ο Συγγραφέας μπορεί να εισάγει στο σύστημα (με αντίστοιχη καταχώριση) στη βάση δεδομένων) νέα άρθρα:

Η εισαγωγή ενός άρθρου περιλαμβάνει («include») την:
Εισαγωγή λέξεων κλειδιών.
Εισαγωγή αναφορών.

H Βάση Δεδομένων είναι δευτερεύων χειριστής σε όλες τις ΠΧ που διαβάζουν και γράφουν στη Βάση Δεδομένων. Η προσέγγιση αυτή θεωρεί ότι η βάση δεδομένων είναι εξωτερικό σύστημα. Εάν θεωρήσουμε ότι η βάση δεδομένων είναι μέρος του συστήματος, τότε δεν θα έπρεπε να εμφανίζεται ως χειριστής.


Προσοχή :
Κάθε απάντηση που θα δίνετε, θα πρέπει να αιτιολογείται με μια σύντομη περιγραφή και θα πρέπει να παρουσιάζονται οι παραδοχές που κάνετε. Ανάλογα με τις παραδοχές σας και με μια σωστή αιτιολόγηση και προφανώς σχεδίαση του διαγράμματος μπορείτε να έχετε μια σωστή απάντηση χωρίς να χάσετε μονάδες. .


Λεκτική περιγραφή

Η Λεκτική Περιγραφή αφορά κάθε περίπτωση χρήσης και υλοποιείται πάντα.
Μια Λεκτική Περιγραφή ακολουθεί το εξής μοντέλο:

1. Τίτλος

2. Κύριος Χρήστης

3. Σύντομη περιγραφή

4. Προϋποθέσεις (κατάσταση εισόδου)

5. Μετασυνθήκες (κατάσταση εξόδου)

6. Βασική ροή(σε αριθμημένα βήματα)

7. Εναλλακτικές ροές( «Εναλλακτική Α.1.2,…..»)

8. Λειτουργικές Απαιτήσεις(«Το σύστημα θα πρέπει να ανταποκριθεί σε 4 sec»)


Παράδειγμα

Κάποιες πιθανές χρήσεις του συστήματος είναι οι ακόλουθες:

• Προβολή των άρθρων που είναι καταχωρημένα στο σύστημα.
• Εύρεση και προβολή των άρθρων ανά συγγραφέα και ανά λέξη κλειδί.
• Εύρεση συγκεκριμένου άρθρου και προβολή των αναφορών που αυτό περιέχει.

Η ΠΧ που αντιστοιχεί στην ΠΧ «Εύρεση άρθρου και προβολή των αναφορών» είναι η «Εύρεση Άρθρου» η οποία κάνει include την «Προβολή Αναφορών».

Τίτλος: Εύρεση Άρθρου

Κύριος χρήστης: Αναγνώστης

Περιγραφή: Γίνεται αναζήτηση και προβολή των άρθρων που είναι ήδη καταχωρημένα στη Βάση Δεδομένων

Προϋποθέσεις (Preconditions):
• Ο αναγνώστης θα πρέπει να έχει συνδεθεί στο σύστημα (Login).
• Θα πρέπει να έχουν καταχωρηθεί άρθρα.

Μετασυνθήκες (Postconditions):
• Δεν υπάρχουν

Βασική ροή:
1. Εμφανίζεται η βασική φόρμα αναζήτησης άρθρων.
2. Ο αναγνώστης συμπληρώνει τα κατάλληλα πεδία αναζήτησης (αναζήτηση με τίτλο).
3. Εμφανίζεται λίστα των άρθρων που πληρούν τα κριτήρια αναζήτησης [Εναλλακτική ροή Α: Δεν υπάρχουν άρθρα που πληρούν τα κριτήρια].
4. Ο χρήστης αναγνώστης επιλέγει την προβολή ενός άρθρου. Γίνεται include η ΠΧ «Προβολή Άρθρου».
5. Ο αναγνώστης επιλέγει νέα αναζήτηση. Ο έλεγχος μεταφέρεται στο βήμα 2.

Εναλλακτικές ροές:
Εναλλακτική ροή Α: Δεν υπάρχουν άρθρα που πληρούν τα κριτήρια
3.Α Εμφανίζεται σχετικό μήνυμα, ότι δεν υπάρχουν άρθρα που πληρούν τα κριτήρια.
3.Β Ο έλεγχος επιστρέφει στο βήμα 2.

Εναλλακτική ροή Β: Προβολή αναφορών
4.Α Ο χρήστης επιλέγει την προβολή των αναφορών ενός άρθρου. Γίνεται include η ΠΧ «Προβολή Αναφορών»

Λειτουργικές Απαιτήσεις: Το σύστημα θα πρέπει να ανταποκριθεί σε 4 sec.




Διάγραμμα Καταστάσεων (State chart)


Όταν το λογισµικό αναµένει («αφουγκράζεται») γεγονότα, τότε
λέµε ότι βρίσκεται σε µια κατάσταση. Με τη λήψη ενός γεγονότος, το λογισµικό μπορεί να εκτελεί µια λειτουργία και να μεταβαίνει σε µια άλλη κατάσταση.

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

Συμβολισμοί


Θα πρέπει να αναφέρουμε ότι μέσα στο πλαίσιο της κατάστασης ικανοποιούμε την ερώτηση «Τι είναι?» , ενώ στην ενέργεια την ερώτηση «Τι συμβαίνει?»
Πάνω στα βέλη των ενεργειών γράφουμε και την ενέργεια που πραγματοποιεί.

Ένα παράδειγμα χωρίς τερματική κατάσταση, μιας η αρχή και το τέλος είναι ίδιο.

Παράδειγμα λειτουργίας φούρνου.





Διάγραμμα δραστηριοτήτων (Activity chart)

Συμβολισμοί

Όπως και στο διάγραμμα καταστάσεων έτσι και εδώ έχουμε σχεδόν ίδιους συμβολισμούς.





Η Δραστηριότητα δηλώνει πάντα ενέργεια, απαντάμε στο ερώτημα «Τι κάνει?», ενώ στις μεταβάσεις δεν αναγράφουμε σχόλια όπως προηγουμένως.


Διάγραμμα Ευρωστίας ή Συνεργασίας

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

Συμβολισμοί





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

Σχεδιαστικοί κανόνες

1. Ο Actor συνδέεται μόνο με interface

2. Η κλάση μόνο με Έλεγχο

3. Ο Έλεγχος με Κλάση ή Interface ή με άλλον Έλεγχο


Παράδειγμα διαγράμματος





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

Το διάγραμμα αυτό προκύπτει από τη Λεκτική περιγραφή της Περίπτωση Χρήσης , και το Διάγραμμα Συνεργασίας. Παρουσιάζει ότι ακριβώς κάνει η εφαρμογή. Έχει χρονική ακολουθία.

Συμβολισμοί



Σχεδιαστικοί Κανόνες

1. Ο Actor συνδέεται με Interface.

2. Το Interface με Κλάση.

Κάθε κλήση μεταξύ τους γίνεται με message(call), ενώ αυτό που επιστρέφουν οι κλάσεις με message(return).

Ουσιαστικά, εδώ έχουμε μια πιο μεγάλη ανάλυση αφού τα message(call),και message(return) στην συνέχεια μπορεί και πρέπει να γίνουν μέθοδοι στην java.

Με άλλα λόγια στο διάγραμμα αυτό βλέπουμε το πώς αλληλεπιδρούν οι κλάσεις μεταξύ τους.

Παράδειγμα σχεδιασμού





Διάγραμμα Κλάσεων 

(Εννοιολογικό Μοντέλο/ Όλου-Μέρους)

Είναι το πιο σύνηθες διάγραμμα. Σε αυτό εμφανίζονται:

1. Μόνο κλάσεις (χωρίς πεδία και μεθόδους)

2. Κατασκευαστές (όχι πάντα)

3. Σχέσεις μεταξύ των κλάσεων

4. Πληθυκότητες

Συμβολισμοί 

Σχέσεις


Η Genaralization , Aggregation  και Composition δείχνουν σε ένα διάγραμμα πάντα προς την γενική κλάση.

Παράδειγμα








Διάγραμμα Κλάσεων (Design Level)

Είναι το πλήρες διάγραμμα κλάσεων με λεπτομέρειες, μετά από αυτό προχωρούμε σε συγγραφή κώδικα java.

Σε αυτό εμφανίζονται:
1. Πεδία (-)
2. Μέθοδοι (+)
    a. Αν είναι void τότε μόνο ().
    b. Αν δεν είναι void τότε (το αντικείμενο επιστροφής).
    c. Static με υπογράμμιση.
    d. Όχι οι get και set
3. Abstract κλάσεις δηλώνονται γράφοντας «Abstract» κάτω από τον τίτλο τους.
4. Σχέσεις και πληθυκότητα.
5. Μερικές φορές οι κλάσεις  DBManager και Main υπό μορφή εξωτερικού πακέτου.

Παράδειγμα








Κύκλος ανάπτυξης Λογισμικού σε Java

Έχει ακολουθιακή σειρά  βημάτων και έγκειται  στο Σπειροειδές μοντέλο ανάπτυξης.

1. Κείμενο / Απαιτήσεις

2. Περιπτώσεις χρήσης

3. Διάγραμμα Περιπτώσεις χρήσης

4. Εννοιολογικό Διάγραμμα Κλάσεων

5. Για κάθε Περιπτώσεις χρήσης διάγραμμα Ευρωστίας

6. Για κάθε Περιπτώσεις χρήσης διάγραμμα Ακολουθίας

7. Διάγραμμα κλάσεων (design level)

8. Κώδικας Java [επιστροφή στο βήμα 4]

9. Ολοκλήρωση εφαρμογής


Comments

Πες μας τι σκέφτεσαι:

Δημοσίευση σχολίου