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

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

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

Transcript

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

2

3 Περιεχόµενα 1. ΓΝΩΡΙΜΙΑ ΜΕ ΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΥΠΟΛΟΓΙΣΤΕΣ ΚΑΙ ΛΟΓΙΣΜΙΚΟ ΤΕΧΝΙΚΕΣ ΚΑΤΑΣΚΕΥΕΣ ΚΑΙ ΛΟΓΙΣΜΙΚΟ ΚΡΙΣΗ ΛΟΓΙΣΜΙΚΟΥ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΤΟΛΟΓΙΣΜΙΚΟΩΣΜΕΡΟΣΣΥΣΤΗΜΑΤΩΝ ΤΟ ΛΟΓΙΣΜΙΚΟ ΩΣ ΠΡΟΪΟΝ ΣΥΣΤΑΤΙΚΑ ΣΤΟΙΧΕΙΑ ΛΟΓΙΣΜΙΚΟΥ ΣΥΝΟΨΗ ΘΕΜΑΤΑ ΓΙΑ ΠΕΡΑΙΤΕΡΩ ΕΝΑΣΧΟΛΗΣΗ - ΑΣΚΗΣΕΙΣ ΜΟΝΤΕΛΑ ΚΥΚΛΟΥ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ Η ΕΝΝΟΙΑ ΤΟΥ ΜΟΝΤΕΛΟΥ ΚΥΚΛΟΥ ΖΩΗΣ ΤΟ ΜΟΝΤΕΛΟ ΤΟΥ ΚΑΤΑΡΡΑΚΤΗ ΤΟ ΜΟΝΤΕΛΟ ΠΡΩΤΟΤΥΠΟΠΟΙΗΣΗΣ ΤΟ ΜΟΝΤΕΛΟ ΛΕΙΤΟΥΡΓΙΚΗΣ ΕΠΑΥΞΗΣΗΣ ΤΟ ΣΠΕΙΡΟΕΙ ΕΣ ΜΟΝΤΕΛΟ ΤΟ ΜΟΝΤΕΛΟ ΤΟΥ ΠΙ ΑΚΑ ΣΥΓΧΡΟΝΑ ΜΟΝΤΕΛΑ ΚΥΚΛΟΥ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ ΠΕΡΙΓΡΑΦΗ ΙΑ ΙΚΑΣΙΩΝ ΑΝΑΠΤΥΞΗΣ ΚΑΙ ΠΡΟΪΟΝΤΩΝ ΛΟΓΙΣΜΙΚΟΥ ΣΥΝΟΨΗ ΘΕΜΑΤΑ ΓΙΑ ΠΕΡΑΙΤΕΡΩ ΕΝΑΣΧΟΛΗΣΗ ΑΣΚΗΣΕΙΣ ΠΡΟ ΙΑΓΡΑΦΗ ΑΠΑΙΤΗΣΕΩΝ Η ΕΝΝΟΙΑ ΤΗΣ ΑΠΑΙΤΗΣΗΣ ΑΠΟ ΤΟ ΛΟΓΙΣΜΙΚΟ Απαιτήσεις από το σύστηµα Τι είναι "απαίτηση από το λογισµικό"; Πώς ταξινοµούνται οι απαιτήσεις από το λογισµικό; ΕΠΕΞΕΡΓΑΣΙΑ ΑΠΑΙΤΗΣΕΩΝ ΑΠΟ ΤΟ ΛΟΓΙΣΜΙΚΟ Εισαγωγή Βήµατα στον προσδιορισµό απαιτήσεων ΑΝΑΛΥΣΗ ΚΑΙ ΠΡΟ ΙΑΓΡΑΦΗ ΑΠΑΙΤΗΣΕΩΝ Ανάλυση απαιτήσεων Προδιαγραφή απαιτήσεων ΚΑΤΑΓΡΑΦΗ ΤΩΝ ΑΠΑΙΤΗΣΕΩΝ ΑΠΟ ΤΟ ΛΟΓΙΣΜΙΚΟ Εισαγωγή ιαγράµµατα ροής δεδοµένων ιαγράµµατα οντοτήτων - συσχετίσεων...57

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

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

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

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

8 γνωρίζουµε, ενώ συχνά η ίδια µας η ζωή εξαρτάται από Η/Υ (υγεία, µέσα µεταφοράς, υπηρεσίες όπως έλεγχος οδικής και εναέριας κυκλοφορίας, κ.ά.). Η σηµερινή εποχή µπορεί να χαρακτηριστεί ως µεταβατική σε µια νέα κατάσταση, στη οποία όλοι οι Η/Υ θα είναι διασυνδεδεµένοι µέσω δικτύων και θα εκτελούν σύνθετες εργασίες. Πολλές από τις σύγχρονες δικτυακές εφαρµογές µπορούν να µεταβάλουν κρίσιµες πλευρές του πολιτισµού µας, όπως την επικοινωνία, την εκπαίδευση και την κατάρτιση, αλλά και αυτή την ίδια τη λειτουργία των δηµοκρατικών πολιτευµάτων. Η νέα κατάσταση που διαµορφώνεται, αναφέρεται ως "κοινωνία της πληροφορίας" (information society) και έχουµε ήδη εισέλθει στο εξελικτικό της στάδιο µε το Internet και τις περί αυτό εφαρµογές να παίζουν πρωταγωνιστικό ρόλο στη διαδικασία. Ολες αυτές οι εξελίξεις γίνονται δυνατές χάρη στην ύπαρξη και λειτουργία ενός συνόλου πολύπλοκων εφαρµογών λογισµικού. Η εξάπλωση του Ηλεκτρονικού Υπολογιστή σε ολοένα και περισσότερες πλευρές της ανθρώπινης ζωής, δε θα ήταν δυνατή χωρίς τη χρήση Λογισµικού. Ο Ηλεκτρονικός Υπολογιστής σα συσκευή µπορεί µόνο να εκτελέσει ορισµένες πολύ απλές λειτουργίες µε πάρα πολύ υψηλή ταχύτητα, όµως µε τρόπο ιδιαίτερα δυσπρόσιτο στον άνθρωπο. Το Λογισµικό είναι εκείνο που καθιστά χρήσιµη και αποδίδει στοιχεία "συµπεριφοράς" στη συσκευή Η/Υ. Ο άνθρωπος δεν αξιοποιεί τον Ηλεκτρονικό Υπολογιστή άµεσα σα συσκευή, αλλά µόνο µέσω του Λογισµικού. Εχοντας κατά νου τα παραπάνω, δεν είναι εύκολο να δοθεί ένας πλήρης και καθολικά αποδεκτός ορισµός της έννοιας "Λογισµικό". Η πρακτική αξία, αλλά και η διαχρονικότητα ενός θεωρητικού ορισµού µπορεί να αµφισβητηθεί σχετικά εύκολα. Μια ικανοποιητική προσέγγιση είναι ο ορισµός του Λογισµικού ως ακολούθως: Λογισµικό: (1) εντολές (προγράµµατα ηλεκτρονικού υπολογιστή) οι οποίες όταν εκτελούνται επιτυγχάνουν επιθυµητά αποτελέσµατα και επιδόσεις (2) δοµές δεδοµένων που επιτρέπουν σε προγράµµατα να διαχειριστούν µε επάρκεια πληροφορίες και (3) κείµενα, διαγράµµατα κλπ που περιγράφουν τη λειτουργία και χρήση των προγραµµάτων ΤΕΧΝΙΚΕΣ ΚΑΤΑΣΚΕΥΕΣ ΚΑΙ ΛΟΓΙΣΜΙΚΟ Το Λογισµικό είναι ένα πολύπλοκο τεχνικό κατασκεύασµα, το οποίο δεν έχει αυτοτελή υπόσταση, παρά µόνο όταν χρησιµοποιείται για να καθοδηγήσει έναν Ηλεκτρονικό Υπολογιστή στην πραγµατοποίηση συγκεκριµένων λειτουργιών. Παρά τις αρκετές οµοιότητες που µπορεί κανείς να αναζητά συχνά µεταξύ λογισµικού και λοιπών τεχνικών κατασκευών, υπάρχουν και σηµαντικές διαφορές. Η πρώτη είναι η µη απτή φύση του λογισµικού. Μια τεχνική κατασκευή είναι ορατή και απτή, ενώ το λογισµικό δεν είναι αυτό καθεαυτό "ορατό". Μόνο τα αποτελέσµατα της χρήσης του µπορούν να είναι αντιληπτά. Η δοµή του λογισµικού τόσο σε µικροσκοπικό όσο και σε µακροσκοπικό επίπεδο, είναι και αυτή ένα νοητό κατασκεύασµα που µπορεί να γίνει µε διαφορετικούς τρόπους αντιληπτό. Η δεύτερη σηµαντική διαφορά µπορεί να περιγραφεί από µια παροµοίωση: Σε αντίθεση µε τα τεχνικά έργα η κατασκευή των οποίων συνήθως ακολουθεί µια προκαθορισµένη οδό, γνωστή από την αρχή, η ανάπτυξη του λογισµικού οµοιάζει µε σκόπευση κινούµενου στόχου από κινούµενο έδαφος και µε όπλο που συνεχώς αλλάζει τη συµπεριφορά του. Ο στόχος είναι κινούµενος γιατί οι απαιτήσεις των 8

