Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Τεχνολογία Λογισμικού"— Μεταγράφημα παρουσίασης:

1 Τεχνολογία Λογισμικού
Σχεδιασμός, ανάπτυξη και συντήρηση μεγάλων συστημάτων λογισμικού

2 Στόχοι Ορισμός τεχνολογίας λογισμικού και της σημασία της
Θέματα προϊόντων λογισμικού και των διαδικασιών λογισμικού Σπουδαιότητα της διαδικασίας Εισαγωγή στην έννοια της επαγγελματικής υπευθυνότητας

3 Θέματα Προϊόντα λογισμικού Η διαδικασία λογισμικού
Το μοντέλο Boehm’s spiral Δυνατότητα παρακολούθησης διαδικασίας Επαγγελματική υπευθυνότητα

4 Τεχνολογία Λογισμικού
Οι οικονομίες όλες των αναπτυγμένων χωρών εξαρτώνται από το λογισμικό Όλο και περισσότερα συστήματα είναι ελεγχόμενα από λογισμικό Η τεχνολογία λογισμικού ασχολείται με θεωρίες, μεθόδους και εργαλεία για «επαγγελματική» ανάπτυξη λογισμικού Τα ποσά τα οποία αναλώνονται για τεχνολογία λογισμικού αντιστοιχούν σε σημαντικό τμήμα του ΑΕΠ σε όλες τις αναπτυγμένες χώρες

5 Κόστος Λογισμικού Τα κόστη λογισμικού συνήθως είναι κυρίαρχα για ένα σύστημα. Το κόστος λογισμικού σε ένα Η/Υ (PC) είναι συνήθως μεγαλύτερο από το κόστος του υλικού Το κόστος για την συντήρηση του λογισμικού είναι συνήθως πολύ μεγαλύτερο από το κόστος για την ανάπτυξή του Η τεχνολογία λογισμικού ασχολείται με ανάπτυξη λογισμικού η οποία είναι αποτελεσματική ως προς το κόστος

6 Προϊόντα Λογισμικού Generic (βασικά) προϊόντα
Είναι συστήματα τα οποία λειτουργούν από μόνα τους, έχουν παραχθεί από ένα οργανισμό και διατίθενται στην ελεύθερη αγορά Bespoke (customised) προϊόντα Είναι συστήματα τα οποία έχουν ζητηθεί από κάποιο πελάτη και έχουν αναπτυχθεί ειδικά για αυτόν από κάποιο οργανισμό που τα έχει αναλάβει Το μεγαλύτερο κόστος αναφέρεται στα generic products αλλά η περισσότερη ανάπτυξη γίνεται για συστήματα πελατών

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

8 Σημασία των Χαρακτηριστικών
Η σχετική σημασία των χαρακτηριστικών εξαρτάται από το προϊόν και το περιβάλλον στο οποίο χρησιμοποιούνται Σε μερικές περιπτώσεις κάποια χαρακτηριστικά κυριαρχούν Σε συστήματα τα οποία έχουν υψηλές απαιτήσεις ασφάλειας κυριαρχούν η εξάρτηση και η αποτελεσματικότητα Το κόστος ανεβαίνει εκθετικά όταν απαιτείται κάποιο επιπλέον χαρακτηριστικό

9 Κόστη Αποτελεσματικότητας

10 Η Διαδικασία Λογισμικού
Απαιτείται ένα δομημένο σύνολο δραστηριοτήτων για την ανάπτυξη ενός συστήματος λογισμικού Καθορισμός Σχεδιασμός Αξιολόγηση Ανάπτυξη Οι δραστηριότητες ποικίλουν ανάλογα με τον οργανισμό και το σύστημα που αναπτύσσεται Πρέπει να μοντελοποιηθούν αν υπάρχει ανάγκη διαχείρισης

11 Χαρακτηριστικά Διαδικασίας
Κατανόηση Είναι η διαδικασία ορισμένη και κατανοητή; Δυνατότητα υλοποίησης Είναι η πρόοδος της διαδικασίας εξωτερικά ορατή; Υποστήριξη Μπορεί να υποστηριχθεί η διαδικασία από CASE tools; Αποδοχή Είναι η διαδικασία αποδεκτή σε αυτούς οι οποίοι συμμετέχουν;

