Εισαγωγή στην Ανάπτυξη Πληροφοριακών Συστημάτων

Σχετικά έγγραφα
Εισαγωγή στην Ανάπτυξη Πληροφοριακών Συστημάτων

Διαχείριση Έργων Ανάπτυξης Πληροφοριακών Συστημάτων

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

Τα Πληροφοριακά Συστήματα Διοίκησης στο Νέο Διοικητικό και Επιχειρησιακό Περιβάλλον

Πληροφορική 2. Τεχνολογία Λογισμικού

Ανάλυση Απαιτήσεων Χρήστη και Καθορισμός Προδιαγραφών

Η Διαδικασία Σχεδιασμού Συστημάτων

Προκαταρκτική Φάση Ανάλυσης

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

Αρχές Προγραμματισμού Υπολογιστών

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

Managing Information. Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business.

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

Εισαγωγή στην Τεχνολογία Λογισμικού

Εισαγωγή στην Τεχνολογία Λογισμικού. Ματίνα Μπίμπη Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων, Πανεπιστήμιο Θεσσαλίας

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Εισαγωγή στην ανάλυση

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

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

ΕΠΛ 435: Αλληλεπίδραση Ανθρώπου Υπολογιστή

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ

Εισαγωγή στη Δασική Πληροφορική

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ενότητα 1 η : Ανάπτυξη Λογισμικού & Προγραμματισμός

Μεθοδολογίες Παραγωγής Λογισµικού

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

UML: Unified modelling language

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

Εισαγωγή. Ανάπτυξη Συστημάτων Λογισμικού. Οργάνωση μαθήματος. #1. Εισαγωγή στον Προγραμματισμό

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

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

Προγραμματισμός Η/Υ. Ενότητα 1: Εισαγωγή στον Προγραμματισμό

Πληροφοριακά Συστήματα, Οργανισμοί και Επιχειρησιακές Διαδικασίες

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

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

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

ΣΧΕΔΙΑΣΗ & ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ

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

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

Σχεδιασμός Επεξεργασίας και Τηλεπεξεργασίας

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

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

Βασίλειος Κοντογιάννης ΠΕ19

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Εισαγωγή στην τεχνολογία λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 1

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

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

Πληροφορική. Ενότητα 1 η : Εισαγωγή. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Διάλεξη 1. Εισαγωγή στην Τεχνολογία Λογισμικού. Χ. Αντωνόπουλος Μ. Μπίμπη

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

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

Ενότητες Γ3.1 - Γ3.2 - Γ3.3

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

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

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

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

Εισαγωγή στην Τεχνολογία Λογισµικού

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

Συστήµατα Τηλεκπαίδευσης: Κύκλος ζωής εκπαιδευτικού υλικού

Εισαγωγή στην Τεχνολογία Λογισµικού

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

Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 1

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

Κεφάλαιο 8 Πληροφοριακά συστήματα. Εφαρμογές Πληροφορικής Κεφ. 8 Καραμαούνας Πολύκαρπος

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

Δόμηση Απαιτήσεων: Μοντελοποίηση Διεργασιών

Λογισμικό Πληροφοριακών Συστημάτων

ΠΛΗΡΟΦΟΡΙΚΗ Γ ΤΑΞΗΣ ΓΕΛ ΚΛΕΙΩ ΣΓΟΥΡΟΠΟΥΛΟΥ. ΣΥΓΧΡΟΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Αντικειμενοστραφής Προγραμματισμός

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 4 : Τεχνολογία λογισμικού. Δρ.

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

Ανάπτυξη πληροφοριακών συστημάτων

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

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ- ΤΜΗΜΑ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΟΙΚΟΝΟΜΙΚΗΣ ΑΝΑΠΤΥΞΗΣ, ΜΑΘΗΜΑ: ΔΙΑΧΕΙΡΙΣΗ ΑΝΘΡΩΠΙΝΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΠΟΡΩΝ- ΧΡΙΣΤΟΣ ΑΠ.

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

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

Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην Τεχνολογία Λογισµικού

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

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

Ανάπτυξη Πληροφοριακών Συστημάτων Διοίκησης

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1)

Συστήματα Πληροφοριών Διοίκησης

