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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Tεχνολογία Λογισµικού I"

Transcript

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

2

3 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα AΡΧΕΣ TΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος A' Tεχνολογία Λογισµικού I BAΣIΛEIOΣ BEΣKOYKHΣ ιδάκτωρ Hλεκτρολόγος Mηχανικός και Mηχανικός Yπολογιστών ΠATPA 2000

4 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα APXEΣ TEXNOΛOΓIAΣ ΛOΓIΣMIKOY Τόµος A' Tεχνολογία Λογισµικού I Συγγραφή BAΣIΛEIOΣ BEΣKOYKHΣ ιδάκτωρ Hλεκτρολόγος Mηχανικός και Mηχανικός Yπολογιστών Κριτική Ανάγνωση AXIΛΛEAΣ KAMEAΣ ρ Mηχανικός H/Y και Πληροφορικής Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του τόµου ΠANAΓIΩTHΣ ΠINTEΛAΣ Καθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Πατρών Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση HΛIAΣ ΣTAYPOΠOYΛOΣ Γλωσσική Επιµέλεια IΩANNHΣ ΓAΛANOΠOYΛOΣ Τεχνική Επιµέλεια ΕΣΠΙ ΕΚ ΟΤΙΚΗ Ε.Π.Ε. Καλλιτεχνική Επιµέλεια Σελιδοποίηση TYPORAMA Συντονισµός ανάπτυξης εκπαιδευτικού υλικού και γενική επιµέλεια των εκδόσεων ΟΜΑ Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ / ISBN: Kωδικός Έκδοσης: ΠΛH 11/1 Copyright 2000 για την Ελλάδα και όλο τον κόσµο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Οδός Παπαφλέσσα & Υψηλάντη, Πάτρα Τηλ: (0610) , Φαξ: (0610) Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.

5 ÂÚÈÂ fiìâó Πρόλογος... 9 K º π 1 ÓˆÚÈÌ ÌÂ ÙËÓ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Yπολογιστές και Λογισµικό Tεχνικές Kατασκευές και Λογισµικό Kρίση Λογισµικού Tεχνολογία Λογισµικού Tο Λογισµικό ως µέρος συστηµάτων Tο Λογισµικό ως προϊόν Συστατικά στοιχεία Λογισµικού Σύνοψη κεφαλαίου K º π 2 MÔÓÙ Ï K ÎÏÔ Zˆ ÔÁÈÛÌÈÎÔ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις H έννοια του µοντέλου κύκλου ζωής Το µοντέλο του καταρράκτη Το µοντέλο πρωτοτυποποίησης Tο µοντέλο λειτουργικής επαύξησης Tο σπειροειδές µοντέλο Tο µοντέλο του πίδακα Σύγχρονα µοντέλα κύκλου ζωής λογισµικού Περιγραφή διαδικασιών ανάπτυξης και προϊόντων λογισµικού Σύνοψη κεφαλαίου... 48

6 6 TEXNO O IA O I MIKOY I K º π 3 ÚÔ È ÁÚ Ê Aapple ÈÙ ÛÂˆÓ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις H έννοια της απαίτησης από το λογισµικό Mηχανική απαιτήσεων Aνάλυση και προδιαγραφή απαιτήσεων Kαταγραφή των απαιτήσεων από το λογισµικό Προβλήµατα στον προσδιορισµό απαιτήσεων Σύνοψη κεφαλαίου K º π 4  ÛË Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Σκοπός της σχεδίασης Tεχνοτροπίες σχεδίασης Aντικείµενο και αποτελέσµατα της σχεδίασης ιατάξεις λογισµικού Aρχιτεκτονική σχεδίαση Λεπτοµερής σχεδίαση µονάδων Σχεδίαση δεδοµένων Σύνοψη κεφαλαίου K º π 5 Ú ÁˆÁ ËÁ Ô KÒ ÈÎ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Από τη σχεδίαση στην κωδικοποίηση Eπιθυµητά χαρακτηριστικά του πηγαίου κώδικα Γλώσσες προγραµµατισµού Τεχνικές συγγραφής πηγαίου κώδικα Επαναχρησιµοποίηση µονάδων προγράµµατος Σύνοψη κεφαλαίου

7 EPIEXOMENA 7 K º π 6 KÂÊ Ï ÈÔ 6: ŒÏÂÁ Ô Î È ÈfiÚıˆÛË ÛÊ ÏÌ ÙˆÓ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Γενικό πλαίσιο ελέγχου Προγραµµατισµός του ελέγχου Tεχνικές ελέγχου Eκτέλεση ελέγχου Aναφορές ελέγχου ιόρθωση σφαλµάτων Σύγχρονα εργαλεία ελέγχου Σύνοψη κεφαλαίου Γλωσσάρι όρων Γλωσσάρι όρων Γλωσσάρι όρων Προτεινόµενη βιβλιογραφία Βιβλιογραφία για περαιτέρω ανάγνωση Eπίλογος

8

9 ÚfiÏÔÁÔ Φίλε αναγνώστη, Το βιβλίο που κρατάς είναι το πρώτο από τα εκπαιδευτικά εγχειρίδια που θα χρησιµοποιήσεις στο πρόγραµµα σπουδών Πληροφορικής του Ελληνικού Ανοικτού Πανεπιστηµίου και ειδικότερα στη Θεµατική Ενότητα «Αρχές Τεχνολογίας Λογισµικού». Σκοπός του βιβλίου είναι να σε συνοδέψει στην αποκάλυψη µιας νέας, πολυσυζητηµένης και συνάµα συναρπαστικής περιοχής της επιστήµης της Μηχανικής (Engineering), η οποία στα ελληνικά επικράτησε να αποκαλείται «Τεχνολογία Λογισµικού» (Software Engineering). Στις µέρες µας όλοι µιλούν για την επανάσταση της πληροφορικής και των τηλεπικοινωνιών, για τις σύγχρονες εφαρµογές των υπολογιστών, που θα αλλάξουν τη ζωή µας, για το Internet και τις τεχνικές αλλά και κοινωνικές πλευρές της διάδοσής του. Η επιστήµη των υπολογιστών έχει, αναµφίβολα, προοδεύσει δραµατικά. Τίποτα όµως δε θα µπορούσε να είναι ορατό και εφαρ- µόσιµο σε ευρεία κλίµακα, αν δεν υπήρχε το κατάλληλο λογισµικό. Το λογισµικό είναι εκείνο το συστατικό που, αν και το ίδιο δεν έχει χειροπιαστή υπόσταση, µπορεί να καταστήσει µια υπολογιστική µηχανή χρήσιµη στον άνθρωπο. Όσο περισσότερο αναπτύσσονται οι ηλεκτρονικοί υπολογιστές, όσο περισσότερες δυνατότητες αποκτούν, τόσο περισσότερες γίνονται οι απαιτήσεις του ανθρώπου από αυτούς, τόσο περισσότερο σύνθετες εργασίες τους αναθέτουµε. Η ικανοποίηση των απαιτήσεων αυτών γίνεται µε τη βοήθεια του λογισµικού, η πολυπλοκότητα του οποίου αναπόφευκτα συνεχώς και αυξάνεται. Αν συνδυάσει κανείς το γεγονός ότι το λογισµικό λειτουργεί σε υπολογιστικές µηχανές, οι οποίες συνεχώς εξελίσσονται και ότι ικανοποιεί απαιτήσεις οι οποίες γίνονται ολοένα περισσότερες, πιο πολύπλοκες και µεταβάλλονται ταχύτατα µε το χρόνο, µε τη µη χειροπιαστή φύση του λογισµικού, τότε µπορεί εύκολα να υποψιαστεί ότι η κατασκευή του είναι από µόνη της µια ιδιαίτερα δύσκολη υπόθεση. Πράγµατι, από τα πρώτα χρόνια της διάδοσης των υπολογιστών, όχι ακόµα σε ευρεία κλίµακα, εκδηλώθηκαν σηµαντικά προβλήµατα στην κατασκευή λογισµικού. Είναι χαρακτηριστικό ότι ο όρος «Τεχνολογία Λογισµικού» (Software Engineering) εισήχθη για πρώτη φορά µαζί µε τον όρο «Κρίση Λογισµικού» (Software Crisis), το Έκτοτε, οι κατασκευαστές λογισµικού και οι ακαδηµαϊκοί ερευνητές προσπαθούν να προτείνουν τρόπους ώστε να γίνεται σωστά και αποτελεσµατικά

10 10 TEXNO O IA O I MIKOY I η κατασκευή λογισµικού καλής ποιότητας. Σε κάθε εποχή, ο ενθουσιασµός και οι τυµπανοκρουσίες της έλευσης µιας νέας προσέγγισης έδιναν τη θέση τους στην προσγειωµένη πραγµατικότητα. Τα προβλήµατα στην ανάπτυξη του λογισµικού συµπεριφέρονταν λίγο ως πολύ σαν λερναία ύδρα, όπου στη θέση κάθε κεφαλιού που κοβόταν φύτρωναν περισσότερα. Σήµερα, η αναζήτηση του «καλύτερου» τρόπου κατασκευής λογισµικού θεωρείται ιδεατή επιδίωξη. Έχει καταστεί σαφές ότι δεν υπάρχει καµία «χρυσή συνταγή» και ότι η ανάπτυξη του λογισµικού οφείλει να είναι µια ιδιαίτερα ευέλικτη διαδικασία, εύκολα προσαρµόσιµη στις εκάστοτε συνθήκες, αλλά και στη φύση τού εκάστοτε προβλήµατος στην επίλυση του οποίου χρησιµοποιείται λογισµικό. Αυτή είναι και η φιλοδοξία και συνάµα η πρόκληση που έχει να αντιµετωπίσει η Τεχνολογία Λογισµικού: να περιγράψει διαδικασίες που να είναι τεκµηριωµένες, σαφείς, προσαρµόσιµες στις εκάστοτε συνθήκες, εύκολα εφαρµόσιµες και οι οποίες οδηγούν στην κατασκευή καλής ποιότητας λογισµικού, µέσα στο προκαθορισµένο χρονοδιάγραµµα και προϋπολογισµό. Όπως και σε άλλα τεχνικά έργα, η ικανοποίηση όλων αυτών των απαιτήσεων δεν είναι εύκολη. Η επιδίωξη καλύτερης ποιότητας και πληρότητας σε ένα τεχνικό έργο (όπως, για παράδειγµα, ένας αυτοκινητόδροµος ή µια γέφυρα) είναι αναµενόµενο ότι και θα το καθυστερήσει και θα καταναλώσει µεγαλύτερο προϋπολογισµό. Σκεφτείτε πόσο µεγαλύτερο µπορεί να γίνει το πρόβληµα αυτό όταν το τεχνικό έργο είναι µη χειροπιαστό και κατασκευάζεται µε απαιτήσεις που µπορεί να µεταβάλλονται κατά τη διάρκεια της κατασκευής του, όπως ισχύει µε το λογισµικό. Μια ουσιώδης διαφορά του τεχνικού έργου ανάπτυξης λογισµικού, από την κατασκευή ενός οποιουδήποτε κλασικού τεχνικού έργου, είναι ότι για την πρώτη το µόνο απαιτούµενο κεφάλαιο είναι το µυαλό. Για να γίνει, δηλαδή, κανείς κατασκευαστής λογισµικού, δεν απαιτούνται τα κεφάλαια που απαιτούνται για να γίνει κατασκευαστής δηµόσιων τεχνικών έργων. Αυτό ισχύει και σε µακρο οικονοµικό επίπεδο: Για να γίνει µια χώρα ισχυρή στη βιοµηχανία λογισµικού, δεν είναι απαραίτητο να κάνει άλλες επενδύσεις παρά µόνο εκείνες που σχετίζονται µε την ανάπτυξη του ανθρώπινου δυναµικού. Για χώρες µικρές, όπως η δική µας, αυτό δίνει στην Τεχνολογία Λογισµικού µια άλλη διάσταση πρόκλησης: αν αναπτύξουµε µια ισχυρή βιοµηχανία λογισµικού, µπορούµε να διεκδικήσουµε µια καλύτερη θέση στην πολυφηµούµενη παγκοσµιοποιηµένη οικονοµία του αύριο. Ένα µικρό λιθαράκι στην ανάπτυξη του ανθρώπινου παράγοντα που θα µπο-

