UML: Introduction and Overview



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

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

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

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

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

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

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

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

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

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

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

UML: Unified modelling language

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

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

Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων

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

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

Περίπτωση Χρήσης Use case

Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII

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

Περιεχόμενα και Διάρθρωση. Interaction Diagrams

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

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

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

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

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

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

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

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

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

UML

Use Cases: μια σύντομη εισαγωγή. Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002

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

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

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

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

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

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

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

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

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

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

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων,

Rational Unified Process:

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

Διάλεξη 03: Εννοιολογική Σχεδίαση Βάσης Δεδομένων I (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

Τα διαγράµµατα συστατικών

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

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Τμήμα Διοίκησης Επιχειρήσεων

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

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

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

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

Σχεδίαση Περιβάλλοντος εργασίας ενός Οργανισμού και Σχεδίαση Χάρτη διαδικασιών ενός Οργανισμού και

Βασικές Έννοιες Web Εφαρμογών

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ (5)

3 Αλληλεπίδραση Αντικειμένων

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

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

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

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

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

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

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

Architecture οf Integrated Ιnformation Systems (ARIS)

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

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

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

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

Μοντελοποίηση Λειτουργιών (Functional Modeling)

Σχεδίαση Βάσεων Δεδομένων

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

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Εννοιολογικό Μοντέλο. Conceptual Model

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 4: ER I. Data Modeling Using the ER Model

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

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

Σχεδιασμός Βάσεων Δεδομένων

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

Εισαγωγή στη γλώσσα µοντελοποίησης UML

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

Διάθρωση. HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Τεχνολογίες και Εφαρμογές Διαδικτύου. Σχεδίαση Συστήματος

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

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

Τα διαγράµµατα κλάσεων

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

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

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

How to register an account with the Hellenic Community of Sheffield.

Transcript:

Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design UML: Introduction and Overview Εισαγωγή στη Μοντελοποίηση και στη UML Γιάννης Τζίτζικας ιάλεξη : 7 Ημερομηνία : ιάρθρωση Μοντελοποίηση Πως προέκυψε η UML? Επισκόπηση των τεχνικών της UML και των χρήσεων της Γιατί να κάνουμε ανάλυση και σχεδίαση με τη UML? Hello World! σε UML U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 2

UML = Unified Modeling Language Ενοποιημένη Γλώσσα Μοντελοποίησης Τι είναι μοντελοποίηση? Τι είναι μοντέλο και γιατί μοντελοποιούμε Μοντέλο: Μια αφαίρεση (απλούστευση) της πραγματικότητας εστιάζει στα σημαντικά, κρύβει τις άσχετες πλευρές και τις δευτερεύουσας σημασίας λεπτομέρειες Γιατί μοντελοποιούμε; Ένα μοντέλο μας επιτρέπει την καλύτερη κατανόηση ενός συστήματος Συνήθως φτιάχνουμε μοντέλα σύνθετων συστημάτων τα οποία δεν μπορούμε να κατανοήσουμε στην πληρότητα τους (ένεκα των περιορισμένων μας αντιληπτικών και διανοητικών ικανοτήτων) Μοντελοποιώντας περιορίζουμε το πρόβλημα εστιάζοντας σε επιμέρους πλευρές του συστήματος (διαίρει και βασίλευε) και κλίμακες αφαίρεσης. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 4

Βασικές Αρχές Μοντελοποίησης Η επιλογή του τύπου μοντέλου καθορίζει τον τρόπο μελέτης του συστήματος και τη μορφή της λύσης που θα επιτευχθεί. Αντί αρχιτεκτονικού σχεδίου, μαθηματικές φόρμουλες πίεσης στους πυλώνες Κάθε μοντέλο μπορεί να παρασταθεί σε διαφορετικά επίπεδα ακρίβειας Καλά μοντέλα είναι εκείνα που συνδέονται με την πραγματικότητα Κανένα μοντέλο από μόνο του δεν είναι επαρκές. Κάθε μη τετριμμένο σύστημα προσεγγίζεται καλύτερα από ένα (σχετικά μικρό) σύνολο ανεξάρτητων μοντέλων από διαφορετικές σκοπιές. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 5 Βασικές Αρχές Μοντελοποίησης Κανένα μοντέλο από μόνο του δεν είναι επαρκές. Κάθε μη τετριμμένο σύστημα προσεγγίζεται καλύτερα από ένα (σχετικά μικρό) σύνολο ανεξάρτητων μοντέλων από διαφορετικές σκοπιές. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 6

Μοντελοποίηση στην Ανάλυση και Σχεδίαση Πλ. Συστημάτων Μοντελοποίηση στην Ανάλυση και Σχεδίαση Πλ. Συστ.: Βοηθά στην οπτικοποίηση ενός (υπαρκτού ή προς κατασκευή) συστήματος Βοηθά στην προδιαγραφή της δομής ήσυμπεριφοράςενός συστήματος Αποτελεί οδηγό για την κατασκευή ενός συστήματος Τεκμηριώνει τις αποφάσεις που έχουμε πάρει U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 7 Ηθέσητηςμοντελοποίησης στην Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Υψηλού επιπέδου επιχειρηματικές ανάγκες καταγεγραμμένες στην Πρόταση Συστήματος Καθορισμός Απαιτήσεων Αναλυτική Καταγραφή Συγκεκριμένων απαιτήσεων Επόμενο βήμα Μοντελοποίηση του Συστήματος Λειτουργική /Δομική/Συμπεριφοράς (Functional/Structural/Behavioral) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 8

UML = Unified Modeling Language Ενοποιημένη Γλώσσα Μοντελοποίησης δηλαδή; Εισαγωγή στη UML Διάδοχος των μεθόδων αντικειμενοστρεφούς ανάλυσης και σχεδίασης (object-oriented analysis and design, OOA&D) που εμφανίστηκαν στα τέλη της δεκαετίας του 80 και αρχές του 90 Ενοποιεί τις μεθόδους του Booch Rumbaugh (OMT) Jacobson Πλέον είναι πρότυμο OMG (Object Management Group standard) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 10

1980: C++ Πως φθάσαμε στη UML; Need to adapt the design methods of ( 70s- 80s) for the object-oriented world 1989-91 Recursive Design Approach (Sally Shlaew, Steve Meller) P. Coad and Ed. Yourdon (books 1991, 1991b, 1995,1999) Responsibility-Driven Design (Wirfs-Brock 90) Class-Responsibility-Collaboration (CRC Cards) Beck and Cunnigham Grady Booch: work with Rational Software (for Ada systems) Jim Rumbaugh: Object-Modeling Technique (OMT) The most conceptual of these books: Martin and Odell, 94 Ivar Jacobson (introduced the concept of Use Cases) Γενικά δεν υπήρχε διάθεση για ενοποίηση ή τυποποίηση (standardization) Κάθε ένας χρησιμοποιούσε τους δικούς του συμβολισμούς και μεθοδολογία Famous joke: - What is the difference between a methodologist and a terrorist? - You can negotiate with a terrorist! U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 11 Η γέννηση της UML Jim Rumbaugh and G. Booch => Rational Software 1996: The 3 amigos (James Rumbaugh, Grady Booch, Ivar Jacobson) UML Version 1.1 Became OMG standard Τρέχουσα έκδοση: UML Version 2.0, 2003 UML 2.1.1 (early 2007) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 12

ΟσκοπόςτηςUML Να ορίσει ένα κοινό λεξιλόγιο για τον αντικειμενοστρεφισμό και να προσφέρει διαγραμματικές τεχνικές ικανές να μοντελοποιήσουν οποιοδήποτε σύστημα από την ανάλυση έως και την υλοποίησή του. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 13 ΟσκοπόςτηςUML Να ορίσει ένα κοινό λεξιλόγιο για τον αντικειμενοστρεφισμό και να προσφέρει διαγραμματικές τεχνικές ικανές να μοντελοποιήσουν οποιοδήποτε σύστημα από την ανάλυση έως και την υλοποίησή του. Για να απαγκιστρωθούμε από την ορολογία και τις λεπτομέρειες της κάθε αντικειμενοστρεφούς γλώσσας (C++, Java, Eiffel, Smalltalk, C#, ή όποιας άλλης προκύψει στο μέλλον) ή άλλης τεχνολογίας. Είναι χρήσιμο να έχουμε μια κοινή γλώσσα επικοινωνίας και σχεδιασμού αντικειμενοστρεφών συστημάτων. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 14

ΟσκοπόςτηςUML Να ορίσει ένα κοινό λεξιλόγιο για τον αντικειμενοστρεφισμό και να προσφέρει διαγραμματικές τεχνικές ικανές να μοντελοποιήσουν οποιοδήποτε σύστημα από την ανάλυση έως και την υλοποίησή του. Είναι πολύ βολικό να έχουμε την ίδια γλώσσα από την αρχή έως το τέλος. Θυμηθείτε τα πλεονεκτήματα των εξελικτικών μεθοδολογιών ανάπτυξης λογισμικού. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 15 ΟσκοπόςτηςUML Να ορίσει ένα κοινό λεξιλόγιο για τον αντικειμενοστρεφισμό και να προσφέρει διαγραμματικές τεχνικές ικανές να μοντελοποιήσουν οποιοδήποτε σύστημα από την ανάλυση έως και την υλοποίησή του. Τα διαγράμματα βοηθούν πολύ την επικοινωνία. Logicians may reason about abstractions. But the great mass of men must have images. The strong tendency of the multitude in all ages and nations to idolatry can be explained on no other principle. - Thomas Macaulay U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 16

Γιατί διαγράμματα; create table Component ( -- Constraints Section create table Project ( -- C_P_ID_Par char(10) not null, ID_Pro char(10) not null, ID_Par char(10) not null, ProjId char(1) not null, alter table Component add constraint FKconsistsOf Quantity char(1) not null, Title char(1) not null, foreign key (ID_Par) constraint ID_Component primary ID_Emp key char(10), references Part; (C_P_ID_Par, ID_Par)); constraint ID primary key (ID_Pro)); alter table Component add constraint FKCom_Par create table Proj_Work ( foreign key (C_P_ID_Par) create table Deparment ( ID_Emp char(10) not null, references Part; ID_Dep char(10) not null, ID_Pro char(10) not null, alter table Dependent add constraint FKEmp_Dep DepId char(1) not null, timepercentage char(1) not null, foreign key (Supporter) DepName char(1) not null, constraint ID_Proj_Work primary key references Employee; (ID_Pro, ID_Emp)); Address char(1) not null, create table Supplier ( constraint ID primary key (ID_Dep)); ID_Sup char(10) not null, create table Dependent ( FirstName char(1) not null, LastName char(1) not null, YearOfBirth char(1) not null, Supporter char(10) not null); create table Employee ( ID_Emp char(10) not null, EmpId char(1) not null, FirstName char(1) not null, LastName char(1) not null, MiddleName char(1) not null, YearOfBirth char(1) not null, Salary char(1) not null, ID_Dep char(10), constraint ID primary key (ID_Emp)); create table Part ( ID_Par char(10) not null, PartNo char(1) not null, PartDescription char(1) not null, QuantityOnHand char(1) not null, constraint ID primary key (ID_Par)); SupId char(1) not null, Name char(1) not null, Status char(1) not null, Address char(1) not null, constraint ID primary key (ID_Sup)); create table Supp_Part ( ID_Par char(10) not null, ID_Sup char(10) not null, constraint ID_Supp_Part primary key (ID_Par, ID_Sup)); create table Supp_Part_Proj ( ID_Par char(10) not null, ID_Pro char(10) not null, ID_Sup char(10) not null, Quantity char(1) not null, constraint ID_Supp_Part_Proj primary key (ID_Par, ID_Sup, ID_Pro)); alter table Employee add constraint FKDept_Emp foreign key (ID_Dep) references Deparment; alter table Project add constraint FKProj_Manager foreign key (ID_Emp) references Employee; alter table Proj_Work add constraint FKPro_Pro foreign key (ID_Pro) references Project; alter table Proj_Work add constraint FKPro_Emp foreign key (ID_Emp) references Employee; alter table Supp_Part add constraint FKSup_Sup_1 foreign key (ID_Sup) references Supplier; alter table Supp_Part add constraint FKSup_Par_1 foreign key (ID_Par) references Part; alter table Supp_Part_Proj add constraint FKSup_Sup foreign key (ID_Sup) references Supplier; alter table Supp_Part_Proj add constraint FKSup_Pro foreign key (ID_Pro) references Project; alter table Supp_Part_Proj add constraint FKSup_Par foreign key (ID_Par) references Part; Το ίδιο σχήμα εκφρασμένο σε SQL και στη μορφή διαγράμματος ER Μια εικόνα αξίζει όσο χίλες λέξεις U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 17 Γιατί διαγράμματα; create table Component ( -- Constraints Section C_P_ID_Par char(10) not null, create table Project ( -- ID_Pro char(10) not null, ID_Par char(10) not null, ProjId char(1) not null, alter table Component add constraint FKconsistsOf Quantity char(1) not null, Title char(1) not null, foreign key (ID_Par) constraint ID_Component primary key (C_P_ID_Par, ID_Emp char(10), references Part; ID_Par)); constraint ID primary key (ID_Pro)); alter table Component add constraint FKCom_Par create table Deparment ( ID_Dep char(10) not null, create table Proj_Work ( ID_Emp char(10) not null, foreign key (C_P_ID_Par) references Part; DepId char(1) not null, ID_Pro char(10) not null, alter table Dependent add constraint FKEmp_Dep timepercentage char(1) not null, foreign key (Supporter) DepName char(1) not null, constraint ID_Proj_Work primary key (ID_Pro, references ID_Emp)); Employee; Address char(1) not null, create table Supplier ( alter table Employee add constraint FKDept_Emp constraint ID primary key (ID_Dep)); ID_Sup char(10) not null, foreign key (ID_Dep) create table Dependent ( FirstName char(1) not null, LastName char(1) not null, YearOfBirth char(1) not null, SupId char(1) not null, Name char(1) not null, Status char(1) not null, Address char(1) not null, references Deparment; alter table Project add constraint FKProj_Manager foreign key (ID_Emp) references Employee; Supporter char(10) not null); constraint ID primary key (ID_Sup)); alter table Proj_Work add constraint FKPro_Pro create table Supp_Part ( foreign key (ID_Pro) create table Employee ( ID_Par char(10) not null, references Project; ID_Emp char(10) not null, ID_Sup char(10) not null, alter table Proj_Work add constraint FKPro_Emp EmpId char(1) not null, constraint ID_Supp_Part primary key (ID_Par, foreign ID_Sup)); key (ID_Emp) FirstName char(1) not null, create table Supp_Part_Proj ( references Employee; LastName char(1) not null, ID_Par char(10) not null, alter table Supp_Part add constraint FKSup_Sup_1 ID_Pro char(10) not null, foreign key (ID_Sup) MiddleName char(1) not null, ID_Sup char(10) not null, references Supplier; YearOfBirth char(1) not null, Quantity char(1) not null, alter table Supp_Part add constraint FKSup_Par_1 Salary char(1) not null, constraint ID_Supp_Part_Proj primary key (ID_Par, foreign key (ID_Par) ID_Dep char(10), constraint ID primary key (ID_Emp)); create table Part ( ID_Par char(10) not null, ID_Sup, ID_Pro)); references Part; alter table Supp_Part_Proj add constraint FKSup_Sup foreign key (ID_Sup) references Supplier; PartNo char(1) not null, alter table Supp_Part_Proj add constraint FKSup_Pro PartDescription char(1) not null, foreign key (ID_Pro) references Project; QuantityOnHand char(1) not null, alter table Supp_Part_Proj add constraint FKSup_Par constraint ID primary key (ID_Par)); foreign key (ID_Par) references Part; ποιο μπορεί να κατανοηθεί γρηγορότερα; σε ποιο μπορούν να γίνουν αλλαγές πιο γρήγορα; με ποιο θα μπορούσαν (>2) άνθρωποι να συμφωνήσουν πιο γρήγορα και πιο εύκολα; ποιο μπορεί να κατανοηθεί πιο εύκολα από κάποιον που δεν ξέρει πολλά από πληροφορική; ποιο έχει μεγαλύτερη πιθανότητα να είναι κατανοήσιμο και μετά από 10 χρόνια; U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 18

Γιατί όχι φυσική γλώσσα; Οι περιγραφές σε φυσική γλώσσα συχνά υποφέρουν από ασάφεια. Η περιγραφή σύνθετων εννοιών δεν είναι ούτε εύκολη ούτε ευέλικτη. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 19 Γιατί όχι τυπικές μεθόδους (formal methods); Ακόμα και αν αποδείξουμε ότι ένα πρόγραμμα ικανοποιεί μια μαθηματική προδιαγραφή, δεν μπορούμε να αποδείξουμε ότι η μαθηματική προδιαγραφή αντικατοπτρίζει τις πραγματικές απαιτήσεις του συστήματος. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 20

How the Analyst designed it Το Τονα ναπεριγράψουμε με μετυπικό τρόπο τις τις προδιαγραφές και να νααποδείξουμε ότι ότιο κώδικας που παράχθηκε τις τιςικανοποιεί, δεν συνεπάγεται ότι ότιτο τοπαραχθέν σύστημα είναι ικανοποιητικό How the Programmer wrote it What the customer really needed U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 21 Γιατί όχι τυπικές μεθόδους (formal methods); Άλλα προβλήματα των τυπικών μεθόδων: Συχνά η ουσία «χάνετε» εν μέσω δευτερεύουσας σημασίας (για το πρόβλημα που μελετάμε) λεπτομέρειες. Οι περιγραφές που προκύπτουν κατανοούνται δύσκολα και η διαχείριση τους είναι εξίσου δύσκολη. Η σύνταξη τους είναι συχνά δυσκολότερη απ ότι ο προγραμματισμός στις γλώσσες προγραμματισμού. Και δεν είναι ουτε καν εκτελέσιμες U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 22

Προδιαγραφές: Η ΓενικήΕικόνα ακρίβεια Τυπικές Μέθοδοι Κώδικας Διαγραμματικές τεχνικές ασάφεια Φυσική Γλώσσα UML Αδυναμία εκτέλεσης Δυνατότητα εκτέλεσης U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 23 Η Γενική Εικόνα ακρίβεια ασάφεια Τυπικές Μέθοδοι Φυσική Γλώσσα Κώδικας και OCL CASE tools UML Αδυναμία εκτέλεσης Δυνατότητα εκτέλεσης U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 24

Γιατί να κάνουμε Ανάλυση και Σχεδίαση με τη UML; Η ανάπτυξη λογισμικού έχει ως στόχο την παραγωγή εκτελέσιμου κώδικα Κάποιος θα μπορούσε να πει: «τα διαγράμματα είναι.. απλώς διαγράμματα, τίποτα παραπάνω από όμορφες εικόνες» Άρα πρέπει να αναρωτηθούμε Γιατί να χρησιμοποιήσουμε UML; Πως θα μας βοηθήσει όταν θα πρέπει να γράψουμε κώδικα; Οι 3 κυριότεροι λόγοι [A] Επικοινωνία [B] Εκμάθηση Αντικειμενοστρεφισμού [C] Επικοινωνία με τους ειδικούς του πεδίου εφαρμογής U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 25 Γιατί να κάνουμε Ανάλυση και Σχεδίαση με τη UML; [A] Επικοινωνία Θεμελιώδης λόγος για χρήση της UML Η καλή επικοινωνία μεταξύ των εμπλεκομένων σε ένα έργο αποτελεί καθοριστικό παράγοντα για την έκβαση του. Η UML υπερτερεί στο θέμα αυτό από άλλες εναλλακτικές Φυσική Γλώσσα (ασάφειες), Κώδικας (υπερβολικά λεπτομερής, δεν προσφέρει εποπτική εικόνα), Τυπικές Μέθοδοι (δυσχρηστες) Υπό αυτήν την έννοια μπορούμε να πούμε ότι χρησιμοποιούμε UML όταν ναι μεν θέλουμε να είμαστε ακριβείς αλλά δεν θέλουμε να χαθούμε στις λεπτομέρειες. Αυτό δεν σημαίνει αποφυγή των λεπτομερειών. Απλά μπορούμε να τονίσουμε τις σημαντικές λεπτομέρειες. Επίσης επιτρέπει την επαναληπτική/αυξητική διαδικασία (η ίδια γλώσσα μπορεί να χρησιμοποιηθεί τόσο στο αρχικό και αφηρημένο επίπεδο όσο και στο λεπτομερέστατο επίπεδο του κώδικα. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 26

Γιατί να κάνουμε Ανάλυση και Σχεδίαση με τη UML? [A] Επικοινωνία: Παραδείγματα Παραδείγματα Εργάζεστε ως σύμβουλος πληροφορικής και θέλετε σε πολύ μικρό χρονικό διάστημα να κατανοήσετε ένα μεγάλο έργο Η UML σας δίνει την συνολική εικόνα του συστήματος Τα διαγράμματα κλάσεων σας λένε τι είδους αφαιρέσεις (abstractions) έχουν γίνει και μπορείτε γρήγορα να εντοπίσετε τα τμήματα που έχουν προβλήματα ή απαιτούν επιπλέον εργασία/βελτίωση. Αν θέλετε μια βαθύτερη εικόνα για το πώς οι κλάσεις συνεργάζονται, τότε μπορείτε να δείτε τα σχετικά διαγράμματα αλληλεπiδρασης (interaction diagrams) Εργάζεστε σε έναν οργανισμό ως αναλυτής/σχεδιαστής συστημάτων. Μπορείτε να εκφράσετε την ανάλυση και τη σχεδίαση σε UML και μια άλλη εταιρία να αναλάβει την υλοποίηση του συστήματος. Εργάζεστε σε ένα έργο το οποίο πρέπει να βασιστεί σε υπάρχοντα εξαρτήματα (components). Με τη UML μπορείτε να τα κατανοήσετε γρήγορα και εν συνεχεία να εκφράσετε την ανάλυση και τη σχεδίαση του συστήματος λαμβάνοντας υπόψη τη λειτουργικότητα που αυτά παρέχουν. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 27 Γιατί να κάνουμε Ανάλυση και Σχεδίαση με τη UML? [A] Επικοινωνία: Παραδείγματα Για τους ίδιους λόγους η UML είναι χρήσιμη και στα πλαίσια μιας ομάδας ανάπτυξης λογισμικού: Τα μέλη της ομάδας έχουν μια κοινή εικόνα (σημείο αναφοράς) Τα νέα μέλη της ομάδας μπαίνουν γρήγορα στο παιχνίδι Μειώνεται το ρίσκο από τις πιθανές αποχωρήσεις μελών από την ομάδα U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 28

Γιατί να κάνουμε Ανάλυση και Σχεδίαση με τη UML? [B] Εκμάθηση αντικειμενοστρεφισμού (Learning OO) Η εκμάθηση και καλή χρήση του απαιτεί χρόνο Διαγράμματα Αλληλεπίδρασης (Interaction diagrams) Κάνουν εμφανή τον τρόπο ανταλλαγής μηνυμάτων και άρα είναι χρήσιμα για τον εντοπισμό των υπερβολικά κεντρικοποιημένων σχεδίων Πρότυπα (Patterns): Αποτελούν καλά παραδείγματα σχεδιασμού και προγραμματισμού. Η έκφραση τους σε UML βοηθάει πολύ την κατανόηση και την εκμάθησή τους CRC cards αποτελούν χρήσιμη τεχνική για την εκμάθηση του αντικειμενοστρεφικού (δεν είναι τυπικά τμήμα της UML) Διαγράμματα Κλάσεων Παρόμοια με τα μοντέλα δεδομένων Κίνδυνος: ανάπτυξη ενός μοντέλου κλάσεων που είναι δεδομενο-κεντρικό (data orinted) αντί για υπευθυνο-κεντρικό (responsibility oriented) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 29 Γιατί να κάνουμε Ανάλυση και Σχεδίαση με τη UML? [Γ] Επικοινωνία με τους ειδικούς του πεδίου εφαρμογής Περιπτώσεις Χρήσης (Use Cases): Περίπτωση Χρήσης: Ένα στιγμιότυπο μιας πλευράς της λειτουργικότητας του συστήματος Το σύνολο όλων των Περιπτώσεων Χρήσης μας δίνει την εξωτερική εικόνα του συστήματος Είναι ένα πολύ καλό εργαλείο για την κατανόηση του τι θέλουν οι χρήστες Διαγράμματα Κλάσεων (Class diagrams) Βοηθούν τον εντοπισμό των κυρίαρχων εννοιών. Άρα βοηθούν πολύ την κατανόηση του πεδίου εφαρμογής (πολύ βασικό στην αρχή ενός έργου) Διαγράμματα Δραστηριοτήτων (Activity diagrams) Χρήσιμα αν οι ροές εργασιών (workflow processes) είναι σημαντικό κομμάτι του κόσμου των χρηστών Το ότι επιτρέπουν παραλληλία μας βοηθά να αποφύγουμε την καταγραφή περιττών ακολουθιών U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 30

Πόσοι τύποι διαγραμμάτων υπάρχουν; Υψηλού επιπέδου επιχειρηματικές ανάγκες καταγεγραμμένες στην Πρόταση Συστήματος Καθορισμός Απαιτήσεων Αναλυτική Καταγραφή Συγκεκριμένων απαιτήσεων Επόμενο βήμα Μοντελοποίηση του Συστήματος Λειτουργική /Δομική/Συμπεριφοράς (Functional/Structural/Behavioral) Η UML 2.0 ορίζει 14 διαγραμματικές τεχνικές για τη μοντελοποίηση ενός συστήματος U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 31 Πόσοι τύποι διαγραμμάτων υπάρχουν; Η UML 2.0 ορίζει 14 διαγραμματικές τεχνικές για τη μοντελοποίηση ενός συστήματος. Λειτουργική Περιπτώσεων Χρήσης (Use Case), Δραστηριοτήτων (Activity), Δομή Κλάσεων (Class), Αντικειμένων (Object), Πακέτων (Package), Παράταξης (Deployment), Εξαρτημάτων (Component), Σύνθετης Δομής (Composite Structure) Συμπεριφορά Sequence (Αλληλουχίας), Επικοινωνίας (Communication), Χρονισμού (Timing), Καταστάσεων (State), Interaction Overview, Protocol State Machine U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 32

Μια άλλη κατηγοριοποίηση των διαγραμματικών τεχνικών της UML U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 33 Πότε (σε ποιες φάσεις) χρησιμοποιούμε ένα διάγραμμα; (when we use what diagram?) Διαφορετικές φάσεις του έργου συνήθως συνοδεύονται από διαφορετικού τύπου διαγράμματα Μερικοί τύποι διαγραμμάτων μπορούν να χρησιμοποιηθούν σε παραπάνω από μια φάση. Για παράδειγμα μπορεί να έχουμε ένα διάγραμμα που αρχικά είναι πολύ αφηρημένο (και φτιαγμένο από την εννοιολογική σκοπιά) που στη συνέχεια του προσθέσουμε λεπτομέρειες και εν τέλει από αυτό καταλήγουμε στην παραγωγή κώδικα. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 34

Πόσο αυστηρά πρέπει να ακολουθούμε τους κανόνες της γλώσσας μοντελοποίησης; Εξαρτάται από το σκοπό: Αν θέλουμε από τα διαγράμματα να παράγουμε κώδικα αυτομάτως (μέσω ενός εργαλείου CASE), τότε πρέπει να είμαστε ακριβείς και να λάβουμε υπόψη τον τρόπο με τον οποίο το εργαλείο ερμηνεύει τα διαγράμματα της UML και παράγει κώδικα. Αν θέλουμε να χρησιμοποιήσουμε τα διαγράμματα μόνο για να επικοινωνήσουμε με άλλους, μπορούμε να είμαστε αρκετά χαλαροί και να παρεκκλίνουμε. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 35 Hello World! σε UML

Hello World! σε UML Use Case and Use Case Diagram Use Case Use Case Diagram Print HelloWorld 1. O χρήστης ξεκινά έναν πλοηγητή του ιστού 2. Πληκτρίζει τη διεύθυνση www.csd.uoc.gr/helloworld 3. Ο πλοηγητής εμφανίζει στην οθόνη τη φράση HelloWorld! U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 37 Hello World! σε UML Class Diagram Appplet Graphics import java.applet.applet; import java.awt.graphics; HelloWorld paint() public class HelloWorld extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); } } Γενίκευση/Εξειδίκευση Εξάρτηση (διότι δέχεται ως παράμετρο ένα αντικείμενο τύπου Graphics) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 38

