Μηχανικός λογισμικού

Μηχανικός λογισμικού (αγγλ.: software engineer) καλείται ο επαγγελματίας πτυχιούχος Πληροφορικής, που εφαρμόζει τις τυποποιημένες αρχές της μηχανικής λογισμικού. Προγραμματιστής ονομάζεται ο τεχνικός επαγγελματίας ο οποίος είτε ασχολείται αποκλειστικά με μια από τις εργασίες ενός μηχανικού λογισμικού και συγκεκριμένα την υλοποίηση ενός προγράμματος (βλ. παρακάτω για τις υπόλοιπες φάσεις ανάπτυξης), είτε δεν έχει σπουδάσει Πληροφορική σε κάποιο τριτοβάθμιο ίδρυμα, και ως εκ τούτου δεν έχει πιστοποιηθεί στην εφαρμογή των τυποποιημένων αρχών ανάπτυξης λογισμικού, είτε και τα δυο.

 Πριν επιχειρηθεί η αποτύπωση των απαραίτητων σπουδών ενός Μηχανικού Λογισμικού μαζί με το αναλυτικό πρόγραμμα μαθημάτων και τα προσδοκώμενα μαθησιακά αποτελέσματα τους, είναι σημαντικό να διαφοροποιηθούν οι έννοιες Λογισμικό και Πρόγραμμα: το πρόγραμμα είναι υποσύνολο του λογισμικού, καθώς υπολείπεται τουλάχιστον στην Τεκμηρίωση (software documentation) αν όχι και σε άλλες φάσεις ανάπτυξης του λογισμικού (πιστοποίηση, εγκυροποίηση, προδιαγραφή κ.α.). Γίνεται έτσι κατανοητό ότι ένα πρόγραμμα δεν είναι απαραίτητο να ακολουθεί τις διαδικασίες και τις τυποποιημένες αρχές ανάπτυξης που ακολουθεί το λογισμικό. Η παραπάνω διάκριση διαφοροποιεί επομένως τον προγραμματιστή από τον μηχανικό λογισμικού. Στην Ελλάδα, τα τελευταία έτη έχουν δημιουργηθεί και ρητά κατευθύνσεις Μηχανικών Λογισμικού (όπως και Μηχανικών Δικτύων και Μηχανικών Υπολογιστών) στα τμήματα Πληροφορικής της τριτοβάθμιας εκπαίδευσης (ΤΕΙ) ενώ παλιότερα ειδικά στα Πανεπιστήμια, όπου επιτρέπονταν οι κατευθύνσεις υπήρχαν παράγωγες, σύνθετες ή παρόμοιες ονομασίες των ενδεικτικά τριών εφαρμοσμένων κατευθύνσεων της Πληροφορικής : π.χ. κατεύθυνση Αρχιτεκτονικής Υπολογιστών και Συστημάτων (δηλαδή Μηχανικών Υπολογιστών), κατεύθυνση Πληροφοριακών Συστημάτων και Εφαρμογών (δηλαδή Μηχανικών Λογισμικού), κατεύθυνση Τηλεπικοινωνιών και Δικτύων (δηλαδή Μηχανικών Δικτύων), κατεύθυνση Τεχνητής Νοημοσύνης και Εφαρμογών κ.α.Παλιότερα, ο όρος προγραμματιστής, σε εκπαιδευτικό επίπεδο, συναντιόταν στα πτυχία - απολυτήρια που εξέδιδαν τα Τεχνικά Λύκεια (ΤΕΛ, ΤΕΕ), ενώ αργότερα ο όρος αυτός αντικαταστάθηκε από τίτλους (ΕΠΑΛ, ΙΕΚ) όπως: "τεχνικός εφαρμογών πληροφορικής", "τεχνικός λογισμικού", "τεχνικός υποστήριξης συστημάτων" κ.α. Εξίσου σημαντική, για τον προσδιορισμό του όρου "Μηχανικός Λογισμικού", είναι και η κείμενη νομοθεσία των Πληροφορικών (πτυχιούχων Πληροφορικής) Πανεπιστήμιων και ΤΕΙ στην οποία όλες οι φάσεις ανάπτυξης του Λογισμικού αλλά και των Συστημάτων Υπολογιστών, Δικτύων κ.α αντιστοιχίζεται ρητά με τις ακαδημαϊκές γνώσεις τις οποίες αυτοί έχουν λάβει κατά την διάρκεια της φοίτησης τους. Σε κάθε περίπτωση μια τέτοιου είδους κατοχύρωση, όσον αφορά την Πληροφορική, δεν υφίσταται για μη πτυχιούχους τριτοβάθμιων ιδρυμάτων Πληροφορικής. Μερικές (ενδεικτικά) από τις τυπικές εργασίες που ασκεί ένας μηχανικός λογισμικού είναι οι εξής : Ανάλυση (ως αναλυτής / software analyst) Σχεδίαση (ως σχεδιαστής/ software designer) Υλοποίηση (ως προγραμματιστής / programmer) Έλεγχος - Εγκυροποίηση (ως ελεγκτής / tester) Διασφάλισης Ποιότητας και Πιστοποίηση (ως quality assurance specialits) Τεκμηρίωση (ως τεχνικός συγγραφέας / software writer) Με τον όρο "developer" συνηθίζεται να αποκαλείται ο μηχανικός λογισμικού που ασκεί ανάλυση, σχεδίαση και υλοποίηση ταυτόχροναΑπό την παραπάνω κατηγοριοποίηση φαίνεται ότι ο παρεμφερής όρος "προγραμματιστής" αναφέρεται περιοριστικά σε μια από τις εργασίες ενός μηχανικού λογισμικού. Με αυτόν τον τρόπο καταδεικνύεται ενώ ο μηχανικός λογισμικού μπορεί να είναι (και) προγραμματιστής το αντίθετο δεν ισχύει πάντα. Η διάκριση αυτή αφορά στο αν ο προγραμματιστής είναι πτυχιούχος τμήματος Πληροφορικής ή όχι. Όσον αφορά τα μαθήματα μηχανικής λογισμικού προπτυχιακού επιπέδου, τα οποία πρέπει να καλύψει ένα τμήμα Πληροφορικής αναφέρονται με λεπτομέρεια στο SWEBOOK τα οποία στο μεγαλύτερο τους πλήθος καλύπτονται από τα 4ετή/5ετή προγράμματα σπουδών τριτοβάθμιας εκπαίδευσης πληροφορικής της Ελλάδας Πληροφορική Πληροφορικός Πληροφοριακά συστήματα Μηχανική λογισμικού Προγραμματισμός Επιστήμες Πληροφορικής Κατάλογος ελληνικών τμημάτων ανώτατης εκπαίδευσης