11 TEXNO O IA O I MIKOY I 11 ρέσει να µας οδηγήσει σε µια τέτοια πορεία, φιλοδοξεί να βάλει η γνώση που είναι αποτυπωµένη στο βιβλίο που κρατάς, φίλε αναγνώστη. Είναι προϊόν ακαδηµαϊκής και επαγγελµατικής εµπειρίας στο χώρο της ανάπτυξης λογισµικού και επιχειρείται να σου δοθεί µε τρόπο σαφή και κατανοητό. Σε ορισµένες περιπτώσεις στη βιβλιογραφία ίσως να συναντήσεις ελαφρώς διαφοροποιη- µένες προσεγγίσεις ή ακόµη και ορισµούς του ίδιου όρου. Αυτό είναι ενδεικτικό της κατάστασης σύγχυσης που επικράτησε για πολλά χρόνια στην κοινότητα των κατασκευαστών λογισµικού. Σύντοµα θα µπορείς να διακρίνεις το ουσιώδες από το δευτερεύον, σύντοµα θα αντιλαµβάνεσαι την ουσία και όχι τον τύπο των ορισµών. Το ζητούµενο, ούτως ή άλλως, δεν είναι να αποµνηµονεύσεις ούτε να αποδεχτείς γνώση «άνευ όρων». Είναι να µάθεις πώς να µαθαίνεις, να κρίνεις και να αξιολογείς. Οι γνώσεις που περιέχουν τα βιβλία πληροφορικής σύντοµα καθίστανται ανεπίκαιρες. Αυτό που ίσως µένει είναι η συµβολή τους στη δια- µόρφωση ενός τρόπου σκέψης. Αυτή είναι και η δική µας επιδίωξη, µέσα από αρκετά προβλήµατα και κυρίως µαχόµενοι µε την ανάγκη διατήρησης ενός (σχετικά µε το αντικείµενο) µικρού µεγέθους του βιβλίου αυτού. Τα παραδείγµατα και η µελέτη περίπτωσης στα Κεφάλαια 3 και 4 αξίζουν την προσοχή σου και θέλουµε να πιστεύουµε ότι συµβάλλουν στην επιδίωξη αυτή. Κατά τα άλλα, στο Κεφάλαιο 1 θα βρεις µια εισαγωγή στην Τεχνολογία Λογισµικού και µια απόπειρα να προσδιοριστεί το λογισµικό ως τεχνικό κατασκεύασµα, ως µέρος συστηµάτων, αλλά και ως προϊόν. Το κεφάλαιο στοχεύει στην οριοθέτηση του χώρου µέσα στον οποίο θα κινηθεί η ύλη που θα ακολουθήσει, καθώς και στην παράθεση χρήσιµων ορισµών, οι οποίοι θα χρησι- µοποιηθούν σε όλα τα κεφάλαια που θα ακολουθήσουν. Στο Κεφάλαιο 2 παρουσιάζεται η έννοια του «µοντέλου κύκλου ζωής λογισµικού» και τα βασικότερα από τα µοντέλα που χρησιµοποιούνται σήµερα. Εισάγονται σηµαντικές έννοιες, όπως «µοντέλο κύκλου ζωής», «διαδικασία ανάπτυξης», «φάση», «εργασία», «δραστηριότητα» και «εργαλείο» και δηµιουργείται το περίγραµ- µα πάνω στο οποίο θα γίνει η περιγραφή του τρόπου ανάπτυξης λογισµικού, η οποία θα ακολουθήσει. Τα επόµενα δύο κεφάλαια (3 και 4) είναι ουσιαστικά η «ψυχή» του βιβλίου και απαιτούν τη µεγαλύτερη προσοχή και ενασχόληση. Στο Κεφάλαιο 3 περιγράφεται η διαδικασία προσδιορισµού και καταγραφής των απαιτήσεων από το λογισµικό µε τεχνικές δοµηµένης ανάλυσης. Πιστεύω ότι και ως αναγνώστης θα συµφωνήσεις ότι αυτή είναι η πιο κρίσιµη και δηµιουργική εργασία

12 12 TEXNO O IA O I MIKOY I κατά την ανάπτυξη του λογισµικού. Η επιτυχία της θέτει τα θεµέλια για ένα επιτυχηµένο έργο λογισµικού, ενώ η αστοχία της µεταφέρεται πολλαπλασιαστικά σε όλες τις φάσεις που θα ακολουθήσουν, µε οδυνηρά συνήθως αποτελέσµατα. Στο Κεφάλαιο 4 περιγράφεται η φάση της δοµηµένης σχεδίασης λογισµικού, δηλαδή η διαδικασία µετάβασης από προδιαγραφές, οι οποίες καθορίζουν το «τι θα κάνει το λογισµικό», σε σχέδιο, το οποίο καθορίζει το «πώς». Η αφοµοίωση των αναφεροµένων στα δύο αυτά κεφάλαια απαιτεί σηµαντική ενασχόληση µε πολλά παραδείγµατα, αλλά και µελέτη της βιβλιογραφίας, ιδιαίτερα των δύο πρώτων προτεινόµενων αναφορών συµπληρωµατικής βιβλιογραφίας. Είναι χρήσιµο η αναδροµή στη βιβλιογραφία να γίνει, αφού έχει ολοκληρωθεί µία τουλάχιστον ανάγνωση των κεφαλαίων αυτών και αφού ο αναγνώστης έχει ασχοληθεί µε τις προτεινόµενες δραστηριότητες, καθώς και µε άλλα παραδείγµατα. Στο Κεφάλαιο 5 γίνεται µια περιήγηση στην παραγωγή πηγαίου κώδικα. Το θέµα πραγµατεύεται µε όση γενικότητα απαιτεί η αναφορά του σε ένα βιβλίο Τεχνολογίας Λογισµικού. Σε άλλες θεµατικές ενότητες, όπως, για παράδειγ- µα, οι «Τεχνικές προγραµµατισµού» και «Γλώσσες προγραµµατισµού», γίνεται µια δεόντως εκτενής αναφορά σε θέµατα προγραµµατισµού. Τέλος, το Κεφάλαιο 6 αναφέρεται σε τεχνικές ελέγχου, εντοπισµού και διόρθωσης σφαλ- µάτων. Η διαδικασία αυτή είναι συχνά υποτιµηµένη, τόσο λόγω εσφαλµένης αντίληψης, όσο και εξαιτίας χρονικών πιέσεων. Είναι όµως ο µόνος τρόπος που µπορεί να τεκµηριώσει το βαθµό εµπιστοσύνης απέναντι στην ορθότητα µιας εφαρµογής λογισµικού, ο οποίος ποτέ (ούτε και στις περιπτώσεις που το λογισµικό χρησιµοποιείται για διασκέδαση) δεν µπορεί να χαρακτηριστεί ως «αδιάφορος». Κλείνοντας, επιθυµώ να ευχαριστήσω όλους εκείνους που συνέβαλαν µε τη συνεργασία τους στη συγγραφή του βιβλίου αυτού. Ιδιαίτερα ευχαριστώ τον καθηγητή κ. Πιντέλα για την εµπιστοσύνη και τη συνεργασία του, το φίλο και συνεργάτη Ν. Παπασπύρου, καθώς και τον κ. Ν. Λεβογιάννη, για την πολύτιµη βοήθειά τους. Τέλος, όλους εκείνους που µε υπέφεραν το διάστηµα που πέρασε, αλλά και τους συνεργάτες του ΕΑΠ, χωρίς τη µεθοδική συµβολή των οποίων δε θα µπορούσε να έχει ολοκληρωθεί το συγγραφικό έργο. Επιθυµώ να αφιερώσω το βιβλίο στους µαχόµενους πληροφορικάριους, σε όλους εκείνους που παράγουν και δε «διαχειρίζονται». Βασίλειος Χ. Βεσκούκης Αθήνα, εκέµβριος 1999

13 ÓˆÚÈÌ Ì ÙËÓ T ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ ÎÔapplefi Σκοπός του κεφαλαίου αυτού είναι ο ορισµός της έννοιας του Λογισµικού, η τοποθέτησή του µέσα στις δραστηριότητες η εκτέλεση των οποίων πραγµατοποιείται µε τη βοήθειά του, ο εντοπισµός των κυριότερων κατηγοριών προβληµάτων στην ανάπτυξη και συντήρησή του, καθώς και ο ορισµός της επιστηµονικής περιοχής της Τεχνολογίας Λογισµικού. 1 º π ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Μετά τη µελέτη του κεφαλαίου αυτού ο αναγνώστης θα είναι σε θέση: Να αναγνωρίζει τις εφαρµογές λογισµικού ως τεχνικά κατασκευάσµατα και την Τεχνολογία Λογισµικού ως την περιγραφή ενός πειθαρχηµένου τρόπου για την κατασκευή τους. Να περιγράφει τα σηµαντικότερα προβλήµατα στην ανάπτυξη του λογισµικού και τις αιτίες τους. Να αναγνωρίζει τις διαφορετικές όψεις από τις οποίες µπορεί να ιδωθεί η ανάπτυξη του λογισµικού, καθώς και τη συσχέτιση αυτής µε εξωγενείς παράγοντες. ŒÓÓÔÈ ÎÏÂÈ È Λογισµικό Τεχνικές κατασκευές Τεχνολογία Λογισµικού Ανάπτυξη λογισµικού Σύστηµα Κρίση λογισµικού Συστατικό στοιχείο λογισµικού ÈÛ ÁˆÁÈÎ apple Ú ÙËÚ ÛÂÈ Λίγοι θα διαφωνήσουν µε τη θέση ότι το λογισµικό αποτέλεσε ένα από τα σηµαντικότερα εργαλεία που ο άνθρωπος κατασκεύασε τον αιώνα που πέρασε, χάρη στο οποίο έγινε δυνατή η επανάσταση της πληρο-

14 14 KEºA AIO 1: øƒπªπ ª T Ã π π ªπ À φορικής και των επικοινωνιών, την οποία ακόµη βιώνουµε. Είναι αλήθεια ότι πολλοί άνθρωποι έχουν έρθει εκούσια ή ακούσια στη θέση του χρήστη µιας ή περισσότερων εφαρµογών λογισµικού, ωστόσο δεν είναι αυτονόητο ότι όλοι αντιλαµβάνονται το λογισµικό ως ένα µοναδικό τεχνικό κατασκεύασµα. Συνήθως, το λογισµικό γίνεται αντιληπτό ως εργαλείο, ως παιχνίδι, ή γενικότερα, ως µέρος ενός µεγαλύτερου και πιο σύνθετου συστήµατος, σπάνια όµως το ίδιο ως σύνθετο κατασκεύασµα µε τα δικά του προβλήµατα. Η εµπειρία δείχνει ότι η κατασκευή καλού λογισµικού δεν είναι καθόλου απλή υπόθεση. Συνήθως πολλές παρανοήσεις χαρακτηρίζουν αυτό που γίνεται αντιληπτό ως «κατασκευή λογισµικού» και ο αναγνώστης αναµφίβολα και αναπόφευκτα θα συναντήσει σηµαντικό πλουραλισµό απόψεων κατά την ενασχόλησή του µε το θέµα. Πέρα από τα καθαρά τεχνικά ζητήµατα που αντιµετωπίζει ο κατασκευαστής λογισµικού, πολλά από τα επιθυµητά χαρακτηριστικά αυτού ή και της διαδικασίας κατασκευής του οφείλονται στην υπόστασή του ως προϊόντος. Αυτό καταδεικνύει την ανάγκη η κατασκευή του να ισορροπεί µεταξύ τεχνικής επάρκειας, µικρού κόστους και µεγάλης ταχύτητας. Με την ανάπτυξη των παραπάνω θεµάτων θα ασχοληθούµε στο κεφάλαιο αυτό. Το κεφάλαιο αυτό περιέχει τις παρακάτω ενότητες: 1.1 Yπολογιστές και Λογισµικό 1.2 Tεχνικές Kατασκευές και Λογισµικό 1.3 Kρίση Λογισµικού 1.4 Tεχνολογία Λογισµικού 1.5 Tο Λογισµικό ως µέρος συστηµάτων 1.6 Tο Λογισµικό ως προϊόν 1.7 Συστατικά στοιχεία Λογισµικού

15 Y π π π ªπ YappleÔÏÔÁÈÛÙ Î È ÔÁÈÛÌÈÎfi Ένα από τα σηµαντικότερα γεγονότα που σηµατοδότησαν τον αιώνα που πέρασε ήταν η εφεύρεση του Ηλεκτρονικού Υπολογιστή (Η/Υ). Με τη βοήθεια του Η/Υ έγινε δυνατή η αυτοµατοποίηση της εκτέλεσης πολλών κουραστικών, ανιαρών και επιρρεπών σε λάθη εργασιών, καθώς και η εκτέλεση άλλων, η οποία στο παρελθόν ήταν πρακτικά αδύνατη. Από την εποχή που κατασκευάστηκαν οι πρώτοι Η/Υ µέχρι σήµερα σηµειώθηκε τεράστια βελτίωση των χαρακτηριστικών και των δυνατοτήτων τους. Κανένα άλλο ανθρώπινο κατασκεύασµα δε σηµείωσε τόσο σηµαντική πρόοδο σε τόσο µικρό χρονικό διάστηµα. Ένα από τα πρακτικά αποτελέσµατα αυτής της εξέλιξης ήταν ότι οι Η/Υ έγιναν προσιτοί σε µεγάλες µάζες ανθρώπων και αναφαίρετο εργαλείο της καθηµερινής επαγγελµατικής αλλά και ιδιωτικής ζωής για πολλούς από αυτούς. Παράλληλα, έγινε δυνατή η ενσωµάτωση Η/Υσε πάρα πολλές συσκευές καθηµερινής χρήσης, χωρίς αυτό να είναι πάντα αντιληπτό από τους ίδιους τους χρήστες. Σήµερα, σε πολλές από τις καθη- µερινές µας εργασίες χρησιµοποιούµε Η/Υ χωρίς να το γνωρίζουµε, ενώ συχνά η ίδια µας η ζωή εξαρτάται από Η/Υ (υγεία, µέσα µεταφοράς, υπηρεσίες όπως έλεγχος οδικής και εναέριας κυκλοφορίας κ.ά.). Η σηµερινή εποχή µπορεί να χαρακτηριστεί ως µεταβατική σε µια νέα κατάσταση στην οποία όλοι οι Η/Υθα είναι διασυνδεδεµένοι µέσω δικτύων και θα εκτελούν σύνθετες εργασίες. Πολλές από τις σύγχρονες δικτυακές εφαρµογές µπορούν να µεταβάλουν κρίσιµες πλευρές του πολιτισµού µας, όπως την επικοινωνία, την εκπαίδευση και την κατάρτιση, αλλά και αυτή την ίδια τη λειτουργία των δηµοκρατικών πολιτευµάτων. Η νέα κατάσταση που διαµορφώνεται αναφέρεται ως κοινωνία της πληροφορίας (information society) και έχουµε ήδη εισέλθει στο εξελικτικό της στάδιο µε το Internet και τις περί αυτό εφαρ- µογές να παίζουν πρωταγωνιστικό ρόλο στη διαδικασία. Όλες αυτές οι εξελίξεις γίνονται δυνατές χάρη στην ύπαρξη και λειτουργία ενός συνόλου πολύπλοκων εφαρµογών λογισµικού. Η εξάπλωση του ηλεκτρονικού υπολογιστή σε ολοένα και περισσότερες πλευρές της ανθρώπινης ζωής δε θα ήταν δυνατή χωρίς τη χρήση λογισµικού. Ο ηλεκτρονικός υπολογιστής ως συσκευή µπορεί µόνο να εκτελέσει ορισµένες πολύ απλές λειτουργίες µε πάρα πολύ υψηλή ταχύτητα, όµως µε τρόπο ιδιαίτερα δυσπρόσιτο στον άνθρωπο. Το

