Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία Ενότητα 6: Η Τεχνολογία Λογισμικού στην Αλληλεπίδραση Ανθρώπου-Υπολογιστή Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Να κατανοήσει ο φοιτητής τα στάδια ανάπτυξης ενός αλληλεπιδραστικού προϊόντος. Ειδικότερα, αναλύεται: ο κύκλος ζωής λογισμικού και το μοντέλο καταρράκτη. 4
Περιεχόμενα ενότητας Κύκλος ζωής λογισμικού. Μοντέλο καταρράκτη. 5
Τεχνολογία λογισμικού: Τι είναι; Πρόκειται για επιστημονικό τομέα ο οποίος ασχολείται με τα τεχνικά ζητήματα της ανάπτυξης προϊόντων λογισμικού. 6
Κύκλος ζωής λογισμικού Αφορά όλες τις δραστηριότητες από την αρχική σύλληψη της ιδέας μέχρι τη δημιουργία, χρήση και τον παροπλισμού/ αντικατάσταση ενός προϊόντος λογισμικού. Για την ανάπτυξη ενός προϊόντος λογισμικού υπάρχουν 2 βασικά συμβαλλόμενα μέρη: α) ο σχεδιαστής ή η ομάδα σχεδιαστών και β) ο τελικός χρήστης ή η ομάδα χρηστών. Προσοχή: σε πολλές περιπτώσεις, άλλος είναι ο τελικός χρήστης του προϊόντος λογισμικού και άλλος ο πελάτης ο οποίος το αγοράζει από την εταιρεία ανάπτυξής του. Πηγή: Dix et al. (2007). 7
Κύκλος ζωής λογισμικού: Μοντέλο καταρράκτη (1) 8
Μοντέλο καταρράκτη: Ανάλυση απαιτήσεων Αποτελεί την αρχική δραστηριότητα. Οι σχεδιαστές επικοινωνούν με τους τελικούς χρήστες ώστε να καταγραφούν λεπτομερώς «τι» θέλουν οι τελευταίοι να κάνει το σύστημα. Επίσης, πρέπει να απαντηθούν εκτός από το «τι» θα κάνει το σύστημα, το «ποιος» θα το χρησιμοποιεί, «που» και «πότε». Σε πρώτο στάδιο οι απαιτήσεις καταγράφονται στη φυσική γλώσσα των χρηστών. 9
Μοντέλο καταρράκτη: Σχεδιασμός αρχιτεκτονικής Από το «τι», «ποιος», «που» και «πότε», θα πρέπει να περάσουμε στο «πως» θα λειτουργεί το σύστημα. 10
Μοντέλο καταρράκτη: Λεπτομερής σχεδίαση Συνήθως, το υπό δημιουργία σύστημα αναπτύσσεται σε επιμέρους υποσυστήματα. Αυτά τα υποσυστήματα μπορεί να αναπτύσσονται ανεξάρτητα, όμως θα πρέπει να μεριμνηθεί η μελλοντική τους ενοποίηση (κρίσιμο στοιχείο η συμβατότητά τους). Σημαντικό: ο σχεδιασμός και κατ επέκταση το επόμενο στάδιο (συγγραφή κώδικα) θα πρέπει να λάβουν υπόψη τους τη δυνατότητα για μελλοντικές αναβαθμίσεις. Επίσης, τη συμβατότητά του με τα ευρέως χρησιμοποιούμενα πρότυπα και τεχνολογίες. Πηγή: Dix et al. (2007). 11
Μοντέλο καταρράκτη: Συγγραφή κώδικα και έλεγχος Υλοποίηση του προϊόντων λογισμικού, είτε ενοποιημένο είτε σε υποσυστήματα, μέσω της συγγραφής του σε κάποια γλώσσα προγραμματισμού. 12
Μοντέλο καταρράκτη: Ενοποίηση και έλεγχος Ενοποίηση των υποσυστημάτων υλοποίησης σύμφωνα με την περιγραφή της αρχιτεκτονικής του συστήματος. Πολυάριθμοι και πολυδιάστατοι έλεγχοι για να διασφαλιστεί η σωστή συμπεριφορά των υποσυστημάτων σε ενοποιημένο περιβάλλον. Ιδιαίτερη προσοχή στη σωστή λειτουργία του ενοποιημένου συστήματος σε σχέση με τους κοινόχρηστους πόρους. Σε πολλά προϊόντα λογισμικό, σε αυτό το στάδιο, εκτελούνται έλεγχοι αποδοχής με τη συμμετοχή των χρηστών ώστε να διασφαλιστεί ότι το σύστημα ικανοποιεί τις απαιτήσεις τους. 13
Μοντέλο καταρράκτη: Λειτουργία και συντήρηση Προώθηση του τελικού προϊόντος λογισμικού στην αγοράχρήστη. Εποπτεία του για λόγους συνεχούς καλής λειτουργίας. Για παράδειγμα, διόρθωση σφαλμάτων και «κενών», προσαρμογή-ρυθμίσεις (όσο βέβαια είναι εφικτή/-ές) στις απαιτήσεις του χρήστη. Το προϊόν λογισμικού υποστηρίζεται μέχρι να παροπλιστεί ή βγει από την αγορά λόγω υλοποίησης νέας έκδοσης. 14
Κύκλος ζωής λογισμικού και διαδραστικά συστήματα Η γραμμική διαδοχή των σταδίων είναι δύσκολο έως αδύνατο να εφαρμοστεί σε διαδραστικά συστήματα. Σε διαδραστικά συστήματα είναι αδύνατος ο προσδιορισμός εκ των προτέρων όλων των απαιτήσεων. Επομένως, παρατηρούνται συνεχείς μεταβάσεις σε προηγούμενα στάδια, κυρίως λόγω της δημιουργίας νέων απαιτήσεων (επαναληπτική διαδικασία σχεδίασης). Πηγή: Dix et al. (2007). 15
Διαδραστικά συστήματα και μοντέλο καταρράκτη 16
Κύκλος ζωής λογισμικού και διαδραστικά συστήματα (2) Επομένως, η επαναληπτική διαδικασία σχεδίασης στοχεύει να βελτιώνεται σε κάθε επανάληψη το προϊόν μέχρι να φτάσει να συμβαδίσει πλήρως με τις απαιτήσεις του χρήστη. Σε αυτές τις επαναλήψεις χρησιμοποιούνται πρότυπα, τα οποία προσομοιώνουν χαρακτηριστικά του υπό δημιουργία προϊόντος. 17
Αιτιολόγηση της σχεδίασης Πρόκειται για τεκμηριωμένες απαντήσεις για όλα τα επιμέρους στάδια της διαδικασίας σχεδίασης, με κάθε λεπτομέρεια. Θεωρείται απαραίτητη για την ομάδα σχεδιασμού του προϊόντος. 18
Βιβλιογραφία Dix, A., Finlay, J., Abowd, G. D, and Beale, R. (2007). Επικοινωνία Ανθρώπου Υπολογιστή (3 η Έκδοση). Εκδόσεις Μ. Γκιούρδας, Αθήνα. 19