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

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

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

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προσφερόμενα Διπλώματα (Προσφερόμενοι Τίτλοι)

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

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

Α.Ε.Ι. Πειραιά Τ.Τ. Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Διαχείριση Έργων Αυτοματισμού και Πληροφορικής

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

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

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

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

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

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

Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας

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

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

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

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

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

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

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

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

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

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

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

UML: Unified modelling language

Εισαγωγή στην Ανάπτυξη Πληροφοριακών Συστημάτων

Διαχείριση Πληροφοριακών Συστημάτων

ΣΧΕΔΙΑΣΜΟΣ & ΑΝΑΠΤΥΞΗ ΠΡΟΪΟΝΤΟΣ

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

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

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

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

Κεφάλαιο 1. Εισαγωγή στα συστήματα σχεδιομελέτης και παραγωγής με χρήση υπολογιστή computer aided design and manufacture (cad/cam)

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

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

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

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων

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

Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό. Νικόλαος Μήτρου Καθηγητής, ΕΜΠ

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

Αρχές Προγραμματισμού Υπολογιστών

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΕΡΕΥΝΑ & ΑΝΑΠΤΥΞΗ ΠΡΟΙΟΝΤΟΣ

Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

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

Έλεγχος Λογισμικού. Software Testing

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

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

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

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

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

Μέθοδος : έρευνα και πειραματισμός

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

Αναγνώριση Προτύπων Ι

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

Σχεδιαστής Ιστοσελίδων

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

J. Glenn Brookshear. Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

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

ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΤΕ ΣΧΕΔΙΑΣΗ ΜΗΧΑΝΟΛΟΓΙΚΩΝ ΚΑΤΑΣΚΕΥΩΝ ΜΕ Η/Υ (CAD) Διαλέξεις και Εργαστηριακές Ασκήσεις ,5

Προγραμματισμός επιχειρηματικών πόρων (ΠΕΠ) Source: Northampton Symphony Orchestra

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

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

Σχεδιασµός & Ανάπτυξη Προϊόντος

Σχεδιασµός & Ανάπτυξη Προϊόντος

Ανθρωποκεντρικός σχεδιασμός πολυμέσων

Αρχιτεκτονικές Συστημάτων

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

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

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

Σχεδιασμός προϊόντων και υπηρεσιών. Source: Toyota (GB) plc

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

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

ΕΚΘΕΜΑ 2-1 Σύστηµα επιστροφής µπάλας, ένα από τα προϊόντα µπόουλινγκ της AMF Bowling.

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

Transcript:

Κεφάλαιο 7: Τεχνολογία Λογισμικού Η Επιστήμη των Υπολογιστών: Μια Ολοκληρωμένη Παρουσίαση (δέκατη αμερικανική έκδοση) J. Glenn Brookshear Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Εισαγωγή Τεχνολογία Λογισμικού (Τ.Λ.) = Software Engineering = Mηχανική Λογισμικού Αντιμετωπίζει προβλήματα που εμφανίζονται στην ανάπτυξη μεγάλων και σύνθετων πληροφοριακών συστημάτων Στόχος Τ.Λ. Να ορίσει αρχές που κατευθύνουν τη διαδικασία ανάπτυξης λογισμικού και οδηγούν σε αποδοτικά και αξιόπιστα προϊόντα λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-2

Κεφάλαιο 7: Τεχνολογία Λογισμικού Ο τομέας της τεχνολογίας λογισμικού Ο κύκλος ζωής λογισμικού Θέματα Σχετικά με την Τεχνολογία Λογισμικού Μεθοδολογίες τεχνολογίας λογισμικού Τμηματικότητα Τεκμηρίωση Ιδιοκτησία και ευθύνη λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-3

Σχεδιάστε και επιβλέψτε την κατασκευή ενός κτιριακού συγκροτήματος Απαιτήσεις εμφάνισης Απαιτήσεις κατασκευής Χρονοπρογραμματισμός Υπολογισμός Κόστους (χρήμα, πόροι κλπ); Χωρισμός σε τμήματα για ευκολότερη διαχείριση Συμβατότητα τμημάτων Επικοινωνία ατόμων ομάδας Έλεγχος προόδου του έργου Έλεγχος τελικού προϊόντος Συντήρηση Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-4