12 Χαρακτηριστικά Διαδικασίας
Αξιοπιστία Τα λάθη της διαδικασίας εντοπίζονται πριν οδηγηθούμε σε προβλήματα με το προϊόν Ευρωστία Μπορεί να συνεχισθεί η διαδικασία παρουσία μη αναμενομένων λαθών; Συντήρηση - διατήρηση Μπορεί η διαδικασία όπως αναπτύσσεται να ικανοποιήσει ανάγκες του οργανισμού; Ταχύτητα Πόσο γρήγορα το σύστημα μπορεί να αναπτυχθεί;

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

14 Μοντέλα Διαδικασιών Λογισμικού
Συνήθως οι απαιτήσεις δεν είναι ομαλές - δεν είναι πλήρεις Η διάκριση μεταξύ απαιτήσεων - σχεδιασμού και παραγωγής είναι πολύ θολή Δεν υπάρχει φυσική αναπαραγωγή του συστήματος για έλεγχο Η συντήρηση λογισμικού δε σημαίνει απλά αλλαγή κάποιου στοιχείου

15 Βασικά Μοντέλα Διαδικασίας Λογισμικού
The waterfall model Διαχωρισμός φάσεων απαιτήσεων και ανάπτυξης Evolutionary development Η εξειδίκευση και η ανάπτυξη γίνονται μαζί Formal transformation Ένα μαθηματικό συστηματικό μοντέλο μετατρέπεται σε υλοποίηση Reuse-based development Το σύστημα αναπτύσσεται από υπάρχοντα στοιχεία

16 Waterfall model

17 Φάσεις του Waterfall Model
Ορισμός και ανάλυση των απαιτήσεων Σχεδιασμός συστήματος και λογισμικού Υλοποίηση και έλεγχος Ολοκλήρωση και έλεγχος συστήματος Λειτουργία και συντήρηση Το πρόβλημα του μοντέλου είναι ότι είναι πολύ δύσκολο να συμπεριλάβουμε κάποια αλλαγή όταν έχουμε προχωρήσει την διαδικασία

18 Evolutionary development

19 Evolutionary development
Exploratory prototyping Ο στόχος είναι η εργασία με τους πελάτες για την δημιουργία ενός συστήματος από μία αρχική περιληπτική περιγραφή. Πρέπει να αρχίσει με ανάγκες που είναι καλά κατανοητές Throw-away prototyping Ο στόχος είναι να κατανοήσουμε τις απαιτήσεις του συστήματος. Δεν είναι ανάγκη να ξεκινήσουμε από καλά καθορισμένες ανάγκες.

20 Evolutionary development
Προβλήματα Έλλειψη παρακολούθησης της διαδικασίας Τα συστήματα συνήθως δεν είναι καλά δομημένα Απαιτούνται επιπλέον δεξιότητες (e.g. in languages for rapid prototyping) Εφαρμογή Σε μικρά - μεσαίου μεγέθους διαλογικά συστήματα Σε μέρη μεγάλων συστημάτων (π.χ. στην διεπαφή με τον χρήστη) Σε συστήματα μικρής διάρκειας ζωής

21 Διαχείριση Κινδύνου Ο υπεύθυνος εργασίας έχει σαν κύριο στόχο την ελαχιστοποίηση του κινδύνου αποτυχίας Ο κίνδυνος που υπάρχει σε μία δραστηριότητα είναι ένα μέτρο της αβεβαιότητας για την επιτυχία μίας δραστηριότητας Οι δραστηριότητες υψηλού ρίσκου δημιουργούν προβλήματα στο χρονοδιάγραμμα και το κόστος Ο κίνδυνος σχετίζεται με την ποσότητα και την ποιότητα της διαθέσιμης πληροφορίας. Όση λιγότερη πληροφορία είναι διαθέσιμη τόσο μεγαλύτερος ο κίνδυνος

