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



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

Περιεχόμενο του μαθήματος

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

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

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

Περιεχόμενο του μαθήματος

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

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

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

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

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

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

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

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

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

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

Rational Unified Process:

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

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

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

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

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

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

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

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

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

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

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

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

Γενικό πλαίσιο. Software Evolution Monitor Requirements. Απόστολος Ζάρρας

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

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

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

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

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

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

Υποδείγματα Ανάπτυξης

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

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

Μοντελοποίηση Πεδίου

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

Δομημένος Προγραμματισμός

Η έννοια της μεταβλητής και της λίστας με την βοήθεια του λογισμικού Scratch

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

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

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

Διδακτική Πληροφορικής

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Κεφάλαιο 4: Λογισμικό Συστήματος

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

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

Στοιχείαδιδακτικής. Στόχοι μαθήματος φύλλα εργασίας ΒΙΟΛΟΓΙΑ. Γεωργάτου Μάνια ΣχολικήΣύμβουλοςΠΕ04

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

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

Συστήματα Πληροφοριών Διοίκησης

Δομημένος Προγραμματισμός

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

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

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

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

Διδακτική της Πληροφορικής

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Διδακτική της Πληροφορικής ΙΙ

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

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

Παρο υσίαση αλ γόριθμου

Ανάλυση Περιπτώσεων Χρήσης

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

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

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

ΚΕΦΑΛΑΙΟ 7 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά

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

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

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

Α.2 Μαθησιακά Αποτελέσματα Έχοντας ολοκληρώσει επιτυχώς το μάθημα οι εκπαιδευόμενοι θα είναι σε θέση να:

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1)

ΕΠΛ 003.1: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Για διοικητικά στελέχη

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

Οργάνωση και Διαχείριση Δημοσίων Έργων με μια εφαρμογή

Αποτύπωση επιχειρηματικής γνώσης και Διαδικασιών

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

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Transcript:

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Βασικές Έννοιες Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Σκοπός του μαθήματος Η απόκτηση των γνώσεων και δεξιοτήτων που απαιτούνται για την κατασκευή εφαρμογών λογισμικού Μετά το πέρας του μαθήματος θα πρέπει να είστε σε θέση να χρησιμοποιείτε τις τεχνικές αντικειμενοστρεφούς ανάλυσης ώστε να κατασκευάζετε το μοντέλο ανάλυσης μιας εφαρμογής λογισμικού σύμφωνα με την Ενοποιημένη Προσέγγιση να αναπτύσσετε λογισμικό (συγγραφή κώδικα, έλεγχος, τεκμηρίωση) χρησιμοποιώντας σύγχρονα εργαλεία 2 1

Περιγραφή μαθήματος Διδασκαλία Πότε: Δευτέρα 09:00 11:00 π.μ. Που: Κτίριο Γεωγραφίας, Αίθουσα B Εργαστήριο Πότε: Δευτέρα 14:00 16:00 (Ομάδα Α) 16:00 18:00 (Ομάδα Β) Που: Κτίριο Γεωγραφίας, Εργαστήριο Η/Υ (μεγάλο) Διδακτικά Βιβλία Β. Γερογιάννης, κ.α., Αντικειμενοστρεφής Ανάπτυξη Λογισμικού με τη UML, Εκδόσεις Κλειδάριθμος, 2006 Γιακουμάκης Μ. και Διαμαντίδης Ν., Τεχνολογία Λογισμικού, Εκδόσεις Αθ. Σταμούλης, 2009 Αξιολόγηση Γραπτή εξέταση 50% Ομαδική εργασία 50% 3 Περιεχόμενο του μαθήματος Εισαγωγή στις έννοιες του σχεδιασμού και της ανάπτυξης λογισμικού Μοντελοποίηση διεργασιών και κύκλου ζωής λογισμικού Σχεδιασμός και διοίκηση έργου Εξαγωγή των απαιτήσεων Σχεδίαση του συστήματος Εισαγωγή στην Αντικειμενοστρεφή σχεδίαση λογισμικού Η γλώσσα μοντελοποίησης UML Εργαλεία Case Ανάπτυξη λογισμικού με τη χρήση της γλώσσας προγραμματισμού Java 4 2