Hello World! σε UML Class Diagram Μελετώντας την βιβλιοθήκη της Java, μπορούμε να απεικονίσουμε ολόκληρη την ιεραρχία γενίκευσης της κλάσης Applet Im ageobserver Object Component Container Panel Appplet HelloWorld paint() U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 39 Hello World! σε UML Package Diagrams Μπορούμε να απεικονίσουμε τον τρόπο με τον οποίο οι κλάσεις της Java έχουν πακεταριστεί με ένα διάγραμμα συσκευασίας. Το διάγραμμα αυτό απεικονίζει και τις εξαρτήσεις. java Hello World applet awt import java.applet.applet; import java.awt.graphics; lang public class HelloWorld extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); } } U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 40

Hello World! σε UML Πως συνεργάζονται οι κλάσεις; Πως η λειτουργία (operation) paint καλείται; Μελετώντας το διάγραμμα κλάσεων της βιβλιοθήκης μπορούμε να δούμε ότι η paint κληρονομείται από από την κλάση component Im ageobserver Object Component Container paint() Panel import java.applet.applet; import java.awt.graphics; Appplet public class HelloWorld extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); } } HelloWorld paint() U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 41 Hello World! σε UML Interaction Diagram Μελετώντας τον τρόπο με τον οποίο οι κλάσεις της Java συνεργάζονται, μπορούμε να δούμε ότι η λειτουργία paint καλείται ως εξής: Καλείται από το thread που εγκλείει το applet : root:thread :Toolkit ComponentPeer target: HelloWorld run run callbackloop handleexpose paint U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 42