22 Προβλήματα Κινδύνου σε Μοντέλα Διαδικασιών
Waterfall Υψηλός κίνδυνος για νέα συστήματα εξαιτίας των απαιτήσεων και σχεδιαστικών προβλημάτων Χαμηλός κίνδυνος για ανάπτυξη που έχει γίνει κατανοητή με χρήση οικείας τεχνολογίας Prototyping Χαμηλός κίνδυνος για νέες εφαρμογές διότι η περιγραφή και η ανάπτυξη γίνονται παράλληλα Υψηλός κίνδυνος διότι δεν είναι εύκολη η παρακολούθηση της διαδικασίας Transformational Υψηλός κίνδυνος από την ανάγκη για υψηλή τεχνολογία και εξειδίκευση προσωπικού

23 Υβριδικά Μοντέλα Διαδικασιών
Τα μεγάλα συστήματα συνήθως αποτελούνται από πολλά υποσυστήματα Δεν είναι απαραίτητο να χρησιμοποιηθεί το ίδιο μοντέλο για όλα τα υποσυστήματα Prototyping για υψηλού κινδύνου προδιαγραφές Waterfall model για καλά κατανοητή ανάπτυξη

24 Spiral model για την Διαδικασία Λογισμικού

25 Φάσεις του spiral model
Αναγνώριση Στόχων Γίνεται αναγνώριση στόχων για τις φάσεις του έργου Εκτίμηση και ελαχιστοποίηση κινδύνου Γίνεται αναγνώριση των κύριων κινδύνων, αναλύονται και αναζητείται πληροφορία για ελαχιστοποίηση του κινδύνου Ανάπτυξη και Αξιολόγηση Επιλέγεται το κατάλληλο μοντέλο για την επόμενη φάση της ανάπτυξης Σχεδιασμός Ελέγχεται το έργο και γίνεται σχεδιασμός για τον επόμενο φύρο του spiral

26 Πίνακας για ένα γύρο του spiral
Στόχοι Περιορισμοί Εναλλακτικές λύσεις Κίνδυνοι Επίλυση κινδύνων Αποτελέσματα Σχεδιασμός Απόφαση

27 Βελτίωση Ποιότητας Στόχοι Περιορισμοί Εναλλακτικά
Σημαντική βελτίωση της ποιότητας λογισμικού Περιορισμοί Χρονοδιάγραμμα τριών ετών Χωρίς επενδύσεις μεγάλου μεγέθους Χωρίς ουσιαστικές αλλαγές για την εταιρεία Εναλλακτικά Επαναχρησιμοποίηση υπάρχοντος λογισμικού Εισαγωγή τυπικών προδιαγραφών Επενδύσεις σε εργαλεία ελέγχου και αξιολόγησης

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

29 Αποτελέσματα Σχεδιασμός Δέσμευση
Η εμπειρία με formal methods είναι περιορισμένη - είναι πολύ δύσκολο να ποσοτικοποιήσουμε βελτιώσεις Περιορισμένη διαθέσιμη υποστήριξη για το σύστημα ανάπτυξης της εταιρείας Υπάρχουν διαθέσιμα επαναχρησιμοποιήσιμα στοιχεία, αλλά υπάρχει μόνο μικρή υποστήριξη Σχεδιασμός Αναζήτηση δυνατοτήτων επαναχρησιμοποίησης με μεγαλύτερη λεπτομέρεια Ανάπτυξη πρωτότυπων εργαλείων υποστήριξης Αναζήτηση τρόπου ελέγχου στοιχείων Δέσμευση Χρηματοδότηση φάσης μελέτης 18 μηνών

30 Κατάλογος Spiral Στόχοι Περιορισμοί Εναλλακτικές λύσεις
Παραγωγή καταλόγου στοιχείων λογισμικού Περιορισμοί Σε ένα έτος Πρέπει να υποστηρίζουν τα υπάρχοντα στοιχεία Κόστος λιγότερο από $100, 000 Εναλλακτικές λύσεις Προμήθεια υπάρχοντος λογισμικού για εξαγωγή πληροφοριών Προμήθεια βάσης δεδομένων και ανάπτυξη καταλόγου Ανάπτυξη καταλόγου ειδικής χρήσης

