ΜΗΧΑΝΙΚΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ
ΘΕΩΡΙΑ
1: Εισαγωγή στη Μηχανική Λογισμικού
- Μηχανική και Τεχνολογία Λογισμικού (Software Engineering):
- Η μελέτη και εφαρμογή συστηματικών και προτυποποιημένων μεθόδων ανάπτυξης, λειτουργίας και συντήρησης συστημάτων λογισμικού, με σκοπό των επίλυση συγκεκριμένων πρακτικών προβλημάτων.
- Από επιστημονική σκοπιά αποτελεί ξεχωριστό κλάδο της πληροφορικής, αλλά χαρακτηρίζεται και από ιδιότητες των επιστημών μηχανικού. Καλείται μηχανική λογισμικού, όταν η έμφαση δίνεται στην επιστημονική έρευνα σε αυτό το πεδίο, ή τεχνολογία λογισμικού, όταν η έμφαση δίνεται στην τεχνική / βιομηχανική πρακτική.
- Συνήθως εφαρμόζεται σε μεγάλης κλίμακας και περίπλοκα έργα λογισμικού (π.χ. το πανεθνικής εμβέλειας σύστημα μηχανογράφησης της Εφορίας), με σκοπό την ελαχιστοποίηση του κόστους και των σφαλμάτων, καθώς και τη μεγιστοποίηση της αποδοτικότητας.
- Σφάλματα και Λάθη:
- Σφάλμα ονομάζεται ένα ελαττωματικό τμήμα κώδικα στο λογισμικό, είτε αυτό προέκυψε από εσφαλμένη αρχική σχεδίαση, είτε από εσφαλμένο προγραμματισμό.
- Λάθος ονομάζεται η κατάσταση στην οποία περιέρχεται το λογισμικό όταν εκτελείται ένα εσφαλμένο τμήμα κώδικα. Μία κατάσταση λάθους μπορεί να οδηγήσει σε αποτυχία του συστήματος.
- Αποτυχία ονομάζεται η δυσλειτουργική συμπεριφορά ενός εκτελούμενου λογισμικού, υπό συγκεκριμένες συνθήκες, εξαιτίας μίας κατάστασης λάθους.
- Οι μέθοδοι της τεχνολογίας λογισμικού στοχεύουν στην ελαχιστοποίηση των σφαλμάτων, ούτως ώστε να μειωθούν οι πιθανότητες αποτυχίας του τελικού λογισμικού κατά τη λειτουργία του.
- Ποιότητα Λογισμικού:
- Ένα λογισμικό χαρακτηρίζεται ως ποιοτικό με βάση ποικίλα κριτήρια που αφορούν τον αριθμό των σφαλμάτων στον κώδικά του, τον βαθμό εξάρτησης μεταξύ των διαφορετικών συστατικών του, την τεκμηρίωση του κώδικα με συνοδευτικό επεξηγηματικό υλικό κλπ.
- Κεντρική έννοια της τεχνολογίας λογισμικού είναι η διεργασία ανάπτυξης, η οποία στοχεύει στην κατασκευή ποιοτικού λογισμικού.
- Διεργασία Ανάπτυξης ή Κύκλος Ζωής Λογισμικού:
- Ένα καλά καθορισμένο σύνολο διαδοχικών φάσεων οι οποίες εκτελούνται κατά την ανάπτυξη ενός συστήματος λογισμικού. Κάθε φάση δίνει ως αποτέλεσμα ένα «προϊόν» το οποίο αξιοποιεί η επόμενη φάση για να παράγει το δικό της προϊόν.
- Προϊόν της τελικής φάσης είναι το πλήρες, ετοιμοπαράδοτο και απόλυτα λειτουργικό λογισμικό που ζητήθηκε.
- Οι διαφορετικές φάσεις είναι δυνατόν, και συνηθισμένο σε μεγάλης κλίμακας έργα, να εκτελεστούν από τελείως διαφορετικές ομάδες ανθρώπων.
- Μόνο μία φάση, αυτή της υλοποίησης, βασίζεται σε προγραμματισμό υπολογιστών προκειμένου να εκτελεστεί.
- Συνηθέστερες Φάσεις (διαδοχικά):
- Ανάλυση και Καθορισμός Απαιτήσεων
- Σχεδίαση
- Υλοποίηση (στηρίζεται στον προγραμματισμό)
- Έλεγχος
- Παράδοση (δεν είναι πλήρης φάση, απλώς τελειώνει η κατασκευή του ζητούμενου λογισμικού και παραδίδεται στον πελάτη που το παρήγγειλε)
- Συντήρηση (λαμβάνει χώρα μετά την ολοκλήρωση της κατασκευής του λογισμικού, για μακρό χρονικό διάστημα)
- Παράγοντες εμφάνισης και εξέλιξης της τεχνολογίας λογισμικού μετά τη δεκαετία του 1960:
- Μαζική εξάπλωση των υπολογιστών.
- Ανεπάρκεια του παραδοσιακού, απλοϊκού μοντέλου «προγραμματισμού / αποσφαλμάτωσης» (λέγεται μοντέλο «υλοποίησης και επιδιόρθωσης») για την ανάπτυξη λογισμικού.
- Όξυνση του ανταγωνισμού μεταξύ εταιρειών λογισμικού.
- Επικράτηση του αντικειμενοστρεφούς προγραμματιστικού παραδείγματος μετά τη δεκαετία του 1980.
- Βασικές έννοιες της τεχνολογίας λογισμικού:
- Διεργασία Ανάπτυξης
- Πρωτότυπα
- Επαναχρησιμοποίηση Λογισμικού
- Εργαλεία και Περιβάλλοντα Ανάπτυξης
- Αρχιτεκτονική Λογισμικού
- Πρωτότυπα:
- Ένα πρωτότυπο είναι μία χονδροειδής, ατελής και προσωρινή υλοποίηση του ζητούμενου λογισμικού, συνήθως με ελλιπείς λειτουργίες και πρώιμη εμφάνιση.
- Το πρωτότυπο επιτρέπει μία πρώτη επαφή του πελάτη, του δημιουργού και των χρηστών με ένα περίγραμμα του ανολοκλήρωτου ακόμα λογισμικού.
- Με αυτόν τον τρόπο μπορεί να γίνει έλεγχος του κατά πόσον η σχεδίαση που έχει επιλεγεί και οι αποφάσεις που έχουν ληφθεί, ικανοποιούν τις απαιτήσεις που προσδιορίστηκαν κατά τη φάση της ανάλυσης απαιτήσεων.
- Ένα πρωτότυπο πρέπει να επικυρωθεί (ως προς το κατά πόσον ικανοποιεί τις απαιτήσεις). Αν περάσει αυτή τη διαδικασία, τότε συνήθως η φάση της υλοποίησης επαναλαμβάνεται προκειμένου να κατασκευαστεί ένα πιο εκλεπτυσμένο πρωτότυπο, εγγύτερα στο ζητούμενο τελικό προϊόν.
- Αν το πρωτότυπο δεν περάσει τη διαδικασία της επικύρωσης, τότε συνήθως επαναλαμβάνεται από την αρχή η φάση της σχεδίασης (ή και της ανάλυσης απαιτήσεων).
- Αρχιτεκτονική Λογισμικού:
- Η αρχιτεκτονική του λογισμικού είναι μία περιγραφή των συστατικών στοιχείων που συνθέτουν το συνολικό προϊόν, καθώς και των σχέσεων και εξαρτήσεων μεταξύ τους.
- Καθορίζεται κατά τη φάση της σχεδίασης.
- Για την περιγραφή της αρχιτεκτονικής χρησιμοποιούνται προτυποποιημένα εργαλεία, όπως οι γλώσσες μοντελοποίησης λογισμικού (π.χ. UML).
- Επαναχρησιμοποίηση Λογισμικού:
- Η ύπαρξη συνηθισμένων, κοινών υποπροβλημάτων σε διαφορετικά συστήματα λογισμικού, έχει οδηγήσει στην επικράτηση μίας αντίληψης κατασκευής συστατικών λογισμικού τα οποία μπορούν να αξιοποιηθούν ξανά σε διαφορετικό σύστημα.
- Η κατασκευή ενός συστατικού με γνώμονα τη δυνατότητα επαναχρησιμοποίησής του, δεν είναι εύκολη και ορισμένες φορές απαιτεί διαφορετικό σχεδιασμό.
- Εργαλεία και Περιβάλλοντα Ανάπτυξης:
- Εργαλεία μοντελοποίησης (π.χ. Rational Rose κλπ)
- Εργαλεία αυτόματης παραγωγής κώδικα από σχέδιο
- Ολοκληρωμένα Περιβάλλοντα Ανάπτυξης (π.χ. Visual Studio, Delphi, Eclipse κλπ)
- Αποσφαλματωτές
- Εργαλεία αυτόματης αναδόμησης κώδικα (με βάση κάποια κριτήρια)
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
Αφήστε το σχόλιό σας για την τρέχουσα ανάρτηση: