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

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

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

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

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UML: Unified modelling language

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Rational Unified Process:

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

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

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

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης

Tεχνολογία Λογισµικού II

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

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

Υποδείγματα Ανάπτυξης

Βάσεις Δεδομένων Ι. 4 ο Φροντιστήριο. Πέρδικα Πολίνα [perdika]

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

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

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

Οντοκεντρικός Προγραμματισμός

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ UML ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ (ΔΙΑΓΡΑΜΜΑΤΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ & ΠΕΡΙΠΤΩΣΕΩΝ ΧΡΗΣΗΣ) (7-8)

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

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

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


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

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

Ανάπτυξη συστήματος λογισμικού βάσει της μεθοδολογίας ICONIX

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

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Βάσεις Δεδομένων Ενότητα 4

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

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

Έγγραφο Περιγραφής Απαιτήσεων Λογισμικού

ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design. Αντικειμενοστραφής Προγραμματισμός (ΗΥ 252)

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

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

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

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

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

Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων. Εισαγωγή στην UML. Βασίλειος Βεσκούκης

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ΗΥ351: Στοιχεία Μαθήµατος. Συνοπτική Περιγραφή Μαθήµατος. Προσωπικό και Ιστοσελίδα Μαθήµατος. Στόχοι του Μαθήµατος (ΙΙ)

ΗΥ351: Στοιχεία Μαθήµατος

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

Μοντελοποίηση Συστημάτων

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

Σχεδίαση Λογισμικού. Σημείωση

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

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

Από τη UML στον Κώδικα. Μέρος Α

Μοντέλα Οντοτήτων Συσχετίσεων 2

Transcript:

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

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

Άξονες Μοντελοποίησης Λειτουργικότητα functionality Τι κάνει το σύστημα; Ποιες λειτουργίες υποστηρίζει; Ανάλυση απαιτήσεων Περιγραφές από κείμενο Στατικά διαγράμματα Πώς είναι οργανωμένα τα συστατικά του τμήματα; Δυναμική συμπεριφορά Πώς ανταποκρίνεται και από ποιες καταστάσεις περνάει; Δομή structure Συμπεριφορά behaviour

Abstract κλάσεις Παρέχουν κώδικα για κάποιες λειτουργίες ΑΛΛΑ αφήνουν άλλες λειτουργίες χωρίς κώδικα υλοποίησης Οι υποκλάσεις προσδιορίζουν τις χωρίς υλοποίηση λειτουργίες Συγκεκριμένες (concrete) υποκλάσεις Οι συγκεκριμένες υποκλάσεις: κληρονομούν τα συγκεκριμένα και abstact στοιχεία των υπερκλάσεών τους και ταυτόχρονα συγκεκριμενοποιούν παρέχοντας την κατάλληλη υλοποίηση τα abstract στοιχεία

Abstract κλάση με συγκεκριμένη υποκλάση Shape -linecolor : Color Το όνομα της abstract κλάσης και οι abstract λειτουργίες γράφονται με πλάγια γράμματα +draw() Square -upperleft : Point -height : double -width : double Abstract κλάση για ένα «Shape» (σχήμα) Abstract λειτουργία draw() για τη σχεδίαση του σχήματος Η συγκεκριμένη υποκλάση για ένα τετράγωνο (η κλάση «Square») κληρονομεί τα συγκεκριμένα μέρη της κλάσης «Shape» και υλοποιεί τα στοιχεία (τη λειτουργία draw). +draw()

Abstract κλάσεις και Διασύνδεση (interface) Παρέχει ένα σύνολο λειτουργιών οι οποίες είναι στο σύνολο τους abstract Μια διασύνδεση δεν έχει δεδομένα, κατάσταση, αλλά ούτε συσχετίσεις με πλοηγισιμότητα από τη διασύνδεση προς το άλλο άκρο της συσχέτισης ΑΥΤΟ αποτελεί συνέπεια της έλλειψης δεδομένων η πλοηγησιμότητα συνεπάγεται την υποχρέωση της γνώσης των αντικειμένων της συσχετιζόμενης κλάσης και άρα ύπαρξη δεδομένων.

Abstract κλάσεις και Διασύνδεση (interface) Κάποια κλάση που πραγματοποιεί (realizes) τη διασύνδεση έχει την υποχρέωση να υλοποιήσει όλες τις λειτουργίες της διασύνδεσης Το "κέρδος" για την κλάση είναι ότι τα αντικείμενά της θα έχουν τον τύπο της διασύνδεσης και επομένως θα μπορούν να χρησιμοποιηθούν όπου αναμένονται αντικείμενα του τύπου της διασύνδεσης Κλάσεις που δεν έχουν καμία σχέση μεταξύ τους (π.χ. δεν ανήκουν στην ίδια ιεραρχία τύπων) μπορούν να υλοποιήσουν μια διασύνδεση και να ωφεληθούν από λειτουργίες που ενεργούν σε αντικείμενα αυτής της διασύνδεσης.

