FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 Μ6. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων Δρ. Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ Εργαστήριο Ναυτικής Μηχανολογίας
Ενότητες
Ενότητες Μαθήματος 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου, συναρτήσεις και διαδικασίες, πέρασμα παραμέτρων. 4. Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων. 5. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 6. Στοιχεία μεθοδολογίας ορθού προγραμματισμού: αλγόριθμοι, δομές δεδομένων, επανάληψη, αναδρομή, δομημένος προγραμματισμός. 7. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 8. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 9. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 10.Υλοποίηση παραδειγμάτων και επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN.
Φάσεις Ανάπτυξης Λογισμικού
Βασική πηγή κεφαλαίου: E. Yourdon (1989)
Περιεχόμενα:
Περιεχόμενα:
Δομή οργανισμού:
Ρόλος αναλυτή: Scribe=a person who serves as a professional copyist, especially one who made copies of manuscripts before the invention of printing.
Project Life Cycle
Project Life Cycle
Project Life Cycle
Project Life Cycle: Classical
Project Life Cycle: Classical
Project Life Cycle: Towards Structured Life Cycle
Project Life Cycle: Towards Structured Life Cycle
Project Life Cycle: Towards Structured Life Cycle 9 activities 3 terminators
Project Life Cycle: Towards Structured Life Cycle
Project Life Cycle: Towards Structured Life Cycle
Project Life Cycle: Towards Structured Life Cycle
Modeling Tools
Τα 3 εργαλεία μοντελοποίησης: 1. Data flow diagram (DFD) 2. Entity-relationship diagram (ERD) 3. State-transition diagram (STD)
1. Data Flow Diagram
1. Data Flow Diagram
1. Data Flow Diagram
1.1 Data dictionary
1. 2 Process specifications
1. 2 Process specifications
1. 2 Process specifications
1. 2 Process specifications Παράδειγμα: Απλουστευμένο δομικό διάγραμμα μηχανής εσωτερικής καύσης Process specifications Μετρούμενες μεταβλητές Από: L. Guzzella, C. Onder, Introduction to modeling and control of ICE systems, springer, 2004.
1. 2 Process specifications Process specifications Από: L. Guzzella, C. Onder, Introduction to modeling and control of ICE systems, springer, 2004.
2. Entity-relationship diagram
2. Entity-relationship diagram
2. Entity-relationship diagram
3. State-transition diagram
3. State-transition diagram
3. Statetransition diagram
3. State-transition diagram
3. State-transition diagram
3. State-transition diagram State flow Toolbox στο Matlab
3. State-transition diagram State flow Toolbox στο Matlab
3. State-transition diagram State flow diagram στο Matlab: Σύστημα αυτόματης μετάδοσης κίνησης
3. State-transition diagram State flow diagram στο Matlab: Σύστημα αυτόματης μετάδοσης κίνησης
3. State-transition diagram State flow diagram στο Matlab: Σύστημα αυτόματης μετάδοσης κίνησης
Additional modeling tools: Flowcharts
Additional modeling tools: Flowcharts
Additional modeling tools: Flowcharts Ένα μειoνέκτημα των flow charts:
Η εξέλιξη των flow charts: UML Η γλώσσα Unified Modeling Language ( UML ) είναι μια γενικής χρήσης γλώσσα μοντελοποίησης και ανάπτυξης στον τομέα software engineering, που έχει ως στόχο να παρέχει ένα τυποποιημένο τρόπο για να απεικονίσει το σχεδιασμό ενός συστήματος. H UML τυποποιήθηκε μεταξύ 1995 και 1997 από την IBM, HP, Microsoft, Oracle, Unisys, DEC, κ.λπ. Η UML 2 έχει πολλούς τύπους διαγραμμάτων, τα οποία χωρίζονται σε δύο κατηγορίες: τύποι που αντιπροσωπεύουν δομικές πληροφορίες (structural) οι υπόλοιποι αντιπροσωπεύουν γενικούς τύπους συμπεριφοράς (behavioral) (πηγή: Wikipedia)
Η εξέλιξη των flow charts: UML
Η εξέλιξη των flow charts: UML 1. Structural diagrams Τα διαγράμματα δομής τονίζουν τα στοιχεία που πρέπει να περιέχονται στο σύστημα που μοντελοποιείται. Αφού τα διαγράμματα δομής αντιπροσωπεύουν τη δομή, χρησιμοποιούνται εκτενώς στην τεκμηρίωση της αρχιτεκτονικής του λογισμικού των συστημάτων λογισμικού. (πηγή: Wikipedia) Class diagram
Η εξέλιξη των flow charts: UML 2. Behavior diagrams Τα διαγράμματα συμπεριφοράς τονίζουν τι πρέπει να συμβεί στο σύστημα που μοντελοποιείται. Αφού τα διαγράμματα απεικονίζουν τη συμπεριφορά ενός συστήματος, χρησιμοποιούνται εκτεταμένα για να περιγράψουν τη λειτουργικότητα των συστημάτων λογισμικού. (πηγή: Wikipedia)
Programming & Testing
23. Programing and Testing
23. Programing and Testing
23. Programing and Testing
23. Programing and Testing
23. Programing and Testing
Maintenance
24. Maintaining the specification
24. Maintaining the specification
24. Maintaining the specification
24. Maintaining the specification
Case Study
Case Study summons=κλήση
Configuration Management
Configuration Management Configuration Management (ή version control) είναι η λεπτομερής καταγραφή και ενημέρωση των πληροφοριών που περιγράφει το υλικό (hardware) και το λογισμικό (software) ενός οργανισμού/επιχείρησης. Οι πληροφορίες αυτές περιλαμβάνουν συνήθως τις εκδόσεις και ενημερώσεις που έχουν εφαρμοστεί σε εγκατεστημένα πακέτα λογισμικού και τις θέσεις και τις διευθύνσεις δικτύου των συσκευών υλικού. Η διατήρηση της πληροφορίας γίνεται μέσω ειδικού λογισμικού διαχείρισης. Όταν ένα σύστημα χρειάζεται αναβάθμιση στο λογισμικό ή το υλικό, ένας προγραμματιστής/τεχνικός μπορεί να έχει πρόσβαση στο πρόγραμμα διαχείρισης για να δει την τρέχουσα μορφή προγράμματος ή υλικού. Σε περίπτωση που αποφασιστεί η αναβάθμιση που απαιτείται, μετά την εκτέλεσή της ενημερώνεται μέσω του λογισμικού διαχείρισης η κατάλληλη πληροφορία, όπως ημέρα/ώρα αλλαγής, τρέχουσα έκδοση, υπεύθυνος αλλαγής, κλπ.
Configuration Management Παράδειγμα: Configuration Management στο MATLAB % Plant 2.31, G(s)=3(-2s+1)/(5s+1)(10s+1) % % Copyright 1996-2003 Sigurd Skogestad & Ian Postlethwaite % $Id: Eq2_26.m,v 1.1 2004/01/26 16:37:11 heidisi Exp $ s=tf('s'); g=3*(-2*s+1)/(5*s+1)/(10*s+1); % frequency response of G points=301; w=logspace(-3,1,points); [mag,pha]=bode(g,w); mag=mag(:); pha=pha(:);
Configuration Management
Configuration Management