ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Σύστημα για Online Αγορές

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δαμιανός Χατζηαντωνίου Οικονομικό Πανεπιστήμιο Αθηνών
Advertisements

Χρησιμοποιώντας το Visual Studio 2010 για την Ανάπτυξη Εφαρμογών Office Αντώνης Κορδατζάκης Software Developer - ALM Specialist 12/5/2011.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ
Δαμιανός Χατζηαντωνίου Οικονομικό Πανεπιστήμιο Αθηνών
ΔΙΑΓΡΑΜΜΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ
1 System Requirements ΥΠΕΥΘΥΝΟΣ: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ Introduction.
Developing Public Transport Network systems: The DIANA approach Dimitrios Kosmopoulos, Mihalis Kalohristianakis, Sotirios Chatzis, Athanasios Malamos,
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
UML (Unified Modeling Language)
Ελληνική Βιομηχανία: προς την οικονομία της γνώσης, ΤΕΕ, Αθήνα, 3-5 Ιουλίου 2006 The Knowledge Economy and Public Administration Dr. Costis Toregas George.
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Ζωγραφάκης Ιωάννης.
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού ATM loop Print_input_message (” Welcome - Please enter your card”) ; exit when Card_input ; end loop.
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
6/15/2015HY220: Ιάκωβος Μαυροειδής1 HY220 Static Random Access Memory.
1 Διαχείριση Γνώσης Μ. Γεργατσούλης Χ. Παπαθεοδώρου.
6/26/2015HY220: Ιάκωβος Μαυροειδής1 HY220 Asynchronous Circuits.
Παράδειγμα Εφαρμογής Σύστημα για Online Αγορές Αθανασόπουλος Γιώργος ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ.
ΟΡΓΑΝΙΣΜΟΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΔΙΟΚΤΗΣΙΑΣ “Preparing Europe for Global Competition” THE NETWORK : The Patent and Trademark Offices.
Εφαρμογές Πληροφοριακών Συστημάτων
Week 11 Quiz Sentence #2. The sentence. λαλο ῦ μεν ε ἰ δότες ὅ τι ὁ ἐ γείρας τ ὸ ν κύριον Ἰ ησο ῦ ν κα ὶ ἡ μ ᾶ ς σ ὺ ν Ἰ ησο ῦ ἐ γερε ῖ κα ὶ παραστήσει.
Προσομοίωση Δικτύων 4η Άσκηση Σύνθετες τοπολογίες, διακοπή συνδέσεων, δυναμική δρομολόγηση.
Αρχιτεκτονική Λογισμικού. Αρχιτεκτονική Συστήματος Λογισμικού Η Αρχιτεκτονική περιγράφει τη γενική στατική δομή του συστήματος, τα βασικά δομικά του στοιχεία,
Αριθμητική Επίλυση Διαφορικών Εξισώσεων 1. Συνήθης Δ.Ε. 1 ανεξάρτητη μεταβλητή x 1 εξαρτημένη μεταβλητή y Καθώς και παράγωγοι της y μέχρι n τάξης, στη.
ANAΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Aντικειμενοστρεφής Ανάπτυξη Συστημάτων Εισαγωγή στη UML.
Χρονικός Προγραμματισμός Έργων Ενότητα 2: Βασικές έννοιες στο σχεδιασμό και τη διαχείριση έργου Κλεάνθης Συρακούλης, Επίκουρος Καθηγητής, Τμήμα Διοίκησης.
Στάδια εξέλιξης των συστημάτων ποιότητας. ΕΞΕΛΙΞΗ ΣΥΣΤΗΜΑΤΩΝ ΔΙΟΙΚΗΣΗΣ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΕΠΙΘΕΩΡΗΣΗ ΕΛΕΓΧΟΣ ΠΟΙΟΤΗΤΑΣ ΔΙΑΣΦΑΛΙΣΗ ΠΟΙΟΤΗΤΑΣ ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
4 Μοντέλο Οντοτήτων-Συσχετίσεων  Η ανάγκη  Διαγράμματα ΟΣ  Σύνολα Οντοτήτων-Συσχετίσεων  Απεικονίσεις  Επεκτάσεις.
Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Δημοσιεύσεις Καθηγήτρια: Αφροδίτη Τσαλγατίδου
N. ΝΙΚΗΤΑΚΟΣ καθηγητής Παν. Αιγαίου Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών.
Guide to Business Planning The Value Chain © Guide to Business Planning A principal use of value chain analysis is to identify a strategy mismatch between.
Guide to Business Planning The Value System © Guide to Business Planning The “value system” is also referred to as the “industry value chain”. In contrast.
Προγραμματισμός Επιχειρησιακών Πόρων - Enterprise Resource Planning
Σύστημα διαχείρισης αρχείων (file system)
Mazi Travel Hotel Management Consulting
Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Διαγράμματα Κλάσεων Ανάλυση Συστημάτων 2007.
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ (SOFTWARE ENGINEERING) UML – διαγράμματα περιπτώσεων χρήσης, διαγράμματα κλάσεων, διαγράμματα ακολουθίας, διαγράμματα δραστηριότητας,
ΤΕΧΝΟΛΟΓΙΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Αντίληψη Αντίληψη του φυσικού κόσμου που μας περιβάλλει, μέσω του νευρικού μας συστήματος (sensory perception). Η αντίληψη αποτελεί δημιούργημα του εγκεφάλου.
Ασκήσεις Κεφάλαιο 11.
Στάδια εξέλιξης των συστημάτων ποιότητας
Αντικειμενοστραφής Προγραμματισμός (Object Oriented Programming)
Περιεχόμενα ΕΙΔΗ ΥΠΗΡΕΣΙΩΝ ΠΛΗΡΟΦΟΡΗΣΗΣ (ΓΕΝΙΚΑ) ΔΑΝΕΙΣΜΟΣ (LOANS)
Ψηφιακeς ιδEες και αξIες
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΤΕΧΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ
Πανεπιστήμιο Θεσσαλίας
ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ
Activity Diagrams.
Web Services στη C# Εργαστήριο 2
Διδάσκων: Κων/νος Κώτης
Μουσενίκας Δημήτριος Βλάχος Χριστόδουλος
Σχεδίαση Λογισμικού Διδάσκων: Κων/νος Κώτης (BSc, PhD)
Swing II Εβδομάδα Νο. 6.
JAVA – Basic OOP Principles
Πανεπιστήμιο Θεσσαλίας
Εκπαιδευτική ρομποτική
Πληροφοριακά Συστήματα: Μοντελοποίηση με UML
ΑΓΓΛΙΚΑ Ε’ ΔΗΜΟΤΙΚΟΥ English 5th Grade -Writing Activities-
ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΑΡΧΕΙΟΝΟΜΙΑΣ – ΒΙΒΛΙΟΘΗΚΟΝΟΜΙΑΣ Μεταπτυχιακό Πρόγραμμα Σπουδών στην Επιστήμη της Πληροφορίας «Διοίκηση και Οργάνωση Βιβλιοθηκών.
aka Mathematical Models and Applications
Αρχες διοικησησ & διαχειρισησ εργων
CPSC-608 Database Systems
ΧΡΟΝΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΩΝ
Μεταγράφημα παρουσίασης:

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Σύστημα για Online Αγορές Thomi Pilioura 11/10/2018 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Παράδειγμα Εφαρμογής Σύστημα για Online Αγορές Θώμη Πήλιουρα E-mail: thomi@di.uoa.gr Παράδειγμα ανάπτυξης εφαρμογής χρησιμοποιώντας UML UML Online Shopping Example

