Ειδικά θέματα τεχνολογίας λογισμικού

Σχετικά έγγραφα
Εισαγωγή στη Σχεδίαση Λογισμικού

Τεχνολογία λογισμικού στην πράξη

Τεχνολογία λογισμικού στην πράξη

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και

Τεχνολογία λογισμικού στην πράξη

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ανάλυση Πληροφοριακών Συστημάτων. «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας

Διαχείριση Πληροφοριακών Συστημάτων

Αρχιτεκτονική Λογισμικού

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Τεχνολογία λογισμικού στην πράξη

Μοντελοποίηση Πεδίου

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Αρχιτεκτονικές Συστημάτων

UML: Unified modelling language

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Τεχνολογία Λογισμικού

Περιεχόμενο του μαθήματος

Διαγράμματα Κλάσεων στη Σχεδίαση

Τεχνολογία Λογισμικού

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

Τεχνολογία λογισμικού στην πράξη

Τεχνολογία Λογισμικού

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Τεχνολογία Λογισμικού

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Δομή και Στόχοι του Μαθήματος - Εισαγωγή

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 2: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (2ο Μέρος)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια

Στόχοι της Πτυχιακής

Ανάλυση Πληροφοριακών Συστημάτων. «Διαγράμματα περιπτώσεων χρήσης» Βασίλειος Καρακόιδας

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο -

Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

περιεχόμενα παρουσίασης

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υ7ΐοβάλλεται στην

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Σχεδίαση Συστήματος Λογισμικού

Εισαγωγή στη γλώσσα UML

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

. Μεθοδολογία Προγραμματισμού. Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Μοτίβα Σχεδίασης (Design Patterns)

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Περιεχόμενο του μαθήματος

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Η μεθοδολογία ICONIX. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Ανάλυση Περιπτώσεων Χρήσης

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

UML

Ελληνικό Ανοικτό Πανεπιστήµιο. Τα διαγράµµατα UML. ρ. Πάνος Φιτσιλής

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Κλάσεων. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Εισαγωγή στη UML. Περιεχόμενα. Γενικά χαρακτηριστικά. Στοιχεία μοντέλων. Συσχετίσεις. Διαγράμματα. Παραδείγματα. Γλώσσες Προδιαγραφής 1

14η ιάλεξη. Προχωρημένα θέματα σχεδίασης

Αντικειμενοστρεφής Προγραμματισμός

. Μεθοδολογία Προγραμματισμού. Εισαγωγή. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

Μέθοδοι μοντελοποίησης

Κωδικός: <Κωδ.Αρ.Εγγράφου/ΚωδικόΌνομαΈργου/Αρ. Έκδοσης> <Company Name> <Όνομα - Κωδικό Όνομα Έργου> Έγγραφο Περιγραφής Σχεδίου Λογισμικού

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

Τεχνολογία Λογισμικού

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού

Σχεδιασµός βασισµένος σε συνιστώσες

Τα διαγράµµατα πακέτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 19/12/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

Requirements Απαιτήσεις

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Συνεργασίας. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

Τεχνολογία Λογισμικού

Transcript:

Ειδικά θέματα τεχνολογίας λογισμικού Σχεδιασμός λογισμικού Διομήδης Σπινέλλης Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας Οικονομικό Πανεπιστήμιο Αθηνών dds@aueb.gr http://www.dmst.aueb.gr/dds @CoolSWEng 2016-06-28 Παρουσιάσεις ομάδων Επιλέξτε ένα (σημαντικό-δημοφιλές) έργο ανοιχτού λογισμικού και εξετάστε στοιχεία του σχεδιασμού του: αναζητήστε αρχές καλής σχεδίασης λογισμικού αναγνωρίστε θέματα - παράγοντες σχεδίασης που αποκτούν ιδιαίτερη βαρύτητα στο συγκεκριμένο έργο επιλέξτε μια στρατηγική σχεδίασης και ταιριαστή σημειογραφία που θεωρείτε κατάλληλες για να αναπαραστήσετε μια στατική όψη του σχεδίου λογισμικού. Μπορείτε να χρησιμοποιήσετε αφαίρεση, μία από τις αρχές καλής σχεδίασης λογισμικού, για να επικοινωνήσετε εκείνες τις οντότητες που θεωρείτε πιο σημαντικές. Σχεδίαση λογισμικού Design: μια λέξη, δυο έννοιες H διαδικασία: σχεδίαση Tο αποτέλεσμα της διαδικασίας: σχέδιο Περιλαμβάνει Αρχιτεκτονικό σχέδιο του συνόλου Λεπτομερή σχέδια εφαρμογής των τμημάτων Παραδοτέα Μοντέλα Περιγραφές υψηλού επιπέδου Τεκμηρίωση Αποφάσεις Λόγους που λήφθηκαν οι αποφάσεις 1