9 χρηστών συνεχώς µεταβάλλονται, ακόµα και µέσα στη διαδικασία ανάπτυξης µιας εφαρµογής που προορίζεται να τις ικανοποιήσει. Το έδαφος είναι κινούµενο γιατί το περιβάλλον ανάπτυξης του λογισµικού είναι και το ίδιο συνεχώς εξελισσόµενο µαζί µε το υλικό, αλλά και µαζί µε τις επιλογές και την έκβαση των µη-τεχνικών διαµαχών στο χώρο της αγοράς τεχνογνωσίας και τεχνολογίας πληροφορικής. Σα να µην έφταναν τα παραπάνω, το όπλο µε το οποίο γίνεται η "σκόπευση", δηλαδή οι µεθοδολογίες, τα εργαλεία και τα περιβάλλοντα ανάπτυξης και λειτουργίας του λογισµικού, είναι επίσης ραγδαία µεταβαλλόµενα µε τοχρόνο. Ολοι µας γινόµαστε µάρτυρες ενός καταιγισµού προϊόντων, εξέλιξης λειτουργικών συστηµάτων, γλωσσών προγραµµατισµού, περιβαλλόντων και τεχνολογιών ανάπτυξης. Ο καταιγισµός αυτός φαίνεται να µην έχει ορατό τέλος, µιας και είναι οι νόµοι του ανταγωνισµού που σε πολλές περιπτώσεις προωθούν τις εξελίξεις, αλλά και η ίδια η πρόοδος της τεχνολογίας των υπολογιστών η οποία είναι τουλάχιστον εντυπωσιακή. Μολονότι η κατασκευή πολλών τεχνικών έργων είναι δυνατό να τυποποιηθεί σε αρκετά µεγάλο βαθµό, δεν ισχύει το ίδιο µε την ανάπτυξη του λογισµικού. Η ανάπτυξη αυτή, µέχρι σήµερα δεν έχει γίνει δυνατό να αυτοµατοποιηθεί και το Λογισµικό παραµένει ένα από τα πολυπλοκότερα και δυσκολότερα τεχνικά κατασκευάσµατα του ανθρώπου, στην κατασκευή του οποίου συναντώνται επί µακράν σηµαντικά προβλήµατα, τα οποία από πολλούς χαρακτηρίζονται ως "χρόνια" ΚΡΙΣΗ ΛΟΓΙΣΜΙΚΟΥ Το σύνολο αυτών των χρόνιων προβληµάτων αναφέρεται ως "κρίση λογισµικού". Ενδεχοµένως η χρήση όρων όπως "κρίση" ή "χρόνια προβλήµατα" να µπορεί να χαρακτηριστεί υπερβολική, αυτό όµως δεν αναιρεί ούτε τη σοβαρότητα, ούτε την παρατεταµένη διάρκεια εκδήλωσης των προβληµάτων που έχουν καταγραφεί και καθηµερινά επιβεβαιώνονται στην ανάπτυξη του λογισµικού. Είναι χαρακτηριστικό ότι το Λογισµικό είναι ένα από τα ελάχιστα ανθρώπινα κατασκευάσµατα που πωλείται ως έχει, χωρίς καµία απολύτως εγγύηση για τις ζηµιές που µπορεί να προκαλέσει η χρήση του, οσοδήποτε σηµαντικές και αν είναι αυτές. Ο Πίνακας 1.1 απεικονίζει τα σηµαντικότερα από τα προβλήµατα αυτά. Πρόβληµα Πίνακας 1.1. Μερικά βασικά σηµεία της κρίσης λογισµικού Εκδήλωση Εξαιρετικά δύσκολη διαδικασία κατασκευής εν είναι πάντα σαφές ποια βήµατα πρέπει να γίνουν, µε ποια σειρά, µε ποια ενδιάµεσα προϊόντα κλπ Ανεπαρκής ή και κακή ποιότητα τελικού προϊόντος Μη τήρηση χρονοδιαγραµµάτων Υπερβάσεις προϋπολογισµών Μεγάλη δυσκολία και συνεπαγόµενο κόστος συντήρησης Λάθη στην κατασκευή, µη ικανοποίηση του σκοπού Υπερβολικές και "αδικαιολόγητες" καθυστερήσεις Κακές αρχικές εκτιµήσεις κόστους. Τελικά προϊόντα µε πολλαπλάσιο κόστος από το αρχικά προϋπολογισθέν Παρενέργειες µεταβολών σε στοιχεία που πριν λειτουργούσαν, πρόχειρες λύσεις 9

10 Πρόβληµα ύσκολη κατανόηση εγγράφων, σχεδίων κλπ από διαφορετικούς κατασκευαστές Εκδήλωση Στην πράξη η κατανόηση ενός συστήµατος λογισµικού από τρίτους πλην των κατασκευαστών του, είναι συχνά αδύνατη ή ιδιαίτερα ασύµφορη Προβλήµατα όπως τα παραπάνω έχουν εντοπιστεί εδώ και δεκαετίες από την κοινότητα κατασκευαστών και ακαδηµαϊκών ερευνητών στη γνωστική περιοχή του λογισµικού και έχουν διατυπωθεί µε πολλούς τρόπους και µε πολλές ευκαιρίες. Συχνά, νέες τεχνολογίες ή προϊόντα που προτείνονται για την ανάπτυξη του λογισµικού κάνουν επίκληση των προβληµάτων αυτών, ισχυριζόµενα ότι διαθέτουν ικανοποιητικές λύσεις. Για ένα διάστηµα, οι λύσεις αυτές φέρονταν ως "ασηµένια σφαίρα" που θα σκότωνε το "τέρας" των προβληµάτων ανάπτυξης λογισµικού. Κάτι τέτοιο δεν έγινε και η φιλοσοφία της "ασηµένιας σφαίρας" εγκαταλείφθηκε, για να πάρουν τη θέση της πιο συνετές επιστηµονικές προσεγγίσεις στην ανάπτυξη του λογισµικού. Ως αποτέλεσµα, αναπτύχθηκε ένας ειδικός κλάδος της επιστήµης της πληροφορικής που ονοµάστηκε Τεχνολογία Λογισµικού (Software Engineering). Πρόσφατα προτάθηκε η Τεχνολογία Λογισµικού να αποτελέσει εξειδίκευση της επιστήµης του µηχανικού, οπότε µια πιο εύστοχη απόδοση στα ελληνικά είναι αυτή της "Μηχανικής Λογισµικού". Στο βιβλίο αυτό θα αποδεχτούµε την απόδοση "Τεχνολογία Λογισµικού" ως επικρατέστερη για την ελληνική πραγµατικότητα και θα αναφερόµαστε στην ίδια τεχνική επιστηµονική περιοχή, ανεξάρτητα από το αν πρόκειται για τεχνολογία, για µηχανική ή για...τέχνη, όπως συχνά υποστηρίζεται σε ακαδηµαϊκές συζητήσεις ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Οπως ακριβώς µε τον ορισµό της έννοιας «Λογισµικό», προβλήµατα και αρκετές διαφορετικές απόψεις υπάρχουν και στον ορισµό της Τεχνολογίας Λογισµικού. Εµείς θα δεχτούµε τον παρακάτω ορισµό: Τεχνολογία Λογισµικού: η περιοχή εκείνη της επιστήµης της µηχανικής η οποία ασχολείται µε την εύρεση και θεµελίωση µεθόδων για να περιγράφεται, να κατασκευάζεται και να συντηρείται Λογισµικό. Επιθυµητά χαρακτηριστικά του Λογισµικού και της διαδικασίας κατασκευής του είναι η ποιότητα, η µεγαλύτερη δυνατή αυτοµατοποίηση και παραγωγικότητα και το ελάχιστο δυνατό κόστος παραγωγής και συντήρησης. Οι έννοιες ποιότητα, αυτοµατοποίηση, παραγωγικότητα και κόστος είναι σε πολλές περιπτώσεις αντίθετες. Είναι φυσικό να µιλάµε όχι για ταυτόχρονη µεγιστοποίηση ποιότητας και παραγωγικότητας από τη µία και απόλυτη ελαχιστοποίηση του κόστους, από την άλλη, αλλά για αποδεκτή -στις εκάστοτε συνθήκες- ισορροπία µεταξύ αυτών των µεγεθών. Εντός του πεδίου της Τεχνολογίας Λογισµικού είναι ο καθορισµός των ενεργειών και της αλληλουχίας µε την οποία αυτές πρέπει να γίνονται (software process), καθώς και η περιγραφή µε σαφή και κατανοητό τρόπο όλων των προϊόντων που παράγονται κατά την εκτέλεση αυτών των ενεργειών. Το τελικό παραδοτέο προϊόν κάθε ενέργειας ανάπτυξης λογισµικού είναι ο "εκτελέσιµος κώδικας", δηλαδή ένα σύνολο εντολών άµεσα εκτελέσιµων από έναν Ηλεκτρονικό Υπολογιστή κάτω από συγκεκριµένες (και γνωστές εκ των προτέρων) προϋποθέσεις. Το σύνολο αυτών των εντολών αποτελεί µια 10

11 περιγραφή του τρόπου εκτέλεσης των εργασιών που αυτοµατοποιούνται µε τη χρήση µιας εφαρµογής λογισµικού. εν είναι δυνατό η κατασκευή του Λογισµικού να οδηγήσει κατευθείαν στον εκτελέσιµο κώδικα, όπως άλλωστε καµία απολύτως τεχνική κατασκευή δε µπορεί να γίνει κατ ευθείαν, χωρίς να έχουν προηγηθεί µελέτες και σχέδια. Ωστόσο, ένα στοιχείο που διαφοροποιεί σηµαντικά το Λογισµικό από τις κλασσικές τεχνικές κατασκευές, είναι ότι η κατασκευή του δεν είναι µια σειριακά ακολουθούµενη διαδικασία, η οποία ολοκληρώνεται µε την κατασκευή του παραδοτέου προϊόντος, αλλά το αρχικό αυτό παραδοτέο (πρώτη έκδοση εκτελέσιµου κώδικα και αντίστοιχο υλικό τεκµηρίωσης) υπόκειται συχνά πολλές τροποποιήσεις. Συνήθεις αιτίες για τροποποιήσεις στο Λογισµικό είναι: ηδιόρθωσησφαλµάτων η βελτιστοποίηση της απόδοσης ηαυτοµατοποίηση της εκτέλεσης νέων εργασιών ηενσωµάτωση µεταβολών που οφείλονται σε αλλαγές που συµβαίνουν στον πραγµατικό κόσµο Η πραγµατοποίηση µεταβολών-διορθώσεων στις εφαρµογές Λογισµικού αναφέρεται µε τον όρο "συντήρηση Λογισµικού" (software maintenance). Ολες οι φάσεις από τις οποίες διέρχεται το λογισµικό αναφέρονται ως "κύκλος ζωής λογισµικού" (software life cycle). Γίνεται σαφές ότι η Τεχνολογία Λογισµικού δεν ασχολείται µόνο µε την κατασκευή, αλλά µε ολόκληρο τον κύκλο ζωής του Λογισµικού. Χρονικά, πρόκειται για το διάστηµα από τη σύλληψη της ιδέας της κατασκευής µιας εφαρµογής Λογισµικού µέχρι την απόσυρση αυτής από τη χρήση ΤΟ ΛΟΓΙΣΜΙΚΟ ΩΣ ΜΕΡΟΣ ΣΥΣΤΗΜΑΤΩΝ Συχνά, το Λογισµικό αντιµετωπίζεται λανθασµένα όχι ως µέρος ενός ευρύτερου συστήµατος µε το οποίο αλληλεπιδρά µε πολλούς τρόπους, αλλά ως αυθύπαρκτη οντότητα. Στην Τεχνολογία Λογισµικού συχνά γίνεται ξεχωριστά λόγος για το σύστηµα και ξεχωριστά για το Λογισµικό και δεν είναι λίγες οι περιπτώσεις όπου µπορεί να δηµιουργηθεί σύγχυση σχετικά µε τις έννοιες και τη προσέγγιση πολλών οντοτήτων του πραγµατικού κόσµου κατά την ανάπτυξη Λογισµικού. Θα διακρίνουµε δύο περιπτώσεις: το Λογισµικό αποτελεί εσωτερικό συστατικό ενός τεχνητού µη-υπολογιστικού συστήµατος το Λογισµικό λειτουργεί αυτοτελώς σε ένα υπολογιστικό σύστηµα Ως παραδείγµατα για το πρώτο µπορούµε να αναφέρουµε όλες τις περιπτώσεις όπου µια συσκευή λειτουργεί χρησιµοποιώντας λογισµικό, όπως οι µηχανές αυτόµατης πώλησης, οι ψηφιακοί αυτοµατισµοί και σύντοµα, αρκετές οικιακές συσκευές. Επίσης, στην πρώτη κατηγορία ανήκουν σύνθετα συστήµατα όπου το λογισµικό ή η υπολογιστική µονάδα στην οποία αυτό εκτελείται, λειτουργεί συνδεδεµένη µε άλλες συσκευές, όπως τα συστήµατα χρονοµέτρησης αγώνων, τα ιατρικά µηχανήµατα ανάλυσης και απεικόνισης, τα συστήµατα ελέγχου εναέριας κυκλοφορίας κ.ά. (Σχήµα 1.1). 11