16 16 KEºA AIO 1: øƒπªπ ª T Ã π π ªπ À λογισµικό είναι εκείνο που καθιστά χρήσιµη και αποδίδει στοιχεία «συµπεριφοράς» στη συσκευή Η/Υ. Ο άνθρωπος δεν αξιοποιεί τον ηλεκτρονικό υπολογιστή άµεσα ως συσκευή, αλλά µόνο µέσω του λογισµικού. Έχοντας κατά νου τα παραπάνω, δεν είναι εύκολο να δοθεί ένας πλήρης και καθολικά αποδεκτός ορισµός της έννοιας «λογισµικό». Η πρακτική αξία, αλλά και η διαχρονικότητα ενός θεωρητικού ορισµού µπορεί να αµφισβητηθεί σχετικά εύκολα. Μια ικανοποιητική προσέγγιση είναι ο ορισµός του λογισµικού ως ακολούθως, τον οποίο και θα αποδεχτούµε ως επαρκή στο βιβλίο αυτό: Λογισµικό: (1) εντολές (προγράµµατα ηλεκτρονικού υπολογιστή) οι οποίες όταν εκτελούνται επιτυγχάνουν επιθυµητά αποτελέσµατα και επιδόσεις, (2) δοµές δεδοµένων που επιτρέπουν σε προγράµµατα να διαχειριστούν µε επάρκεια πληροφορίες και (3) κείµενα, διαγράµµατα κτλ. που περιγράφουν τη λειτουργία και χρήση των προγραµµάτων. 1.2 TÂ ÓÈÎ K Ù ÛÎÂ Î È ÔÁÈÛÌÈÎfi Το λογισµικό είναι ένα πολύπλοκο τεχνικό κατασκεύασµα, το οποίο δεν έχει αυτοτελή υπόσταση, παρά µόνο όταν χρησιµοποιείται για να καθοδηγήσει έναν ηλεκτρονικό υπολογιστή στην πραγµατοποίηση συγκεκριµένων λειτουργιών. Παρά τις αρκετές οµοιότητες που µπορεί κανείς να αναζητά συχνά µεταξύ λογισµικού και λοιπών τεχνικών κατασκευών, υπάρχουν και σηµαντικές διαφορές. Η πρώτη είναι η µη απτή φύση του λογισµικού. Μια τεχνική κατασκευή είναι ορατή και απτή, ενώ το λογισµικό δεν είναι αυτό καθεαυτό «ορατό». Μόνο τα αποτελέσµατα της χρήσης του µπορούν να είναι αντιληπτά. Η δοµή του λογισµικού, τόσο σε µικροσκοπικό όσο και σε µακροσκοπικό επίπεδο, είναι και αυτή ένα νοητό κατασκεύασµα, που µπορεί να γίνει µε διαφορετικούς τρόπους αντιληπτό. Η δεύτερη σηµαντική διαφορά µπορεί να περιγραφεί από µια παρο- µοίωση: Σε αντίθεση µε τα τεχνικά έργα, η κατασκευή των οποίων συνήθως ακολουθεί µια προκαθορισµένη οδό, γνωστή από την αρχή,

17 T Ã π K À π π ªπ 17 η ανάπτυξη του λογισµικού οµοιάζει µε σκόπευση κινούµενου στόχου από κινούµενο έδαφος και µε όπλο που συνεχώς αλλάζει τη συµπεριφορά του. Ο στόχος είναι κινούµενος γιατί οι απαιτήσεις των χρηστών συνεχώς µεταβάλλονται, ακόµα και µέσα στη διαδικασία ανάπτυξης µιας εφαρµογής που προορίζεται να τις ικανοποιήσει. Το έδαφος είναι κινούµενο γιατί το περιβάλλον ανάπτυξης του λογισµικού είναι και το ίδιο συνεχώς εξελισσόµενο µαζί µε το υλικό, αλλά και µαζί µε τις επιλογές και την έκβαση των µη τεχνικών διαµαχών στο χώρο της αγοράς τεχνογνωσίας και τεχνολογίας πληροφορικής. Σαν να µην έφταναν τα παραπάνω, το όπλο µε το οποίο γίνεται η «σκόπευση», δηλαδή οι µεθοδολογίες, τα εργαλεία και τα περιβάλλοντα ανάπτυξης και λειτουργίας του λογισµικού, είναι επίσης ραγδαία µεταβαλλόµενα µε το χρόνο. Όλοι µας γινόµαστε µάρτυρες ενός καταιγισµού προϊόντων, εξέλιξης λειτουργικών συστηµάτων, γλωσσών προγραµµατισµού, περιβαλλόντων και τεχνολογιών ανάπτυξης. Ο καταιγισµός αυτός φαίνεται να µην έχει ορατό τέλος, µιας και είναι οι νόµοι του ανταγωνισµού που σε πολλές περιπτώσεις προωθούν τις εξελίξεις, αλλά και η ίδια η πρόοδος της τεχνολογίας των υπολογιστών, η οποία είναι τουλάχιστον εντυπωσιακή. Μολονότι η κατασκευή πολλών τεχνικών έργων είναι δυνατό να τυποποιηθεί σε αρκετά µεγάλο βαθµό, δεν ισχύει το ίδιο µε την ανάπτυξη του λογισµικού. Η ανάπτυξη αυτή µέχρι σήµερα δεν έχει γίνει δυνατό να αυτοµατοποιηθεί και το λογισµικό παραµένει ένα από τα πολυπλοκότερα και δυσκολότερα τεχνικά κατασκευάσµατα του ανθρώπου, στην κατασκευή του οποίου συναντώνται επί µακρόν σηµαντικά προβλήµατα, τα οποία από πολλούς χαρακτηρίζονται ως «χρόνια». Εντοπίστε τουλάχιστον τρεις οµοιότητες και τρεις διαφορές µεταξύ του λογισµικού και της κατασκευής έργων οδοποιίας. Προσπαθήστε αυτές να καλύπτουν όσο το δυνατόν ευρύτερο φάσµα στοιχείων που σχετίζονται µε την κατασκευή ή ανάπτυξη (κατασκευαστικά, διαχειριστικά, οικονοµικά). Στο τέλος του κεφαλαίου µπορείτε να συγκρίνετε την απάντησή σας µε τη δική µας προσέγγιση στο θέµα, η οποία προέκυψε µετά από πολυετή ενασχόληση τόσο µε την ανάπτυξη εφαρµογών λογισµικού όσο και µε τεχνικά έργα. Ú ÛÙËÚÈfiÙËÙ 1.1

18 18 KEºA AIO 1: øƒπªπ ª T Ã π π ªπ À 1.3 KÚ ÛË ÔÁÈÛÌÈÎÔ Το σύνολο αυτών των χρόνιων προβληµάτων αναφέρεται ως «κρίση λογισµικού». Ενδεχοµένως, η χρήση όρων όπως «κρίση» ή «χρόνια προβλήµατα» να µπορεί να χαρακτηριστεί υπερβολική, αυτό όµως δεν αναιρεί ούτε τη σοβαρότητα ούτε την παρατεταµένη διάρκεια εκδήλωσης των προβληµάτων που έχουν καταγραφεί και καθηµερινά επιβεβαιώνονται στην ανάπτυξη του λογισµικού. Είναι χαρακτηριστικό ότι το λογισµικό είναι ένα από τα ελάχιστα ανθρώπινα κατασκευάσµατα που πωλείται «ως έχει», χωρίς καµία απολύτως εγγύηση για τις ζηµιές που µπορεί να προκαλέσει η χρήση του, οσοδήποτε σηµαντικές και αν είναι αυτές. Ο Πίνακας 1.1 απεικονίζει τα σηµαντικότερα από τα προβλήµατα αυτά. Ó Î 1.1 Μερικά βασικά σηµεία της «κρίσης λογισµικού» Εξαιρετικά δύσκολη διαδικασία κατασκευής. Ανεπαρκής ή και κακή ποιότητα τελικού προϊόντος Μη τήρηση χρονοδιαγραµµάτων. Υπερβάσεις προϋπολογισµών. Μεγάλη δυσκολία και συνεπαγόµενο κόστος συντήρησης. ύσκολη κατανόηση εγγράφων, σχεδίων κτλ. από διαφορετικούς κατασκευαστές. εν είναι πάντα σαφές ποια βήµατα πρέπει να γίνουν, µε ποια σειρά, µε ποια ενδιάµεσα προϊόντα κτλ. Λάθη στην κατασκευή, µη ικανοποίηση του σκοπού. Υπερβολικές και «αδικαιολόγητες» καθυστερήσεις. Κακές αρχικές εκτιµήσεις κόστους. Τελικά προϊόντα µε πολλαπλάσιο κόστος από το αρχικά προϋπολογισθέν. Παρενέργειες µεταβολών σε στοιχεία που πριν λειτουργούσαν, πρόχειρες λύσεις. Στην πράξη, η κατανόηση ενός συστήµατος λογισµικού από τρίτους, πλην των κατασκευαστών του, είναι συχνά αδύνατη ή ιδιαίτερα ασύµφορη. Προβλήµατα όπως τα παραπάνω έχουν εντοπιστεί εδώ και δεκαετίες από την κοινότητα κατασκευαστών και ακαδηµαϊκών ερευνητών στη γνωστική περιοχή του λογισµικού και έχουν διατυπωθεί µε πολλούς τρόπους και µε πολλές ευκαιρίες. Συχνά, νέες τεχνολογίες ή προϊόντα που προτείνονται για την ανάπτυξη του λογισµικού κάνουν επίκληση

19 Kƒπ π ªπ À / T Ã π π ªπ À 19 των προβληµάτων αυτών, ισχυριζόµενα ότι διαθέτουν ικανοποιητικές λύσεις. Για ένα διάστηµα, οι λύσεις αυτές φέρονταν ως «ασηµένια σφαίρα» που θα σκότωνε το «τέρας» των προβληµάτων ανάπτυξης λογισµικού. Κάτι τέτοιο δεν έγινε και η φιλοσοφία της «ασηµένιας σφαίρας» εγκαταλείφθηκε, για να πάρουν τη θέση της πιο συνετές επιστηµονικές προσεγγίσεις στην ανάπτυξη του λογισµικού. Ως αποτέλεσµα, αναπτύχθηκε ένας ειδικός κλάδος της επιστήµης της πληροφορικής, που ονοµάστηκε Τεχνολογία Λογισµικού (Software Engineering). Πρόσφατα προτάθηκε η Τεχνολογία Λογισµικού να αποτελέσει εξειδίκευση της επιστήµης του µηχανικού, οπότε µια πιο εύστοχη απόδοση στα ελληνικά είναι αυτή της Μηχανικής Λογισµικού. Στο βιβλίο αυτό θα αποδεχτούµε την απόδοση «Τεχνολογία Λογισµικού» ως επικρατέστερη για την ελληνική πραγµατικότητα και θα αναφερόµαστε στην ίδια τεχνική επιστηµονική περιοχή, ανεξάρτητα από το αν πρόκειται για τεχνολογία, για µηχανική ή για τέχνη, όπως συχνά υποστηρίζεται σε ακαδηµαϊκές συζητήσεις. 1.4 TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ Όπως ακριβώς µε τον ορισµό της έννοιας «λογισµικό», προβλήµατα και αρκετές διαφορετικές απόψεις υπάρχουν και στον ορισµό της Τεχνολογίας Λογισµικού. Στο βιβλίο αυτό θα δεχτούµε τον παρακάτω ορισµό: Τεχνολογία Λογισµικού: η περιοχή εκείνη της επιστήµης της µηχανικής η οποία ασχολείται µε την εύρεση και θεµελίωση µεθόδων για να περιγράφεται, να κατασκευάζεται και να συντηρείται λογισµικό. Επιθυµητά χαρακτηριστικά του λογισµικού και της διαδικασίας κατασκευής του είναι η ποιότητα, η µεγαλύτερη δυνατή αυτοµατοποίηση και παραγωγικότητα και το ελάχιστο δυνατό κόστος παραγωγής και συντήρησης. Οι έννοιες «ποιότητα», «αυτοµατοποίηση», «παραγωγικότητα» και «κόστος» είναι σε πολλές περιπτώσεις αντίθετες ως αντικειµενικοί σκοποί. Είναι φυσικό να µιλάµε όχι για ταυτόχρονη µεγιστοποίηση ποιότητας και παραγωγικότητας, από τη µία και απόλυτη ελαχιστοποίηση του κόστους, από την άλλη, αλλά για αποδεκτή στις εκάστοτε συνθήκες ισορροπία µεταξύ αυτών των µεγεθών. Εντός του πεδίου της Τεχνολογίας Λογισµικού είναι ο καθορισµός των

