🟣Κ2 Κύκλος Ζωής Ανάπτυξης Συστήματος

2.1 Ανάπτυξη Συστήματος 

Ο Ρόλος του Αναλυτή Συστημάτων: Λειτουργεί ως ο "αρχιτέκτονας" του πληροφοριακού συστήματος. Ο κύριος στόχος του είναι να κατανοήσει τις ανάγκες μιας επιχείρησης, να μεταφράσει το "όραμα" σε σαφείς τεχνικές απαιτήσεις και να καθοδηγήσει την ομάδα ανάπτυξης.

 

 

Δύο Διακριτές Φάσεις:

  • Ανάλυση Συστήματος (Το "ΤΙ"): Πρόκειται για τη φάση κατά την οποία η ομάδα προσπαθεί να κατανοήσει και να προσδιορίσει με ακρίβεια τι ακριβώς πρέπει να κάνει το νέο σύστημα για να λύσει το πρόβλημα ή να ικανοποιήσει την ανάγκη.
  • Σχεδιασμός Συστήματος (Το "ΠΩΣ"): Αποτελεί τη φάση όπου περιγράφεται με τεχνική λεπτομέρεια πώς θα λειτουργήσει το σύστημα. Καθορίζονται στοιχεία όπως βάσεις δεδομένων, διεπαφές χρηστών και λειτουργικές διαδικασίες.

 

 

Η Σημασία της Διαδικασίας: 

Η ανάπτυξη ενός επιτυχημένου συστήματος δεν είναι απλώς προγραμματισμός. Βασίζεται στην εις βάθος ανάλυση και σχεδιασμό. Ένα σύστημα που βασίζεται σε εσφαλμένες ή ατελείς απαιτήσεις είναι καταδικασμένο να αποτύχει, με αποτέλεσμα καθυστερήσεις, υπερβολικό κόστος και μη ικανοποιημένες ανάγκες.

 

 

Απαιτούμενες Ικανότητες: 

Ο αναλυτής συστημάτων πρέπει να κατέχει τόσο ομαδικές και επικοινωνιακές δεξιότητες (για λήψη απαιτήσεων) όσο και τεχνικές ικανότητες (για τη δημιουργία μοντέλων και τον λεπτομερή σχεδιασμό).

 

 


2.2 Κύκλος Ζωής Ανάπτυξης Συστήματος & 2.3 Κλασσικές προβλέψιμες προσεγγίσεις του Κύκλου ζωής Ανάπτυξης Συστήματος 

  • Ξεκινάμε λοιπόν από το στάδιο μελέτης του έργου που έχει σκοπό να προσδιορίσει το πεδίο εφαρμογής του νέου συστήματος, να διασφαλίσει την εφικτότητα του σχεδίου, να αναπτύξει το χρονοδιάγραμμα και να υπολογίσει τον προϋπολογισμό του έργου. 
  • Στη συνέχεια στο στάδιο της ανάλυσης, συζητάμε με τους πελάτες και προσπαθούμε να βρούμε ποιο είναι το πρόβλημα και τι είναι αυτό που ακριβώς χρειάζονται. Ή «τι δουλεύει και τι δεν δουλεύει» στο παλιό σύστημα. 
  • Κατά το στάδιο του σχεδιασμού, σχεδιάζεται η απάντηση στην ερώτηση, η λύση στο πρόβλημα με βάση τις πληροφορίες που συγκεντρώθηκαν κατά το στάδιο της ανάλυσης. 
  • Στη συνέχεια, στο στάδιο της υλοποίησης δημιουργείται το πληροφοριακό σύστημα.
  • Στο στάδιο της υποστήριξης, βοηθούμε όσους εμπλέκονται με αυτό να το χρησιμοποιήσουν με τον καλύτερο δυνατό τρόπο. 

Το παρακάτω σχήμα  απεικονίζει τα πέντε στάδια του κλασσικού Κύκλου Ζωής Ανάπτυξης Συστήματος.

Σχήμα: Φάσεις Ανάπτυξης Πληροφοριακού Συστήματος

 

Κάθε στάδιο απαιτεί ένα διαφορετικό τρόπο σκέψης, εργασίας και επικοινωνίας με διαφορετικούς ανθρώπους.

 

 

 

 

 

Όσο προχωράμε από τα αριστερά προς τα δεξιά τόσο μειώνονται τα στοιχεία της προβλέψιμης συμπεριφοράς και αυξάνονται αυτά της προσαρμοστικής. Στην περίπτωση αυτή αναφερόμαστε σε υβριδικές προσεγγίσεις