Hello World! σε UML: Ηφυσικήάποψη HelloWorld Λογική όψη της κλάσης "manifests" "manifests" manifests: physically implements Τεχνουργήματα (Artifacts), π.χ. αρχεία HelloWorld.class HelloWorld.java Hellopage.html Εξάρτηση (διότι αν αλλάξει το.java πρέπει να ξανακάνουμε compile) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 43 Hello World! σε UML: Ηφυσικήάποψηωςcomponent diagram <<source>> HelloWorld.java HelloWorld.java import java.applet.applet; import java.awt.graphics; <<bytecode>> HelloWorld.class <<webpage>> Hellopage.html εξάρτηση εξάρτηση public class HelloWorld extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); } } Hellopage.html <html> <body> <APPLET CODE="HelloWorld.class"> </APPLET> </body> </html> U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 44

Hello World! σε UML Deployment Diagram Web Server Client Web server {OS=Unix} {mainmemory=2gb} {web server=apache} Hellopage.html HelloWorld.class Internet/http Client {OS=Windows} firefox.exe or Iexplore.exe printer U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 45 Επισκόπηση των διαγραμματικών τεχνικών της UML

Λίστα των κυριότερων διαγραμματικών τεχνικών της UML και των χρήσεων τους Use Case Diagram (διάγραμμα περιπτώσεων χρήσης) Activity Diagram (διάγραμμα δραστηριοτήτων) Class Diagram (διάγραμμα κλάσεων) Interaction Diagram (διάγραμμα αλληλεπίδρασης) Sequence Diagrams (διαγράμματα αλληλουχίας) Communication Diagrams (διαγράμματα επικοινωνίας) State Diagram (διάγραμμα καταστάσεων) Component Diagram (διάγραμμα εξαρτημάτων) Package Diagram (διάγραμμα πακέτων/συσκευασίας) Deployment Diagram (διαγράμματα παράταξης) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 47 Περιπτώσεις Χρήσης (Use Cases) Περίπτωση Χρήσης (Use Case) = ένα σύνολο σεναρίων για την επίτευξη ενός σκοπού του χρήστη Σενάριο = μια ακολουθία βημάτων που περιγράφουν την αλληλεπίδραση μεταξύ χρήστη και συστήματος Αγορά Προϊόντος 1. Ο Πελάτης πλοηγείται στον κατάλογο και επιλέγει τα προϊόντα που επιθυμεί να αγοράσει 2. Ο Πελάτης επιλέγει τη λειτουργία «Παραγγελία» 3. Ο Πελάτης συμπληρώνει τα στοιχεία αποστολής (δνση, παράδοση σε 24 ώρες, παράδοση σε 3 ημέρες) 4. Το Σύστημα του παρουσιάζει αναλυτικά την τιμή της παραγγελίας (περιλαμβανομένων των εξόδων αποστολής) 5. Ο Πελάτης συμπληρώνει τα στοιχεία της πιστωτικής του κάρτας 6. Το Σύστημα ελέγχει τα στοιχεία της κάρτας (εξουσιοδότηση, πιστωτικό όριο,..) 7. Το Σύστημα επιβεβαιώνει την πώληση αμέσως 8. Το Σύστημα στέλνει ένα η-μήνυμα επιβεβαίωσης στον Πελάτη Εναλλακτική: Authorization Failure Στο βήμα 6, το Σύστημα αποτυγχάνει να εγκρίνει την αγορά μέσω πιστωτικής. Ο Πελάτης μπορεί να ξαναδώσει τα στοιχεία της πιστωτικής του κάρτας και να ξαναπροσπαθήσει U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 48