Σχεδιαστής Ιστοσελίδων

Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ΔΙΑΓΩΝΙΣΜΟΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΚΑΙΝΟΤΟΜΙΑ ΤΕΚΕ. Κουτσίδης Γιώργος Επιθεωρητής Μέσης Εκπαίδευσης (ΕΜΕ) Σχεδιασμού και Τεχνολογίας

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

Μαθηµατική. Μοντελοποίηση

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

Προγραμματισμός και Επιλογή Συστημάτων

Transcript:

Ενότητα 1 Εισαγωγή στην Ανάπτυξη Πληροφοριακών Συστημάτων Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-1 Στόχοι & αντικείμενο ενότητας Ο ρόλος του Αναλυτή Συστημάτων Κύκλος Ζωής Ανάπτυξης Πληροφοριακών Συστημάτων Τεχνολογία Λογισμικού Κύκλος Ζωής Λογισμικού Μεθοδολογίες Ανάπτυξης Πληροφοριακών Συστημάτων Οργάνωση Ομάδων και Διαχείριση Έργων Παραγωγής Λογισμικού CASE (Computer-Aided Software Engineering) Τεχνολογία Λογισμικού Υποβοηθούμενη από τον Η/Υ Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-2 1

Ι. Ο Αναλυτής Συστημάτων Ο άνθρωπος-κλειδί για την ανάπτυξη ενός ΠΣ Αναζήτηση και απόκτηση πληροφοριών Ανάλυση απόδοσης συστήματος σε συνάρτηση με τους στόχους που είχε θέσει η διοίκηση Ανάπτυξη και αξιολόγηση εναλλακτικών σεναρίων σχετικά με τη βελτίωση/αναδιοργάνωση ενός συστήματος Σχεδιασμός νέου συστήματος σύμφωνα με τις απαιτήσεις που καθορίστηκαν Υλοποίηση νέου συστήματος Συνδυάζει παραδοσιακές ειδικότητες Μηχανικού Μελέτης Εργασίας Ειδικού Οργάνωσης & Μεθόδων Επιχειρησιακού Ερευνητή Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-3 Ο ρόλος του Αναλυτή Συστημάτων (ΑΣ) Πολλαπλός ρόλος Σύμβουλος, εκπαιδευτής, «μεταφορέας» απόψεων, επίλυση προβλημάτων, Υπάλληλοι Διοίκηση Διευθυντές Τμημάτων Ελεγκτές Εξωτερικοί Σύμβουλοι Τεχνικοί Προγραμματιστές Χειριστές Η/Υ Άλλοι ΑΣ Υπεύθυνοι ΒΔ Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-4 2

Προσόντα ενός Αναλυτή Συστημάτων Πρακτική γνώση τεχνικών επεξεργασίας πληροφοριών Τεχνικές προγραμματισμού Εργαλεία ανάπτυξης λογισμικού Πακέτα εφαρμογών Εξοπλισμός πληροφορικής Γενικές γνώσεις διοίκησης και διαχείρισης επιχειρήσεων (management) Επικοινωνία με ειδικούς, κατανόηση προβλημάτων και αναγκών κάθε λειτουργίας Ικανότητες στην επίλυση προβλημάτων Ανάλυση και επίλυση του προβλήματος Δημιουργικότητα, φαντασία, Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-5 Αναλυτές Συστημάτων vs. Προγραμματιστές Συμμετοχή σε φάσεις ΑΣ Προγραμματιστής Μελέτη σκοπιμότητας Πλήρης συμμετοχή - Καθορισμός απαιτήσεων Πλήρης συμμετοχή - Σχεδιασμός Ενεργός συμμετοχή Μερική συμμετοχή Ανάπτυξη προγραμμάτων Ενεργός συμμετοχή Πλήρης συμμετοχή Εγκατάσταση Ενεργός συμμετοχή Μερική συμμετοχή Λειτουργία - - Συντήρηση Ενεργός συμμετοχή Συμμετοχή (υλοποίηση) Σχέσεις με άλλους Πολυάριθμες & Περιορισμένες πολύπλοκες Συμμετοχή στις αποφάσεις Καθοριστική Χαμηλή έως ανύπαρκτη Προσόντα Αναλυτική σκέψη Τεχνικές γνώσεις Τεχνικές γνώσεις Πειθαρχία Επικοινωνία Υπομονή Πηγή: Β. Λαοπόδη: "Ανάπτυξη Πληροφοριακών Συστημάτων - Ανάλυση και Σχεδιασμός Συστημάτων", Εκδόσεις Νέων Τεχνολογιών, Αθήνα, 1996. Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-6 3

