SlideShare a Scribd company logo
1 / 54
Κύκλος ζωής ανάπτυξης
λογισμικού
Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης – Πληροφοριακά
Συστήματα 1 – 3η Παρουσίαση
2 / 54
Περιεχόμενα
●
Τι είναι το SDLC;
– Requirements Analysis
– Design
– Development
– Testing
– Documentation???
– Maintenance
3 / 54
Περιεχόμενα
●
DevOps
– Τι είναι το DevOps;
– Γιατί χρειαζόμαστε το DevOps;
– Πηγές για το DevOps
●
SDLC MODELS
– Waterfall Model
– V-Shaped Model
– Iterative Model
4 / 54
Περιεχόμενα
●
SDLC MODELS
– Spiral Model
– Agile model
●
Scrum
●
Kanban
●
Συμπέρασμα
5 / 54
Τι είναι το SDLC;
●
SDLC (Software Development Life Cycle) –
Κύκλος ζωής ανάπτυξης λογισμικού.
●
Είναι μια δομή που την ακολουθεί μια ομάδα
προγραμματιστών.
●
Αποτελείται από ένα λεπτομερές σχέδιο που
περιγράφει τον τρόπο ανάπτυξης,
συντήρησης και αντικατάστασης
συγκεκριμένου λογισμικού.
6 / 54
Τι είναι το SDLC;
●
Ο κύκλος ζωής ορίζει μια μεθοδολογία για τη
βελτίωση της ποιότητας του λογισμικού και
της συνολικής διαδικασίας
– Waterfall
– V-Shaped
– Iterative
7 / 54
Τι είναι το SDLC;
●
Είναι ένα framework όπου προσδιορίζει τα
βήματα που πρέπει να γίνουν σε κάθε επίπεδο
με έναν ιεραρχικό τρόπο
8 / 54
Requirements Analysis
●
Αφορά κυρίως τους διαχειριστές του έργου
και τα άτομα που θα το χρησιμοποιήσουν.
9 / 54
Requirements Analysis
●
Συνεδριάσεις με διαχειριστές,
ενδιαφερόμενους και χρήστες
πραγματοποιούνται προκειμένου να
προσδιοριστούν οι απαιτήσεις
– Ποια δεδομένα θα πρέπει να βγάζει το
σύστημα
– Ποια δεδομένα θα πρέπει να παίρνει το
σύστημα
– Ποια άτομα θα χρησιμοποιούν το σύστημα
– etc
10 / 54
Requirements Analysis
●
Μετά τη συλλογή των απαιτήσεων
αναλύονται αυτές οι απαιτήσεις για την
εγκυρότητά τους και μελετάται επίσης η
δυνατότητα ενσωμάτωσης των απαιτήσεων
στο σύστημα.
●
Δημιουργείται ένα έγγραφο απαιτήσεων το
οποίο εξυπηρετεί τον σκοπό καθοδήγησης
για την επόμενη φάση του μοντέλου.
11 / 54
Design
●
Σε αυτή τη φάση ο σχεδιασμός του
συστήματος και του λογισμικού
προετοιμάζεται με βάση των απαιτήσεων
που μελετήθηκαν στην πρώτη φάση.
●
Ο σχεδιασμός του συστήματος βοηθάει στον
προσδιορισμό των απαιτήσεων υλικού και
συστήματος, επίσης βοηθά στον καθορισμό
της συνολικής αρχιτεκτονικής του
συστήματος.
●
Οι προδιαγραφές σχεδιασμού του
συστήματος χρησιμεύουν ως είσοδος για την
επόμενη φάση του μοντέλου.
12 / 54
Development
●
Σε αυτό το στάδιο δημιουργείται ο κώδικας
●
Οι προγραμματιστές χωρίζονται σε ομάδες
(αν είναι εφικτό), έτσι ώστε να ασχοληθούν
με ένα τμήμα του προγράμματος ανά ομάδα
για να υπάρχει μεγαλύτερη αποδοτικότητα
και λιγότερα σφάλματα
13 / 54
Testing
●
Μετά την ανάπτυξη του κώδικα δοκιμάζεται
με βάση τις απαιτήσεις για να διασφαλιστεί
ότι το προϊόν επιλύει πραγματικά τις
ανάγκες που αντιμετωπίζονται και
συγκεντρώνονται κατά τη φάση των
απαιτήσεων.
14 / 54
Testing
●
Κατά τη διάρκεια αυτής της φάσης γίνονται
όλοι οι τύποι λειτουργικών δοκιμών, όπως
δοκιμές μονάδων, δοκιμές ολοκλήρωσης,
δοκιμές συστημάτων, δοκιμές αποδοχής
καθώς και μη-λειτουργικές δοκιμές.
15 / 54
Documentation???
●
Κάθε βήμα του έργου τεκμηριώνεται για
μελλοντική αναφορά και για τη βελτίωση του
λογισμικού στη διαδικασία ανάπτυξης.
●
Η τεκμηρίωση του σχεδιασμού μπορεί να
περιλαμβάνει τη γραφή της διεπαφής
προγραμματισμού εφαρμογών
16 / 54
Maintenance
●
Μόλις οι πελάτες αρχίσουν να χρησιμοποιούν
το αναπτυγμένο σύστημα τότε τα
πραγματικά προβλήματα εμφανίζονται και
πρέπει να λυθούν από καιρό σε καιρό.
●
Αυτή η διαδικασία όπου λαμβάνεται, μέριμνα
για το αναπτυγμένο προϊόν είναι γνωστή ως
συντήρηση.
17 / 54
DevOps
18 / 54
Τι είναι το DevOps;
●
Σημαίνει κυριολεκτικά Developers και
Operations.
●
Το νόημα είναι να δουλέψουν μαζί οι
developers και οι sysadmins ώστε να
επωφεληθούν οι επιχειρήσεις.
●
Ο στόχος είναι να μειωθεί η “τριβή” και να
αυξηθεί η ταχύτητα.
19 / 54
Γιατί χρειαζόμαστε το
DevOps;
Developers
●
Δημιουργία Server
με κώδικα
●
Ανάπτυξη
ολοκληρωμένων
εφαρμογών
●
Ομαλή αναβάθμιση
Sysadmins
●
Διαχείριση Server
●
Διαμοιρασμός
καθηκόντων με
τους
προγραμματιστές
●
Κανονικό οράριο
Make America Great Again
Trust
20 / 54
Πηγές για το DevOps
●
Website:
– https://stackify.com/what-is-sdlc/
●
Podcast:
– https://www.redhat.com/en/command-line-
heroes
21 / 54
SDLC MODELS
22 / 54
SDLC MODELS
●
Waterfall Model
●
V-Shaped Model
●
Iterative Model
●
Spiral Model
●
Agile model
– Scrum
– Kanban
23 / 54
Waterfall Model
24 / 54
Waterfall Model
●
Η διαδικασία ανάπτυξης μοιάζει με τη ροή
ενός καταρράκτη.
●
Βαθμιαία εκτέλεση όλων των σταδίων.
●
Αυτή η διαδικασία είναι αυστηρά
τεκμηριωμένη και προκαθορισμένη με
χαρακτηριστικά που αναμένονται.
25 / 54
Waterfall Model
ADVANTAGES DISADVANTAGES
Απλό στη χρήση και κατανόηση Το λογισμικό είναι έτοιμο μόνο μετά
το τέλος του τελευταίου σταδίου
Απλή διαχείριση χάρη στην ακαμψία
της: κάθε φάση έχει καθορισμένο
αποτέλεσμα και ανασκόπηση της
διαδικασίας
Υψηλοί κίνδυνοι και αβεβαιότητα
Τα στάδια ανάπτυξης ξεκινούν ένα
προς ένα
Δεν είναι η καλύτερη επιλογή για
σύνθετα και αντικειμενοστρεφή έργα
Ιδανικό για μικρά ή μεσαίου
μεγέθους έργα, όπου οι απαιτήσεις
είναι σαφείς και όχι αμφιλεγόμενες
Ακατάλληλο για τα μακροπρόθεσμα
έργα
Εύκολος προσδιορισμός των
βασικών σημείων στον κύκλο
ανάπτυξης
Η πρόοδος του επιπέδου είναι
δύσκολο να μετρηθεί ενώ βρίσκεται
ακόμη σε ανάπτυξη
Εύκολη ταξινόμηση και
προτεραιότητα εργασιών
Η ολοκλήρωση γίνεται στο τέλος,
πράγμα που δεν δίνει τη δυνατότητα
να προσδιοριστεί εκ των προτέρων
τα προβλήματα
26 / 54
Χρησιμοποιείται όταν:
●
Οι απαιτήσεις τεκμηριώνονται επακριβώς
●
Ο ορισμός του προϊόντος είναι σταθερός
●
Η στοίβα τεχνολογιών είναι προκαθορισμένη
και δεν το καθιστά δυναμικό
●
Δεν υπάρχουν αμφιλεγόμενες απαιτήσεις
●
Το έργο είναι σύντομο
27 / 54
V-Shaped Model
28 / 54
V-Shaped Model
●
Είναι μια επέκταση του κλασικού μοντέλου
καταρράκτη και βασίζεται στη σχετική
δοκιμαστική φάση για κάθε στάδιο
ανάπτυξης.
●
Πρόκειται για ένα πολύ αυστηρό μοντέλο και
το επόμενο στάδιο ξεκινά μόνο μετά την
προηγούμενη φάση.
29 / 54
V-Shaped Model
●
Καλείται επίσης το μοντέλο “Validation and
verifcation”.
●
Κάθε στάδιο έχει τον τρέχοντα έλεγχο
διαδικασίας, για να βεβαιωθεί ότι είναι
δυνατή η μετατροπή στο επόμενο στάδιο.
30 / 54
V-Shaped Model
ADVANTAGES DISADVANTAGES
Κάθε στάδιο μοντέλου σχήματος V
έχει αυστηρά αποτελέσματα, ώστε
να είναι εύκολα ελεγχόμενο
Έλλειψη ευελιξίας
Η δοκιμή και η επαλήθευση
πραγματοποιούνται στα αρχικά
στάδια
Κακή επιλογή για τα μικρά έργα
Καλό για τα μικρά έργα, όπου οι
απαιτήσεις είναι στατικές και
σαφείς
Σχετικά μεγάλοι κίνδυνοι
31 / 54
Χρησιμοποιείται όταν:
●
Για τα έργα όπου απαιτείται ακριβής δοκιμή
προϊόντος
●
Για τα μικρά και μεσαία έργα, όπου οι
απαιτήσεις είναι αυστηρά προκαθορισμένες
●
Οι μηχανικοί με τα απαιτούμενα προσόντα,
ειδικά οι δοκιμαστές, είναι εύκολα
προσβάσιμοι.
32 / 54
Iterative Model
33 / 54
Iterative Model
●
Δεν χρειάζεται τον πλήρη κατάλογο των
απαιτήσεων πριν ξεκινήσει το έργο.
●
Η διαδικασία ανάπτυξης μπορεί να ξεκινήσει
με τις απαιτήσεις στο λειτουργικό μέρος, το
οποίο μπορεί να επεκταθεί αργότερα.
●
Η διαδικασία είναι επαναλαμβανόμενη,
επιτρέποντας τη δημιουργία νέων εκδόσεων
του προϊόντος για κάθε κύκλο.
34 / 54
Iterative Model
●
Κάθε επανάληψη (η οποία διαρκεί από δύο
έως έξι εβδομάδες) περιλαμβάνει την
ανάπτυξη ενός ξεχωριστού συστατικού του
συστήματος και μετά από αυτό το στοιχείο
προστίθεται στο λειτουργικό που
αναπτύχθηκε νωρίτερα.
35 / 54
Iterative Model
ADVANTAGES DISADVANTAGES
Ορισμένες λειτουργίες μπορούν να
αναπτυχθούν γρήγορα στην αρχή του
κύκλου
Το επαναληπτικό μοντέλο απαιτεί
περισσότερους πόρους από το
μοντέλο καταρράκτη
Η παράλληλη ανάπτυξη μπορεί να
εφαρμοστεί
Κακή επιλογή για τα μικρά έργα
Η πρόοδος είναι εύκολα μετρήσιμη Απαιτείται σταθερή διαχείριση
Ευκολότερα στάδια δοκιμής και
εντοπισμού σφαλμάτων
Η διαδικασία είναι δύσκολο να
διαχειριστεί
Είναι ευκολότερο να ελέγχετε τους
κινδύνους καθώς οι εργασίες υψηλού
κινδύνου ολοκληρώνονται πρώτα
Οι κίνδυνοι ενδέχεται να μην
προσδιορίζονται πλήρως ακόμη και
στο τελικό στάδιο του σχεδίου
Τα προβλήματα και οι κίνδυνοι που
ορίζονται μέσα σε μία επαναληπτική
πορεία μπορούν να αποφευχθούν
κατά τα επόμενα σπριντ
Ζητήματα με αρχιτεκτονική ή
σχεδιασμό μπορεί να προκύψουν
επειδή δεν προβλέπονται όλες οι
απαιτήσεις κατά το σύντομο στάδιο
του σχεδιασμού
Ευελιξία και ετοιμότητα για τις
αλλαγές στις απαιτήσεις
Η ανάλυση των κινδύνων απαιτεί τη
συμμετοχή ειδικών υψηλής
ειδίκευσης
36 / 54
Χρησιμοποιείται όταν:
●
Οι απαιτήσεις για το τελικό προϊόν είναι
αυστηρά προκαθορισμένες
●
Εφαρμόζεται στα έργα μεγάλης κλίμακας
●
Το κύριο έργο είναι προκαθορισμένο, αλλά οι
λεπτομέρειες μπορεί να προχωρήσουν με το
χρόνο
37 / 54
Spiral Model
38 / 54
Spiral Model
●
Συνδυάζει την αρχιτεκτονική και τα
πρωτότυπα στα στάδια.
●
Πρόκειται για ένα συνδυασμό των μοντέλων
Iterative και Waterfall, με τη σημαντική
έμφαση στην ανάλυση κινδύνου.
●
Kαθορίζει τη σωστή στιγμή για να πάει από
το ένα στάδιο στο επόμενο στάδιο.
– Τα προκαθορισμένα χρονικά πλαίσια
συνιστώνται ως λύση στο ζήτημα αυτό.
39 / 54
Spiral Model
●
Η μετάβαση στο επόμενο στάδιο γίνεται
σύμφωνα με το σχέδιο, ακόμη και αν δεν έχει
ακόμη ολοκληρωθεί η εργασία στο
προηγούμενο στάδιο.
●
Το σχέδιο εισάγεται με βάση τα στατιστικά
στοιχεία που έλαβε κατά τη διάρκεια των
προηγούμενων έργων, ακόμη και από την
εμπειρία του προσωπικού.
40 / 54
Spiral Model
ADVANTAGES DISADVANTAGES
Ο κύκλος ζωής χωρίζεται σε μικρά
τμήματα και, εάν η συγκέντρωση
κινδύνου είναι υψηλότερη, η φάση
μπορεί να ολοκληρωθεί νωρίτερα
για να αντιμετωπιστούν οι
“θεραπείες”
Μπορεί να είναι αρκετά ακριβό
Η διαδικασία ανάπτυξης είναι
τεκμηριωμένη αλλά κλιμακούμενη
στις αλλαγές
Ο έλεγχος των κινδύνων απαιτεί τη
συμμετοχή των εξειδικευμένων
επαγγελματιών
Η δυνατότητα κλιμάκωσης επιτρέπει
την πραγματοποίηση αλλαγών και
την προσθήκη νέων λειτουργιών
ακόμα και στα σχετικά αργά στάδια
Μπορεί να είναι αναποτελεσματική
για τα μικρά έργα
Οι χρήστες μπορούν να επισημάνουν
τα ελαττώματα πριν ολοκληρωθεί ένα
στάδιο
Ο μεγάλος αριθμός των ενδιάμεσων
σταδίων απαιτεί υπερβολική
τεκμηρίωση
41 / 54
Χρησιμοποιείται όταν:
●
Ο πελάτης δεν είναι σίγουρος για τις
απαιτήσεις
●
Σημαντικές αλλαγές αναμένονται κατά τη
διάρκεια του κύκλου ανάπτυξης
●
Για τα έργα με μεσαίο ή υψηλό επίπεδο
κινδύνου, όπου είναι σημαντικό να
προληφθούν αυτοί οι κίνδυνοι
●
Το νέο προϊόν που θα πρέπει να κυκλοφορήσει
σε λίγα στάδια θα πρέπει να έχει αρκετούς
πελάτες για feedback
42 / 54
Agile model
43 / 54
Agile model
●
Μετά από κάθε επανάληψη ανάπτυξης, ο
πελάτης είναι σε θέση να δει το αποτέλεσμα
και να καταλάβει εάν είναι ικανοποιημένος
με αυτό ή δεν είναι.
●
Αυτό είναι ένα από τα πλεονεκτήματα του
ευέλικτου μοντέλου κύκλου ζωής ανάπτυξης
λογισμικού.
44 / 54
Agile model
●
Ένα από τα μειονεκτήματά του είναι ότι με
την απουσία καθορισμένων απαιτήσεων είναι
δύσκολο να εκτιμηθούν οι πόροι και το
κόστος ανάπτυξης.
●
Ο ακραίος προγραμματισμός είναι μια από
την πρακτική χρήση του ευέλικτου μοντέλου.
●
Η βάση αυτού του μοντέλου συνίσταται σε
σύντομες εβδομαδιαίες συναντήσεις - Sprints
που αποτελούν μέρος της προσέγγισης
Scrum.
45 / 54
Agile model
ADVANTAGES DISADVANTAGES
Οι διορθώσεις λειτουργικών
απαιτήσεων εφαρμόζονται στην
αναπτυξιακή διαδικασία για την
ανταγωνιστικότητα
Δυσκολίες στη μέτρηση του τελικού
κόστους εξαιτίας μόνιμων αλλαγών
Το έργο χωρίζεται από σύντομες και
διαφανείς επαναλήψεις
Η ομάδα πρέπει να είναι άκρως
επαγγελματική και
προσανατολισμένη στον πελάτη
Οι κίνδυνοι ελαχιστοποιούνται χάρη
στη διαδικασία της ευέλικτης
αλλαγής
Οι νέες απαιτήσεις μπορεί να
έρχονται σε αντίθεση με την
υπάρχουσα αρχιτεκτονική
Γρήγορη απελευθέρωση της πρώτης
έκδοσης προϊόντος
Με όλες τις διορθώσεις και αλλαγές
υπάρχει πιθανότητα το έργο να
υπερβεί τον αναμενόμενο χρόνο
46 / 54
Χρησιμοποιείται όταν:
●
Οι ανάγκες των χρηστών αλλάζουν δυναμικά
●
Μικρότερες τιμές για τις αλλαγές που έγιναν
λόγω των πολλών επαναλήψεων
●
Σε αντίθεση με το μοντέλο Waterfall, απαιτεί
μόνο αρχικό σχεδιασμό για να ξεκινήσει το
έργο
47 / 54
Scrum
48 / 54
Kanban
49 / 54
Συμπέρασμα
●
Κατά τα έτη της εξέλιξης του SDLC,
αναπτύχθηκαν διαφορετικά μοντέλα από το
βασικό μοντέλο καταρράκτη για να
καλύψουν μια τεράστια ποικιλία
αναπτυξιακών απαιτήσεων και προσδοκιών.
50 / 54
Συμπέρασμα
●
Δεν υπάρχει μόνο ένα κατάλληλο μοντέλο για
όλα τα έργα. Ακόμη και από την πρώτη
ματιά, ο Agile πολλαπλών χρήσεων δεν
μπορεί να χρησιμοποιηθεί ευρέως εξαιτίας
της απροετοίμασίας κάποιων πελατών για
την κλιμάκωση του προϋπολογισμού. Τα
μοντέλα SDLC συχνά διασταυρώνονται στις
λύσεις και είναι ιδιαίτερα παρόμοια.
51 / 54
Ευχαριστούμε για την
προσοχή σας
52 / 54
Πηγές
●
SDLC Models:
– https://existek.com/blog/sdlc-models/
– https://stackify.com/what-is-sdlc/
– http://toolsqa.com/software-testing/
software-development-life-cycle/
– https://www.techopedia.com/defnition/221
93/software-development-life-cycle-sdlc
– https://www.youtube.com/watch?v=rIaz-
l1Kf8w
53 / 54
Πηγές
●
Devops:
– https://stackify.com/what-is-sdlc/
– https://www.youtube.com/watch?v=_I94-tJl
ovg
– https://www.youtube.com/watch?v=I7vHqX
Y22gg
– https://www.youtube.com/watch?v=OOGFx
VzW35w
– https://en.wikipedia.org/wiki/DevOps
54 / 54
Πηγές
●
Redhat Podcast:
– Agile
– Devops