Σχήμα: Η επιλογή του Κύκλου Ζωής Ανάπτυξης Συστήματος εξαρτάται από το έργο

 

 

 

Χαρακτηριστικό παράδειγμα της πιο προβλέψιμης προσέγγισης αποτελεί το μοντέλο καταρράκτη

Σχήμα: Μοντέλο Καταρράκτη – Κάθε project έχει μία αρχή και ένα τέλος

 

 

 

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

Μια πρώιμη έκδοση του προσαρμοστικού Κύκλου Ζωής Ανάπτυξης Συστήματος αποτελεί το σπειροειδές μοντέλο.

Σχήμα: Κάθε στάδιο επαναλαμβάνεται αρκετές φορές

 

 

 

Agile vs Waterfall Methodology: All You Need To Know
Σχήμα: Προσέγγιση Προσαρμοστικής vs. Καταρράκτη

 

 

 


 

 

2.4 Ευέλικτες – Προσαρμοστικές προσεγγίσεις του Κύκλου ζωής Ανάπτυξης Συστήματος 

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

Σχήμα: Ο σπειροειδές κύκλος ανάπτυξης

 

 

 

Επανάληψη σημαίνει ότι οι δραστηριότητες του έργου ανάπτυξης, όπως η ανάλυση, ο σχεδιασμός και η υλοποίηση επαναλαμβάνονται συνεχώς. Ο αριθμός των επαναλήψεων εξαρτάται από την πολυπλοκότητα του έργου. Με κάθε επανάληψη, τα μέλη της ομάδας ανάπτυξης βελτιώνουν το αποτέλεσμα, έτσι ώστε να είναι πιο κοντά σε αυτό που τελικά χρειαζόμαστε. Η επανάληψη βασίζεται στην παραδοχή ότι δεν είναι δυνατό να πετύχουμε το σωστό αποτέλεσμα με την πρώτη φορά.

 

 

 

Αρχικά η ανάλυση, ο σχεδιασμός και η υλοποίηση είναι μικρής έκτασης. Τα πρώτα αποτελέσματα όμως που παίρνουμε μας δίνουν την δυνατότητα να γνωρίζουμε αν πραγματικά το σύστημα θα λειτουργήσει και θα πετύχει τους στόχους του. Στη συνέχεια αναλύοντας, σχεδιάζοντας και υλοποιώντας κάθε φορά όλο και μεγαλύτερο τμήμα μπορούμε να κάνουμε βελτιώσεις. Όσο προχωράει η επαναληπτική αυτή διαδικασία τόσο πλησιάζουμε όλο και πιο κοντά στους στόχους που έχουμε θέσει και ταυτόχρονα μειώνουμε τους κινδύνους που μπορούν να εμφανιστούν κατά την ανάπτυξη όπως είναι η αλλαγή της τεχνολογίας.

Consistency is More Important Than Perfection Quote Print Quirky Wall Art -  Office Wall Art - Motivational Print - Entrepreneur Quote - Gym - Etsy
perfectionism #consistency | Shore
Σχήμα: Τελειότητα (Perfectionism) vs. Συνέπεια (Consistency)

 

 

 


 

 

 

2.5 Στάδια του Κύκλου ζωής Ανάπτυξης Συστήματος 

Στη συνέχεια, θα παρουσιάσουμε αναλυτικά τις δραστηριότητες της κάθε φάσης του Κύκλου Ζωής Ανάπτυξης Συστήματος.

 

Προγραμματισμός έργου

Οι πρωταρχικοί στόχοι του προγραμματισμού έργου είναι να προσδιορίσουμε το πεδίο εφαρμογής του νέου συστήματος, να διασφαλίσουμε ότι το έργο αυτό είναι εφικτό και υλοποιήσιμο, να σχεδιάσουμε τον χρονοπρογραμματισμό και τους πόρους που θα χρειαστούμε και τέλος να κοστολογήσουμε το έργο.

Οι δραστηριότητες που περιλαμβάνονται στον προγραμματισμό του έργου είναι οι παρακάτω: 

  • Καθορισμός του προβλήματος 
  • Χρονοπρογραμματισμός του έργου 
  • Επιβεβαίωση δυνατότητας υλοποίησης του έργου 
  • Στελέχωση του έργου 
  • Αρχικοποίηση του έργου

 

Εκδόσεις Κριτική | ΔΙΟΙΚΗΣΗ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΤΩΝ ΕΡΓΩΝ
Σχήμα: Παράδειγμα Προγραμματισμού Έργου στον Τομέα της Κατασκευαστικής

 

 

