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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Φάση 3: Λεπτομερής Σχεδιασμός

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

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

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

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

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

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

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

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

ΕΚΘΕΜΑ 2-1 Σύστηµα επιστροφής µπάλας, ένα από τα προϊόντα µπόουλινγκ της AMF Bowling.

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

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

Διαχείριση Έργων. Ενότητα 7: Εκτέλεση, παρακολούθηση και έλεγχος έργου

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

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

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

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

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

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

Απαιτήσεις Λογισμικού

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

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων

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

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

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

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

Σχεδιασμός προϊόντων και υπηρεσιών. Source: Toyota (GB) plc

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού...

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

ΣΧΕΔΙΑΣΜΟΣ & ΑΝΑΠΤΥΞΗ ΠΡΟΪΟΝΤΟΣ

Διοίκηση Παραγωγής και Υπηρεσιών

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

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

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

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

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

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

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

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

Έμπειρα Συστήματα. Εργαστήριο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΙΔΙΚΗ ΕΠΙΣΤΗΜΟΝΙΚΗ ΕΠΙΤΡΟΠΗ ΘΕΜΑΤΩΝ ΤΥΠΟΠΟΙΗΣΗΣ, ΠΙΣΤΟΠΟΙΗΣΗΣ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΙΟΤΗΤΑΣ. Εισηγήτρια: Γκαβέλα Σταματία Δρ. Χημικός Μηχανικός ΕΜΠ

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

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Transcript:

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

Κύκλος Ζωής-Ανάπτυξης Συστήματος Ο Κύκλος Ζωής Ανάπτυξης Συστήματος (System Development Life Cycle) περιλαμβάνει την πορεία του συστήματος από τον καθορισμό του προβλήματος μέχρι τη λειτουργία του, τη συντήρηση και, τέλος, την απόσυρσή του O κύκλος ζωής περιλαμβάνει τις δραστηριότητες που απαντούν στα ερωτήματα: Τι; Γιατί; Πότε; Πώς; Πού; Απο ποιόν; Ομαδοποίηση δραστηριοτήτων σε φάσεις Γενικές φάσεις κύκλου ζωής λογισμικού Σύλληψη Ανάλυση Κατασκευή Σχεδίαση και Υλοποίηση Χρήση / Συντήρηση Απόσυρση Σύλληψη Κατασκευή Χρήση Συντήρηση Απόσυρση 2

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

Σχέσεις εννοιών στην ανάπτυξη Εργαλεία λογισμικού Μεθοδολογίες Διεργασίες ανάπτυξης Μοντέλα Κύκλου Ζωής Τα μοντέλα κύκλου ζωής λογισμικού προσδιορίζουν τις διεργασίες ανάπτυξης που λαμβάνουν χώρα κατά τις γενικές φάσεις «κατασκευή» και «χρήση-συντήρηση» προσδιορίζοντας τις επιμέρους φάσεις στις οποίες αυτές αναλύονται, τα προϊόντα που παράγονται και τη σειρά εκτέλεσής τους. Κάθε διεργασία ανάπτυξης περισσότερες από μία επιμέρους φάσεις περισσότερες από μία εργασίες Διευκρινήσεις Ποσοτική σχέση μεταξύ των εννοιών Ένα μοντέλο κύκλου ζωής μπορεί να υλοποιείται με περισσότερες από μία διεργασίες ανάπτυξης Μία διεργασία ανάπτυξης αφορά ακριβώς ένα μοντέλο κύκλου ζωής Μία μεθοδολογία μπορεί να υποστηρίζεται από περισσότερα του ενός εργαλεία Ένα εργαλείο μπορεί να υποστηρίζει περισσότερες της μίας μεθοδολογίες 4