20 20 KEºA AIO 1: øƒπªπ ª T Ã π π ªπ À ενεργειών και της αλληλουχίας µε την οποία αυτές πρέπει να γίνονται (software process), καθώς και η περιγραφή µε σαφή και κατανοητό τρόπο όλων των προϊόντων που παράγονται κατά την εκτέλεση αυτών των ενεργειών. Το τελικό παραδοτέο προϊόν κάθε ενέργειας ανάπτυξης λογισµικού είναι ο «εκτελέσιµος κώδικας», δηλαδή ένα σύνολο εντολών άµεσα εκτελέσιµων από έναν ηλεκτρονικό υπολογιστή κάτω από συγκεκριµένες (και γνωστές εκ των προτέρων) προϋποθέσεις. Το σύνολο αυτών των εντολών αποτελεί µια περιγραφή του τρόπου εκτέλεσης των εργασιών που αυτοµατοποιούνται µε τη χρήση µιας εφαρ- µογής λογισµικού. εν είναι δυνατό η κατασκευή του λογισµικού να οδηγήσει κατευθείαν στον εκτελέσιµο κώδικα, όπως, άλλωστε, καµία απολύτως τεχνική κατασκευή δεν µπορεί να γίνει κατευθείαν, χωρίς να έχουν προηγηθεί µελέτες και σχέδια. Ωστόσο, ένα στοιχείο που διαφοροποιεί σηµαντικά το λογισµικό από τις κλασικές τεχνικές κατασκευές είναι ότι η κατασκευή του δεν είναι µια σειριακά ακολουθούµενη διαδικασία, η οποία ολοκληρώνεται µε την κατασκευή του παραδοτέου προϊόντος, αλλά το αρχικό αυτό παραδοτέο (πρώτη έκδοση εκτελέσιµου κώδικα και αντίστοιχο υλικό τεκµηρίωσης) υπόκειται συχνά πολλές τροποποιήσεις. Συνήθεις αιτίες για τροποποιήσεις στο λογισµικό είναι: ñ η διόρθωση σφαλµάτων, ñ η βελτιστοποίηση της απόδοσης, ñ η αυτοµατοποίηση της εκτέλεσης νέων εργασιών, ñ η ενσωµάτωση µεταβολών που οφείλονται σε αλλαγές που συµβαίνουν στον πραγµατικό κόσµο, Η πραγµατοποίηση µεταβολών διορθώσεων στις εφαρµογές λογισµικού αναφέρεται µε τον όρο συντήρηση λογισµικού (software maintenance). Όλες οι φάσεις από τις οποίες διέρχεται το λογισµικό αναφέρονται ως κύκλος ζωής λογισµικού (software life cycle). Γίνεται σαφές ότι η Τεχνολογία Λογισµικού δεν ασχολείται µόνο µε την κατασκευή, αλλά µε ολόκληρο τον κύκλο ζωής του λογισµικού. Χρονικά, πρόκειται για το διάστηµα από τη σύλληψη της ιδέας της κατασκευής µιας εφαρµογής λογισµικού µέχρι την απόσυρση αυτής από τη χρήση.

21 T Ã π π ªπ À / T π ªπ ø ª ƒ À ª ø 21 Αναφέρετε ένα παράδειγµα για καθεµία από τις αιτίες τροποποιήσεων στο λογισµικό οι οποίες αναφέρθηκαν στην προηγούµενη ενότητα. Στη συνέχεια συγκρίνετε την απάντησή σας µε αυτή που δίνου- µε στο τέλος του κεφαλαίου. Σε πόσες περιπτώσεις συµπίπτουν οι απαντήσεις; Ú ÛÙËÚÈfiÙËÙ TÔ ÔÁÈÛÌÈÎfi ˆ Ì ÚÔ Û ÛÙËÌ ÙˆÓ Συχνά, το λογισµικό αντιµετωπίζεται λανθασµένα, όχι ως µέρος ενός ευρύτερου συστήµατος µε το οποίο αλληλεπιδρά µε πολλούς τρόπους, αλλά ως αυθύπαρκτη οντότητα. Στην Τεχνολογία Λογισµικού συχνά γίνεται ξεχωριστά λόγος για το σύστηµα και ξεχωριστά για το λογισµικό και δεν είναι λίγες οι περιπτώσεις όπου µπορεί να δηµιουργηθεί σύγχυση σχετικά µε τις έννοιες και την προσέγγιση πολλών οντοτήτων του πραγµατικού κόσµου κατά την ανάπτυξη λογισµικού. Θα διακρίνουµε δύο περιπτώσεις: ñ Το λογισµικό αποτελεί εσωτερικό συστατικό ενός τεχνητού µη υπολογιστικού συστήµατος. ñ Το λογισµικό λειτουργεί αυτοτελώς σε ένα υπολογιστικό σύστηµα. Ως παραδείγµατα για το πρώτο µπορούµε να αναφέρουµε όλες τις περιπτώσεις όπου µια συσκευή λειτουργεί χρησιµοποιώντας λογισµικό, όπως οι µηχανές αυτόµατης πώλησης, οι ψηφιακοί αυτοµατισµοί και, σύντοµα, αρκετές οικιακές συσκευές. Επίσης, στην πρώτη κατηγορία ανήκουν σύνθετα συστήµατα όπου το λογισµικό ή η υπολογιστική µονάδα στην οποία αυτό εκτελείται λειτουργεί συνδεδεµένη µε άλλες συσκευές, όπως τα συστήµατα χρονοµέτρησης αγώνων, τα ιατρικά µηχανήµατα ανάλυσης και απεικόνισης, τα συστήµατα ελέγχου εναέριας κυκλοφορίας κ.ά. (Σχήµα 1.1). Y THMA Y/ 1 Y/ Ó O I MIKO Y/ 2 XPH TH Ì 1.1 Το λογισµικό µπορεί να είναι µέρος πολλών συστηµάτων. Ο χρήστης, αλληλεπιδρώντας µε τα συστήµατα, µπορεί να χρησιµοποιεί λογισµικό χωρίς να έχει άµεση αντίληψη του γεγονότος αυτού.

22 22 KEºA AIO 1: øƒπªπ ª T Ã π π ªπ À Στις περιπτώσεις αυτές, κατά την ανάπτυξη λογισµικού οφείλουν να λαµβάνονται υπόψη τα ειδικά χαρακτηριστικά των συσκευών που αποτελούν τα υπόλοιπα µέρη του συστήµατος. Τα χαρακτηριστικά τέτοιων συσκευών, χωρίς να αποτελούν αυτά καθαυτά χαρακτηριστικά του λογισµικού, καθορίζουν σε µεγάλο βαθµό τη δοµή και τη συµπεριφορά του. Ì 1.2 Αλληλεπιδράσεις στην ανάπτυξη του λογισµικού Στη δεύτερη περίπτωση, όπου το λογισµικό στεγάζεται απλώς σε ένα υπολογιστικό σύστηµα, δεν αποτελεί µε τη δοµική αλλά µε τη λειτουργική έννοια µέρος ενός ευρύτερου οργανισµού από τον οποίο καθορίζεται και τον οποίο µε τη σειρά του καθορίζει (Σχήµα 1.2). Από την έναρξη µέχρι την ολοκλήρωση της ανάπτυξης µιας εφαρµογής λογισµικού λαµβάνουν συνήθως χώρα αρκετές αλλαγές στο ιδιαίτερο και το ευρύτερο πεδίο χρήσης αυτής, στις οποίες ενίοτε αποδίδεται µέρος των αιτιών αποτυχίας ή αστοχίας της προσπάθειας ανάπτυξης. EYPYTEPO EPIBA ON XPH H O I MIKOY EPIBA ON ANA TY H O I MIKOY ANA KH & Y HæH O I MIKOY EPI PAºH O I MIKO XE IA H EMATIKO E IO O I MIKOY Y O OIH H E HPPEAZEI E E I H Μπορεί κανείς να αναγνωρίσει µια διαλεκτική σχέση µεταξύ του λογισµικού και του χώρου στον οποίο αυτό αναπτύσσεται και χρησιµοποιείται: ο τρόπος µε τον οποίο γίνονται οι εργασίες στον πραγµατικό κόσµο επιβάλλει την αυτοµατοποίηση ορισµένων από αυτές, η οποία γεννάει την ανάγκη για λογισµικό. Η ενσωµάτωση της αυτοµατοποί-

23 T π ªπ ø ª ƒ À ª ø / T π ªπ ø ƒ π 23 ησης στο χώρο που γέννησε την ανάγκη επιδρά εκ νέου στη σύλληψη των εργασιών και τη σχεδίαση του τρόπου µε τον οποίο αυτές γίνονται, πράγµα που µε τη σειρά του µπορεί να επιφέρει µεταβολές στο λογισµικό και ο κύκλος επαναλαµβάνεται. Πέραν αυτής της άµεσης αλληλεπίδρασης µεταξύ πεδίου εφαρµογής και λογισµικού, είναι και ο ίδιος ο κόσµος που από εσωτερικές δυνάµεις µεταβάλλεται συνεχώς, πράγµα που διαµορφώνει, εξελίσσει ή καταργεί ολοένα και περισσότερες εργασίες οι οποίες µπορούν να αυτοµατοποιηθούν µε τη χρήση λογισµικού. Αναφέρετε τουλάχιστον τρία παραδείγµατα διατάξεων (συσκευών) που δεν είναι ηλεκτρονικοί υπολογιστές και ενσωµατώνουν λογισµικό µε το οποίο επικοινωνεί µε κάποιον τρόπο ο χρήστης. Αν σκεφτεί κανείς πόσες τέτοιες συσκευές υπάρχουν και πόσο συχνή είναι η χρήση τους, το πιθανότερο είναι ότι θα εντυπωσιαστεί από τη διάδοση του λογισµικού. Είµαστε σχεδόν σίγουροι ότι θα εµπλουτίσετε σηµαντικά την απάντηση που δίνουµε στο τέλος του κεφαλαίου. Ú ÛÙËÚÈfiÙËÙ TÔ ÔÁÈÛÌÈÎfi ˆ appleúô fió Οι περισσότερες προσπάθειες ανάπτυξης λογισµικού στοχεύουν στη δηµιουργία ενός προϊόντος, δηλαδή ενός αγαθού, το οποίο προορίζεται να βρει το δρόµο του στην αγορά, είτε ως προϊόν µαζικής κατανάλωσης είτε ως κατά παραγγελία κατασκευασµένο. Η περίπτωση στην οποία µπορεί κανείς να κατασκευάσει λογισµικό για δική του προσωπική χρήση δε διαφοροποιείται σε τίποτε από τεχνική άποψη, είναι, ωστόσο, περιορισµένου ενδιαφέροντος, µε το σκεπτικό ότι αποτελεί µια εξαίρεση στην οποία όποιοι κανονισµοί επιβάλλονται από επιστηµονικά θεµελιωµένες προσεγγίσεις, µπορούν να τηρηθούν µε µεγάλη χαλαρότητα. Σε αντίθεση µε τις θεωρητικές επιστήµες, όπου η δυνατότητα χρήσης απεριόριστου χρόνου προκειµένου να επιτευχθεί ένας στόχος είναι µεγαλύτερη, οι νόµοι του ανταγωνισµού και η πίεση του χρόνου δεν επιτρέπουν κάτι τέτοιο µε το λογισµικό. Η επιδίωξη της κατάκτησης µιας καλής θέσης στην αγορά περιορίζει τη δυνατότητα εφαρµογής εξαντλητικών διαδικασιών εξασφάλισης ποιότητας και αποτελεί µια

24 24 KEºA AIO 1: øƒπªπ ª T Ã π π ªπ À από τις βασικές αιτίες για πολλές από τις πληγές του λογισµικού σήµερα. Η λειτουργία των νόµων της αγοράς έχει και άλλο ένα ενδιαφέρον αποτέλεσµα: το καλύτερο από τεχνικής πλευράς λογισµικό δεν είναι κατ ανάγκη και το επικρατέστερο στην αγορά. Σε αρκετές περιπτώσεις, διαµάχες για τεχνολογίες και προϊόντα λογισµικού, οι οποίες εµφανίζονται ως τεχνικές διαµάχες, µόνο τέτοιες δεν είναι. Ο ανταγωνισµός δυσχεραίνει τη συνεργασία µε σκοπό την αναζήτηση του καλύτερου δυνατού αποτελέσµατος. Συχνά, περισσότερες από µία πλευρές κατέχουν η καθεµία ένα µέρος της επιθυµητής λύσης σε ένα πρόβληµα, χωρίς καµία να κατέχει ολόκληρη τη λύση και χωρίς να βαδίζουν από κοινού σε δρόµο σύγκλισης. Κάποιες φορές οι διαµάχες αυτές αποβαίνουν σε όφελος του τελικού καταναλωτή, ενώ σε πολλές περιπτώσεις συµβαίνει ακριβώς το αντίθετο. Επιχειρώντας µια γενική ταξινόµηση των προϊόντων λογισµικού, µπορούµε να διακρίνουµε δύο γενικές κατηγορίες. Το λογισµικό συστή- µατος και το λογισµικό εφαρµογών. Ως λογισµικό συστήµατος γίνεται αντιληπτό εκείνο το λογισµικό χωρίς το οποίο δεν είναι δυνατή η λειτουργία ενός Η/Υ, δηλαδή τα λειτουργικά συστήµατα (operating systems). Εντοπίζοντας υποκατηγορίες, έχουµε τα λειτουργικά συστή- µατα γενικής χρήσης (Unix, DOS, Windows), καθώς και ειδικές περιπτώσεις, όπως λογισµικό προγραµµατισµού (όχι εφαρµογές) αυτόµατων ελεγκτών στη βιοµηχανία. Στην κατηγορία του λογισµικού εφαρµογών ανήκουν, γενικά, όλες οι υπόλοιπες περιπτώσεις. Και εδώ µπορούµε να διακρίνουµε υποκατηγορίες, όπως το λογισµικό επιχειρηµατικών εφαρµογών, εφαρµογών πραγµατικού χρόνου, επιστηµονικών εφαρµογών, εκπαιδευτικών εφαρµογών, προσωπικής χρήσης, τεχνητής νοηµοσύνης κ.ά. Μπορούν να αναζητηθούν και άλλες κατηγορίες ή υποκατηγορίες, σύµφωνα µε άλλη κεντρική ιδέα ταξινόµησης, ώστε ο κατάλογος να συνεχίζεται και να εξειδικεύεται επί µακρόν. Ο ρυθµός των εξελίξεων και η χρήση του λογισµικού σε ολοένα και περισσότερες πλευρές της καθηµερινής ζωής, όχι µόνο στις επαγγελµατικές, έχει καταστήσει ανεπίκαιρες όλες τις απόπειρες ολοκληρωµένης ταξινόµησης του λογισµικού σε κατηγορίες οι οποίες έχουν γίνει στο παρελθόν. Η υπόσταση του λογισµικού ως προϊόντος επιβάλλει για την Τεχνολογία Λογισµικού τη διατύπωση ενός συνόλου κανόνων και διαδικασιών ανά-

