Διεργασία ανάπτυξης λογισμικού

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Η έννοια της διεργασίας

Η διεργασία (process) ανάπτυξης του λογισμικού καθορίζει τις τεχνικές και διοικητικές πρακτικές που ακολουθούνται κατά την του λογισμικού.

Η τεχνολογία λογισμικού εξετάζει παράλληλα και

της ίδιας της διεργασίας ανάπτυξης.

Στοιχεία της διεργασίας

Στη διεργασία ανάπτυξης του λογισμικού ξεχωρίζουμε ορισμένες κάθετες φάσεις και μια σειρά από οριζόντιες ενέργειες (umbrella activities) που καλύπτουν όλες τις φάσεις.

Φάσεις

Οι κύριες φάσεις της διεργασίας ανάπτυξης είναι:
  1. Ορισμός (τι;)
  2. Ανάπτυξη (πως;)
  3. Υποστήριξη (αλλαγή) Η υποστήριξη περιλαμβάνει:

Οριζόντιες ενέργειες

Ωριμότητα της διεργασίας

Το CMU Software Engineerint Institute έχει ορίσει τα παρακάτω επίπεδα ωριμότητας της διεργασίας:
  1. Αρχική (initial) (χαώδης)
  2. Επαναλήψιμη (repeatable)
  3. Καθορισμένη (defined) (τεκμηριωμένη)
  4. Διοικούμενη (managed) (με βάση ποσοτικά κριτήρια)
  5. Βελτιστοποιούμενη (optimizing)
Κάθε επίπεδο περιλαμβάνει τα στοιχεία του προηγούμενου.

Το μοντέλο του καταρράκτη

Το μοντέλο του καταρράκτη (waterfall) ακολουθεί γραμμικά τις φάσεις ανάπτυξης του συστήματος:
  1. Ανάλυση
  2. Σχεδιασμός
  3. Κωδικοποίηση
  4. Έλεγχος
  5. Συντήρηση
Κάθε φάση ακολουθεί την προηγούμενη.

Προβλήματα

Ανάπτυξη αρχέτυπου

Το αρχέτυπο (prototype) του λογισμικού επιτρέπει το γρήγορο έλεγχο: Υλοποιείται με συνεχείς κύκλους σε στενή συνεργασία με τον πελάτη.

Προβλήματα

Γρήγορη ανάπτυξη

Το μοντέλο της γρήγορης ανάπτυξης εφαρμογών (rapid application development) χρησιμοποιείται για την ανάπτυξη τυποποιημένων εφαρμογών επεξεργασίας δεδομένων. Περιλαμβάνει τις παρακάτω φάσεις:
  1. Αποτύπωση της επιχειρηματικής λειτουργίας (business modelling)
  2. Αποτύπωση δεδομένων (data modelling)
  3. Αποτύπωση διεργασιών (process modelling)
  4. Υλοποίηση εφαρμογής με εργαλεία τέταρτης γενιάς (4GL)
  5. Έλεγχος

Προβλήματα

Βηματική εκλέπτυνση

Σπειροειδές μοντέλο

Στο σπειροειδές μοντέλο (spiral model) ακολουθεί σε κάθε κύκλο της σπείρας τα παρακάτω βήματα:
  1. Επαφή με τον πελάτη
  2. Σχεδιασμός
  3. Ανάλυση κινδύνου
  4. Υλοποίηση
  5. Μετρήσεις
  6. Αξιολόγηση
Η σπείρα από μέσα προς τα έξω μπορεί να περιλαμβάνει:
  1. Αρχέτυπο
  2. Νέο προϊόν
  3. Βελτιωμένο προϊόν
  4. Συντήρηση

Τυπική ανάπτυξη συστημάτων

Η ανάπτυξη λογισμικού με τυπικές μεθόδους (formal methods):

Προβλήματα

Επαναχρησιμοποίηση

Η ανάπτυξη λογισμικού με επαναχρησιμοποίηση (reusability) βασίζεται σε έτοιμα εξαρτήματα (components). Ακολουθεί τα παρακάτω βήματα:

Ανάλυση προδιαγραφών

Η ανάλυση προδιαγραφών περιλαμβάνει:

Σχεδιασμός

Ο σχεδιασμός καθορίζει:

Τεχνικές

Επαλήθευση και επικύρωση

Ο έλεγχος περιλαμβάνει:

Εξέλιξη

Η εξέλιξη του λογισμικού γίνεται με την παρακάτω διεργασία:

Αυτοματοποίηση της διεργασίας

Για την αυτοματοποίηση της διεργασίας χρησιμοποιούνται τα παρακάτω είδη εργαλείων:

Υλικό στον ιστό

Βιβλιογραφία

Ασκήσεις

  1. Περιγράψτε περιπτώσεις κατα τις οποίες κάποιες κάθετες φάσεις ή οριζόντιες ενέργειες της ανάπτυξης λογισμικού παραλείπονται.
  2. Διαβάστε για το μοντέλο της ωριμότητας λογισμικού στο http://www.sei.cmu.edu (http://www.sei.cmu.edu).
  3. Φτιάξτε έναν κατάλογο με σύγχρονα εργαλεία τέταρτης γενιάς που χρησιμοποιούνται για την υλοποίηση πληροφοριακών συστημάτων.
  4. Τι θεωρείτε πιο σημαντικό: το προϊόν, ή τη διεργασία ανάπτυξής του;