Χαρακτηριστικά καλής διεργασίας ανάπτυξης λογισμικού Κατανόηση Είναι η διεργασία σαφώς καθορισμένη και κατανοητή? Παρακολούθηση Είναι δυνατόν να παρακολουθήσουμε εξωτερικά την πρόοδο της διεργασίας? Υποστήριξη Είναι δυνατόν να υποστηριχθεί η διεργασία με εργαλεία (π.χ. CASE tools)? Αποδοχή Είναι η διεργασία αποδεκτή από αυτούς που συμμετέχουν σε αυτή? Χαρακτηριστικά καλής διεργασίας ανάπτυξης λογισμικού Αξιοπιστία Ανακαλύπτονται τα λάθη της διαδικασίας πριν μετατραπούν σε λάθη στο προϊόν? Ανθεκτικότητα Είναι δυνατόν να αντεπεξέλθει η διεργασία σε μη αναμενόμενα προβλήματα? Συντήρηση Είναι δυνατόν να εξελιχθεί η διαδικασία για την κάλυψη μεταβαλλόμενων προδιαγραφών και απαιτήσεων? Ταχύτητα Πόσο γρήγορα παράγεται το προϊόν? 5

Ταξινόμηση διεργασιών ανάπτυξης Προδιαγραφή (Specification) καθορισμός των εργασιών που θα επιτελεί το λογισμικό, καθώς και των περιορισμών και των παραδοχών που ισχύουν Ανάπτυξη (Development) κατασκευή του λογισμικού. Διακρίνουμε τρεις επιμέρους φάσεις: την ανάλυση, τη σχεδίαση και τη συγγραφή του πηγαίου κώδικα source code (κωδικοποίηση) Επαλήθευση (Verification) επιβεβαίωση της ικανοποίησης των προδιαγραφών και της μη ύπαρξης σφαλμάτων Εξέλιξη (Evolution) επαύξηση των λειτουργικών χαρακτηριστικών του λογισμικού ή τροποποίηση υπαρχουσών, προκειμένου να ικανοποιούνται οι μεταβαλλόμενες ανάγκες Κόστος!!! Κόστος αναθεώρησης αποφάσεων ή/και διόρθωσης σφαλμάτων Εξαρτάται από την απαιτούμενη οπισθοδρόμηση της διαδικασίας Οικονομικοί πόροι ΑΛΛΑ και χρόνος καθυστέρησης Παρενέργειες στο υπόλοιπο σύστημα δεν εντοπίζονται εύκολα από την αρχή 6

Διάφορα μοντέλα που διαφοροποιούνται ως προς Σύλληψη ιδέας τρόπου κατασκευής Επιμέρους φάσεις Επαναληπτικότητα εργασιών Εμβέλεια εργασιών έκταση στην οποία εφαρμόζονται οι διαδικασίες Ενδιάμεσα προϊόντα και περιγραφή Ενδιάμεσες αποτιμήσεις από πελάτη ή κατασκευαστή Οικονομικές και επιχειρηματικές πλευρές Διαδικασία επίλυσης προβλημάτων Είναι κάθε μία από τις ενέργειες που περιγράφεται σε ένα μοντέλο κύκλου ζωής Ορισμός του προβλήματος Αποτίμηση τρέχουσα κατάστασης (μονάδα) Ενσωμάτωση της λύσης στο σύστημα Επιλογή μιας λύσης Υλοποίηση της λύσης Αποτίμηση τρέχουσα κατάστασης (σύστημα) Μικροσκοπικό επίπεδο Μονάδες υπό κατασκευή λογισμικού Μακροσκοπικό επίπεδο Ολόκληρο το σύστημα 7

Κύκλος Ζωής Λογισμικού Εξαγωγή & Ανάλυση Απαιτήσεων Σχεδίαση Συστήματος Σχεδίαση Προγραμμάτων Κωδικοποίηση Δοκιμή Μονάδων και Ενοποίησης Δοκιμή Συστήματος Δοκιμή Αποδοχής Παράδοση, Λειτουργία & Συντήρηση Συστήματος Απαιτήσεις Τι είναι: Αυτό που θέλουμε να κάνει το σύστημά μας (στόχοι, επιθυμίες, απαιτήσεις) Π.χ. Υπολογισμός και εκτύπωση δεδομένων μισθοδοσίας με βάση την πολιτική της επιχείρησης και το νομικό καθεστώς Τι δεν είναι: Αρχιτεκτονική λογισμικού Σχέδιο Διασύνδεση με το χρήστη 8

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

Σχεδίαση συστήματος 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση Απαιτήσεις και σχεδιασμός Η προδιαγραφή των απαιτήσεων και ο σχεδιασμός του συστήματος είναι άρρηκτα συνδεδεμένες έννοιες. Οι περιορισμοί που τίθενται από υπάρχοντα συστήματα και από το περιβάλλον του συστήματος μπορεί να οριοθετούν τις δυνατές σχεδιαστικές επιλογές και έτσι απαίτηση μπορεί να αποτελούν ακόμα και αυτές οι επιλογές που θα χρησιμοποιηθεί. Ίσως χρειαστεί κάποιος αρχικός σχεδιασμός για τη δόμηση της διαδικασίας καθορισμού των απαιτήσεων. Καθώς η διαδικασία του σχεδιασμού προχωρά, διαπιστώνετε περισσότερα πράγματα για τις απαιτήσεις. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση 10

Υλοποίηση Μετατροπή της σχεδίασης σε μορφή κατανοητή από τη μηχανή Λεπτομερής δημιουργία διαγραμμάτων σε CASE tool Συγγραφή κώδικα σε γλώσσα προγραμματισμού Ανάπτυξη υποσυστημάτων Συνήθως πρόκειται για παράλληλα έργα ανάπτυξης του υλικού, του λογισμικού και των επικοινωνιών. Μπορεί να συνεπάγεται και την προμήθεια συστημάτων εμπορικών εφαρμογών. Έλλειψη επικοινωνίας μεταξύ των ομάδων υλοποίησης. Αν ο μηχανισμός υποβολής προτεινόμενων αλλαγών στο σύστημα είναι γραφειοκρατικός και αργός, το χρονοδιάγραμμα ανάπτυξης μπορεί να επεκταθεί εξαιτίας της ανάγκης για επανεπεξεργασία. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση 11

Έλεγχος Διαδικασία εκτέλεσης και σχεδιαστικής ανασκόπησης του συστήματος με σκοπό την ανεύρεση λαθών Ενοποίηση συστήματος Η διαδικασία σύνθεσης του υλικού, του λογισμικού και του ανθρώπινου δυναμικού για τη δημιουργία ενός συστήματος. Πρέπει να γίνεται βαθμιαία ώστε τα υποσυστήματα να προστίθενται ένα-ένα. Σε αυτό το στάδιο συνήθως εντοπίζονται προβλήματα που αφορούν τη διασύνδεση μεταξύ των υποσυστημάτων. Μπορεί να είναι προβλήματα που οφείλονται στην έλλειψη συντονισμού της παράδοσης των συστατικών στοιχείων του συστήματος. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση 12

Εγκατάσταση συστήματος Μετά την ολοκλήρωση, το σύστημα πρέπει να εγκατασταθεί στο περιβάλλον του πελάτη Εσφαλμένες παραδοχές σχετικά με το περιβάλλον Αντίσταση εκ μέρους του ανθρώπινου παράγοντα στην εισαγωγή ενός νέου συστήματος Το νέο σύστημα μπορεί να χρειαστεί να συνυπάρξει με εναλλακτικά συστήματα για κάποιο χρονικό διάστημα Προβλήματα που αφορούν τη φυσική εγκατάσταση του συστήματος (πχ. προβλήματα με την καλωδίωση) Πρέπει να προσδιοριστούν τα περιεχόμενα της εκπαίδευσης των χειριστών. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση Συντήρηση Λόγοι: Διόρθωση σφαλμάτων. Προσαρμογή σε αλλαγές: Προδιαγραφών / Απαιτήσεων Περιβάλλοντος Διευκόλυνση μελλοντικής συντήρησης 13

Εξέλιξη συστήματος Τα μεγάλα συστήματα έχουν πολύ μεγάλη διάρκεια ζωής. Πρέπει να εξελίσσονται για να πληρούν τις μεταβαλλόμενες απαιτήσεις. Η εξέλιξη είναι εν γένει δαπανηρή Οι προτεινόμενες αλλαγές πρέπει να αναλύονται από τεχνική και επιχειρηματική σκοπιά Επειδή τα υποσυστήματα δεν είναι ποτέ εντελώς ανεξάρτητα, μπορεί να ανακύψουν απρόσμενα προβλήματα Σπάνια καταγράφεται η συλλογιστική που οδήγησε στις αρχικές σχεδιαστικές αποφάσεις Η δομή των συστημάτων φθείρεται από τις αλλαγές που πραγματοποιούνται σε αυτά. Υπάρχοντα συστήματα που πρέπει να συντηρούνται ονομάζονται και κληρονομημένα συστήματα. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση Απόσυρση συστήματος Το σύστημα τίθεται εκτός υπηρεσίας μετά το τέλος της ωφέλιμης διάρκειας ζωής του. Μπορεί να απαιτεί την απομάκρυνση υλικών (πχ. επικίνδυνων χημικών) που ρυπαίνουν το περιβάλλον Η δραστηριότητα αυτή πρέπει να προβλέπεται στο σχεδιασμό του συστήματος μέσω ενθυλάκωσης. Μπορεί να απαιτείται αναδόμηση και μετατροπή των δεδομένων προκειμένου να χρησιμοποιηθούν σε κάποιο άλλο σύστημα. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση 14

Η διαδικασία ανάπτυξης λογισμικού στην πραγματικότητα Χαρακτηριστικά Μοντέλα Κύκλου Ζωής Λογισμικού Μοντέλο καταρράκτη Μοντέλο πρωτοτυποποίησης Μοντέλο λειτουργικής επαύξησης Σπειροειδές μοντέλο Μοντέλο πίδακα Γενικό μοντέλο κύκλου ζωής 15

Διαδικασίες ανάπτυξης Μοντέλο καταρράκτη Επιμέρους φάσεις Εργασίες Ολόκληρη η εφαρμογή λογισμικού διέρχεται διαδοχικές φάσεις ανάπτυξης Ανάπτυξη λογισμικού: μεγάλος ογκόλιθος που μεταφέρεται από ένα σημείο σε άλλο περνώντας από στάσεις, αλλά μεταφέροντας ολόκληρο τον ογκόλιθο από τη μία στάση στην άλλη Χαρακτηριστικά μοντέλου καταρράκτη Το μοντέλο καταρράκτη δεν κάνει υποθέσεις για τη μεθοδολογία και τους συμβολισμούς σε κάθε στάδιο Βασικές αρχές μοντέλου: Ακολουθία βημάτων Κάθε βήμα είναι σαφώς καθορισμένο Κάθε βήμα καταλήγει στη δημιουργία προϊόντος (έγγραφο ή κώδικας) Κάθε προϊόν αποτελεί τη βάση για το επόμενο βήμα Η ορθότητα κάθε προϊόντος μπορεί να ελεγχθεί 16

Μοντέλο καταρράκτη Επικύρωση (validation) επαληθεύεται ότι έχουν υλοποιηθεί όλες οι προδιαγραφές και το λογισμικό ανταποκρίνεται στις απαιτήσεις από το σύστημα, «το λογισμικό κάνει αυτό που ήθελε ο πελάτης να κάνει» Επαλήθευση (verification) επαληθεύεται ότι κάθε λειτουργία/μονάδα του συστήματος εκτελείται σωστά από προγραμματιστικής άποψης, «το λογισμικό κάνει σωστά αυτό που ήθελε ο πελάτης να κάνει» Κάθε επιμέρους φάση ολοκληρώνεται με μία εργασία επαλήθευσης/επικύρωσης των προϊόντων της κατά την οποία αποφασίζεται η μετάβαση ή όχι στην επόμενη Ακολουθιακή ανάπτυξη οι επιμέρους φάσεις είναι διακριτές και ακολουθούν η μία την άλλη, για να ξεκινήσει μία φάση πρέπει να έχει ολοκληρωθεί πλήρως η προηγούμενη Μοντέλο καταρράκτη Καθορισμός απαιτήσεων από το σύστημα και από το λογισμικό Προκαταρκτική σχεδίαση λογισμικού καθορισμός μονάδων που θα αποτελούν το λογισμικό και οι μεταξύ τους συσχετίσεις καθορισμός σε περισσότερα από ένα επίπεδα λεπτομέρειας, ανάλογα με το μέγεθος και την πολυπλοκότητα Λεπτομερή σχεδίαση λογισμικού καθορισμός εσωτερικής δομής κάθε μονάδας λογισμικού (αλγόριθμοι, δομές δεδομένων κτλ) Συγγραφή πηγαίου κώδικα Συνένωση μονάδων σε σύστημα και έλεγχος συστήματος Παράδοση προϊόντος στον πελάτη και πέρασμα στη φάση λειτουργίας και συντήρησης 17

