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

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

1 HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.

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


Παρουσίαση με θέμα: "1 HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π."— Μεταγράφημα παρουσίασης:

1 1 HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π

2 2 Εισαγωγή – Καλωσόρισμα Σας εύχομαι Καλή αρχή στο μάθημα Τεχνολογία Λογισμικού και Καλή επιτυχία Η Τεχνολογία Λογισμικού είναι ένα μάθημα που θέλει δουλειά, αλλά παράλληλα προσφέρει πολλές και πρακτικές γνώσεις σε μια περιοχή που στην εποχή μας έχει μεγάλη επίδραση σε πολλούς τομείς της καθημερινής ζωής μας Ο σκοπός του μαθήματος είναι –Να κατανοήσουμε τις βασικές αρχές προδιαγραφής, σχεδίασης, υλοποίησης, ελέγχου, και συντήρησης συστημάτων λογισμικού –Να εφαρμόσουμε αυτές τις αρχές μέσα από εργαστηριακές ασκήσεις

3 3 Στοιχεία Επικοινωνίας Κώστας Κοντογιάννης –Ηλ. Ταχυδρ: –Tηλ. (210) –Ωρες Γραφείου: Τετάρτη 10:00π.μ – 12:00μμ

4 4 Σύγγραμμα “Λογισμική Μηχανική (Software Engineering)” Εμμανουήλ Στ. Σκορδαλάκη Αθήνα 2006

