Βασικές Αρχές της Τεχνολογία Λογισμικού. Στάδια του Κύκλου Ζωής Λογισμικού

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

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

Η εκπαίδευση στην Πληροφορική ως μοχλός ανάπτυξης της καινοτομίας

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

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

ΕλεγχοΣ, Αξιοπιστία και Διασφάλιση Ποιότητασ Λογισµικού Πολυπλοκότητα

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

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

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

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

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

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

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

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

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

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

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

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

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

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

. Μεθοδολογία Προγραμματισμού. Εισαγωγή. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

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

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

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

Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού

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

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

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

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

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

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

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

Διαχείριση Έργου Λογισμικού. Πασχαλίδης Παύλος ΤΕΙ ΘΕΣΣΑΛΙΑΣ

Συστήµατα Τηλεκπαίδευσης: Κύκλος ζωής εκπαιδευτικού υλικού

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

Εισαγωγή στην Τεχνολογία Λογισμικού. Ματίνα Μπίμπη Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων, Πανεπιστήμιο Θεσσαλίας

Διαχείριση Έργων Ανάπτυξης Πληροφοριακών Συστημάτων

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

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

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

Managing Information. Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business.

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

Ως ανάπτυξη προϊόντος ορίζεται όλο το σύνολο των δραστηριοτήτων από την έρευνα αγοράς, µέχρι την παράδοσή του στον πελάτη.

Διάλεξη 1. Εισαγωγή στην Τεχνολογία Λογισμικού. Χ. Αντωνόπουλος Μ. Μπίμπη

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 4 : Τεχνολογία λογισμικού. Δρ.

Future vs Imagination η νέα τάξη πραγμάτων είναι σίγουρα «δικτυωμένη»

Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

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

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

ΚΕΦΑΛΑΙΟ 2 ΜΟΝΤΕΛΑ ΚΥΚΛΟΥ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ. Σκοπός. Έννοιες-κλειδιά

Προγραµµατισµός Συστηµάτων Πραγµατικού Χρόνου

ΓΙΑ ΜΙΑ ΑΝΟΙKΤΗ ΕΠΙΧΕΙΡΗΣΗ. mobile CRM ΔΩΣΤΕ ΝΕΑ ΠΝΟΗ ΣΤΙΣ ΣΧΕΣΕΙΣ ΜΕ ΤΟΥΣ ΠΕΛΑΤΕΣ ΣΑΣ

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

Βασικά Στοιχεία Διαχείρισης Έργων

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Αποτελείται από τρεις (3) τόμους. Τόμος Α : Τεχνολογία Λογισμικού Ι Τόμος Β : Βάσεις Δεδομένων και Τόμος Γ : Λειτουργικά Συστήματα Ι.

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

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

Απαιτήσεις Λογισμικού

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

Εισαγωγή στα Πληροφοριακά Συστήματα

Τεχνολογία λογισμικού στην πράξη

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ & ΕΠΙΧΕΙΡΗΣΕΩΝ

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΜΑΤΟΣ. Ευέλικτες μέθοδοι στη διοίκηση έργων ΠΙΣΤΩΤΙΚΕΣ ΜΟΝΑΔΕΣ: 8 ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ (ΑΝΑ ΕΒΔΟΜΑΔΑ):

Κεφάλαιο 7: Τεχνολογία Λογισμικού

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 11: Αρχιτεκτονική Cloud

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ενότητα 1 η : Ανάπτυξη Λογισμικού & Προγραμματισμός

Βασικά Στοιχεία Διαχείρισης Έργων

Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S.

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

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

Ανοικτά Ακαδηµα κά Μαθήµατα

Σεμινάριο Τελειοφοίτων

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Σχεδιαστικά Προγράμματα Επίπλου

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

U T C C R E A T I V E L A B. Σύμβουλοι Καινοτομικής Επιχειρηματικότητας

Cloud ERP. Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας

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

Λύσεις διαχείρισης υπολογιστών-πελατών και λύσεις εκτύπωσης Universal Printing Solutions

Τεχνολογία λογισμικού στην πράξη