12 ΣΥΣΤΗΜΑ ΛΟΓΙΣΜΙΚΟ ΧΡΗΣΤΗΣ Υ/Σ 1 Υ/Σ 2 Υ/Σ ν Σχήµα 1.1. Το Λογισµικό µπορεί να είναι µέρος πολλών συστηµάτων. Ο χρήστης αλληλεπιδρώντας µε τα συστήµατα µπορεί να χρησιµοποιεί Λογισµικό χωρίς να έχει άµεση αντίληψη του γεγονότος αυτού. Στις περιπτώσεις αυτές, κατά την ανάπτυξη Λογισµικού οφείλουν να λαµβάνονται υπόψη τα ειδικά χαρακτηριστικά των συσκευών που αποτελούν τα υπόλοιπα µέρη του συστήµατος. Τα χαρακτηριστικά τέτοιων συσκευών, χωρίς να αποτελούν αυτά καθαυτά χαρακτηριστικά του λογισµικού, καθορίζουν σε µεγάλο βαθµό τηδοµή καιτησυµπεριφορά του. Στη δεύτερη περίπτωση, όπου το λογισµικό στεγάζεται απλώς σε έναν υπολογιστικό σύστηµα, δεν αποτελεί µε τη δοµική, αλλά µε τη λειτουργική έννοια µέρος ενός ευρύτερου οργανισµού από τον οποίο καθορίζεται και τον οποίο µε τη σειρά του καθορίζει (Σχήµα 1.2). Από την έναρξη µέχρι την ολοκλήρωση της ανάπτυξης µιας εφαρµογής Λογισµικού λαµβάνουν συνήθως χώρα αρκετές αλλαγές στο ιδιαίτερο και το ευρύτερο πεδίο χρήσης αυτής, στις οποίες ενίοτε αποδίδεται µέρος των αιτιών αποτυχίας ή αστοχίας της προσπάθειας ανάπτυξης. ΕΥΡΥΤΕΡΟ ΠΕΡΙΒΑΛΛΟΝ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ ΑΝΑΓΚΗ & ΣΥΛΛΗΨΗ ΛΟΓΙΣΜΙΚΟΥ ΠΕΡΙΓΡΑΦΗ ΛΟΓΙΣΜΙΚΟ ΣΧΕ ΙΑΣΗ ΘΕΜΑΤΙΚΟ ΠΕ ΙΟ ΛΟΓΙΣΜΙΚΟΥ ΥΛΟΠΟΙΗΣΗ ΕΠΗΡΡΕΑΖΕΙ ΕΞΕΛΙΞΗ Σχήµα 1.2. Αλληλεπιδράσεις στην ανάπτυξη του Λογισµικού Μπορεί κανείς να αναγνωρίσει µια διαλεκτική σχέση µεταξύ του Λογισµικού και του χώρου στον οποίο αυτό αναπτύσσεται και χρησιµοποιείται: ο τρόπος µε τον οποίο γίνονται οι εργασίες στον πραγµατικό κόσµο, επιβάλλει την αυτοµατοποίηση ορισµένων από αυτές, η οποία γεννάει την ανάγκη για Λογισµικό. Η ενσωµάτωση της αυτοµατοποίησης στο χώρο που γέννησε την ανάγκη επιδρά εκ νέου 12

13 στη σύλληψη των εργασιών και τη σχεδίαση του τρόπου µε τον οποίο αυτές γίνονται, πράγµα που µε τη σειρά του µπορεί να επιφέρει µεταβολές στο Λογισµικό και ο κύκλος επαναλαµβάνεται. Πέραν αυτής της άµεσης αλληλεπίδρασης µεταξύ πεδίου εφαρµογής και Λογισµικού, είναι και ο ίδιος ο κόσµος που από εσωτερικές δυνάµεις µεταβάλλεται συνεχώς, πράγµα πουδιαµορφώνει, εξελίσσει ή καταργεί ολοένα και περισσότερες εργασίες οι οποίες µπορούν να αυτοµατοποιηθούν µε τη χρήση Λογισµικού ΤΟ ΛΟΓΙΣΜΙΚΟ ΩΣ ΠΡΟΪΟΝ Οι περισσότερες προσπάθειες ανάπτυξης Λογισµικού στοχεύουν στην δηµιουργία ενός προϊόντος, δηλαδή ενός αγαθού το οποίο προορίζεται να βρει το δρόµο του στην αγορά, είτε ως προϊόν µαζικής κατανάλωσης, είτε ως κατά παραγγελία κατασκευασµένο. Η περίπτωση στην οποία µπορεί κανείς να κατασκευάσει λογισµικό για δική του προσωπική χρήση δεν διαφοροποιείται σε τίποτε από τεχνικής άποψης, είναι ωστόσο περιορισµένου ενδιαφέροντος, µε το σκεπτικό ότι αποτελεί µια εξαίρεση στην οποία όποιοι κανονισµοί επιβάλλονται από επιστηµονικά θεµελιωµένες προσεγγίσεις, µπορούν να τηρηθούν µε µεγάλη χαλαρότητα. Σε αντίθεση µε τις θεωρητικές επιστήµες όπου η δυνατότητα χρήσης απεριόριστου χρόνου προκειµένου να επιτευχθεί ένας στόχος είναι µεγαλύτερη, οι νόµοι του ανταγωνισµού και η πίεση του χρόνου δεν επιτρέπουν κάτι τέτοιο µε το Λογισµικό. Η επιδίωξη της κατάκτησης µιας καλής θέσης στην αγορά περιορίζει τη δυνατότητα εφαρµογής εξαντλητικών διαδικασιών εξασφάλισης ποιότητας και αποτελεί µια από τις βασικές αιτίες για πολλές από τις πληγές του λογισµικού σήµερα. Ηλειτουργία των νόµων της αγοράς έχει και άλλο ένα ενδιαφέρον αποτέλεσµα: το καλύτερο από τεχνικής πλευράς λογισµικό δεν είναι κατ' ανάγκη και το επικρατέστερο στην αγορά. Σε αρκετές περιπτώσεις, διαµάχες για τεχνολογίες και προϊόντα λογισµικού οι οποίες εµφανίζονται ως τεχνικές διαµάχες, µόνο τέτοιες δεν είναι. Ο ανταγωνισµός δυσχεραίνει την συνεργασία µε σκοπό την αναζήτηση του καλύτερου δυνατού αποτελέσµατος. Συχνά, περισσότερες από µία πλευρές κατέχουν η καθεµία ένα µέρος της επιθυµητής λύσης σε ένα πρόβληµα, χωρίς καµία να κατέχει ολόκληρη τη λύση και χωρίς να βαδίζουν από κοινού σε δρόµο σύγκλισης.. Κάποιες φορές, οι διαµάχες αυτές αποβαίνουν σε όφελος του τελικού καταναλωτή, ενώ σε πολλές περιπτώσεις συµβαίνει ακριβώς το αντίθετο. Επιχειρώντας µια γενική ταξινόµηση των προϊόντων Λογισµικού, µπορούµε να διακρίνουµε δύο γενικές κατηγορίες. Το Λογισµικό συστήµατος και το Λογισµικό εφαρµογών. Ως Λογισµικό συστήµατος γίνεται αντιληπτό εκείνο το Λογισµικό χωρίς το οποίο δεν είναι δυνατή η λειτουργία ενός Η/Υ, δηλαδή τα λειτουργικά συστήµατα (operating systems). Εντοπίζοντας υποκατηγορίες έχουµε τα λειτουργικά συστήµατα γενικής χρήσης (Unix, DOS, Windows) καθώς και ειδικές περιπτώσεις όπως λογισµικό προγραµµατισµού (όχι εφαρµογές) αυτοµάτων ελεγκτών στη βιοµηχανία. Στην κατηγορία του Λογισµικού εφαρµογών ανήκουν γενικά όλες οι υπόλοιπες περιπτώσεις. Και εδώ µπορούµε να διακρίνουµε υποκατηγορίες, όπως το λογισµικό επιχειρηµατικών εφαρµογών, εφαρµογών πραγµατικού χρόνου, επιστηµονικών εφαρµογών, εκπαιδευτικών εφαρµογών, προσωπικής χρήσης, τεχνητής νοηµοσύνης κ.ά.. Μπορούν να αναζητηθούν και άλλες κατηγορίες ή υποκατηγορίες σύµφωνα µεάλληκεντρικήιδέαταξινόµησης, ώστε ο κατάλογος να συνεχίζεται και να εξειδικεύεται επί µακράν. Ο ρυθµός των εξελίξεων και η χρήση του λογισµικού σε ολοένα και περισσότερες πλευρές της καθηµερινής ζωής, όχι µόνο στις επαγγελµατικές, έχει καταστήσει ανεπίκαιρεςόλεςτιςαπόπειρεςολοκληρωµένης ταξινόµησης του Λογισµικού σε κατηγορίες, οι οποίες έχουν γίνει στο παρελθόν. 13