Abstract κλάσεις και Διασύνδεση (interface) Σχέση Πραγματοποίησης/Υλοποίησης (Realization/implements) Σε μία σχέση πραγματοποίησης, μία οντότητα (διεπαφή) καθορίζει μια λειτουργικότητα και οι άλλες οντότητες (κλάσεις) υλοποιούν αυτή τη λειτουργικότητα

Abstract κλάσεις και Διασύνδεση (interface) Συμβολισμός στη UML 1. Σύμβολο κλάσης και λέξη-κλειδί «Interface» πάνω από το όνομα της κλάσης Διαμέρισμα ιδιοτήτων: ή δεν υπάρχει ή είναι κενό Μια κλάση που υλοποιεί τη διασύνδεση συσχετίζεται με αυτήν με το σύμβολο της πραγματοποίησης (realization), όπως στη γενίκευση, αλλά με γραμμή που είναι διακεκομμένη 2. Ένας μικρός άδειος κύκλος με το όνομα της διασύνδεσης κάτω από τον κύκλο Η πραγματοποίηση της διασύνδεσης με την κλάση απεικονίζεται με μία γραμμή που συνενώνει την κλάση που πραγματοποιεί τη διασύνδεση με το μικρό άδειο κύκλο που συμβολίζει τη διασύνδεση

Abstract κλάσεις και Διασύνδεση (interface) Μία διασύνδεση που υλοποιείται με το συμβολισμό της κλάσης και δύο κλάσεις που πραγματοποιούν τη διασύνδεση

Abstract κλάσεις και Διασύνδεση (interface) Εναλλακτικός συμβολισμός για να δείξουμε ότι η κλάση «Baby» υλοποιεί τη διασύνδεση «CryingObject». Εξαιτίας της ομοιότητάς του με γλυφιτζούρι (lollipop), ο συμβολισμός αυτός αναφέρεται ορισμένες φορές και ως συμβολισμός lollipop.

Abstract κλάσεις και Διασύνδεση (interface) Μία κλάση μπορεί να πραγματοποιεί περισσότερες από μία διασυνδέσεις Άλλες κλάσεις μπορεί να είναι εξαρτημένες από υποσύνολα αυτών των διασυνδέσεων (π.χ. κάποια κλάση ενδέχεται να χρησιμοποιεί λειτουργίες μόνο από μία διασύνδεση μιας άλλης κλάσης, η οποία πραγματοποιεί περισσότερες από μία διασυνδέσεις)

Abstract κλάσεις και Διασύνδεση (interface) Η κλάση «Baby» υλοποιεί τη διασύνδεση «CuteObject», που παρέχει τη λειτουργία takepicture (φωτογράφιση από φωτογραφική μηχανή) Ένα αντικείμενο της κλάσης «Speaker» ελέγχει την ένταση του κλάματος του μωρού χρησιμοποιώντας τη διασύνδεση «CryingObject» Ένα αντικείμενο της κλάσης «Camera» φωτογραφίζει το μωρό χρησιμοποιώντας τη διασύνδεση «CuteObject»

Abstract κλάσεις και Διασύνδεση (interface) Οι κλάσεις «Speaker» και «Camera» μπορούν να ελέγξουν τον ήχο και να πάρουν φωτογραφίες οποιωνδήποτε αντικειμένων υλοποιούν τις διασυνδέσεις «CryingObject» και «CuteObject» ΔΕΝ εξαρτώνται από το αντικείμενο «Baby» Η κλάση «Speaker» λειτουργεί και με ένα αντικείμενο της κλάσης «BluesSinger» επειδή υλοποιεί τη διασύνδεση «CryingObject»

Αφαιρετικές κλάσεις και Διασύνδεση (interface) Διαμερισμός λειτουργιών μιας κλάσης σε διασυνδέσεις και Ελεγχόμενος τρόπος με τον οποίο άλλες κλάσεις εξαρτώνται από συγκεκριμένα υποσύνολα των διασυνδέσεων και μόνο από αυτά Μία από τις σημαντικότερες τεχνικές για την κατασκευή πολύπλοκων συστημάτων λογισμικού ΓΙΑΤΙ??? Εφόσον μία κλάση δεν χρησιμοποιεί όλες τις λειτουργίες μίας άλλης κλάσης αλλά μόνο ένα καλά καθορισμένο υποσύνολο των λειτουργιών αυτών (μόνο αυτές τις λειτουργίες που παρέχει η διασύνδεση την οποία χρησιμοποιεί) μπορούμε να ελέγξουμε καλύτερα τη διαδικασία των αλλαγών στο λογισμικό (change management, διαχείριση αλλαγών)