UML Techniques Use Case Diagrams (διαγρ. περιπτώσεων χρήσης) Used for: Analysis Concerns: Behavior Παρουσιάζει τους τύπους χρηστών (actors), τις περιπτώσεις χρήσης και τιςμεταξύτουςσυσχετίσεις. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 49 Appointment System Make appointment Patient Management Produce schedule information Doctor Record Availability U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 50

UML Techniques Activity Diagrams (διαγρ. δραστηριοτήτων) Used for: Analysis/Design Concerns: Behavior Περιγράφουν τη ροή των εργασιών. Μπορούν να χρησιμοποιηθούν για να περιγράψουν τη ροή εργασιών: σε έναν οργανισμό σε μια περίπτωση χρήσης Fill Order Receive Order Send Invoice σε μια μέθοδο μιας κλάσης [ rush order ] [ else ] Overnight Deli very Regular Delivery Receive Payment Ο τρόπος διεκπεραίωσης των παραγγελιών ενός οργανισμού Cl ose Order End U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 51 UML Techniques Class Diagrams (διαγράμματα κλάσεων) Used for: Analysis/Design Concerns: Structure Παρουσιάζουν τη στατική δομή εννοιών, τύπων και κλάσεων. Οι έννοιες δείχνουν πως οι χρήστες βλέπουν τον κόσμο, οι τύποι τιςδιεπαφέςτωνεξαρτημάτων λογισμικού, οι κλάσεις των τρόπο υλοποίησης των εξαρτημάτων. Customer customername : String customeraddress : String phonenumber : String emailaddress : String 1..1 Invoice invoicenumber : String invoicedate : Date invoicetotal : float ConfigurationItem itemtype : String itemdescr : String 1..n 0..n 0..1 Order ordernumber : String orderdate : Date shipaddress : String ordertotal : float orderstatus : String salespersonname : String 1..1 0..n 1..n Computer computername : String 1..1 1..1 Payment paymentmethod : String datereceived : Date amountreceived : float ConfiguredComputer configuredprice : float StandardComputer standardprice : float U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 52

