Αν δεν το θυμόταν ο Δημήτρης, θα τα ξαναέψαχνα όλα τα εργαλεία!
Θα πρέπει να σκεφτείς πρώτα, για πιό λόγο θέλεις να δημιουργήσεις UML διαγράμματα? Μπορεί να φαίνεται περίεργη η ερώτηση, αλλά στην Ελλάδα τουλάχιστον έχει σημασία
- Ο ένας συνηθισμένος λόγος που τα χρησιμοποιούν παγκοσμίως είναι για να κάνουν μία υψηλού επιπέδου ανάλυση πριν γραφτεί ο κώδικας. Ίσως κάποια από τα community editions να σου κάνουν.
- Ο άλλος είναι για documentation του κώδικα κατόπιν εορτής. Όχι η καλύτερη λύση, αλλά απαιτεί εργαλείο το οποίο θα κάνει reverse engineering. Αυτό συνήθως απαιτεί τις πιο ακριβές εκδόσεις των εργαλείων.
- Η Ελληνική πραγματικότητα των διαγωνισμών απαιτεί UML διαγράμματα σε κάθε έργο, ασχέτως του τί παρουσιάζουν και αν ο κώδικας έχει σχέση στο τέλος! Ακόμα και το Visio αρκεί γι αυτό.
- Έχω επίσης ακούσει να χρησιμοποιείται η UML για να προσδιορίσει στους junior προγραμματιστές τί να φτιάξουν, σε επίπεδο flowchart. Θεωρώ αυτή τη χρήση εντελώς λάθος, καθώς έχει ήδη ξοδευτεί στη δημιουργία του διαγράμματος χρόνος ίσος ή και περισσότερος από αυτόν που απαιτείται για την συγγραφή του κώδικα. Αυτό όμως είναι σύμπτωμα προβληματικής ομάδας: οι προγραμματιστές είναι κάτι πολύ περισσότερο από diagram compilers.
Σκέψου επίσης οι commercial εκδόσεις συνήθως δίνουν traceability μεταξύ των διαφόρων οντοτήτων των διαγραμμάτων, change tracking, forward και reverse engineering. Προσωπικά χρησιμοποιώ πολύ το Enterprise Architect της SparxSystems, το οποίο έχει σχεδόν τις ίδιες δυνατότητες με τα μεγαλύτερα του χώρου, όπως το Rational Rose, σε πολύ προσιτή τιμή.
Τέλος, αν το εργαλείο σου κοστίζει περισσότερο χρόνο απ' όσο σου γλυτώνει, μην το χρησιμοποιείς. Είναι πολύ εύκολο να παρασυρθείς με ένα εργαλείο και να αρχίσεις να κάνεις σχηματάκια. Όταν αρχίσεις να γράφεις τον κώδικα που χρειάζεσαι όμως, θα δεις ότι δεν θα μοιάζει και πολύ με αυτό που σχεδίασες. Πάντα, θα χρειαστείς μία ακόμα μέθοδο, μία ακόμα κλάση, κάποιο refactoring θα κάνεις τα οποία γίνονται πολύ ευκολότερα στον κώδικα παρά αν πας μεσω σχήματος. Σύντομα ο κώδικας σου δεν θα έχει μεγάλη σχέση με τα διαγράμματα σου.
Το άλλο εργαλείο, το οποίο χρησιμοποιώ περισσότερο από το Enterprise Architect στις πρώτες φάσεις της ανάλυσης είναι χαρτί και μολυβι, ενίοτε και με τη μορφή καρτέλλων βιβλιοθήκης.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos