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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

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

UML: Unified modelling language

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

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

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

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

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

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

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

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

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

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

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

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

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

Αρχές Προγραμματισμού Υπολογιστών

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια

Α. Ερωτήσεις Ανάπτυξης

Σχεδιασµός βασισµένος σε συνιστώσες

Επιµέλεια Θοδωρής Πιερράτος

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

Εισαγωγή στην. Γιάννης Σμαραγδάκης

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

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

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

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

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

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

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

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

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

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

Rational Unified Process:

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

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

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

περιεχόμενα παρουσίασης

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

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

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

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

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

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

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

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

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

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Σχεδιαστής Ιστοσελίδων

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

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

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

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

Ενότητα 1 (κεφάλαια 3 και 23.4) Ευέλικτη Ανάπτυξη Λογισμικού

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

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

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

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

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

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

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

Α.2 Μαθησιακά Αποτελέσματα Έχοντας ολοκληρώσει επιτυχώς το μάθημα οι εκπαιδευόμενοι θα είναι σε θέση να:

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

Μαλούτα Θεανώ Σελίδα 1

Transcript:

Διαδικασίες παραγωγής λογισμικού

Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται στην καταγραφή των απαιτήσεων του λογισμικού, στην ανάπτυξη του λογισμικού, στη δοκιμή του, και στην εξέλιξή του Μοντέλο Ενοποιημένης Διαδικασίας Γνωριμία με τα εργαλεία CASE

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

Γενικά μοντέλα (υποδείγματα) διαδικασιών ανάπτυξης λογισμικού Το μοντέλο καταρράκτη Εξελικτική ανάπτυξη Ξεχωριστές φάσεις καθορισμού απαιτήσεων και ανάπτυξης. Η προσέγγιση αυτή αναμιγνύει τις δραστηριότητες της εξαγωγής προδιαγραφών, της ανάπτυξης, και της επικύρωσης. Τεχνολογία λογισμικού βάσει συστατικών στοιχείων Το σύστημα συγκροτείται από υπάρχοντα συστατικά στοιχεία.

Μοντέλο καταρράκτη

Φάσεις μοντέλου καταρράκτη Ανάλυση και καθορισμός απαιτήσεων Σχεδιασμός συστήματος και λογισμικού Υλοποίηση και δοκιμές υπομονάδων Ενοποίηση και δοκιμές συστήματος Λειτουργία και συντήρηση Το βασικό μειονέκτημα του μοντέλου καταρράκτη είναι η δυσκολία στην πραγματοποίηση τροποποιήσεων αφού η διαδικασία έχει ξεκινήσει. Πρέπει να ολοκληρωθεί μία φάση για να προχωρήσει η διαδικασία στην επόμενη φάση.

Μειονεκτήματα- Πλεονεκτήματα μοντέλου καταρράκτη Πλεονεκτήματα Καλός διαχωρισμός του έργου σε απλούστερες φάσεις. Κάθε φάση παράγει ένα σαφώς καθορισμένο παραδοτέο. Μειονεκτήματα Στην πράξη οι φάσεις αλληλεπικαλύπτονται. Στην πράξη το μοντέλο δεν είναι γραμμικό: συχνά επιστρέφουμε στην προηγούμενη φάση. Συχνά, αλλαγές σε κάποιο στάδιο επιβάλλουν την οπισθοχώρηση και πραγματοποίηση αλλαγών σε πολλά από τα προηγούμενα στάδια. Ο πελάτης βλέπει τι τελικά αγοράζει πολύ αργά!!! Έλλειψη καθοδήγησης για το χειρισμό δραστηριοτήτων (μετασχηματισμού λογ/κού)

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

Εξελικτική ανάπτυξη

Εξελικτική ανάπτυξη Προβλήματα Έλλειψη διαφάνειας της διαδικασίας Τα συστήματα συχνά έχουν κακή δομή Μπορεί να απαιτούνται ειδικές ικανότητες (για παράδειγμα, ικανότητες σε γλώσσες προγραμματισμού για τη γρήγορη παραγωγή πρωτοτύπων). Δυνατότητα εφαρμογής Σε διαδραστικά συστήματα μικρού ή μεσαίου μεγέθους Σε τμήματα μεγάλων συστημάτων (για παράδειγμα, για τη διασύνδεση χρήστη) Για συστήματα μικρής διάρκειας ζωής.

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

Ανάπτυξη προσανατολισμένη στην επαναχρησιμοποίηση

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

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

Βαθμιαία ανάπτυξη

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

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

Σπειροειδής ανάπτυξη Η διαδικασία αναπαρίσταται με τη μορφή ελικοειδούς γραμμής και όχι ως ακολουθία δραστηριοτήτων με κάποιες επανόδους από τη μία δραστηριότητα στην άλλη. Κάθε βρόχος της σπείρας αντιπροσωπεύει και μια φάση της διαδικασίας. Δεν υπάρχουν σταθερές φάσεις όπως η φάση της εξαγωγής προδιαγραφών ή του σχεδιασμού λογισμικού - οι βρόχοι της σπείρας επιλέγονται ανάλογα με τις απαιτήσεις. Καθ' όλη τη διαδικασία γίνεται ρητή εκτίμηση (αξιολόγηση) και επίλυση των κινδύνων.

Σπειροειδές μοντέλο διαδικασίας παραγωγής λογισμικού

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

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

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

Διαδικασία καθορισμού απαιτήσεων

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

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

Η διαδικασία παραγωγής λογισμικού

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

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

Η διαδικασία αποσφαλμάτωσης

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

Η διαδικασία δοκιμών

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

Φάσεις δοκιμών

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

Εξέλιξη συστήματος

Rational Unified process Ενοποιημένη Διαδικασία (ΕΔ) Ένα σύγχρονο παράδειγμα μοντέλου διαδικασίας που προέρχεται από την προσπάθεια που έχει επενδυθεί στη γλώσσα UML και τη σχετική διαδικασία. Συνήθως περιγράφεται από 3 προοπτικές Μια δυναμική προοπτική, που δείχνει τις φάσεις του μοντέλου μέσα στο χρόνο Μια στατική προοπτική, η οποία παρουσιάζει τις δραστηριότητες της διαδικασίας Μια πρακτική προοπτική, που προτείνει τη χρήση καλών πρακτικών κατά τη διαδικασία

Μοντέλο φάσεων RUP

Φάσεις RUP Έναρξη Εκπόνηση/ Επεξεργασία Κατανόηση του πεδίου του προβλήματος και διατύπωση της αρχιτεκτονικής για το σύστημα. Κατασκευή Σύσταση της επιχειρηματικής χρήσης του συστήματος. Σχεδιασμός, προγραμματισμός και δοκιμές του συστήματος. Μετάβαση Μεταφορά του συστήματος στο περιβάλλον λειτουργίας του.

Καλές πρακτικές RUP Επαναληπτική ανάπτυξη του λογισμικού Διαχείριση απαιτήσεων Χρήση αρχιτεκτονικών βάσει συστατικών στοιχείων Οπτική μοντελοποίηση του λογισμικού. Επαλήθευση ποιότητας του λογισμικού Έλεγχος μεταβολών του λογισμικού

Ροές εργασιών Υπάρχουν 9 διαφορετικές ροές Επιχειρηματικά μοντέλα Καταγραφή απαιτήσεων Ανάλυση και ανάπτυξη Υλοποίηση Έλεγχος Παράδοση Διαχείριση έργου Διαχείριση κώδικα Περιβάλλον

