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

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

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

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

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

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

Θέματα ποιότητας (1/5)

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

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

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

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

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

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

. Μεθοδολογία Προγραμματισμού. Εισαγωγή. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

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

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

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

Περιεχόμενα. Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 1. Εισαγωγή στα συστήματα σχεδιομελέτης και παραγωγής με χρήση υπολογιστή computer aided design and manufacture (cad/cam)

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

Εισαγωγή στα συστήματα σχεδιομελέτης και παραγωγής με χρήση υπολογιστή - Computer aided design and manufacture (cad/cam)

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

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

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

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

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

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

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

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

ΕΠΛ 003.1: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Για διοικητικά στελέχη

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

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

ΤΕΧΝΟΛΟΓΙΕΣ & ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΩΝ ΙΩΑΝΝΗ Δ. ΙΓΓΛΕΖΑΚΗ

ΚΕΦΑΛΑΙΑ XIII, XIV. Εκσφαλμάτωση προγράμματος - Κύκλος Ζωής Λογισμικού

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

Πληροφορική. Μάθημα Κατεύθυνσης

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

ΕΠΛ 003.3: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Για οικονομολόγους

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

ΟΡΓAΝΩΣΗ / ΔΙΟIΚΗΣΗ ΠΑΡΑΓΩΓHΣ: ΕΙΣΑΓΩΓΙΚEΣ EΝΝΟΙΕΣ. Διοίκηση Παραγωγής & Συστημάτων Υπηρεσιών ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΑΠΟΦΑΣΕΩΝ ΚΑΙ ΔΙΟΙΚΗΣΗΣ

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

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

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Εισαγωγή στην. Γιάννης Σμαραγδάκης

05 Ανάλυση απαιτήσεων

ΘΕΜΑΤΑ ΣΧΕΔΙΑΣΗΣ, ΥΛΟΠΟΙΗΣΗΣ ΚΑΙ ΣΥΝΤΗΡΗΣΗΣ (11) ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΡΓΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΑΛΛΑΓΗΣ (12)

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

Εισαγωγή. Τμήμα Μηχανικών Σχεδίασης Προϊόντων και Συστημάτων, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ. Παναγιώτης Κουτσαμπάσης

Προδιαγραφές Απαιτήσεων Επικύρωση Απαιτήσεων

Μάθηµα 2. Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας

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

Ενότητα 3 (κεφάλαιο 16) Επαναχρησιμοποίηση Λογισμικού

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

Εργαλεία Κατασκευής Παιχνιδιών Ι (Unreal Editor, Half Life, Doom Editor)

Rational Unified Process:

1.1. Πολιτική Ασφάλειας Πληροφοριών

Εταιρείες Πληροφορικής και Τηλεπικοινωνιών

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

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

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

Παρουσίαση: Ανθρωποκεντρικός σχεδιασμός πολυμέσων ΜΙΚΡΟΠΟΥΛΟΥ ΕΥΓΕΝΙΑ ΓΤΠ61

Προγραμματισμός Υπολογιστών

Περιεχόμενα Α ΜΕΡΟΣ. Πρόλογος των Συγγραφέων ΚΕΦΑΛΑΙΟ 1 Πληροφοριακά Συστήματα. ΚΕΦΑΛΑΙΟ 2 Πληροφοριακά Συστήματα και Σύγχρονη Επιχείρηση

ΟΡΟΛΟΓΙΑ. απαιτήσεις αξιοπιστίας, στις απαιτήσεις ασφάλειας, στις απαιτήσεις λειτουργίας κλπ.

Στρατηγική Αξιολόγησης κατά την Υλοποίηση Εκπαιδευτικού Λογισμικού

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Ποιότητα Λογισμικού και Πιστοποίηση

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

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

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

Διοίκηση Παραγωγής & Συστημάτων Υπηρεσιών ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΑΠΟΦΑΣΕΩΝ ΚΑΙ ΔΙΟΙΚΗΣΗΣ

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

EDP Manager. Presales?? Project Manager

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. ΚΕΦΑΛΑΙΟ 2 Βασικές Έννοιες Αλγορίθμων

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

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Δομημένος Προγραμματισμός

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Transcript:

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

Στόχοι Έννοια της τεχνολογίας λογισμικού (ΤΛ) και ερμηνεία της σημασίας της Απαντήσεις σε θεμελιώδεις ερωτήσεις για την ΤΛ Ανάδειξη ηθικών και επαγγελματικών ζητημάτων Σημασίας για τους μηχανικούς λογισμικού