More Related Content

Similar to Software development life cycle

Java free-book
Java free-bookJava free-book
Java free-book
ble nature
 
Παράγοντες επιτυχίας ενός ERP
Παράγοντες επιτυχίας ενός ERPΠαράγοντες επιτυχίας ενός ERP
Παράγοντες επιτυχίας ενός ERPGNOMON Informatics SA
 
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
ISSEL
 
Development of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationDevelopment of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous Integration
ISSEL
 
Presentation 6
Presentation 6Presentation 6
Presentation 6
Annaa77
 
Presentation 6
Presentation 6Presentation 6
Presentation 6
mariakarousiou
 
Presentation 6 (1)
Presentation 6 (1)Presentation 6 (1)
Presentation 6 (1)
Christianamou
 
Presentation 6
Presentation 6Presentation 6
Presentation 6
Maria Loizou
 
Σύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισης Πληροφοριακών Συστημάτων.pdf
Σύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισηςΠληροφοριακών Συστημάτων.pdfΣύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισηςΠληροφοριακών Συστημάτων.pdf
Σύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισης Πληροφοριακών Συστημάτων.pdf
JoSk9
 
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών ΠρογραμματισμούΔημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών ΠρογραμματισμούStesia Papavasileiou
 