Στατικές ροές εργασιών Ροή εργασιών Περιγραφή Επιχειρηματικά μοντέλα Οι επιχειρηματικές διαδικασίες μοντελοποιούνται με μελέτες επιχειρηματικής χρήσης. Απαιτήσεις Προσδιορίζονται οι οντότητες που αλληλεπιδρούν με το σύστημα και αναπτύσσονται περιπτώσεις χρήσης για τη μοντελοποίηση των απαιτήσεων του συστήματος. Ανάλυση και σχεδιασμός Δημιουργείται και τεκμηριώνεται ένα μοντέλο σχεδιασμού με τη χρήση αρχιτεκτονικών μοντέλων, μοντέλων συστατικών στοιχείων, μοντέλων αντικειμένων, και μοντέλων ακολουθίας. Υλοποίηση Τα συστατικά στοιχεία του συστήματος υλοποιούνται και δομούνται σε υποσυστήματα της υλοποίησης. Η διαδικασία αυτή μπορεί να επιταχυνθεί με την αυτόματη παραγωγή κώδικα από τα μοντέλα σχεδιασμού. Δοκιμές Οι δοκιμές είναι μια επαναληπτική διαδικασία που εξελίσσεται σε συνδυασμό με την υλοποίηση. Μετά την περάτωση της υλοποίησης, ακολουθούν οι δοκιμές συστήματος. Διανομή (deployment) Δημιουργείται μια τελική έκδοση του προϊόντος η οποία διανέμεται στους χρήστες και εγκαθίσταται στο χώρο εργασίας τους. Διαχείριση διευθετήσεων και μεταβολών Αυτή η βοηθητική ροή εργασιών διαχειρίζεται τις μεταβολές που γίνονται στο σύστημα (δείτε στο Κεφάλαιο 29). Διαχείριση έργου Αυτή η βοηθητική ροή εργασιών διαχειρίζεται την ανάπτυξη του συστήματος (δείτε στο Κεφάλαιο 5). Περιβάλλον Η συγκεκριμένη ροή εργασιών έχει στόχο να κάνει διαθέσιμα στην ομάδα ανάπτυξης λογισμικού τα κατάλληλα εργαλεία.

Η εναρκτήρια φάση Σκοπός της είναι να εξετάσει κατά πόσο το έργο µπορεί να γίνει και να καθορίσει κάποιο κοινό στόχο από όλα τα ενδιαφερόµενα µέλη Αν έχει προ-αποφασιστεί ότι το έργο θα γίνει τότε η εναρκτήρια φάση είναι πολύ σύντοµη, το πολύ µία εβδοµάδα ή λιγότερο Συνήθως η εναρκτήρια φάση για τα περισσότερα έργα δεν κρατά παρά λίγες εβδοµάδες (2-3) Τι γίνεται στην εναρκτήρια φάση Ορίζονται οι στόχοι του έργου (Vision Document). Αυτό είναι ένα έγγραφο που µπορεί να είναι από µια παράγραφο ως µερικές σελίδες και περιέχει µια γενική σύνοψη του έργου Παράγεται ένα µοντέλο περιπτώσεων χρήσης Γίνεται ανάλυση κόστους/κέρδους και ρίσκου Ορίζεται ένα 10%-20% των περιπτώσεων χρήσης Μπορεί να κατασκευαστούν και κάποια δείγµατα

Η φάση επεξεργασίας Ορίζεται η πλειοψηφία των απαιτήσεων του έργου Αντιµετωπίζονται οι πιθανοί κίνδυνοι Υλοποιούνται τα βασικά κοµµάτια της αρχιτεκτονικής του έργου Η φάση επεξεργασίας ολοκληρώνεται συνήθως σε 2 ως 4 επαναλήψεις. Κάθε επανάληψη έχει προ-καθορισµένη διάρκεια (συνήθως από 2 ως 4 εβδοµάδες) Περίπου το 80% των περιπτώσεων χρήσης πρέπει να έχει καταγραφεί σε αυτήν την φάση Πρέπει να έχει οριστεί το µοντέλο περιπτώσεων χρήσης Πρέπει να έχει οριστεί το µοντέλο σχεδίασης Πρέπει να έχει οριστεί το τι θα ελεγχθεί στο τέλος Πρέπει να έχει οριστεί η δοµή της βάσης δεδοµένων Πρέπει στο τέλος να έχει παράγει εκτελέσιµο κώδικα µε υλοποιηµένη τη βασική αρχιτεκτονική

Η κατασκευαστική φάση Αφορά την υλοποίηση του έργου Έχει διάρκεια συνήθως >= 4 επαναλήψεις Κάθε επανάληψη έχει προ-καθορισµένη διάρκεια (συνήθως από 2 ως 4 εβδοµάδες) Εστιάζει στην υλοποίηση Υλοποιεί τις περιπτώσεις χρήσης της προηγούµενης φάσης και αυξάνει τη λειτουργικότητα Υλοποιούνται και λεπτοµέρειες και όχι µόνο τα βασικά του αρχιτεκτονικού σχεδίου Η ανάλυση συνεχίζεται αλλά η σχεδίαση και η υλοποίηση είναι τα βασικά

