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

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Μετάβαση σε: πλοήγηση, αναζήτηση

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

Σπουδές[Επεξεργασία | επεξεργασία κώδικα]

Πριν επιχειρηθεί η αποτύπωση των απαραίτητων σπουδών ενός Μηχανικού Λογισμικού μαζί με το αναλυτικό προγράμμα μαθημάτων και τα προσδοκόμενα μαθησιακά αποτελεσμάτα τους, είναι σημαντικό να διαφοροποιηθούν οι έννοιες Λογισμικό και Πρόγραμμα: το πρόγραμμα είναι υποσύνολο του λογισμικού, καθώς υπολείπεται τουλάχιστον στην Τεκμηρίωση (software documentation)[1][2][3][4] αν όχι και σε άλλες φάσεις ανάπτυξης του λογισμικού (πιστοποιήση, εγκυροποιήσης, προδιαγραφή κ.α.)[5]. Γίνεται έτσι κατανοητό ότι ένα πρόγραμμα δεν είναι απαραίτητο να ακολουθεί τις διαδικασίες και τις τυποποιημένες αρχές ανάπτυξης που ακολουθεί το λογισμικό.

Η παραπάνω διάκριση διαφοροποιεί επομένως τον προγραμματιστή από τον μηχανικό λογισμικού. Στην Ελλάδα, τα τελευταία έτη έχουν δημιουργηθεί και ρητά κατευθύνσεις Μηχανικών Λογισμικού (όπως και Μηχανικών Δικτύων και Μηχανικών Υπολογιστών) στα τμήματα Πληροφορικής της τριτοβάθμιας εκπαίδευσης (ΤΕΙ)[6] [7][8] ενώ παλιότερα ειδικά στα Πανεπιστήμια, όπου επιτρέπονταν οι κατευθύνσεις υπήρχαν παράγωγες, σύνθετες ή παρόμοιες ονομασίες των ενδεικτικά τριών εφαρμοσμένων κατευθύνσεων της Πληροφορικής [9][10] [11]: πχ

  • κατεύθυνση Αρχιτεκτονικής Υπολογιστών και Συστημάτων (δηλαδή Μηχ. Υπολογιστών),
  • κατεύθυνση Πληροφοριακών Συστημάτων και Εφαρμογών (δηλ Μηχ. Λογισμικού),
  • κατεύθυνση Τηλεπικοινωνιών και Δικτύων (δηλ Μηχ. Δικτύων),
  • κατεύθυνση Τεχνητής Νοημοσύνης και Εφαρμογών
  • κ.α.

Παλιότερα, ο όρος προγραμματιστής, σε εκπαιδευτικό επίπεδο, συναντόταν στα πτυχία - απολυτήρια που εξέδιδαν τα Τεχνικά Λύκεια (ΤΕΛ, ΤΕΕ), ενώ αργότερα ο όρος αυτός αντικαταστάθηκε από τίτλους (ΕΠΑΛ, ΙΕΚ) όπως: "τεχνικός εφαρμογών πληροφορικής", "τεχνικός λογισμικού", "τεχνικός υποστήριξης συστημάτων" κ.α. [12]

Εξίσου σημαντική, για τον προσδιορισμό του όρου "Μηχανικός Λογισμικού", είναι και η κείμενη νομοθεσία των πτυχιούχων Πληροφορικής Πανεπιστήμιων[13] και ΤΕΙ[14] στην οποία όλες οι φάσεις ανάπτυξης του Λογισμικού αλλά και των Συστημάτων Υπολογιστών, Δικτύων κ.α αντιστοιχίζεται ρητά με τις ακαδημαϊκές γνώσεις τις οποίες αυτοί έχουν λάβει κατά την διάρκεια της φοίτησης τους. Σε κάθε περίπτωση μια τέτοιου είδους κατωχύρωση, όσον αφορά την Πληροφορική, δεν υφίσταται για μη πτυχιούχους τριτοβάθμιων ιδρυμάτων Πληροφορικής.

Μερικές (ενδεικτικά) από τις τυπικές εργασίες που ασκεί ένας μηχανικός λογισμικού είναι οι εξής [15]:

  • Ανάλυση (ως αναλυτής / software analyst) [16][17]
  • Σχεδίαση (ως σχεδιαστής/ software designer)[18]
  • Υλοποίηση (ως προγραμματιστής / programmer)[19]
  • Έλεγχος - Εγκυροποίηση (ως ελεγκτής / tester)[20][21]
  • Διασφάλισης Ποιότητας και Πιστοποίηση (ως quality assurance specialits)[22]
  • Τεκμηρίωση (ως τεχνικός συγγραφέας / software writer)[23]
  • Με τον όρο "developer" συνηθίζεται να αποκαλείται ο μηχανικός λογισμικού που ασκεί ανάλυση, σχεδίαση και υλοποίηση ταυτόχρονα [24]

Από την παραπάνω κατηγοροποίηση φαίνεται ότι ο παρεμφερής όρος "προγραμματιστής" αναφέρεται περιοριστικά σε μια από τις εργασίες ενός μηχανικού λογισμικού. Με αυτόν τον τρόπο καταδεικνύεται ενώ ο μηχανικός λογισμικού μπορεί να είναι (και) προγραμματιστής το αντίθετο δεν ισχύει πάντα. Η διάκριση αυτή αφορά στο αν ο προγραμματιστής είναι πτυχιούχος τμήματος Πληροφορικής ή όχι.

Όσον αφορά τα μαθήματα μηχανικής λογισμικού προπτυχιακού επιπέδου, τα οποία πρέπει να καλύψει ένα τμήμα Πληροφορικής αναφέρονται με λεπτομέρεια στο SWEBOOK [25] τα οποία στο μεγαλύτερο τους πλήθος καλύπτονται από τα 4ετή/5ετή προγράμματα σπουδών τριτοβάθμιας εκπαίδευσης πληροφορικής της Ελλάδας [26][27]

Δείτε επίσης[Επεξεργασία | επεξεργασία κώδικα]

Πηγές[Επεξεργασία | επεξεργασία κώδικα]