Τεχνολογική επισκόπηση
Τεχνολογική επισκόπησηΤεχνολογική επισκόπηση
Τεχνολογική επισκόπησηStesia Papavasileiou
 
Ευέλικτη ανάπτυξη λογισμικού
Ευέλικτη ανάπτυξη λογισμικούΕυέλικτη ανάπτυξη λογισμικού
Ευέλικτη ανάπτυξη λογισμικού
evelixia
 
Software requirements
Software requirementsSoftware requirements
Software requirements
George Kara
 
Micro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application DevelopmentMicro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application Development
ISSEL
 
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
ISSEL
 
Zenon Mel System
Zenon Mel SystemZenon Mel System
Zenon Mel System
zenonrobotics
 
εξ αποστάσεως εκπαίδευση Autocad 2 d_3d
εξ αποστάσεως  εκπαίδευση Autocad 2 d_3dεξ αποστάσεως  εκπαίδευση Autocad 2 d_3d
εξ αποστάσεως εκπαίδευση Autocad 2 d_3d
George Exarchopoulos
 

Similar to Software development life cycle (20)

Java free-book
Java free-bookJava free-book
Java free-book
 
Παράγοντες επιτυχίας ενός ERP
Παράγοντες επιτυχίας ενός ERPΠαράγοντες επιτυχίας ενός ERP
Παράγοντες επιτυχίας ενός ERP
 
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
 