25 T π ªπ ø ƒ π / À π πã π π ªπ À 25 πτυξης που να ισορροπούν µεταξύ τεχνικής ορθότητας (στο µέτρο που αυτή είναι θεµελιωµένη), από τη µία, και οικονοµικής εφικτότητας, από την άλλη. Επιπλέον, η ανάπτυξη λογισµικού οφείλει να γίνεται σε «λογικό» χρόνο, ώστε αυτό να εισέρχεται στην αγορά σε στιγµή που η ζήτηση είναι υψηλή και να αποφέρει κέρδη στον κατασκευαστή του. Κοντολογίς, η Τεχνολογία Λογισµικού, ιδωµένη είτε ως µηχανική είτε ως επιστήµη είτε ως τέχνη, είναι µια πρόκληση για όσους αποφασίσουν να ασχοληθούν µε αυτή είτε ερευνητικά είτε στο πεδίο της «µαχόµενης πληροφορικής». Αναφέρετε τουλάχιστον τρία παραδείγµατα λογισµικού συστήµατος και πέντε παραδείγµατα λογισµικού εφαρµογών, τα οποία να είναι προϊόντα που βρίσκονται στην αγορά. εν έχετε παρά να κοιτάξετε µια βιτρίνα καταστήµατος «υψηλής τεχνολογίας» ή να κάνετε µια βόλτα σε δικτυακούς τόπους του Internet. Μερικά χαρακτηριστικά αποτελέσµατα από τη δική µας βόλτα παρατίθενται στο τέλος του κεφαλαίου. Ú ÛÙËÚÈfiÙËÙ ÛÙ ÙÈÎ ÛÙÔÈ Â ÏÔÁÈÛÌÈÎÔ Σύµφωνα µε τον ορισµό που δόθηκε στην Ενότητα 1.1, λογισµικό δεν είναι µόνο ένα εκτελέσιµο πρόγραµµα. Οι χρήστες συνήθως αντιλαµβάνονται ως λογισµικό το «πρόγραµµα» µαζί µε το αντίστοιχο εγχειρίδιο χρήσης. Πέραν αυτών, µέρος του λογισµικού είναι και πολλά ενδιάµεσα προϊόντα που παράγονται στις φάσεις που µεσολαβούν από τον καθορισµό των εργασιών που θα αυτοµατοποιηθούν µε τη βοήθεια του λογισµικού µέχρι την παραγωγή του εκτελέσιµου κώδικα. Τα προϊόντα αυτά είτε είναι ενδιάµεσα συστατικά λογισµικού που παράγονται µέχρι να φτάσουµε στον εκτελέσιµο κώδικα (πηγαίος κώδικας, κώδικας µορφής object, βιβλιοθήκες κ.ά.) είτε περιγράφουν τη δοµή και τη συµπεριφορά του λογισµικού. Στη δεύτερη περίπτωση αναφέρονται µε τον όρο τεκµηρίωση λογισµικού (software documentation) και βρίσκονται σε έντυπη ή σε ηλεκτρονική µορφή. Κατά παρέκκλιση της αυστηρής λεξικογραφικής σηµασίας της λέξης, σε αυτή την τεκµηρίωση του λογισµικού δεν καταγράφεται το γιατί το λογισµικό εκτελεί κάποιες εργασίες ή γιατί τις εκτελεί µε ένα συγκεκριµένο τρόπο, αλλά το ποιες εργασίες θα εκτελεί, πώς θα τις εκτελεί, ποιες δοµές δεδοµένων θα χρησιµοποιηθούν κ.ά.

26 26 KEºA AIO 1: øƒπªπ ª T Ã π π ªπ À Συστατικά λογισµικού: είναι όλα τα προϊόντα που παράγονται κατά την ανάπτυξη του λογισµικού, τα οποία αποτελούν αναπόσπαστο µέρος αυτού. Τα συστατικά λογισµικού µπορούν να ταξινοµηθούν ως προς τη φύση τους, τον τρόπο παραγωγής τους, τη φάση του κύκλου ζωής στην οποία παράγονται, την εσωτερική τους δοµή, τα πρότυπα στα οποία ενδεχο- µένως συµµορφώνονται κ.ά. Ως προς τη φύση διακρίνουµε αυτά που βρίσκονται σε ηλεκτρονική µορφή και αυτά που βρίσκονται σε έντυπη. Ως προς τον τρόπο παραγωγής τους διακρίνουµε αυτά που παράγονται αυτόµατα (κώδικας µορφής object, εκτελέσιµος κώδικας, περιγραφή σχηµάτων βάσεων δεδοµένων κ.ά.) και αυτά που παράγονται µε το χέρι. Η ταξινόµηση ως προς την εσωτερική τους δοµή ποικίλλει ανάλογα µε την τεχνική φύση του περιβάλλοντος ανάπτυξης και λειτουργίας. Τέλος, η συµµόρφωση µε πρότυπα αναφέρεται στη δοµηµένη περιγραφή ορισµένων χαρακτηριστικών του λογισµικού, µε το «δοµηµένη» να αφορά την πειθαρχία απέναντι σε όσα ορίζονται σε ένα ή περισσότερα πρότυπα (standards) που χρησιµοποιούνται για το σκοπό αυτό. Η αναφορά στα πρότυπα µας φέρνει σε ένα σηµαντικό πρόβληµα στο χώρο του λογισµικού. Σήµερα, µέσα στην κοινότητα κατασκευαστών και ερευνητών του λογισµικού υπάρχει ένας πλουραλισµός συµβόλων, τίτλων, ορισµών εννοιών, δοµών κτλ. που αναφέρονται σε παρεµφερείς οντότητες, χωρίς να διευκολύνουν µια καθολική, σαφή και χωρίς διφορούµενα κατανόηση των οντοτήτων που σχετίζονται µε το λογισµικό. Ο πλουραλισµός αυτός είναι έκδηλος παντού: στις µεθοδολογίες ανάπτυξης, στις γλώσσες προγραµµατισµού, στα εργαλεία και αλλού και οδηγεί τους κατασκευαστές στην επιλογή δικών τους επιλύσεων σε διφορούµενα θέµατα τεκµηρίωσης και στη χρήση δικών τους άτυπων συµβολισµών και δοµών, γεγονός που µάλλον δυσχεραίνει το πρόβληµα και αυξάνει τη σύγχυση. Αιτίες της σύγχυσης αυτής µπορούν να αναγνωριστούν σε αρκετά επίπεδα. Πέρα από την αρχική ανωριµότητα, η οποία χαρακτηρίζει κάθε νέο ερευνητικό πεδίο, υπάρχει ο ανταγωνισµός για την εµπορική επικράτηση σε τοµείς όπως τα εργαλεία ανάπτυξης και η παροχή τεχνογνωσίας για την ανάπτυξη λογισµικού. Ακόµα και οι συµβολισµοί και η ορολογία αποτελούν πεδίο διαµάχης και σύγχυσης. Μια αξιοσηµείωτη προσπάθεια για την ανάπτυξη προτύπων για την περιγραφή πολ-

27 À π πã π π ªπ À / 27 λών συστατικών λογισµικού έκανε ο οργανισµός IEEE (the Institute of Electrical and Electronics Engineers). Τα πρότυπα αυτά προσαρ- µόζονται ανάλογα µε τη µεθοδολογία ανάπτυξης και τον ακολουθού- µενο κύκλο ζωής. Ωστόσο, έχουν ένα κάθε άλλο παρά αµελητέο κόστος συγγραφή και ιδιαίτερα διατήρησής τους σε επίκαιρη κατάσταση, µε αποτέλεσµα σε αρκετές περιπτώσεις είτε να καταργούνται στην πράξη είτε να µένουν χωρίς να ενηµερώνονται µε τις µεταβολές που λαµβάνουν χώρα από την αρχική συγγραφή τους και µετά. Ποια από τα παρακάτω είναι συστατικά λογισµικού και ποια όχι; 1. Έκθεση αναγκών του πελάτη 2. Ενηµερωτικό έντυπο για κάποια εφαρµογή ÕÛÎËÛË ÙÔ ÍÈÔÏfiÁËÛË Σχέδιο δοµής λογισµικού 4. Γλώσσα προγραµµατισµού 5. Μηνύµατα σφαλµάτων µεταγλώττισης 6. Περιγραφή των λειτουργιών του λογισµικού 7. Έκθεση προβληµάτων πελάτη 8. Περιγραφή ενεργειών ελέγχου λογισµικού 9. Εκτύπωση αποτελεσµάτων µιας εφαρµογής λογισµικού είτε την απάντηση και συγκρίνετέ την µε τη δική σας. ÓÔ Ë Το λογισµικό είναι ένα σύνθετο τεχνικό κατασκεύασµα που προορίζεται στο να συµβάλλει στην αυτοµατοποίηση επίπονων και επιρρεπών σε σφάλµατα ανθρώπινων εργασιών µε τη βοήθεια ηλεκτρονικού υπολογιστή. Ως λογισµικό δε νοείται µόνο ο εκτελέσιµος κώδικας, αλλά και ένα σύνολο ενδιάµεσων προϊόντων, όπως προδιαγραφές, σχέδια, πηγαίος κώδικας, εκθέσεις ελέγχου κ.ά. Όλα αυτά αποτελούν παράγωγα προϊόντα του κύκλου ζωής του λογισµικού, ο οποίος περιλαµβάνει όλες τις φάσεις, από τη σύλληψη της ιδέας µέχρι και την από-

28 28 KEºA AIO 1: øƒπªπ ª T Ã π π ªπ À συρση µιας εφαρµογής λογισµικού από τη χρήση. Παρά τη σηµαντική πρόοδο που έχει επιτευχθεί στον τοµέα του υλικού των υπολογιστών, η κατασκευή του λογισµικού παρουσιάζει ορισµένα χρόνια σηµαντικά προβλήµατα, που σχετίζονται µε την ποιότητα, το κόστος και τη γενική επάρκεια του τρόπου µε τον οποίο αυτή γίνεται. Τα προβλήµατα αυτά αναφέρονται γενικά ως κρίση λογισµικού (software crisis). Η Τεχνολογία Λογισµικού είναι η περιοχή εκείνη της επιστήµης της µηχανικής που ασχολείται µε την εύρεση και θεµελίωση µεθόδων για να περιγράφεται, να κατασκευάζεται και να συντηρείται λογισµικό καλής ποιότητας µε τη µεγαλύτερη δυνατή αυτοµατοποίηση και παραγωγικότητα και το ελάχιστο δυνατό κόστος. Η Τεχνολογία Λογισµικού δεν είναι µια θεωρητική επιστήµη, αλλά στοχεύει στην υποστήριξη των κατασκευαστών να παραγάγουν καλά προϊόντα λογισµικού. Τα προϊόντα αυτά αντιµετωπίζονται ως αναπόσπαστα τµήµατα του ειδικότερου και ευρύτερου πεδίου χρήσης αυτών, από το οποίο επηρεάζονται και το οποίο επηρεάζουν.

29 MÔÓÙ Ï K ÎÏÔ Zˆ ÔÁÈÛÌÈÎÔ ÎÔapplefi Σκοπός του κεφαλαίου είναι ο ορισµός της έννοιας του Μοντέλου Κύκλου Ζωής Λογισµικού, η γνωριµία µε τα πιο διαδεδοµένα από αυτά, η ταξινόµηση και η κριτική τοποθέτηση των γενικών ποιοτικών χαρακτηριστικών τους. 2 º π ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Μετά τη µελέτη του κεφαλαίου αυτού ο αναγνώστης αναµένεται ότι θα είναι σε θέση να: ιακρίνει τα θεµελιώδη συστατικά της πειθαρχηµένης ανάπτυξης, τα οποία επιβάλλει η Τεχνολογία Λογισµικού. Περιγράφει τις έννοιες «µοντέλο κύκλου ζωής», «διαδικασία ανάπτυξης», «µεθοδολογία» και «εργαλείο» και να µπορεί να τις χρησιµοποιεί. Περιγράφει τα χαρακτηριστικά της ανάπτυξης λογισµικού όπως αυτά προτείνονται από τα επικρατέστερα µοντέλα κύκλου ζωής. ιακρίνει τα θετικά και τα αρνητικά στοιχεία της υιοθέτησης ενός µοντέλου κύκλου ζωής σε συγκεκριµένες συνθήκες. ιακρίνει ποιο µοντέλο κύκλου ζωής εφαρµόζεται σε µια δεδοµένη περίπτωση κατασκευαστή λογισµικού. ιακρίνει περιγραφές των συστατικών στοιχείων του λογισµικού σύµφωνα µε µια ταξινόµηση σε διαφορετικά επίπεδα λεπτοµέρειας. ŒÓÓÔÈ ÎÏÂÈ È Μοντέλο κύκλου ζωής ραστηριότητα ανάπτυξης λογισµικού Μεθοδολογία ανάπτυξης Εργαλείο λογισµικού Προδιαγραφή ανάπτυξη επαλήθευση εξέλιξη λογισµικού Μοντέλο του καταρράκτη Μοντέλο πρωτοτυποποίησης Μοντέλο λειτουργικής επαύξησης Σπειροειδές µοντέλο

30 30 KEºA AIO 2: M KÀ À Zø π ªπ À Μοντέλο του πίδακα Καθολικό, εποπτικό, ατοµικό επίπεδο περιγραφής ÈÛ ÁˆÁÈÎ apple Ú ÙËÚ ÛÂÈ Όπως είδαµε στο πρώτο κεφάλαιο, «η Τεχνολογία Λογισµικού είναι η περιοχή εκείνη της επιστήµης της µηχανικής που ασχολείται µε την εύρεση και θεµελίωση µεθόδων για να περιγράφεται, να κατασκευάζεται και να συντηρείται λογισµικό καλής ποιότητας, µε τη µεγαλύτερη δυνατή αυτοµατοποίηση και παραγωγικότητα και το ελάχιστο δυνατό κόστος». Για να επιτύχει τους σκοπούς της, η Τεχνολογία Λογισµικού οφείλει να περιγράψει τις ενέργειες που πρέπει να συµβαίνουν κατά την ανάπτυξη του λογισµικού, τόσο σε µακροσκοπικό όσο και σε µικροσκοπικό επίπεδο. Σε µακροσκοπικό επίπεδο πρέπει να οριστούν οι γενικές φάσεις από τις οποίες διέρχεται η κατασκευή του λογισµικού, ενώ σε µικροσκοπικό πρέπει να οριστούν οι ενέργειες που γίνονται σε κάθε φάση και τα προϊόντα που παράγονται. εν υπάρχει ένας και µοναδικός τρόπος για να προσδιορίσουµε έστω και τις γενικές φάσεις από τις οποίες διέρχεται η κατασκευή του λογισµικού. Όπως θα δούµε στο κεφάλαιο αυτό, πολλά εξαρτώνται από τις ιδιαίτερες συνθήκες που επικρατούν, όπως η εµπειρία και η τεχνογνωσία του κατασκευαστή, το είδος της εφαρµογής λογισµικού και η πιθανότητα να αλλάξουν οι απαιτήσεις από αυτή κ.ά. Για το λόγο αυτό έχουν προταθεί πολλές εναλλακτικές διαδροµές που µπορεί να ακολουθήσει κανείς στην κατασκευή και τη συντήρηση του λογισµικού, οι οποίες ονοµάζονται «µοντέλα κύκλου ζωής». Στις χαρακτηριστικότερες από αυτές θα αναφερθούµε στο κεφάλαιο αυτό. Το κεφάλαιο αυτό περιέχει τις παρακάτω ενότητες: 2.1 H έννοια του µοντέλου κύκλου ζωής 2.2 Το µοντέλο του καταρράκτη 2.3 Το µοντέλο πρωτοτυποποίησης 2.4 Tο µοντέλο λειτουργικής επαύξησης 2.5 Tο σπειροειδές µοντέλο 2.6 Tο µοντέλο του πίδακα 2.7 Σύγχρονα µοντέλα κύκλου ζωής λογισµικού 2.8 Περιγραφή διαδικασιών ανάπτυξης και προϊόντων λογισµικού