31 Κίνδυνοι Επίλυση κινδύνων
Πιθανό να είναι αδύνατο να προχωρήσουμε με τους περιορισμούς Μη κατάλληλη λειτουργικότητα καταλόγου Επίλυση κινδύνων Ανάπτυξη πρωτότυπου καταλόγου (με χρήση 4GL και υπάρχοντος DBMS) για ξεκαθάρισμα των απαιτήσεων Ανάθεση σε συμβούλους εκπόνησης έκθεσης για υπάρχουσα πληροφορία σε δυνατότητες συστημάτων ανάκτησης πληροφορίας Απάλειψη του χρονικού περιορισμού

32 Αποτελέσματα Σχεδιασμός Δέσμευση
Τα συστήματα ανάκτησης πληροφοριών δεν είναι εύελικτα. Οι απαιτήσεις των συστημάτων δεν μπορούν να επιλυθούν Το πρωτότυπο με χρήση DBMS μπορεί να βελτιωθεί για την ανάπτυξη του συστήματος Δεν είναι οικονομικά εφικτός ο κατάλογος ειδικής χρήσης Σχεδιασμός Ανάπτυξη καταλόγου με χρήση DBMS με βελτίωση του πρωτότυπου και βελτίωση της διεπαφής με τον χρήστη Δέσμευση Χρηματοδότηση 12 μηνών ανάπτυξης

33 Ευελιξία του Spiral model
Συστήματα που είναι κατανοητά (χαμηλό τεχνικό ρίσκο) - Waterfall model. Η φάση ανάλυσης κινδύνων είναι σχετικά φθηνή Σταθερές απαιτήσεις και τυπικές προδιαγραφές - η ασφάλεια είναι κρίσιμος παράγοντας Formal transformation model Υψηλός UI κίνδυνος, όχι πλήρεις προδιαγραφές - prototyping model Υβριδικά μοντέλα χρησιμοποιούνται για διαφορετικές φάσεις του έργου

34 Spiral model - πλεονεκτήματα
Εστιάζει στην επαναχρησιμοποίηση στοιχείων Εστιάζει στην έγκαιρη απομάκρυνση λαθών Θεωρεί μεγάλης προτεραιότητας τους στόχους ποιότητας Συνδυάζει ανάπτυξη και συντήρηση Παρέχει το πλαίσιο για ανάπτυξη υλικού / λογισμικού

35 Spiral model - Προβλήματα
Συνήθως όταν έχουμε κάποιο συμβόλαιο ανάπτυξης αυτό καθορίζει το μοντέλο και τα παραδοτέα Απαιτεί εμπειρία εκτίμησης κινδύνου Απαιτεί ανάλυση για γενική χρήση

36 Παρακολούθηση Διεργασίας
Δεν είναι εύκολο να πλησιάσει ο υπεύθυνος έργου συστήματα λογισμικού και απαιτούνται εκθέσεις για την αξιολόγηση της προόδου Αυτό όμως δημιουργεί προβλήματα Το χρονοδιάγραμμα παράδοσης των παραδοτέων δεν ταυτίζεται με τον χρόνο που απαιτείται για την ολοκλήρωση μίας δραστηριότητας Η ανάγκη για εκθέσεις περιορίζει την επαναληψιμότητα της διαδικασίας Ο χρόνος που απαιτείται για έλεγχο και αποδοχή των εκθέσεων είναι σημαντικός Το Waterfall model είναι το πλέον ευρέως χρησιμοποιούμενο μοντέλο

37 Waterfall model - Εκθέσεις

38 Μοντέλο Δυνατότητας Παρακολούθησης Διαδικασίας

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

40 Θέματα Ηθικής Εμπιστευτικότητα Ανταγωνιστικότητα Πνευματικά δικαιώματα
Λάθος χρήση των υπολογιστών

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

42 Κρίσιμα Σημεία Το waterfall model θεωρία κάθε δραστηριότητα της διαδικασίας ως διακριτή φάση Το Evolutionary development θεωρία ότι οι δραστηριότητες είναι ταυτόχρονες Το spiral process model καθοδηγείται από το ρίσκο που υπάρχει Η παρακολούθηση της διαδικασίας συνεπάγεται ότι υπάρχουν παραδοτέα από τις δραστηριότητες Οι μηχανικοί λογισμικού έχουν ευθύνες ηθικές, κοινωνικές και επαγγελματικές


Κατέβασμα ppt "Τεχνολογία Λογισμικού"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google