14 Η υπόσταση του Λογισµικού ως προϊόντος επιβάλλει για την Τεχνολογία Λογισµικού τη διατύπωση ενός συνόλου κανόνων και διαδικασιών ανάπτυξης που να ισορροπούν µεταξύ τεχνικής ορθότητας (στο µέτρο που αυτή είναι θεµελιωµένη) από τη µία και οικονοµικής εφικτότητας από την άλλη. Επιπλέον, η ανάπτυξη λογισµικού οφείλει να γίνεται σε "λογικό" χρόνο, ώστε αυτό να εισέρχεται στην αγορά σε στιγµή που η ζήτηση είναι υψηλή και να αποφέρει κέρδη στον κατασκευαστή του. Κοντολογίς, η Τεχνολογία Λογισµικού, ιδωµένη είτε ως µηχανική, είτε ως επιστήµη, είτε ως τέχνη, είναι µια πρόκληση για όσους αποφασίσουν να ασχοληθούν µε αυτή είτε ερευνητικά, είτε στο πεδίο της "µαχόµενης πληροφορικής" ΣΥΣΤΑΤΙΚΑ ΣΤΟΙΧΕΙΑ ΛΟΓΙΣΜΙΚΟΥ Σύµφωνα µε τον ορισµό που δόθηκε στην ενότητα 1.1, Λογισµικό δεν είναι µόνο ένα εκτελέσιµο πρόγραµµα. Οι χρήστες συνήθως αντιλαµβάνονται ως Λογισµικό το "πρόγραµµα" µαζί µε το αντίστοιχο εγχειρίδιο χρήσης. Πέραν αυτών, µέρος του Λογισµικού είναι και πολλά ενδιάµεσα προϊόντα όπου παράγονται στις φάσεις που µεσολαβούν από τον καθορισµό των εργασιών που θα αυτοµατοποιηθούν µε τη βοήθεια του Λογισµικού, µέχρι την παραγωγή του εκτελέσιµου κώδικα. Τα προϊόντα αυτά, είτε είναι ενδιάµεσα συστατικά λογισµικού που παράγονται µέχρι να φτάσουµε στον εκτελέσιµο κώδικα(πηγαίος κώδικας, κώδικας µορφής object, βιβλιοθήκες, κ.ά.), είτε περιγράφουν τη δοµή και τη συµπεριφορά του Λογισµικού. Στη δεύτερη περίπτωση αναφέρονται µε τον όρο "τεκµηρίωση Λογισµικού" (software documentation) και βρίσκονται σε έντυπη ή σε ηλεκτρονική µορφή. Κατά παρέκκλιση της αυστηρής λεξικογραφικής σηµασίας της λέξης, σε αυτή την τεκµηρίωση του Λογισµικού δεν καταγράφεται το γιατί το Λογισµικό εκτελεί κάποιες εργασίες ή γιατί τις εκτελεί µε ένα συγκεκριµένο τρόπο, αλλά το ποιες εργασίες θα εκτελεί, πώς θα τις εκτελεί, ποιες δοµές δεδοµένων θα χρησιµοποιηθούν, κ.ά.. Συστατικά λογισµικού Είναι όλα τα προϊόντα που παράγονται κατά την ανάπτυξη του Λογισµικού, τα οποία αποτελούν αναπόσπαστο µέρος αυτού. Τα συστατικά λογισµικού µπορούν να ταξινοµηθούν ως προς τη φύση τους, τον τρόπο παραγωγής τους, τη φάση του κύκλου ζωής στην οποία παράγονται, την εσωτερική τους δοµή, τα πρότυπα στα οποία ενδεχοµένως συµµορφώνονται κ.ά. Ως προς τη φύση, διακρίνουµε αυτά που βρίσκονται σε ηλεκτρονική µορφή και αυτά που βρίσκονται σε έντυπη. Ως προς τον τρόπο παραγωγής τους διακρίνουµε αυτά που παράγονται αυτόµατα (κώδικας µορφής object, εκτελέσιµος κώδικας, περιγραφή σχηµάτων βάσεων δεδοµένων, κ.ά.) και αυτά που παράγονται µε τοχέρι. Ηταξινόµηση ως προς την εσωτερική τους δοµή ποικίλει ανάλογα µε την τεχνική φύση του περιβάλλοντος ανάπτυξης και λειτουργίας. Τέλος, η συµµόρφωση µε πρότυπα αναφέρεται στη δοµηµένη περιγραφή ορισµένων χαρακτηριστικών του λογισµικού, µε το"δοµηµένη" να αφορά την πειθαρχία απέναντι σε όσα ορίζονται σε ένα ή περισσότερα πρότυπα (standards) που χρησιµοποιούνται για το σκοπό αυτό. Η αναφορά στα πρότυπα µας φέρνει σε ένα σηµαντικό πρόβληµα στο χώρο του Λογισµικού. Σήµερα, µέσα στην κοινότητα κατασκευαστών και ερευνητών του Λογισµικού, υπάρχει ένας πλουραλισµός συµβόλων, τίτλων, ορισµών εννοιών, δοµών κλπ, που αναφέρονται σε παρεµφερείς οντότητες, χωρίς να διευκολύνουν µια καθολική, σαφή και χωρίς διφορούµενα κατανόηση των οντοτήτων που σχετίζονται µε το Λογισµικό. Ο πλουραλισµός αυτός είναι έκδηλος παντού: στις µεθοδολογίες ανάπτυξης, στις γλώσσες προγραµµατισµού, στα εργαλεία και αλλού και οδηγεί τους κατασκευαστές στην επιλογή δικών τους επιλύσεων σε διφορούµενα θέµατα τεκµηρίωσης και στη χρήση δικών τους 14

15 άτυπων συµβολισµών και δοµών, γεγονός που µάλλον δυσχεραίνει το πρόβληµα και αυξάνει τη σύγχυση. Αιτίες της σύγχυσης αυτής µπορούν να αναγνωριστούν σε αρκετά επίπεδα. Πέραν από την αρχική ανωριµότητα, η οποία χαρακτηρίζει κάθε νέο ερευνητικό πεδίο, υπάρχει ο ανταγωνισµός για την εµπορική επικράτηση σε τοµείς όπως τα εργαλεία ανάπτυξης και η παροχή τεχνογνωσίας για την ανάπτυξη Λογισµικού. Ακόµα και οι συµβολισµοί και η ορολογία, αποτελούν πεδίο διαµάχης και σύγχυσης. Μια αξιοσηµείωτη προσπάθεια για την ανάπτυξη προτύπων για την περιγραφή πολλών συστατικών λογισµικού έκανε ο οργανισµός IEEE (the Institute of Electrical and Electronics Engineers). Τα πρότυπα αυτά προσαρµόζονται ανάλογα µε την µεθοδολογία ανάπτυξης και τον ακολουθούµενο κύκλο ζωής. Ωστόσο, έχουν ένα κάθε άλλο παρά αµελητέο κόστος συγγραφής και ιδιαίτερα διατήρησής τους σε επίκαιρη κατάσταση, µε αποτέλεσµα σε αρκετές περιπτώσεις είτε να καταργούνται στην πράξη, είτε να µένουν χωρίς να ενηµερώνονται µε τις µεταβολές που λαµβάνουν χώρα από την αρχική συγγραφή τους και µετά ΣΥΝΟΨΗ Το Λογισµικό είναι ένα σύνθετο τεχνικό κατασκεύασµα που προορίζεται στο να συµβάλλει στην αυτοµατοποίηση επίπονων και επιρρεπών σε σφάλµατα ανθρώπινων εργασιών µε τη βοήθεια ηλεκτρονικού υπολογιστή. Ως Λογισµικό δεν εννοείται µόνο ο εκτελέσιµος κώδικας, αλλά και ένα σύνολο ενδιάµεσων προϊόντων, όπως προδιαγραφές, σχέδια, πηγαίος κώδικας, εκθέσεις ελέγχου κ.ά. Ολα αυτά αποτελούν παράγωγα προϊόντα του κύκλου ζωής του λογισµικού ο οποίος περιλαµβάνει όλες τις φάσεις από τη σύλληψη της ιδέας µέχρι και την απόσυρση µιας εφαρµογής λογισµικού από την χρήση. Παρά τη σηµαντική πρόοδο που έχει επιτευχθεί στον τοµέα του υλικού των υπολογιστών, η κατασκευή του λογισµικού παρουσιάζει ορισµένα χρόνια σηµαντικά προβλήµατα που σχετίζονται µε την ποιότητα, το κόστος και την γενική επάρκεια του τρόπου µε τον οποίο αυτή γίνεται. Τα προβλήµατα αυτά αναφέρονται γενικά ως "κρίση Λογισµικού" (software crisis). Η Τεχνολογία Λογισµικού είναι η περιοχή εκείνη της επιστήµης της µηχανικής που ασχολείται µε την εύρεση και θεµελίωση µεθόδων για να περιγράφεται, να κατασκευάζεται και να συντηρείται Λογισµικό καλής ποιότητας, µε τη µεγαλύτερη δυνατή αυτοµατοποίηση και παραγωγικότητα και το ελάχιστο δυνατό κόστος. Η Τεχνολογία Λογισµικού δεν είναι µια θεωρητική επιστήµη, αλλά στοχεύει στην υποστήριξη των κατασκευαστών να παράξουν καλά προϊόντα λογισµικού. Τα προϊόντα αυτά αντιµετωπίζονται ως αναπόσπαστα τµήµατα του ειδικότερου και ευρύτερου πεδίου χρήσης αυτών, από το οποίο επηρεάζονται και το οποίο επηρεάζουν. 15

16 1.9. ΘΕΜΑΤΑ ΓΙΑ ΠΕΡΑΙΤΕΡΩ ΕΝΑΣΧΟΛΗΣΗ - ΑΣΚΗΣΕΙΣ Θέµα 1.1 Εντοπίστε τουλάχιστον τρεις οµοιότητες και τρεις διαφορές µεταξύ του λογισµικού και της κατασκευής έργων οδοποιίας. Προσπαθήστε αυτές να καλύπτουν όσο το δυνατόν ευρύτερο φάσµα στοιχείων που σχετίζονται µε την κατασκευή ή ανάπτυξη (κατασκευαστικά, διαχειριστικά, οικονοµικά. Θέµα 1.2 Αναφέρατε ένα παράδειγµα για κάθε µία από τις αιτίες τροποποιήσεων στο Λογισµικό οι οποίες αναφέρθηκαν στο κεφάλαιο 1. Θέµα 1.3 Αναφέρατε τουλάχιστον τρία παραδείγµατα διατάξεων (συσκευών) που δεν είναι ηλεκτρονικοί υπολογιστές και ενσωµατώνουν λογισµικό µε το οποίο επικοινωνεί µε κάποιο τρόπο ο χρήστης. Αν σκεφτεί κανείς πόσες τέτοιες συσκευές υπάρχουν και πόσο συχνή είναι η χρήση τους, το πιθανότερο είναι ότι θα εντυπωσιαστεί από την διάδοση του λογισµικού. Θέµα 1.4 Αναφέρατε τουλάχιστον τρία παραδείγµατα λογισµικού συστήµατος και πέντε παραδείγµατα λογισµικού εφαρµογών, τα οποία να είναι προϊόντα που βρίσκονται στην αγορά. εν έχετε παρά να κοιτάξετε µια βιτρίνα καταστήµατος "υψηλής τεχνολογίας" ή να κάνετε µια βόλτα σε δικτυακούς τόπους του Internet. Θέµα 1.5 Ποια από τα παρακάτω είναι συστατικά λογισµικού και ποια όχι; 1. Εκθεση αναγκών του πελάτη 2. Ενηµερωτικόέντυπογιακάποια εφαρµογή 3. Σχέδιο δοµής λογισµικού 4. Γλώσσα προγραµµατισµού 5. Μηνύµατα σφαλµάτων µεταγλώττισης 6. Περιγραφή των λειτουργιών του λογισµικού 7. Εκθεση προβληµάτων πελάτη 8. Περιγραφή ενεργειών ελέγχου λογισµικού 9. Εκτύπωση αποτελεσµάτων µιας εφαρµογής λογισµικού 16

17 2. ΜΟΝΤΕΛΑ ΚΥΚΛΟΥ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ Σκοπός Σκοπός του κεφαλαίου είναι ο ορισµός της έννοιας του µοντέλου κύκλου ζωής Λογισµικού, η γνωριµία µε τα πιο διαδεδοµένα από αυτά, η ταξινόµηση και η κριτική τοποθέτηση των γενικών ποιοτικών χαρακτηριστικών τους Εισαγωγικές παρατηρήσεις Οπως είδαµε στο πρώτο κεφάλαιο, "η Τεχνολογία Λογισµικού είναι η περιοχή εκείνη της επιστήµης της µηχανικής που ασχολείται µε την εύρεση και θεµελίωση µεθόδων για να περιγράφεται, να κατασκευάζεται και να συντηρείται Λογισµικό καλής ποιότητας, µε τη µεγαλύτερη δυνατή αυτοµατοποίηση και παραγωγικότητα και το ελάχιστο δυνατό κόστος". Για επιτύχει τους σκοπούς της, η Τεχνολογία Λογισµικού οφείλει να περιγράψει τις ενέργειες που πρέπει να συµβαίνουν κατά την ανάπτυξη του Λογισµικού, τόσο σε µακροσκοπικό, όσο και σε µικροσκοπικό επίπεδο. Σε µακροσκοπικό επίπεδο, πρέπει να οριστούν οι γενικές φάσεις από τις οποίες διέρχεται η κατασκευή του λογισµικού, ενώ σε µικροσκοπικό, πρέπει να οριστούν οι ενέργειες που γίνονται σε κάθε φάση και τα προϊόντα που παράγονται. εν υπάρχει ένας και µοναδικός τρόπος για να προσδιορίσουµε έστω και τις γενικές φάσεις από τις οποίες διέρχεται η κατασκευή του λογισµικού. Οπως θα δούµε στο κεφάλαιο αυτό, πολλά εξαρτώνται από τις ιδιαίτερες συνθήκες που επικρατούν, όπως η εµπειρία και η τεχνογνωσία του κατασκευαστή, το είδος της εφαρµογής λογισµικού και η πιθανότητα να αλλάξουν οι απαιτήσεις από αυτή, κ.ά.. Για το λόγο αυτό έχουν προταθεί πολλές εναλλακτικές διαδροµές που µπορεί να ακολουθήσει κανείς στην κατασκευή και τη συντήρηση του λογισµικού, οι οποίες ονοµάζονται µοντέλα κύκλου ζωής. Στις χαρακτηριστικότερες από αυτές θα αναφερθούµε στο κεφάλαιο αυτό Η ΕΝΝΟΙΑ ΤΟΥ ΜΟΝΤΕΛΟΥ ΚΥΚΛΟΥ ΖΩΗΣ Κάθε εφαρµογή Λογισµικού, από τη σύλληψη µέχρι την απόσυρσή της, διέρχεται από διάφορες φάσεις σε κάθε µία εκ των οποίων πρέπει να γίνονται ορισµένες εργασίες ώστε να επιτυγχάνεται το επιθυµητό αποτέλεσµα. Σε µακροσκοπικό επίπεδο οι πολύ γενικές φάσεις είναι: σύλληψη, κατασκευή, χρήση/συντήρηση και απόσυρση και, όπως είναι εύκολα αντιληπτό, λαµβάνουν χώρα µε τη σειρά αυτή. Μια εικόνα των γενικών αυτών φάσεων φαίνεται στο Σχήµα 2.1 που ακολουθεί. ΣΥΛΛΗΨΗ ΚΑΤΑΣΚΕΥΗ ΧΡΗΣΗ - ΣΥΝΤΗΡΗΣΗ ΑΠΟΣΥΡΣΗ Σχήµα 2.1. Γενικές φάσεις του κύκλου ζωής του Λογισµικού.

18 Πριν αναφερθούµε στον ορισµό του µοντέλου κύκλου ζωής και στα σηµαντικότερα τέτοια µοντέλα που χρησιµοποιούνται σήµερα, είναι σκόπιµο να δοθούν ορισµένοι χρήσιµοι ορισµοί οι οποίοι θα χρησιµοποιηθούν εκτεταµένα στη συνέχεια. Σε κάποιους από τους ορισµούς αυτούς ενδεχοµένως ο αναγνώστης να συναντήσει και διαφορετικές απόψεις στη βιβλιογραφία. Οπως έχουµε ήδη αναφέρει, ο πλουραλισµός ελάχιστα διαφοροποιούµενων απόψεων δεν είναι σπάνιος στην Τεχνολογία Λογισµικού, η δε αναφορά πολλών διαφορετικών απόψεων σε αυτό το σηµείο δεν εξυπηρετεί παρά τη σύγχυση. ραστηριότητα ανάπτυξης Λογισµικού Μια δραστηριότητα ή διαδικασία ανάπτυξης λογισµικού (software process) καθορίζει ποιες ενέργειες πρέπει να γίνουν για να επιτευχθεί ένα επιθυµητό αποτέλεσµα σε κάποια από τις φάσεις του κύκλου ζωής. Μια δραστηριότητα µπορεί να αναλύεται σε περισσότερες από µία επιµέρους φάσεις. Η έννοια "ανάπτυξη" στον προηγούµενο ορισµό περιγράφει µια γενική διαδικασία στην οποία υπόκειται το Λογισµικό και όχι υποχρεωτικά κατασκευή εκ του µηδενός. Μεθοδολογία ανάπτυξης Μια µεθοδολογία (software development methodology), καθορίζει το πώς θα πρέπει να εκτελούνται οι δραστηριότητες ανάπτυξης, δηλαδή ποιες επιµέρους ενέργειες περιλαµβάνουν, ποια βήµατα γίνονται σε κάθε µία, ποια προϊόντα παράγονται, καθώς και πότε αυτές θεωρούνται περατωθείσες. Εργαλείο Ενα εργαλείο λογισµικού (CASE: Computer-Aided Software Engineering), είναι ένα σύστηµα (συνήθως είναι και το ίδιο εφαρµογή Λογισµικού) το οποίο υποστηρίζει τη µερική ή (σπάνια) ολική αυτοµατοποίηση των εργασιών που λαµβάνουν χώρα κατά την εφαρµογή των µεθοδολογιών ανάπτυξης λογισµικού. Με βάση τα προηγούµενα, µπορούµε να δώσουµε τον ορισµό του Μοντέλου Κύκλου Ζωής Λογισµικού. Μοντέλο Κύκλου Ζωής Λογισµικού Ενα µοντέλο κύκλου ζωής Λογισµικού είναι µια περιγραφή των δραστηριοτήτων και των επιµέρους φάσεων από τις οποίες διέρχεται µια εφαρµογή Λογισµικού από τη σύλληψη µέχρι την απόσυρσή της, καθώς και των εργασιών που λαµβάνουν χώρα σε κάθε µία από τις φάσεις αυτές. Στο Σχήµα 2.2 φαίνεται η σχέση µεταξύ των εννοιών "µοντέλο κύκλου ζωής", "διαδικασία ανάπτυξης", "µεθοδολογία", καθώς και "εργαλείο" οι οποίες ορίστηκαν προηγουµένως. Μια έννοια που βρίσκεται χαµηλότερα στην πυραµίδα, αποτελεί το υπόβαθρο πάνω στο οποίο βασίζεται η έννοια που βρίσκεται στο αµέσως ψηλότερο σηµείο, κ.ο.κ.. 18

19 ΕΡΓΑΛΕΙΑ ΜΕΘΟ ΟΛΟΓΙΕΣ ΙΑ ΙΚΑΣΙΕΣ ΑΝΑΠΤΥΞΗΣ ΜΟΝΤΕΛΑ ΚΥΚΛΟΥ ΖΩΗΣ Σχήµα 2.2. Σχέσεις εννοιών στην ανάπτυξη του Λογισµικού. Τα µοντέλα κύκλου ζωής λογισµικού προσδιορίζουν τις διαδικασίες ανάπτυξης οι οποίες λαµβάνουν χώρα κατά τις γενικές φάσεις "κατασκευή" και "χρήση-συντήρηση" (Σχήµα 2.1), προσδιορίζοντας τις επιµέρουςφάσειςστιςοποίεςαυτέςαναλύονται, τα προϊόντα που παράγονται σε καθεµία από αυτές, καθώς και την σειρά εκτέλεσής τους. Σε κάθε διαδικασία ανάπτυξης µπορούµε να διακρίνουµε περισσότερες από µία επιµέρους φάσεις, ενώ σε κάθε επιµέρους φάση µπορούµε να διακρίνουµε περισσότερες από µία εργασίες. Οι διαδικασίες ανάπτυξης Λογισµικού µπορούν να ταξινοµηθούν ως ακολούθως: Προδιαγραφή, δηλαδή καθορισµόςτωνεργασιώνπουθαεπιτελείτολογισµικό, καθώς και των περιορισµών και των παραδοχών που ισχύουν. Ανάπτυξη, δηλαδή κατασκευή του Λογισµικού. Εδώ, σε όλα τα µοντέλα κύκλου ζωής, µπορούµε να διακρίνουµε τρεις επιµέρους φάσεις: την ανάλυση, τη σχεδίαση και την συγγραφή του πηγαίου κώδικα (source code) την οποία στη συνέχεια θα ονοµάζουµε και κωδικοποίηση. Επαλήθευση, δηλαδή επιβεβαίωση της ικανοποίησης των προδιαγραφών και της µη ύπαρξης σφαλµάτων. Εξέλιξη, δηλαδή επαύξηση των λειτουργικών χαρακτηριστικών του Λογισµικού ή τροποποίηση υπαρχουσών, προκειµένου να ικανοποιούνται οι µεταβαλλόµενες ανάγκες. Ενα µοντέλο κύκλου ζωής Λογισµικού στοχεύει στην καθοδήγηση του κατασκευαστή προκειµένου αυτός να επιτύχει την καλύτερη δυνατή υλοποίηση των διαδικασιών ανάπτυξης Λογισµικού. Λέγοντας "καλύτερη δυνατή" εννοούµε περισσότερο παραγωγική, µε τα λιγότερα δυνατά σφάλµατα και το µικρότερο δυνατό ρίσκο στις εκάστοτε συνθήκες. Τα παραπάνω µπορούν να διαφοροποιούνται ανάλογα µε το µέγεθος και το θεµατικό πεδίο κάθε εφαρµογής λογισµικού, µε την εµπειρία και τα ιδιαίτερα χαρακτηριστικά του κάθε κατασκευαστή και ασφαλώς µε το εκάστοτε περιβάλλον ανάπτυξης. Μια σηµαντική παράµετρος που καταδεικνύει τη σηµασία των µοντέλων κύκλου ζωής είναι το κόστος, ιδωµένο µε την ευρύτερη σηµασία του. Το κόστος αναθεώρησης αποφάσεων ή/και διόρθωσης σφαλµάτων είναι τόσο µεγαλύτερο, όσο µεγαλύτερη είναι και η απαιτούµενη οπισθοδρόµηση της διαδικασίας που αυτή συνεπάγεται. Το κόστος αυτό δεν αφορά µόνο οικονοµικούς πόρους που αποδίδονται στο έργο, αλλά και χρόνο καθυστέρησης που δεν είναι πάντα διαθέσιµος σε πραγµατικές συνθήκες. Επίσης είναι συχνό φαινόµενο οι παρενέργειες στο υπόλοιπο σύστηµα λογισµικού (sideeffects) οι οποίες µπορούν να µεταβάλλουν προς το χειρότερο τα ποιοτικά του χαρακτηριστικά και δεν είναι εύκολο να εντοπιστούν από την αρχή. Υπάρχουν αρκετά µοντέλα κύκλου ζωής τα οποία διαφοροποιούνται ως προς τη σύλληψη της ιδέας του τρόπου κατασκευής αλλά και ως προς τις επιµέρους φάσεις που προτείνουν, την επαναληπτικότητα και την εµβέλεια των εργασιών αυτών, τα ενδιάµεσα προϊόντα συστατικά Λογισµικού και την περιγραφή τους, τις οικονοµικές και επιχειρηµατικές πλευρές της χρήσης τους, κ.ά. 19

20 Αποτίµηση τρέχουσας κατάστασης Αποτίµηση τρέχουσας κατάστασης Ορισµός του προβλήµατος Ενσωµάτωση της λύσης στο σύστηµα Ορισµός του προβλήµατος Ενσωµάτωση της λύσης στο σύστηµα Επιλογή µιας λύσης Υλοποίηση της λύσης Επιλογή µιας λύσης Υλοποίηση της λύσης Αποτίµηση τρέχουσας κατάστασης Αποτίµηση τρέχουσας κατάστασης Ορισµός του προβλήµατος Ενσωµάτωση της λύσης στο σύστηµα Ορισµός του προβλήµατος Ενσωµάτωση της λύσης στο σύστηµα Επιλογή µιας λύσης Υλοποίηση της λύσης Επιλογή µιας λύσης Υλοποίηση της λύσης ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Κάθε µία από τις ενέργειες που περιγράφεται σε ένα µοντέλο κύκλου ζωής είναι µια διαδικασία επίλυσης προβληµάτων (problem solving process). Τα βήµατα κάθε τέτοιας διαδικασίας φαίνονται στο Σχήµα 2.3. Ο Μηχανικός Λογισµικού εκτελεί συνεχώς τέτοιες διαδικασίες επίλυσης προβληµάτων, τόσο σε µικροσκοπικό επίπεδο, δηλαδή στις µονάδες του υπό κατασκευή λογισµικού (αριστερό τµήµα του σχήµατος), όσο και σε µακροσκοπικό, δηλαδή για ολόκληρο το σύστηµα (δεξί τµήµα του σχήµατος). Ορισµός του προβλήµατος Αποτίµηση τρέχουσας κατάστασης (µονάδα) Επιλογή µιας λύσης Αποτίµηση τρέχουσας κατάστασης (σύστηµα) Υλοποίηση της λύσης Ενσωµάτωση της λύσης στο σύστηµα Σχήµα 2.3. Επίλυση προβληµάτων στο µικροσκοπικό (αριστερά) και µακροσκοπικό επίπεδο (δεξιά) ενός συστήµατος Λογισµικού. Ακολούθως γίνεται µια σύντοµη αναφορά στα σηµαντικότερα µοντέλα κύκλου ζωής Λογισµικού που έχουν εµφανιστεί µε σκοπό την παρουσίαση της κεντρικής ιδέας και των ποιοτικών χαρακτηριστικών αυτών και όχι την αναλυτική παρουσίασή τους για την οποία ο αναγνώστης παραπέµπεται στη βιβλιογραφία. Στα µοντέλα κύκλου ζωής που θα παρουσιαστούν, εµφανίζονται επιµέρους φάσεις και εργασίες αντίστοιχες και µε παρόµοια σειρά, µόνο που παριστάνονται µε διαφορετικό σχηµατικό τρόπο. Αυτό δεν σηµαίνει ότι επαναλαµβάνονται τα ίδια πράγµατα και ότι µόνη διαφορά είναι η σχηµατική απεικόνιση. Ούτως ή άλλως, οι γενικές εργασίες κατά την ανάπτυξη του Λογισµικού είναι οι τέσσερις που προαναφέρθηκαν ήτοι προδιαγραφή, ανάπτυξη, επαλήθευση, εξέλιξη. Το πρώτο και γηραιότερο µοντέλο κύκλου ζωής λογισµικού, αυτό του καταρράκτη, αντιµετωπίζει την ανάπτυξη του λογισµικού σαν την µεταφορά ενός µεγάλου ογκόλιθου από ένα σηµείο σε κάποιο άλλο περνώντας από ενδιάµεσες στάσεις, αλλά µεταφέροντας από τη µία στάση στην άλλη ολόκληρο τον ογκόλιθο. Επειδή οι εφαρµογές λογισµικού είναι περισσότερο εύπλαστες και ευµετάβλητες από τους ογκόλιθους, σύντοµα παρουσιάστηκαν προβλήµατα στην ιδέα, οπότε εµφανίστηκαν και άλλα µοντέλα κύκλου ζωής, τα οποία µεταφέρουν µε διαφορετικούς και πιο ευέλικτους τρόπους µικρότερα τµήµατα του "ογκόλιθου". Αυτό, λοιπόν, που διαφοροποιεί τα διάφορα µοντέλα κύκλου ζωής λογισµικού είναι η εµβέλεια, δηλαδή η έκταση του υπό κατασκευή συστήµατος Λογισµικού στην οποία αυτές οι διαδικασίες εφαρµόζονται, η επαναληπτικότητα των εργασιών, καθώς και οι ενδιάµεσες αποτιµήσεις από τον πελάτη ή τον κατασκευαστή. Ετσι, σε κάθε µοντέλο κύκλου ζωής, είναι µε διαφορετικό τρόπο δυνατός ο εντοπισµός της ανάγκης και η ενσωµάτωση τροποποιήσεων στα χαρακτηριστικά του Λογισµικού προτού να ολοκληρωθεί πλήρως η κατασκευή του, οπότε µπορεί να είναι αργά από πλευράς χρόνου και κόστους. 20

21 2.2. ΤΟ ΜΟΝΤΕΛΟ ΤΟΥ ΚΑΤΑΡΡΑΚΤΗ Ενα από τα πιο διαδεδοµένα µοντέλα κύκλου ζωής είναι αυτό του καταρράκτη (Waterfall), το οποίο φαίνεται στο Σχήµα 2.4. Η κεντρική ιδέα του µοντέλου του καταρράκτη είναι ότι το σύστηµα λογισµικού αναπτύσσεται περνώντας ολόκληρο από διαδοχικές επιµέρους φάσεις, καθεµία από τις οποίες θεωρείται περατωµένη µε την παραγωγή ορισµένων συστατικών Λογισµικού. Κάθε επιµέρους φάση ολοκληρώνεται µε µια εργασία επαλήθευσης/επικύρωσης των προϊόντων της κατά την οποία αποφασίζεται η µετάβαση ή όχι στην επόµενη. Το λογισµικό εµφανίζεται πλήρες, δηλαδή µε όλα τα λειτουργικά του χαρακτηριστικά, από την επιµέρους φάση της συνένωσης και µετά. Χαρακτηριστικό του µοντέλου του καταρράκτη είναι ότι για να ξεκινήσει µια φάση, πρέπει να έχει ολοκληρωθεί πλήρως ηπροηγούµενη. Ηανάπτυξηµε τον τρόπο αυτό χαρακτηρίζεται ακολουθιακή διότιοιεπιµέρους φάσεις από τις οποίες διέρχεται είναι διακριτές και ακολουθούν η µία την άλλη. 21

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

23 Κατά την λεπτοµερή σχεδίαση καθορίζεται η εσωτερική δοµήκάθε µονάδας Λογισµικού η οποία αντιστοιχεί πρακτικά σε µονάδες πηγαίου κώδικα προγράµµατος. Ο καθορισµός αυτός περιλαµβάνει όλατααπαραίτηταστοιχεία(αλγόριθµοι, δοµές δεδοµένων, κλπ), ώστε η συγγραφή του πηγαίου κώδικα, που ακολουθεί να είναι µια διαδικασία διεκπεραίωσης και µόνο. Ακολουθεί η συνένωση των µονάδων σε σύστηµα και ο έλεγχος του συστήµατος, η ολοκλήρωση του οποίου επιτρέπει την παράδοση ολόκληρου του προϊόντος στον πελάτη και το πέρασµα στη φάση της λειτουργίας και συντήρησης. Το µοντέλο του καταρράκτη υπήρξε για µεγάλο διάστηµα το πιο διαδεδοµένο µοντέλο κύκλου ζωής Λογισµικού. Είναι ιδιαίτερα χρήσιµο σε περιπτώσεις όπου οι απαιτήσεις από το λογισµικό είναι από την αρχή γνωστές και δεν µεταβάλλονται κατά την ανάπτυξη του λογισµικού και µπορεί να χρησιµοποιηθεί αποτελεσµατικά για τη βιοµηχανοποίηση της ανάπτυξης τέτοιων εφαρµογών. Για παράδειγµα τέτοιες είναι οι εφαρµογές που επιλύουν µεγάλα προβλήµατα χρησιµοποιώντας µαθηµατικούς υπολογισµούς. Σε πολλές, όµως, περιπτώσεις εφαρµογών, οι απαιτήσεις είτε δεν είναι από την αρχή και µε σαφήνεια γνωστές, είτε ενδέχεται να µεταβληθούν κατά τη διάρκεια της ανάπτυξης ΤΟ ΜΟΝΤΕΛΟ ΠΡΩΤΟΤΥΠΟΠΟΙΗΣΗΣ Η κεντρική ιδέα του µοντέλου πρωτοτυποποίησης (prototyping model) είναι η ανάπτυξη του λογισµικού όχι εξ' ολοκλήρου, αλλά σε τµήµατα που ονοµάζονται πρωτότυπα. Οι διαδικασίες ανάπτυξης επαναλαµβάνονται για ένα τµήµα του συστήµατος κάθε φορά και για το λόγο αυτό το µοντέλο χαρακτηρίζεται ως επαναληπτικό. Κάθε πρωτότυπο περιλαµβάνει τις βασικές από τις λειτουργίες που προορίζεται να εκτελεί το Λογισµικό και τίθεται σε δοκιµασία από τον πελάτη. Από εκεί συλλέγονται παρατηρήσεις και η διαδικασία κατασκευής νέου πρωτοτύπου επαναλαµβάνεται µέχρις ότου ένα πρωτότυπο να ικανοποιεί τις απαιτήσεις, δηλαδή εκτελεί τις επιθυµητές λειτουργίες του λογισµικού µε τρόπο ικανοποιητικό και να γίνεται αποδεκτό από τον πελάτη (Σχήµα 2.5). Από το σηµείο αυτό και µετά µπορούν να προστεθούν και οι υπόλοιπες λειτουργίες, ώστε το λογισµικό να ολοκληρωθεί. 23

24 ΑΠΑΙΤΗΣΕΙΣ ΑΠΟ ΤΟ ΣΥΣΤΗΜΑ ΠΛΑΝΟ ΑΝΑΠΤΥΞΗΣ ΚΑΤΑΣΚΕΥΗ ΠΡΩΤΟΤΥΠΟΥ ΑΝΑΛΥΣΗ ΣΧΕ ΙΑΣΗ ΚΩ ΙΚΟΠΟΙΗΣΗ ΕΛΕΓΧΟΣ ΟΧΙ ΑΠΟ ΕΚΤΟ ΟΚΙΜΑΣΤΙΚΗ ΧΡΗΣΗ ΠΡΩΤΟΤΥΠΟ ΑΠΟ ΕΚΤΟ ΠΛΗΡΕΣ ΣΥΣΤΗΜΑ Σχήµα 2.5. Το µοντέλο της πρωτοτυποποίησης Ενα σηµαντικό πλεονέκτηµα του µοντέλου αυτού, είναι η δυνατότητα απόκτησης άποψης για την εφαρµογή Λογισµικού νωρίτερα απ' ότι στο µοντέλο του καταρράκτη. Αυτό µπορεί να γλιτώσει την ανάπτυξη από καθυστερήσεις (και συνεπαγόµενα κόστη) ή ακόµη και από ολική αποτυχία, τα οποία θα επέρχονταν αν ο κατασκευαστής αναγκάζετο να οπισθοδροµήσει την ανάπτυξη ενώ αυτή είχε προχωρήσει πολύ. Παράλληλα, ιδιαίτερη σηµασία αποκτά η διοίκηση του έργου η οποία πρέπει να εξασφαλίζει την υλοποιησιµότητα του πρωτοτύπου και την εύκολη τροποποίησή του. Κάθε κατασκευή πρωτοτύπου µπορεί να θεωρηθεί ως ένα µικρό έργο Λογισµικού το οποίο κατασκευάζεται µε διαδικασίες που µπορούν να ακολουθούν άλλα µοντέλα κύκλου ζωής, όπως αυτό του καταρράκτη. Με βάση τις παραπάνω παρατηρήσεις το µοντέλο πρωτοτυποποίησης χρησιµοποιείται στην ανάπτυξη εφαρµογών λογισµικού για τις απαιτήσεις από τις οποίες δεν υπάρχει βεβαιότητα στην αρχή της ανάπτυξης, οπότε δεν µπορούν να συµφωνηθούν και να παγιοποιηθούν. Τέτοιες είναι εφαρµογές που κατασκευάζονται για πρώτη φορά ή που είναι στενά εξαρτηµένες από τον πελάτη, χωρίς να υπάρχει αποδεκτό προηγούµενο παράδειγµα. Ωστόσο, το µέγεθος των εφαρµογών αυτών δεν µπορεί να είναι ιδιαίτερα µεγάλο, διότι ο χρόνος ανάπτυξης κάθε πρωτοτύπου µεγαλώνει και η απαιτούµενη ευελιξία µειώνεται ΤΟ ΜΟΝΤΕΛΟ ΛΕΙΤΟΥΡΓΙΚΗΣ ΕΠΑΥΞΗΣΗΣ Το µοντέλο της λειτουργικής επαύξησης (incremental model) συνδυάζει την ακολουθιακή ανάπτυξη του µοντέλου του καταρράκτη, την τµηµατική ανάπτυξη του µοντέλου της πρωτοτυποποίησης. Κεντρική ιδέα είναι η κατάτµηση του υπό κατασκευή Λογισµικού σε τµήµατα που αναπτύσσονται ανεξάρτητα, ακολουθώντας το καθένα ακολουθιακή ανάπτυξη σύµφωνα µε το µοντέλο του καταρράκτη, όπως φαίνεται στο Σχήµα 2.6. Κατά την αρχική φάση ανάλυσης και σχεδίασης, αποφασίζονται τα τµήµατα στα οποία θα κατατµηθεί η εφαρµογή, η ανάπτυξη των οποίων γίνεται στη συνέχεια ανεξάρτητα και παράλληλα. Οταν ολοκληρώνεται η ανάπτυξη κάθε τµήµατος, αυτό 24

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Τεχνολογία Λογισμικού Εισαγωγή στην Τεχνολογία Λογισμικού περιεχόμενα παρουσίασης Αντικείμενο της Τεχνολογίας Λογισμικού Η ανάπτυξη λογισμικού Μοντέλα διαδικασίας λογισμικού τεχνολογία λογισμικού Κλάδος της πληροφορικής που

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

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

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

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

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

Τεχνολογία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τεχνολογία Λογισμικού, 7ο/9ο εξάμηνο 2018-2019 Τεχνολογία Λογισμικού Ν.Παπασπύρου, Αν.Καθ. ΣΗΜΜΥ, nickie@softlab.ntua,gr

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

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

Τεχνολογία Λογισμικού Τεχνολογία Λογισμικού Προαπαιτήσεις Γνώση Αρχών Προγραμματισμού Γνώση Γλώσσας Προγραμματισμού (C++, Java, Pascal) Χρήση Η/Υ (Σχεδίαση, Επεξ. Κειμένου) Κριτική και Συνθετική Ικανότητα Σκοπός μαθήματος Γνωριμία

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

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

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

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

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

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

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

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

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

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

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

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

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

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

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

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

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

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

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

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

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

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

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 επιχειρήσεων", ακόµη κι από άτοµα που

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

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

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

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

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

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

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

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

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

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

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

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

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

Rational Unified Process:

Rational Unified Process: ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ - Μεταπτυχιακό µάθηµα: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΕΙΣ ΜΕΘΟ ΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ Καθ. Ε. Σκορδαλάκης, ρ. Β. Βεσκούκης Rational Unified

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης

Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης ΟΙΚΟΝΟΜΙΚΌ ΠΑΝΕΠΙΣΤΉΜΙΟ ΑΘΗΝΏΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης 1o φροντιστήριο στο µάθηµα Ανάλυση και µοντελοποίηση

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

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

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

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

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

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

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

Μέθοδος : έρευνα και πειραματισμός

Μέθοδος : έρευνα και πειραματισμός 1 Ο ΓΥΜΝΑΣΙΟ ΠΕΥΚΩΝ Γ ΓΥΜΝΑΣΙΟΥ ΜΑΘΗΜΑ : ΤΕΧΝΟΛΟΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΣ : Τρασανίδης Γεώργιος, διπλ. Ηλεκ/γος Μηχανικός Μsc ΠΕ12 05 Μέθοδος : έρευνα και πειραματισμός Στόχος της Τεχνολογίας στην Γ Γυμνασίου

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

Αναδιοργάνωση στους Οργανισμούς

Αναδιοργάνωση στους Οργανισμούς Περιεχόμενα Μέρους Α Αναδιοργάνωση στους Οργανισμούς Αναδιοργάνωση ιαδικασιών Οργανισμών με έμφαση στη ημόσια ιοίκηση (Public Sector BPR) - Μέρος Α - 1) Ορισμοί 2) Τα αναμενόμενα οφέλη από την αναδιοργάνωση

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Αλγόριθµοι, στοιχεία

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

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

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

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

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

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

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

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

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

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

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

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

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

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

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

Διοίκηση Ποιότητας Έργων 4 η Διάλεξη. Δηµήτρης Τσέλιος Μεταπτυχιακό πρόγραµµα στη Διαχείριση Έργων και Προγραµµάτων

Διοίκηση Ποιότητας Έργων 4 η Διάλεξη. Δηµήτρης Τσέλιος Μεταπτυχιακό πρόγραµµα στη Διαχείριση Έργων και Προγραµµάτων 1 Διοίκηση Ποιότητας Έργων 4 η Διάλεξη Δηµήτρης Τσέλιος 01-04-2017 Μεταπτυχιακό πρόγραµµα στη Διαχείριση Έργων και Προγραµµάτων 2 Περιεχόµενα της 4 ης Διάλεξης Διοίκηση Ολικής Ποιότητας ΔΟΠ Βασικές Αρχές

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

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

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

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

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 2: Βασικές Έννοιες Τεχνολογίας Λογισμικού Ο Ρόλος του Τεχνολόγου Λογισμικού Επιστήμη Υπολογιστών Πελάτης 2 Θεωρίες Λειτουργίες Υπολογιστή Πρόβλημα Σχεδιασμός

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

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

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

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

1 ΚΕΦΑΛΑΙΟ 1 Ο 1.2 Η Επιχείρηση