Η αγορά της πληροφορικής Γιακουμάκης, 2009 5 Εταιρείες λογισμικού 6 3

Λογισμικό Εντολές (προγράμματα Η/Υ) οι οποίες όταν εκτελούνται επιτυγχάνουν επιθυμητά αποτελέσματα και επιδόσεις Δομές δεδομένων που επιτρέπουν σε προγράμματα να διαχειριστούν με επάρκεια πληροφορίες Κείμενα, διαγράμματα κ.τ.λ. που περιγράφουν τη λειτουργία και χρήση των προγραμμάτων Με άλλα λόγια, λογισμικό δεν είναι μόνο γραμμές κώδικα σε κάποια γλώσσα προγραμματισμού! 7 Το λογισμικό ως προϊόν Λογισμικό Συστήματος UNIX DOS Windows Λογισμικό βιομηχανικών συστημάτων Λογισμικό Εφαρμογών επιχειρηματικές εφαρμογές επιστημονικές εφαρμογές εκπαιδευτικές εφαρμογές εφαρμογές ψυχαγωγίας 8 4

Το λογισμικό ως μέρος συστημάτων ΛΟΓΙΣΜΙΚΟ ΧΡΗΣΤΗΣ Υ/Σ 1 Υ/Σ 2 Υ/Σ ν π.χ. μηχανές αυτόματης πώλησης ιατρικά μηχανήματα ανάλυσης και απεικόνισης συστήματα ελέγχου εναέριας κυκλοφορίας 9 Το λογισμικό δεν είναι ορατό 10 5

Το λογισμικό είναι ανομοιογενές 11 Ανάπτυξη λογισμικού 12 6

Χαρακτηριστικά της ανάπτυξης λογισμικού Το αποτέλεσμα δεν είναι «ορατό» το ίδιο αλλά μόνο το αποτέλεσμα της χρήσης του Η ανάπτυξη λογισμικού αλλάζει συνεχώς στόχο μεταβάλλονται οι απαιτήσεις των χρηστών το περιβάλλον ανάπτυξης, καθώς και το υλικό συνεχώς εξελίσσονται το περιβάλλον λειτουργίας του λογισμικού μεταβάλλεται ραγδαία Συνέπεια: μη αυτοματοποιημένη ανάπτυξη λογισμικού 13 Κρίση λογισμικού Κατά κανόνα η ανάπτυξη μεγάλων έργων λογισμικού παρουσιάζει προβλήματα: υπερβάσεις στο χρονοδιάγραμμα υπερβάσεις στον προϋπολογισμό παραγόμενο προϊόν κακής ποιότητας πολυδάπανη συντήρηση προϊόντος Έρευνα του 1979: από έργα 6.8 εκ. δολαρίων 47% πληρώθηκε αλλά δεν παραδόθηκε προς χρήση 29% παραδόθηκε αλλά δεν χρησιμοποιήθηκε 19% τροποποιήθηκε μετά την παράδοση 3% χρησιμοποιήθηκε με μικρές αλλαγές 2% χρησιμοποιήθηκε όπως παραδόθηκε 14 7

Τεχνολογία Λογισμικού Η απάντηση στην κρίση λογισμικού Η ανάπτυξη καλού λογισμικού σε συγκεκριμένο χρόνο και με χαμηλό κόστος Όψεις καλού λογισμικού: Χρηστικότητα Ποιότητα χρηστική κατασκευαστική με βάση το κόστος 15 Επιθυμητά χαρακτηριστικά λογισμικού Κάνει την δουλειά για την οποία προορίζεται Κάνει τη δουλειά σωστά Κατασκευάζεται εντός χρονοδιαγράμματος Κατασκευάζεται εντός προϋπολογισμού Δεν περιέχει σφάλματα Συντηρείται εύκολα Είναι επίκαιρο και ανταγωνιστικό ως προϊόν Η Τεχνολογία Λογισμικού (οφείλει να) παρέχει την απαιτούμενη υποστήριξη και τεκμηρίωση, ώστε η ανάπτυξη του λογισμικού να είναι μια ιδιαίτερα ευέλικτη και προσαρμόσιμη διαδικασία. 16 8

