Περιγραφή Παραδείγματος. Σκοπός του Παραδείγματος. Περίπτωση Χρήσης και Σενάρια. Σύντομο Παράδειγμα μιας συνοπτικής μεθοδολογίας ανάπτυξης



Σχετικά έγγραφα
Διάγραμμα Κλάσεων. Class Diagram

Ενδιαφερόμενοι - Stakeholders. Πελάτης Ταμίας υπάλληλος Διαχειριστής Σύστημα εξουσιοδότησης πληρωμής

Σύντομο Παράδειγμα μιας συνοπτικής μεθοδολογίας ανάπτυξης

Μπαίνοντας στο VideoClub ο πελάτης, κατευθύνεται στα ράφια όπου είναι τοποθετημένα τα DVD ή τα παιχνίδια και μετά από αναζήτηση επιλέγει ένα ή

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

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

Ηλεκτρονικό Κατάστημα

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

ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ. Άσκηση 1 Εφαρµογή Web

ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE

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

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

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

ΠΕΡΙΠΤΩΣΕΙΣ ΧΡΗΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΞΙΔΙΩΤΙΚΟΥ ΠΡΑΚΤΟΡΕΙΟΥ

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

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

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

ΛΥΚΕΙΟ ΠΑΛΟΥΡΙΩΤΙΣΣΑΣ ΣΧΟΛΙΚΟ ΕΤΟΣ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΙΟΥ-ΙΟΥΝΙΟΥ 2014 ΟΝΟΜΑ:... ΤΜΗΜΑ:... ΑΡ.:...

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας

Η κατασκευή αντικειμένων της κλάσης Student μπορεί να πραγματοποιηθεί είτε στη main είτε σε οποιαδήποτε μέθοδο κλάσης:

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

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

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

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

Δομές ελέγχου ροής προγράμματος

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

Βήμα 1 ο Επιλογή Προϊόντων

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

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

ΧΡΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ (αρ. έκδοσης ) ΓΙΑ ΤΗΝ ΕΞΟΦΛΗΣΗ ΛΟΓΑΡΙΑΣΜΩΝ ΔΕΗ - ΟΤΕ ΕΥΑΘ WIND (εφαρμόζεται αντίστοιχα στις ΔΕΥΑ)

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

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

Ηλεκτρονική Υπηρεσία Ολοκληρωμένης Διαχείρισης Συγγραμμάτων και Λοιπών Βοηθημάτων Οδηγίες Χρήσης Εφαρμογής Σημείου Διανομής

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΛΥΣΕΙΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015

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

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

Η γλώσσα μοντελοποίησης UML. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

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

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

ΠΑ-24γ Εγχειρίδιο Χρήσης Δ.Δ.Π. Του Δήμου Αιγάλεω

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Συνοπτικές οδηγίες διαχείρισης της εφαρμογής

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

Generics και ArrayLists

4 Συλλογές Αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Βασικές Έννοιες Δοµών Δεδοµένων

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

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

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

Πατώντας την επιλογή αυτή, ανοίγει ένα παράθυρο που έχει την ίδια μορφή με αυτό που εμφανίζεται όταν δημιουργούμε μία μεταβλητή.

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Εγχειρίδιο Χρήστη. Ιούνιος Σελίδα - 1 -

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΟΔΗΓΙΕΣ ΔΗΛΩΣΗΣ ΜΑΘΗΜΑΤΩΝ

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

Βασικά της γλώσσας JAVA

Διαχείριση Έργων Πληροφορικής Εργαστήριο

ΕΠΛ131 Αρχές Προγραμματισμού

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021

Λογισµικό (Software SW) Γλώσσες

Ενδεικτικές λύσεις ασκήσεων

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

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού

Οδηγός Λειτουργίας Τράπεζας Χρόνου Ηρακλείου

Είσοδος στην εφαρμογή Δημιουργία Εταιρίας Καρτέλα Στοιχεία εταιρίας: Καρτέλα Πρόσθετα στοιχεία: Καρτέλα Τράπεζα:...

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Constructors

Document Scanning System Ιανουάριος, 2014

Πίνακας Περιεχομένων. Εγχειρίδιο Χρήσης Υπηρεσίες Φοιτητή Σελίδα 1 / 10

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Διαχείριση Γρήγορης Καταχώρησης Πωλήσεων