Παραπομπές[Επεξεργασία | επεξεργασία κώδικα]

  1. «'Software' from Collins Concise English Dictionary». Wordreference.com. Princeton, NJ: Princeton University. http://www.wordreference.com/definition/software. Ανακτήθηκε στις 2007-08-19. 
  2. «Software». Wikipedia. http://en.wikipedia.org/wiki/Software. 
  3. «Software Documentation». Wikipedia. http://en.wikipedia.org/wiki/Software_documentation. 
  4. Sommerville, Ian (2001). Software Documentation. Lancaster: Lancaster University. http://www.literateprogramming.com/documentation.pdf. 
  5. «Software Engineering». Wikipedia. http://en.wikipedia.org/wiki/Software_engineering. Ανακτήθηκε στις 20 January 2015. 
  6. «Κατευθύνσεις Πληροφορικής». ΤΕΙ Αθηνών, Τμήμα Πληροφορικής. http://www.cs.teiath.gr/%CF%83%CF%80%CE%BF%CF%85%CE%B4%CE%AD%CF%82/%CF%80%CF%81%CE%BF%CF%80%CF%84%CF%85%CF%87%CE%B9%CE%B1%CE%BA%CE%AD%CF%82/%CE%BD%CE%AD%CE%BF-%CF%80%CF%81%CF%8C%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1-%CF%83%CF%80%CE%BF%CF%85%CE%B4%CF%8E%CE%BD-2014/%CF%80%CF%81%CF%8C%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1-%CF%83%CF%80%CE%BF%CF%85%CE%B4%CF%8E%CE%BD-2/. Ανακτήθηκε στις 20 January 2015. 
  7. «Κατευθύνσεις Πληροφορικής». ΤΕΙ Θεσσαλονίκης, Τμήμα Πληροφορικής. http://www.it.teithe.gr/el/bachelor/objectives. Ανακτήθηκε στις 20 January 2015. 
  8. «Κατευθύνσεις Πληροφορικής». ΤΕΙ Καβάλας, Τμήμα Πληροφορικής. http://www.webgram.teikal.gr/unistudent/getProgramCourses.asp?mnuID=program;submnu1&level=1&depID=494&prID=125. Ανακτήθηκε στις 20 January 2015. 
  9. «Κατευθύνσεις Πληροφορικής». ΑΠΘ, Τμήμα Πληροφορικής. http://www.csd.auth.gr/directions-of-study.php. Ανακτήθηκε στις 20 January 2015. 
  10. «Κατευθύνσεις Πληροφορικής». ΕΚΠΑ, Τμήμα Πληροφορικής & Τηλεπικοινωνιών. http://www.di.uoa.gr/undergraduate/coursesnew. Ανακτήθηκε στις 20 January 2015. 
  11. «Κατευθύνσεις Πληροφορικής». Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης των Υπολογιστών. http://www.csd.uoc.gr/studies/list-of-courses/lessons.html. Ανακτήθηκε στις 20 January 2015. 
  12. «Αντιστοιχίες ειδικοτήτων τμημάτων ΤΕΕ, ΤΕΛ για εγγραφές στα ΕΠΑΛ: Απόσπασμα από την αρ.πρωτ.141641/08-09-2014/». ΥΠΑΙΘ, Υπουργείο Παιδείας και Αθλητισμού. http://edu.klimaka.gr/leitoyrgia-sxoleivn/anakoinvseis/1232-antistoichies-eidikothtes-tee-tel-me-epal.html. 
  13. «Επαγγελματική κατοχύρωση των διπλωματούχων μηχανικών και των πτυχιούχων πανεπιστημιακής εκπαίδευσης στα αντικείμενα πληροφορικής και τηλεπικοινωνιών». ΦΕΚ 58Α/2009, ΠΔ.44/2009. http://www.proslipsis.gr/cmCat_treePrd.php?&cm_catid=344&cm_prdid=7247. Ανακτήθηκε στις 20 January 2015. 
  14. «Καθορισμός επαγγελματικών δικαιωμάτων των πτυχιούχων ΤΕΙ των Τμημάτων Πληροφορικής». ΦΕΚ 246Α/2008, ΠΔ.183/2008. https://nomoi.info/%CE%A6%CE%95%CE%9A-%CE%91-246-2008-%CF%83%CE%B5%CE%BB-1.html. Ανακτήθηκε στις 20 January 2015. 
  15. «Software Engineering». Wikipedia. http://en.wikipedia.org/wiki/Software_engineering. Ανακτήθηκε στις 20 January 2015. 
  16. «Software Analysis». Wikipedia. http://en.wikipedia.org/wiki/Software_analysis_pattern. Ανακτήθηκε στις 20 January 2015. 
  17. «Requirements analysis». Wikipedia. http://en.wikipedia.org/wiki/Requirements_analysis. Ανακτήθηκε στις 20 January 2015. 
  18. «Software Design». Wikipedia. http://en.wikipedia.org/wiki/Software_design. Ανακτήθηκε στις 20 January 2015. 
  19. «Computer Programming». Wikipedia. http://en.wikipedia.org/wiki/Computer_programming. Ανακτήθηκε στις 20 January 2015. 
  20. «Software Testing». Wikipedia. http://en.wikipedia.org/wiki/Software_testing. Ανακτήθηκε στις 20 January 2015. 
  21. «Software Validation & Verification». Wikipedia. http://en.wikipedia.org/wiki/Verification_and_validation_(software). Ανακτήθηκε στις 20 January 2015. 
  22. «Software Quality Assurance». Wikipedia. http://en.wikipedia.org/wiki/Software_quality_assurance. Ανακτήθηκε στις 20 January 2015. 
  23. «Software Documentation». Wikipedia. http://en.wikipedia.org/wiki/Software_documentation. Ανακτήθηκε στις 20 January 2015. 
  24. «Developer». Wikipedia. http://en.wikipedia.org/wiki/Developer. Ανακτήθηκε στις 20 January 2015. 
  25. «ISO/IEC TR 19759:2005, Software Engineering -- Guide to the Software Engineering Body of Knowledge (SWEBOK)». ISO Organization. http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=33897. Ανακτήθηκε στις 20 January 2015. 
  26. «Πληρότητα Σπουδών Πληροφορικής ΑΕΙ». ΕΠΕ, Ένωση Πληροφορικών Ελλάδας. http://review.epe.org.gr/doc.php?q=5&d=cs. Ανακτήθηκε στις 20 January 2015. 
  27. «Πρότυπο Πρόγραμμα Σπουδών Πληροφορικής ΑΕΙ». ΕΠΕ, Ένωση Πληροφορικών Ελλάδας. http://review.epe.org.gr/doc.php?q=4. Ανακτήθηκε στις 20 January 2015.