1 ΚΕΦΑΛΑΙΟ 1 Ο 1.2 Η Επιχείρηση http://www.economics.edu.gr 1 ΚΕΦΑΛΑΙΟ 1 Ο ΕΠΙΧΕΙΡΗΣΕΙΣ ΚΑΙ ΟΡΓΑΝΙΣΜΟΙ 1.2 Η Επιχείρηση : σχολικό βιβλίο 1.2.1 Εισαγωγικές έννοιες Η επιχείρηση αποτελεί ένα στοιχείο της κοινωνίας µας, το ίδιο σηµαντικό

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

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

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

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

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

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

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

ΔΙΕΚ ΜΥΤΙΛΗΝΗΣ ΤΕΧΝΙΚΟΣ ΜΗΧΑΝΟΓΡΑΦΗΜΕΝΟΥ ΛΟΓΙΣΤΗΡΙΟΥ Γ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΛΟΓΙΣΤΙΚΗ ΚΟΣΤΟΥΣ Ι ΜΑΘΗΜΑ 2 ο

ΔΙΕΚ ΜΥΤΙΛΗΝΗΣ ΤΕΧΝΙΚΟΣ ΜΗΧΑΝΟΓΡΑΦΗΜΕΝΟΥ ΛΟΓΙΣΤΗΡΙΟΥ Γ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΛΟΓΙΣΤΙΚΗ ΚΟΣΤΟΥΣ Ι ΜΑΘΗΜΑ 2 ο ΔΙΕΚ ΜΥΤΙΛΗΝΗΣ ΤΕΧΝΙΚΟΣ ΜΗΧΑΝΟΓΡΑΦΗΜΕΝΟΥ ΛΟΓΙΣΤΗΡΙΟΥ Γ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΛΟΓΙΣΤΙΚΗ ΚΟΣΤΟΥΣ Ι ΜΑΘΗΜΑ 2 ο 1. Γενικά για την επιχείρηση Η επιχείρηση αποτελεί ένα στοιχείο της κοινωνίας μας, το ίδιο σημαντικό

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Το Επενδυτικό σχέδιο 3. Βασικές έννοιες και ορισµοί

Το Επενδυτικό σχέδιο 3. Βασικές έννοιες και ορισµοί ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΕΡΕΥΝΑΣ ΤΕΧΝΟΛΟΓΙΚΗ ΟΙΚΟΝΟΜΙΚΗ I Διδάσκων: Δρ. Κ. Αραβώσης Το Επενδυτικό σχέδιο 3. Βασικές έννοιες

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

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

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

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού Πρόλογος...21 μέρος A Εισαγωγή στην Τεχνολογία Λογισμικού 1 Εισαγωγή στην Τεχνολογία Λογισμικού 1.1 Το λογισμικό...25 1.1.1 Ο ρόλος και η σημασία του λογισμικού...26 1.1.2 Οικονομική σημασία του λογισμικού...28

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

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

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

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

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

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

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

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

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

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

ΕΦΟΔΙΑΣΤΙΚΗ LOGISTICS

ΕΦΟΔΙΑΣΤΙΚΗ LOGISTICS Α.Τ.Ε.Ι. ΙΟΝΙΩΝ ΝΗΣΩΝ Τμήμα Διοίκησης Επιχειρήσεων ΕΦΟΔΙΑΣΤΙΚΗ LOGISTICS Καθηγητής Ηλίας Ζήλας MSc in Information Systems ΑΚΑΔΗΜΑΪΚΟΣ ΕΤΟΣ 2008-2009 ΕΝΟΤΗΤΕΣ ΜΑΘΗΜΑΤΟΣ ΒΑΣΙΚΕΣ ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ

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

1. ΕΙΣΑΓΩΓΗ. Εκπαιδευτικός: Ρετσινάς Σωτήριος

1. ΕΙΣΑΓΩΓΗ. Εκπαιδευτικός: Ρετσινάς Σωτήριος 1. ΕΙΣΑΓΩΓΗ Εκπαιδευτικός: Ρετσινάς Σωτήριος Τα πρώτα εργαλεία που κατασκεύασε ο άνθρωπος (2.000.000 χρόνια πριν) αποτελούν τα πρώτα τεχνολογικά δημιουργήματά του Ορισμός 1. Τεχνολογία με την ευρεία έννοια

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

Ως ανάπτυξη προϊόντος ορίζεται όλο το σύνολο των δραστηριοτήτων από την έρευνα αγοράς, µέχρι την παράδοσή του στον πελάτη.

Ως ανάπτυξη προϊόντος ορίζεται όλο το σύνολο των δραστηριοτήτων από την έρευνα αγοράς, µέχρι την παράδοσή του στον πελάτη. ΕΙΣΑΓΩΓΗ Ως ανάπτυξη προϊόντος ορίζεται όλο το σύνολο των δραστηριοτήτων από την έρευνα αγοράς, µέχρι την παράδοσή του στον πελάτη. Η µεθοδολογία είναι κοινή για όλα τα προϊόντα, αλλά η µεθοδολογία που

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

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

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΙΣΗΓΗΤΗΣ: Δρ. Ιωάννης Σ. Τουρτούρας Μηχανικός Παραγωγής & Διοίκησης Δ.Π.Θ. Χρηματοδότηση Το παρόν εκπαιδευτικό

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

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

ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΩΝ ΙΑΧΕΙΡΙΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΠΟΡΩΝ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΩΝ ΙΑΧΕΙΡΙΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΠΟΡΩΝ ΠΕΡΙΕΧΟΜΕΝΑ 1. ERP Τι Είναι - Χαρακτηριστικά Οφέλη από την Εφαρµογή τους 2. Μεθοδολογική Προσέγγιση Επιλογής & Υλοποίησης Συστηµάτων ERP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η συμβολή στην επιτυχία ενός οργανισμού, παρουσιάζοντας σχετικά δεδομένα με τη χρήση τεχνικών 2Δ ή 3Δ τεχνολογίας. Αρμοδιότητα