Agenda Online Αγορές – Ανάλυση Προσδιορισμός Απαιτήσεων Thomi Pilioura Agenda 11/10/2018 Online Αγορές – Ανάλυση Προσδιορισμός Απαιτήσεων Προδιαγραφή Απαιτήσεων Online Αγορές – Σχεδιασμός Σχεδιασμός Συστήματος Λεπτομερειακός Σχεδιασμός Αναλυση – εστιάζει στις απαιτήσεις του συστήματος – τι θέλουμε να κάνει το σύστημα? Requirements Determination): Πώς πρέπει να λειτουργεί το σύστημα και τι περιορισμοί υπάρχουν στην συμπεριφορά του ή στην ανάπτυξη του συστήματος? Περιλαμβάνει διαπραγμάτευση με τους χρήστες. Είναι απαραίτητο στάδιο για να αποφευχθούν αντιμαχόμενες και επικαλυπτόμενες απαιτήσεις, και για να υπάρχει συμφωνία με την διάρκεια και τον προϋπολογισμό του project. Αποτέλεσμα αυτής της φάσης είναι ένα “requirements document” Requirements specification: Αρχίζει όταν οι προγραμματιστές αρχίζουν να μοντελοποιούν τις απαιτήσεις χρησιμοποιώντας μια συγκεκριμένη μέθοδο (όπως UML). Έτσι το “requirements document” εμπλουτίζεται με γραφικά μοντέλα και προκύπτει το «specifications document”. Οι πιο σημαντικές specification τεχνικές στην αντικειμενοστραφή ανάλυση είναι τα class diagrams και τα use case diagrams. Είναι τεχνικές για specifications δεδομένων και λειτουργιών. Σχεδιασμός – πώς θα υλοποιήσουμε (με την υπάρχουσα τεχνολογία) αυτό που πρέπει να κάνει το σύστημα? Architectural Design (Σχεδιασμός Συστήματος): γίνεται σχεδιασμός σε σχέση με την hardware/software πλατφόρμα πάνω στην οποία θα χτιστεί το σύστημα. Περιγράφει το προϊόν ως προς τα modules. Detailed design (Λεπτομερειακός Σχεδιασμός): περιγράφει κάθε module. Σε μια κλασική client-server αρχιτεκτονική τα modules διανέμονται ή στον client ή στον server. Σε αυτή τη φάση γίνεται π.χ. Ο σχεδιασμός του GUI και database. Υλοποίηση – της client εφαρμογής και της βάσης δεδομένων Αυτή η παρουσίαση αποτελεί ένα σύντομο tutorial στο UML visual modeling με ένα απλό παράδειγμα. Σκοπός να δείξει τα διάφορα διαγράμματα και πως σχετίζονται μεταξύ τους. Κάθε διάγραμμα εστιάζει σε μια μόνο άποψη του συστήματος. Για να καταλάβουμε ένα σύστημα, πολλαπλά διαγράμματα, που καθένα αναπαριστά και μια διαφορετική άποψη του συστήματος πρέπει να παρουσιαστούν. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προσδιορισμός Απαιτήσεων – Γενικές Αρχές Thomi Pilioura Προσδιορισμός Απαιτήσεων – Γενικές Αρχές 11/10/2018 Αφορά τον καθορισμό και την τεκμηρίωση των απαιτήσεων Προκύπτουν από το γνωστικό πεδίο της εφαρμογής και τις περιπτώσεις χρήσης Μέθοδοι εκμαίευσης απαιτήσεων συνεντεύξεις ερωτηματολόγια παρατήρηση Μελέτη κειμένων τεκμηρίωσης και συστημάτων λογισμικού Πρωτοτυποποίηση, JAD και RAD Διαπραγμάτευση και επικύρωση απαιτήσεων για την επίλυση επικαλυπτόμενων και αντιμαχόμενων απαιτήσεων Μπορούν να χρησιμοποιηθούν κάποια απλά είδη διαγραμμάτων – Context Diagram, Business Use Case Diagram, and Business Class Diagram Αποτέλεσμα αυτής της φάσης -> Requirements Document Συνεργασία domain experts, business analysts και πελατών Συνεντεύξεις πελατών και ειδημόνων της περιοχής Joint Application Development Rapid Application development Το Requirements document είναι κυρίως ένα αφηγηματικό κείμενο με μερικά άτυπα διαγράμματα και πίνακες. Παράγεται με βάση κάποιο προκαθορισμένο template (από κάποιο εγχειρίδιο, διεθνή οργανισμό, κλπ). Αυτά τα διαγράμματα προσδιορίζουν την εμβέλεια του συστήματος και αναγνωρίζουν κάποιες βασικές use cases και κλάσεις. Δεν χρησιμοποιούνται formal μοντέλα εκτός από κάποια εύκολα και δημοφιλή notations τα οποία διευκολύνουν την επικοινωνία μεταξύ πελάτη και προγραμματιστή. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προσδιορισμός Απαιτήσεων - Requirements doc Thomi Pilioura Προσδιορισμός Απαιτήσεων - Requirements doc 11/10/2018 Project Preliminaries Targets managers and decision makers Begins with purpose and scope of the project Makes a business case for the system Identifies stakeholders Offers initial ideas for the solution Includes an overview of the rest of the document System Services Dedicated to the definition of system services -what the system must accomplish Likely to account for more than half of the entire document Contains high-level requirements business models Context diagram (the system scope)/Business use case diagram (function requirements)/Business class diagram (data requirements) System Constraints Dedicated to the definition of system constraints - how the system is constrained when accomplishing services with regard to … Other constraints (Usability,Maintainability ) Project Matters Open issues Future requirements Current requirements to be implemented in the future – enhancements Potential problems once when the system deployed Preliminary schedule Human and other resources Planning charts (PERT, Gantt) Preliminary budget Project cost – range rather than figure Appendices Glossary (Terms, Acronyms, Abbreviations) Documents and forms Examples of completed (filled in) forms References To books and other published sources Meetings’ minutes, memoranda, internal documents 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προσδιορισμός Απαιτήσεων Online Αγορές - Περιγραφή Thomi Pilioura 11/10/2018 Προσδιορισμός Απαιτήσεων Online Αγορές - Περιγραφή Αγορά υπολογιστή μέσω Internet Ο πελάτης μπορεί να επιλέξει ένα standard configuration ή να χτίσει το δικό του online Για να παραγγείλει πρέπει να συμπληρώσει πληροφορίες για την αποστολή και την πληρωμή των εμπορευμάτων Ο πελάτης μπορεί να ελέγξει online την κατάσταση της αίτησης του Το configuration που έχει παραγγελθεί αποστέλλεται στον πελάτη μαζί με το τιμολόγιο Αποδεκτοί τρόποι πληρωμής είναι πιστωτικές κάρτες και επιταγές. Μετά την εισαγωγή της αίτησης το σύστημα στέλνει ένα e-mail επιβεβαίωσης στον πελάτη με τις λεπτομέρειες της παραγγελίας. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προσδιορισμός Απαιτήσεων Οnline Αγορές -...πιο λεπτομερώς (1/2) Thomi Pilioura Προσδιορισμός Απαιτήσεων Οnline Αγορές -...πιο λεπτομερώς (1/2) 11/10/2018 Ο πελάτης χρησιμοποιεί το web site του κατασκευαστή για να δει το standard configuration για το επιλεγμένο μηχάνημα. Φαίνεται και η τιμή. Ο πελάτης επιλέγει να δει τις λεπτομέρειες του configuration, με σκοπό ή να αγοράσει το μηχάνημα με το standard configuration ή να συναρμολογήσει κάτι δικό του. Η τιμή κάθε configuration μπορεί να υπολογιστεί μετά από αίτηση του πελάτη. Ο πελάτης μπορεί να επιλέξει να παραγγείλει τον υπολογιστή online ή να ζητήσει να επικοινωνήσει κάποιος πωλητής μαζί του για να του εξηγήσει λεπτομέρειες της παραγγελίας, να γίνει διαπραγμάτευση της τιμής κλπ. Για να γίνει η παραγγελία πρέπει ο πελάτης να συμπληρώσει online μια φόρμα με πληροφορίες για τη διεύθυνση αποστολής των εμπορευμάτων και του τιμολογίου, καθώς επίσης και λεπτομέρειες πληρωμής. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προσδιορισμός Απαιτήσεων Οnline Αγορές -...πιο λεπτομερώς (2/2) Thomi Pilioura Προσδιορισμός Απαιτήσεων Οnline Αγορές -...πιο λεπτομερώς (2/2) 11/10/2018 Μετά την παραγγελία του πελάτη ο πωλητής στέλνει μια ηλεκτρονική αίτηση στην αποθήκη με τις λεπτομέρειες της παραγγελίας (συγκεκριμένο configuration). Οι λεπτομέρειες της συναλλαγής (συμπεριλαμβανομένου και του αριθμού παραγγελίας) αποστέλλονται με e-mail στον πελάτη, έτσι ώστε να μπορεί να ελέγχει online την κατάσταση της παραγγελίας του. Η αποθήκη παίρνει το τιμολόγιο από τον πωλητή και στέλνει τον υπολογιστή στον πελάτη 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Agenda Online Αγορές – Ανάλυση Προσδιορισμός Απαιτήσεων Thomi Pilioura Agenda 11/10/2018 Online Αγορές – Ανάλυση Προσδιορισμός Απαιτήσεων Προδιαγραφή Απαιτήσεων Online Αγορές – Σχεδιασμός Σχεδιασμός Συστήματος Λεπτομερειακός Σχεδιασμός 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων – Διαγράμματα Thomi Pilioura Προδιαγραφή Απαιτήσεων – Διαγράμματα 11/10/2018 Use case διάγραμμα Διάγραμμα κλάσεων Διαγράμματα δραστηριοτήτων Διαγράμματα αλληλοδιαδοχής Διαγράμματα καταστάσεων Τα UML διαγράμματα που δημιουργούνται στη φάση της ανάλυσης είναι αυτά που φαίνονται στη διαφάνεια. Εστιάζουν στην περιοχή του προβλήματος και όχι σε μια συγκεκριμένη τεχνική λύση. Η κατασκευή των διαγραμμάτων δεν είναι μια σειριακή διαδικασία δημιουργίας του ενός διαγράμματος μετά το άλλο. Τα διαγράμματα γίνονται παράλληλα και λεπτομέρειες προστίθενται σε συνεχόμενες επαναλήψεις. Εκτός και αν έχει επιβληθεί μια αυστηρή διαδικασία ανάπτυξης στους developers, το ποια διαγράμματα πρέπει να γίνουν είναι κυρίως προσωπική απόφαση του αναλυτή Η διαδικασία που έχουμε ακολουθήσει σε αυτήν την παρουσίαση δεν θα πρέπει να θεωρηθεί ως η συνιστώμενη λύση. Άλλωστε η διαδικασία είναι επαναλαμβανόμενη και αυξανόμενη. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Use cases - Γενικά Thomi Pilioura Προδιαγραφή Απαιτήσεων Use cases - Γενικά 11/10/2018 Use case – περιγράφει τη λειτουργικότητα του συστήματος όπως αυτή γίνεται αντιληπτή από τον χρήστη Actor – όποιος ή ότι αλληλεπιδρά με ένα use case Υπάρχουν μερικά use cases που δεν αλληλεπιδρούν απευθείας με Actors Υπάρχουν μερικά use cases που δεν αλληλεπιδρούν απευθείας με Actors, απλά βοηθούν κάποια άλλα use cases στο να δώσουν το αποτέλεσμα στο χρήστη 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - Προσδιορισμός Actors Thomi Pilioura 11/10/2018 Προδιαγραφή Απαιτήσεων Online Αγορές - Προσδιορισμός Actors Μετά την εισαγωγή της παραγγελίας του πελάτη στο σύστημα, ο πωλητής στέλνει μία ηλ. αίτηση στην αποθήκη με τις λεπτομέρειες της παραγγελίας 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - Προσδιορισμός Use cases Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - Προσδιορισμός Use cases 11/10/2018 Ο πελάτης χρησιμοποιεί το web site του κατασκευαστή για να δει το standard configuration για το επιλεγμένο μηχάνημα. Φαίνεται και η τιμή. Ο πελάτης επιλέγει να δει τις λεπτομέρειες του configuration, με σκοπό ή να αγοράσει το μηχάνημα με το standard configuration ή να συναρμολογήσει κάτι δικό του. Η τιμή κάθε configuration μπορεί να υπολογιστεί μετά από αίτηση του πελάτη. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές – Actors και Use Cases (1/3) Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές – Actors και Use Cases (1/3) 11/10/2018 Απαίτηση Actor Use case Ο πελάτης χρησιμοποιεί το web site του κατασκευαστή για να δει το standard configuration για το επιλεγμένο μηχάνημα. Φαίνεται και η τιμή. Ο πελάτης επιλέγει να δει τις λεπτομέρειες του configuration, με σκοπό ή να αγοράσει το μηχάνημα με το standard configuration ή να συναρμολογήσει κάτι δικό του. Η τιμή κάθε configuration μπορεί να υπολογιστεί μετά από αίτηση του πελάτη. Customer Display standard computer configuration Customer Build Computer Configuration Πρώτα αναγνωρίζουμε τους actors. Έπειτα τα use cases, τα οποία μπορούν να προκύψουν από τον προσδιορισμό καθηκόντων του actor. Η ερώτηση που πρέπει να γίνει είναι η εξής: « ποιες είναι οι ευθύνες του actor απέναντι στο σύστημα και τι περιμένει από το σύστημα?» Φτιάχνουμε πίνακα που κάνει την αντιστοίχηση της κάθε function requirement σε actor και σε use case. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές – Actors και Use Cases (2/3) Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές – Actors και Use Cases (2/3) 11/10/2018 Απαίτηση Actor Use case Ο πελάτης μπορεί να επιλέξει να παραγγείλει τον υπολογιστή online ή να ζητήσει να επικοινωνήσει κάποιος πωλητής μαζί του για να του εξηγήσει λεπτομέρειες της παραγγελίας, να γίνει διαπραγμάτευση της τιμής κλπ. Για να γίνει η παραγγελία πρέπει ο πελάτης να συμπληρώσει online μια φόρμα με πληροφορίες για τη διεύθυνση αποστολής των εμπορευμάτων και του τιμολογίου, καθώς επίσης και λεπτομέρειες πληρωμής. Customer Salesperson Order Configured Computer Request Salesperson contact Customer Order configured Computer, Verify and Accept Customer Payment 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές – Actors και Use Cases (3/3) Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές – Actors και Use Cases (3/3) 11/10/2018 Απαίτηση Actor Use case Μετά την παραγγελία του πελάτη ο πωλητής στέλνει μια ηλ. Αίτηση στην αποθήκη με τις λεπτομέρειες της παραγγελίας Οι λεπτομέρειες της συναλλαγής αποστέλλονται με e-mail στον πελάτη, έτσι ώστε να μπορεί να ελέγχει online την κατάσταση της παραγγελίας Η αποθήκη παίρνει το τιμολόγιο από τον πωλητή και στέλνει τον υπολογιστή στον πελάτη Salesperson Warehouse Inform warehouse about Order Salesperson Customer Order configured Computer, Update order status Salesperson Warehouse Οι δουλειές της αποθήκης για να γίνει το συναρμολόγημα και η αποστολή του υπολογιστή θεωρούνται ως out-of-scope λειτουργίες Print Invoice 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές – Use case Διάγραμμα Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές – Use case Διάγραμμα 11/10/2018 Display Standard Computer Config Build Computer Config Order Configured Computer Warehouse Customer Request Salesperson Contact <<extend>> Inform Warehouse Print Invoice Update Order Status Salesperson Verify and Accept Customer Payment Αντιστοίχηση use cases σε actors καθώς και δήλωση των συσχετίσεων μεταξύ use cases. The <<extend>> relationship - the use case «Order Configured Computer» can be extended by «Customer» with the use case «Request Salesperson Contact». Μια use case “extends” μια άλλη προσθέτοντας επιπλέον ενέργειες στη γενική use case Μια use case ενσωματώνει (“includes”) τη συμπεριφορά μιας άλλης. Η διαφορά μεταξύ extends και includes είναι ότι η περιλαμβανόμενη use case είναι απαραίτητη για την ολοκλήρωση της use case που την καλεί. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων -Τεκμηρίωση use cases Thomi Pilioura Προδιαγραφή Απαιτήσεων -Τεκμηρίωση use cases 11/10/2018 Σύντομη περιγραφή Actors Προϋποθέσεις για να ξεκινήσει το use case Αναλυτική περιγραφή της ροής των events που περιέχει: Κύρια ροή από events -> subflows Εναλλακτικές ροές για τον ορισμό εξαιρετικών καταστάσεων Postconditions: ορίζουν την κατάσταση του συστήματος μετά το τέλος του use case Το use case document εμπλουτίζεται κατά τη διάρκεια της ανάπτυξης του λογισμικού Κάθε use case πρέπει να περιγράφεται σε ένα flow of events document. Αυτό το γραπτό κείμενο ορίζει τι πρέπει να κάνει το σύστημα όταν ένας actor ενεργοποιεί ένα use case. Η μορφή ενός use case document μπορεί να ποικίλει, αλλά μια τυπική περιγραφή θα περιέχει αυτά που φαίνονται στη διαφάνεια. Το use case document εξελίσσεται με την πρόοδο του software development. Στα αρχικά στάδια του requirements determination (προσδιορισμός απαιτήσεων) μόνο μια απλή περιγραφή γράφεται. Αλλά μέρη του κειμένου γράφονται σταδιακά. Ένα πλήρες doc προκύπτει στο τέλος της requirements specifications (προδιαγραφή απαιτήσεων) φάσης. Σε αυτό το στάδιο, τα αρχέτυπα των GUI οθονών μπορούν να προστεθούν στο doc. Αργότερα το use case document θα χρησιμοποιηθεί για την παραγωγή του user documentation που θα συνοδεύει το υλοποιημένο σύστημα. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές-Τεκμηρίωση «Order Configured Computer» 11/10/2018 Use case Order Configured Computer Σύντομη περιγραφή Επιτρέπει σε έναν πελάτη να εισαγάγει μια παραγγελία. Αυτό περιλαμβάνει επίσης πληροφορίες για αποστολή εμπορευμάτων και τιμολογίου, καθώς και λεπτομέρειες πληρωμής Actors Customer Προυποθέσεις Ο πελάτης πηγαίνει στο web site του κατασκευαστή. Η σελίδα δείχνει πληροφορίες για έναν configured υπολογιστή και την τιμή του Main flow To use case ξεκινάει όταν ο πελάτης αποφασίζει να παραγγείλει τον configured υπολογιστή επιλέγοντας «Continue» όταν οι λεπτομέρειες της παραγγελίας εμφανίζονται στην οθόνη .... Alternative flows Ο πελάτης επιλέγει «Purchase» πριν δώσει όλες τις υποχρεωτικές πληροφορίες. Το σύστημα παρουσιάζει ένα μήνυμα λάθους και ζητάει να συμπληρωθούν όλα τα υποχρεωτικά πεδία. Ο πελάτης επιλέγει «Reset» για να επιστρέψει σε μια άδεια φόρμα. Το σύστημα του επιτρέπει να συμπληρώσει εκ νέου τα πεδία. Postconditions Αν το use case τελειώνει επιτυχώς καταγράφεται στη βάση του συστήματος. Διαφορετικά, η κατάσταση του συστήματος δεν αλλάζει. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Διάγραμμα Δραστηριοτήτων - Γενικά Thomi Pilioura Προδιαγραφή Απαιτήσεων Διάγραμμα Δραστηριοτήτων - Γενικά 11/10/2018 Δίνει την ακολουθιακή ροή των δραστηριοτήτων ενός use case Περιέχει προσδιορισμούς των μηνυμάτων που αποστέλλονται Οι δραστηριότητες προκύπτουν από το use case document (από τα main και alternative flows) Use case περιγραφές -> από την οπτική γωνιά ενός εξωτερικού actor Μοντέλα δραστηριοτήτων -> από την οπτική γωνιά του συστήματος Καλύπτει το κενό μεταξύ της υψηλού επιπέδου αναπαράστασης της συμπεριφοράς ενός συστήματος στα use case μοντέλα και της χαμηλού επιπέδου αναπαράστασης στα interaction models (sequence and collaboration diagrams) 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές – Προσδιορισμός Activities Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές – Προσδιορισμός Activities 11/10/2018 Use case statement Activity state To use case ξεκινάει όταν ο πελάτης αποφασίζει να παραγγείλει τον configured υπολογιστή επιλέγοντας «Continue» όταν οι λεπτομέρειες της παραγγελίας εμφανίζονται στην οθόνη Display Current Configuration Get order request Το σύστημα ζητάει τη συμπλήρωση των πεδίων (όνομα, επίθετο, τρόπος πληρωμής, κλπ.) Display Purchase Form Ο πελάτης επιλέγει «purchase» για την αποστολή της αίτησης στον κατασκευαστή Get Purchase Details 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές–Activity Diagram «Order Configured Computer» 11/10/2018 A solid filled circle represents the initial state The final state is shown using so called bull’s eye symbol Transitions can branch and merge (diamond) – alternative computation threads Transitions can fork and re-join (bar line) –concurrent (parallel) computation threads Το recursive transition στο activity “Display Current Configuration” δείχνει ότι η οθόνη ανανεώνεται συνεχώς μέχρι την επόμενη μετάβαση δηλ. Get Order Request. Μόνο οι συνθήκες διακλάδωσης οι οποίες φαίνονται στις εξόδους από μια δραστηριότητα εμφανίζονται. οι συνθήκες διακλάδωσης που είναι εσωτερικές σε μια δραστηριότητα δεν φαίνονται στο διάγραμμα. Υποδηλώνονται από την παρουσία πολλών μεταβάσεων εξόδου (π.χ. οι δύο μεταβάσεις εξόδου από τη δραστηριότητα “Display Purchase Form”), πιθανώς με μια συνθήκη φύλαξης πάνω στη μετάβαση. Συνθήκη Φύλαξης π.χ. [timeout] Eίναι μια λογική έκφραση που είναι αληθής ή ψευδής και βρίσκεται σε μια μετάβαση κατάστασης. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Διάγραμμα Κλάσεων - Γενικά Thomi Pilioura Προδιαγραφή Απαιτήσεων Διάγραμμα Κλάσεων - Γενικά 11/10/2018 Περιγράφει την κατάσταση του συστήματος-από τι αποτελείται το σύστημα μια δεδομένη στιγμή Περιέχει Κλασεις Attributes and operations of classes Associations, aggregation, composition και generalization Class modeling και use case modeling λαμβάνουν χώρα παράλληλα Class modeling και use case modeling λαμβάνουν χώρα παράλληλα. Το ένα τροφοδοτεί το άλλο με επιπλέον πληροφορία Τα use cases βοηθούν στην ανακάλυψη των κλάσεων και αντίστροφα 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων - Είδη Κλάσεων Thomi Pilioura Προδιαγραφή Απαιτήσεων - Είδη Κλάσεων 11/10/2018 Entity Classes -> business entities (Order, Customer, etc), αναπαριστούν αντικείμενα μιας βάσης δεδομένων Boundary classes -> define GUI objects Control classes -> ελέγχουν την λογική του προγράμματος Boundary και Control classes μπορεί να βγουν στην φάση της ανάλυσης ή να γίνουν αργότερα στη φάση του σχεδιασμού Requirements analysis ασχολείται πρώτα από όλα με τα entity classes. Όμως για να δουλέψει το σύστημα απαιτούνται και άλλες κλάσεις δηλαδή boundary classes και control classes. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων - Ερωτήματα για εύρεση κλάσεων Thomi Pilioura Προδιαγραφή Απαιτήσεων - Ερωτήματα για εύρεση κλάσεων 11/10/2018 Αυτή η έννοια αποτελεί κλάση? Αναπαριστά πληροφορία που πρέπει να περιγραφεί, αναλυθεί ή αποθηκευτεί? Έχει διάφορα attributes που παίρνουν διαφορετικές τιμές? Έχει πολλά στιγμιότυπα? Είναι στα όρια του application domain? Ο εντοπισμός κλάσεων είναι μια επαναλαμβανόμενη διαδικασία και η αρχική λίστα υποψηφίων κλάσεων μπορεί να αλλάξει. Η απάντηση σε μερικές ερωτήσεις μπορεί να βοηθήσει στην απόφαση για το αν μια έννοια στις απαιτήσεις είναι υποψήφια κλάση ή όχι. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές – Eντοπισμός κλάσεων Thomi Pilioura 11/10/2018 Προδιαγραφή Απαιτήσεων Online Αγορές – Eντοπισμός κλάσεων Απαίτηση Entity class Ο πελάτης χρησιμοποιεί το web site του κατασκευαστή για να δει το standard configuration για το επιλεγμένο μηχάνημα. Φαίνεται και η τιμή. Customer, Computer (StandardConfiguration) Ο πελάτης επιλέγει να δει τις λεπτομέρειες του configuration, με σκοπό ή να αγοράσει το μηχάνημα με το standard configuration ή να συναρμολογήσει κάτι δικό του. Η τιμή κάθε configuration μπορεί να υπολογιστεί μετά από αίτηση του πελάτη. Customer, ConfiguredComputer, ConfigurationItem Ο πελάτης μπορεί να επιλέξει να παραγγείλει τον υπολογιστή online ή να ζητήσει να επικοινωνήσει κάποιος πωλητής μαζί του για να του εξηγήσει λεπτομέρειες της παραγγελίας, να γίνει διαπραγμάτευση της τιμής κλπ. Order, Salesperson Αναφερόμαστε στην περιγραφή της εφαρμογής και από τις απαιτήσεις βγάζουμε τις entity κλάσεις Δε σημαίνει ότι αυτή είναι και η σωστή λίστα. Πολλά Ερωτήματα προκύπτουν όπως π.χ. τα παρακάτω: Δεν μπορεί το ConfigurationItem να είναι απλά μια λίστα από attributes στο ConfiguredComputer? Είναι το OrderStatus μια κλάση ή attribute του Order? Η απάντηση είναι δύσκολη και απαιτεί βαθιά γνώση των απαιτήσεων της εφαρμογής. Γι’ αυτό το φροντιστήριο επιλέγουμε τις κλάσεις της επόμενης διαφάνειας. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές – Classes Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές – Classes 11/10/2018 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές – Attributes Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές – Attributes 11/10/2018 Για τις κλάσεις της προηγούμενης διαφάνειας σκεφτόμαστε τα attributes με primitive types. Φαίνονται μόνο οι πιο ενδιαφέρουσες attributes Υπάρχει μεγάλος βαθμός αυθαίρετων αποφάσεων. In UML analysis models, attributes with class-based types (rather than primitive types) are not listed in the middle class compartment. Instead, the associations between classes represent them. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές -Associations Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές -Associations 11/10/2018 Αν σκεφτούμε τι μονοπάτια πρόσβασης απαιτούνται από τα use cases προκύπτει το παραπάνω διάγραμμα) Έχουμε κάνει μερικές παραδοχές Μια παραγγελία προέρχεται από έναν μόνο πελάτη αλλά ένας πελάτης μπορεί να κάνει πολλές παραγγελίες Η παραγγελία δεν γίνεται αποδεκτή παρα μόνο αν έχει προσδιοριστεί η πληρωμή Η παραγγελία δεν πρέπει οπωσδήποτε να έχει ένα σχετικό τιμολόγιο αλλά ένα τιμολόγιο σχετίζεται μόνο με μια παραγγελία. Μια παραγγελία είναι για έναν ή πολλούς υπολογιστές Ένας ConfiguredComputer μπορεί να παραγγελθεί πολλές φορές ή και καμιά Στο υλοποιημένο σύστημα οι συσχετίσεις αναπαριστώνται με attribute types που προσδιορίζουν σχετικές κλάσεις 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - Aggregations Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - Aggregations 11/10/2018 Προσθέτουμε 2 aggregation συσχετίσεις στο μοντέλο. Ένας υπολογιστής έχει ένα ή περισσότερα ConfigurationItems. Το ίδιο ισχύει και για ένα ConfiguredComputer. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - Generalizations Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - Generalizations 11/10/2018 Σκεφτείτε πώς μπορούμε να εξάγουμε κάποιες κοινές attributes στις υπάρχουσες κλάσεις και να δημιουργήσουμε μια κλάση σε υψηλότερο επίπεδο. Η κλάση Computer αλλάζει σε μια αφαιρετική κλάση για δύο συγκεκριμένες υποκλάσεις StandardComputer και ConfiguredComputer. Order και ConfigurationItem συνδέονται τώρα στο Computer και το Computer μπορεί να είναι ένα StandardComputer ή ένα ConfiguredComputer. H αφαιρετική κλάση δεν έχει instance objects. Μια κλάση είναι αφαιρετική αν μια τουλάχιστον μέθοδος της είναι αφαιρετική. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - Class Diagram Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - Class Diagram 11/10/2018 Το class diagram είναι η καρδιά του object-oriented συστήματος. Δείξαμε μόνο το static κομμάτι τους. Δεν έχουμε ακόμα προσθέσει operations. Τα operations ανήκουν περισσότερο στο σχεδιασμό από ότι στην ανάλυση. Αφού κάνουμε αλλαγές στα attributes για να ανταποκρίνονται στην εισαγωγή του generalization, Προκύπτει το πλήρες διάγραμμα. Σε μια πραγματική εφαρμογή θα χρειάζονταν περισσότερες attributes. Computer είναι αφαιρετική κλάση, δεν επιτρέπεται να έχει αντικείμενα, χρησιμοποιείται μόνο για να κληρονομείται από τις υποκλάσεις Μια κλάση με χαρακτηριστικό κλάσης (class attribute) p.x. Αριθμός τιμολογίων (δεν φαίνεται στη διαφάνεια), χρησιμοποιείται για να μετρήσει το πλήθος των τιμολογίων. Η τιμή αυτού του χαρακτηριστικού είναι κοινή για όλα τα αντικείμενα και υπάρχει και όταν δεν υπάρχει στιγμιότυπο της κλάσης και είναι 0. Συνήθως κρατούν default ή aggregate τιμές(όπως αθροίσματα, μέσοι όροι). Και οι λειτουργίες κλάσεων είναι συνήθως για δημιουργία και καταστροφή στιγμιότυπων και λειτουργίες που υποστηρίζουν συναθροίσθηκες τιμές. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - Στερεότυπο Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - Στερεότυπο 11/10/2018 Customer <<Actor>> "icon" stereotype "label" Ο πελάτης είναι μια κλάση με το στερεότυπο <<Actor>>. To στερεότυπο προσθέτει επιπλέον σημασιολογικές πληροφορίες σχετικά με την κλάση. Εδώ η κλάση εκπροσωπεί έναν εξωτερικό χρήστη του συστήματος. Στερεότυπο ορίζει ένα νέο είδος στοιχείου μοντέλου βασισμένο σε ένα υπάρχον στοιχείο μοντέλου, προσθέτοντας του επιπλέον χαρακτηριστικά. Αναπαρίσταται μια κλάση στερεοτυπημένη με εικονίδιο και με ετικέτα. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Ορατότητα Η UML notation για ορατότητα + (for public), # (for protected) – (for private) Τα CASE tools χρησιμοποιούν διαφορετικό notation 10 November 2018 UoA - Θώμη Πήλιουρα