POINTERS, AGGREGATION, COMPOSITION

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

Transcript:

Περιγραφή Παραδείγματος Σύντομο Παράδειγμα μιας συνοπτικής μεθοδολογίας ανάπτυξης Κράτηση δωματίου σε ξενοδοχείο Ουπάλληλοςδίνειταστοιχείατουπελάτητο δωμάτιο(μονό, διπλό κλπ) και την περίοδο. Τοσύστημαβρίσκειτοδωμάτιοκαικάνει κράτηση ή αποφαίνεται πως δεν υπάρχει κατάλληλο δωμάτιο για την περίοδο που προσδιορίστηκε 1 2 Σκοπός του Παραδείγματος Το παράδειγμα δεν αποσκοπεί στο να κάνουμε ένα πλήρες σύστημα κράτησης δωματίων σε ξενοδοχείο(π.χ. δεν θα ασχοληθούμε με την αποθήκευση των κρατήσεων σε Βάση Δεδομένων). Αποσκοπεί στο να καταλάβουμε: Πως μπορούμε να χρησιμοποιήσουμε τα διαγράμματα ακολουθίας για να διαπιστώσουμε ποιες είναι οι κατάλληλες κλάσεις και λειτουργίες για τον προγραμματισμό ενός σεναρίου μιας περίπτωσης χρήσης. Την ταυτόχρονη εξέλιξη ενός διαγράμματος κλάσεων προκειμένου να καλυφθούν οι απαιτήσεις μιας εφαρμογής Την ροή των μηνυμάτων μεταξύ αντικειμένων Περίπτωση Χρήσης και Σενάρια Υπάλληλος Κρατήσεις ωµατίων Επιτυχής Κράτηση ωµατίου Ανεπιτυχής Κράτηση ωµατίου Ακύρωση Κράτησης ωµατίου 3 4

Αρχικό Διάγραμμα Κλάσεων Διάγραμμα Ακολουθίας(1) Hotel 1..N Room 1 0..N 1 Client Το ξενοδοχείο έχει πολλά δωµάτια Κάθε δωµάτιο έχει 0 ή περισσότερες κρατήσεις Κάθε κράτηση αφορά έναν πελάτη και ένα δωµάτιο Window make (period, client, roomtype,) Window: Άλλη µία νέα κλάση. Χωρίς γραφική διασύνδεση ο χρήστης δεν µπορεί να χρησιµοποιήσει το σύστηµα. Αυτές οι κλάσεις ονοµάζονται «συνοριακές τάξεις» Period: Αυτό είναι µία υποψήφια νέα κλάση; -Έχει δύο ηµεροµηνίες (αρχής και τέλους). -Έχει την δυνατότητα να µας πει αν µία περίοδος επικαλύπτεται χρονικά από κάποια άλλη περίοδο. 5 6 Διάγραμμα Ακολουθίας(2) Διάγραμμα Ακολουθίας(3) Window Hotel Hotel room:room r:=roomsoftype(roomtype) make(period,client,roomtype) r:=roomsoftype(roomtype) Το ξενοδοχείο έχει δωµάτια διαφόρων τύπων (µονά, διπλά κλπ.). Η αναζήτηση θα γίνει µόνο στα δωµάτια µετύποίδιοµεαυτόνγιατονοποίο ενδιαφέρεται ο πελάτης * [forall room in r] free:=available(period) Για κάθε Room στο r έλεγξε αν είναι διαθέσιµο για την περίοδο για την οποία ενδιαφέρεται ο πελάτης. 7 8

Διάγραμμα Ακολουθίας(4) Διάγραμμα Ακολουθίας(5) room:room Period * free:=available(period) * ovr:=overlaps(period) Για κάθε µία από τις ήδη υπάρχουσες κρατήσεις για το δωµάτιο έλεγξε αν επικαλύπτει χρονικά την περίοδο για την οποία ενδιαφέρεται ο πελάτης * ovr:=overlaps(period) ovr:=overlaps(period) Αυτό το period είναι η περίοδος κράτησης αυτού του Η κράτηση ελέγχει αν επικαλύπτει χρονικά την περίοδο που ενδιαφέρει τον πελάτη, µε την σύγκριση µε την δική της περίοδο κράτησης. 9 10 Επιτυχής Αναζήτηση Διάγραμμα Ακολουθίας(6) Γιακάποιοαπόταδωμάτιαηavailable θα επιστρέψει true για την περίοδο που ενδιαφέρει τον πελάτη. Σ αυτή τη περίπτωση δημιουργείται μία νέα κράτηση για την περίοδο που ενδιαφέρει τον πελάτη και προστίθεται στις ήδη υπάρχουσες κρατήσεις γι αυτό το δωμάτιο. Hotel room: Room r:=roomsoftype(roomtype) * free:=available(period) [free] (period, client, room) add(newr) newr newr: 11 12