31 H π À ª À À À ø H ÓÓÔÈ ÙÔ ÌÔÓÙ ÏÔ Î ÎÏÔ ˆ Κάθε εφαρµογή λογισµικού, από τη σύλληψη µέχρι την απόσυρσή της, διέρχεται από διάφορες φάσεις, σε καθεµιά εκ των οποίων πρέπει να γίνονται ορισµένες εργασίες ώστε να επιτυγχάνεται το επιθυµητό αποτέλεσµα. Σε µακροσκοπικό επίπεδο οι πολύ γενικές φάσεις είναι: σύλληψη, κατασκευή, χρήση / συντήρηση και απόσυρση και, όπως είναι εύκολα αντιληπτό, λαµβάνουν χώρα µε τη σειρά αυτή. Μια εικόνα των γενικών αυτών φάσεων φαίνεται στο 2.1, που ακολουθεί. Y HæH KATA KEYH XPH H YNTHPH H Πριν αναφερθούµε στον ορισµό του µοντέλου κύκλου ζωής και στα σηµαντικότερα τέτοια µοντέλα που χρησιµοποιούνται σήµερα, είναι σκόπιµο να δοθούν ορισµένοι χρήσιµοι ορισµοί, οι οποίοι θα χρησι- µοποιηθούν εκτεταµένα στη συνέχεια. Σε κάποιους από τους ορισµούς αυτούς ενδεχοµένως ο αναγνώστης να συναντήσει και διαφορετικές απόψεις στη βιβλιογραφία. Όπως έχουµε ήδη αναφέρει, ο πλουραλισµός ελάχιστα διαφοροποιούµενων απόψεων δεν είναι σπάνιος στην Τεχνολογία Λογισµικού, η δε αναφορά πολλών διαφορετικών απόψεων σε αυτό το σηµείο, δεν εξυπηρετεί παρά τη σύγχυση. ραστηριότητα ανάπτυξης λογισµικού Μια δραστηριότητα ή διαδικασία ανάπτυξης λογισµικού (software process) καθορίζει ποιες ενέργειες πρέπει να γίνουν για να επιτευχθεί ένα επιθυµητό αποτέλεσµα σε κάποια από τις φάσεις του κύκλου ζωής. Μια δραστηριότητα µπορεί να αναλύεται σε περισσότερες από µία επιµέρους φάσεις. Η έννοια «ανάπτυξη» στον προηγούµενο ορισµό περιγράφει µια γενική διαδικασία στην οποία υπόκειται το λογισµικό και όχι υποχρεωτικά κατασκευή εκ του µηδενός. Μεθοδολογία ανάπτυξης Μια µεθοδολογία (software development methodology) καθορίζει το πώς θα πρέπει να εκτελούνται οι δραστηριότητες ανάπτυξης, δηλαδή ποιες επιµέρους ενέργειες περιλαµβάνουν, ποια βήµατα γίνονται σε καθεµιά, ποια προϊόντα παράγονται, καθώς και πότε αυτές θεωρούνται περατωθείσες. A O YP H Ì 2.1 Γενικές φάσεις του κύκλου ζωής του λογισµικού

32 32 KEºA AIO 2: M KÀ À Zø π ªπ À Εργαλείο Ένα εργαλείο λογισµικού (CASE: Computer Aided Software Engineering) είναι ένα σύστηµα (συνήθως είναι και το ίδιο εφαρ- µογή λογισµικού) το οποίο υποστηρίζει τη µερική ή (σπάνια) ολική αυτοµατοποίηση των εργασιών που λαµβάνουν χώρα κατά την εφαρµογή των µεθοδολογιών ανάπτυξης λογισµικού. Με βάση τα προηγούµενα, µπορούµε να δώσουµε τον ορισµό του Μοντέλου Κύκλου Ζωής Λογισµικού. Μοντέλο Κύκλου Ζωής Λογισµικού Ένα Μοντέλο Κύκλου Ζωής Λογισµικού είναι µια περιγραφή των δραστηριοτήτων και των επιµέρους φάσεων από τις οποίες διέρχεται µια εφαρµογή λογισµικού από τη σύλληψη µέχρι την απόσυρσή της, καθώς και των εργασιών που λαµβάνουν χώρα σε καθεµιά από τις φάσεις αυτές. Στο Σχήµα 2.2 φαίνεται η σχέση µεταξύ των εννοιών «µοντέλο κύκλου ζωής», «διαδικασία ανάπτυξης», «µεθοδολογία», καθώς και «εργαλείο», οι οποίες ορίστηκαν προηγουµένως. Μια έννοια που βρίσκεται χαµηλότερα στην πυραµίδα αποτελεί το υπόβαθρο πάνω στο οποίο βασίζεται η έννοια που βρίσκεται στο αµέσως ψηλότερο σηµείο κ.ο.κ. EP A EIA ME O O O IE Ì 2.2 Σχέσεις εννοιών στην ανάπτυξη του λογισµικού IA IKA IE ANA TY H MONTE A KYK OY ZøH Τα µοντέλα κύκλου ζωής λογισµικού προσδιορίζουν τις διαδικασίες ανάπτυξης οι οποίες λαµβάνουν χώρα κατά τις γενικές φάσεις «κατασκευή» και «χρήση συντήρηση» (Σχήµα 2.1), προσδιορίζοντας τις επιµέρους φάσεις στις οποίες αυτές αναλύονται, τα προϊόντα που παράγονται σε καθεµία από αυτές, καθώς και τη σειρά εκτέλεσής τους. Σε κάθε διαδικασία ανάπτυξης µπορούµε να διακρίνουµε περισσότερες από µία επιµέρους φάσεις, ενώ σε κάθε επιµέρους φάση µπορού- µε να διακρίνουµε περισσότερες από µία εργασίες. Οι διαδικασίες ανάπτυξης λογισµικού µπορούν να ταξινοµηθούν ως ακολούθως:

33 H π À ª À À À ø 33 ñ Προδιαγραφή, δηλαδή καθορισµός των εργασιών που θα επιτελεί το λογισµικό, καθώς και των περιορισµών και των παραδοχών που ισχύουν. ñ Ανάπτυξη, δηλαδή κατασκευή του λογισµικού. Εδώ, σε όλα τα µοντέλα κύκλου ζωής µπορούµε να διακρίνουµε τρεις επιµέρους φάσεις: την ανάλυση, τη σχεδίαση και τη συγγραφή του πηγαίου κώδικα (source code), την οποία στη συνέχεια θα ονοµάζουµε και κωδικοποίηση. ñ Επαλήθευση, δηλαδή επιβεβαίωση της ικανοποίησης των προδιαγραφών και της µη ύπαρξης σφαλµάτων. ñ Εξέλιξη, δηλαδή επαύξηση των λειτουργικών χαρακτηριστικών του λογισµικού ή τροποποίηση υπαρχουσών, προκειµένου να ικανοποιούνται οι µεταβαλλόµενες ανάγκες. Ένα µοντέλο κύκλου ζωής λογισµικού στοχεύει στην καθοδήγηση του κατασκευαστή προκειµένου αυτός να επιτύχει την καλύτερη δυνατή υλοποίηση των διαδικασιών ανάπτυξης λογισµικού. Λέγοντας «καλύτερη δυνατή», εννοούµε περισσότερο παραγωγική, µε τα λιγότερα δυνατά σφάλµατα και το µικρότερο δυνατό ρίσκο στις εκάστοτε συνθήκες. Τα παραπάνω µπορούν να διαφοροποιούνται ανάλογα µε το µέγεθος και το θεµατικό πεδίο κάθε εφαρµογής λογισµικού, µε την εµπειρία και τα ιδιαίτερα χαρακτηριστικά του κάθε κατασκευαστή και, ασφαλώς, µε το εκάστοτε περιβάλλον ανάπτυξης. Μια σηµαντική παράµετρος που καταδεικνύει τη σηµασία των µοντέλων κύκλου ζωής είναι το κόστος, ιδωµένο µε την ευρύτερη σηµασία του. Το κόστος αναθεώρησης αποφάσεων ή/και διόρθωσης σφαλµάτων είναι τόσο µεγαλύτερο, όσο µεγαλύτερη είναι και η απαιτούµενη οπισθοδρόµηση της διαδικασίας που αυτή συνεπάγεται. Το κόστος αυτό δεν αφορά µόνο οικονοµικούς πόρους που αποδίδονται στο έργο, αλλά και χρόνο καθυστέρησης, που δεν είναι πάντα διαθέσιµος σε πραγµατικές συνθήκες. Επίσης, είναι συχνό φαινόµενο οι παρενέργειες στο υπόλοιπο σύστηµα λογισµικού (side effects), οι οποίες µπορούν να µεταβάλλουν προς το χειρότερο τα ποιοτικά του χαρακτηριστικά και δεν είναι εύκολο να εντοπιστούν από την αρχή. Υπάρχουν αρκετά µοντέλα κύκλου ζωής, τα οποία διαφοροποιούνται ως προς τη σύλληψη της ιδέας του τρόπου κατασκευής, αλλά και ως

ΚΕΦΑΛΑΙΟ 1 ΓΝΩΡΙΜΙΑ ΜΕ ΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ. Σκοπός. Προσδοκώμενα αποτελέσματα. Έννοιες-κλειδιά

ΚΕΦΑΛΑΙΟ 1 ΓΝΩΡΙΜΙΑ ΜΕ ΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ. Σκοπός. Προσδοκώμενα αποτελέσματα. Έννοιες-κλειδιά ΚΕΦΑΛΑΙΟ 1 ΓΝΩΡΙΜΙΑ ΜΕ ΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Σκοπός Σκοπός του κεφαλαίου αυτού είναι ο ορισμός της έννοιας του λογισμικού, η τοποθέτησή του μέσα στις δραστηριότητες των οποίων η εκτέλεση πραγματοποιείται

Διαβάστε περισσότερα

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΚΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ρ. Βασίλειος Βεσκούκης ΠΕΙΡΑΙΑΣ, 2000 Περιεχόµενα 1. ΓΝΩΡΙΜΙΑ ΜΕ ΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ...7 1.1. ΥΠΟΛΟΓΙΣΤΕΣ ΚΑΙ ΛΟΓΙΣΜΙΚΟ...7

Διαβάστε περισσότερα

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

Tεχνολογία Λογισµικού II Tεχνολογία Λογισµικού II ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος B' Tεχνολογία Λογισµικού II BAΣIΛEIOΣ

Διαβάστε περισσότερα

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

Διαβάστε περισσότερα

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ E π A π π ª π EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ TfiÌÔ A' HÏ appleèù ÎË EÈÛ ÁˆÁ ÛÙËÓ EappleÈÛÙ ÌË ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

Διαβάστε περισσότερα

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ B' ÏÔ apple Ú ÎË ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα APXEΣ TEXNOΛOΓIAΣ

Διαβάστε περισσότερα

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

Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

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

Εισαγωγή στην Τεχνολογία Λογισµικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Εισαγωγή στην Τεχνολογία Λογισµικού Νίκος Παπασπύρου Γιάννης Μαΐστρος Βασίλης

Διαβάστε περισσότερα

Θεωρία Πληροφορίας και Kωδικοποίησης

Θεωρία Πληροφορίας και Kωδικοποίησης Θεωρία Πληροφορίας και Kωδικοποίησης Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική

Διαβάστε περισσότερα

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

Εισαγωγή στην Τεχνολογία Λογισµικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Τι είναι Λογισµικό; Προγράµµατα ηλεκτρονικού υπολογιστή οµές δεδοµένων µε µόνιµη

Διαβάστε περισσότερα

TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ I HPOºOPIKH. TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ I AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ, TfiÌÔ A' APXE TEXNO O IA O I MIKOY. TfiÌÔ A' B Û ÏÂÈÔ BÂÛÎÔ ÎË.

TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ I HPOºOPIKH. TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ I AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ, TfiÌÔ A' APXE TEXNO O IA O I MIKOY. TfiÌÔ A' B Û ÏÂÈÔ BÂÛÎÔ ÎË. E π A π π ªπ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ I AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ, TfiÌÔ A' B Û ÏÂÈÔ BÂÛÎÔ ÎË HPOºOPIKH TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ I APXE TEXNO O IA O I MIKOY TfiÌÔ A' Á ÚËÌ ÙÔ fiùëûë: E Úˆapple Î EappleÈÙÚÔapple, E Úˆapple

Διαβάστε περισσότερα

Σκοπός του μαθήματος

Σκοπός του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Βασικές Έννοιες Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Σκοπός του μαθήματος Η απόκτηση των γνώσεων