Μοντέλο καταρράκτη Το πιο διαδεδομένο μοντέλο κύκλου ζωής λογισμικού Χρήσιμο όταν οι απαιτήσεις από το λογισμικό είναι γνωστές από την αρχή και δεν μεταβάλλονται κατά την ανάπτυξη του λογισμικού! Μειονεκτήματα??? Μοντέλο καταρράκτη Μειονεκτήματα Δεν είναι δυνατό να υπάρχει μια πρώτη εικόνα του συστήματος λογισμικού που κατασκευάζεται, παρά μόνο σε προχωρημένη φάση της ανάπτυξης, ο πελάτης βλέπει τι τελικά αγοράζει πολύ αργά!!! Όσο μεγαλώνει η έκταση της εφαρμογής λογισμικού, τόσο δυσκολότερη η μετάβαση από τη μία φάση στην επόμενη και η αποφυγή σφαλμάτων τα οποία εντοπίζονται πολύ αργότερα Όσο αργότερα στην ανάπτυξη εντοπίζεται ένα σφάλμα, τόσο μεγαλύτερες οι επιπτώσεις που η διόρθωσή του μπορεί να έχει σε κόστος οπισθοδρόμησης, παρενέργειες, καθυστερήσεις, δημιουργία νέων σφαλμάτων 18

Μοντέλο πρωτοτυποποίησης Ανάπτυξη λογισμικού σε τμήματα, «πρωτότυπα», κάθε φορά με περισσότερα χαρακτηριστικά Επαναληπτικό μοντέλο οι διαδικασίες ανάπτυξης επαναλαμβάνονται για ένα τμήμα του συστήματος κάθε φορά Μοντέλο πρωτοτυποποίησης Κάθε πρωτότυπο περιλαμβάνει τις βασικές από τις λειτουργίες που προορίζεται να εκτελεί το λογισμικό και το δοκιμάζει ο πελάτης Επανάληψη διαδικασίας κατασκευής νέου πρωτοτύπου μέχρι να γίνει αποδεκτό 19

Μοντέλο πρωτοτυποποίησης Πλεονεκτήματα Δυνατότητα απόκτησης άποψης για το λογισμικό νωρίτερα από το μοντέλο του καταρράκτη λιγότερες καθυστερήσεις και κόστη Σημαντική η διοίκηση του έργου υλοποιησιμότητα και εύκολη τροποποίηση πρωτοτύπου Αντιμετωπίζει την ασάφεια στις απαιτήσεις Αρχικά πρωτότυπα χρησιμοποιούνται για εξοικείωση από τους χρήστες Μεγαλύτερη πιθανότητα ανάπτυξης φιλικού προς το χρήστη λογισμικού Ο πελάτης εμπλέκεται στην ανάπτυξη του προϊόντος Αυξανόμενη σταδιακά ικανοποίηση του πελάτη Επικοινωνία χρηστών / ομάδας ανάπτυξης Χρησιμοποιείται Σε εφαρμογές που οι απαιτήσεις δεν είναι γνωστές από την αρχή Μοντέλο πρωτοτυποποίησης Μειονεκτήματα Όχι μεγάλο μέγεθος εφαρμογής μεγάλος χρόνος ανάπτυξης πρωτοτύπου μείωση απαιτούμενης ευελιξίας 20

Διαχείριση κινδύνου Διαχειριστής έργου: Επιδιώκει ελαχιστοποίηση του ρίσκου Ρίσκο: μέτρο της αβεβαιότητας ως προς το αποτέλεσμα Δραστηριότητες υψηλού ρίσκου αυξάνουν το κόστος και προκαλούν καθυστερήσεις Το ρίσκο σχετίζεται με την ποσότητα και την ποιότητα της διαθέσιμης πληροφορίας. Όσο λιγότερη πληροφορία τόσο μεγαλύτερο το ρίσκο Παραδείγματα κινδύνου Κατά τη διάρκεια ανάπτυξης εισαγωγή λογισμικού από ανταγωνιστή Αποχώρηση ατόμων από την ομάδα ανάπτυξης Ανικανότητα εμπρόθεσμης υλοποίησης ορισμένων σταδίων Το λογισμικό πληροί τις προδιαγραφές αλλά έχει πολύ μεγάλο χρόνο εκτέλεσης Μεγάλη κατανάλωση μνήμης Εμφάνιση νέων εργαλείων ανάπτυξης Λάθος κατανόηση μιας απαίτησης Αλλαγή ορισμένων από τις απαιτήσεις Αλλαγή του υλικού Μείωση προϋπολογισμού Βλάβες στο υλικό της ομάδας ανάπτυξης 21

