02β Μοντέλα και Μεθοδολογίες Ανάπτυξης Λογισμικού ·...
Transcript of 02β Μοντέλα και Μεθοδολογίες Ανάπτυξης Λογισμικού ·...
02β Μοντέλα και ΜεθοδολογίεςΑνάπτυξης Λογισμικού
Τεχνολογία Λογισμικού
Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών YπολογιστώνΕθνικό Μετσόβιο Πολυτεχνείο
Χειμερινό εξάμηνο 2017‐18
Δρ. Κώστας Σαΐδης ﴾[email protected]﴿
Κύκλος ζωής του λογισμικούΣυγκέντρωση, καταγραφή και ανάλυση απαιτήσεωνλογισμικού.
Σχεδιασμός λογισμικού.Υλοποίηση λογισμικού.Έλεγχος, επαλήθευση και επικύρωση λογισμικού.Εγκατάσταση, έλεγχος, παραμετροποίηση και ολοκλήρωσηλογισμικού στο παραγωγικό του περιβάλλον.
Συντήρηση και επέκταση λογισμικού.
2
Τρόπος εκτέλεσης των βημάτωνΑκολουθιακός/παράλληλοςΜια φορά/σε επαναλήψειςΣυχνότητα αλληλεπίδρασης με τους χρήστες
3
Πολλά μοντέλα & μεθοδολογίεςΜοντέλο καταρράκτηΑυξητικό μοντέλοΕπαναληπτικό μοντέλο
ΠρωτοτυποποίησηΣπειροειδές μοντέλοRational Unified ProcessΕυέλικτη διαδικασία ﴾agile﴿
ScrumDevOps
Extreme programming, test‐driven, behavior‐driven και model‐drivendevelopment σε επόμενη διάλεξη
4
Μοντέλο καταρράκτη
5
W.W. Royce, www‐scf.usc.edu/~csci201/lectures/Lecture11/royce1970.pdf
6
W.W. Royce, www‐scf.usc.edu/~csci201/lectures/Lecture11/royce1970.pdf
7
Winston W. Royce"Winston Walker Royce ﴾August 15, 1929 – June 7, 1995﴿ wasan American computer scientist, director at Lockheed SoftwareTechnology Center in Austin, Texas. He was a pioneer in thefield of software development, known for his 1970 paper fromwhich the Waterfall model for software development wasmistakenly drawn." ﴾Wikipedia﴿.
8
Λίστα αναγνωσμάτωνWinston. W. Royce, "Managing the development of large softwaresystems: concepts and techniques", Proceedings of the 9thInternational Conferense of Software Engineering, 1987, p. 328 ‐338.
Η πρώτη έκδοση του άρθρου ﴾1970﴿: www‐scf.usc.edu/~csci201/lectures/Lecture11/royce1970.pdf
9
Βασικά προβλήματα του μοντέλουκαταρράκτη
Δεν προσαρμόζεται στις αλλαγές των απαιτήσεων.Οι χρήστες συμμετέχουν μόνο στην αρχή ﴾απαιτήσεις﴿ καιστο τέλος ﴾λειτουργία﴿.
Δεν επαρκεί να επικοινωνεί το κάθε βήμα με τα γειτονικά τουμόνο
10
The required design changes are likely to be so disruptive thatthe software requirements upon which the design is basedand which provides the rationale for everything are violated.Either the requirements must be modified, or a substantialchange in the design is required. In effect the developmentprocess has returned to the origin and one can expect up to a100‐percent overrun in schedule and/or costs.
Winston W. Royce
11
Αυξητικό μοντέλοΓια σταθερές προδιαγραφές
12
RahulT, CC BY‐SA 3.0,https://commons.wikimedia.org/w/index.php?curid=27752117
13
Δεδομένων των προδιαγραφώνΕπιμερισμός της συνολικής εργασίας σε μικρότερεςΚάθε έκδοση επαυξάνει την προηγούμενη ﴾με νέεςλειτουργίες και χαρακτηριστικά﴿
Κάθε έκδοση είναι λειτουργικήΜικρή ευελιξία στις αλλαγές των απαιτήσεων
Στην πράξη, με αυτόν τον τρόπο γίνεται η "διάθεση" ﴾release﴿ τουλογισμικού: μετάβαση από τις εκδόσεις ελέχγου ﴾π.χ. ALPHA, BETA,RELEASE CANDIDATE﴿ στην τελική ﴾περισσότερα στα περί εκδόσεων﴿
14
Επαναληπτικό/εξελικτικό μοντέλο
15
16
ΧαρακτηριστικάΕπαναλαμβανόμενοι κύκλοι ﴾iterations﴿ σε μικρά χρονικάδιαστήματαΜε συχνές διαδράσεις με το χρήστηΠαρόμοια με προηγουμένως, έχουμε πολλές εκδόσειςΟι οποίες, όμως, υλοποιούν νέες απαιτήσεις καθώςπροκύπτουν/εξελίσσονται
Όσες θα δούμε παρακάτω βασίζονται σε αυτήν την προσέγγιση
17
Διαδικασία πρωτοτυποίησης﴾Prototyping, Rapid Application Development﴿
18
Είναι μια επαναληπτική διαδικασία1 Ανάλυση απαιτήσεων2 Ανάπτυξη πρωτοτύπου ﴾prototype﴿3 Αποτίμηση4 Βελτίωση5 Επανάληψη
19
Πρωτότυπα ﴾prototypes﴿Ενδείκνυται η ανάπτυξή τους σε εφαρμογές που έχουνχρηστικές διεπαφέςΔεν ενδείκνυται σε εφαρμογές με απαιτητικούς υπολογισμούςή εργασίες δέσμης
20
Οριζόντια πρωτότυπαΈμφαση στη διεπαφή με το χρήστη, παρά στη χαμηλούεπιπέδου λειτουργικότητα
Συνήθως UI prototypes ﴾wireframes﴿Επιβεβαίωση χρηστικών απαιτήσεωνΔοκιμαστικές εκδόσεις για την προσέγγιση χρηστών﴾πελατών ή επενδυτών, π.χ. MVP: minimum viable product﴿Βοηθούν στην εκτίμηση κόστους / χρόνου
21
Κάθετα πρωτότυπαΑπόκτηση λεπτομερών απαιτήσεων για μια συγκεκριμένηλειτουργίαΣυγκέντρωση πληροφοριών για τη συμπεριφορά τουσυστήματος σε συγκεκριμένο περιβάλλον ﴾π.χ. όγκοςδεδομένων, ταχύτητα δικτύου, μετρήσεις απόδοσης, κλπ.﴿
Αποκρυστάλλωση των απαιτήσεων για σύνθετες λειτουργίες
22
Rapid ﴾throw‐away﴿ prototypingΣκιαγράφηση απαιτήσεωνΣχεδιασμός πρωτοτύπουΧρηστική εμπειρία του, νέες απαιτήσεις
Επανάληψη, αν χρειάζεταιΚαθορισμός των τελικών απαιτήσεων ﴾τέλος ζωήςπρωτοτύπου﴿
23
Evolutionary prototypingΧτίσιμο ενός στιβαρού πρωτοτύπου, που μέσω συνεχώςεπεκτάσεων και βελτιώσεων, θα αποτελέσει το τελικόσύστημαΥλοποίηση των απόλυτα κατανοητών απαιτήσεων ανάχρονική στιγμήΑποτίμηση από χρήστεςΠαράλληλη ανάπτυξη των επιμέρους συστατικών τουσυστήματος με την ίδια λογική
24
Πλεονεκτήματα πρωτοτυποποίησηςΜείωση χρόνου και κόστουςΑνάμειξη των χρηστών
25
Πιθανά προβλήματαΕλλιπής ανάλυσηΣύγχυση χρηστώνΣύγχυση προγραμματιστών
26
Να είναι σαφής εξαρχής ο ρόλος τουπρωτοτύπου στο έργο
Προς όλους: χρήστες και προγραμματιστές
Throw‐away vs. evolutionary
27
Ακραία πρωτοτυποποίησηΧρησιμοποιείται συχνά για την ανάπτυξη διαδικτυακώνεφαρμογών
1. Παραγωγή στατικών σχεδίων/σελίδων2. Προγραμματισμός λειτουργικών σελίδων με χρήση
"εξομοίωσης" των back‐end υπηρεσιών
3. Υλοποίηση των back‐end υπηρεσιών
28
Σπειροειδές μοντέλο
29
30
Τέσσερα επαναληπτικά βήματα1. Καθορισμός στόχων2. Αναγνώριση και αντιμετώπιση ρίσκου3. Ανάπτυξη, έλεγχος, επαλήθευση4. Σχεδιασμός επόμενης επανάληψης
31
Παρόμοιο με το μοντέλο πρωτοτυποποίησης, όπου στηναρχή κάθε επανάληψης γίνεται έλεγχος σκοπιμότητας καιανάλυση ρίσκουΚατάλληλο για πολύ μεγάλα έργα ﴾μεγάλο κόστοςδιαχείρισης﴿
32
Rational Unified Process ﴾RUP﴿
33
ΧαρακτηριστικάΕξελικτικό μοντέλο με ανάδρασηΚαθοδηγείται από μελέτες χρήσης ﴾use cases﴿Είναι επικεντρωμένο στην αρχιτεκτονικήΧρησιμοποιεί την UML σαν γλώσσα μοντελοποίησης
34
Δομικά στοιχείαΡόλοι ﴾ποιος﴿ ‐ Δικαιοδοσίες και ικανότητεςΑποτελέσματα ﴾τι﴿ ‐ Ένα παραγόμενο από το έργοαποτέλεσμαΕνέργειες ﴾πώς﴿ ‐ Μια ενότητα εργασίας που έχει ανατεθεί σεκάποιο ρόλο
35
6 βασικές αρχέςBusiness modeling
RequirementsAnalysis and designImplementationTesting
Deployment
36
3 βοηθητικές αρχέςConfiguration & change managementProject managementEnvironment management and setup
37
4 φάσειςInception: Ορισμός και έκταση του έργουElaboration: Κατάστρωση μεθόδου υλοποίησης του έργου,μοντελοποίηση χαρακτηριστικών του έργου, ορισμός τηςαρχιτεκτονικής του συστήματος
Construction: Υλοποίηση του έργουTransition: Εγκατάσταση κι ολοκλήρωση του συστήματος στολειτουργικό του περιβάλλον
38
39
Ευέλικτο ﴾agile﴿ μοντέλο
40
ΑρχέςΠολυ‐λειτουργικές και αυτο‐διοικούμενες ομάδες ﴾self‐organizing & cross‐functional﴿.Προσαρμοστικός σχεδιασμός, εξελικτική ανάπτυξη, ταχείαπαράδοση και συνεχής βελτίωση.
Ταχεία και ευέλικτη προσαρμογή στις αλλαγές.Manifesto for Agile Software Development ‐http://agilemanifesto.org/
41
42
12 Αρχές1. Customer satisfaction by early and continuous delivery of
valuable software2. Welcome changing requirements, even in late development
3. Working software is delivered frequently ﴾weeks rather thanmonths﴿
4. Close, daily cooperation between business people anddevelopers
43
5. Projects are built around motivated individuals, who should betrusted
6. Face‐to‐face conversation is the best form of communication﴾co‐location﴿
7. Working software is the primary measure of progress8. Sustainable development, able to maintain a constant pace
44
9. Continuous attention to technical excellence and good design10. Simplicity—the art of maximizing the amount of work not
done—is essential11. Best architectures, requirements, and designs emerge from
self‐organizing teams12. Regularly, the team reflects on how to become more effective,
and adjusts accordingly
45
Scrum
By PierreSelim ‐ Own work, CC BY‐SA 3.0,https://commons.wikimedia.org/w/index.php?curid=17336884
46
ScrumΜικρή ομάδαΠολυ‐λειτουργική / πολυμορφικήΑυτο‐οργάνωσηΣτον ίδιο χώρο
47
ΑξίεςΑφοσίωση
ΘάρροςΣυγκέντρωσηΑνοικτότητα ‐ διαφάνειαΣεβασμός
48
ΡόλοιProduct owner
Έμφαση στη business πλευράDevelopment team
Αυτο‐οργάνωση ﴾pull και όχι push﴿
Scrum masterΌχι manager
49
Έννοιες και διαδικασίεςUser stories ﴾Epics & issues﴿Product backlogSprint ﴾iteration﴿Sprint backlog
50
Sprint backlogProduct backlog TODO Doing Done
User Story A #1 #2 #3
Story B #4 #6 #5
Story C
Story D
Story E
Story F
51
DevOps
Development + Operations
52
By Devops.png: Rajiv.Pant derivative work: Wylve ‐ This file wasderived from Devops.png:, CC BY 3.0,https://commons.wikimedia.org/w/index.php?curid=20202905 53
ΧαρακτηριστικάΑυτοματισμός και παρακολούθηση των ﴾"τελικών" κυρίως﴿βημάτων ανάπτυξης λογισμικού:
from integration, testing, releasing to deployment andinfrastructure management.
Στόχοι: μικρότεροι κύκλοι ανάπτυξης, συχνότερεςεγκαταστάσεις ﴾deployments﴿, πιο αξιόπιστες εκδόσεις﴾releases﴿, καλύτερη ευθυγράμμιση με τις επιδιώξεις τουοργανισμού ﴾business goals﴿.
54
DevOps toolchain1. Code2. Build
3. Test4. Package5. Release6. Configure
7. Monitor
55
By Kharnagy ‐ Own work, CC BY‐SA 4.0,https://commons.wikimedia.org/w/index.php?curid=51215412
56