Διαβάστε περισσότερα

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ E π A π π ª π EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ TfiÌÔ ' KÏ ÓıË Ú ÌappleÔ Ï Ë ÏÒÛÛ ÚÔÁÚ ÌÌ ÙÈÛÌÔ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

Διαβάστε περισσότερα

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ ' AÓ Ú T fiáèô TÔ KfiÛÙÔ ÙË ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ Θεµατική

Διαβάστε περισσότερα

EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ

EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ B' NÈÎfiÏ Ô TÚ ÏÈ EappleÈıÂÒÚËÛË ÛÙËÌ ÙˆÓ ÁÈ ÙËÓ ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ. Θεµατική Eνότητα BΑΣΙΚΑ ΖΗΤΗΜΑΤΑ ΙΚΤΥΩΝ Η/Υ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ. Θεµατική Eνότητα BΑΣΙΚΑ ΖΗΤΗΜΑΤΑ ΙΚΤΥΩΝ Η/Υ ίκτυα Yπολογιστών I Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα και πληρότητα

Διαβάστε περισσότερα

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

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

Διαβάστε περισσότερα

E π A π π ª π. Â È ÛÌfi ÔÁÈÛÌÈÎÔ. TfiÌÔ ' ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II. KÏÂ ÓıË Ú ÌappleÔ Ï Ë. (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi )

E π A π π ª π. Â È ÛÌfi ÔÁÈÛÌÈÎÔ. TfiÌÔ ' ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II. KÏÂ ÓıË Ú ÌappleÔ Ï Ë. (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi ) E π A π π ª π Â È ÛÌfi ÔÁÈÛÌÈÎÔ TfiÌÔ ' KÏÂ ÓıË Ú ÌappleÔ Ï Ë ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi ) ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

Διαβάστε περισσότερα

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

Μεθοδολογίες Παραγωγής Λογισµικού Μεθοδολογίες Παραγωγής Λογισµικού Βασικά Γενικά Μοντέλα Μοντέλο καταρράκτη (waterfall model) Ξεχωριστές φάσεις καθορισµού απαιτήσεων και ανάπτυξης, επικύρωσης, εξέλιξης Εξελικτική ανάπτυξη (evolutionary

Διαβάστε περισσότερα

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ E' AÓ Ú T fiáèô ÛÂÈ ÚÔÌËıÂ Ù AÁÔÚ ÛÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ Θεµατική

Διαβάστε περισσότερα

E π A π π ª π. Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi. MÔÓÙÂÏÔappleÔ ËÛË. TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË Î È ÚÔÛÔÌÔ ˆÛË

E π A π π ª π. Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi. MÔÓÙÂÏÔappleÔ ËÛË. TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË Î È ÚÔÛÔÌÔ ˆÛË E π A π π ª π Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi Î È MÔÓÙÂÏÔappleÔ ËÛË TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË MÔÓÙÂÏÔappleÔ ËÛË Î È ÚÔÛÔÌÔ ˆÛË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

Διαβάστε περισσότερα

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË E π A π π ª π ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË TfiÌÔ A' B Û ÏÂÈÔ KfiÌË È ÎÙÈÎ ÙË ÏËÚÔÊÔÚÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

Διαβάστε περισσότερα

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 1 Εισαγωγή (1/2) Ø Διεξαγωγή Μαθήµατος Ø Κάθε Πέµπτη Ø Εργασία

Διαβάστε περισσότερα

Aρχές Διοίκησης Επιχειρήσεων

Aρχές Διοίκησης Επιχειρήσεων Aρχές Διοίκησης Επιχειρήσεων Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα

Διαβάστε περισσότερα

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

Διαβάστε περισσότερα

E π A π π ª π. ÚÔÁÚ ÌÌ ÙÈÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. TfiÌÔ A' Â È ÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. AÁÁÂÏfiappleÔ ÏÔ

E π A π π ª π. ÚÔÁÚ ÌÌ ÙÈÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. TfiÌÔ A' Â È ÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. AÁÁÂÏfiappleÔ ÏÔ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ A' X Ú Ï ÌappleÔ AÁÁÂÏfiappleÔ ÏÔ Â È ÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH

Διαβάστε περισσότερα

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ E π A π Δ π Δ ª π OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ Aı Ó ÛÈÔ X ÛÈ Îfi ËÌ ÙÚÈÔ ÂÔ ˆÚ ÎfiappleÔ ÏÔ TfiÌÔ ' XÚÔÓÈÎfi Î È OÈÎÔÓÔÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi ŒÚÁˆÓ Xρονικός και Oικονομικός Προγραμματισμός Έργων Σημείωση Το

Διαβάστε περισσότερα

Ψηφιακή επεξεργασία εικόνων και σηµάτων

Ψηφιακή επεξεργασία εικόνων και σηµάτων Ψηφιακή επεξεργασία εικόνων και σηµάτων Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική

Διαβάστε περισσότερα

ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ

ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ E π A π π ª π ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ TfiÌÔ ' NÈÎfiÏ Ô ÔÁÔı ÙË È ÈÎ Û Â Î È T ÓÈÎ ÓÂ Ô BÂÏÙ ˆÛË ÙË ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας

Διαβάστε περισσότερα

Eισαγωγή στην Πυρηνική Φυσική

Eισαγωγή στην Πυρηνική Φυσική Eισαγωγή στην Πυρηνική Φυσική Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα

Διαβάστε περισσότερα

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) :13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών

K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) :13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) 18-10-06 09:13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως

Διαβάστε περισσότερα

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË E π A π π ª π ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË TfiÌÔ B' B Û ÏÂÈÔ KfiÌË AÓ ÛÙ ÛÈÔ MÈÎÚfiappleÔ ÏÔ ÏËÚÔÊÔÚÈÎ ÛÙËÓ EÎapple  ÛË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ

B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ E π A π π ª π B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ TfiÌÔ E' Aı Ó ÛÈÔ apple ÚÁ ÚË ÂÈÁÌ ÙÔÏË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IΣΦAΛIΣH

Διαβάστε περισσότερα

E π A π π ª π. È ÎÚÈÙ M ıëì ÙÈÎ. Î È M ıëì ÙÈÎ ÔÁÈÎ. TfiÌÔ A' È ÎÚÈÙ M ıëì ÙÈÎ ÂÒÚÁÈÔ BÔ ÚÔ

E π A π π ª π. È ÎÚÈÙ M ıëì ÙÈÎ. Î È M ıëì ÙÈÎ ÔÁÈÎ. TfiÌÔ A' È ÎÚÈÙ M ıëì ÙÈÎ ÂÒÚÁÈÔ BÔ ÚÔ E π A π π ª π È ÎÚÈÙ M ıëì ÙÈÎ Î È M ıëì ÙÈÎ ÔÁÈÎ TfiÌÔ A' ÂÒÚÁÈÔ BÔ ÚÔ È ÎÚÈÙ M ıëì ÙÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ Θεµατική Eνότητα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ E π A π π ª π ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ TfiÌÔ A' ˆÎÚ ÙË K ÙÛÈÎ AÛÊ ÏÂÈ YappleÔÏÔÁÈÛÙÒÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

Διαβάστε περισσότερα

Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής

Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής M E KO. E. (192Û.) 23/5/2003 15:36 ÂÏ 1 Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη

Διαβάστε περισσότερα

ΕλεγχοΣ, Αξιοπιστία και Διασφάλιση Ποιότητασ Λογισµικού Πολυπλοκότητα

ΕλεγχοΣ, Αξιοπιστία και Διασφάλιση Ποιότητασ Λογισµικού Πολυπλοκότητα ΕλεγχοΣ, Αξιοπιστία και Διασφάλιση Ποιότητασ Λογισµικού Πολυπλοκότητα Τµήµα Διοίκησης Επιχειρήσεων ΤΕΙ Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 4 05/05/16 2 Σχεδιάζοντας Λογισµικό Τι είναι ποιοτικό

Διαβάστε περισσότερα

Σχεδιασμός και Eκτίμηση Έργων

Σχεδιασμός και Eκτίμηση Έργων Σχεδιασμός και Eκτίμηση Έργων Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό

Διαβάστε περισσότερα

K Ì ÚÈÓfi (232ÛÂÏ.) 23/3/ :03 ÂÏ 1. Mικροηλεκτρονική

K Ì ÚÈÓfi (232ÛÂÏ.) 23/3/ :03 ÂÏ 1. Mικροηλεκτρονική K Ì ÚÈÓfi (232ÛÂÏ.) 23/3/2004 13:03 ÂÏ 1 Mικροηλεκτρονική Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

Διαβάστε περισσότερα

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Τι είναι διαχείριση απαιτήσεων Ποια είναι η ροή των εργασιών στη φάση της καταγραφής των

Διαβάστε περισσότερα

KO MA E I O OIH H 30/5/ :32 ÂÏ 1. Eπιστήµη Πολυµερών

KO MA E I O OIH H 30/5/ :32 ÂÏ 1. Eπιστήµη Πολυµερών KO MA E I O OIH H 30/5/2003 12:32 ÂÏ 1 Eπιστήµη Πολυµερών Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Η έννοια πρόβληµα Ανάλυση προβλήµατος Με τον όρο πρόβληµα εννοούµε µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή ούτε προφανής. Μερικά προβλήµατα είναι τα εξής:

Διαβάστε περισσότερα

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛˆÓ. I.. ÂÚÔı Ó ÛË

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛˆÓ. I.. ÂÚÔı Ó ÛË E π A π π ª π OÚÁ ÓÈÎ XËÌ TfiÌÔ ' I.. ÂÚÔı Ó ÛË º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛÂˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας ΣΠΟΥ ΕΣ ΣΤΙΣ ΦΥΣΙΚΕΣ ΕΠΙΣΤΗΜΕΣ Oργανική Xηµεία Tόµος

Διαβάστε περισσότερα

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

Εισαγωγή στην τεχνολογία λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 1 Εισαγωγή στην τεχνολογία λογισμικού Στόχοι Έννοια της τεχνολογίας λογισμικού (ΤΛ) και ερμηνεία της σημασίας της Απαντήσεις σε θεμελιώδεις ερωτήσεις για την ΤΛ Ανάδειξη ηθικών και επαγγελματικών ζητημάτων

Διαβάστε περισσότερα

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 6 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 6 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

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

Σχεδίαση Λογισμικού. Σημείωση Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό

Διαβάστε περισσότερα

ιαχείριση και Ποιότητα Λογισµικού

ιαχείριση και Ποιότητα Λογισµικού ιαχείριση και Ποιότητα Λογισµικού Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα

Διαβάστε περισσότερα

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ E π A π Δ π Δ ª π È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ TfiÌÔ ' ËÌ ÙÚÈÔ ÂˆÚÁ Î ÎË YÁÚ ÂˆÚÁÈÎ Aapplefi ÏËÙ Yγρά Γεωργικά Aπόβλητα Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων

Διαβάστε περισσότερα

Aισθητήρες και Mικροαισθητήρες

Aισθητήρες και Mικροαισθητήρες TÛÔ Î Ï (128Û.) 2/1/2004 14:03 ÂÏ 1 Aισθητήρες και Mικροαισθητήρες Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

Διαβάστε περισσότερα

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

Διαβάστε περισσότερα

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

Διαβάστε περισσότερα

Τεχνολογία Λογισµικού Ι Κεφάλαιο 3 Μια αναλυτικότερη προσέγγιση στην δραστηριότητα 3.10

Τεχνολογία Λογισµικού Ι Κεφάλαιο 3 Μια αναλυτικότερη προσέγγιση στην δραστηριότητα 3.10 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 3 Μια αναλυτικότερη προσέγγιση στην δραστηριότητα 3.10 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2 ΜΟΝΤΕΛΑ ΚΥΚΛΟΥ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ. Σκοπός. Έννοιες-κλειδιά

ΚΕΦΑΛΑΙΟ 2 ΜΟΝΤΕΛΑ ΚΥΚΛΟΥ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ. Σκοπός. Έννοιες-κλειδιά ΚΕΦΑΛΑΙΟ 2 ΜΟΝΤΕΛΑ ΚΥΚΛΟΥ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ Σκοπός Σκοπός του κεφαλαίου είναι ο ορισμός της έννοιας του μοντέλου κύκλου ζωής λογισμικού, η γνωριμία με τα πιο διαδεδομένα από αυτά τα μοντέλα, η ταξινόμηση

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 435: ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΥΠΟΛΟΓΙΣΤΗ Ακαδηµαϊκό Έτος 2004 2005, Χειµερινό Εξάµηνο 2 Η ΟΜΑ ΙΚΗ ΕΡΓΑΣΙΑ: ΑΝΑΠΤΥΞΗ ΑΡΧΙΚΗΣ Ι ΕΑΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΝΑΓΚΩΝ

Διαβάστε περισσότερα

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ E π A π π ª π ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ TfiÌÔ B' ˆÎÚ ÙË K ÙÛÈÎ AÛÊ ÏÂÈ ÈÎÙ ˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική

Διαβάστε περισσότερα

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

συναντήσεις εργασίας εκτέλεση ρόλου διευθυντή σεμινάρια σύνταξη γραπτής εργασίας τελικό σεμινάριο έκθεση αξιολόγηση 1.ΟΜΑ ΙΚΗ ΜΕΘΟ ΟΣ ΕΡΓΑΣΙΑΣ Στη οµαδική µέθοδο οι µαθητές θα γνωρίσουν την οργάνωση και τον τεχνολογικό εξοπλισµό των βιοµηχανικών µονάδων, τις πρώτες ύλες που χρησιµοποιούν, τις διαδικασίες παραγωγής των

Διαβάστε περισσότερα

Κεφάλαιο 7: Τεχνολογία Λογισμικού

Κεφάλαιο 7: Τεχνολογία Λογισμικού Κεφάλαιο 7: Τεχνολογία Λογισμικού Η Επιστήμη των Υπολογιστών: Μια Ολοκληρωμένη Παρουσίαση (δέκατη αμερικανική έκδοση) J. Glenn Brookshear Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ ΠΡΩΤΟ ΕΙΣΑΓΩΓΗ Η ΠΟΛΙΤΙΚΗ ΚΑΙ Ο ΠΟΛΕΜΟΣ. Γενικά στοιχεία Περιεχόµενα Οδηγός για µελέτη