Προδιαγραφή Απαιτήσεων Online Αγορές - Derived association Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - Derived association 11/10/2018 Σε ένα τυπικό σενάριο μια derived association γίνεται μεταξύ 3 κλάσεων που συνδέονται με 2 associations χωρίς όμως τρίτο association για να κλείνει το loop. Χρειάζεται για να είναι το μοντέλο σημασιολογικά σωστό. Όταν δεν μοντελοποιείται explicitly (ρητά), η τρίτη association προκύπτει από τις άλλες δύο. Έτσι στο παραπάνω διάγραμμα προσθέτουμε μια τρίτη συσχέτιση (μεταξύ Customer και Invoice). Το association προκύπτει από το ότι η πολλαπλότητα της συσχέτισης μεταξύ Order και Invoice είναι 1:1. Η συσχέτιση δεν προσέθεσε καινούρια πληροφορία. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - Qualified association Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - Qualified association 11/10/2018 Μια Προσδιορίσιμη συσχέτιση έχει ένα qualifier στο ένα άκρο μιας binary συσχέτισης (μπορεί μια συσχέτιση να γίνει qualified και στις 2 πλευρές αλλά αυτό είναι σπάνιο). Ο qualifier μπορεί να είναι μια ή περισσότερες attributes που λειτουργούν ως index key για να πάμε από την qualified κλάση μέσω του qualifier στην κλάση προορισμό. Αν θέλουμε να εκφράσουμε το constraint: «ένα κομμάτι παραγγελίας για κάθε υπολογιστή» γίνεται όπως στο σχήμα 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Διάγραμμα Αλληλοδιαδοχής – Γενικά (1/2) Thomi Pilioura 11/10/2018 Προδιαγραφή Απαιτήσεων Διάγραμμα Αλληλοδιαδοχής – Γενικά (1/2) Περιγράφει τις αλληλεπιδράσεις μεταξύ των αντικειμένων που απαιτούνται για την εκτέλεση ενός use case Γίνεται σε προχωρημένο στάδιο του requirements analysis Δύο είδη interaction diagrams Sequence diagram – εστιάζει σε χρονικές αλληλουχίες Collaboration diagram – εστιάζει στις σχέσεις των αντικειμένων To interaction modeling γίνεται σε προχωρημένο στάδιο του requirement analysis, όταν ένα βασικό class model είναι γνωστό Αυτή είναι και η βασική διαφορά μεταξύ activity modeling και interaction modeling. Και τα δυο περιγράφουν τη συμπεριφορά μιας απλής use case (συνήθως). Αλλά το activity modeling γίνεται σε ένα πιο υψηλό επίπεδο αφαιρετικότητας. Δείχνει την αλληλουχία των γεγονότων χωρίς να αντιστοιχεί γεγονότα σε αντικείμενα. Ενώ το interaction modeling δείχνει την αλληλουχία των γεγονότων μεταξύ συνεργαζόμενων αντικειμένων. Για interacting modeling υπάρχουν δύο ειδών διαγράμματα: collaboration and sequence Το πιο διαδεδομένο είναι να γίνεται το sequence diagram στην φάση της ανάλυσης και το collaboration στη φάση του σχεδιασμού. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Διάγραμμα Αλληλοδιαδοχής – Γενικά (2/2) Thomi Pilioura Προδιαγραφή Απαιτήσεων Διάγραμμα Αλληλοδιαδοχής – Γενικά (2/2) 11/10/2018 Οριζόντια Διάσταση -> Αντικείμενα Κατακόρυφη Διάσταση -> Αλληλουχία Μηνυμάτων Βέλη – μήνυμα από το καλόν αντικείμενο σε μια μέθοδο του καλούμενου αντικειμένου Μπορούμε να συμπεριλάβουμε τις παραμέτρους ενός μηνύματος Keyword in για input παραμέτρους Keyword out για output παραμέτρους Keyword inout για input/output παραμέτρους (σπάνια) Η επιστροφή του ελέγχου από το καλούμενο στο καλόν αντικείμενο είναι αυτονόητη Iteration marker – ένας αστερίσκος μπροστά από το μήνυμα δείχνει επανάληψη σε μια συλλογή αντικειμένων Το διάγραμμα αλληλοδιαδοχής είναι ένα δισδιάστατο διάγραμμα. συλλογή αντικειμένων μπορεί να είναι μια λίστα ή πίνακας από αντικείμενα. Αυτό συμβαίνει όταν το καλόν αντικείμενο συνδέεται με πολλά καλούμενα αντικείμενα π.χ. Όταν η πολλαπλότητα μιας συσχέτισης είναι 1:n ή n:n. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Thomi Pilioura 11/10/2018 Προδιαγραφή Απαιτήσεων Online Αγορές–Διάγρ.Αλληλοδιαδοχής για το “Display Current Configuration” activity Ο πελάτης επιλέγει να εμφανίσει το configuration ενός υπολογιστή. Το μήνυμα openNew αποστέλλεται στο αντικείμενο aConfWin της κλάσης ConfigurationWindow. To μήνυμα έχει σαν αποτέλεσμα τη δημιουργία ενός aConfWin αντικειμένου. ConfigurationWindow είναι μια boundary class. Το αντικείμενο aConfWin πρέπει να εμφανίσει τον εαυτό του με configuration data. Γι’ αυτό στέλνει ένα μήνυμα στο αντικείμενο aComp το οποίο είναι αντικείμενο της κλάσης StandardComputer ή ConfiguredComputer. To αντικείμενο aComp χρησιμοποιεί το output argument item_rec για να κάνει compose τον εαυτό του από ConfigurationItem αντικείμενα. Μετά στέλνει τα configuration items στο aConfWin σαν παράμετρο στο displayComputer μήνυμα. Και τώρα μπορεί το aConfWin να εμφανίσει τον εαυτό του. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - Interactions Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - Interactions 11/10/2018 Και εμφανίζεται το εξής... Στην αρχή δείχνει τα standard configuration items . 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων – Operations Thomi Pilioura 11/10/2018 Προδιαγραφή Απαιτήσεων – Operations Η εξέταση των αλληλεπιδράσεων μπορεί να οδηγήσει στην αναγνώριση μεθόδων Κάθε μήνυμα καλεί μια μέθοδο στο καλούμενο αντικείμενο Η μέθοδος έχει το ίδιο όνομα με το μήνυμα Επίσης η ύπαρξη ενός μηνύματος στο διάγραμμα αλληλουχίας υποδηλώνει την ανάγκη ύπαρξης συσχέτισης στο διάγραμμα κλάσεων Αν και ο προσδιορισμός των μεθόδων των κλάσεων καθυστερείται συνήθως μέχρι το σχεδιασμό, η εξέταση των αλληλουχιών μπορεί να οδηγήσει στην ανακάλυψη μεθόδων. Η εξάρτηση μεταξύ αλληλεπιδράσεων και μεθόδων είναι εμφανής. Κάθε μήνυμα καλεί μια μέθοδο στο καλούμενο αντικείμενο. Η μέθοδος έχει το ίδιο όνομα με το μήνυμα. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - Operations Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - Operations 11/10/2018 ConfigurationWindow είναι boundary class, οι άλλες δύο είναι database objects. Η openNew έχει το στερεότυπο “constructor” δηλ. Θα υπολοιηθεί ως constructor μέθοδος που θα δημιουργεί στιγμιότυπα της κλάσης. Η κλάση Computer είναι μια αφαιρετική κλάση και η getConf είναι μια αφαιρετική μέθοδος που κληρονομείται από τις υποκλάσεις και κάθε υποκλάση δίνει τη δικιά της υλοποίηση για την getConf. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές- Διάγρ.Αλληλοδιαδοχής για το Display Current Configuration use case (1/2) 11/10/2018 Συνήθως ένα sequence diagram για κάθε use case και για κάθε activity diagram. Φτιάχνουμε ένα sequence diagram (το οποίο έχει χωριστεί στα δύο για λόγους αναγνωσιμότητας) στο οποίο: Δεν φαίνονται τα μηνύματα μεταξύ computer και ConfigurationItem objects. Δεν φαίνονται επίσης οι υποκλάσεις. Φαίνονται μόνο τα activation messsages. Returns are explicits. Δεν φαίνονται τα operation arguments. To μήνυμα acceptConf έχει σαν αποτέλεσμα το prepareForOrder μήνυμα που αποστέλλεται στο :Order αντικείμενο. Αυτό δημιουργεί ένα transient :Order object που παρουσιάζεται στο :OrderWindow. Αν ο πελάτης αποδεχθεί τις λεπτομέρειες της παραγγελίας (submitOrder), το : OrderWindow προκαλεί (storeOrder) τη δημιουργία ενός persistent :Order object. Το :Order object συνδέει τον εαυτό του με τον ordered :Computer και τα σχετικά :Customer και :Payment αντικείμενα (βλ. Επόμενη διαφάνεια). Όταν αυτά συνδεθούν στη βάση, το :Order object στέλνει ένα emailOrder μήνυμα στον πελάτη. Παρατηρούμε τη διπλή χρήση του :Customer ως εξωτερικού actor object και ως εσωτερικού class object. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές- Διάγρ.Αλληλοδιαδοχής για το Display Current Configuration use case (2/2) 11/10/2018 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων – Διάγραμμα καταστάσεων Αναπαριστά τις δυναμικές αλλαγές στην κατάσταση μιας κλάσης Αυτές οι δυναμικές αλλαγές περιγράφουν τη συμπεριφορά ενός αντικειμένου στα διάφορα use cases Κατάσταση αντικείμενου – καθορίζεται από τις τρέχουσες τιμές των attributes Διάγραμμα Καταστάσεων – αποτελείται από καταστάσεις και Μεταβάσεις που προκαλούνται από γεγονότα Έννοιες αντίστοιχες με τα Activity Diagrams – η διαφορά είναι ότι στα Activity Diagrams αναπαριστώνται οι καταστάσεις εκτέλεσης ενός υπολογισμού και όχι οι καταστάσεις ενός αντικειμένου 10 November 2018 UoA - Θώμη Πήλιουρα