Παρουσίαση: Ανθρωποκεντρικός σχεδιασμός πολυμέσων ΜΙΚΡΟΠΟΥΛΟΥ ΕΥΓΕΝΙΑ ΓΤΠ61

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ & ΕΠΙΧΕΙΡΗΣΕΩΝ

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Προδιαγραφές Απαιτήσεων Επικύρωση Απαιτήσεων

τι σημαίνει ΚΑΡΙΕΡΑ ΣΤΙΣ ΔΗΜΟΣΙΕΣ ΣΧΕΣΕΙΣ; Έλια Λιατάκη Διευθύνουσα Σύμβουλος

Ποιότητα Λογισμικού και Πιστοποίηση

Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων

Πληροφορική ΙΙ ΚΥΚΛΟΣ ΖΩΗΣ ΕΡΓΟΥ ΑΝΑΠΤΥΞΗΣ ΠΣ. Δρ. Β. Βασιλειάδης ΔΙΚΣΕΟ, ΑΤΕΙ Μεσολογγίου

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

Transcript:

Βασικές Αρχές της Τεχνολογία Λογισμικού Στάδια του Κύκλου Ζωής Λογισμικού Βασίλης X. Γερογιάννης Διπλ. Μηχανικός Η/Υ & Πληροφορικής, Δρ. Πληροφορικής Αναπληρωτής Καθηγητής ΤΕΙ Θεσσαλίας E-mail: gerogian@teilar.gr Web site: http://de.teilar.gr/main.aspx?category=174&uiculture=el-gr

Τι είναι Λογισμικό; Προγράμματα Ηλεκτρονικού Υπολογιστή Δομές δεδομένων με μόνιμη ή προσωρινή αποθήκευση Τεκμηρίωση σχετικά με τα παραπάνω

Συστατικά Λογισμικού Software Components / Elements / Artifacts είναι ΌΛΑ τα παρακάτω: Πηγαίος Κώδικας Εκτελέσιμος Κώδικας Απαιτήσεις, Προδιαγραφές, Εκθέσεις, Αναφορές, Κείμενα (γενικά) Σχέδια Μοντέλα (Διαγράμματα) κά

Κατηγορίες Λογισμικού Λογισµικό Συστήµατος UNIX DOS Windows Λογισµικό βιοµηχανικών Συστημάτων Λογισµικό Εφαρµογών επιχειρηµατικές εφαρµογές επιστηµονικές εφαρµογές εκπαιδευτικές εφαρµογές εργαλεία σχεδίασης - ανάπτυξης εφαρµογές ψυχαγωγίας

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

Το Λογισμικό στο Περιβάλλον του

Χαρακτηριστικά Προϊόντων Λογισμικού (1/2) Ορθότητα (Correctness) Ένα πρόγραμμα είναι λειτουργικά ορθό όταν συμπεριφέρεται σύμφωνα με τις καταγεγραμμένες λειτουργικές απαιτήσεις. Αξιοπιστία (Reliability) Το λογισμικό θα πρέπει να μην προκαλεί φυσική ή οικονομική καταστροφή στην περίπτωση λάθους. (Η πιθανότητα το λογισμικό να συμπεριφέρεται σωστά σε ένα συγκεκριμένο χρονικό διάστημα) Αποδοτικότητα (Performance) Το πρόγραμμα δεν θα πρέπει να κάνει αλόγιστη χρήση των πόρων του συστήματος Ευχρηστία (Usability) Το πρόγραμμα θα πρέπει να έχει ένα εύχρηστο περιβάλλον επικοινωνίας με το χρήστη και κατάλληλη τεκμηρίωση