Development of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationDevelopment of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous Integration
 
Presentation 6
Presentation 6Presentation 6
Presentation 6
 
Presentation 6
Presentation 6Presentation 6
Presentation 6
 
Presentation 6 (1)
Presentation 6 (1)Presentation 6 (1)
Presentation 6 (1)
 
Presentation 6
Presentation 6Presentation 6
Presentation 6
 
Presentation 6 (1)
Presentation 6 (1)Presentation 6 (1)
Presentation 6 (1)
 
Σύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισης Πληροφοριακών Συστημάτων.pdf
Σύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισηςΠληροφοριακών Συστημάτων.pdfΣύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισηςΠληροφοριακών Συστημάτων.pdf
Σύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισης Πληροφοριακών Συστημάτων.pdf
 
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών ΠρογραμματισμούΔημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
 
Τεχνολογική επισκόπηση
Τεχνολογική επισκόπησηΤεχνολογική επισκόπηση
Τεχνολογική επισκόπηση
 
Ευέλικτη ανάπτυξη λογισμικού
Ευέλικτη ανάπτυξη λογισμικούΕυέλικτη ανάπτυξη λογισμικού
Ευέλικτη ανάπτυξη λογισμικού
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Micro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application DevelopmentMicro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application Development
 
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
 
