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

Σχετικά έγγραφα
Προδιαγραφές Απαιτήσεων Γιάννης Σμαραγδάκης

οκιμασία και πλάνο δοκιμασίας

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

Πριν ξεκινήσουμε: Γά Γιάννης Σμαραγδάκης

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

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

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

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

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

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

Φάση 3: Λεπτομερής Σχεδιασμός

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

Αξιολόγηση - Τεκμηρίωση

10α Έλεγχος και επαλήθευση λογισμικού

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

Έλεγχος Προγραμμάτων και Συστήματος

12 Έλεχος και επαλήθευση λογισμικού

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

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

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

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

Συγγραφή Προγραμμάτων

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

Στρατηγική Αξιολόγησης κατά την Υλοποίηση Εκπαιδευτικού Λογισμικού

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

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

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης

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

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

ιαδικασίες Τεχνολογίας Λογισμικού Γιάννης Σμαραγδάκης

Μοντέλο συστήματος διαχείρισης της ποιότητας

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

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

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

Αντικειμενοστρεφής Προγραμματισμός

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η

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

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

Δομή και Στόχοι του Μαθήματος - Εισαγωγή

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ. Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9

Πληροφορική. Μάθημα Κατεύθυνσης

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

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

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

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

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

Κεφάλαιο 8 Πληροφοριακά συστήματα. Εφαρμογές Πληροφορικής Κεφ. 8 Καραμαούνας Πολύκαρπος

ΣΧΕΔΙΟ ΜΑΡΚΕΤΙΝΓΚ. Έκδοση και ημερομηνία: Στοιχεία Οργανισμού. Όνομα Οργανισμού / Επιχείρησης: (Διεύθυνση): (Ημερομηνία έναρξης Επιχείρησης):

Προγραμματισμός και Επιλογή Συστημάτων

Βασίλειος Κοντογιάννης ΠΕ19

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

αντίστοιχο γεγονός. Όταν όντως το κουμπί

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

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

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

ΑΛΛΑΓΗ ΣΤΗ ΔΙΔΑΣΚΑΛΙΑ ΤΩΝ ΜΑΘΗΜΑΤΙΚΏΝ:

Μοντέλο συστήματος διαχείρισης της ποιότητας

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

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ

05 Ανάλυση απαιτήσεων

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

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

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

Εκσφαλμάτωση προγράμματος

Providing Integrated e-health Services for Personalized Medicine utilizing Cloud Infrastructure (PINCLOUD)

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

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

Πρωτόκολλα Διαδικτύου

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

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

Εργαλεία Ανάπτυξης Εφαρμογών Internet I

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Α.Ο.Δ.Ε. Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Θέματα και Απαντήσεις

Διαχείριση Έργων. Ενότητα 7: Εκτέλεση, παρακολούθηση και έλεγχος έργου

Εισαγωγή. Τμήμα Μηχανικών Σχεδίασης Προϊόντων και Συστημάτων, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ. Παναγιώτης Κουτσαμπάσης

Κωδικοποίηση και Έλεγχος Ορθότητας

Μαθηματικά Ε Δημοτικού

Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

α) Υψηλές πωλήσεις σημαίνουν ανάπτυξη της παραγωγικής λειτουργίας, που είναι προϋπόθεση για να αναπτυχθούν και οι άλλες δύο βασικές λειτουργίες.

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

ΚΑΤΑΛΟΓΟΣ ΕΛΕΓΧΟΥ ΓΙΑ ΕΡΓΑΣΙΕΣ ΓΡΑΦΕΙΟΥ. Διερευνώντας τις επαγγελματικές ικανότητες Υποθεμα 3.7

ΠΡΟΣΤΑΣΙΑ ΛΟΓΙΣΜΙΚΟΥ- ΙΟΙ ΚΕΦΑΛΑΙΟ 7

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

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

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

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

Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων,

ΒΙΟΜΗΧΑΝΙΚΕΣ ΕΦΑΡΜΟΓΕΣ. Μηχανική όραση Cognex... για μέγιστη αξιοπιστία στην παραγωγή. Τρόφιμα & Ποτά

05 Ανάλυση Απαιτήσεων

ΚΕΦΑΛΑΙΑ XIII, XIV. Εκσφαλμάτωση προγράμματος - Κύκλος Ζωής Λογισμικού

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape

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