Χαρακτηριστικά Προϊόντων Λογισμικού (2/2) Ευελιξία Συντηρησιμότητα (Maintainability) Σε περίπτωση αλλαγής των απαιτήσεων ένα πρόγραμμα θα πρέπει να μπορεί να εξελίσσεται για την κάλυψη των. Ελεγξιμότητα (Verifiability) Οι ιδιότητες ενός συστήματος λογισμικού θα πρέπει να μπορούν να ελεγχθούν εύκολα. Π.χ. η λειτουργική ορθότητα, ή η απόδοση πρέπει να μπορούν να ελεγχθούν με χρήση προσομοίωσης, ή μέσω τυπικών μεθόδων Δυνατότητα Επαναχρησιμοποίησης (Reusability) Ένα πρόγραμμα είναι επαναχρησιμοποιήσιμο εάν μπορεί να χρησιμοποιηθεί (ενδεχομένως με μικρές αλλαγές) για την ανάπτυξη άλλου προϊόντος λογισμικού. Φορητότητα (Portability) Το λογισμικό είναι φορητό εάν μπορεί να εκτελεστεί σε διαφορετικά περιβάλλοντα (λειτουργικά συστήματα, εξάρτηση από βάσεις).

Σημασία των Χαρακτηριστικών (1/2) Η σημασία κάθε χαρακτηριστικού εξαρτάται από το λογισμικό και το περιβάλλον στο οποίο πρόκειται να χρησιμοποιηθεί Σε ορισμένες περιπτώσεις κυριαρχούν ορισμένα χαρακτηριστικά Σε συστήματα ασφαλείας για παράδειγμα κύριο χαρακτηριστικό αποτελεί η αξιοπιστία (reliability) Σε real-time συστήματα απαιτείται υψηλή απόδοση (performance) και κυρίως η προβλεψιμότητα (predictability) Σε portable συστήματα η χαμηλή κατανάλωση ενέργειας Το κόστος αυξάνει εκθετικά αν απαιτείται κάποιο από τα χαρακτηριστικά σε υψηλά επίπεδα

Σημασία των Χαρακτηριστικών (2/2) Συντηρητής Καλή τεκμηρίωση Κατανοητός κώδικας Καλή σχεδίαση Επαναχρησιμοποίηση Λειτουργικότητα Ευκολία χρήσης Ευκολία εκμάθησης Χρήστης Αξιοπιστία Ορθότητα Αποδοτικότητα Χαμηλό κόστος Μεταφέρσιμο Αυξάνει την παραγωγικότητα Πελάτης

Η Ανάγκη για «Καλό Λογισμικό» Είναι αυτονόητη και επιτακτική διότι Ο ρόλος των υπολογιστών... στην οικονομία και την παραγωγή στην ενημέρωση και την ψυχαγωγία στην εκπαίδευση και αλλού εκπληρώνεται μόνο με Λογισμικό το οποίο: Κάνει σωστά τη δουλειά του, παράγεται με λογικό κόστος, σε λογικό χρόνο, και είναι καλής ποιότητας

Ιδιαιτερότητες του λογισμικού: ιδεατή οντότητα (intangible product)

Ιδιαιτερότητες του λογισμικού: εύπλαστη οντότητα (malleable product)

Ιδιαιτερότητες του λογισμικού: η καινοτομία στο λογισμικό είναι μια συνεχής (continuous) διαδικασία

Ιδιαιτερότητες του λογισμικού: ο ρόλος της δημιουργικότητας (creativity) Software construction is a creative process (F. Brooks, author of No Silver Bullet, 1986) Frederick Brooks

Ιδιαιτερότητες του λογισμικού: Η καινοτομία στη διαδικασία ανάπτυξης (software process innovation) οδηγεί σε καινοτομικά προϊόντα (software product innovation)

Ιδιαιτερότητες του λογισμικού: το όριο για να εισέλθει κανείς στην αγορά λογισμικού είναι χαμηλό (the threshold to enter the software market is low) Google founders: Larry Page and Sergey Brin You only need a computer and a garage to build a thriving software company

Ιδιαιτερότητες του λογισμικού: νέα επιχειρηματικά μοντέλα μεγάλος ανταγωνισμός Mobile apps business model

Ιδιαιτερότητες του λογισμικού: ο ρόλος των χρηστών Users become co-creators

H Ανάπτυξη «Καλού Λογισμικού» είναι Πρόβλημα Η ανάπτυξη λογισμικού συχνά παρομοιάζεται στη βιβλιογραφία ως ένα πρόβλημα... στόχευσης κινούμενου στόχου από κινούμενο όχημα και με όπλο που συνεχώς αλλάζει τη συμπεριφορά του... Η «Κρίση Λογισμικού» (Software Crisis) πρωτοαναφέρθηκε το 1968 (Bauer F.L., Dijkstra, E). Σήμερα είναι ακόμη επίκαιρη...