Αφαιρετικές κλάσεις και Διασύνδεση (interface) Αν αλλάξει η μορφή ή η σημασία της λειτουργίας controlvolume, που παρέχει η διασύνδεση «CryingObject»: ΔΕΝ ανησυχούμε για την κλάση «Camera» (η κλάση αυτή δεν χρησιμοποιεί τη διασύνδεση «CryingObject») Ανησυχούμε για πιθανές αλλαγές στην κλάση «Speaker»

Αφαιρετικές κλάσεις και Διασύνδεση (interface) <<interface>> List equals add get implementation (provides interface) Abstract List abstract class equals get add abstract method (no implementation)

Abstract κλάσεις και Διασύνδεση (interface) Μία διασύνδεση δεν περιέχει υλοποίηση λειτουργιών Ενώ μια αφηρημένη κλάση μπορεί να παρέχει και την υλοποίηση κάποιων λειτουργιών. Στις διασυνδέσεις και στις αφηρημένες κλάσεις δεν μπορούν να δηλωθούν αντικείμενα. Μια κλάση που κληρονομεί από μια αφηρημένη κλάση πρέπει να υλοποιήσει όλες τις αφηρημένες λειτουργίες της αφηρημένης υπερκλάσης της διαφορετικά θα είναι και αυτή αφηρημένη.

Συνοψίζοντας... Δομική μοντελοποίηση η πιο καθοριστική όψη της μοντελοποίησης Καθορίζει τα προς αποθήκευση δεδομένα, τον τρόπο υλοποίησης της συμπεριφοράς (τρόπο υλοποίησης των λειτουργιών του συστήματος)... Μοντελοποίηση δομής σταδιακά Αρχικό στάδιο Εντοπισμός σημαντικών εννοιών πεδίου εφαρμογής / Αναγνώριση κλάσεων συστήματος Δήλωσή τους ως κλάσεις, πρόσθεση βασικών γνωρισμάτων και ορισμός συσχετίσεων μεταξύ των κλάσεων ΑΠΟΤΕΛΕΣΜΑ: διάγραμμα κατανοητό από έναν ειδικό του πεδίου εφαρμογής (πελάτη), δεν σχετίζεται με θέματα υλοποίησης ή άλλα τεχνικά θέματα

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

Συνοψίζοντας... Κατά τη μετάβαση από την ανάλυση στη σχεδίαση και υλοποίηση συμπλήρωση και εκλέπτυνση περιγραφής κλάσεων και συσχετίσεών τους (προσθήκη γνωρισμάτων, λειτουργιών,...). Χρήση UML για τη δήλωση των κλάσεων: Kαλή εποπτική εικόνα σχεδίου Έλεγχος για το αν το διάγραμμα καλύπτει τις απαιτήσεις Διερεύνηση εναλλακτικών τρόπων μοντελοποίησης Εντοπισμός λαθών Εύκολη επέκταση αν απαραίτητη Γρήγορες αλλαγές λόγω γραφικού περιβάλλοντος Σε επόμενο στάδιο Εξειδίκευση διαγράμματος κλάσεων βάσει γλώσσας προγραμματισμού

Πηγές Ε. Κιουντούζης, Μεθοδολογίες Ανάλυσης και Σχεδιασμού Πληροφοριακών Συστημάτων,Εκδόσεις Α.Σταμούλη, Αθήνα 2002 Γιάννης Τζίτζικας. Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων, Πανεπιστήμιο Κρήτης Shari Lawrence Pfleeger. Τεχνολογία Λογισμικού: Θεωρία και Πράξη, τόμος 1, Κλειδάριθμος, Αθήνα, 2003 Leszek A. Maciaszek, Requirements Analysis and System Design (2nd edition), Addison Wesley, 2005 A.Dennis, B. Haley Wixom, D. Tegarden, Systems Analysis and Design with UML Version 2.0 (2nd edition) Wiley, 2005 Booch G., Rumbaugh J., Jacobson I. Unified Modeling Language User Guide. Addison- Wesley Professional 2 Edition, ISBN 0321267974. Pascal Roques, UML in Practice, John Wiley, 2004 UML Fundamentals & OOAD UML 2.0, www.acm.org Αφροδίτη Τσαλγατίδου. Εισαγωγή στη UML, Καποδιστριακό Πανεπιστήμιο Αθηνών Αντικειμενοστρεφής Ανάπτυξη Λογισμικού με τη UML, επιμέλεια Π. Φιτσιλής, Κλειδάριθμος 2006 Ιωάννης Γαβιώτης. Πληροφοριακά Συστήματα Μοντελοποίηση με UML, Πανεπιστήμιο Αιγαίου www.agilemodeling.com/style/classdiagram.htm http://www.devx.com/enterprise/article/28576