Διάγραμμα Ακολουθίας(7) Window make (period, client, roomtype,) Hotel make(period,client,roomtype) r:=roomsoftype(roomtype) newr * free:=available(period) newr Τέλος Κράτησης Τελικά το Window παίρνει την νέα κράτηση(newr) και εμφανίζει τις πληροφορίες της κράτησης στον υπάλληλο. Για παράδειγμα εμφανίζει ένα μήνυμα επιβεβαίωσης της κράτησης όπως το ακόλουθο: 13 14 Διάγραμμα Ακολουθίας Εμπλουτισμός του Διαγράμματος Κλάσεων Ξεκινήσαμε με ένα αρχικό διάγραμμα κλάσεων. Τώραθαπρέπειναπροσθέσουμεσεαυτό όλεςτιςνέεςκλάσειςπουανακαλύψαμε(π.χ. Period, Window) καθώς και τις μεθόδους που είναι απαραίτητες για την διεκπεραίωση της κράτησης(π.χ. την available στην τάξη Room, την overlaps στην τάξη Period κλπ.) 15 16

Διάγραμμα Κλάσεων Πρόγραμμα Java [ ] Σημείωση: Ηβηματικήεκτέλεσησεdebugger μας επιτρέπει να δούμε την ανταλλαγή των μηνυμάτων μεταξύ των αντικειμένων ακριβώς όπως αυτά απεικονίζονται στο διάγραμμα ακολουθίας. 17 18 Η κλάση Period import java.util.date; public class Period { private Date startdate; private Date enddate; public Period(Date startdate, Date enddate) { this.startdate = startdate; this.enddate = enddate; public Date getstartdate() { return startdate; public Date getenddate() { return enddate; public boolean overlaps(period p) { Date pstartd = p.getstartdate(); Date pendd = p.getenddate(); if ((pstartd.compareto(startdate)>=0 && pstartd.compareto(enddate)<=0) (pendd.compareto(startdate)>=0 && pendd.compareto(enddate)<=0)) { return true; return false; import java.util.vector; import java.util.enumeration; public abstract class Room { ΗκλάσηRoom (1) public final static int SINGLE_ROOM = 1; public final static int DOUBLE_ROOM = 2; private Vector reservations; private String name; public Room(String name) { reservations = new Vector(); this.name = name; public [] gets() { Object[] o = reservations.toarray(); [] r = new [o.length]; System.arraycopy(o, 0, r, 0, o.length); return r;... 19 20

ΗκλάσηRoom (2) public void add( r) { reservations.add(r); public boolean available(period p) { Enumeration e = reservations.elements(); while (e.hasmoreelements()) { r = () e.nextelement(); if (r.overlaps(p)) { return false; return true; public String getname() { return name; abstract public int getroomtype(); 21 Οι κλάσεις DoubleRoom και SingleRoom public class DoubleRoom extends Room { /** Creates a new instance of DoubleRoom */ public DoubleRoom(String name) { super(name); public int getroomtype() { return Room.DOUBLE_ROOM; public class SingleRoom extends Room{ /** Creates a new instance of SingleRoom */ public SingleRoom(String name) { super(name); public int getroomtype() { return Room.SINGLE_ROOM; 22 Η κλάση Client Η κλάση public class Client { private String name; private String telephone; /** Creates a new instance of Client */ public Client(String name, String telephone) { this.name = name; this.telephone = telephone; public String getname() { return name; public String gettelephone() { return telephone; 23 public class { private Period period; private Client client; private Room room; public (Period period, Client client, Room room) { this.period = period; this.client = client; this.room = room; public Client getclient() { return client; public Period getperiod() { return period; public Room getroom() { return room; public boolean overlaps(period p) { return period.overlaps(p); 24

Άλλες κλάσεις Υπάρχουν επίσης άλλες δύο κλάσεις: Η συνοριακή κλάση Window που είναι το παράθυρο μέσω του οποίου γίνεται μία κράτηση ΗβασικήκλάσηHotel πουαποτελείκαιτοσημείο εισόδου στο πρόγραμμα Παραδείγματα Διαγραμμάτων 25 26 Περιγραφή απαιτήσεων Ενοικίασης Μπαίνοντας στο κατάστημα ο πελάτης, κατευθύνεται στα ράφια όπου είναι τοποθετημένα τα DVD ή τα παιχνίδια και μετά από αναζήτηση επιλέγει ένα ή περισσότερα τα οποία προσκομίζει στο ταμείο για ενοικίαση. Εναλλακτικά, μπορεί να πραγματοποιήσει παρόμοια αναζήτηση ηλεκτρονικά, σε τέσσερα τερματικά που υπάρχουν διαθέσιμα σε μία πλευρά του καταστήματος, καταχωρώντας την επιλογή του σε μία κράτηση στον κωδικό του, την οποία στη συνέχεια ζητάει για ενοικίαση απότονταμία. Οταμίαςξεκινάειτηνενοικίαση, αφούζητήσειτονκωδικότουπελάτη, τον οποίο εισάγει στο σύστημα για επιβεβαίωση. Εισάγει ένα-ένα τα προϊόντα που έχει επιλέξει ο πελάτης, και το σύστημα εμφανίζει τον τίτλο, τηςαξία, καιτομέγιστοσεημέρεςενοικίασηςτουκαθενός, εμφανίζοντας προοδευτικά την συνολική αξία. Τελειώνοντας, την εισαγωγή της ενοικίασης, ενημερώνει τον πελάτη για την αξία και του ζητάει επιβεβαίωση. Ο πελάτης ανταποκρίνεται καταβάλλοντας το τίμημα της αξίας της ενοικίασης. Ο ταμίας του παραδίδει τα προϊόντα της ενοικίασης, τα ρέστα, καθώς και μία αναλυτική εκτυπωμένη κατάσταση της ενοικίασης. Έτσι, τελειώνει και καταχωρείται η ενοικίαση στο σύστημα, ενημερώνοντας ταυτόχρονα και το ταμείο καθώς και την αποθήκη του καταστήματος. Απαιτήσεις Συστήματος Ένα σύστημα λογισμικού για τη διαχείριση«video Club» περιλαμβάνει τους ακόλουθους χρήστες: Ταμίας. Πελάτης. Διαχειριστής. Σύστημαεξουσιοδότησηςπληρωμήςμεχρήσηπιστωτικήςκάρτας. Το σύστημα αυτό θα πρέπει να υποστηρίζει τις ακόλουθες λειτουργίες: Εισαγωγή στο σύστημα(log in). Ενοικίαση(ταινίες, παιχνίδια). Διαχείριση συνδρομών πελατών. Διαχείριση υλικού(ταινίες, παιχνίδια). Διαχείριση χρηστών. Πληρωμή. Πληρωμή με πιστωτική κάρτα. Πληρωμή με μετρητά. Πληρωμή επιβάρυνσης λόγω καθυστέρησης επιστροφής. 27 28

«Όταν ο ταμίας ολοκληρώσει την ενοικίαση, ο πελάτης ενημερώνεται για την αξία και του ζητείται επιβεβαίωση. Ο πελάτης επιβεβαιώνει την ενοικίαση. Προχωρώντας στην πληρωμή, ο πελάτης ερωτάται αν θα προβεί σε πληρωμή μετρητοίς ή πληρωμή επί πιστώσει. Αν ο πελάτης επιλέξει πληρωμή μετρητοίς, τότε ο ταμίας παίρνει το ποσό πουτουδίνειοπελάτηςκαιτοπληκτρολογείστηνταμιακήμηχανή. Ο πελάτης παραλαμβάνει μία αναλυτική εκτυπωμένη κατάσταση της ενοικίασης, μαζί με τα προϊόντα της ενοικίασης στον πελάτη τα οποία του παραδίδει ο ταμίας. Αν υπάρχουν ρέστα τότε ο ταμίας τα παραδίδει στον πελάτη. Αν ο πελάτης επιλέξει πληρωμή επί πιστώσει, τότε ο ταμίας παίρνει την πιστωτική κάρτα που του δίνει ο πελάτης και την επικυρώνει στο μηχάνημα πιστωτικών καρτών. Το μηχάνημα πιστωτικών καρτών πραγματοποιεί την κίνηση των χρημάτων και εκτυπώνει σχετική απόδειξη. Ο ταμίας παραδίδει την απόδειξη της πιστωτικής. Ο πελάτης την υπογράφει. Έπειτα, η μηχανή εκτυπώνει μία αναλυτική εκτυπωμένη κατάσταση της ενοικίασης την οποία παραδίδει ο ταμίας μαζί με τα προϊόντα της ενοικίασης στον πελάτη.» 29 30 Περίπτωση Χρήσης ΠΧ1: Ενοικίαση Κύριος χειριστής: Υπάλληλος Προϋποθέσεις: Έχει πιστοποιηθεί η ταυτότητα του υπαλλήλου Μετασυνθήκες: Ένα αντικείμενο ενοικίαση έχει καταχωρηθεί, όπως και της πληρωμής. Η Αποθήκη(αποθέματα) έχει(ουν) ενημερωθεί. Εμπλεκόμενοι και τα Ενδιαφέροντά τους: Υπάλληλος: Επιθυμεί ασφαλή και ταχεία εισαγωγή. Πελάτης: Επιθυμεί να ενοικιάσει ταινίες-παιχνίδια, με άμεση εξυπηρέτηση και ελάχιστη προσπάθεια. Λογιστής: Επιθυμεί ακριβή καταχώρηση των κινήσεων. Διαφήμιση: Επιθυμεί να καταγράψει τις συνήθειες των πελατών. Βασική ροή: Ο Πελάτης επιλέγει προϊόντα(ταινίες, παιχνίδια) για ενοικίαση και πηγαίνει στο ταμείο. Ο Υπάλληλος εισάγει τον Κωδικό του Πελάτη. Ο Υπάλληλος εισάγει τον κωδικό του προϊόντος. Το σύστημα καταχωρεί την γραμμή ενοικίασης προϊόντος και εμφανίζει την περιγραφή του προϊόντος. (Ο Υπάλληλος επαναλαμβάνει τα βήματα 3-4 μέχρι τέλους) Το σύστημα εμφανίζει την συνολική αξία. Ο Πελάτης πληρώνει. Το σύστημα διαχειρίζεται την πληρωμή. Καλείται(include) η ΠΧ«Πληρωμή». Εναλλακτικές ροές: 31 2.α Ο πελάτης δεν βρέθηκε Καλείται(include) η ΠΧ«Εισαγωγή Πελάτη» Διάγραμμα Δραστηριοτήτων (Ενοικίαση) 32

Εννοιολογικό μοντέλο Με βάση τα ανωτέρω κριτήρια, δίνοντας περισσότερο έμφαση στο κριτήριο της συμπεριφοράς, καταλήγουμε στις ακόλουθες έννοιες: Πελάτης, κάνει ενοικιάσεις Ενοικίαση, αποτελεί κεντρική έννοια της περιοχής προβλήματος Υπάλληλος, κάνει ενοικιάσεις, πληρωμές Προϊόν, αποτελεί κεντρική έννοια της περιοχής προβλήματος εμφανίζεται σε δύο κατηγορίες(παιχνίδι, ταινία) Πληρωμή, έννοια που συνοδεύει ενοικίαση Πληρωμή μετρητοίς, έννοια που συνοδεύει μία ενοικίαση Πληρωμή με πιστωτική κάρτα, έννοια που συνοδεύει μία ενοικίαση Αναζήτηση, έννοια που συνοδεύει την ενοικίαση. Εμφανίζεται με δύο μορφές(ηλεκτρονική και χειροκίνητη) 33 34 Αιτιολόγηση των σχέσεων μεταξύ των Εννοιών: Πελάτης, αναζητά προϊόντα Υπάλληλος, εκτελεί την ενοικίαση συσχετίζοντας τηνμεένανπελάτη Ενοικίαση, περιλαμβάνει τα επιλεγμένα από τον Πελάτη, Προϊόντα Ενοικίαση, διεκπεραιώνεται με μια Πληρωμή Πληρωμή, μπορεί να«είναι του είδους» (Ειδίκευση), Μετρητοίς ή Με πιστωτική κάρτα 35 36

Διαγράμματα ακολουθίας. Ένα διάγραμμα ακολουθίας είναι ένα διάγραμμα αλληλεπίδρασης (συμπεριφοράς) που παρουσιάζει τον τρόπο με τον οποίο διαφορετικά αντικείμενα συνεργάζονται μεταξύ τους σε μια χρονική ακολουθία. Κάθε τέτοιο διάγραμμαπεριλαμβάνει αντικείμενα, σχέσειςμεταξύαντικειμένων, μηνύματα, τη διάρκεια ζωής κάθε αντικειμένου και την περιοχή ελέγχου για κάθε αντικείμενο. Στα διαγράμματα ακολουθίας τα αντικείμενα παριστάνονται με κουτιά ή/και ρόλους τα οποία παρατάσσονται στο χώρο(συνήθως από αριστερά προς τα δεξιά). Τα αντικείμενα ανταλλάσσουν μηνύματα τα οποία παριστάνονται με κατευθυνόμενα βέλη των οποίων η φορά δείχνει την κατεύθυνση του μηνύματος(ποιο αντικείμενο κάνει την κλήση και σε ποιο αντικείμενο γίνεται η κλήση). Ο χρόνος παριστάνεται από πάνω προς τα κάτω στο διάγραμμα. Δηλαδή τα μηνύματα που βρίσκονται πιο πάνω στο διάγραμμα προηγούνται χρονικά αυτών που βρίσκονται πιο χαμηλά. Τα διαγράμματα ακολουθίας εμφανίζονται σε δύο μορφές, τα«διαγράμματα Ακολουθίας Συστήματος» και τα«διαγράμματα Ακολουθίας». Κάθε ένα από τα δύο διαγράμματα γίνεται για κάθε περίπτωση χρήσης. Τα Διαγράμματα Ακολουθίας Συστήματος παρουσιάζουν την αλληλεπίδραση Χρήστη Συστήματος Εξωτ. Συστήματα. Το σύστημα παρουσιάζεται ως«μαύρο κουτί». Δεν αναφερόμαστε σε αντικείμενα. Αντίθετα στα Διαγράμματα Ακολουθίας επιπλέον των αλληλεπιδράσεων του χρήστη με το σύστημα, παρουσιάζονται και οι εσωτερικές λειτουργίες του συστήματος, το τι ακριβώς κάνει το σύστημα ως απόκριση στις ενέργειες του χρήστη. 37 38 39 40

41 42 void Customer::startSearch(int t) { if (t==0) lnksearch=new E_Search(); else lnksearch=new Manual_Search(); amount=lnkrent.setproducts(lnksearch->productlist()); deposit=deposit+amount; void Cashier::endSale() { lnkcustomer.endsale(); void Cashier::startPayment(int typos) { lnkcustomer.setid(id); lnkcustomer.startpayment(typos); Άσκηση The endsale procedure records the information on the specific sale in a datbase system id:int Cashier +startsale:void +endsale:void +startpayment:void void Cashier::startSale(int typos) { lnkcustomer.setid(id); lnkcustomer.startsearch(typos); ΚάντεέναδιάγραμμαΠΧγιαένααυτόματο πωλητή. CreditCard makepayment:float Payment makepayment:float Cash 0..1 makepayment:float Customer deposit:float id:int +startsearch:void +endsale:void +startpayment:void 0..1 Search +productlist:product * * Rent pr:product * * +setproducts:float The setproducts function appart from recording the products that are rented returns the total cost of the new renting to the customer's bill. 0..10 Movie actor1:string actor2:string Product id:int price:float Game genre:string Ένα διάγραμμα ακολουθίας για την εύρεση του ονόματος φοιτητή με υψηλότερο μέσο όρο βαθμολογίας για μαθήμα του προγραμματισμού. ΚάντεέναδιάγραμμακλάσεωνγιαέναΑΤΜ E Search Manual Search +productlist:product * * +productlist:product * * 43 44

ρόλος αντικείµενο programming : Course : CourseRecord : Assignment bestrec : CourseRecord s : Student : Secretary επανάληψη και συνθήκη επανάληψης getbestname( ) *[για όλα τα course record] average( ) Κλήση Μεθόδου average * [για όλα τα assignments] getmark( ) mark s:=getstudent( ) επιστροφή µε διακεκοµµένο βέλος name:=getname( ) Πλαίσιο επιστροφή µε τιµή Ενεργοποίησης 45 επιστροφής από τη 46 κλήση της µεθόδου 47