Διαχείριση κινδύνων σε μοντέλα κύκλου ζωής λογισμικού Καταρράκτη Υψηλό ρίσκο για νέα συστήματα λόγω προβλημάτων στις προδιαγραφές και στη σχεδίαση Χαμηλό ρίσκο για πλήρως κατανοητά συστήματα που αναπτύσσονται με γνωστή τεχνολογία Πρωτοτυποποίησης Χαμηλό ρίσκο για νέες εφαρμογές λόγω του γεγονότος ότι οι προδιαγραφές και η υλοποίηση εξετάζονται ανά βήμα Υψηλό ρίσκο λόγω έλλειψης παρατήρησης Μοντέλο λειτουργικής επαύξησης Ακολουθιακή ανάπτυξη μοντέλου καταρράκτη Τμηματική ανάπτυξη μοντέλου πρωτοτυποποίησης Κατάτμηση λογισμικού σε τμήματα ανεξάρτητα, το κάθε τμήμα ακολουθεί ακολουθιακή ανάπτυξη Συνένωση στο τέλος 22

Μοντέλο λειτουργικής επαύξησης Αρχική φάση ανάλυσης και σχεδίασης: σε ποια τμήματα θα κατατμηθεί η εφαρμογή??? Ανάπτυξη τμημάτων ανεξάρτητα και παράλληλα Ενσωμάτωση κάθε τμήματος μετά την ολοκλήρωση της ανάπτυξής του στο σύνολο της εφαρμογής «λειτουργική επαύξηση» Μοντέλο λειτουργικής επαύξησης Πλεονεκτήματα Δυνατότητα παράλληλης ανάπτυξης Μικρότερος χρόνος Διαδοχικός εμπλουτισμός λειτουργικών χαρακτηριστικών Μειονεκτήματα Σημαντική η αρχική κατάτμηση και γενική σχεδίαση του συστήματος Αν έχουμε μεταβολή λειτουργικών απαιτήσεων κατά τη χρήση του ημιτελούς συστήματος, μπορεί να προκύψει πρόβλημα λόγω ακατάλληλης κατάτμησης εφαρμογής Χρησιμοποιείται Σε μεγάλες εφαρμογές λογισμικού Με γνωστές απαιτήσεις και μικρή μεταβλητότητα κατά την ανάπτυξη 23

Τι είδαμε μέχρι τώρα? Παραλλαγές της βασικής ιδέας του μοντέλου του καταρράκτη Ακολουθιακή διαδικασία ανάπτυξης είτε σε ολόκληρο είτε σε μέρος του συστήματος Αυθαίρετη κατάτμηση στα μοντέλα πρωτοτυποποίησης και λειτουργικής επαύξησης Καμία εκτίμηση ρίσκου Πιθανή οπισθοδρόμηση ή ανατροπή Κόστος σε χρόνο και χρήμα Δύσκολη η μετά πειθαρχίας αποδοχή των αυστηρών φάσεων του μοντέλου του καταρράκτη Σπειροειδές μοντέλο Η ανάπτυξη συστήματος χωρίζεται σε κύκλους εργασιών με σταδιακή επέκταση των λειτουργικών χαρακτηριστικών της εφαρμογής Ανάλυση κινδύνων πριν από κάθε έναρξη κύκλου 24

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

Σπειροειδές μοντέλο Κατηγορίες εργασιών Προσδιορισμός στόχων Καθορισμός αντικειμένων εργασιών κάθε επανάληψης Καταγραφή περιορισμών για το προϊόν και τη διαδικασία Κατασκευή αναλυτικού πλάνου διοίκησης Καταγραφή κινδύνων διαδικασίας Καταγραφή εναλλακτικών λύσεων αν υπάρχουν Επίλυση κινδύνων Ανάλυση κινδύνων Αποτίμηση κάθε εναλλακτικής λύσης Λήψη απόφασης για συνέχιση ή όχι, ποιο μοντέλο θα ακολουθηθεί, κατασκευή ή όχι πρωτοτύπου κ.ά. Σπειροειδές μοντέλο Κατηγορίες εργασιών Εκτέλεση διαδικασιών ανάπτυξης λογισμικού Εκτέλεση βημάτων όπως αποφασίστηκαν για το τμήμα του συστήματος που αφορά η τρέχουσα επανάληψη Προγραμματισμός επόμενης φάσης ανάπτυξης 26