Εξελίξεις που επηρέασαν τη θεμελίωση της Τεχνολογίας Λογισμικού Αναποτελεσματική προσήλωση σε αυστηρές διαδικασίες και πρότυπα από τους κατασκευαστές Μη εφικτή η «κατά γράμμα» εφαρμογή των παραδοσιακών προσεγγίσεων Η «άναρχη» ανάπτυξη οδηγούσε με ακρίβεια σε αποτυχημένα έργα Ρυθμοί ανάπτυξης της τεχνολογίας υλικού Νέα εργαλεία για τους χρήστες και δυνατότητες αξιοποίησής τους Ηανάδειξητουinternet Νέα πλατφόρμα ανάπτυξης, ανομοιογένεια, γεωγραφική κατανομή, μη ασφαλής επικοινωνία Συνεχώς αυξανόμενη ζήτηση Σύγκλιση των νέων προσεγγίσεων και η επαφή τους με τη «βιομηχανική πρακτική» 17 Τάσεις στην ανάπτυξη του λογισμικού Ευέλικτα μοντέλα κύκλου ζωής λογισμικού Προσαρμόζονται στα χαρακτηριστικά του περιβάλλοντος ανάπτυξης Ευέλικτη τεκμηρίωση Σύνθετα και ολοκληρωμένα περιβάλλοντα ανάπτυξης Γλώσσες, βιβλιοθήκες, εργαλεία συγγραφής και ελέγχου κώδικα Ο εξελισσόμενος ρόλος των εργαλείων CASE Αυτοματοποιούν μέρος της παραγωγής του πηγαίου κώδικα Υποστηρίζουν και διατηρούν επίκαιρη την τεκμηρίωση του λογισμικού 18 9

Έννοιες της ανάπτυξης λογισμικού -1 ΕΡΓΑΛΕΙΑ ΜΕΘΟΔΟΛΟΓΙΕΣ ΔΙΑΔΙΚΑΣΙΕΣ ΑΝΑΠΤΥΞΗΣ ΜΟΝΤΕΛΛΑ ΚΥΚΛΟΥ ΖΩΗΣ Υποστηρίζουν την εφαρμογή των μεθοδολογιών Καθορίζουν πως πρέπει να εκτελούνται οι διαδ. ανάπτυξης Προσδιορίζουν ποιες είναι οι διαδικασίες ανάπτυξης Στόχος είναι η καθοδήγηση του κατασκευαστή προκειμένου να επιτύχει την καλύτερη δυνατή υλοποίηση των διαδικασιών ανάπτυξης λογισμικού (πιο παραγωγικές διαδικασίες, με μικρότερο δυνατό ρίσκο και λιγότερα δυνατά σφάλματα) 19 Έννοιες της ανάπτυξης λογισμικού -2 Δραστηριότητες ή διαδικασίες ανάπτυξης (software process). Ταξινομούνται στις: Προδιαγραφή Ανάπτυξη Σχεδίαση, περιγραφή πηγαίου κώδικα Επαλήθευση Εξέλιξη Μεθοδολογία ανάπτυξης (software development methodology) Επιμέρους ενέργειες, βήματα, προϊόντα που παράγονται, πότε μια διαδικασία θεωρείται περατωθείσα Τα διαφορετικά μοντέλα κύκλου ζωής (καταρράκτη, προτυποποίησης, λειτουργικής επαύξησης, σπειροειδές, πίδακα, γενικό), Διαφοροποιούνται: ως προς τις προτεινόμενες διαδικασίες και επιμέρους φάσεις (κατασκευή, χρήση, συντήρηση) ως προς την επαναληπτικότητα και εμβέλεια των εργασιών 20 ως προς τις ενδιάμεσες αποτιμήσεις από τον πελάτη ή τον κατασκευαστή 10