Δραστηριότητες Ανάλυσης 

Ο πρωταρχικός στόχος των δραστηριοτήτων ανάλυσης είναι να κατανοήσουμε και να τεκμηριώσουμε τις ανάγκες και τις απαιτήσεις του νέου συστήματος. Η ανάλυση είναι ουσιαστικά μια ανακαλυπτική διαδικασία. Οι λέξεις κλειδιά που χαρακτηρίζουν τις δραστηριότητες της ανάλυσης είναι η ανακάλυψη και η κατανόηση. 

Οι δραστηριότητες που περιλαμβάνονται σε αυτό το στάδιο είναι οι παρακάτω: 

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

 

 

Δραστηριότητες σχεδιασμού

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

Επτά κύριες δραστηριότητες πρέπει να ολοκληρωθούν κατά τη διάρκεια της φάσης σχεδιασμού:

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

 

 

Δραστηριότητες Υλοποίησης

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

Πέντε είναι οι κύριες δραστηριότητες που συνθέτουν το στάδιο υλοποίησης:

  • Κατασκευή συνιστωσών λογισμικού 
  • Έλεγχος και δοκιμή 
  • Μετατροπή δεδομένων 
  • Εκπαίδευση χρηστών και τεκμηρίωση συστήματος 
  • Εγκατάσταση συστήματος

 

 

Δραστηριότητες Υποστήριξης

Ο στόχος των δραστηριοτήτων υποστήριξης είναι να διατηρήσουν το σύστημα σε πλήρη λειτουργία στο πέρασμα του χρόνου μετά την αρχική εγκατάσταση του. Το νέο σύστημα εγκαθίσταται και τίθεται σε λειτουργία. Από το σημείο εκείνο ξεκινούν οι δραστηριότητες υποστήριξης οι οποίες διαρκούν όσο και η «παραγωγική ζωή» του συστήματος.

Οι τρεις κύριες δραστηριότητες που λαμβάνουν χώρα κατά τη διάρκεια της υποστήριξης είναι οι παρακάτω: 

  • Διατήρηση του συστήματος 
  • Βελτίωση του συστήματος 
  • Υποστήριξη χρηστών

 

 

 

 

 

 


 

 

2.6 Μεθοδολογίες, μοντέλα, εργαλεία και τεχνικές 

Οι αναλυτές συστημάτων έχουν μια ποικιλία από βοηθήματα στην διάθεσή τους που τους βοηθούν να ολοκληρώσουν τις δραστηριότητές και τα καθήκοντα τους. Μεταξύ αυτών είναι οι μεθοδολογίες, τα μοντέλα, τα εργαλεία και οι τεχνικές.

 

Μεθοδολογίες

Μια μεθοδολογία περιέχει οδηγίες για το πώς θα χρησιμοποιήσουμε τα μοντέλα, τα εργαλεία και τις τεχνικές, ας προσπαθήσουμε να καταλάβουμε πρώτα τι είναι τα μοντέλα, τα εργαλεία και οι τεχνικές. Tα μοντέλα, τα εργαλεία και οι τεχνικές είναι αυτά που θα σας βοηθήσουν να διαχειριστείτε αποτελεσματικά το έργο που έχετε αναλάβει.

Σχήμα: Σχέσεις μεταξύ συστατικών μιας μεθοδολογίας

 

 

Μοντέλα (Models)

Ένα μοντέλο είναι μια αναπαράσταση μιας σημαντικής πτυχής του πραγματικού κόσμου. Μερικές φορές ο όρος αφαίρεση - γενίκευση (abstraction) χρησιμοποιείται διότι διαχωρίζουμε από το υπόλοιπο σύνολο αυτό που έχει την μεγαλύτερη σημασία για εμάς και αυτό είναι που κρατάμε.

Παράδειγμα:

Ας θεωρήσουμε το μοντέλο ενός αεροπλάνου. Αν θέλουμε να μιλήσουμε για την αεροδυναμική του αεροπλάνου, είναι χρήσιμο να έχουμε ένα μικρό μοντέλο που δείχνει το συνολικό σχήμα του αεροπλάνου στις τρεις διαστάσεις. Μερικές φορές ένα γράφημα που δείχνει λεπτομέρειες από την διατομή της πτέρυγας του αεροπλάνου είναι αυτό που χρειαζόμαστε.

 

 

Εργαλεία (Tools)

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

Top 10 Open Source Data Visualization Tools You Can't Miss
Σχήμα: Εργαλεία Οπτικοποίησης Μοντέλων

 

 

Τεχνικές (Techniques)

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

 

 

 


 

 