Ενότητα 8 (κεφάλαιο 21) Θεματοκεντρική Τεχνολογία Λογισμικού

ΚΑΤΑΛΟΓΟΣ ΕΛΕΓΧΟΥ ΓΙΑ ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΑΝΤΟΧΗΣ. Διερευνώντας τις επαγγελματικές ικανότητες Υποθεμα 3.6

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

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

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

Αναλύσεις Προγραμμάτων και Ψηφιακά Νομίσματα. Γιάννης Σμαραγδάκης, ΕΚΠΑ

Το Ευρωπαϊκό Πρόγραμμα. Motor Challenge

Transcript:

Εισαγωγή στην Τεχνολογία Λογισμικού Γιάννης Σμαραγδάκης

Γιατί μελετάμε την Τεχνολογία Λογισμικού Λογισμικό υπάρχει παντού σε όλους τους τεχνικούς τομείς (π.χ. αεροδιαστημική) σε όλες τις επιστήμες στον πολιτισμό και την τέχνη (π.χ. βιβλιοθήκες, μουσική) μεγάλο τμήμα της παγκόσμιας οικονομίας, σημαντικά υποσχόμενος τομέας στην Ελλάδα ΑΛΛΑ είναι πολύ δύσκολο να αναπτυχθεί σωστά 5-10 LOC/ανθρωποημέρα; $100Ks/LOC? προθεσμίες που δεν τηρούνται, bugs με τεράστιο κόστος (π.χ.;)

Ενδιαφέρουσες ερωτήσεις Τι σημαίνει ποιότητα στο λογισμικό; Τι είναι σφάλμα; Μπορεί να αποδειχθεί η απουσία σφαλμάτων; Πώς μπορεί να προσθέτουμε εργαζόμενους και το αποτέλεσμα να χειροτερεύει; Τι είναι τελικά το λογισμικό; Με τι άλλο μοιάζει; Βασίζεται το λογισμικό σε κάποια επιστήμη; Έχει Βασίζεται το λογισμικό σε κάποια επιστήμη; Έχει νόμους;

Προσεγγίσεις στα προβλήματα του λογισμικού Περισσότερο προσωπικό -- χάος, πιο πολλά προβλήματα «Καλύτερες» γλώσσες προγραμματισμού -- κακά προγράμματα μπορεί να γραφτούν σε όλες τις γλώσσες Σχεδιασμός πριν τη συγγραφή κώδικα -- πώς εξασφαλίζεται η ποιότητα του σχεδιασμού; Αρχή με προδιαγραφές απαιτήσεων -- αλλά πάντα αλλάζουν, και μετά; Πιο πλήρεις δοκιμασίες ήρ ς μ ς -- αν η ποιότητα δεν υπάρχει, δεν προστίθεται με περισσότερες δοκιμασίες

Άλλες προσεγγίσεις Καλύτερα εργαλεία --... όπως και δοκιμασίες/γλώσσες ς Καλύτερες διαδικασίες -- πότε είναι μια διαδικασία «καλή»; Καλύτερη εκπαίδευση -- τι να διδάξουμε; There is no Silver Bullet -- Fred Brooks

Με τι μοιάζει το λογισμικό; Φύση; Πολυπλοκότητα; Μέγεθος; Ευκολία αλλαγής; Ανάγκη συντήρησης; Παρόμοια άλλα προϊόντα; Ομοιότητες/διαφορές; οικίσμα; νόμοι/συνθήκες; ταινίες; συνταγές μαγειρικής;

Τι σημαίνει για ένα προϊόν να είναι «καλό»; Ικανοποιεί τις ανάγκες όλων των συμμετόχων Τύποι συμμετόχων (stakeholders): χρήστες προγραμματιστές, δοκιμαστές πελάτες (τι διαφορά από το χρήστη;) τελικοί πελάτες, κοινωνία επενδυτές κλπ.

Προϊόν

ιαφορετικές απαιτήσεις Χρήστης: Θέλει πολλές λειτουργίες Θέλει να είναι εύκολη η δουλειά του Αρχιτέκτονας: Θέλει όλα τα κομμάτια να ταιριάζουν Θέλει να είναι εύκολη η αλλαγή Θέλει να είναι εύκολο να δείξει ότι κάνει αυτό που πρέπει Πελάτης: Θέλει μικρό κόστος Θέλει ορατή και σταθερή πρόοδο Τελικοί πελάτες/κοινωνία: Θέλουν να είναι βέβαιοι ότι δεν θα προκληθεί ζημιά Θέλουν να δουν ότι παρέχονται οι επιθυμητές υπηρεσίες Επενδυτής Θέλει απόδειξη ότι θα έχει κέρδος