Σπειροειδές μοντέλο - Συμπεράσματα Δεν καθορίζει εκ των προτέρων: ποιες ακριβώς οι εργασίες ανάπτυξης λογισμικού που πρέπει να γίνουν σε ποια έκταση του συστήματος θα εφαρμοστούν Διαφορετικές διαδικασίες ανάπτυξης για διαφορετικά τμήματα λογισμικού ΣΗΜΑΝΤΙΚΟ ο καθορισμός λεπτομερειών υλοποίησης να γίνεται συνεχώς κατά την ανάπτυξη με ευθύνη και τεκμηρίωση από τον κατασκευαστή Η εφαρμογή του όχι πάντα εύκολη υπόθεση Εισαγωγή νέων εργασιών που αφορούν τεκμηρίωση σκοπιμότητας και τμηματικό προγραμματισμό ανάπτυξης ΑΡΑ κάποιο κόστος ΟΜΩΣ μπορεί να αποσβεστεί από έγκαιρο εντοπισμό προβλημάτων και αποφυγή πιθανής αποτυχίας Σπειροειδές μοντέλο Πόσο κατάλληλο είναι το σπειροειδές μοντέλο για υλοποίηση μικρών έργων ανάπτυξης λογισμικού? 27

Σπειροειδές μοντέλο Μη αμελητέο κόστος για εκτέλεση ενεργειών προγραμματισμού, εκτίμησης ρίσκου κτλ Σε μικρές εφαρμογές λογισμικού, δυσανάλογο αυτό το κόστος ΑΡΑ όχι η καλύτερη επιλογή από οικονομική άποψη Άλλα μοντέλα κύκλου ζωής καλύτερα Μοντέλο πίδακα Αντικειμενοστρεφής φιλοσοφία ανάπτυξης λογισμικού Επαναχρησιμοποίηση έτοιμων συστατικών 28

Μοντέλο πίδακα Αντικειμενοστρεφής τεχνολογία Οι έννοιες «ανάλυση-σχεδίασηκωδικοποίηση» έρχονται στο αντικειμενοστρεφές παράδειγμα πολύ πιο κοντά Το αποτέλεσμα κάθε διαδικασίας κατασκευής λογισμικού είναι όχι μόνο ένα σύστημα ΑΛΛΑ και επαναχρησιμοποιήσιμες μονάδες Μοντέλο πίδακα Επικαλύψεις φάσεων «ανάλυση-σχεδίασηκωδικοποίηση» Ορισμένα συστατικά λογισμικού ενσωματώνονται σε δεξαμενή συστατικών και διατίθενται για χρήση στην ανάπτυξη νέων συστημάτων 29

Γενικό μοντέλο κύκλου ζωής Περιέχει γενικές κατευθύνσεις Εξειδεικεύονται στο εκάστοτε περιβάλλον ανάπτυξης, πρόβλημα κτλ Αφήνει σημαντικούς βαθμούς ελευθερίας στον κατασκευαστή Περιλαμβάνει φάσεις σύλληψης, κατασκευής και λειτουργίας Ανάλυση σε επιμέρους εργασίες Ανάλυση φάσης κατασκευής σε «κύκλους ανάπτυξης» - καθένας προσθέτει νέα χαρακτηριστικά και λειτουργίες Γενικό μοντέλο κύκλου ζωής Μοντέλο καταρράκτη αλλά μόνο για το μικρό μέρος του κύκλου Ενσωματώνει χαρακτηριστικά πολλών μοντέλων Ανάπτυξη σε κύκλους σύμφωνα με τα χαρακτηριστικά και τις δυνατότητες του κατασκευαστή 30