Προδιαγραφή Απαιτήσεων – Καταστάσεις/Μεταβάσεις Thomi Pilioura Προδιαγραφή Απαιτήσεων – Καταστάσεις/Μεταβάσεις 11/10/2018 Οι τιμές των attributes ενός αντικειμένου μπορεί να αλλάζουν χωρίς να προκαλούν μεταβάσεις καταστάσεων Δημιουργούμε μοντέλα καταστάσεων μόνο για τις κλάσεις που έχουν ενδιαφέρουσες μεταβάσεις καταστάσεων Οι τιμές των attributes ενός αντικειμένου μπορεί να αλλάζουν χωρίς να προκαλούν μεταβάσεις καταστάσεων. Π.χ. ας θεωρήσουμε ένα BankAccount αντικείμενο και ένα σχετικό business rule που λέει ότι οι κρατήσεις επί του λογαριασμού παύουν να υφίστανται αν το υπόλοιπο του λογαριασμού ξεπερνά τα $100000. Μπορούμε να πούμε ότι σε αυτήν την περίπτωση το BankAccount εισέρχεται στην κατάσταση «privileged”, ενώ διαφορετικά είναι στην κατάσταση «normal». 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές – Διάγρ. Καταστάσεων για Invoice Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές – Διάγρ. Καταστάσεων για Invoice 11/10/2018 Unpaid Partly Paid Fully Paid partial payment final payment 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων - Statechart Diagram Ένα διάγραμμα καταστάσεων συνήθως σχετίζεται με μια κλάση αλλά γενικά μπορεί να αποδοθεί και σε άλλες έννοιες μοντελοποίησης (π.χ. use case) Όταν αποδίδεται σε κλάσεις, το διάγραμμα καταστάσεων δείχνει πώς τα αντικείμενα της κλάσης αντιδρούν σε γεγονότα. Πιο συγκεκριμένα: Προσδιορίζει – για κάθε κατάσταση του αντικειμένου – πώς θα αντιδράσει ένα αντικείμενο (action) στη λήψη ενός γεγονότος Το ίδιο αντικείμενο μπορεί να αντιδράσει διαφορετικά στο ίδιο γεγονός ανάλογα με την κατάστασή του Η εκτέλεση του action οδηγεί σε αλλαγή κατάστασης 10 November 2018 UoA - Θώμη Πήλιουρα