Η φάση µετάβασης Αρχίζει όταν ολοκληρωθεί η υλοποίηση και το λογισµικό παραδοθεί στον πελάτη Έχει διάρκεια συνήθως µέχρι 2 επαναλήψεις Κάθε επανάληψη έχει προ-καθορισµένη διάρκεια (συνήθως από 2 ως 4 εβδοµάδες) Σηµατοδοτεί την έναρξη χρήσης του συστήµατος Ο έλεγχος µεταφέρεται περισσότερο στην οµάδα συντήρησης και ελέγχου Αφορά κυρίως την ενοποίηση µε τα υπάρχοντα συστήµατα

Οι επαναλήψεις και η UP H UP µια επαναληπτική διαδικασία ανάπτυξης. Η ανάπτυξη του προϊόντος οργανώνεται γύρω από επαναλήψεις συγκεκριµένης διάρκειας (π.χ. 4 εβδοµάδων). Κάθε επανάληψη είναι ένα mini-project που µοιάζει µε τον καταράκτη. Κάθε επανάληψη καταλήγει σε ένα εκτελέσιµο, δοκιµασµένο σύστηµα που απλά µπορεί να µην υλοποιεί όλες τις απαιτήσεις

H σχέση ανάµεσα σε ροές και φάσεις Οι ροές εκτελούνται επαναληπτικά κάθε φορά που µπαίνουµε σε µια καινούργια φάση Το πόσος χρόνος δαπανάται σε κάθε ροή εξαρτάται από τη φάση που βρισκόµαστε Δεν είναι απαραίτητο να εκτελεστούν όλες οι ροές σε κάθε φάση

Τεχνολογία λογισμικού με τη βοήθεια υπολογιστή Η τεχνολογία λογισμικού με τη βοήθεια υπολογιστή (CASE) αναφέρεται σε εφαρμογές που χρησιμοποιούνται για την υποστήριξη των διαδικασιών ανάπτυξης και εξέλιξης λογισμικού. Αυτοματοποίηση δραστηριοτήτων Προγράμματα επεξεργασίας με γραφικό περιβάλλον για την ανάπτυξη μοντέλων συστημάτων Λεξικό δεδομένων για τη διαχείριση των οντοτήτων του σχεδιασμού Πρόγραμμα κατασκευής διασύνδεσης χρηστών με γραφικά Προγράμματα αποσφαλμάτωσης για την εύρεση ελαττωμάτων στον κώδικα Αυτόματοι μεταφραστές (μεταξύ γλωσσών προγραμματισμού) για την παραγωγή νέων εκδόσεων προγραμμάτων.

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

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

Λειτουργική κατηγοριοποίηση εργαλείων Τύπος εργαλείου Παραδείγματα Εργαλεία χρονοπρογραμματισμού Εργαλεία PERT, εργαλεία εκτίμησης, λογιστικά φύλλα Εργαλεία επεξεργασίας Διορθωτές κειμένου, επεξεργαστές διαγραμμάτων, επεξεργαστές κειμένου Εργαλεία διαχείρισης μεταβολών Εργαλεία παρακολούθησης απαιτήσεων, συστήματα ελέγχου μεταβολών Εργαλεία διαχείρισης διευθετήσεων Εργαλεία διαχείρισης εκδόσεων, εργαλεία δόμησης συστημάτων Εργαλεία κατασκευής πρωτοτύπων Γλώσσες πολύ υψηλού επιπέδου, γεννήτριες διασυνδέσεων χρήστη Εργαλεία υποστήριξης μεθόδων Επεξεργαστές σχεδιασμών, λεξικά δεδομένων, γεννήτριες κώδικα Εργαλεία επεξεργασίας γλωσσών Μεταγλωττιστές, διερμηνευτές Εργαλεία ανάλυσης προγραμμάτων Γεννήτριες παραπομπών, στατικοί αναλυτές, δυναμικοί αναλυτές Εργαλεία δοκιμών Γεννήτριες δοκιμαστικών δεδομένων, εργαλεία σύγκρισης αρχείων Εργαλεία αποσφαλμάτωσης Συστήματα αλληλεπιδραστικής αποσφαλμάτωσης Εργαλεία τεκμηρίωσης Προγράμματα σελιδοποίησης, επεξεργαστές εικόνων Εργαλεία ανακατασκευής Συστήματα παραπομπών, συστήματα αναδόμησης προγραμμάτων

Κατηγοριοποίηση εργαλείων με βάση τις δραστηριότητες

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

Εργαλεία, εργαστήρια, περιβάλλοντα