Γενικό μοντέλο κύκλου ζωής Όλα τα μοντέλα κύκλου ζωής που αναφέρθηκαν μπορούν να θεωρηθούν ειδικές εκδοχές του γενικού μοντέλου κύκλου ζωής Κάθε κύκλος ανάπτυξης: Επανάληψη Βήμα επαύξησης Παράλληλη εκτέλεση τμήματος έργου Πλάνο εργασιών: Εκτίμηση ρίσκου συνέχισης ανάπτυξης Σύγκριση μοντέλων κύκλου ζωής λογισμικού Μοντέλο Καταρράκτη Πρωτοτυποποίησης Λειτουργικής Επαύξησης Μέγεθος εφαρμογών Μικρό έως μεσαίο Μικρό έως μεσαίο Μεσαίο έως μεγάλο Μεταβολές στις απαιτήσεις Προσαρμοστικότητα στον κατασκευαστή Διάδοση Ανεπιθύμητες Καμία Μεγάλη με τάση μείωσης Δεκτές Μικρή Μικρή με τάση αύξησης Ανεπιθύμητες Καμία Μικρή με τάση μείωσης Σπειροειδές Μεσαίο έως μεγάλο Δεκτές Αρκετή Μικρή με τάση μείωσης Πίδακα Οποιοδήποτε Δεκτές Αρκετή Μικρή Γενικό Οποιοδήποτε Δεκτές Μεγάλη Μικρή με ισχυρές τάσεις αύξησης 31

Συνοψίζοντας Κύκλος ζωής Λογισμικού Οι φάσεις από τις οποίες διέρχεται μία εφαρμογή λογισμικού από τη σύλληψή της κατά την κατασκευή, χρήση και συντήρησή της μέχρι την απόσυρσή της Το μοντέλο κύκλου ζωής περιγράφει τις φάσεις, τις εργασίες που γίνονται και τα προϊόντα που παράγονται σε κάθε φάση, τη σειρά διαδοχής Τελικά Το µοντέλο κύκλου ζωής λογισµικού περιγράφει τις φάσεις από τις οποίες διέρχεται η εφαρµογή λογισµικού από τη σύλληψη µέχρι την απόσυρσή της και τις ενέργειες που λαµβάνουν χώρα σε καθεμιά από αυτές Τα µοντέλα κύκλου ζωής λογισµικού που είδαμε διακρίνονται σε ακολουθιακά και σε επαναληπτικά. Στα ακολουθιακά µοντέλα η ανάπτυξη γίνεται σε διαδοχικές διακριτές φάσεις και για ολόκληρο το σύστηµα λογισµικού, ενώ στα επαναληπτικά η ανάπτυξη του λογισµικού γίνεται σε τµήµατα. Χαρακτηριστικότερο ακολουθιακό µοντέλο είναι αυτό του καταρράκτη, ενώ το γενικότερο από τα επαναληπτικά είναι το σπειροειδές Πρακτικά, χρησιµότερα είναι τα µοντέλα κύκλου ζωής που αφήνουν ελευθερία εξειδίκευσης στις εκάστοτε συνθήκες και δεν προσδιορίζουν µε αυστηρότητα τις ενέργειες που πρέπει να γίνουν, τα προϊόντα κτλ. Δεν υπάρχει ένα «καλύτερο» µοντέλο κύκλου ζωής, αλλά ένα καταλληλότερο στις εκάστοτε συνθήκες τόσο του κατασκευαστή όσο και του θεµατικού πεδίου της εφαρµογής λογισµικού 32

Πηγές / Acknowledgements Β. Βεσκούκης «Τεχνολογία Λογισμικού Ι», ΕΑΠ, ΠΑΤΡΑ, 2000 Χ. Αντωνόπουλος «Ανάπτυξη και Σχεδίαση Λογισμικού», Τμήμα Μηχ. Η/Υ, Τηλεπικοινωνιών και Δικτύων, Παν. Θεσσαλίας, 2007 S. L. Pfleeger, «Τεχνολογία Λογισμικού Θεωρία και πράξη», 2η έκδοση, Τόμοι Α και Β (μετάφραση, εκδ. Κλειδάριθμος) I. Sommerville, «Βασικές αρχές Τεχνολογίας Λογισμικού», 8 η αγγλική έκδοση (μετάφραση, εκδ. Κλειδάριθμος) Roger S. Pressman. Software Engineering - A Practitioner's Approach. McGraw-Hill, 6 th edition, 2005 33