Το λογισμικό 1950, αρχή Έδωσε δυνατότητες σε υπάρχουσες τεχνολογίες (πχ. Τηλεπικοινωνίες) Δημιούργησε νέες επιστήμες (π.χ. γενετική βιολογία) Βελτίωση ποιότητα ζωής Υγεία, τηλεϋπηρεσίες, έρευνα, κ.λπ. 3

Που βρίσκεται το λογισμικό; Άϋλο («εκτελείται», αποθηκεύεται) Δεν είναι αντικείμενο των 5 αισθήσεών μας Δεν φθείρεται με τον χρόνο Δεν υπακούει στους νόμους παραγωγής-ανάπτυξης των υλικών αγαθών Διαφοροποιείται από τον τρόπο αξιοποίησης των υλικών αγαθών 4

Ορισμός λογισμικού Σύνολο προγραμμάτων που περιλαμβάνουν Δομές δεδομένων (διαχείριση πληροφορίας) Εντολές (παρέχουν λειτουργίες) Τεκμηρίωση Φυλλάδια απαιτήσεων Μοντέλα σχεδίασης Εγχειρίδια χρήσης 5

Λογισμικό και οικονομία Οι οικονομίες ΟΛΩΝ των αναπτυγμένων χωρών εξαρτώνται από το λογισμικό Ολοένα και περισσότερα συστήματα ελέγχονται από λογισμικό Οι δαπάνες σε λογισμικό αντιπροσωπεύουν σημαντικό μέρος του ΑΕΠ σε όλες τις αναπτυγμένες χώρες

Τεχνολογία λογισμικού Η τεχνολογία λογισμικού καταπιάνεται με θεωρίες, μεθόδους και εργαλεία ανάπτυξης επαγγελματικού λογισμικού

Η τεχνολογία λογισμικού «Είναι κλάδος της πληροφορικής που ασχολείται με την μελέτη και την εφαρμογή των συστηματικών, μεθοδικών και ποσοτικοποιημένων προσεγγίσεων για την ανάπτυξη, λειτουργία και συντήρηση του λογισμικού» (ΙΕΕΕ 90) Δεν έχει αποκτήσει ακόμη τα χαρακτηριστικά της επιστήμης, που θα της επιτρέπουν να αποδεικνύει την ύπαρξη βέλτιστης, ορθής, πλήρους και αξιόπιστης λύσης 8

Κόστος λογισμικού Το κόστος του λογισμικού συχνά είναι η μερίδα του λέοντος από το συνολικό κόστος ενός υπολογιστικού συστήματος. Το κόστος του λογισμικού ενός PC είναι συχνά μεγαλύτερο από το κόστος του υλικού. Το κόστος συντήρησης του λογισμικού υπερβαίνει αυτό της ανάπτυξής του. Για συστήματα με μεγάλη διάρκεια ζωής, το κόστος συντήρησης μπορεί να είναι πολλαπλάσιο του κόστους ανάπτυξης. Η τεχνολογία λογισμικού ασχολείται με την αποτελεσματική, από την άποψη του κόστους, ανάπτυξη λογισμικού.

Για ποιόν και γιατί σχεδιάζουμε; Για ποιόν; Για ένα συγκεκριμένο πελάτη Κατά παραγγελία Συγκεκριμένες προδιαγραφές Μια γενική αγορά γενικής χρήσης Για συγκεκριμένη ομάδα τύπο πελατών Γιατί; Για πιο σκοπό; Για νέα πρόγραμμα σκοπό Για διαχείριση ενσωμάτωση παλαιότερων προγραμμάτων σε γενικότερα συστήματα Για επαναχρησιμοποίηση υπαρχόντων προγραμμάτων

Απαντήσεις σε συχνές ερωτήσεις

Συχνές ερωτήσεις για την τεχνολογία λογισμικού Τι είναι λογισμικό; Τι είναι τεχνολογία λογισμικού; Ποια είναι η διαφορά μεταξύ τεχνολογίας λογισμικού και επιστήμης των υπολογιστών; Ποια είναι η διαφορά μεταξύ τεχνολογίας λογισμικού και τεχνολογίας συστημάτων; Τι είναι διαδικασία παραγωγής λογισμικού; Τι είναι μοντέλο διαδικασίας παραγωγής λογισμικού;