ιαφορετικοί συμμετέχοντες έχουν διαφορετικές όψεις

Εξωτερική όψη: πελάτες, επενδυτές, κοινωνία

Εσωτερικές όψεις: αρχιτέκτονες, διοικητικοί, προγραμματιστές

Ένα προϊόν λογισμικού έχει πολλών τύπων εξαρτήματα/τμήματα απαιτήσεις σχέδια δοκιμασίες κώδικας

Πρόκληση Τεχνολογίας Λογισμικού Πώς να ικανοποιήσουμε όλες τις απαιτήσεις Με μικρό κόστος Σε αποδεκτό χρονικό διάστημα... και να είμαστε σίγουροι ότι το κάναμε

Τα κυριότερα παραδοτέα/προϊόντα μιας διεργασίας ανάπτυξης λογισμικού Άρθρωση του προβλήματος, κατανόηση (προδιαγραφές απαιτήσεων) α ) Ποιο πρόβλημα λύνουμε; Μορφοποίηση η της λύσης (αρχιτεκτονική) Πώς ίσως λύνεται το πρόβλημα Αναγωγή γή της λύσης στην πράξη (σχεδίαση) χ Πώς θα λύσουμε πράγματι το πρόβλημα; Υλοποίηση της λύσης (συγγραφή κώδικα) Σχέσεις μεταξύ των παραπάνω Αποδείξεις συνέπειας των παραπάνω ξ ς ς ρ (ανάλυση/δοκιμασία - testing)

Σχέσεις μεταξύ τμημάτων/εξαρτημάτων Π.χ. Τα αποτελέσματα δοκιμασιών είναι αυτά που περιμένουμε Ο κώδικας υλοποιεί το σχεδιασμό Οι δοκιμασίες καλύπτουν τις απαιτήσεις χρήσης Αυτές οι σχέσεις ορίζονται νωρίς σε ένα έργο λογισμικού αυτές και μόνο ορίζουν ρζ πότε ένα προϊόν είναι «σωστό» Οι συμμετέχοντες βλέπουν την επιβεβαίωση των σχέσεων μεταξύ τμημάτων του λογισμικού

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

Βασική έμφαση της τεχνολογίας λογισμικού Πώς να περιγράψουμε προϊόντα; τα συστατικά τους τη σχέση και αλληλεπίδρασή τους Ποιες διαδικασίες πρέπει να ακολουθηθούν για να αναπτύξουμε τέτοια προϊόντα; και να εξασφαλίσουμε την «ποιότητά» τους εν τέλει; (παραδείγματα δί διαδικασίας;) δ ) Πώς να αναπτύξουμε και να εξελίξουμε προϊόντα με: αποδεκτό κόστος βελτιωμένη ποιότητα Τεχνολογία λογισμικού = Προϊόντα + ιαδικασίες

Η διαδικασία «καταράκτη» Απαιτήσεις Αρχιτεκτονική Σχεδιασμός Κώδικας οκιμασία Συντήρηση

Πιο ακριβής διαδικασία καταράκτη Απαιτήσεις Αρχιτεκτονική Σχεδιασμός Κώδικας οκιμασία Συντήρηση

Βασική αρχή του μαθήματος Όλες οι στρατηγικές ανάπτυξης πρέπει να επιλεγούν με γνώμονα τη δοκιμασία και επαλήθευση τη δυνατότητα συντήρησης του λογισμικού

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

Μια επιτυχημένη προδιαγραφή απαιτήσεων είναι ένα ρ γρ φή ή ΣΥΜΒΟΛΑΙΟ που περιγράφει αποτελεσματικά ΤΙ θέλουν όλοι οι συμμέτοχοι του έργου λογισμικού

ιάφορα στοιχεία προδιαγραφών απαιτήσεων Παράδειγμα: Εισαγωγή Λειτουργικές απαιτήσεις Περιβάλλον Επίδοση Ακρίβεια Χειρισμός λαθών Εξωτερική ασφάλεια (security) Εσωτερική ασφάλεια (safety)