Διαφορές Τ.Λ. από άλλα πεδία Τεχνολογίας Διαφορές από τα άλλα πεδία τεχνολογίας, στα οποία υπάρχουν: Προκατασκευασμένα συστατικά στοιχεία Μετρικές μέθοδοι για ποσοτική μέτρηση, π.χ. Για υπολογισμό κόστους, αξιοπιστίας, διάρκειας ζωής Πρακτικοί και θεωρητικοί ερευνητές Σημαντική πρόοδος της Τεχνολογίας Λογισμικού σε Προκατασκευασμένα συστατικά στοιχεία Μετρικές IDE (Integrated development environments)-> συνδυάζουν εργαλεία για ανάπτυξη λογισμικού σ ένα ενοποιημένο πακέτο που μπορεί να υποστηρίζει και οπτικό προγραμματισμό CASE (Computer Aided Software Engineering) tools Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-5

Διαφορές λογισμικού από άλλα πεδία μηχανικής (1/2) Δυνατότητα κατασκευής από προκατασκευασμένα συστατικά στοιχεία Περιορισμένη διαθεσιμότητα γενικών συστατικών Παραδοσιακά, τα πολύπλοκα συστήματα λογισμικού κατασκευάζονται από το μηδέν Υπάρχει πρόοδος σε αυτόν το τομέα, π.χ. Component-based development, service engineering, και η έρευνα συνεχίζεται Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-6

Διαφορές λογισμικού από άλλα πεδία μηχανικής (2/2) Έλλειψη μετρικών μεθόδων για ποσοτική μέτρηση των ιδιοτήτων λογισμικού, π.χ. Υπολογισμός κόστους -> προϋποθέτει υπολογισμό της πολυπλοκότητας Αξιολόγηση ποιότητας και Αξιοπιστίας π.χ. στις μηχανικές συσκευές ένα μέτρο ποιότητας μπορει να είναι η μέση διάρκεια ζωής, ή ο μέσος όρος μεταξύ των φθορών, το λογισμικό όμως δεν φθείρεται Οι δυσκολίες στη μέτρηση των ιδιοτήτων του λογισμικού με ποσοτικό τρόπο είναι ένας από τους βασικούς λόγους που υπάρχει έλλειψη θεωρητικής βάσης στο πεδίο της Τεχνολογίας Λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-7

Πρόοδος στην Τεχνολογία Λογισμικού (1/2) Πρακτικοί και θεωρητικοί ερευνητές Πρακτικοί -> ανάπτυξη τεχνικών για άμεση εφαρμογή Πολλές μεθοδολογίες αντικαθίστανται γιατί αναπτύχθηκαν σε υποκειμενική βάση Θεωρητικοί -> ψάχνουν για υποκείμενες βάσεις και θεωρίες για να αναπτυχθούν στο μέλλον πιο σταθερές τεχνικές Αργή πρόοδος Ανάγκη για πρόοδο Οικονομία, Υγεία κλπ βασίζονται σε μεγάλα συστήματα λογισμικού Σφάλματα λογισμικού υπεύθυνα για πολλές καταστροφές ή παρολίγον καταστροφές Απώλεια διαστημικών οχημάτων, έκλυση ραδιενέργειας κλπ Η πρόοδος των θεωρητικών είναι αργή Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-8

Πρόοδος στην Τεχνολογία Λογισμικού (2/2) Σημαντική πρόοδος σε Προκατασκευασμένα συστατικά στοιχεία Μετρικές IDE (Integrated development environments)-> συνδυάζουν εργαλεία για ανάπτυξη λογισμικού σ ένα ενοποιημένο πακέτο που μπορεί να υποστηρίζει και οπτικό προγραμματισμό CASE (Computer Aided Software Engineering) tools Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-9

Eργαλεία CASE Υποστηρίζουν τις εξής διαδικασίες: Σχεδιασμό έργου Διαχείριση έργου Τεκμηρίωση Δημιουργία πρωτοτύπων και προσομοίωση Σχεδιασμό διασύνδεσης Προγραμματισμό Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-10

Integrated development environment (IDE) Eίναι μια εφαρμογή λογισμικού που βοηθά τους προγραμματιστές να αναπτύξουν λογισμικό. Συνήθως περιλαμβάνει: source code editor and/or visual editor Μεταγλωτιστές Εργαλεία αποσφαλμάτωσης κλπ Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-11

Ανάγκες Τεχνολογίας Λογισμικού Μεγάλη ανάγκη για περαιτέρω πρόοδο στην Τ.Λ. Επαγγελματικές οργανώσεις και οργανισμοί τυποποίησης, π.χ.: ISO (Διεθνής οργανισμός Τυποποίησης) ACM (Association for Computing Machinery) IEEE (Ινστιτούτο Ηλεκτρολόγων και Ηλεκτρονικών Μηχανικών), κ.λ.π. Οι παραπάνω οργανισμοί ορίζουν: Κώδικες επαγγελματικής ηθικής -> ενισχύουν τον επαγγελματισμό και καταπολεμούν την αδιαφορία για τις ευθύνες Πρότυπα -> για μέτρηση ποιότητας ανάπτυξης λογισμικού και κατευθυντήριες γραμμές για βελτίωση Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-12

Association of Computing Machinery (A.C.M.) Ιδρύθηκε το 1947 ως διεθνής επιστημονικός εκπαιδευτικός οργανισμός Σκοπός: προώθηση τεχνών, επιστημών και εφαρμογών της τεχνολογίας πληροφοριών Έδρα: Νέα Υόρκη Πολλές ομάδες ειδικού ενδιαφέροντος σε θέματα όπως: Αρχιτεκτονική Η/Υ, Τεχνητή νοημοσύνη, Τεχνολογία Λογισμικού, Γραφικά, Βιο Ιατρική Πληροφορική κλπ. http://www.acm.org/about/code-of-ethics Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-13

Ίδρυμα Ηλεκτρολόγων Ηλεκτρονικών Μηχανικών Institute of Electrical and Electronics Engineers IEEE Ιδρύθηκε το 1963, εδρεύει στο New Jersey Περιλαμβάνει πολλές τεχνικές ενώσεις: Ένωση Λεϊζερ και Ηλεκτροοπτικών, Ένωση Ρομποτικής και Αυτοματισμού κλπ Δραστηριότητες: δημιουργία προτύπων κλπ http://www.ieee.org/about/whatis/code.html Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-14

Στη συνέχεια Θα εξετάσουμε μερικές από τις θεμελιώδεις αρχές της Τ.Λ., όπως: Ο κύκλος ζωής λογισμικού Η τμηματικότητα Κλπ. Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-15

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-16

Ο κύκλος ζωής λογισμικού Ένα πρόγραμμα, αφού δημιουργηθεί, εισέρχεται σ ένα κύκλο χρήσης και συντήρησης για το υπόλοιπο της ζωής του Διαφορά από τη συντήρηση άλλων προϊόντων Λογισμικό -> διορθώνεται, βελτιώνεται, επεκτείνεται Άλλα προϊόντα -> επιδιορθώνονται Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-17

Ο κύκλος ζωής λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-18

Ο κύκλος ζωής λογισμικού Φάση Συντήρησης Μια δύσκολη διαδικασία Πολλές φορές είναι προτιμότερο να αποσύρεται το πρόγραμμα και να κατασκευάζεται ένα νέο πρόγραμμα από την αρχή Λίγη επιπλέον προσπάθεια στην ανάπτυξη του λογισμικού μπορεί να έχει τεράστια διαφορά στη συντήρηση Το μεγαλύτερο μέρος της έρευνας στην Τ.Λ. εστιάζεται στην ανάπτυξη λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-19

Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-20