UML Techniques Object Diagrams (διαγράμματα aντικειμένων) Παρουσιάζουν τη δομή των αντικειμένων στο σύστημα Used for: Analysis/Design Concerns: Structure Class diagram Object diagram Party location * children engineering:organization Location= Athens parent Person Organization 1 parent tools:organization Location= Heraklio Yannis:Person Location= Heraklion parent apps:organization Location= Rethimno Nikos:Person Location= Moires U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 53 UML Techniques Ιnteraction Diagrams (διαγρ. αλληλεπίδρασης) Used for: Analysis/Design Concerns: Behavior Παρουσιάζουν τον τρόπο με τον οποίο πολλά αντικείμενα συνεργάζονται σε μια Περίπτωση Χρήσης (A) Sequence Diagrams (διαγράμματα αλληλουχίας) : Order : Order Line a : Product : Customer calculateprice getquantity getproduct getpricingdetails Υπολογισμός Τιμής calculatebaseprice calculatedis counts getdiscountinfo U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 54

UML Techniques Ιnteraction Diagrams (διαγρ. αλληλεπίδρασης) Αποστολή παραγγελίας dispatch :Order careful: Distributor regular: Distributor : Messenger loop alt [for each line item] [value>10k] dispatch [else] dispatch opt [needsconfirm] confirm U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 55 UML Techniques Ιnteraction Diagrams (διαγρ. αλληλεπίδρασης) Sequence Diagram Communication Diagram : Department : Course : Student 1: Find( ) : Department Addition of a new student : Lecturer Find( ) Find( ) Add( ) : Lecturer 2: Find( ) : Course 3: Add( ) : Student U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 56

UML Techniques State Diagrams (διάγρ. καταστάσεων) Used for: Analysis/Design Concerns: Behavior Παρουσιάζει τις καταστάσεις που μπορεί να έχει ένα αντικείμενο (σε όλη τη διάρκεια ζωής του) και πως αυτές αλλάζουν ανάλογα με τα γεγονότα (events) που φθάνουν στο αντικείμενο άρα δεν περιοριζόμαστε σε μια Use Case Unpaid partial payment Partly Paid Οι καταστάσεις μιας Παραγγελίας: final payment final payment Fully Paid U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 57 UML Techniques State Diagrams (διάγρ. καταστάσεων) Rejected Unpaid partial payment Partly Paid final payment final payment Fully Paid Delivered Checking Dispatching Cancelled Waiting U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 58

UML Techniques Package Diagrams (διαγρ. συσκευασίας) Used for: Analysis/Design/Implenent Concerns: Structure Είναι ένας μηχανισμός ομαδοποίησης. Παρουσιάζει τις ομάδες κλάσεων και τις εξαρτήσεις μεταξύ τους. (μπορεί επίσης να ομαδοποιήσει και διαγράμματα της UML) applet java awt lang U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 59 UML Techniques Package Diagrams Cinterface <<subsystem>> presentation <<subsystem>> presentation configuration view order view Cinterface <<subsystem>> control configuration provider <<subsystem>> control order monitor Minterface Minterface <<subsystem>> mediator data mapper lazy load unit of work <<subsystem>> mediator Einterface Einterface identity map <<subsystem>> entity Finterface orders <<subsystem>> entity Finterface customers computers <<subsystem>> foundation crud <<subsystem>> foundation schema connection U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 60