Η συμβολή στην επιτυχία ενός οργανισμού, παρουσιάζοντας σχετικά δεδομένα με τη χρήση τεχνικών 2Δ ή 3Δ τεχνολογίας. Αρμοδιότητα Σχεδιαστής Ψηφιακών Κινούμενων Σχεδίων ή Digital Animator 1. Περιγραφή Ρόλου Τίτλος Προφίλ Σχε Σχεδιαστής Ψηφιακών Κινούμενων Σχεδίων ή Digital Animator Γνωστό και ως Ειδικός Σχεδιασμού 2Δ- 3Δ γραφικών,

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

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

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

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

Μέθοδος Επιλογής ιαδικασιών (Process Decision Program Chart)

Μέθοδος Επιλογής ιαδικασιών (Process Decision Program Chart) Μέθοδος Επιλογής ιαδικασιών (Process Decision Program Chart) Βασίζεται στη µέθοδο του διαγράµµατος συστηµατοποίησης και αναλύσει τις εναλλακτικές περιπτώσεις συµβάντων. Τα βασικά συστατικά είναι τα εξής:

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

Ειδικά Θέµατα Μάρκετινγκ Υπηρεσιών

Ειδικά Θέµατα Μάρκετινγκ Υπηρεσιών Ειδικά Θέµατα Μάρκετινγκ Υπηρεσιών 1 ΒΑΣΙΚΑ - ΕΙΣΑΓΩΓΙΚΑ ΘΕΜΑΤΑ ΜΑΡΚΕΤΙΝΓΚ ΥΠΗΡΕΣΙΩΝ ΣΥΣΤΗΜΑ ΤΑΞΙΝΟΜΗΣΗΣ ΤΩΝ ΥΠΗΡΕΣΙΩΝ ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ ΠΟΙΟΤΗΤΑ ΥΠΗΡΕΣΙΩΝ ΣΤΡΑΤΗΓΙΚΟΣ ΣΧΕ ΙΑΣΜΟΣ ΕΡΓΑΖΟΜΕΝΟΙ, ΟΜΕΣ, &

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

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

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

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

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Αθήνα 18/ 10/ 2001

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Αθήνα 18/ 10/ 2001 ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Αθήνα 18/ 10/ 2001 ΥΠ.ΕΣ...Α Αριθµ.Πρωτ. / ΙΑ Π/A1/22123 Γ.Γ. ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ ΓΕΝ. /ΝΣΗ ΙΟΙΚΗΤΙΚΗΣ ΟΡΓΑΝΩΣΗΣ /ΝΣΗ ΑΠΛΟΥΣΤΕΥΣΗΣ ΙΑ ΙΚΑΣΙΩΝ ΚΑΙ ΠΑΡΑΓΩΓΙΚΟΤΗΤΑΣ ΤΜΗΜΑ ΜΕΘΟ ΩΝ ΕΡΓΑΣΙΩΝ

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

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

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ Ο κύκλος ζωής λογισµικού (συνοπτικά) Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισµικού Φάση καθορισµού απαιτήσεων (1/2) ΤΙ πρέπει να κάνει το

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Logistics ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Logistics Ενότητα # 7: Παράδοση τη Στιγμή που χρειάζεται (Just-in-Time) & Ευέλικτη Αλυσίδα Εφοδιασμού Διονύσης Γιαννακόπουλος

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

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

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

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37

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

Σχεδιασµός Οικολογικού ιαµεσολαβητή για την εποπτεία και διαχείριση δικτύου διανοµής ηλεκτρικής ενέργειας

Σχεδιασµός Οικολογικού ιαµεσολαβητή για την εποπτεία και διαχείριση δικτύου διανοµής ηλεκτρικής ενέργειας Σχεδιασµός Οικολογικού ιαµεσολαβητή για την εποπτεία και διαχείριση δικτύου διανοµής ηλεκτρικής ενέργειας Σωτηρία ριβάλου Εθνικό Μετσόβιο Πολυτεχνείο Μονάδα Εργονοµίας Συστήµατα διανοµής ηλεκτρικής ενέργειας

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

ΙΑ ΙΚΑΣΙΑ Σ ΕΠ «ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΩΡΙΜΑΝΣΗ ΕΡΓΩΝ»

ΙΑ ΙΚΑΣΙΑ Σ ΕΠ «ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΩΡΙΜΑΝΣΗ ΕΡΓΩΝ» Σελ.: 1 Από: 8 ΙΑ ΙΚΑΣΙΑ Σ ΕΠ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΩΡΙΜΑΝΣΗ ΕΡΓΩΝ ( Π.3.3) 1. ΣΚΟΠΟΣ Σκοπός της παρούσας διαδικασίας είναι η περιγραφή της µεθοδολογίας που ακολουθείται για τον καθορισµό των απαιτήσεων, σχεδιασµού

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΥΤΟΜΑΤΙΣΜΟΥΣ ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΥΤΟΜΑΤΙΣΜΟΥΣ Ενότητα 1.1 Σκοπός Σκοπός του Κεφαλαίου είναι να εισάγει τους μαθητές στον Αυτοματισμό, δηλαδή στο πεδίο της επιστήμης και της τεχνολογίας που ασχολείται με την

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

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

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

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

Γεωργία Ε. Αντωνέλου Επιστημονικό Προσωπικό ΕΕΥΕΜ Μαθηματικός, Msc. antonelou@ecomet.eap.gr

Γεωργία Ε. Αντωνέλου Επιστημονικό Προσωπικό ΕΕΥΕΜ Μαθηματικός, Msc. antonelou@ecomet.eap.gr Γεωργία Ε. Αντωνέλου Επιστημονικό Προσωπικό ΕΕΥΕΜ Μαθηματικός, Msc. antonelou@ecomet.eap.gr Θεμελίωση μιας λύσης ενός προβλήματος από μια πολύπλευρη (multi-faceted) και διαθεματική (multi-disciplinary)

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΑΣΟΛΟΓΙΑΣ & ΦΥΣΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΕΡΓΑΣΤΗΡΙΟ ΑΣΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΑΣΟΛΟΓΙΑΣ & ΦΥΣΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΕΡΓΑΣΤΗΡΙΟ ΑΣΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Ποιότητα Βασικός παράγοντας ανταγωνιστικότητας στην βιοµηχανία επίπλου ρ. Ιωάννης Μπαρµπούτης,

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

Σχεδιασμός Κατασκευών Ενότητα 2: Βασικές Έννοιες Τεχνικών Συστημάτων & Οργάνωση Ανάπτυξης ενός Προϊόντος

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

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

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

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

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

ΠΕΡΙ ΜΕΤΑΒΑΣΗΣ ΑΠΟ ΤΑ ΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΙΑΓΡΑΜΜΑΤΑ ΟΜΗΣ Ε ΟΜΕΝΩΝ

ΠΕΡΙ ΜΕΤΑΒΑΣΗΣ ΑΠΟ ΤΑ ΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΙΑΓΡΑΜΜΑΤΑ ΟΜΗΣ Ε ΟΜΕΝΩΝ ΠΕΡΙ ΜΕΤΑΒΑΣΗΣ ΑΠΟ ΤΑ ΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΙΑΓΡΑΜΜΑΤΑ ΟΜΗΣ Ε ΟΜΕΝΩΝ Μερικές παρατηρήσεις και σκέψεις του συγγραφέα του βιβλίου Σχετικά µε τη µετάβαση από Ρ σε ΠΠ υπάρχουν 2 σηµαντικά ερωτήµατα:

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

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

Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS) Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS) ρ. ΧΑΛΚΙΑΣ ΧΡΙΣΤΟΣ xalkias@hua.gr Χ. Χαλκιάς - Εισαγωγή στα GIS 1 Ορισµοί ΓΠΣ Ένα γεωγραφικό πληροφοριακό σύστηµα Geographic Information

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

Τεχνολογία Λογισµικού (software. engineering)

Τεχνολογία Λογισµικού (software. engineering) Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων Τεχνολογία Λογισµικού (software engineering) Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@unipi.gr

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

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

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

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

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

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

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

Η Πληροφορική Επανάσταση Η Κοινωνία των πληροφοριών

Η Πληροφορική Επανάσταση Η Κοινωνία των πληροφοριών Η Πληροφορική Επανάσταση Η Κοινωνία των πληροφοριών Πολλοί υποστηρίζουν ότι διανύουμε την αρχή μίας εποχής που μπορεί να περιγραφεί ως η Πληροφορική Επανάσταση και η οποία θα αλλάξει ριζικά την όλη δομή

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

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 4 : Τεχνολογία λογισμικού. Δρ. 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 4 : Τεχνολογία λογισμικού Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής

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

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Στόχος Θεματικής Ενότητας Οι μαθητές να περιγράφουν τους βασικούς τομείς της Επιστήμης των Υπολογιστών και να μπορούν

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

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

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Ευθύμιος Ταμπούρης tambouris@uom.gr Επιστημονική Επιχειρηματική Χρήση των Η/Υ Η επιστημονική κοινότητα ασχολείται με τη λύση πολύπλοκων μαθηματικών προβλημάτων

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

ΣΗΜΕΙΩΣΕΙΣ ΓΡΑΦΙΣΤΙΚΗ ΜΕ Η/Υ 1. Του Αποστόλου Παπαποστόλου Επίκουρου Καθηγητή του ΤΕΙ Αθήνας

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

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΕΦΑΡΜΟΓΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟΝ ΤΟΜΕΑ ΤΗΣ ΙΑΤΡΙΚΗΣ ΚΑΙ ΤΗΣ ΠΑΡΟΧΗΣ ΥΠΗΡΕΣΙΩΝ ΥΓΕΙΑΣ» ΣΠΟΥΔΑΣΤΡΙΑ: ΜΑΚΡΟΔΗΜΗΤΡΗ ΙΩΑΝΝΑ ο λ ο/7 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΑΡΥΜΑ ΚΑΛΑΜΑΤΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΜΟΝΑΔΩΝ ΥΓΕΙΑΣ ΚΑΙ ΠΡΟΝΟΙΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΕΦΑΡΜΟΓΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟΝ ΤΟΜΕΑ ΤΗΣ ΙΑΤΡΙΚΗΣ

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

Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας

Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας περιεχόμενα παρουσίασης Έλεγχος συνένωσης Συνένωση και οικοδόμηση Ημερήσια οικοδόμηση Συνεχής συνένωση Σχετικές επιδόσεις μεθόδων διασφάλισης ποιότητας Μετρικές

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

Προσφερόμενα Διπλώματα (Προσφερόμενοι Τίτλοι)

Προσφερόμενα Διπλώματα (Προσφερόμενοι Τίτλοι) Εισαγωγή Το Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Πανεπιστημίου Κύπρου προσφέρει ολοκληρωμένα προπτυχιακά και μεταπτυχιακά προγράμματα σπουδών στους κλάδους του Ηλεκτρολόγου Μηχανικού

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