Figure 1: College of Architecture and Planning 2

Βασικές αρχές Αφαίρεση (abstraction) διαδικασιών δεδομένων δομών ελέγχου Χαμηλή σύζευξη και συνεκτικότητα (coupling) Υψυλή συνεκτικότητα (cohesion) Αποσύνθεση και τμηματικότητα (decomposition and modularity) Ενθυλάκωση και απόκρυψη πληροφοριών (encapsulation and information hiding) Διαχωρισμός της διεπαφής από την υλοποίηση Πληρότητα, οικονομία, απλότητα Διαχωρισμός ευθυνών (separation of concerns) Aυξανόμενα επίπεδα συνεκτικότητας Η καλή σχεδίαση πρέπει να φέρνει κοντά τμήματα που εμφανίζουν υψηλή συνεκτικότητα. Διακρίνουμε τα παρακάτω αυξανόμενα επίπεδα συνεκτικότητας: Συμπτωματική συνεκτικότητα (coincidental cohesion) Λογική συνεκτικότητα (logical cohesion) Χρονική συνεκτικότητα (temporal cohesion) Διαδικαστική συνεκτικότητα (procedural cohesion) Επικοινωνιακή συνεκτικότητα (communicational cohesion) Ακολουθιακή συνεκτικότητα (sequential cohesion) Λειτουργική συνεκτικότητα (functional cohesion) Σύζευξη, από το κακό στο χειρότερο Η καλή σχεδίαση πρέπει κατά το δυνατόν να αποφεύγει τη σύζευξη μεταξύ τμημάτων. Διακρίνουμε τα παρακάτω αυξανόμενα επίπεδα σύζευξης: Σύζευξη δεδομένων (data coupling) Σύζευξη δομής δεδομένων (stamp coupling) (ή αντιγράφου ή μήτρας) Σύζευξη ελέγχου (control coupling) Σύζευξη κοινών δεδομένων (common coupling) (ή από κοινού σύνδεση) Σύζευξη εξωτερικών δεδομένων (external coupling) Σύζευξη περιεχομένων (content coupling) Θέματα της σχεδίασης Συνδρομή (concurrency) Έλεγχος και χειρισμός γεγονότων Αποθήκευση των δεδομένων Κατανομή των αρθρωμάτων 3

Χειρισμός λαθών και εξαιρέσεων Βλαβοανοχή Τεχνολογία διεπαφής με το χρήστη και εμφάνισης Ασφάλεια Σχεδιαστικές οπτικές Τα σχέδια είναι συχνά από διαφορετικές οπτικές: Λογική (βάσει λειτουργικών προδιαγραφών) Διεργασίες (βάσει ιδιοτήτων συνδρομής) Φυσική Σχέδιο ανάπτυξης Αρχιτεκτονικές τεχνικές Γενικές Επίπεδα Σωληνώσεις και φίλτρα Μαυροπίνακας Κατανεμημένες Πελάτη-εξυπηρετητή Τριών επιπέδων Ομότιμων πελατών Εξειδικευμένες Μοντέλο - Οπτική - Έλεγχος (MVC) Ανάκλαση (reflection) Γλώσσα εξειδικευμένου πεδίου (DSL) Διερμηνευτής Έλεγχος από δεδομένα Παράδειγμα: επίπεδα Παράδειγμα: σωληνώσεις και φίλτρα 4

Figure 2: Layers of indirection in the FreeBSD implementation of the read system call 5