Zenon Mel System
Zenon Mel SystemZenon Mel System
Zenon Mel System
 
Qualitrak
QualitrakQualitrak
Qualitrak
 
εξ αποστάσεως εκπαίδευση Autocad 2 d_3d
εξ αποστάσεως  εκπαίδευση Autocad 2 d_3dεξ αποστάσεως  εκπαίδευση Autocad 2 d_3d
εξ αποστάσεως εκπαίδευση Autocad 2 d_3d
 
SE5
SE5SE5
SE5
 

Software development life cycle

  • 1. 1 / 54 Κύκλος ζωής ανάπτυξης λογισμικού Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης – Πληροφοριακά Συστήματα 1 – 3η Παρουσίαση
  • 2. 2 / 54 Περιεχόμενα ● Τι είναι το SDLC; – Requirements Analysis – Design – Development – Testing – Documentation??? – Maintenance
  • 3. 3 / 54 Περιεχόμενα ● DevOps – Τι είναι το DevOps; – Γιατί χρειαζόμαστε το DevOps; – Πηγές για το DevOps ● SDLC MODELS – Waterfall Model – V-Shaped Model – Iterative Model
  • 4. 4 / 54 Περιεχόμενα ● SDLC MODELS – Spiral Model – Agile model ● Scrum ● Kanban ● Συμπέρασμα
  • 5. 5 / 54 Τι είναι το SDLC; ● SDLC (Software Development Life Cycle) – Κύκλος ζωής ανάπτυξης λογισμικού. ● Είναι μια δομή που την ακολουθεί μια ομάδα προγραμματιστών. ● Αποτελείται από ένα λεπτομερές σχέδιο που περιγράφει τον τρόπο ανάπτυξης, συντήρησης και αντικατάστασης συγκεκριμένου λογισμικού.
  • 6. 6 / 54 Τι είναι το SDLC; ● Ο κύκλος ζωής ορίζει μια μεθοδολογία για τη βελτίωση της ποιότητας του λογισμικού και της συνολικής διαδικασίας – Waterfall – V-Shaped – Iterative
  • 7. 7 / 54 Τι είναι το SDLC; ● Είναι ένα framework όπου προσδιορίζει τα βήματα που πρέπει να γίνουν σε κάθε επίπεδο με έναν ιεραρχικό τρόπο
  • 8. 8 / 54 Requirements Analysis ● Αφορά κυρίως τους διαχειριστές του έργου και τα άτομα που θα το χρησιμοποιήσουν.
  • 9. 9 / 54 Requirements Analysis ● Συνεδριάσεις με διαχειριστές, ενδιαφερόμενους και χρήστες πραγματοποιούνται προκειμένου να προσδιοριστούν οι απαιτήσεις – Ποια δεδομένα θα πρέπει να βγάζει το σύστημα – Ποια δεδομένα θα πρέπει να παίρνει το σύστημα – Ποια άτομα θα χρησιμοποιούν το σύστημα – etc
  • 10. 10 / 54 Requirements Analysis ● Μετά τη συλλογή των απαιτήσεων αναλύονται αυτές οι απαιτήσεις για την εγκυρότητά τους και μελετάται επίσης η δυνατότητα ενσωμάτωσης των απαιτήσεων στο σύστημα. ● Δημιουργείται ένα έγγραφο απαιτήσεων το οποίο εξυπηρετεί τον σκοπό καθοδήγησης για την επόμενη φάση του μοντέλου.
  • 11. 11 / 54 Design ● Σε αυτή τη φάση ο σχεδιασμός του συστήματος και του λογισμικού προετοιμάζεται με βάση των απαιτήσεων που μελετήθηκαν στην πρώτη φάση. ● Ο σχεδιασμός του συστήματος βοηθάει στον προσδιορισμό των απαιτήσεων υλικού και συστήματος, επίσης βοηθά στον καθορισμό της συνολικής αρχιτεκτονικής του συστήματος. ● Οι προδιαγραφές σχεδιασμού του συστήματος χρησιμεύουν ως είσοδος για την επόμενη φάση του μοντέλου.
  • 12. 12 / 54 Development ● Σε αυτό το στάδιο δημιουργείται ο κώδικας ● Οι προγραμματιστές χωρίζονται σε ομάδες (αν είναι εφικτό), έτσι ώστε να ασχοληθούν με ένα τμήμα του προγράμματος ανά ομάδα για να υπάρχει μεγαλύτερη αποδοτικότητα και λιγότερα σφάλματα
  • 13. 13 / 54 Testing ● Μετά την ανάπτυξη του κώδικα δοκιμάζεται με βάση τις απαιτήσεις για να διασφαλιστεί ότι το προϊόν επιλύει πραγματικά τις ανάγκες που αντιμετωπίζονται και συγκεντρώνονται κατά τη φάση των απαιτήσεων.
  • 14. 14 / 54 Testing ● Κατά τη διάρκεια αυτής της φάσης γίνονται όλοι οι τύποι λειτουργικών δοκιμών, όπως δοκιμές μονάδων, δοκιμές ολοκλήρωσης, δοκιμές συστημάτων, δοκιμές αποδοχής καθώς και μη-λειτουργικές δοκιμές.
  • 15. 15 / 54 Documentation??? ● Κάθε βήμα του έργου τεκμηριώνεται για μελλοντική αναφορά και για τη βελτίωση του λογισμικού στη διαδικασία ανάπτυξης. ● Η τεκμηρίωση του σχεδιασμού μπορεί να περιλαμβάνει τη γραφή της διεπαφής προγραμματισμού εφαρμογών
  • 16. 16 / 54 Maintenance ● Μόλις οι πελάτες αρχίσουν να χρησιμοποιούν το αναπτυγμένο σύστημα τότε τα πραγματικά προβλήματα εμφανίζονται και πρέπει να λυθούν από καιρό σε καιρό. ● Αυτή η διαδικασία όπου λαμβάνεται, μέριμνα για το αναπτυγμένο προϊόν είναι γνωστή ως συντήρηση.
  • 18. 18 / 54 Τι είναι το DevOps; ● Σημαίνει κυριολεκτικά Developers και Operations. ● Το νόημα είναι να δουλέψουν μαζί οι developers και οι sysadmins ώστε να επωφεληθούν οι επιχειρήσεις. ● Ο στόχος είναι να μειωθεί η “τριβή” και να αυξηθεί η ταχύτητα.
  • 19. 19 / 54 Γιατί χρειαζόμαστε το DevOps; Developers ● Δημιουργία Server με κώδικα ● Ανάπτυξη ολοκληρωμένων εφαρμογών ● Ομαλή αναβάθμιση Sysadmins ● Διαχείριση Server ● Διαμοιρασμός καθηκόντων με τους προγραμματιστές ● Κανονικό οράριο Make America Great Again Trust
  • 20. 20 / 54 Πηγές για το DevOps ● Website: – https://stackify.com/what-is-sdlc/ ● Podcast: – https://www.redhat.com/en/command-line- heroes
  • 21. 21 / 54 SDLC MODELS
  • 22. 22 / 54 SDLC MODELS ● Waterfall Model ● V-Shaped Model ● Iterative Model ● Spiral Model ● Agile model – Scrum – Kanban
  • 24. 24 / 54 Waterfall Model ● Η διαδικασία ανάπτυξης μοιάζει με τη ροή ενός καταρράκτη. ● Βαθμιαία εκτέλεση όλων των σταδίων. ● Αυτή η διαδικασία είναι αυστηρά τεκμηριωμένη και προκαθορισμένη με χαρακτηριστικά που αναμένονται.
  • 25. 25 / 54 Waterfall Model ADVANTAGES DISADVANTAGES Απλό στη χρήση και κατανόηση Το λογισμικό είναι έτοιμο μόνο μετά το τέλος του τελευταίου σταδίου Απλή διαχείριση χάρη στην ακαμψία της: κάθε φάση έχει καθορισμένο αποτέλεσμα και ανασκόπηση της διαδικασίας Υψηλοί κίνδυνοι και αβεβαιότητα Τα στάδια ανάπτυξης ξεκινούν ένα προς ένα Δεν είναι η καλύτερη επιλογή για σύνθετα και αντικειμενοστρεφή έργα Ιδανικό για μικρά ή μεσαίου μεγέθους έργα, όπου οι απαιτήσεις είναι σαφείς και όχι αμφιλεγόμενες Ακατάλληλο για τα μακροπρόθεσμα έργα Εύκολος προσδιορισμός των βασικών σημείων στον κύκλο ανάπτυξης Η πρόοδος του επιπέδου είναι δύσκολο να μετρηθεί ενώ βρίσκεται ακόμη σε ανάπτυξη Εύκολη ταξινόμηση και προτεραιότητα εργασιών Η ολοκλήρωση γίνεται στο τέλος, πράγμα που δεν δίνει τη δυνατότητα να προσδιοριστεί εκ των προτέρων τα προβλήματα
  • 26. 26 / 54 Χρησιμοποιείται όταν: ● Οι απαιτήσεις τεκμηριώνονται επακριβώς ● Ο ορισμός του προϊόντος είναι σταθερός ● Η στοίβα τεχνολογιών είναι προκαθορισμένη και δεν το καθιστά δυναμικό ● Δεν υπάρχουν αμφιλεγόμενες απαιτήσεις ● Το έργο είναι σύντομο
  • 28. 28 / 54 V-Shaped Model ● Είναι μια επέκταση του κλασικού μοντέλου καταρράκτη και βασίζεται στη σχετική δοκιμαστική φάση για κάθε στάδιο ανάπτυξης. ● Πρόκειται για ένα πολύ αυστηρό μοντέλο και το επόμενο στάδιο ξεκινά μόνο μετά την προηγούμενη φάση.
  • 29. 29 / 54 V-Shaped Model ● Καλείται επίσης το μοντέλο “Validation and verifcation”. ● Κάθε στάδιο έχει τον τρέχοντα έλεγχο διαδικασίας, για να βεβαιωθεί ότι είναι δυνατή η μετατροπή στο επόμενο στάδιο.
  • 30. 30 / 54 V-Shaped Model ADVANTAGES DISADVANTAGES Κάθε στάδιο μοντέλου σχήματος V έχει αυστηρά αποτελέσματα, ώστε να είναι εύκολα ελεγχόμενο Έλλειψη ευελιξίας Η δοκιμή και η επαλήθευση πραγματοποιούνται στα αρχικά στάδια Κακή επιλογή για τα μικρά έργα Καλό για τα μικρά έργα, όπου οι απαιτήσεις είναι στατικές και σαφείς Σχετικά μεγάλοι κίνδυνοι
  • 31. 31 / 54 Χρησιμοποιείται όταν: ● Για τα έργα όπου απαιτείται ακριβής δοκιμή προϊόντος ● Για τα μικρά και μεσαία έργα, όπου οι απαιτήσεις είναι αυστηρά προκαθορισμένες ● Οι μηχανικοί με τα απαιτούμενα προσόντα, ειδικά οι δοκιμαστές, είναι εύκολα προσβάσιμοι.
  • 33. 33 / 54 Iterative Model ● Δεν χρειάζεται τον πλήρη κατάλογο των απαιτήσεων πριν ξεκινήσει το έργο. ● Η διαδικασία ανάπτυξης μπορεί να ξεκινήσει με τις απαιτήσεις στο λειτουργικό μέρος, το οποίο μπορεί να επεκταθεί αργότερα. ● Η διαδικασία είναι επαναλαμβανόμενη, επιτρέποντας τη δημιουργία νέων εκδόσεων του προϊόντος για κάθε κύκλο.
  • 34. 34 / 54 Iterative Model ● Κάθε επανάληψη (η οποία διαρκεί από δύο έως έξι εβδομάδες) περιλαμβάνει την ανάπτυξη ενός ξεχωριστού συστατικού του συστήματος και μετά από αυτό το στοιχείο προστίθεται στο λειτουργικό που αναπτύχθηκε νωρίτερα.
  • 35. 35 / 54 Iterative Model ADVANTAGES DISADVANTAGES Ορισμένες λειτουργίες μπορούν να αναπτυχθούν γρήγορα στην αρχή του κύκλου Το επαναληπτικό μοντέλο απαιτεί περισσότερους πόρους από το μοντέλο καταρράκτη Η παράλληλη ανάπτυξη μπορεί να εφαρμοστεί Κακή επιλογή για τα μικρά έργα Η πρόοδος είναι εύκολα μετρήσιμη Απαιτείται σταθερή διαχείριση Ευκολότερα στάδια δοκιμής και εντοπισμού σφαλμάτων Η διαδικασία είναι δύσκολο να διαχειριστεί Είναι ευκολότερο να ελέγχετε τους κινδύνους καθώς οι εργασίες υψηλού κινδύνου ολοκληρώνονται πρώτα Οι κίνδυνοι ενδέχεται να μην προσδιορίζονται πλήρως ακόμη και στο τελικό στάδιο του σχεδίου Τα προβλήματα και οι κίνδυνοι που ορίζονται μέσα σε μία επαναληπτική πορεία μπορούν να αποφευχθούν κατά τα επόμενα σπριντ Ζητήματα με αρχιτεκτονική ή σχεδιασμό μπορεί να προκύψουν επειδή δεν προβλέπονται όλες οι απαιτήσεις κατά το σύντομο στάδιο του σχεδιασμού Ευελιξία και ετοιμότητα για τις αλλαγές στις απαιτήσεις Η ανάλυση των κινδύνων απαιτεί τη συμμετοχή ειδικών υψηλής ειδίκευσης
  • 36. 36 / 54 Χρησιμοποιείται όταν: ● Οι απαιτήσεις για το τελικό προϊόν είναι αυστηρά προκαθορισμένες ● Εφαρμόζεται στα έργα μεγάλης κλίμακας ● Το κύριο έργο είναι προκαθορισμένο, αλλά οι λεπτομέρειες μπορεί να προχωρήσουν με το χρόνο
  • 37. 37 / 54 Spiral Model
  • 38. 38 / 54 Spiral Model ● Συνδυάζει την αρχιτεκτονική και τα πρωτότυπα στα στάδια. ● Πρόκειται για ένα συνδυασμό των μοντέλων Iterative και Waterfall, με τη σημαντική έμφαση στην ανάλυση κινδύνου. ● Kαθορίζει τη σωστή στιγμή για να πάει από το ένα στάδιο στο επόμενο στάδιο. – Τα προκαθορισμένα χρονικά πλαίσια συνιστώνται ως λύση στο ζήτημα αυτό.
  • 39. 39 / 54 Spiral Model ● Η μετάβαση στο επόμενο στάδιο γίνεται σύμφωνα με το σχέδιο, ακόμη και αν δεν έχει ακόμη ολοκληρωθεί η εργασία στο προηγούμενο στάδιο. ● Το σχέδιο εισάγεται με βάση τα στατιστικά στοιχεία που έλαβε κατά τη διάρκεια των προηγούμενων έργων, ακόμη και από την εμπειρία του προσωπικού.
  • 40. 40 / 54 Spiral Model ADVANTAGES DISADVANTAGES Ο κύκλος ζωής χωρίζεται σε μικρά τμήματα και, εάν η συγκέντρωση κινδύνου είναι υψηλότερη, η φάση μπορεί να ολοκληρωθεί νωρίτερα για να αντιμετωπιστούν οι “θεραπείες” Μπορεί να είναι αρκετά ακριβό Η διαδικασία ανάπτυξης είναι τεκμηριωμένη αλλά κλιμακούμενη στις αλλαγές Ο έλεγχος των κινδύνων απαιτεί τη συμμετοχή των εξειδικευμένων επαγγελματιών Η δυνατότητα κλιμάκωσης επιτρέπει την πραγματοποίηση αλλαγών και την προσθήκη νέων λειτουργιών ακόμα και στα σχετικά αργά στάδια Μπορεί να είναι αναποτελεσματική για τα μικρά έργα Οι χρήστες μπορούν να επισημάνουν τα ελαττώματα πριν ολοκληρωθεί ένα στάδιο Ο μεγάλος αριθμός των ενδιάμεσων σταδίων απαιτεί υπερβολική τεκμηρίωση
  • 41. 41 / 54 Χρησιμοποιείται όταν: ● Ο πελάτης δεν είναι σίγουρος για τις απαιτήσεις ● Σημαντικές αλλαγές αναμένονται κατά τη διάρκεια του κύκλου ανάπτυξης ● Για τα έργα με μεσαίο ή υψηλό επίπεδο κινδύνου, όπου είναι σημαντικό να προληφθούν αυτοί οι κίνδυνοι ● Το νέο προϊόν που θα πρέπει να κυκλοφορήσει σε λίγα στάδια θα πρέπει να έχει αρκετούς πελάτες για feedback
  • 42. 42 / 54 Agile model
  • 43. 43 / 54 Agile model ● Μετά από κάθε επανάληψη ανάπτυξης, ο πελάτης είναι σε θέση να δει το αποτέλεσμα και να καταλάβει εάν είναι ικανοποιημένος με αυτό ή δεν είναι. ● Αυτό είναι ένα από τα πλεονεκτήματα του ευέλικτου μοντέλου κύκλου ζωής ανάπτυξης λογισμικού.
  • 44. 44 / 54 Agile model ● Ένα από τα μειονεκτήματά του είναι ότι με την απουσία καθορισμένων απαιτήσεων είναι δύσκολο να εκτιμηθούν οι πόροι και το κόστος ανάπτυξης. ● Ο ακραίος προγραμματισμός είναι μια από την πρακτική χρήση του ευέλικτου μοντέλου. ● Η βάση αυτού του μοντέλου συνίσταται σε σύντομες εβδομαδιαίες συναντήσεις - Sprints που αποτελούν μέρος της προσέγγισης Scrum.
  • 45. 45 / 54 Agile model ADVANTAGES DISADVANTAGES Οι διορθώσεις λειτουργικών απαιτήσεων εφαρμόζονται στην αναπτυξιακή διαδικασία για την ανταγωνιστικότητα Δυσκολίες στη μέτρηση του τελικού κόστους εξαιτίας μόνιμων αλλαγών Το έργο χωρίζεται από σύντομες και διαφανείς επαναλήψεις Η ομάδα πρέπει να είναι άκρως επαγγελματική και προσανατολισμένη στον πελάτη Οι κίνδυνοι ελαχιστοποιούνται χάρη στη διαδικασία της ευέλικτης αλλαγής Οι νέες απαιτήσεις μπορεί να έρχονται σε αντίθεση με την υπάρχουσα αρχιτεκτονική Γρήγορη απελευθέρωση της πρώτης έκδοσης προϊόντος Με όλες τις διορθώσεις και αλλαγές υπάρχει πιθανότητα το έργο να υπερβεί τον αναμενόμενο χρόνο
  • 46. 46 / 54 Χρησιμοποιείται όταν: ● Οι ανάγκες των χρηστών αλλάζουν δυναμικά ● Μικρότερες τιμές για τις αλλαγές που έγιναν λόγω των πολλών επαναλήψεων ● Σε αντίθεση με το μοντέλο Waterfall, απαιτεί μόνο αρχικό σχεδιασμό για να ξεκινήσει το έργο
  • 49. 49 / 54 Συμπέρασμα ● Κατά τα έτη της εξέλιξης του SDLC, αναπτύχθηκαν διαφορετικά μοντέλα από το βασικό μοντέλο καταρράκτη για να καλύψουν μια τεράστια ποικιλία αναπτυξιακών απαιτήσεων και προσδοκιών.
  • 50. 50 / 54 Συμπέρασμα ● Δεν υπάρχει μόνο ένα κατάλληλο μοντέλο για όλα τα έργα. Ακόμη και από την πρώτη ματιά, ο Agile πολλαπλών χρήσεων δεν μπορεί να χρησιμοποιηθεί ευρέως εξαιτίας της απροετοίμασίας κάποιων πελατών για την κλιμάκωση του προϋπολογισμού. Τα μοντέλα SDLC συχνά διασταυρώνονται στις λύσεις και είναι ιδιαίτερα παρόμοια.
  • 51. 51 / 54 Ευχαριστούμε για την προσοχή σας
  • 52. 52 / 54 Πηγές ● SDLC Models: – https://existek.com/blog/sdlc-models/ – https://stackify.com/what-is-sdlc/ – http://toolsqa.com/software-testing/ software-development-life-cycle/ – https://www.techopedia.com/defnition/221 93/software-development-life-cycle-sdlc – https://www.youtube.com/watch?v=rIaz- l1Kf8w
  • 53. 53 / 54 Πηγές ● Devops: – https://stackify.com/what-is-sdlc/ – https://www.youtube.com/watch?v=_I94-tJl ovg – https://www.youtube.com/watch?v=I7vHqX Y22gg – https://www.youtube.com/watch?v=OOGFx VzW35w – https://en.wikipedia.org/wiki/DevOps
  • 54. 54 / 54 Πηγές ● Redhat Podcast: – Agile – Devops