https://en.wikipedia.org/wiki/gantt_chart http://teamgantt.com/blog/2012/05/gantt-chart-example/

Σχετικά έγγραφα
«Διαχείριση Έργων στη Δημόσια Διοίκηση» Ενότητα 6: Τεχνικές παρακολούθησης (μέρος 1ο) ΕΙΔΙΚΗΣ ΦΑΣΗΣ ΣΠΟΥΔΩΝ 24η ΕΚΠΑΙΔΕΥΤΙΚΗ ΣΕΙΡΑ

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

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

Πνευματικά Δικαιώματα 2013 Ίδρυμα ECDL (ECDL Foundation -

Όλοι οι χρήστες του Turnitin πρέπει να δημιουργήσουν ένα προφίλ χρήστη.

Τα Εργαλεία του Project Management: Δομή Ανάλυσης Εργασιών (Work Breakdown Structure, WBS)

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

Ο επόμενος πίνακας παρουσιάζει τις δραστηριότητες ενός έργου, τις σχέσεις μεταξύ τους, καθώς και τη διάρκειά τους σε εβδομάδες.


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

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

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

turnin Lab4.pro

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

Οδηγίες ενεργοποίησης λογαριασμού στο λογισμικό λογοκλοπής TURNITIN

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

Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer

ΔΙΟΙΚΗΣΗ ΕΡΓΩΝ. Τ Α Ε Ρ Γ Α Λ Ε Ι Α Τ Η ς Δ Ι Α Χ Ε Ι Ρ Ι Σ Η Σ Ε Ρ Γ Ω Ν - WBS. ΡΟΜΠΟΓΙΑΝΝΑΚΗΣ ΙΩΑΝΝΗΣ, PhD.

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Το κείμενο που ακολουθεί αποτελεί επεξεργασία του πρωτότυπου κειμένου του Α. Κάστωρ για την επίλυση των παραδειγμάτων κρίσιμης αλυσίδας που

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

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

turnin Lab2.hs

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΗΜ/ΝΙΑ: / /2016. Δραστηριότητα 1 Δημιουργήστε με το gantter.com ένα διάγραμμα Gantt ακολουθώντας τα παρακάτω βήματα:

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων

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

Διαχείριση έργων. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

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

Management Classes Create Class Create Class Management Classes List of Classes

«Διαχείριση Έργων στη Δημόσια Διοίκηση» Ενότητα 2: Εργασίες σε ένα έργο (μέρος 1ο) ΕΙΔΙΚΗΣ ΦΑΣΗΣ ΣΠΟΥΔΩΝ 24η ΕΚΠΑΙΔΕΥΤΙΚΗ ΣΕΙΡΑ

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

1. Από το κεντρικό site του Ιδρύματος επιλέγουμε το σύνδεσμο "Γραμματείες Τμημάτων".

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Διαχείριση Έργων. Ενότητα 4: Διάγραμμα Gannt

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

UML: Unified modelling language

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Διαχείριση έργων. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διοίκηση Έργων Πληροφορικής - Τηλεπικοινωνιών

Πρόγραμμα όρασης. Στη συνέχεια θα περιγράψουμε πώς δουλεύει το ρομπότ.

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Διοίκηση Έργων Πληροφορικής MS Project Εργαστήριο 1. Μακρή Ελένη-Λασκαρίνα

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΤΕΙ ΚΡΗΤΗΣ ΚΕΝΤΡΙΚΗ ΒΙΒΛΙΟΘΗΚΗ. Η χρήση του. Βήμα προς Βήμα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

MANUAL PRESTASHOP 1.6

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

Management School School Profile Save

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

Σ.Ε.Π. (Σύνθετο Εργαστηριακό Περιβάλλον)

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Λάμπρος Καφίδας Εργασία Σχεδιασμός & Διοίκηση Έργου Ιανουάριος 2005 ΚΕΦΑΛΑΙΟ 1

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ :

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

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

2η Εργαστηριακή Άσκηση

Διαγώνισμα Προσομοι ώσης στην Α.Ε.Π.Π.

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

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

Υπηρεσία Ηλεκτρονικής Επιλογής Συγγραμμάτων

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

Ο Οδηγός γρήγορης εκκίνησης

Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων.

οδικός χάρτης Μπάμπης Γούτσος V6 Δεκέμβριος 2016

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

Τµ. Διοίκησης Επιχειρήσεων/Μεσολόγγι ΤΕΙ Δυτ. Ελλάδας ΤΜΗΜΑΤΟΠΟΙΗΣΗ ΕΡΓΟΥ

Εισαγωγή στην Στατιστική (ΔΕ200Α-210Α)

2η Προγραµµατιστική Εργασία

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Income Tax Calculator. Income Tax Calculator 1 η Φάση. Έκδοση <1.0>

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΠΡΟΛΟΓΟΣ ΕΛΛΗΝΙΚΗΣ ΕΚΔΟΣΗΣ ΕΙΣΑΓΩΓΗ... 15

Διδακτική της Πληροφορικής ΙΙ

Εναλλακτικές εντολές για ανάγνωση/εγγραφή

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

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

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Εργαστήριο Σχεδίασης Δικτύων Υπολογιστών ΘΕΩΡΙΑ 3ου ΕΡΓΑΣΤΗΡΙΟΥ

Ηλεκτρολογικό Σχέδιο στο AutoCAD

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνική Σχεδίαση

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Excel 3: Εφαρμογή γεωργικής λογιστικής

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

Εγχειρίδιο Χρήσης για Διαχειριστές. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΗΧ. Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ MYY301 / ΠΛΥ 308 ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Ημερομηνία Παράδοσης: 20-12-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ ΟΚΤΩΒΡΗΣ 2015 Π. Βασιλειάδης Η προγραμματιστική άσκηση για το μάθημα είναι υποχρεωτική και αφορά τη σχεδίαση, υλοποίηση και ρύθμιση ενός συστήματος λογισμικού. Η εργαστηριακή άσκηση προσφέρει 3 μονάδες στον τελικό βαθμό του μαθήματος και εκπονείται σε ομάδες των 2 προσώπων. Φυσικά, πρέπει να πιάσετε τουλάχιστον τη βάση στην εργασία, όπως και στο διαγώνισμα. Σε περιπτώσεις εξαιρετικών εργασιών, η επίδοση επιβραβεύεται με bonus στον τελικό βαθμό. Το σύστημα πρέπει να υλοποιηθεί σε όλα τα επί μέρους στάδια. Ένα έργο (project) είναι μια οργανωμένη προσπάθεια που έχει σχεδιασθεί κατάλληλα, με σκοπό την υλοποίηση ενός καλά ορισμένου στόχου, που μπορεί να είναι ένα νέο προϊόν, υπηρεσία, ή αποτέλεσμα. Λόγω πολυπλοκότητας, βασική αρχή της διαχείρισης έργων είναι η κατάτμησή τους σε επί μέρους εργασίες και ο χρονοπρογραμματισμός τους. Ένα βασικό εργαλείο διαχείρισης έργων είναι τα διαγράμματα Gantt. Δείτε δύο παραδείγματα διαγραμμάτων Gantt. https://en.wikipedia.org/wiki/gantt_chart http://teamgantt.com/blog/2012/05/gantt-chart-example/ Η βασική ιδέα σε ένα διάγραμμα Gantt είναι ότι χρησιμοποιούμε εργασίες (tasks) ως το βασικό δομικό υλικό ενός έργου. Μία εργασία είναι μια συμπαγής δράση που έχει ένα συγκεκριμένο στόχο στο πλαίσιο του έργου: είναι ένα «βήμα» προς τον τελικό στόχο. Οι εργασίες έχουν ένα ακέραιο αριθμό που τις χαρακτηρίζει και ένα κείμενο που περιγράφει την ουσία του. Οι εργασίες είναι είτε απλές είτε σύνθετες. Οι απλές εργασίες έχουν μια ημερομηνία έναρξης, μια ημερομηνία λήξης (και κατά συνέπεια μια διάρκεια) και ένα κόστος. Οι σύνθετες εργασίες αποτελούνται από άλλες εργασίες (είτε απλές, είτε σύνθετες) τις οποίες ονομάζουμε υποεργασίες και έχουν επίσης τα ίδια στοιχεία, αλλά αυτά υπολογίζονται ως εξής: (α) η μικρότερη από τις ημερομηνίες έναρξης των υποεργασιών είναι η έναρξη της σύνθετης, (β) η μεγαλύτερη από τις ημερομηνίες λήξης των υποεργασιών είναι η λήξη της σύνθετης, και (γ) το κόστος της σύνθετης εργασίας είναι το άθροισμα των επί μέρους κοστών των υποεργασιών της. Στο τέλος μιας εργασίας μπορεί να υπάρχει κάποιο παραδοτέο, που είναι το τελικό προϊόν της εργασίας. Επίσης, στη διάρκεια μιας εργασίας, υπάρχουν ενδιάμεσες ημερομηνίες ορόσημα (milestone) κατά τις οποίες η ομάδα έργου αποτιμά την πρόοδο της εργασίας. Ανά πάσα στιγμή, κάθε εργασία έχει μια κατάσταση. Οι πιθανές καταστάσεις περιγράφονται στο παρακάτω σχήμα (που είναι ένα απλοποιημένο υποσύνολο του https://en.wikipedia.org/wiki/task_management) και είναι οι εξής: (1) Inactive, (2) In-progress, (3) Cancelled, (4) Failed, (5) Successfully Completed. Υπεύθυνος για την αλλαγή κατάστασης είναι ο χρήστης. Last saved: 2015-10-04 1

Επιπλέον, ένα σημαντικό στοιχείο δόμησης του έργου είναι ότι οι εργασίες έχουν προκατόχους (predecessors), ενδεχομένως περισσότερες της μίας. Η έννοια της προκατόχου εργασίας είναι ως εξής: Αν η εργασία Β έχει την εργασία Α ως προκάτοχο, η εργασία Β ΔΕΝ μπορεί να ξεκινήσει αν η Α δεν έχει ολοκληρωθεί. Αυτό αντανακλάται ως περιορισμός στις αντίστοιχες ημερομηνίες: η ημερομηνία έναρξης μιας εξαρτώμενης εργασίας (εδώ: της Β) πρέπει να είναι μεταγενέστερη της ημερομηνίας λήξης όλων των προκατόχων της (εδώ: της Α). Επίσης, για να ξεκινήσει μια εργασία, πρέπει όλες οι προκάτοχοί της να είναι επιτυχώς ολοκληρωθείσες. Για την οπτική αναπαράσταση ενός διαγράμματος Gantt μπορούμε να χρησιμοποιήσουμε ένα διδιάστατο πίνακα. Σαν γραμμές είναι οι εργασίες και σαν στήλες είναι οι χρονικές μονάδες. Εμείς στα πλαίσια αυτής της εργασίας θα θεωρήσουμε το χρόνο ισομορφικό με τους ακέραιους (άρα για σας ο χρόνος είναι μια συνεχόμενη λίστα ακεραίων 1,2,3, χωρίς να μας ενδιαφέρει η φυσική σημασία της μονάδας μέτρησης). Καλείσθε να κατασκευάσετε ένα σύστημα διαχείρισης διαγραμμάτων Gantt. Οι λειτουργίες που πρέπει να υποστηρίζονται είναι: Δημιουργία νέου, κενού project. Πρέπει να δοθεί ένα όνομα στο νέο project. Πρόσθεση νέου task σε project. Πρέπει να καθοριστούν: όλα τα στοιχεία της νέας εργασίας, αν η εν λόγω εργασία εντάσσεται σε κάποια άλλη εργασία ως υποεργασία (και σε ποια), να ορισθούν οι εξαρτήσεις της, να ελεγχθούν όλοι οι περιορισμοί ορθότητας, και να επαναυπολογιστούν όλα τα κόστη και οι διάρκειες. Αν κάποιοι έλεγχοι απαγορεύουν την επιτυχή ολοκλήρωση της παρούσας λειτουργίας, ο χρήστης πρέπει να ερωτάται αν θέλει να σταματήσει την απόπειρα (cancel) ή θέλει να διορθώσει τα στοιχεία, οπότε η διαδικασία ξεκινά από την αρχή. Αλλαγή στοιχείων σε ένα task. Το πιο κοινό σενάριο αλλαγής είναι η αλλαγή status. Αλλά θέλουμε να μπορούμε να αλλάξουμε και σε όλα τα άλλα στοιχεία, πράγμα που συνεπάγεται ότι πρέπει να ελεγχθούν όλοι οι περιορισμοί και να υπολογισθούν εκ νέου όλα τα στοιχεία που πρέπει να υπολογισθούν. Αν κάποιοι έλεγχοι απαγορεύουν την επιτυχή ολοκλήρωση της παρούσας λειτουργίας, ο χρήστης πρέπει να ερωτάται αν θέλει να σταματήσει την απόπειρα (cancel) ή θέλει να διορθώσει τα στοιχεία, οπότε η διαδικασία ξεκινά από την αρχή. Κατασκευή και παρουσίαση απλού report μόνο στο πρώτο επίπεδο. Στο report αυτό μας ενδιαφέρει να παρουσιαστούν μόνο οι εργασίες πρώτου επιπέδου, αυτές δλδ., που δεν είναι υποεργασίες κάποιας άλλης εργασίας. Για κάθε τέτοια εργασία παρουσιάζονται τα πιο βασικά στοιχεία τους (id, περιγραφή, διάρκεια, λίστα προκατόχων). Επίσης παρουσιάζονται και σε μορφή διδιάστατου πίνακα με # στα σημεία που η κάθε εργασία ορίζεται χρονικά. Στο τέλος αναφέρεται η συνολική διάρκεια και το συνολικό κόστος του έργου. Last saved: 2015-10-04 2

Gantt diagram made with Microsoft Project (αυτό εξηγεί γιατί έχουμε μέρες ως μονάδες μέτρησης αντί για λεπτά). Μόνο οι εργασίες πρώτου επιπέδου φαίνονται. Οι σύνθετες εργασίες εμφανίζονται με έντονα γράμματα στον πίνακα αριστερά και μαύρες γραμμές στο διάγραμμα δεξιά. Κατασκευή και παρουσίαση report με zoom-in στις υποεργασίες μιας σύνθετης εργασίας. Το ίδιο με το προηγούμενο, αλλά για μια συγκεκριμένη σύνθετη εργασία που δηλώνει ο χρήστης, ζητείται να απαριθμηθούν και όλες οι υποεργασίες της. Το αντίστοιχο αλλά με την εργασία 9 zoomed-in Κατασκευή και παρουσίαση report με zoom-in σε όλες τις υποεργασίες. Αντίστοιχο με το προηγούμενο, αλλά εδώ παρουσιάζονται όλες οι υποεργασίες αναλυτικά. Zoom in full detail. Αποθήκευση σε απλό κείμενο και html. Θέλουμε μια αναφορά να μπορεί να αποθηκευθεί. Θα υποστηρίξουμε δύο εναλλακτικούς τρόπους αποθήκευσης: (α) απλό κείμενο και (β) html format. Δείτε το παράδειγμα με την εξαγωγή φάσεων στο site του μαθήματος (στα παραδείγματα της ενότητας 6) για το πώς σχεδιάζεται μια τέτοια λύση και πόσο εύκολο είναι να υλοποιηθεί. Φόρτωση από απλό κείμενο. Το σύστημα θα πρέπει να μπορεί να φορτώσει μια αποθηκευμένη αναφορά απλού κειμένου, με zoom-in σε όλες τις υποεργασίες. Αυτό σημαίνει ότι θα σχεδιάσετε πώς ακριβώς θα αποθηκεύεται η αναφορά, ούτως ώστε να μπορείτε να τη διαβάσετε μετά και να φορτώσετε στη μνήμη ένα έργο. Το κομμάτι αυτό είναι κρίσιμης σημασίας, για να μπορείτε να επιταχύνετε το τρέξιμο του προγράμματός σας όσο αυτό είναι υπό κατασκευή, αλλά και για να διευκολύνετε τον έλεγχό του. Έξοδος. Έξοδος από το πρόγραμμα. Ο χρήστης ερωτάται αν θέλει να σώσει το τρέχον project. Last saved: 2015-10-04 3

ID Task Predecessors Info Duration Status 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 Prepare the fry 2 Succ. # # 2 Add olive oil 1 Succ. * 3 Add milk 2 1 Succ. * 4 Turn on the burner (low) 1 1 Succ. # Break eggs and pour into 5 burner 4 2 Succ. # # Steer the mixture to avoid 6 sticking 5 10 In-progress # # # # # # # # # # 7 A little bit of yellow cheese 5 +5 1 Inactive # 8 Salt, pepper 7 1 Inactive # 9 Prepare the bread 7 In-progress # # # # # # # 10 Cut bread 1 Succ. * 11 Warm bread 10 5 In-progress * * * * * 12 Put bread in dish 11 1 Inactive * 13 Serve eggs over the bread 6;9 2 Inactive # # 14 Turn burner off 6;9 1 Inactive # Παράδειγμα κατάστασης ενός project, όπως είναι τη στιγμή 6. Οι σύνθετες εργασίες με έντονα γράμματα και οι υποεργασίες τους φωλιασμένες παραμέσα. Αριστερά ο πίνακας δομής, στη μέση ο πίνακας κατάστασης και δεξιά η οπτική απεικόνιση του χρονοδιαγράμματος. Το χρώμα είναι μόνο για να τονίσει το ότι είμαστε στη στιγμή 6. Τα * είναι για υποεργασίες και τα # για εργασίες πρώτου επιπέδου. Για τις λειτουργίες αποθήκευσης και κατάστασης: Ο πίνακας δομής αρκεί για να περιγράψει τη δομή ενός έργου. Έχουμε κρύψει ημερομηνίες έναρξης, λήξης, κόστη και παραδοτέα. Μαζί με τον πίνακα κατάστασης μπορεί να δώσει ΚΑΙ την κατάσταση ενός έργου αφού αυτό θα έχει ξεκινήσει. Για την οπτικοποίηση: μια απλή λύση είναι να δώσετε τις τρεις πρώτες στήλες (Id, Task, Pred.) του πίνακα δομής και την οπτική απεικόνιση του χρονοδιαγράμματος όπως είναι δεξιά στο σχήμα. Προφανώς, είστε ευπρόσδεκτοι να δώσετε και επιπλέον σύμβολα και στήλες. Επίσης, είστε ευπρόσδεκτοι να δώσετε και γραφικές ή άλλες λύσεις για την οπτικοποίηση. Προσοχή: στις σχετικές λειτουργίες θέλουμε και το συνολικό κόστος και τη συνολική διάρκεια (προσοχή για bugs στον υπολογισμό της) Last saved: 2015-10-04 4

Οδηγίες Για κάθε υποσύστημα, βολεύει να έχετε manager κλάσεις. Αυτές οι κλάσεις θα επιτρέψουν να σχεδιάσετε πιο εύκολα τα υποσυστήματα με βάση τα use cases. Είναι αποδεκτό η manager class να έχει από μια μέθοδο για κάθε use case και να λειτουργεί ως βιτρίνα του υποσυστήματος για το κεντρικό σύστημα, το οποίο καλεί τις εν λόγω μεθόδους κάθε φορά. Εσωτερικά στο υποσύστημα, οι manager classes έχουν συλλογές με τα σχετικά αντικείμενα που τους χρειάζονται και υλοποιούν τα use cases όπως δη. Το σύστημα πρέπει οπωσδήποτε να έχει ένα χωριστό package για την αλληλεπίδραση με το χρήστη το οποίο, το μόνο που επιτρέπεται να κάνει είναι: για κάθε use case, (α) να ζητά τα κατάλληλα στοιχεία (input) από το χρήστη, (β) με βάση αυτό το input να ζητά από το υπόλοιπο σύστημα να εκτελέσει την ουσία της use case, και (γ) να παρουσιάζει το αποτέλεσμα. Τα (β) και (γ) πρακτικά μεταφράζονται στην κλήση μιας μεθόδου και τη λήψη του αποτελέσματός της. Κανένα κομμάτι υπολογισμού, ελέγχου,, δεν πρέπει να εκτελείται από το υποσύστημα αυτό. Εκτός από το να υλοποιήσετε το όλο σύστημα, θα χρειαστεί να σχεδιάσετε από πιο πριν: - Όλα τα use cases αναλυτικά - Όλες τις κλάσεις (σε επίπεδο (α) ανάλυσης στην αρχή και (β) σχεδίασης έπειτα) - Ελέγχους: (α) και unit tests για κάθε κλάση χωριστά, με ελέγχους για τις βασικές μεθόδους, και (β) integration test όπου τα βασικά use cases της εφαρμογής θα ελεγχθούν συνολικά Επιβάλλεται να ακολουθήσετε τις βασικές αρχές ενθυλάκωσης (υποχρεωτικά), χαμηλής σύζευξης, DIP, OCP, abstract coupling, factories κλπ (όσο αυτό είναι εφικτό και εύλογο). Υπόδειγμα αναφοράς: για τα επιμέρους στάδια, μπορείτε να συμπληρώνετε / αναθεωρείτε σταδιακά την αναφορά σας. Για διευκόλυνσή σας, υπάρχει ένα υπόδειγμα στο http://www.cs.uoi.gr/~pvassil/courses/sw_dev/exercises/templatefinalreport.zip Χρονοδιάγραμμα Στη συνέχεια παρατίθενται στάδια της ανάπτυξης, ενδιάμεσες προθεσμίες (milestones) και καταληκτικές ημερομηνίες ολοκλήρωσης (deadlines). [12/10] Εκφώνηση 3 weeks Καταγραφή των Use Cases [01/11:: 23.59] Turnin: DLV1.1: pdf file with all the use cases 3 weeks design of classes && first implementations [22/11:: 23.59] Turnin: DLV2.1: pdf file with the class diagram (προαιρετικά: any other diagrams, too) DLV2.2: ascii file with a list of tests you will perform per class DLV2.3: pdf file with traceability matrix of tests 4 weeks [20/12:: 23.59] ΑΝΕΛΑΣΤΙΚΑ Complete implementation [ΕΝΔΕΧΟΜΕΝΩΣ ΕΞΕΤΑΣΗ ΕΝΔΙΑΜΕΣΩΣ] Turnin : DLV 3.1: tar file with the code for all classes DLV 3.2: FINAL pdf file with all the design and the documentation of the project [~11/01] ΕΞΕΤΑΣΗ Ακριβής ημερομηνία και λεπτομέρειες εξέτασης θα ανακοινωθούν αργότερα Δεν θα ξεπεράσουμε το όριο των Χριστουγέννων, εκτός κι αν προκύψουν ανυπέρβλητες αναποδιές. Η πράξη έχει αποδείξει ότι στις γιορτές οι ομάδες αποσυντονίζονται σε πολύ μεγάλο βαθμό. Έτσι, το deadline της παράδοσης είναι ανελαστικό. Θα πιεστείτε περισσότερο πριν τις γιορτές, αλλά θα φύγετε για τις γιορτές χωρίς το φορτίο του project. ΚΑΛΗ ΕΠΙΤΥΧΙΑ! Last saved: 2015-10-04 5