H Κρίση του Λογισμικού

Mythical Man Month (F. Brooks, 1975) & No Silver Bullet (F. Brooks, 1987)

No Silver Bullet Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves, because they transform unexpectedly from the familiar into horrors. For these, one seeks bullets of silver that can magically lay them to rest. The familiar software project, at least as seen by the non-technical manager, has something of this character; it is usually innocent and straightforward, but is capable of becoming a monster of missed schedules, blown budgets, and flawed products. So we hear desperate cries for a silver bullet--something to make software costs drop as rapidly as computer hardware costs do. But, as we look to the horizon of a decade hence, we see no silver bullet. There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity. 26/10/2015 Frederick P. Brooks, Jr. No Silver Bullet: Essence and Accidents of Software Engineering Computer Magazine, April 1987

Κρίση Λογισμικού Κατά κανόνα, η ανάπτυξη μεγάλων έργων λογισμικού παρουσιάζει προβλήματα: υπερβάσεις στο χρονοδιάγραμμα υπερβάσεις στον προϋπολογισμό παραγόμενο προϊόν κακής ποιότητας πολυδάπανο στη συντήρησή του Standish Chaos Chronicles (2004 edition): 18% των έργων λογισμικού αποτυγχάνουν (δεν ολοκληρώνονται) 53% των έργων έχουν προβλήματα (υπέρβαση προϋπολογισμού, χρονικών προθεσμιών, δεν πληρούν τις αρχικές απαιτήσεις/προδιαγραφές) Typical Standish figures: Υπερβάσεις κόστους στο 43% των έργων Υπερβάσεις χρόνου στο 82% των έργων

Κρίση Λογισμικού - Αιτίες ανεπαρκής προσδιορισμός απαιτήσεων προβληματική σχεδίαση μη ρεαλιστικοί στόχοι του project μη ακριβείς εκτιμήσεις απαιτούμενων πόρων κακή αναφορά προόδου ελλιπής χειρισμός ρίσκου κακή επικοινωνία μεταξύ πελατών, προγρ/στών, χρηστών έλλειψη εμπειρίας με τεχνολογία αδυναμία χειρισμού πολυπλοκότητας

Ιδιαιτερότητες Έργων Λογισμικού Διαφέρουν τα έργα λογισμικού από τα άλλα έργα? Έστω ότι ένα έργο λογισμικού έχει καθυστερήσει σε σχέση με το χρονοδιάγραμμα του. Αν είσαστε ο project manager με τι τρόπους μπορείτε να το επιταχύνετε? Αν απαντήσατε με αύξηση των ατόμων ή με χρήση νέων εργαλείων.. ΚΑΝΑΤΕ ΛΑΘΟΣ! Έστω ότι είστε ο project manager σε ένα έργο λογισμικού (μη έχοντας σχέση με προγραμματισμό). Πώς θα παρακολουθήσετε την πορεία του? Προφανώς εξαρτάστε από τις αναφορές των υπολοίπων!! Πουλάτε ένα προϊόν λογισμικού και σας ρωτούν να προσδιορίσετε την ποιότητα του. Τι θα αναφέρατε? Προφανώς δεν υπάρχουν σαφή χαρακτηριστικά ποιότητας!!!

Απάντηση στην Κρίση ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ SOFTWARE ENGINEERING Επιστημονική Θεμελίωση του Λογισμικού (κύκλου ζωής, διαδικασίας παραγωγής, τρόπου περιγραφής τεκμηρίωσης, διαδικασίας συντήρησης)

Τεχνολογία Λογισμικού (Software Engineering) Τεχνολογία: «Λόγος περί Τέχνης»: Περιγραφή του τρόπου υλοποίησης τεχνικών κατασκευών, εν προκειμένω του Λογισμικού Λογισμικό και άλλες τεχνικές κατασκευές Τεχνικές κατασκευές Έχουν υλική υπόσταση Περιγράφονται και γίνονται αντιληπτές με μοναδικό τρόπο Το Λογισμικό είναι μια ιδεατή οντότητα Γίνεται αντιληπτό από τα αποτελέσματα της χρήσης του Δεν περιγράφεται εύκολα και μοναδικά

Αντικείμενο της Τεχνολογίας Λογισμικού είναι Η επιστημονική θεμελίωση του κύκλου ζωής της διαδικασίας παραγωγής του τρόπου περιγραφής του τρόπου συντήρησης του οργανωτικού πλαισίου χρήσης του Λογισμικού Οι εργασίες αυτές είναι ιδιαίτερα δύσκολες: από τη φύση του Λογισμικού από την υπόστασή του ως προϊόν

Αντικείμενο της Τεχνολογίας Λογισμικού είναι Η Τεχνολογία Λογισμικού ασχολείται με τον καθορισμό: ενεργειών που πραγματοποιούνται προϊόντων που παράγονται προτύπων περιγραφής και μοντέλων των προϊόντων και των ενεργειών μεθόδων ελέγχου, επαλήθευσης και διασφάλισης ποιότητας... ώστε να παράγεται Λογισμικό "καλής ποιότητας" [IEEE]: Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software

Σχεδιάζοντας Λογισμικό Τι είναι ποιοτικό λογισμικό; Πώς φτιάχνω ποιοτικό λογισμικό; (δύσκολο ερώτημα) ποιότητα κόστος χρόνος ανάπτυξης αμοιβαία συγκρουόμενα

Σχεδιάζοντας Λογισμικό Παράδειγμα Α. Λογισμικό που θα ενσωματωθεί σε προϊόν υψηλής τεχνολογίας ***** Χρόνος ανάπτυξης χρόνος που θα βγει στην αγορά, έστω και Α έκδοση *** Κόστος τελικού προϊόντος (όχι ανάπτυξης) Στοιχείο προδιαγραφών *** Ποιότητα: Όχι bugs (μεγάλος αριθμός αντιτύπων) αλλά ας είναι δύσχρηστο ** Κόστος ανάπτυξης Β. Εκπαιδευτικό λογισμικό που πρόκειται να πάει στο σχολείο ***** Ποιότητα Να μην έχει bugs (ευαίσθητη η εκπαιδευτική κοινότητα), να ακολουθεί τις παιδαγωγικές και τεχνικές προδιαγραφές. *** Κόστος ανάπτυξης (να είναι σχετικά μικρό, διότι η αγορά είναι μικρή και δεν μπορεί να γίνει απόσβεση) ** Χρόνος (ας πάει και λίγο αργότερα στα σχολεία.)

Σχεδιάζοντας Λογισμικό Δυσκολίες γιατί είναι δύσκολο πρόβλημα; ποιότητα-κόστος-χρόνος. όλα ρευστά (στόχος, έδαφος, όπλο). πολυπλοκότητα πραγματικού κόσμου. ντεντερμινισμός vs. μη ντεντερμινισμός - (μαθηματικά μοντέλα). επικοινωνία ερμηνείες (τι σημαίνει «γρήγορο»). π.χ. «εκτύπωση κατάστασης μαθητών σχολείου» αλφαβητικά, κατά ΑΜ; κατά πεδίο ορισμένο από χρήστη; (φίλτρο με πρώτο γράμμα) εκτύπωση σε οθόνη και εκτυπωτή; κεφαλαία ή μικρά; 26/10/2015 33

Σχεδιάζοντας Λογισμικό Δυσκολίες 26/10/2015 34

Αντικείμενο της Τεχνολογίας Λογισμικού είναι Η περιγραφή συστηματικών διαδικασιών ανάπτυξης λογισμικού (sw development process) Μια διαδικασία ανάπτυξης είναι ένα δομημένο σύνολο δραστηριοτήτων για την ανάπτυξη ενός συστήματος λογισμικού Προδιαγραφές Απαιτήσεων - Ανάλυση Σχεδίαση Ανάπτυξη Κώδικα Επαλήθευση Συντήρηση Για τη διαχείρισή του απαιτείται ακριβής μοντελοποίηση

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

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

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

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

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

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