Προδιαγραφή Απαιτήσεων από το λογισμικό Η δομημένη και λεπτομερής περιγραφή των απαιτήσεων από το λογισμικό, η οποία γίνεται με τη μορφή λόγου και όπου απαιτείται διαγραμμάτων Π.χ. διάγραμμα ροής δεδομένων, διάγραμμα οντοτήτων συσχετίσεων Συμπεριλαμβάνει Συμπεριφορά λογισμικού Περιορισμοί στην ανάπτυξη Συμπεριφορά σε ανεπιθύμητες καταστάσεις Επιθυμητά χαρακτηριστικά Εύκολο να αλλαχτεί Χρήσιμο στη συντήρηση 21 Σχέδιο λογισμικού Η περιγραφή των μονάδων που αποτελούν το λογισμικό, των συσχετίσεων μεταξύ τους, της διάταξής τους καθώς και των εσωτερικών λεπτομερειών τους Κριτήρια σχεδίου: Ικανοποιεί τις προδιαγραφές απαιτήσεων λειτουργικών και μη Περιγράφει όλες τις πλευρές του λογισμικού Δεδομένα, λειτουργίες, συμπεριφορά Είναι εύκολα κατανοητό από τους προγραμματιστές Δεν περιέχει σφάλματα Η Τεχνολογία Λογισμικού παρέχει μεθοδολογίες, δηλ. κατευθυντήριες γραμμές για το σχεδιαστή, γνωρίζοντας ότι δεν υπάρχει απόλυτα καλή λύση, αλλά βέλτιστη μέσα στο συγκεκριμένο περιβάλλον κατασκευής λογισμικού 22 11

Τεχνοτροπίες Ανάπτυξης Μεθοδολογίες δομημένης σχεδίασης Κάθε εφαρμογή θεωρείται ως μια ενιαία και σχετικά αυτοτελής, μεγάλη και σύνθετη λειτουργική μονάδα εξ ολοκλήρου υπεύθυνη για την επικοινωνία με το περιβάλλον της και την πραγματοποίηση των υπολογιστικών καθηκόντων της Βασικό χαρακτηριστικό Ανεξαρτησία δεδομένων από τις μονάδες λογισμικού 23 Πορεία δομημένης σχεδίασης και ανάπτυξης Σύστημα Υπο-Συστήματα ΠΡΟΔΙΑΓΡΑΦΗ ΑΠΑΙΤΗΣΕΩΝ ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ Ατομικές μονάδες λογισμικού (διαδικασίες, συναρτήσεις) ΔΙΑΓΡΑΜΜΑ ΔΟΜΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Δεδομένα ΨΕΥΔΟΚΩΔΙΚΑΣ 24 12

Διάγραμμα Ροής Δεδομένων ΧΡΗΣΤΗΣ Στοιχεία μαθητή Στοιχεία καθηγητή 1.2 Διαχείριση Αρχείου Καθηγητών 1.1 Διαχείριση Αρχείου Μαθητών Αρχείο μαθητών Εγγραφή καθηγητή Εγγραφή μαθητή Ενημερωμένο αρχείο ΧΡΗΣΤΗΣ Στοιχεία μαθήματος 1.3 Διαχείριση Αρχείου Μαθημάτων Αρχείο καθηγητών Εγγραφή μαθήματος Ενημερωμένο αρχείο Αρχείο μαθημάτων 25 Διάγραμμα δομής προγράμματος 1.1 Διαχείριση Αρχείου Μαθητή ΣΜ Διάβασμα στοιχείων μαθητή από το πληκτρολόγιο ΣΜ ΕΜ Ετοιμασία εγγραφής μαθητή ΕΜ ΕΜ Αποθήκευση εγγραφής μαθητή στοαρχείομαθητών PROCEDURE Get_SM(stoixeia_m: IN/OUT) --------------------------------------------------------------------- Εμφάνισε φόρμα στην οθόνη Διάβασε τα πεδία από το πληκτρολόγιο IF ο χρήστης πατήσει ESC THEN Μηδένισε τις τιμές όλων των πεδίων της stoixeia_m END_IF END_PROCEDURE Δομικά συστατικά (procedures, functions) 26 13