Προδιαγραφή Απαιτήσεων - Statechart Diagram Thomi Pilioura Προδιαγραφή Απαιτήσεων - Statechart Diagram 11/10/2018 Μια μετάβαση αποτελείται από 3 μέρη: event (parameters) [guard] / action Π.χ. Button clicked (right_button) [inside the window]/ getConf Event – σύντομο περιστατικό που επηρεάζει το αντικείμενο. Μπορεί να έχει παραμέτρους και guard condition Action – σύντομη ατομική πράξη που εκτελείται όταν πυροδοτείται η μετάβαση Όλα τα μέρη είναι προεριατικά 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Προδιαγραφή Απαιτήσεων Online Αγορές - State Diagram για Order Thomi Pilioura Προδιαγραφή Απαιτήσεων Online Αγορές - State Diagram για Order 11/10/2018 Η κατάσταση “Pending” είναι σύνθετη αποτελείται από εμφωλευμένες καταστάσεις. Η παραγγελία είναι στην “Future Order” κατάσταση όταν ο πελάτης ζητάει να γίνει η παράδοση κάποια στιγμή στο μέλλον αν και υπάρχει διαθέσιμος υπολογιστής στην αποθήκη. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Agenda Online Αγορές – Ανάλυση Προσδιορισμός Απαιτήσεων Thomi Pilioura Agenda 11/10/2018 Online Αγορές – Ανάλυση Προσδιορισμός Απαιτήσεων Προδιαγραφή Απαιτήσεων Online Αγορές – Σχεδιασμός Σχεδιασμός Συστήματος Λεπτομερειακός Σχεδιασμός Στη φάση του σχεδιασμού ασχολούμαστε με τα αρχιτεκτονικά θέματα (package, component, deployment diagrams) και με το λεπτομερειακό σχεδιασμό (collaborations). Επίσης βελτιώνουμε τα μοντέλα ανάλυσης της προηγούμενης φάσης. Στο συγκεκριμένο παράδειγμα δεν ασχολούμαστε με το λεπτομερειακό σχεδιασμό του user interface και της βάσης δεδομένων. 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Σχεδιασμός Συστήματος - Διαγράμματα Thomi Pilioura Σχεδιασμός Συστήματος - Διαγράμματα 11/10/2018 Package Diagram use case packages class packages Component Diagram Deployment Diagram 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Packages Ομαδοποιούν κλάσεις, Use cases ή άλλα στοιχεία μοντελοποίησης Χρήσιμα σε μεγάλα συστήματα 10 November 2018 UoA - Θώμη Πήλιουρα