Συχνές ερωτήσεις για την τεχνολογία λογισμικού Ποιο είναι το κόστος της τεχνολογίας λογισμικού; Τι είναι μέθοδοι της τεχνολογίας λογισμικού; Τι είναι η τεχνολογία λογισμικού με τη βοήθεια υπολογιστή (Computer-Aided Software Engineering, CASE); Ποια είναι τα γνωρίσματα του καλού λογισμικού; Ποιες είναι οι σημαντικότερες προκλήσεις που αντιμετωπίζει η τεχνολογία λογισμικού;

Τι είναι τεχνολογία λογισμικού; Τεχνικός κλάδος που ασχολείται με όλες τις πτυχές της παραγωγής λογισμικού Συστηματική και οργανωμένη προσέγγιση Κατάλληλα εργαλεία και τεχνικές ανάλογα με το πρόβλημα τους περιορισμούς ανάπτυξης τους διαθέσιμους πόρους

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

Ο ρόλος του Τεχνολόγου Λογισμικού 16

Ποια είναι η διαφορά μεταξύ τεχνολογίας λογισμικού και τεχνολογίας συστημάτων; Η τεχνολογία συστημάτων ασχολείται με όλες τις πτυχές της ανάπτυξης συστημάτων υπολογιστών Ανάπτυξη υλικού, λογισμικού, διαδικασιών λειτουργίας Προδιαγραφές συστήματος, αρχιτεκτονική, ολοκλήρωση - εγκατάσταση Η ΤΛ είναι το μέρος της διαδικασίας αυτής Αφορά το τμήμα του λογισμικού Διαδικασίες Λογισμικό Σύστημα

Τι είναι διαδικασία παραγωγής λογισμικού; Ένα σύνολο δραστηριοτήτων με στόχο την ανάπτυξη ή εξέλιξη ενός προϊόντος λογισμικού Οι θεμελιώδεις δραστηριότητες, κοινές σε όλες τις διαδικασίες παραγωγής λογισμικού, είναι: Εξαγωγή προδιαγραφών Η ανάπτυξη - παραγωγή Η επικύρωση Η εξέλιξη

Τι είναι μοντέλο διαδικασίας παραγωγής λογισμικού; Μια απλοποιημένη αναπαράσταση διαδικασίας παραγωγής λογισμικού, θεωρούμενη από κάποια συγκεκριμένη άποψη. Παραδείγματα τύπων μοντέλων διαδικασιών παραγωγής: Μοντέλο ροής εργασιών flow diagram Μοντέλο ροής δεδομένων data diagram Μοντέλο ρόλων/ενεργειών activity diagram

Μοντέλα ανάπτυξης Γενικά μοντέλα (υποδείγματα) διαδικασιών ανάπτυξης λογισμικού Μοντέλο καταρράκτη - cataract Επαναληπτική ανάπτυξη - iteration Τεχνολογία λογισμικού βάσει συστατικών στοιχείων - component

Ποιο είναι το κόστος της τεχνολογίας λογισμικού; Ανάπτυξη 60% Έλεγχος 40% Ποικίλλει ανάλογα με Τον τύπο συστήματος Τις απαιτήσεις (π.χ. απόδοση και αξιοπιστία) Η κατανομή κόστους εξαρτάται από το μοντέλο ανάπτυξης

Κατανομή κόστους δραστηριοτήτων

Γιατί είναι σημαντική η σχεδίαση λογισμικού; Γιατί είναι σημαντικό το μάθημα

Τεχνολογία λογισμικού (1/2) Προϊόν συστήματος λογισμικού Λογισμικό Προγράμματα υπολογιστή Προϊόν λογισμικού Λογισμικό που μπορεί να πουληθεί σε κάποιο πελάτη ( γενικής χρήσης, κατά παραγγελία). Περιλαμβάνεται και η σχετική τεκμηρίωση όπως απαιτήσεις, σχέδιο, εγχειρίδιο Σύστημα Λογισμικού Επιτρέπει τη συνεργασία και την ενσωμάτωση με άλλα συστήματα λογισμικού Τεχνολογία Λογισμικού είναι ο τεχνικός κλάδος που ασχολείται με όλες τις πτυχές ανάπτυξης λογισμικού από τα πρώτα στάδια της εξαγωγής προδιαγραφών μέχρι τη συντήρηση του συστήματος (Somerville) 24