Παράδειγμα: DSL Παράδειγμα: Αποτέλεσμα DSL Σχεδιαστικά πρότυπα Δημιουργίας: Builder, Factory, Prototype, Singleton Δομικά: Adapter, Bridge, Composite, Decorator, Facade, Flighweight Proxy Συμπεριφορικά: Command, Intepreter, Iterator, Mediator Παράδειγμα: Factory (Πηγή: Wikipedia) Παράδειγμα: Observer (Πηγή: Wikipedia) Παράδειγμα: Decorator (Πηγή: Wikipedia) Ικανοποίηση διαφορετικών χρηστών Οικογένειες προγραμμάτων Λογισμικό-πλαίσιο (framework) 6

Figure 3: Chess board Figure 4: Factory 7

Figure 5: Observer Figure 6: Decorator 8

Αρχές διεπαφής χρήστη Εύκολη εκμάθηση Υιοθέτηση γνωστών τρόπων διεπαφής Συνέπεια Όχι εκπλήξεις (POLA) Ανακτησιμότητα Καθοδήγηση του χρήστη Μέριμνα για όλους τους χρήστες Τρόποι διεπαφής Ερώτηση - απάντηση Άμεσος χειρισμός Επιλογή από μενου Συμπλήρωση φόρμας Γλώσσα εντολών Φυσική γλώσσα Σημαντικά θέματα διεπαφής Σύντομος χρόνος απόκρισης Ενημέρωση του χρόνου απόκρισης Προσοχή στη χρήση των χρωμάτων Διεθνοποίηση και τοπικοποίηση Χρήση μεταφοράς Παράσταση δομής Διάγραμμα κλάσεων (UML class) Διάγραμμα αντικειμένων (UML object) Διάγραμμα εξαρτημάτων (UML component) Διάγραμμα διάπτυξης (UML deployment) Διάγραμμα οντοτήτων συσχετίσεων (ERD) Κάρτες «class, responsibility, collaborator» (CRC) Διαγράμματα UML (Πηγή: Wikipedia) 9

Figure 7: Διαγράμματα UML Σχέσεις UML Στη UML ορίζονται τέσσερεις βασικές σχέσεις: εξάρτηση (dependency) γενίκευση (generalisation) σύνδεση (association) υλοποίηση (realisation) Εξάρτηση Η εξάρτηση δηλώνει πως μια αλλαγή σε μιαν οντότητα θα επηρεάσει μιαν άλλη αλλά όχι απαραίτητα και το αντίστροφο. Παριστάνεται με μια διακεκομμένη γραμμή με ανοιχτό βέλος που δείχνει προς την οντότητα που υπάρχει εξάρτηση: Figure 8: UML Dependency Γενίκευση Η γενίκευση δηλώνει μια σχέση ανάμεσα σε κάτι γενικό (τη βασική κλάση ή αλλιώς γονέα) και κάτι ειδικό (μιαν υποκλάση ή αλλιώς παιδί της). Παριστάνεται με μια συνεχή γραμμή με κλειστό βέλος που δείχνει προς τη βασική κλάση: 10

Figure 9: UML Dependency Σύνδεση Η σύνδεση αναφέρεται σε αντικείμενα τα οποία συνδέονται με κάποιο τρόπο με άλλα. Όταν δύο κλάσεις είναι συνδεδεμένες μπορεί κανείς να μεταβεί από αντικείμενα της μιας σε αντικείμενα της άλλης. Η σύνδεση παριστάνεται με μια ευθεία γραμμή ανάμεσα στα δύο αντικείμενα. Figure 10: UML Association Συγκρότημα και σύνδεση Αν σε μια σχέση τα αντικείμενα απαρτίζουν τμήματα ενός όλου, τότε αυτή απεικονίζεται ως συγκρότημα (aggregation) με την παράσταση ενός διαμαντιού στην άκρη του όλου. Figure 11: UML Aggregation Αν σχέση τα αντικείμενα που απαρτίζουν τμήματα ενός όλου έχουν την ίδια διάρκεια ζωής με το όλο, τότε αυτή απεικονίζεται ως σύνθεση (composition) με την παράσταση ενός γεμάτου διαμαντιού στην άκρη του όλου. Πληροφορίες στη σύνδεση Αν η σύνδεση δεν είναι αμφίδρομη τότε η κατεύθυνσή της μπορεί να οριστεί με ένα ανοιχτό βέλος. Το όνομα της σύνδεσης μπορεί να γραφεί πάνω από τη γραμμή, ενώ η κατεύθυνση του ονόματος ορίζεται από ένα βέλος πλάι στο όνομα. 11