Σχεδιασμός Συστήματος Online Αγορές - Use case packages Thomi Pilioura Σχεδιασμός Συστήματος Online Αγορές - Use case packages 11/10/2018 Each package will eventually have more use cases than shown (in particular, «extend» and «include» use cases) Αυτή η διαφάνεια δείχνει ένα use case package diagram που περιέχει υπάρχουσες use cases που έχουν παρουσιαστεί στο use case diagram του παραδείγματος και το οποίο διευκολύνει και μελλοντική ανάπτυξη του συστήματος. Έχουν αναγνωριστεί λοιπόν 5 πακέτα και τους έχουν αποδοθεί τα κατάλληλα use cases. Επίσης φαίνονται οι σχέσεις αλληλεξάρτησης μεταξύ των πακέτων 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Σχεδιασμός Συστήματος Online Αγορές - Boundary class packages Thomi Pilioura Σχεδιασμός Συστήματος Online Αγορές - Boundary class packages 11/10/2018 Οι πιο πολλές κλάσεις που ορίστηκαν στη φάση της ανάλυσης αφορούσαν persistent database objects (“business objects”) Πρέπει όμως να οριστούν και application program classes Το configuration του υπολογιστή και η εισαγωγή παραγγελιών απαιτούν Boundary Packages Τα δύο Boundary packages περιέχουν κλάσεις που είναι απαραίτητες για το Computer Configuration GUI και για το Order Entry GUI Τα βελάκια δείχνουν προς την επόμενη διαφάνεια, η οποία επίσης περιλαμβάνει βελάκια προς την επόμενή της διαφάνεια έτσι ώστε από όλες τις διαφάνειες να προκύψει το πλήρες class package diagram 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Σχεδιασμός Συστήματος Online Αγορές - Entity class packages Persistent database classes αντιστοιχούν σε Entity Classes μέσα στο πρόγραμμα Entity Packages αναπαριστούν την in-memory run-time δομή των persistent database classes Περιλαμβάνει και τις Κλάσεις Invoice and Payment 10 November 2018 UoA - Θώμη Πήλιουρα