UML Techniques Component Diagrams (διαγρ. εξαρτημάτων) Used for: Phys./Design/Implenent Concerns: Structure Εξάρτημα: ένα λογικό και αντικαταστάσιμο τμήμα του συστήματος το οποίο συμμορφώνεται με και πραγματώνει ένα σύνολο από διεπαφές (interfaces) Component: a logical and replaceable part of a system that conforms to and provides the realization of a set of interfaces. ProductList ProductDisplay Configuration Purchase OrderTracking U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 61 UML Techniques Component Diagrams (διαγρ. εξαρτημάτων) port name Interface name Booking attractions normal sales Ticket Sales Load Attractions Ticket Seller Credit Cards Ticket Sales charging priority sales U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 62

UML Techniques Deployment Diagrams (διαγρ. παράταξης) Used for: Phys./Design/Implenent Concerns: Structure Παρουσιάζει την φυσική τοποθέτηση των εξαρτημάτων στους κόμβους υλικού. Client Browser HTTP Web Server JDBC, SQLJ Database Server U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 63 UML Techniques Deployment Diagrams (διαγρ. παράταξης) Browser Client browser Rich Client {OS=Windows} Lala.exe http/internet http/lan Application Server Web server {OS=Solaris} {web server=apache} {number deployed =3} Lala.war Java RMI/LAN Appl JDBC Oracle DBMS U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 64

Βιβλία και Πηγές για την UML Η σχετική σελίδα της OMG: UML Resource Page: http://www.uml.org/ The UML 2.0 Specification: http://www.uml.org/#uml2.0 Βιβλία UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition) by Martin Fowler, Addison Wesley, 2004. The Unified Modeling Language User Guide (3rd edition) by G. Booch, J. Rumbaugh, I. Jacobson, Addison Wesley, 2005 U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 65 Βιβλία και Πηγές για την UML Υπάρχουν πολλές εκπαιδευτικές παρουσιάσεις (tutorials) στο διαδίκτυο: http://pigseye.kennesaw.edu/~dbraun/csis4650/a&d/uml_tutorial/index.ht m http://www.sparxsystems.com.au/uml_tutorial.htm http://bdn.borland.com/article/0,1410,31863,00.html http://odl-skopje.etf.ukim.edu.mk/uml-help/. Google: UML Tutorial U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 66