ΚΕΦΑΛΑΙΟ ΠΡΩΤΟ ΕΙΣΑΓΩΓΗ Η ΠΟΛΙΤΙΚΗ ΚΑΙ Ο ΠΟΛΕΜΟΣ. Γενικά στοιχεία Περιεχόµενα Οδηγός για µελέτη ΚΕΦΑΛΑΙΟ ΠΡΩΤΟ ΕΙΣΑΓΩΓΗ Η ΠΟΛΙΤΙΚΗ ΚΑΙ Ο ΠΟΛΕΜΟΣ Γενικά στοιχεία Περιεχόµενα Οδηγός για µελέτη Το παρόν ηλεκτρονικό εγχειρίδιο έχει ως στόχο του να παρακολουθήσει τις πολύπλοκες σχέσεις που συνδέουν τον

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

1 Ανάλυση Προβλήματος

1 Ανάλυση Προβλήματος 1 Ανάλυση Προβλήματος 1.1 Η Έννοια Πρόβλημα Τι είναι δεδομένο; Δεδομένο είναι οτιδήποτε μπορεί να γίνει αντιληπτό από έναν τουλάχιστον παρατηρητή, με μία από τις πέντε αισθήσεις του. Τι είναι επεξεργασία

Διαβάστε περισσότερα

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

Tεχνολογία Λογισµικού II Tεχνολογία Λογισµικού II ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος B' Tεχνολογία Λογισµικού II BAΣIΛEIOΣ

Διαβάστε περισσότερα

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον»

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον» 1. Κύκλος ζωής λογισμικού Ο κύκλος ζωής λογισμικού είναι οι φάσεις (τα στάδια) από τις οποίες διέρχεται μία εφαρμογή λογισμικού, από την σύλληψη της ιδέας, τη διαδικασία κατασκευής / ανάπτυξης, τη λειτουργία

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 13 ΔΙΑΣΦΑΛΙΣΗ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη

ΚΕΦΑΛΑΙΟ 13 ΔΙΑΣΦΑΛΙΣΗ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη ΚΕΦΑΛΑΙΟ 13 ΔΙΑΣΦΑΛΙΣΗ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Σκοπός του κεφαλαίου είναι να εισάγει τον αναγνώστη στις βασικές έννοιες της διασφάλισης ποιότητας λογισμικού, στα πρότυπα και στις διαδικασίες που ακολουθούνται.

Διαβάστε περισσότερα

µ : µ µ µ. µ / µ. µ, µ µ. µ µ. µ µ,. µ µ µ, µµ.

µ : µ µ µ. µ / µ. µ, µ µ. µ µ. µ µ,. µ µ µ, µµ. µ : µ µ µ. µ / µ. µ, µ µ. µ µ. µ µ,. µ µ µ, µµ. µ µ : µ µ µ µ. µ µµ, µ. µ µµ µ µ µ µ., µ µ µ µ 2005 µ µµ µ µ µ µ., µ µ µ µ µ µ µ µ µ µ µ µ µ µ µ opusmagnum µ µ / 1997-2005 ISBN: 960-538-562-7 : 37/3 Copyright

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

Σύµµικτες Kατασκευές

Σύµµικτες Kατασκευές TÚÈ ÓÙ Ê ÏÏÔ / ÂÏÈ. 10-06-05 15:39 ÂÏ 1 Σύµµικτες Kατασκευές Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

Διαβάστε περισσότερα

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

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης Μάρα Νικολαϊδου Μοντελοποίηση Συστήµατος Περιπτώσεις χρήσης Οι περιπτώσεις χρήσης είναι µια τεχνική

Διαβάστε περισσότερα

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται special report τoυ Γιώργου Φετοκάκη / gfetokakis@boussias.com Jobs scheduling Η χρυσή τοµή της αυτοµατοποίησης Μια λύση job scheduling πρέπει να είναι αρκετά περιεκτική. Πρέπει να υποστηρίζει την ενσωµάτωση

Διαβάστε περισσότερα

Ποιότητα και Πρότυπα στη Διοίκηση Επιχειρήσεων Συστήµατα Διασφάλισης Ποιότητας ISO Διεργασιακή Προσέγγιση Διάλεξη 3

Ποιότητα και Πρότυπα στη Διοίκηση Επιχειρήσεων Συστήµατα Διασφάλισης Ποιότητας ISO Διεργασιακή Προσέγγιση Διάλεξη 3 Ποιότητα και Πρότυπα στη Διοίκηση Επιχειρήσεων Συστήµατα Διασφάλισης Ποιότητας ISO 9001- Διεργασιακή Προσέγγιση Διάλεξη 3 Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή ISO 9001:

Διαβάστε περισσότερα

Θεµέλια Γραµµικού Προγραµµατισµού

Θεµέλια Γραµµικού Προγραµµατισµού Θεµέλια Γραµµικού Προγραµµατισµού Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΑΠΟΦΑΣΕΩΝ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΥΣΤΗΜΑΤΑ ΑΠΟΦΑΣΕΩΝ Ενημερωτικό Φυλλάδιο Αθήνα, Οκτώβριος 2016 Εργαστήριο

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

Διαβάστε περισσότερα

2.2 Οργάνωση και ιοίκηση (Μάνατζµεντ -Management) 2.2.1. Βασικές έννοιες 2.2.2 Ιστορική εξέλιξη τον µάνατζµεντ.

2.2 Οργάνωση και ιοίκηση (Μάνατζµεντ -Management) 2.2.1. Βασικές έννοιες 2.2.2 Ιστορική εξέλιξη τον µάνατζµεντ. 2.2 Οργάνωση και ιοίκηση (Μάνατζµεντ -Management) 2.2.1. Βασικές έννοιες Έχει παρατηρηθεί ότι δεν υπάρχει σαφής αντίληψη της σηµασίας του όρου "διοίκηση ή management επιχειρήσεων", ακόµη κι από άτοµα που

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

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

ΕΝΝΟΙΑ ΤΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ Η ΣΗΜΑΣΙΑ ΤΟΥΣ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ΟΙΚΟΝΟΜΙΑ κεφάλαιο 1 ΕΝΝΟΙΑ ΤΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ Η ΣΗΜΑΣΙΑ ΤΟΥΣ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ΟΙΚΟΝΟΜΙΑ 1. Εισαγωγή Μ έχρι αρκετά πρόσφατα, η έννοια του μάρκετινγκ των υπηρεσιών αποτελούσε μια έννοια χωρίς ιδιαίτερη αξία αφού, πρακτικά,

Διαβάστε περισσότερα

Μεθοδική Ανάπτυξη Δικτυακής Υποδομής. Παρουσίαση στην ημερίδα για Σύγχρονες τάσεις στις Τηλεπικοινωνίες και Τεχνολογίες Αιχμής

Μεθοδική Ανάπτυξη Δικτυακής Υποδομής. Παρουσίαση στην ημερίδα για Σύγχρονες τάσεις στις Τηλεπικοινωνίες και Τεχνολογίες Αιχμής Μεθοδική Ανάπτυξη Δικτυακής Υποδομής Παρουσίαση στην ημερίδα για Σύγχρονες τάσεις στις Τηλεπικοινωνίες και Τεχνολογίες Αιχμής 14-01-2006 1 Περιεχόμενα Η ανάγκη για μεθοδικό σχεδιασμό δικτύων Μία δομημένη

Διαβάστε περισσότερα

E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I. TfiÌÔ ' HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi. NÈÎfiÏ Ô. K Ï ÊË

E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I. TfiÌÔ ' HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi. NÈÎfiÏ Ô. K Ï ÊË E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I TfiÌÔ ' NÈÎfiÏ Ô. K Ï ÊË HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΣΠOY EΣ ΣTIΣ ΦYΣIKEΣ EΠIΣTHMEΣ Θεµατική

Διαβάστε περισσότερα

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ E π A π Δ π Δ ª π È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ ËÌ ÙÚÈÔ ÂˆÚÁ Î ÎË TfiÌÔ ' ÙÂÚ ˆÚÁÈÎ Aapplefi ÏËÙ Στερεά Γεωργικά Aπόβλητα Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ E π A π Δ π Δ ª π OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ TfiÌÔ A' ÂÒÚÁÈÔ KÔÚÚ Aı Ó ÛÈÔ X ÛÈ Îfi OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ Oικονομική Tεχνικών Έργων Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη

Διαβάστε περισσότερα

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

Σχεδιαστής Ιστοσελίδων Σχεδιαστής Ιστοσελίδων 1. Περιγραφή Ρόλου Τίτλος Προφίλ Σχεδιαστής Ιστοσελίδων Γνωστό και ως Συνοπτική Ένας σχεδιαστής ιστοσελίδων κατασκευάζει και ενημερώνει ιστοσελίδες ως προς τη σχεδίαση και τη διαμόρφωση

Διαβάστε περισσότερα

6. Διαχείριση Έργου. Έκδοση των φοιτητών

6. Διαχείριση Έργου. Έκδοση των φοιτητών 6. Διαχείριση Έργου Έκδοση των φοιτητών Εισαγωγή 1. Η διαδικασία της Διαχείρισης Έργου 2. Διαχείριση κινδύνων Επανεξέταση Ερωτήσεις Αυτοαξιολόγησης Διαχείριση του έργου είναι να βάζεις σαφείς στόχους,

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΡΟΧΩΡΗΜΕΝΕΣ ΣΠΟΥ ΕΣ ΣΤΗ ΦΥΣΙΚΗ.

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΡΟΧΩΡΗΜΕΝΕΣ ΣΠΟΥ ΕΣ ΣΤΗ ΦΥΣΙΚΗ. Σηµείωση: Οι εικόνες οι οποίες έχουν περιληφθεί στον παρόντα τόµο χρησιµοποιούνται για καθαρά εκπαιδευτικούς σκοπούς και υποκαθιστούν την προβολή εικαστικού υλικού στο πλαίσιο µιας διάλεξης. Παρατίθενται

Διαβάστε περισσότερα

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1)

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) 2. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΟΒΛΗΜΑΤΟΣ H υλοποίηση ενός προβλήµατος σε σύστηµα Η/Υ που επιδεικνύει ΤΝ 1 απαιτεί: Την κατάλληλη περιγραφή του προβλήµατος

Διαβάστε περισσότερα

αντισταθµίζονται µε τα πλεονεκτήµατα του άλλου, τρόπου βαθµολόγησης των γραπτών και της ερµηνείας των σχετικών αποτελεσµάτων, και

αντισταθµίζονται µε τα πλεονεκτήµατα του άλλου, τρόπου βαθµολόγησης των γραπτών και της ερµηνείας των σχετικών αποτελεσµάτων, και 1. ΕΙΣΑΓΩΓΗ Όλα τα είδη ερωτήσεων που αναφέρονται στο «Γενικό Οδηγό για την Αξιολόγηση των µαθητών στην Α Λυκείου» µπορούν να χρησιµοποιηθούν στα Μαθηµατικά, τόσο στην προφορική διδασκαλία/εξέταση, όσο

Διαβάστε περισσότερα

Eπικοινωνία Aνθρώπου Yπολογιστή

Eπικοινωνία Aνθρώπου Yπολογιστή ABOYPH /264Û. 4/6/2003 09:45 ÂÏ 1 Eπικοινωνία Aνθρώπου Yπολογιστή Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

Διαβάστε περισσότερα

ΕΠΙΚΟΙΝΩΝΙΑΚΗ ΔΙΑΧΕΙΡΙΣΗ ΚΡΙΣΕΩΝ. Communications Crisis Management

ΕΠΙΚΟΙΝΩΝΙΑΚΗ ΔΙΑΧΕΙΡΙΣΗ ΚΡΙΣΕΩΝ. Communications Crisis Management ΕΠΙΚΟΙΝΩΝΙΑΚΗ ΔΙΑΧΕΙΡΙΣΗ ΚΡΙΣΕΩΝ Communications Crisis Management ΕΠΙΚΟΙΝΩΝΙΑΚΗ ΔΙΑΧΕΙΡΙΣΗ ΚΡΙΣΕΩΝ Καράβια βουλιάζουν. Αεροσκάφη πέφτουν. Προϊόντα ανακαλούνται. Εταιρίες μηνύονται για ληγμένα τρόφιμα ή

Διαβάστε περισσότερα

Τι είναι τα Συστήµατα Γεωγραφικών Πληροφοριών. (Geographical Information Systems GIS)

Τι είναι τα Συστήµατα Γεωγραφικών Πληροφοριών. (Geographical Information Systems GIS) Τι είναι τα Συστήµατα Γεωγραφικών Πληροφοριών (Geographical Information Systems GIS) ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ, ΤΜΗΜΑ ΓΕΩΓΡΑΦΙΑΣ ΧΑΛΚΙΑΣ ΧΡΙΣΤΟΣ Εισαγωγή στα GIS 1 Ορισµοί ΣΓΠ Ένα σύστηµα γεωγραφικών πληροφοριών

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Θεσσαλονίκη 17-12-2006 Αγαπητοί φοιτητές & φοιτήτριες, στη συνέχεια θα συνοψίσω το περιεχόµενο της δεύτερης φετινής ΟΣΣ, η οποία διεξήχθη την Κυριακή 10 εκεµβρίου µε παρόντες τους 23 από τους 32+2 φοιτητές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Η συµληρωµατικότητα σηµαίνει ότι οι καταναλωτές σε αυτές τις αγορές αγοράζουν συστήµατα.

Η συµληρωµατικότητα σηµαίνει ότι οι καταναλωτές σε αυτές τις αγορές αγοράζουν συστήµατα. ΚΕΦΑΛΑΙΟ 1 1 ΕΙΣΑΓΩΓΗ 1.1 ΒΑΣΙΚΑ ΣΗΜΕΙΑ Η Βιοµηχανία των δικτύων περιλαµβάνει: το τηλέφωνο, το e-mail, το Internet, υλικό εξοπλισµό Η/Υ, λογισµικό Η/Υ, µηχανές παιξίµατος µουσικής και βίντεο, τίτλους µουσικής,

Διαβάστε περισσότερα