Σχεδιασμός Συστήματος Online Αγορές - Control class packages Control classes  Control Packages Αντιπροσωπεύουν το application logic συνδέουν boundary and entity classes 10 November 2018 UoA - Θώμη Πήλιουρα

Σχεδιασμός Συστήματος Online Αγορές - DB interface class packages Μεσολαβούν μεταξύ των entity classes και της βάσης δεδομένων Χειρίζονται connections, authorizations, transactions Διατηρούν “meta-information” για το DB schema 10 November 2018 UoA - Θώμη Πήλιουρα

Σχεδιασμός Συστήματος Online Αγορές - Component diagram Συνεκτική λειτουργική μονάδα με καθαρά interfaces Αντικαταστάσιμο μέρος του συστήματος 10 November 2018 UoA - Θώμη Πήλιουρα

Σχεδιασμός Συστήματος Online Αγορές - Deployment Diagram 10 November 2018 UoA - Θώμη Πήλιουρα

Agenda Online Αγορές – Ανάλυση Προσδιορισμός Απαιτήσεων Thomi Pilioura Agenda 11/10/2018 Online Αγορές – Ανάλυση Προσδιορισμός Απαιτήσεων Προδιαγραφή Απαιτήσεων Online Αγορές – Σχεδιασμός Σχεδιασμός Συστήματος Λεπτομερειακός Σχεδιασμός 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Λεπτομερειακός Σχεδιασμός-Διαγράμματα Collaboration Diagram 10 November 2018 UoA - Θώμη Πήλιουρα