Ο ρόλος των οντοτήτων που συνδέονται προσδιορίζεται από ένα όνομα στην κάθε άκρη της γραμμής. Ο αριθμός που δηλώνει πόσα αντικείμενα αντιστοιχούν σε κάθε αντικείμενο στην άλλη άκρη της σχέσης (πολλαπλότητα (multiplicity)) δηλώνεται από έναν αριθμό (π.χ. 3), ή μια περιοχή αριθμών (π.χ. 1..* για ένα έως πολλά) πάνω από την αντίστοιχη άκρη της γραμμής. Ένα X πάνω σε μια άκρη της γραμμής δηλώνει πως δεν προσφέρεται μετάβαση (navigation) προς τη συγκεκριμένη κατεύθυνση. Υλοποίηση Η υλοποίηση δηλώνει πως ο εξυπηρετούμενος (αυτός που βρίσκεται στην ουρά του βέλους) υποστηρίζει τη διεπαφή (τουλάχιστον όλες τις πράξεις) που ορίζονται από τον παροχέα (αυτόν που βρίσκεται στην κεφαλή του βέλους): Figure 12: UML Realization UML: Διάγραμμα κλάσεων Figure 13: UML class diagram UML: Διάγραμμα διάπτυξης (Πηγή: Wikipedia) Διάγραμμα οντοτήτων συσχετίσεων (Πηγή: Χρήστος Παπαδουλής) 12

Figure 14: UML Figure 15: ERD 13

UML: Διάγραμμα αρθρωμάτων Figure 16: UML (Πηγή: Wikipedia) UML: Διάγραμμα πακέτων (Πηγή: Wikipedia) Παράσταση συμπεριφοράς Διάγραμμα δραστηριοτήτων (UML activity) Διάγραμμα καταστάσεων (UML statechart) Διάγραμμα ροής δεδομένων (data flow) Πίνακας αποφάσεων (decision table) Διάγραμμα ροής (flow chart) Διάγραμμα ακολουθίας (UML sequence) Διάγραμμα καταστάσεων (UML state) Διάγραμμα συνεργασίας (UML collaboration) 14

Figure 17: UML UML: Διάγραμμα καταστάσεων UML: Διάγραμμα ακολουθίας Προετοιμασία για το επόμενο μάθημα (1) Διαβάστε το κεφάλαιο 3 του SWEBOK v 3.0 Άσκηση (Κατασκευή λογισμικού) Αξιολογήστε στοιχεία-ιδιότητες ενός σημαντικού-δημοφιλούς έργου ανοιχτού λογισμικού που αφορούν την κατασκευή του: Αναζητήστε πρότυπα κατασκευής. Πως αυτά διευκολύνουν την επιβεβαίωση της ορθότητας του λογισμικού; Αναζητήστε επαναχρησιμοποιήσιμα και επαναχρησιμοποιούμενα συστατικά λογισμικού. Αναζητήστε πρακτικές ελέγχου ποιότητας κώδικα. Επιχειρήστε να βελτιώσετε την ποιότητα κατασκευής του έργου σε μία περίπτωση συνεισφέροντας σε αυτό την αλλαγή που προτείνετε. Προετοιμασία για το επόμενο μάθημα (2) Βίντεο (Σχεδιασμός Προγραμματιστικής Διεπαφής Εφαρμογών (API)) https://www.youtube.com/watch?v=aab7hsctvgw 15

Figure 18: UML 16

Figure 19: UML 17

Συμβουλές για την άσκηση: Αναγνωρίστε και εστιάστε σε συστατικά λογισμικού που υλοποιούν τον πυρήνα της λειτουργικότητας του συστήματος. Αναζητήστε πρότυπα και καλές πρακτικές κατασκευής λογισμικού. Kατανοήστε τον όρο drive-by commit. Χρησιμοποιήστε την υπηρεσίa Github. Δείτε εδώ πώς. Άδεια διανομής Εκτός αν αναφέρεται κάτι διαφορετικό, όλο το πρωτότυπο υλικό της σελίδας αυτής του οποίου δημιουργός είναι ο Διομήδης Σπινέλλης παρέχεται σύμφωνα με τους όρους της άδειας Creative Commons Αναφορά-Παρόμοια διανομή 3.0 Ελλάδα. 18