Τεχνολογία Λογισμικού Επιλύει προβλήματα με τη βοήθεια του λογισμικού Ανάλυση προβλήματος Σύνθεση της λύσης Με τη χρήση: Μεθόδων ή τεχνικών: διαδικασία παραγωγής Εργαλείων: βοήθημα ή αυτοματοποιημένο σύστημα Διαδικασιών: συνδυασμό εργαλείων και μεθόδων Υποδειγμάτων: συγκεκριμένη προσέγγιση ή μεθοδολογία Η Τεχνολογία Λογισμικού έχει ως στόχο την σχεδίαση και υλοποίηση λογισμικού υψηλής ποιότητας. 25

Λογισμικό, σύστημα λογισμικού, προϊόν λογισμικού (1/2) Πληροφοριακά Συστήματα Από το βιβλίο «The Mythical Mam Month», Frederick Brooks 26

Παράγοντες που ενισχύουν την σημασία της Τεχνολογίας Λογισμικού Οι εξελίξεις στο υλικό Οι αυξανόμενες απαιτήσεις για λογισμικό Οι αλλαγές στον λόγο κόστους υλικού προς κόστος λογισμικού (μειώνεται) Η αυξανόμενη σημασία της συντήρησης λογισμικού Οι εξελίξεις στις τεχνικές λογισμικού 27

Σχετικά με τις αποκλήσεις Τέλη 1960 «κρίση λογισμικού» Μεγάλο ποσοστό των έργων παρουσίαζαν: Αποκλίσεις από Λειτουργικότητα που παρήγγειλαν οι πελάτες Χρονοδιάγραμμα ανάπτυξης Οικονομικό προγραμματισμό Προβλεπόμενο κόστος περιβάλλοντος λειτουργίας Αδυναμία εξέλιξης του λογισμικού ώστε να προσαρμοστεί στις ανάγκες των πελατών 28

Σχετικά με τα λάθη 54% λαθών ανακαλύπτονται μετά την κωδικοποίηση και τον έλεγχο 45% εντοπίζονται στις απαιτήσεις και τη σχεδίαση Τα περισσότερα λάθη κατά τη φάση της ανάλυσης απαιτήσεων (77%) δεν οφείλονται στους αναλυτές αλλά προκύπτουν λόγω λανθασμένων δεδομένων, ασυνέπειες, παραλήψεις και ασάφειες. 29

Σχετικά με τα λάθη Η διόρθωση λαθών στις απαιτήσεις μπορεί να κοστίσει και 100 φορές παραπάνω από τα λάθη υλοποίησης Τα λάθη στην καταγραφή απαιτήσεων μπορούν να εντοπιστούν Οι τεχνικές επιθεώρησης είναι αποτελεσματικές Μπορούν να εφαρμοστούν στο σχέδιο και στον κώδικα

I. Sommerville 2006 Τμήμα Μηχανικών Βασικές Η/Υ αρχές Τηλεπικοινωνιών Τεχνολογίας & Λογισμικού, Δικτύων, Πανεπιστήμιο 8η αγγ. έκδοση Θεσσαλίας Κεφ. 1 31

Αληθινές ιστορίες Σφάλματα: Ενοχλητικά Κόστος σε χρόνο και χρήμα Ζωτικής σημασίας 1992, σύστημα ασθενοφόρων Λονδίνου 1993, διαχείριση αποσκευών αεροδρ. Ντένβερ, 175,6 εκατ. $ 1996, πύραυλος Ariane-5, 350 εκατ. $ 2004, κέντρο ελέγχου εναέριας κυκλοφορίας του Λος Αντζελες Ερευνα 1993-2000 κατέγραψε ότι το 2000: 23% των έργων ματαιώθηκαν 28% ολοκληρώθηκαν σύμφωνα με τον χρονικό και οικονομικό προγραμματισμό 49% ολοκληρώθηκαν με αποκλίσεις 33

Συχνότερες αιτίες αποτυχίας Μη ρεαλιστικοί στόχοι/ στόχοι που δεν είναι καλά καθορισμένοι Λάθος ορισμός απαιτήσεων Ανικανότητα χειρισμού πολυπλοκότητας έργων Κακές εκτιμήσεις για τους απαιτούμενους πόρους Κακή αναφορά της κατάστασης του έργου Κακή διαχείριση του έργου Κακή διαχείριση κινδύνων Ελλιπής επικοινωνία πελάτη, προγραμματιστή, χρήστη Κακές προγραμματιστικές τεχνικές Χρήση ανώριμης τεχνολογίας 34