Λεπτομερειακός Σχεδιασμός Online Αγορές - Collaboration diagram (1/2) Thomi Pilioura Λεπτομερειακός Σχεδιασμός Online Αγορές - Collaboration diagram (1/2) 11/10/2018 Για το use case “Order Configured Computer” Boundary and control objects [on Submit] incompleteOrder [on Purchase] newOrderClientPage : b_Order ClientPage [on Cancel] refresh : b_Configuration ClientPage : b_Order ClientForm getConfOID(out ConfOID) Το διάγραμμα (χωρισμένο σε δύο μέρη για λόγους αναγνωσιμότητας) εκφράζει τα functional use case requirements. To collaboration ξεκινάει όταν ικανοποιείται το πρώτο pre-condition του use case και ο πελάτης πατάει το Purchase button. Αυτό μοντελοποιείται στο διάγραμμα με το μήνυμα [OnPurchase]newOrderClientPage. Ένα αντικείμενο της κλάσης b_OrderClientPage ικανοποιεί το μήνυμα [OnPurchase]newOrderClientPage. Αυτή η HTML-formatted client page περιέχει ένα «form» object της κλάσης b_OrderClientForm. Τα Attributes αυτής της κλάσης αντιπροσωπεύουν τα input fields της φόρμας, συμπεριλαμβανομένων δύο κουμπιών: Cancel και Submit....... : c_Order ServerPage [on Submit] newOrder 10 November 2018 UoA - Θώμη Πήλιουρα UML Online Shopping Example

Λεπτομερειακός Σχεδιασμός Online Αγορές - Collaboration diagram (2/2) Για το use case “Order Configured Computer” Entity and DB Interface objects [over 15 min] rollbackTransaction : d_ Transaction commitTransaction newOrder(in ConfOID) beginTransaction deleteOrder : e_ Order link(in ConfOID) : e_ newPayment Configuration newCustomer : e_ : e_ Payment Customer emailCustomer 10 November 2018 UoA - Θώμη Πήλιουρα