Κύκλος ανάπτυξης προγράμματος/λογισμικος
Η διαδικασία ανάπτυξης λογισμικού εξελίσσεται σε διακριτές φάσεις ή στάδια.
Θεωρείται υποσύνολο του κύκλου ζωής ενός συστήματος λογισμικού που ξεκινά από την ανάλυση απαιτήσεων και τελειώνει με την παύση λειτουργίας του.
Αρκετές φορές, οι θεωρητικές προσεγγίσεις για την ανάπτυξη λογισμικού έχουν
δεχθεί κριτική για την αποτελεσματικότητά τους, καθώς συχνά, στη πράξη, παρουσιάζονται σημαντικές αποκλίσεις από τον αρχικό σχεδιασμό. Παρόλα αυτά
είναι ιδιαίτερα χρήσιμο, η ανάπτυξη ενός λογισμικού να ακολουθεί συγκεκρι-
μένα μοντέλα, τα οποία έχουν προταθεί ανάλογα με τα προτερήματα και τις
αδυναμίες τους.
Μεταξύ των βασικών μεθοδολογιών (μοντέλων) που έχουν προταθεί και ακολουθούνται, θα αναφερθούμε στο μοντέλο του καταρράκτη (waterfall model) και
της σπειροειδούς προσέγγισης (spiral model).
Μοντέλο του καταρράκτη
Πρόκειται για το μοντέλο που υποδιαιρεί τη διαδικασία ανάπτυξης ενός συστήματος λογισμικού στις ακόλουθες φάσεις:
● Καθορισμού απαιτήσεων.
● Ανάλυσης απαιτήσεων
● Σχεδίασης.
● Υλοποίησης.
● Ολοκλήρωσης. Λειτουργίας και συντήρησης.
Οι φάσεις εφαρμόζονται διαδοχικά με τη σειρά (γραμμικά) με κύκλους ανατροφοδότησης.
Μοντέλο σπείρας
Στο μοντέλο της σπείρας, η ανάπτυξη ακολουθεί μια εξελικτική διαδικασία με
την επαναληπτική εκτέλεση ενός κύκλου φάσεων, που σε καθεμιά δημιουργεί-
ται μια ενδιάμεση έκδοση του τελικού προϊόντος, η οποία βελτιώνεται κατά τον
επόμενο κύκλο κ.ο.κ. Η διαδικασία αυτή συνεχίζεται μέχρι να παραχθεί μια έκδοση που να ικανοποιεί τις απαιτήσεις των χρηστών. Το πλεονέκτημα αυτού
του μοντέλου είναι η γρήγορη ανάπτυξη ενός πρωτότυπου και η ανάλυση όλων
των κινδύνων, πριν από κάθε φάση. Το μοντέλο αυτό χρησιμοποιείται περισσότερο σε έργα μεγάλης κλίμακας.
Κατά την ανάπτυξη ενός προγράμματος, εργαζόμαστε παρόμοια με τη διαδικασία ανάπτυξης ενός λογισμικού και ακολουθείται η μεθοδολογία υλοποίησης του κύκλου ανάπτυξης προγράμματος (program development life cycle-PDLC).
Μια τέτοια μεθοδολογία ανάπτυξης προγράμματος μπορεί να αποτελείται από
φάσεις, όπως:
● Ανάλυση του προβλήματος.
● Σχεδίαση.
● Συγγραφή κώδικα.
● Έλεγχος και εκσφαλμάτωση.
● Τεκμηρίωση.