Τεχνολογία Λογισμικού ΜΟΝΤΕΛΑ ΚΥΚΛΟΥ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ

Κύκλος Ζωής Λογισμικού (Software Life Cycle) Οι φάσεις από τις οποίες διέρχεται μια εφαρμογή Λογισμικού: από τη σύλληψή της κατά την κατασκευή, χρήση, συντήρησή της μέχρι την απόσυρσή της Ένα μοντέλο κύκλου ζωής περιγράφει: ποιες είναι αυτές οι φάσεις ποιες εργασίες γίνονται και ποια προϊόντα παράγονται σε καθεμία πώς διαδέχονται η μία την άλλη

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

Χαρακτηριστικά Μοντέλα Κύκλου Ζωής Το μοντέλο του καταρράκτη Το μοντέλο πρωτοτυποποίησης Το μοντέλο λειτουργικής επαύξησης Το σπειροειδές μοντέλο Το μοντέλο του πίδακα Γενικά μοντέλα κύκλου ζωής & Ευέλικτες μεθοδολογίες

Ολόκληρη η εφαρμογή λογισμικού διέρχεται από διακριτές φάσεις ανάπτυξης. Για να ξεκινήσει µια φάση πρέπει να έχει ολοκληρωθεί πλήρως η προηγούμενη. Ακολουθιακή ανάπτυξη. Ιδιαίτερα χρήσιμο όταν οι απαιτήσεις από το λογισμικό είναι από την αρχή γνωστές και δε μεταβάλλονται. Μοντέλο του Καταρράκτη

Μοντέλο της Πρωτοτυποποίησης Κατασκευάζονται διαδοχικά πρωτότυπα με ολοένα και περισσότερα χαρακτηριστικά. Επαναληπτικό μοντέλο. Δυνατότητα απόκτησης άποψης για την εφαρµογή λογισµικού νωρίτερα. Χρήσιμο όταν δεν υπάρχει βεβαιότητα για τις απαιτήσεις από την αρχή.

Μοντέλο της Λειτουργικής Επαύξησης Κατάτμηση του λογισμικού και εφαρμογή του μοντέλου καταρράκτη σε κάθε τμήμα Συνένωση στο τέλος

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

Μοντέλο του Πίδακα Ανάπτυξη με αντικειμενοστρεφή φιλοσοφία και επαναχρησιμοποίηση έτοιμων συστατικών.

Γενικά / Ευέλικτα Μοντέλα Κύκλου Ζωής Ανάπτυξη σε κύκλους σύμφωνα με τα χαρακτηριστικά και τις δυνατότητες του κατασκευαστή. Γενικευμένη μορφή των προηγούμενων μοντέλων κύκλου ζωής.

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

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

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

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

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

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

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

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

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

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

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

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

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

18 Μεγάλες Αλήθειες σχετικά με το σχεδιασμό ανάπτυξη συστημάτων εφαρμογών λογισμικού με εικόνες Stefan Pölt, FRA IN/P

Stefan Pölt, FRA IN/P 1

Stefan Pölt, FRA IN/P 2

3 Your trial period is over Please register now OK Stefan Pölt, FRA IN/P

4 Οι προθεσμίες είναι προθεσμίες! Stefan Pölt, FRA IN/P

Stefan Pölt, FRA IN/P 5

6 O.k., και τώρα θα κάνεις ακριβώς αυτό που σου λέω! Stefan Pölt, FRA IN/P

Stefan Pölt, FRA IN/P 7

Stefan Pölt, FRA IN/P 8

Stefan Pölt, FRA IN/P 9

Stefan Pölt, FRA IN/P 10

Stefan Pölt, FRA IN/P 11

Stefan Pölt, FRA IN/P 12

Stefan Pölt, FRA IN/P 13

14 Έλα! Αυτή τη φορά θα πετύχει... Stefan Pölt, FRA IN/P

15 Ποιο είναι το δικό μου? Stefan Pölt, FRA IN/P

16 αυτιά λαιμός πόδια Stefan Pölt, FRA IN/P

Stefan Pölt, FRA IN/P 17

Stefan Pölt, FRA IN/P 18