Λογική της δομημένης σχεδίασης Η φιλοσοφία της δομημένης σχεδίασης σχετίζεται με τα χαρακτηριστικά των υπολογιστών της εποχής (δεκαετία 60 έως και δεκαετία 80) Ακολουθιακή εκτέλεση εντολών Απλές δυνατότητες επικοινωνίας με το περιβάλλον με τη μορφή κειμένου Περιορισμένες επιδόσεις και αποθηκευτικές ικανότητες Στη δεκαετία του 90 και μετά διαμορφώνονται νέα δεδομένα που επηρεάζουν τη τεχνοτροπία σχεδίασης λογισμικού Πολυεπεξεργασία Παράλληλη εκτέλεση εντολών Επικοινωνία με γραφικό περιβάλλον 27 Αδυναμίες δομημένης ανάλυσης και σχεδίασης Εγγενής αδυναμία στην απεικόνιση των οντοτήτων του πραγματικού κόσμου σε συστατικά λογισμικού Η τακτική«διαίρει και βασίλευε» έχει νόημα μόνο όταν η λύση του προβλήματος είναι υπόθεση αριθμητικών υπολογισμών Το δίδυμο «συστατικά λογισμικού» και «ανεξάρτητα δεδομένα» δεν μοντελοποιούν εύκολα και φυσικά την επιχειρησιακή λογική (αποτελούν ανεπαρκές μεθοδολογικό εργαλείο) Δυσκολία διαχείρισης των μοντέλων παράστασης λογισμικού λόγω Πλήθους και πολυπλοκότητας συστατικών Συσχετίσεων των συστατικών με αποτέλεσμα τις παρενέργειες κατά την πραγματοποίηση μεταβολών (κόστος συντήρησης > 50 %) Η πολυπλοκότητα και η φύση των συσχετίσεων ενός συστατικού λογισμικού δεν επιτρέπει την επαναχρησιμοποίηση του σε νέες εφαρμογές, ακόμα κι αν αναγνωριστούν ομοιότητες Ιδιαίτερα αληθινό για επιχειρηματικές εφαρμογές 28 14

Αντικειμενοστρεφής ανάπτυξη λογισμικού Αντικειμενοστρεφής Χαρακτηρισμός που σημαίνει «στραμμένος (προσανατολισμένος) σε αντικείμενα» και αποδίδεται σ εκείνο τον τρόπο σκέψης κατά την ανάπτυξη λογισμικού, στο οποίο τα «αντικείμενα» είναιοιβασικέςδομικέςμονάδες Αντικείμενο Δομικό συστατικό του λογισμικού. Κάθε αντικείμενο έχει: Κατάσταση: που περιγράφει όλες τις στατικές του ιδιότητες, όπως τιμές σε μεταβλητές μνήμης Συμπεριφορά: τρόπο με τον οποίο ανταποκρίνεται σε κλήσεις από το περιβάλλον του Ταυτότητα: μοναδική διάκριση από τα ομοειδή του Μπορεί να θεωρηθεί ως η συγχώνευση δύο εννοιών που κατέχουν δεσπόζουσα θέση στο δομημένη ανάπτυξη: της εγγραφής (record) και της συνάρτησης ή διαδικασίας (function ή procedure) Αν σε μια εγγραφή (συλλογή μεταβλητών μνήμης) προσθέσουμε ενεργά συστατικά (μονάδες προγράμματος που εκτελούν υπολογισμούς), τότε μιλάμε για αντικείμενο κι όχι για εγγραφή Το αντικείμενο συνδυάζει και ένα σύνολο δεδομένων και ένα σύνολο συναρτήσεων που χειρίζονται τα δεδομένα αυτά 29 15