Παράγοντες επιτυχίας Επιχειρησιακή υποστήριξη Στάση διοίκησης Καθορισμός στόχων και εμβέλειας Ικανός διοικητής έργου Εμπλοκή χρηστών Συμμετοχή σε όλη την πορεία του έργου Σαφείς επιχειρησιακοί στόχοι Εστιασμένο πεδίο εφαρμογής του προϊόντος Οριοθέτηση της λειτουργικότητας Χρονοδιάγραμμα και προϋπολογισμένου κόστους Πρότυπες υποδομές «Κώδικας υποδομής» Χρήση διαδεδομένων ώριμων και δοκιμασμένων υποδομών, τεχνολογιών και εργαλείων 35

Μύθοι σχετικά με το λογισμικό (1/3) Μύθοι του management Υπάρχουν στην εταιρία πρότυπα και διαδικασίες για την ανάπτυξη λογισμικού. Άρα παρέχονται στους developers όλα όσα χρειάζονται να ξέρουν Η εταιρία διαθέτει «state of the art» συστήματα ανάπτυξης λογισμικού και hardware Αν ένα έργο ξεφύγει από το χρονοπρογραμματισμό το επαναφέρουμε προσθέτοντας ανθρώπινους πόρους I. Sommerville 2006 Τμήμα Μηχανικών Βασικές Η/Υ αρχές Τηλεπικοινωνιών Τεχνολογίας & Λογισμικού, Δικτύων, Πανεπιστήμιο 8η αγγ. έκδοση Θεσσαλίας Κεφ. 1 36

Μύθοι σχετικά με το λογισμικό (2/3) Μύθοι του πελάτη Μια γενική διατύπωση των στόχων είναι επαρκής για την αρχή συγγραφής των προγραμμάτων. Οι λεπτομέρειες μπορούν να καθοριστούν αργότερα Οι διαρκώς μεταλλασσόμενες απαιτήσεις ενός έργου μπορούν να αντιμετωπισθούν εύκολα λόγω της ευελιξίας που διαθέτει το λογισμικό 37

Κόστος αλλαγών 38

Μύθοι σχετικά με το λογισμικό (3/3) Μύθοι του προγραμματιστή Το έργο του προγραμματιστή τελειώνει τη στιγμή που θα εκτελεστεί το πρόγραμμα Δεν είναι δυνατό να εκτιμηθεί η ποιότητα έως ότου εκτελεστεί το πρόγραμμα Το μόνο παραδοτέο έως ότου εκτελεστεί το πρόγραμμα είναι ο κώδικας που τρέχει 39

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

Τι είναι η τεχνολογία λογισμικού με τη βοήθεια υπολογιστή (Computer-Aided Software Engineering, CASE); Είναι συστήματα λογισμικού που υποστηρίζουν την παραγωγή Εργαλεία CASE ανώτερης τάξης Εργαλεία υποστήριξης των δραστηριοτήτων του ορισμού απαιτήσεων και του σχεδιασμού που προηγούνται στη διαδικασία Εργαλεία CASE κατώτερης τάξης Εργαλεία για την υποστήριξη μεταγενέστερων διαδικασιών όπως η ανάπτυξη του κώδικα, η αποσφαλμάτωση και οι δοκιμές.

Ποια είναι τα γνωρίσματα του καλού λογισμικού; Συντηρησιμότητα Το λογισμικό πρέπει να μπορεί να εξελίσσεται για να ανταποκρίνεται στις μεταβαλλόμενες ανάγκες των πελατών Φερεγγυότητα Το λογισμικό πρέπει να είναι αξιόπιστο Αποδοτικότητα Το λογισμικό δεν πρέπει να σπαταλά πόρους του συστήματος Αποδοχή Κατανοητό, εύχρηστο και συμβατό με άλλα συστήματα

Ποιες είναι οι σημαντικότερες προκλήσεις που αντιμετωπίζει η τεχνολογία λογισμικού; Ετερογένεια Λογισμικό που μπορεί να ανταπεξέλθει σε ετερογενείς πλατφόρμες και περιβάλλοντα εκτέλεσης Χρόνος παράδοσης Ανάπτυξη τεχνικών που οδηγούν σε συντόμευση του χρόνου παράδοσης του λογισμικού Εμπιστοσύνη Ανάπτυξη τεχνικών που καταδεικνύουν ότι οι χρήστες μπορούν να εμπιστεύονται το λογισμικό