Φάση καθορισμού απαιτήσεων (1/2) ΤΙ πρέπει να κάνει το σύστημα Απαιτήσεις προσανατολισμένες στις ανάγκες της εφαρμογής Καθορίζουν: Απαιτούμενη λειτουργικότητα, Προσφερόμενες υπηρεσίες, χρονικοί περιορισμοί, απαιτήσεις ασφάλειας, κλπ Εμπλεκόμενοι: παρέχουν τις απαιτήσεις Απαιτείται μελέτη σκοπιμότητας (έρευνα αγοράς κλπ) - > καθορισμό απαιτήσεων Χρησιμοποιούνται μεθοδολογίες και εργαλεία (Εξετάζονται στο μάθημα ΑΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-21

Φάση καθορισμού απαιτήσεων (2/2) Έγγραφο καθορισμού απαιτήσεων λογισμικού Περιλαμβάνει όλες τις απαιτήσεις Συνιστά γραπτή συμφωνία μεταξύ των ενδιαφερόμενων μερών Καθοδηγεί την ανάπτυξη λογισμικού Είναι μέσο επίλυσης διαφορών Αποτελεί τη βάση για το σχεδιασμό του συστήματος Μπορεί να χρειαστεί αλλαγές Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-22

Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-23

Καθορισμός απαιτήσεων vs. Σχεδιασμός Καθορισμός απαιτήσεων -> προσδιορίζει το πρόβλημα προς επίλυση ΤΙ θα κάνει το σύστημα Εμπλέκει τους χρήστες: δίνουν τις απαιτήσεις και επιβεβαιώνουν την ορθή τους καταγραφή Σχεδιασμός -> αναπτύσσει τη λύση για το πρόβλημα ΠΩΣ θα το κάνει Χρησιμοποιεί σαν βάση τις καταγραμμένες απαιτήσεις Στην πράξη, πολλές φορές το ΤΙ και το ΠΩΣ εμπλέκονται και στις δύο φάσεις Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-24

Φάση σχεδιασμού ΠΩΣ το σύστημα ικανοποιεί τις απαιτήσεις του Δημιουργία σχεδίου (design) που περιλαμβάνει Την εσωτερική δομή του συστήματος (εξετάζεται στο μάθημα Ανάλυσης Συστημάτων) Τα δεδομένα (εξετάζεται στο μάθημα Βάσεων Δεδομένων) Την ανθρώπινη διασύνδεση (εξετάζεται στο μάθημα Επικοινωνία Ανθρώπου μηχανής) Αποτέλεσμα: λεπτομερής περιγραφή της δομής του συστήματος που μπορεί να μετατραπεί σε πρόγραμμα Αν το design έχει γίνει με CASE tool μπορεί να παραχθεί αυτόματα κώδικας Χρειάζονται μεθοδολογίες και εργαλεία μοντελοποίησης (αναλύονται στη συνέχεια) Η ανθρώπινη διασύνδεση απαιτεί γνώσεις ψυχολογίας και εργονομίας (εξετάζεται στο μάθημα Επικοινωνία Ανθρώπου μηχανής) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-25

Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-26

Φάση Υλοποίησης Δημιουργία συστήματος από το σχεδιασμό Συγγραφή προγραμμάτων Δημιουργία αρχείων δεδομένων Ανάπτυξη βάσεων δεδομένων Ρόλος του αναλυτή λογισμικού έναντι του προγραμματιστή Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-27

Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-28

Φάση Ελέγχου (1/2) Στην παραδοσιακή φάση ανάπτυξης περιλαμβάνει Έλεγχος εγκυρότητας Επιβεβαίωση ότι το σύστημα ικανοποιεί τις προδιαγραφές Έλεγχος ατελειών Εύρεση σφαλμάτων Σήμερα αποτελεί μέρος της διαδικασίας Διασφάλισης Ποιότητας και διαπερνά όλο τον κύκλο ζωής λογισμικού Καθορισμός απαιτήσεων και επιβεβαίωση Σχεδιασμός συστήματος και επαλήθευση Υλοποίηση και έλεγχος Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-29

Φάση Ελέγχου (1/2) Παρ όλες τις σύγχρονες τεχνικές διασφάλισης ποιότητας εξακολουθούν να υπάρχουν σφάλματα Η έρευνα σ αυτό τον τομέα συνεχίζεται Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-30

Μεθοδολογίες Τεχνολογίας Λογισμικού Μοντέλο Καταρράκτη (Waterfall Model) Πεποίθηση: οι παραλλαγές θα αυξήσουν τους κινδύνους αποτυχίας μεγάλων συστημάτων λογισμικού Κάθε φάση στον κύκλο ζωής λογισμικού έπρεπε να ολοκληρωθεί πριν αρχίσει η επόμενη Καταρράκτης: ρέει προς μία μόνο κατεύθυνση Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-31

Μεθοδολογίες Τεχνολογίας Λογισμικού Μοντέλα Ανάπτυξης Λογισμικού Μοντέλο καταρράκτη υπαγορεύει ένα πολύ δομημένο περιβάλλον Αυξητικό μοντέλο υποστηρίζει Διαδικασία Ελεύθερης βούλησης και δοκιμής-σφάλματος ζωτική διαδικασία για τη δημιουργική επίλυση προβλημάτων Επαναληπτικό μοντέλο Παρόμοιο με το Αυξητικό μοντέλο Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-32

Μεθοδολογίες Τεχνολογίας Λογισμικού Aυξητικό Μοντέλο (Incremental Model) Ορισμός βιβλίου: Κατασκευή συστήματος σε βήματα Στο πρώτο κατασκευάζεται μια απλοποιημένη εκδοχή του τελικού λογισμικού με περιορισμένη λειτουργικότητα Ακολουθεί έλεγχος, αξιολόγηση από τους τελικούς χρήστες και βηματική πρόσθεση λειτουργιών Άλλος ορισμός: Τα μέρη του συστήματος αναπτύσσονται σε διαφορετικό χρόνο και ρυθμό και ενοποιούνται όταν ολοκληρωθούν. Δεν απαιτεί, ούτε προϋποθέτει το επαναληπτικό μοντέλο (εξετάζεται στη συνέχεια) ή το μοντέλο καταρράκτη. Η εναλλακτική στο αυξητικό μοντέλο είναι η ανάπτυξη του συστήματος με μία big bang ενοποίηση Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-33

Μεθοδολογίες Τεχνολογίας Λογισμικού Επαναληπτικό Μοντέλο (Iterative Model) Παρόμοιο με το αυξητικό μοντέλο Τα διάφορα τμήματα του συστήματος εξετάζονται και βελτιώνονται. Η διαφορά με το increment είναι: το increment μπορεί να χρησιμοποιηθεί είτε από τους χρήστες είτε για να ενοποιηθεί με άλλα κομμάτια το iteration εξετάζεται για να τροποποιηθεί Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-34

Μεθοδολογίες Τεχνολογίας Λογισμικού Αυξητικό vs. Eπαναληπτικό Μοντέλο Αυξάνω = Προσθέτω. Το αυξητικό μοντέλο βοηθάει στη βελτίωση της διαδικασίας ανάπτυξης. Επαναλαμβάνω = Ξανακάνω. Το επαναληπτικό μοντέλο, επαναλαμβάνει όλη τη διαδικασία κάθε φορά για όλο το προϊόν βοηθάει στη βελτίωση του προϊόντος Σήμερα δεν υπάρχει σαφής διαχωρισμός μεταξύ Αυξητικού και Επαναληπτικού μοντέλου Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-35

Μεθοδολογίες Τεχνολογίας Λογισμικού (Oρθολογική) Ενοποιημένη Διαδικασία Ορθολογική Ενοποιημένη Διαδικασία (Rational Unified Process - RUP) Είναι μιά Επαναληπτική και Αυξητική Διαδικασία Επαναπροσδιορίζει τα βήματα στη φάση της ανάπτυξης λογισμικού και παρέχει οδηγίες για την εκτέλεσή τους Εμπορική έκδοση από την εταιρεία Rational Software Corporation που αποτελεί σήμερα τμήμα της ΙΒΜ Ενοποιημένη Διαδικασία (Unified Process) Η μη εμπορική έκδοση της μεθοδολογίας Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-36

Μεθοδολογίες Τεχνολογίας Λογισμικού Ορθολογική Ενοποιημένη Διαδικασία (1/2) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-37

Μεθοδολογίες Τεχνολογίας Λογισμικού Ενοποιημένη Διαδικασία (2/2) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-38

Μεθοδολογίες Τεχνολογίας Λογισμικού Πρωτοτυποποίηση (Prototyping) Δημιουργία και αξιολόγηση ατελών εκδόσεων του συστήματος (prototypes) Χρησιμοποιούνται στην Αυξητική και Επαναληπτική Προσέγγιση Σκοπός πρωτοτύπων Μέσον επικοινωνίας μεταξύ των εμπλεκόμενων μερών για αποσαφήνιση απαιτήσεων Βοηθήματα κατά τις παρουσιάσεις πωλήσεων σε πιθανούς πελάτες Εκπαίδευση χρηστών Είδη διαδικασίας πρωτοτυποποίησης Εξελικτική δημιουργία πρωτοτύπων (Evolutionary prototyping) Δημιουργία αναλώσιμων πρωτοτύπων (Throw away prototyping) Γρήγορη δημιουργία πρωτοτύπων (Rapid Prototyping) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-39

Μεθοδολογίες Τεχνολογίας Λογισμικού Ανάπτυξη Ανοιχτού Κώδικα (Open-Source Development) Mη τυποποιημένη ενσάρκωση του επαναληπτικού και αυξητικού μοντέλου Linux (έγινε αρχικά υπό την καθοδήγηση του Linus Torvalds) Ανάπτυξη Λογισμικού Ανοιχτού Κώδικα Ένας προγραμματιστής ή μια ομάδα προγραμματιστών γράφει/γράφουν την πρώτη έκδοση Δημοσιεύει κώδικα και τεκμηρίωση στο Διαδίκτυο Άλλοι χρήστες το «κατεβάζουν» δωρεάν και Το χρησιμοποιούν Το βελτιώνουν ή το επεκτείνουν σύμφωνα με τις ανάγκες τους Διορθώνουν σφάλματα Αναφέρουν αυτές τις αλλαγές στο δημιουργό κι αυτός τις ενσωματώνει στη δημοσιευμένη έκδοση και διαθέτει την εκτεταμένη έκδοση για περαιτέρω τροποποιήσεις Γρήγορη εξέλιξη λογισμικού Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-40

Μεθοδολογίες Τεχνολογίας Λογισμικού Ευέλικτες Μέθοδοι (Agile Methods) Έντονη απόκλιση από το μοντέλο του καταρράκτη Προσαρμοστικότητα vs. Αυστηρότητα του μοντέλου καταρράκτη Έγκαιρη και γρήγορη υλοποίηση σε αυξητική βάση Δυνατότητα απόκρισης σε μεταβαλλόμενες απαιτήσεις Λιγότερη έμφαση σε αυστηρές προδιαγραφές απαιτήσεων και σχεδιασμό Παράδειγμα: Ακραίος Προγραμματισμός (Extreme Programming XP) Ανάπτυξη λογισμικού από μικρή ομάδα σ έναν κοινό χώρο, όπου μοιράζονται ιδέες και αλληλοβοηθιούνται στην ανάπτυξη Αυξητική ανάπτυξη με τη βοήθεια επαναλαμβανόμενων κύκλων άτυπης ανάλυσης απαιτήσεων, σχεδιασμού, υλοποίησης, ελέγχου Νέες εκτεταμένες εκδόσεις σε τακτική βάση. Κάθε μιά μπορεί να αξιολογηθεί από τους εμπλεκόμενους και να χρησιμοποιηθεί σαν βάση για περαιτέρω αυξητικά βήματα Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-41

Τμηματικότητα Τι είναι Διαίρεση του λογισμικού σε διαχειρίσιμες υπομονάδες (modules) Οι υπομονάδες είναι οι δομικοί λίθοι ενός συστήματος ή προγράμματος Η τμηματικότητα ενός προγράμματος είναι απαραίτητη για την τροποποίησή του καθιστά εφικτή την κατανόηση και συντήρηση του προγράμματος Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-42

Τμηματικότητα Πως επιτυγχάνεται Μπορεί να επιτευχθεί με πολλούς τρόπους Η υπομονάδα μπορεί να έχει πολλές μορφές Προστακτικό μοντέλο [προσανατολισμένο σε λειτουργίες] οι υπομονάδες είναι διαδικασίες (procedures) Αντικειμενοστραφές μοντέλο [προσανατολισμένο σε αντικείμενα] οι υπομονάδες είναι αντικείμενα Συστατικά στοιχεία (components) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-43

Ένα απλό διάγραμμα δομής Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-44

Σύζευξη και Συνεκτικότητα Δύο σημαντικές έννοιες στο σχεδιασμό συστήματος => επηρεάζουν την ποιότητα του λογισμικού Σύζευξη: Σύνδεση μεταξύ των υπομονάδων. Χρειάζεται ελαχιστοποίηση Συνεκτικότητα: Εσωτερική συνοχή μέσα σε κάθε υπομονάδα. Χρειάζεται να είναι υψηλή Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-45

Σύζευξη (coupling) Η σύνδεση μεταξύ υπομονάδων => εξάρτηση μεταξύ υπομονάδων Επομένως Κατά το σχεδιασμό και την ανάπτυξη ενός συστήματος, η σύζευξη μεταξύ των υπομονάδων χρειάζεται να ελαχιστοποιηθεί Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-46

Είδη σύζευξης Σύζευξη ελέγχου (control coupling) Μια υπομονάδα μεταβιβάζει τον έλεγχο εκτέλεσης σε κάποια άλλη Σύζευξη δεδομένων (data coupling) Κοινή χρήση δεδομένων μεταξύ υπομονάδων Τροποποιήσεις στη μία υπομονάδα πιθανά επηρεάζουν και την άλλη Τροποποιήσεις στα δεδομένα οδηγούν σε πιθανές τροποποιήσεις και στις δύο υπομονάδες Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-47

Διάγραμμα δομής που δείχνει σύζευξη ελέγχου και δεδομένων (1/2) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-48

Διάγραμμα δομής που δείχνει σύζευξη ελέγχου και δεδομένων (2/2) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-49

Τμηματικότητα Πως επιτυγχάνεται Μπορεί να επιτευχθεί με πολλούς τρόπους και η υπομονάδα μπορεί να έχει πολλές μορφές Προστακτικό μοντέλο [προσανατολισμένο σε λειτουργίες] => οι υπομονάδες είναι διαδικασίες (procedures) Αντικειμενοστραφές μοντέλο [προσανατολισμένο σε αντικείμενα] => οι υπομονάδες είναι αντικείμενα Συστατικά στοιχεία (components) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-50

Σύζευξη Ελέγχου (τα βέλη δείχνουν τη διαδρομή του ελέγχου από αντικείμενο σε αντικείμενο) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-51

Συνεκτικότητα (cοhesion) Κατά το σχεδιασμό και την ανάπτυξη ενός συστήματος, η εσωτερική συνοχή κάθε υπομονάδας χρειάζεται να μεγιστοποιηθεί Συνεκτικότητα (cohesion) Λογική συνεκτικότητα Λειτουργική συνεκτικότητα Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-52

Λογική και λειτουργική συνεκτικότητα μέσα σε ένα αντικείμενο Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-53

Τμηματικότητα Πως επιτυγχάνεται Μπορεί να επιτευχθεί με πολλούς τρόπους και η υπομονάδα μπορεί να έχει πολλές μορφές Προστακτικό μοντέλο [προσανατολισμένο σε λειτουργίες] => οι υπομονάδες είναι διαδικασίες (procedures) Αντικειμενοστραφές μοντέλο [προσανατολισμένο σε αντικείμενα] => οι υπομονάδες είναι αντικείμενα Συστατικά στοιχεία (components) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-54

Συστατικά στοιχεία (components) Συστατικό: επαναχρησιμοποιήσιμη μονάδα λογισμικού Παραδείγματα συστατικών Components (CORBA) Αντικείμενα, Βιβλιοθήκες προτύπων σε C++, Java, C# [π.χ.net Framework class library] Web services Ανάπτυξη λογισμικού με χρήση επαναχρησιμοποιήσιμων συστατικών Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-55

ΣΤΡΑΤΗΓΙΚΕΣ ΕΛΕΓΧΟΥ ΛΟΓΙΣΜΙΚΟΥ Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-56

Στρατηγικές Ελέγχου Λογισμικού Έλεγχος γυάλινου κουτιού ή άσπρου κουτιού (glass-box testing, white-box testing) Αρχή του Pareto Έλεγχος βασικής διαδρομής Έλεγχος μαύρου κουτιού (black-box testing) Ανάλυση οριακών τιμών (προσδιορισμός διαστημάτων δεδομένων - τάξεων ισοδυναμίας) -> ελαχιστοποίηση των test cases Δοκιμή βήτα (beta testing) Δομική άλφα (alpha testing) Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-57

ΤΕΚΜΗΡΙΩΣΗ Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-58

Τεκμηρίωση Τεκμηρίωση χρήστη Έντυπο βιβλίο για όλους τους πελάτες Εγχειρίδια βοήθειας σε ηλεκτρονική μορφή Τεκμηρίωση συστήματος Πηγαίος κώδικας Έγγραφα σχεδιασμού Τεχνική τεκμηρίωση Για εγκατάσταση, προσαρμογή, ενημέρωση, κ.λπ. Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-59

Ιδιοκτησία Λογισμικού Πνευματική ιδιοκτησία Ο έλεγχος ουσιώδους ομοιότητας Κριτήρια φιλτραρίσματος: τι δεν αποτελεί πνευματική ιδιοκτησία Χαρακτηριστικά που καλύπτονται από πρότυπα Χαρακτηριστικά που επιβάλλονται από το σκοπό του λογισμικού Συστατικά στοιχεία που είναι δημόσια διαθέσιμα Το επιχείρημα εμφάνισης και αίσθησης Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-60

Ιδιοκτησία Λογισμικού (συνέχεια) Ευρεσιτεχνίες Οι φυσικοί νόμοι παραδοσιακά δεν μπορούν να πατενταριστούν Εμπορικά μυστικά Οι συμφωνίες μη αποκάλυψης μπορούν να επιβληθούν νομικά Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7-61