Περί επίλυσης προβλημάτων Π(Φυσικές Συνθήκες, Δεδομένα) Πρόβλημα Ευκαιρία (opportunity) Οδηγία (directive) Στάδια επίλυσης Αναπαράσταση Υπολογισμός Διερμηνεία Είδη προβλημάτων Κανονικά Άλυτα «Ανοικτά» Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-7 ΙΙ. Κύκλος Ζωής Ανάπτυξης ΠΣ Η πορεία που ακολουθεί η ανάπτυξη ενός συστήματος από τη φάση του εντοπισμού του προβλήματος μέχρι τη λειτουργία του κατάλληλου ΠΣ Ανάλυση Σχεδιασμός Υλοποίηση Τελική φάση Προκαταρκτική Φάση Σχέδιο ΠΣ Μελέτη Σκοπιμότητας & Επιλογή εφαρμογής Καθορισμός απαιτήσεων Λογικός Φυσικός Ανάπτυξη προγραμμάτων Έλεγχος συστήματος Εγκατάσταση Λειτουργία & Συντήρηση Αξιολόγηση & αναθεώρηση Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-8 4

Τεχνολογία Λογισμικού (Software( Engineering) Η συστηματική εφαρμογή διαδικασιών, μεθόδων, εργαλείων και τεχνικών για την επίτευξη μιας καθορισμένης απαίτησης ενός συστήματος λογισμικού Ιστορικά στοιχεία 1968 NATO Conference Στόχος: η επίλυση της «κρίσης» του λογισμικού (Software Crisis) Χτίσιμο μιας γέφυρας vs. «Χτίσιμο» ενός λειτουργικού συστήματος Τι γίνεται σε περίπτωση κατάρρευσης (collapse); perfect vs. imperfect engineering Πολυπλοκότητα Συντήρηση Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-9 Τεχνολογία Λογισμικού (συν.) Δομή Τεχνολογίας Λογισμικού Ανάπτυξη Διαχείριση Μέτρηση μεγεθών Συντήρηση Ανάλυση Σχεδίαση Προγραμματισμός Έλεγχος Σχεδίαση / Πρόβλεψη / Έλεγχος Έργου Ποιοτική εξασφάλιση Διαχείριση Σύνθεσης Συστήματος Αξιοπιστία Επεκτασιμότητα Ευχρηστία Ευελιξία Διόρθωση λαθών Προσαρμογή Τελειοποίηση Επαναχρησιμοποίηση Πηγή: Β. Λαοπόδη: "Ανάπτυξη Πληροφοριακών Συστημάτων - Ανάλυση και Σχεδιασμός Συστημάτων", Εκδόσεις Νέων Τεχνολογιών, Αθήνα, 1996. Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-10 5

Τεχνολογία Λογισμικού (συν.) Παράδειγμα: Οικονομικά θέματα Αξίζει να θέσουμε σε εφαρμογή μια νέα μέθοδο κωδικοποίησης ΜΕΚ2, η οποία είναι 10% γρηγορότερη από τη μέθοδο ΜΕΚ1 που εφαρμόζουμε ως σήμερα; Κοινή λογική: Φυσικά! Τεχνολόγος Λογισμικού: Τι επιπτώσεις θα έχει μια τέτοια απόφαση σε θέματα συντήρησης του λογισμικού; Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-11 Κύκλος Ζωής Λογισμικού (Software( Life Cycle) Ο τρόπος που παράγουμε λογισμικό. Περιλαμβάνει: μοντέλο κύκλου ζωής managers, ειδικούς, προγραμματιστές,... εργαλεία ανάπτυξης λογισμικού (CASE) Βασικές φάσεις κύκλου ζωής Ανάλυσης Απαιτήσεων (Requirements) Καθορισμού Προδιαγραφών (Specification) Σχεδιασμού (Design) Υλοποίησης (Implementation) Συνένωσης Κώδικα (Integration) Συντήρησης (Maintenance) Απόσυρσης (Retirement) Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-12 6

Κύκλος Ζωής Λογισμικού Βασικές έννοιες Έλεγχος (testing) (verification) Στο τέλος κάθε φάσης Επικύρωση (validation) Πριν την παράδοση του προϊόντος στον πελάτη Τεκμηρίωση (documentation) Πότε; Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-13 Κύκλος Ζωής Λογισμικού (συν.) Κόστη κάθε φάσης Πηγή: "Classical and Object- Oriented Software Engineering with UML and Java", Stephen R. Schach, McGraw-Hill, 4th ed., 1999. Διαφορετικές προσεγγίσεις ως προς: Τεκμηρίωση (documentation) Έλεγχο (testing) Συντήρηση (maintenance) Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-14 7

Ανάλυση Απαιτήσεων Προϋπόθεση Η διαδικασία θεωρείται εύλογη οικονομικά Αναλυτική διερεύνηση του προβλήματος Κατανόηση του τι χρειάζεται και όχι τι θέλει ο πελάτης Καταγραφή περιορισμών (constraints) Περαιτέρω ανάλυση και "εκλέπτυνση" του προβλήματος Είναι το προϊόν τεχνικά εφικτό; Γίνεται στα πλαίσια του budget του πελάτη; Βασικός έλεγχος φάσης απαιτήσεων Γρήγορο πρωτότυπο (prototype) Διασφάλιση Ποιότητας Λογισμικού (software quality) Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-15 Καθορισμός Προδιαγραφών Τα σχετικά έγγραφα έχουν νομική υπόσταση Πρέπει να συμπληρωθούν έτσι ώστε να καθορίζουν επακριβώς το πρόβλημα Οι προδιαγραφές δεν πρέπει να είναι: Διφορούμενες, ημιτελείς, αντιφατικές Μετά τη συμπλήρωση των σχετικών εγγράφων Αναλυτικός σχεδιασμός παραγωγής και υπολογισμός κόστους Software product management plan (SPMP) Παραδοτέα (deliverables), βασικά χρονικά σημεία (milestones), budget Έλεγχος φάσης ορισμού προδιαγραφών Σωστή δόμηση Ανασκόπηση Έλεγχος του SPMP Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-16 8

Σχεδιασμός Βασική διαφορά: Προδιαγραφές τι; Σχεδιασμός πως; Καθορισμός δομικών ενοτήτων (modules) συστήματος και της μεταξύ τους επικοινωνίας (architectural/gross design) Επιλογή αλγορίθμων, δομών δεδομένων και ροών δεδομένων (detailed design) Καταγραφή των σχετικών αποφάσεων Περιπτώσεις dead-end (backtrack and redesign) Συντήρηση Ιδανικά, ο σχεδιασμός θα πρέπει να είναι «open-ended» Έλεγχος φάσης σχεδιασμού Αντιστοίχιση με προδιαγραφές Αναζήτηση λαθών λογικής, διαπροσωπείας (interface) μεταξύ των ενοτήτων, απουσίας exception handling,... Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-17 Υλοποίηση Υλοποίηση του αναλυτικού σχεδιασμού Γράψιμο κώδικα Τεκμηρίωση Σχόλια (comments) στον κώδικα Επιπλέον: ανάλυση περιπτώσεων, αποτελέσματα,... Έλεγχος φάσης υλοποίησης Ανασκόπηση κώδικα (code review) Test cases Άτυπος έλεγχος (informal testing) desk checking Τυπικός έλεγχος (formal testing) Τμήμα Διασφάλισης Ποιότητας Λογισμικού (Software Quality Assurance Group) Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-18 9

Συνένωση Κώδικα Συνένωση δομικών ενοτήτων λογισμικού και έλεγχος σωστής λειτουργίας του προϊόντος ως ενιαία οντότητα Υλοποίηση και συνένωση κώδικα πρέπει να γίνονται παράλληλα Έλεγχος φάσης Λειτουργικότητα έναντι προδιαγραφών, περιορισμοί, ορθότητα, αξιοπιστία, "ευρωστία", συμβατότητα με άλλο λογισμικό,... Έλεγχος αποδοχής (acceptance testing) στον πελάτη, με πραγματικά δεδομένα Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-19 Συντήρηση Περιλαμβάνει οποιαδήποτε αλλαγή αφότου ο πελάτης έχει παραλάβει το προϊόν λογισμικού Πρέπει πάντα να θεωρείται ως αναπόσπαστο τμήμα της διαδικασίας ανάπτυξης λογισμικού Κοστίζει περισσότερο απ' ότι όλες οι άλλες φάσεις μαζί Βασικό πρόβλημα η έλλειψη (καλής) τεκμηρίωσης Έλεγχοι φάσης Όχι μόνο αν έγιναν οι απαιτούμενες αλλαγές, αλλά και αν αυτές επέφεραν κάποιες άλλες, ανεπιθύμητες αλλαγές (regression testing) Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-20 10

Απόσυρση Το «καλό» λογισμικό συντηρείται Το λογισμικό γράφεται από την αρχή όταν: απαιτούνται δραστικές αλλαγές στο σχεδιασμό του τελικού προϊόντος η συντήρηση καταντά αδύνατη ή ασύμφορη αντικατασταθεί το hardware ή λειτουργικό σύστημα η τεκμηρίωση είναι ανύπαρκτη, ελλιπής ή ανακριβής Πραγματική (ολική) απόσυρση ενός προϊόντος είναι σπάνιο φαινόμενο Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-21 ΙΙΙ. Μεθοδολογίες Ανάπτυξης ΠΣ Μέθοδος Κανονικός και συστηματικός τρόπος ή μέσο για να εκτελεσθεί μια εργασία ακολουθώντας μια σειρά διαδικασιών, σύμφωνα με ένα αναλυτικό και λογικά διαταγμένο σχέδιο Μεθοδολογία Το σύστημα αρχών, πρακτικών και διαδικασιών που εφαρμόζονται σε ένα συγκεκριμένο κλάδο γνώσης ΑΣ μέσω μεθοδολογίας μπορεί να: Διερευνήσει συστηματικά μια επιχείρηση Τεκμηριώσει πλήρως και με ακρίβεια την παραπάνω διερεύνηση Εξάγει τεκμηριωμένα συμπεράσματα και προβεί σε συστάσεις Σχεδιάσει το κατάλληλο ΠΣ Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-22 11

Αντικειμενοστραφής vs. Δομημένη Προσέγγιση Η δομημένη προσέγγιση (structured paradigm) είχε αρχικά μεγάλη απήχηση Επιτρεπόμενες δομές ελέγχου: συνέχειας (sequence), επιλογής (selection) και επανάληψης (repetition) Άρχισε να αποτυγχάνει όσο τα προϊόντα λογισμικού μεγάλωναν (> 50.000 γραμμές κώδικα) Προβλήματα συντήρησης (φτάνουν το 80% της ολικής προσπάθειας σήμερα) Αιτία: οι δομημένες μέθοδοι είναι: "action oriented", π.χ. διαγράμματα ροής δεδομένων, ή "data oriented", π.χ. entity-relationship diagrams αλλά όχι και τα δύο μαζί Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-23 Αντικειμενοστραφής vs. Δομημένη Προσέγγιση (συν.) Αντικειμενοστραφής προσέγγιση Data και actions είναι εξίσου σημαντικά Αντικείμενο (object): Συστατικό του λογισμικού που "αντιμετωπίζει" ταυτόχρονα τα δεδομένα (data) και τις διεργασίες (actions) που λαμβάνουν χώρα πάνω σε αυτά τα δεδομένα Παράδειγμα: Τραπεζικός λογαριασμός data: account balance actions: deposit, withdraw, determine balance Δομημένη προσέγγιση: απότομη μετάβαση ανάμεσα στην ανάλυση (τι θα φτιαχτεί) και το σχεδιασμό (πώς θα φτιαχτεί) Αντικειμενοστραφής προσέγγιση: η έννοια του αντικειμένου εισέρχεται νωρίς, από τις πρώτες φάσεις του κύκλου ζωής του προϊόντος Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-24 12

Μοντέλα Κύκλου Ζωής Λογισμικού - Γενικά Αφορούν τη σειρά των βημάτων μέσω των οποίων ένα προϊόν λογισμικού αναπτύσσεται Παρέχουν οδηγίες για τις εργασίες που πρέπει να γίνουν, τη χρονική τους σειρά και τα κριτήρια μετάβασης από τη μία στην άλλη Υπάρχει ποικιλία μοντέλων Όλα έχουν δυνατά σημεία και αδύνατα σημεία Κριτήρια επιλογής οργάνωση management προσωπικό προϊόν Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-25 Μοντέλο build and fix Ανάπτυξη πρώτης έκδοσης (version) Τροποποίηση μέχρι να ικανοποιηθεί ο πελάτης Ανάπτυξη Συντήρηση Κατάσταση λειτουργίας Δεν γίνεται καθορισμός προδιαγραφών Απόσυρση Δεν γίνεται σχεδιασμός Δουλεύει καλά μόνο σε περιπτώσεις που το λογισμικό δεν ξεπερνά τις 100-200 γραμμές κώδικα Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-26 13

Μοντέλο καταρράκτη (waterfall( model) Ανάλυση απαιτήσεων Αλλαγμένες απαιτήσεις Καθορισμός προδιαγραφών Σχεδιασμός Ανάπτυξη Συντήρηση Υλοποίηση Έλεγχος Συνένωση κώδικα Έλεγχος Κατάσταση λειτουργίας Απόσυρση Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-27 Μοντέλο καταρράκτη (συν.) Βρόχοι ανατροφοδότησης (feedback loops) "Οδηγείται" από την τεκμηρίωση (documentationdriven) Καμία φάση δεν θεωρείται τελειωμένη πριν γραφεί και εγκριθεί η τεκμηρίωσή της Πλεονεκτήματα τεκμηρίωση ευκολότερη συντήρηση Μειονεκτήματα Ορισμοί Προδιαγραφών Ανάλυση απαιτήσεων Καθορισμός προδιαγραφών Σχεδιασμός Υλοποίηση Έλεγχος Συνένωση κώδικα Έλεγχος Αλλαγμένες απαιτήσεις Κατάσταση λειτουργίας Απόσυρση Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-28 14

Μοντέλο ανάπτυξης γρήγορου πρωτοτύπου Ανάπτυξη γρήγορου πρωτοτύπου Αλλαγμένες απαιτήσεις Καθορισμός προδιαγραφών Σχεδιασμός Ανάπτυξη Συντήρηση Υλοποίηση Έλεγχος Συνένωση κώδικα Έλεγχος Κατάσταση λειτουργίας Απόσυρση Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-29 Μοντέλο ανάπτυξης γρήγορου πρωτοτύπου (συν.) Η ανάπτυξη του προϊόντος είναι γραμμική Ανάπτυξη γρήγορου πρωτοτύπου (rapid prototyping) γρήγορη μετατροπή Βασικά σημεία Δεν φτιάχνεται το προϊόν αυτό καθεαυτό Η ανάπτυξη γρήγορου πρωτοτύπου μπορεί να αντικαταστήσει τη φάση του καθορισμού προδιαγραφών, αλλά ποτέ αυτή του σχεδιασμού Μοντέλο καταρράκτη κάνε κάτι σωστά με την πρώτη Γρήγορο πρωτότυπο συχνές αλλαγές και μετά απόσυρση Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-30 15

Συγκριτική θεώρηση μοντέλων - Συμπεράσματα Μοντέλο καταρράκτη Επιτυχημένο Ανάγκες πελατών - είναι αυτό που ήθελαν; Μοντέλο γρήγορου πρωτοτύπου Υπάρχουν ακόμα αμφιβολίες Έχει ιδιαίτερα προβλήματα Λύση Rapid prototyping για τη φάση των απαιτήσεων Waterfall για όλες τις άλλες Γενικά Καλύτερη λύση είναι σχεδόν πάντα ένα "mix-and-match" μοντέλο Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-31 IV. Οργάνωση Ομάδων και Διαχείριση Έργων Γενικό πρόβλημα Προϊόν λογισμικού προς παράδοση σε 3 μήνες χρειάζεται ένα ανθρωποέτος προγραμματισμού Μπορεί να ανατεθεί σε 4 προγραμματιστές; Πιθανή περάτωση; Σε κάτι λιγότερο από ένα χρόνο Ποιότητα; Σίγουρα χαμηλότερη Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-32 16

Καταμερισμός εργασίας (task( sharing) Ένας αγρότης τελειώνει με το μάζεμα των ελιών του σε 15 μέρες, οπότε δεκαπέντε αγρότες μπορούν να μαζέψουν τις ίδιες ελιές σε μία μέρα Μια γυναίκα γεννά ένα παιδί σε 9 μήνες, αλλά εννιά γυναίκες δεν μπορούν να γεννήσουν το ίδιο παιδί σε ένα μήνα Αντίθετα με το μάζεμα των ελιών, τα μέλη μιας ομάδας παραγωγής λογισμικού πρέπει να αλληλεπιδρούν με κάποιο αποδοτικό και λογικό τρόπο Αντίθετα με τη γέννηση ενός παιδιού, μπορούμε να κατανέμουμε τη διαδικασία παραγωγής λογισμικού στα μέλη μιας ομάδας Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-33 Οργάνωση ομάδας παραγωγής λογισμικού Παράδειγμα: Δύο προγραμματιστές Α και Β γράφουν κώδικα για δύο modules m1 και m2. Τι λάθη μπορούν να γίνουν; Και οι δύο μπορεί πιθανά να ασχοληθούν με το m1, αγνοώντας το m2 Έστω ότι ο Α γράφει κώδικα για το m1, και ο Β για το m2. Όταν το m1 καλεί το m2, περνά 4 παραμέτρους. Το m2 όμως απαιτεί 5 παραμέτρους Επίσης, η σειρά των παραμέτρων στα m1 και m2 μπορεί να είναι διαφορετική Ή ακόμα, η σειρά μπορεί να είναι η ίδια, αλλά οι τύποι των δεδομένων να είναι διαφορετικοί Οργάνωση τέτοιων ομάδων είναι θέμα management Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-34 17

Προβλήματα επικοινωνίας Παράδειγμα: Τρεις προγραμματιστές δουλεύουν σε ένα project. Η ημερομηνία παράδοσης πλησιάζει, αλλά ο κώδικας δεν είναι έτοιμος. Προφανής λύση: πρόσθεσε έναν 4ο προγραμματιστή Οι άλλοι τρεις πρέπει να εξηγήσουν αναλυτικά τι έχει γίνει μέχρι τώρα και τι είναι ακόμα ατελές πρ1 πρ4 πρ2 πρ3 Νόμος του Brooks: Προσθέτοντας προσωπικό σε μια ομάδα, όταν το προϊόν είναι καθυστερημένο χρονικά, οδηγεί στην περαιτέρω καθυστέρηση του προϊόντος αυτού Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-35 Διαχείριση Έργων (project( management) Οργάνωση, Σχεδιασμός Παραγωγής και Χρονικός Προγραμματισμός ενός έργου ανάπτυξης λογισμικού Έργα με καλή διαχείριση μπορεί να αποτύχουν. Έργα με κακή διαχείριση αποτυγχάνουν σίγουρα Ιδιαιτερότητες Διαχείρισης Έργων Λογισμικού προϊόν λογισμικού: μη καλά προσδιορισμένο δεν υπάρχουν τυποποιημένες διαδικασίες ανάπτυξης "one-off" projects Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-36 18

Γράψιμο πρότασης Κοστολόγηση Έργου Δραστηριότητες διαχείρισης Σχεδιασμός Παραγωγής και Χρονικός Προγραμματισμός Έργου Επιλογή Προσωπικού Budget; Άτομα με εμπειρία; Εκπαίδευση; Επίβλεψη Έργου 4/7/94 Αξιολόγηση Προόδου του Έργου Ετοιμασία Αναφορών - Παρουσιάσεων start 10 days T4 8 days T1 15 days T2 18/7/94 M5 14/7/94 15 days 25/7/94 M3 25/7/94 M2 M1 T7 T3 5 days T6 20 days 10 days T5 25 days T8 15 days T9 4/8/94 25/8/94 M4 M6 7 days T11 11/8/94 5/9/94 M7 M8 15 days T10 10 days T12 Finish 19/9/94 Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-37 V. Computer-Aided Software Engineering Σκοπός Υποστήριξη σε κάθε φάση του κύκλου ζωής Είναι computer-aided και όχι computer-automated Εργαλεία Data flow diagrams Entity-relationship diagrams Module-interconnection diagrams Petri nets Structure charts Πλεονεκτήματα Ταχύτερη ανάπτυξη προϊόντος Λιγότερα λάθη Ευκολότερη συντήρηση C: Customer P: Purchaser S1: Seller Sn: Seller Mn: Merchant purchinitmsg custspecupdreqmsg custspecupdansmsg custdecismsg offerreqmsg offerpropmsg custdecismsg offerreqmsg merspecupdreqmsg offerpropmsg custdecismsg merspecupdansmsg custdecismsg Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-38 19

Μοντελοποίηση σε UML Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-39 Μοντελοποίηση σε UML (συν.) Πληροφοριακά Συστήματα Διοίκησης ΙI Ι Διδάσκων: Νίκος Καρακαπιλίδης 1-40 20