2.7 Δομημένη Ανάπτυξη Συστήματος (SADT) 

Η δομημένη ανάλυση, η δομημένη σχεδίαση και ο δομημένος προγραμματισμός είναι τρείς τεχνικές που αποτελούν την δομημένη ανάπτυξη. Πολλές φορές αυτές οι τεχνικές αναφέρονται με τα αρχικά των λέξεων Structured Analysis and Design Technique (SADT).

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

 

 

Πλεονεκτήματα της Δομημένης Ανάπτυξης Συστήματος

  • ανεξαρτησία των δεδομένων από το λογισμικό
  • ανεξαρτησία των δεδομένων από το λογισμικό
  • η συμβατότητα με τον δομημένο προγραμματισμό

 

 

 

Μειονεκτήματα της Δομημένης Ανάπτυξης Συστήματος

  • Πολλοί πιστεύουν ότι η δομημένη προσέγγιση έχει πολλές αδυναμίες καθώς οι τεχνικές που χρησιμοποιούνται δεν καλύπτουν όλες τις ενέργειες της ανάλυσης και σχεδίασης
  • πολλοί αναλυτές θεωρούν ότι η μετάβαση από τα Διαγράμματα Ροής Δεδομένων (ΔΡΔ) (δομημένη ανάλυση στα Διαγράμματα Δομής (δομημένη σχεδίαση) στην πράξη δεν λειτουργεί 
  • η πολύ αργή ανάπτυξη (κρατά μερικά χρόνια για μεγάλα Π.Σ.) γιατί έχει σειριακό χαρακτήρα (πρέπει πρώτα να τελειώσει η ανάλυση για να αρχίσει η σχεδίαση, κλπ)
  • οι αλλαγές στις επιχειρηματικές απαιτήσεις που αποτυπώνονται με μεγάλη δυσκολία και δεν επιτρέπουν την επαναχρησιμοποίηση τμημάτων λογισμικού (reuse).

 

 

 

 

 


 

 

2.8 Αντικειμενοστραφής Ανάπτυξη Συστήματος 

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

  • H αντικειμενοστραφής ανάλυση (ΟbjectΟriented Αnalysis (OOA)) καθορίζει όλα τα είδη των αντικειμένων που αλληλεπιδρούν με το σύστημα και μελετά τις αλληλεπιδράσεις χρήστη που απαιτούνται για την ολοκλήρωση των εργασιών
  • Ο αντικειμενοστραφής σχεδιασμός (Object-Οriented design (OOD)) καθορίζει όλους τους τύπους των αντικειμένων που είναι απαραίτητοι, δείχνει πώς τα αντικείμενα αλληλεπιδρούν για να ολοκληρωθούν οι εργασίες και τελειοποιεί τον ορισμό του κάθε τύπου αντικειμένου έτσι ώστε να μπορεί να υλοποιηθεί σε μια συγκεκριμένη γλώσσα.
  • Ο Αντικειμενοστραφής Προγραμματισμός (Object-Οriented Programming (OOP)) αποτελείται από γραπτές δηλώσεις σε μια γλώσσα προγραμματισμού για να καθορίσει τι κάνει κάθε τύπος αντικειμένου.
  • Ένα αντικείμενο είναι ένας τύπος πράγματος — ένας πελάτης ή ένας υπάλληλος ή ένας μαθητής, καθώς επίσης και ένα κουμπί ή ένα μενού.
  • [Πλεονέκτημα] Η αντικειμενοστραφής προσέγγιση έχει διάφορα βασικά πλεονεκτήματα, μεταξύ των οποίων είναι η φυσικότητα και η επαναχρησιμοποίηση. Η προσέγγιση είναι φυσική — ή διαισθητική — για τους ανθρώπους, επειδή έχουν την τάση να σκέφτονται τον κόσμο ως αντικείμενα.
  • [Μειονέκτημα] Είναι λιγότερο φυσικό για έναν άνθρωπο να σκεφτεί πολύπλοκες διαδικασίες που αναπτύχθηκαν σε διαδικαστικές γλώσσες προγραμματισμού.
  • Η αντικειμενοστραφής προσέγγιση περιλαμβάνει κλάσεις αντικειμένων και πολλά συστήματα στην οργάνωση τους χρησιμοποιούν τα ίδια αντικείμενα, αυτές οι κλάσεις μπορούν να χρησιμοποιηθούν ξανά και ξανά κάθε φορά που χρειάζονται.

 

 

 


 

 

 

2.9 Σύγχρονες Τάσεις στην Ανάπτυξη Συστήματος