5 5 Κεντρική Ιστοσελίδα του Μαθήματος Εκεί θα βρείτε συνδέσμους προς: –το περιβάλλον ηλεκτρονικής μάθησης Moodle ( https://moodle.softlab.ntua.gr/) –περιφερειακές σελίδες με τις διαλέξεις σε ηλεκτρονική μορφή –την περιγραφή των εργαστηριακών ασκήσεων –ιστοσελίδες σχετικές με θέματα τεχνολογίας λογισμικού από τον παγκόσμιο ιστό

6 6 Εργαστηριακή Άσκηση Σχεδίαση και υλοποίηση μιας VoIP τηλεφωνικής εφαρμογής που βασιζεται στο πρωτόκολλο SIP Ομάδες των 4 ατόμων 30% του τελικού βαθμού Τρία παραδοτέα: –Προδιαγραφές Απαιτήσεων Χρήστη –Προδιαγραφές Σχεδίασης –Υλοποίηση

7 7 Τα Επόμενα Βήματα Γραφτείτε στο Moodle Επισκεφθείτε την ιστοσελίδα του μαθήματος (από την Παρασκευή και μετά) Γραφτείτε στην Εργαστηριακή Άσκηση

8 8 Δομή της Ύλης του Μαθήματος Ενότητα 1: Βασικές Αρχές Τεχνολογίας Λογισμικού Ενότητα 2: Διαδικαστικά Μοντέλα και Κύκλος Ζωής Λογισμικού Ενότητα 3: Ενοποιημένη Γλώσσα Μοντελοποίησης (UML) Ενότητα 4: Στοιχεία Αρχιτεκτονικής Συστημάτων Λογισμικού Ενότητα 5: Σχεδιαστικά Πρότυπα Ενότητα 6: Έλεγχος και Αξιοπιστία Συστημάτων Λογισμικού Ενότητα 7: Αρχές Οργάνωσης και Διαχείρισης Έργων Λογισμικού

9 9 Τι Είναι Τεχνολογία Λογισμικού ? Τομέας που πραγματεύεται τεχνικές, μεθοδολογίες, πρακτικές και εργαλεία για την συστηματική, μεθοδική και ποσοτικοποιημένη προδιαγραφή, σχεδίαση, υλοποίηση, έλεγχο, και συντήρηση συστημάτων λογισμικού υψηλής ποιότητας και εντός δεδομένου προϋπολογισμού και χρόνου εκτέλεσης [IEEE Standard ]

10 10 Τεχνική – Μεθοδολογία – Εργαλεία Τεχνική (methods): –Φορμαλιστικές διαδικασίες για την επίλυση προβλημάτων με τη χρήση καλώς ορισμένων συστημάτων παρουσίασης και κωδικοποίησης Μεθοδολογία: –Συλλογή από τεχνικές που εφαρμόζονται επιλεκτικά κατά την διάρκεια όλων των φάσεων ενός έργου και συνδυάζονται σύμφωνα με κάποια γενική πρακτική και πλάνο Εργαλεία: –Αυτοματοποιημένα συστήματα που διεκπεραιώνουν μια τεχνική

11 11 Διακριτοί και Συμπληρωματικοί Ρόλοι Επιστήμων Υπολογιστών –Έχει σαν σκοπό την απόδειξη θεωρημάτων και χαρακτηριστικών αλγορίθμων, την σχεδίαση νέων γλωσσών προγραμματισμού, να ορίσει νέες τεχνικές και σχήματα παρουσίασης πληροφοριών κλπ. –Έχει συνήθως απεριόριστο χρόνο στη διάθεση του/της… Μηχανικός –Σχεδιάζει μια λύση για κάποιο συγκεκριμένο πρόβλημα και περιοχή εφαρμογής –Χρησιμοποιεί υπολογιστές, γλώσσες, τεχνικές, μεθοδολογίες και, εργαλεία Μηχανικός Λογισμικού –Συνήθως δουλεύει για την σχεδίαση λύσεων σε διαφορετικές περιοχές εφαρμογής –Έχει στη διάθεσή του/της 3 μήνες για την σχεδίαση της λύσης... –…ενώ παράλληλα οι απαιτήσεις του χρήστη και η διαθέσιμη τεχνολογία συνεχώς αλλάζουν

12 12 Διαδρομές Κατασκευής Λογισμικού εύρεση υβριδικής λύσης εύρεση τεχνολογικής λύσης εύρεση θεωρητικής λύσης δεδομενικό κομμάτι θεωρητικής λύσης ανάγκες/ πρόβλημα λογισμικό σύστημα λογισμικός μηχανικός λογισμικός μηχανικός επιστήμων

13 13 Προγραμματισμός σε Σχέση με την Τεχνολογία Λογισμικού Περιορισμένου όγκου έργα Υλοποιημένα από μικρές ομάδες Με απλές λειτουργικές και μη απαιτήσεις Για μια συγκεκριμένη εφαρμογή Με απλές αλλαγές Χρησιμοποιούνται για σχετικά σύντομο διάστημα Έχουν μικρό σχετικά κόστος Έχουν μικρό σχετικά αντίκτυπο Μεγάλου όγκου έργα Υλοποιημένα από πολλές ομάδες Με πολύπλοκες απαιτήσεις Οικογένειες εφαρμογών Με πολλές παράλληλες αλλαγές Χρησιμοποιούνται για πολλά χρόνια Έχουν μεγάλο κόστος Έχουν μεγάλο αντίκτυπο ProgrammingEngineering

14 14 Τεχνολογία Λογισμικού Δι-επιστηµονική περιοχή –Επιστήμης υπολογιστών (προγραμματισμός, αλγόριθμοί) –Υλικού (hardware) –Τεχνολογίες διαχείρισης πληροφοριών (βάσεις δεδομένων, οργάνωση προσπέλασης και χρήση δεδομένων) –Περιβάλλοντα δι-επαφής με τον χρήστη (user interfaces, εργονομία) –Κανονισμοί λειτουργίας, νομικές διαστάσεις Πεδίο επιχειρηµατικής δραστηριότητας –Ανταγωνισµός –Κόστος παραγωγής –Τεχνογνωσία

15 15 Κατηγοριοποίηση Λογισμικού Λογισμικό (software) λογισμικό υποδομής (infrastructure software) λογισμικό εφαρμογής (application software) λογισμικά εργαλεία (software tools) βασισμικό (baseware) μεσισμικό (middleware)

16 16 Οι Λογισμικές εργασίες κατά το ΙΕΕΕ Std 1074

17 17 Κύκλος Ζωής Λογισμικού Φάση Προδιαγραφής Λειτουργικών και Μη- Λειτουργικών Απαιτήσεων Φάση Ανάλυσης Φάση Σχεδίασης Φάση Υλοποίησης Φάση Ελέγχου και Πιστοποίησης Φάση Ενοποίησης και Εγκατάστασης Φάση Συντήρησης Φάση Αποχώρησης

18 18 Μέση Κατανομή Κόστους Object-Oriented and Classical Software Engineer 5th Edition, Schach (2002)

19 19 Φάσεις Κύκλου Ζωής Υπο- συστήματα Δομούνται με class... Πηγαίος Κώδικας Υλοποιούνται από Αντικείμενα Πεδίου Λύσης Πραγματοποιούνται με Αρχιτεκτονική Συστήματος Σχεδίαση Συστήματος ΥλοποίησηΈλεγχος Αντικείμενα Πεδίου Εφαρμογής Εκφράζονται από Περιπτώσεις Ελέγχου ? Επαληθεύονται με class.... ? Προδιαγραφές Απαιτήσεων Μοντέλα Χρήσης Ανάλυση...και τα Μοντέλα τους

20 20 Μοντέλα Κύκλου Ζωής Οι φάσεις του κύκλου ζωής είναι διαδικασίες που εφαρμόζονται –Είτε παράλληλα –Είτε με κάποια συγκεκριμένη σειρά Η εφαρμογή αυτών των διαδικασιών ορίζεται –Από κάποιο συγκεκριμένο μοντέλο και από το πλαίσιο (context) του έργου

21 21 Διαδικασία και Προϊόν Μοντέλο Κ. Ζ Έργο Προϊόν Μηχανικοί / Χρήστες Εργαλεία Πρότυπο Συμμετέχοντες Αποτέλεσμα Αυτοματισμός

22 22 Μοντέλα Κύκλου Ζωής Το µοντέλο του καταρράκτη (waterfall model) Το µοντέλο πρωτοτυποποίησης (rapid prototyping) Το µοντέλο λειτουργικής επαύξησης (incremental model) Το σπειροειδές µοντέλο (spiral model) Το ενοποιημένο μοντέλο (unified model)

23 23 Ένα Απλό Σειριακό Μοντέλο Κύκλου Ζωής

24 24 Μοντέλο Καταρράκτη (Waterfall) Χαρακτηρίζεται από –Σειριακά βήματα (phases) –Ανάδραση ανάμεσα σε δύο γειτονικά βήματα –Βασίζεται στην δημιουργία προδιαγραφών σε κάθε βήμα Προτερήματα –Παραγωγή προδιαγραφών –Διευκολύνει την συντήρηση Μειονεκτήματα –Προδιαγραφές που δεν μπορούν να αλλάξουν στη πορεία δεν είναι ρεαλιστική παραδοχή –Ο Χρήστης συμμετέχει μόνο στην αρχή –Σειριακή και πλήρης ολοκλήρωση κάθε βήματος δεν είναι πάντα ενδεδειγμένη –Η διαδικασία είναι δύσκολο να ελεγχθεί –Ό χρήστης βλέπει το προϊόν πολύ αργά στη διάρκεια της διαδικασίας

25 25 Μοντέλο Πρωτοτυποποίησης Σχεδίαση πρωτότυπου ακολουθούμενου από το μοντέλο Καταρράκτη –Το πρωτότυπο δεν είναι το προϊόν –Η Πρωτοτυποποίηση δεν πρέπει να είναι μέρος της σχεδίασης αλλά μόνο της συλλογής απαιτήσεων Προτερήματα –Καλύτερη προδιαγραφή απαιτήσεων –Καλύτερη μελέτη σκοπιμότητας –Ο χρήστης συμμετέχει ενεργά στη διαδικασία συλλογής / μοντελοποίησης απαιτήσεων Μειονεκτήματα –Περισσότερη εργασία απαιτείται για την παραγωγή του πρωτότυπου –Λόγω χρονικών περιορισμών το πρωτότυπο γίνεται μέρος του συστήματος

26 26 Αυξητικό Μοντέλο ΣχεδίασηΥλοποίησηΈλεγχοςΕγκατάστασηΣχεδίασηΥλοποίησηΈλεγχοςΕγκατάστασηΣχεδίασηΥλοποίησηΈλεγχοςΕγκατάσταση Απαιτήσεις Έκδοση (Release) 1 Έκδοση 2 Έκδοση 3 Σε κάθε έκδοση προσθέτουμε και νέες λειτουργίες / ποιοτικά χαρακτηριστικά από ένα προκαθορισμένο σύνολο απαιτήσεων Προτερήματα - Σε κάθε έκδοση έχουμε ένα σύστημα σε λειτουργία - Καλύτερη διανομή κόστους στο χρόνο Μειονεκτήματα - Οι απαιτήσεις δεν πρέπει να αλλάζουν

27 27 Εξελικτικό Μοντέλο DesignCodingTestDeploymentRequirementsDesignCodingTestDeploymentRequirementsDesignCodingTestDeploymentRequirements Feedback Έκδοση (Version) 1 Έκδοση (Version) 2 Έκδοση (Version) 3 Νέες εκδόσεις υλοποιούν νέες απαιτήσεις που εξελίσσονται όσο το σύστημα υλοποιείται Προτερήματα - Συνεχής συμμετοχή του χρήστη - Καλή διαχείριση κρίσης Μειονεκτήματα - Μπορεί να γίνει ράβε – ξήλωνε τύπος μοντέλου

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

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

30 30 Γενικά Σχόλια για Μοντέλα Κύκλου Ζωής Μοντέλο Καταρράκτη –Υψηλού ρίσκου για νέα συστήματα λόγω της δυσκολίας συγκέντρωσης νέων και άγνωστων μέχρι τώρα απαιτήσεων και σχεδιαστικών προβλημάτων –Χαμηλού ρίσκου μοντέλο για έργα που χρησιμοποιούν γνωστές τεχνολογίες και έργα που έχουν κατανοηθεί καλά (ή παρόμοιά τους έχουν υλοποιηθεί στο παρελθόν) Μοντέλο Προτωτυποποίησης –Χαμηλού ρίσκου για νέες και σχετικά άγνωστες εφαρμογές διότι οι συλλογή των απαιτήσεων και η διαδικασία προτοτυποποίησης συμβαδίζουν –Υψηλού ρίσκου διότι απαιτεί ξεχωριστούς πόρους για τη σχεδίαση των πρωτότυπων Εξελικτικό και Σπειροειδές –Μέση λύση ανάμεσα στο μοντέλο καταρράκτη και πρωτοτυποίησης

31 31 Εξελικτικά Μοντέλα του Σήμερα Ενοποιημένο Μοντέλο Rational Unified Process (RUP) Μοντέλο Extreme Programming (XP)

32 32 Κύρια Χαρακτηριστικά RUP Εξελικτικό μοντέλο με ανάδραση Καθοδηγείται από μελέτες χρήσης (use cases) Είναι αρχιτεκτονικο-κεντρικό μοντέλο (4+1 άποψεις – views) Χρησιμοποιεί την UML σαν γλώσσα μοντελοποίησης Πλούσιο πλαίσιο υποστήριξης της διαδικασίας

33 33 Ενοποιημένο Μοντέλο RUP - Έννοιες Worker (κατασκευαστής) –Ενα άτοµο ή µία οµάδαατόµων µε συγκεκριµένο ρόλο στην ανάπτυξη λογισµικού Δραστηριότητα(activity) –Μια συγκεκριµένη εργασία που εκτελείται κατά την ανάπτυξη λογισµικού Συστατικό στοιχείο λογισµικού (artifact) –Ενα αποτέλεσµα της εκτέλεσης µιας εργασίας Ροή εργασιών (workflow) –Μια αλληλουχία δραστηριοτήτων

34 34 Ενοποιημένο Μοντέλο RUP Έννοιες Βασικές ροές: –Μοντελοποίηση επιχειρησιακού περιβάλλοντος (Business Modeling) –Συγγραφή προδιαγραφών (Requirements) –Ανάλυση και σχεδίαση (Architecture and Design) –Υλοποίηση (Implementation) –Ελεγχος (Test) –Εγκατάσταση (Deployment) Φάσεις: –Έναρξη (Inception) –Επεξεργασία (Elaboration) –Κατασκευή (Construction) –Μετάβαση (Transition) Ροές υποστήριξης: –Διοίκηση σχηµατισµών λογισµικού (Configuration Management) –Διοίκηση έργου (Project Management) –Διαχείριση περιβάλλοντος ανάπτυξης (Development Environment Management)

35 35 InceptionElaborationConstructionTransition RUP Φάσεις Tο μοντέλο RUP έχει τέσσερις φάσεις στο χρόνο: –Έναρξη (Inception) – Ορισμός του έργου και της έκτασής του –Επεξεργασία (Elaboration) – Κατάστρωση μεθόδου υλοποίησης του έργου, μοντελοποίηση χαρακτηριστικών του έργου, ορισμός της αρχιτεκτονικής του συστήματος –Κατασκευή (Construction) – Υλοποίηση του έργου –Μετάβαση (Transition) – Ανάπτυξη του συστήματος στο περιβάλλον χρήσης του time

36 36 RUP Overview Management Environment Business Modeling Implementation Test Architecture & Design Preliminary Iteration(s) Iter. #1 Phases Process Workflows Iterations Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements ElaborationTransitionInceptionConstruction Workflows group activities logically In an iteration, you walk through all workflows

37 37 Σύνοψη του Μοντέλου XP Χαρακτηριστικά Εξελικτική μέθοδος υλοποίησης Συλλογή από “12 Καλύτερες Πρακτικές“ Εστιάζει σε κώδικα που είναι πάντα λειτουργικός και υλοποιεί συγκεκριμένες απαιτήσεις και ανάγκες του χρήστη Ο συνεχής έλεγχος του κώδικα είναι σημαντικό συστατικό της διαδικασίας Εστιάζει στην ευλυγισία και λειτουργικότητα της διαδικασίας Υλοποιείται συνήθως από μικρές ομάδες (<10) Write tests Planning Test Pair Programming + Refactoring Integration Κάθε ημέρα Κάθε 2-3 εβδομάδες Release

38 38 Άλλα Μοντέλα Άλλα Μοντέλα που σχετίζονται με τα Μοντέλα Κύκλου Ζωής και την Αναμενόμενη Ποιότητα Λογισμικού είναι: –ISO 9000: Aαφορά στην εξασφάλιση της ποιότητας προϊόντων και υπηρεσιών. –Capability Maturity Model: Αφορά στη σύνδεση της διαδικασίας με την αναμενόμενη ποιότητα του προϊόντος

39 39 Μοντέλο Επίπεδων Ωριμότητας Capability Maturity Model

40 40 Πρότυπα (Standards) Λογισμικού


Κατέβασμα ppt "1 HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π."

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


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