Το πεδίο της τεχνολογίας λογισμικού
Η τεχνολογία λογισμικού μπορεί να οριστεί ως ο κλάδος της πληροφορικής που ασχολείται µε την εύρεση και θεμελίωση μεθόδων και με το συστηματικό σχεδιασμό και την
ανάπτυξη προϊόντων λογισμικού. Συγκεκριμένα μελετά την εφαρμογή προσεγγίσεων για
την ανάπτυξη, λειτουργία και συντήρηση του λογισμικού www.ieee.org.
Κατ’ αναλογία με την παραγωγή βιομηχανικών προϊόντων η διαδικασία της ανάπτυξης του
λογισμικού μπορεί να παρίσταται με τα παρακάτω τρία βήματα:

 

Στην Ανάλυση καθορίζονται σε συνεργασία με τους τελικούς χρήστες (end-users) τι ακριβώς θα κάνει το λογισμικό - ποιες ακριβώς λειτουργίες- και ποιοι ενδεχόμενοι περιορισμοί
τίθενται στη λειτουργία του. Η δραστηριότητα που εμπεριέχει αυτό το βήμα λέγεται προσδιορισμός απαιτήσεων. Σε αυτή προδιαγράφουμε το τι θα κάνει το σύστημα. Η ομάδα εργασίας-ανάπτυξης (του αναδόχου) συνεργάζεται με τον πελάτη (οργανισμό ή εταιρεία ή ιδιώτη)
και τους τελικούς χρήστες με σκοπό να συμφωνήσουν από κοινού στη λειτουργικότητα του
λογισμικού και την παραγωγή του εγγράφου προδιαγραφών απαιτήσεων λογισμικού.
Κατά την Κατασκευή αναπτύσσεται προϊόν που ικανοποιεί τις απαιτήσεις του βήματος
της ανάλυσης. Η Σχεδίαση απαντά στο ερώτημα πώς θα κατασκευαστεί το λογισμικό έτσι
ώστε να κάνει αυτά που περιγράφουν οι απαιτήσεις. Συνήθως περιλαμβάνει δύο επίπεδα.
Το πρώτο επίπεδο είναι η αρχιτεκτονική σχεδίαση (architectural design) που αφορά τον
προσδιορισμό του σκελετού του λογισμικού (κατ’ αναλογία με την αρχιτεκτονική των κτηρίων) και το δεύτερο επίπεδο είναι η λεπτομερής σχεδίαση (detailed design) που αφορά
στην οργάνωση και επικοινωνία των επιμέρους μονάδων του λογισμικού. Η Κωδικοποίηση είναι η δραστηριότητα που περιλαμβάνει κυρίως τον προγραμματισμό και παράγει το
τελικό προϊόν του λογισμικού

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

«Θα μπορούσαμε να ορίσουμε το λογισμικό ως ένα σύνολο προγραμμάτων -δομές δεδομένων και εντολές- καθώς και υλικού τεκμηρίωσης. Οι δομές δεδομένων επιτρέπουν στο πρόγραμμα να διαχειρίζεται πληροφορίες, ενώ οι εντολές, όταν εκτελούνται, παρέχουν στους
χρήστες τις επιθυμητές λειτουργίες. Η τεκμηρίωση περιγράφει τον τρόπο λειτουργίας και
χρήσης των προγραμμάτων».
Στην ορολογία της επιστήμης των υπολογιστών μπορούμε να διακρίνουμε τις παρακάτω
κατηγορίες λογισμικού (με βάση τον τρόπο παρέμβασης) χωρίς να είναι πλήρως διακριτές
μεταξύ τους:

● Λογισμικό Συστήματος (system software): λειτουργικά συστήματα, λειτουργικά περιβάλλοντα, οδηγοί συσκευών, λογισμικά δικτύου μεταγλωττιστές, λογισμικά για αντιμετώπιση ιών, λογισμικά περιήγησης στο Διαδίκτυο κ.α.
● Λογισμικό Εφαρμογών (applications software): κάθε λογισμικό που σκοπό έχει να αντιμετωπίσει συγκεκριμένες ανάγκες του χρήστη ή/και συγκεκριμένου φορέα ή επιχείρησης
(π.χ. Διαχείριση Φαρμακείου, Διαχείριση Βιοϊατρικού εξοπλισμού κ.α.). Το λογισμικό
αυτό εντάσσεται στα λεγόμενα εσωτερικά Πληροφοριακά Συστήματα οργανισμών ή φορέων. Το Λογισμικό Διαδικτυακών Εφαρμογών (web applications) αποτελεί μια ειδική
κατηγορία εφαρμογών λογισμικού. Είναι το λογισμικό που αξιοποιεί τις τεχνολογίες του
Διαδικτύου για την παροχή ηλεκτρονικών υπηρεσιών σε εστιασμένους χρήστες ή σε ένα
ευρύτερο κοινό ενός φορέα ή μιας επιχείρησης (π.χ. Υποβολή φορολογικών δηλώσεων στο
Υπουργείο Οικονομικών, Αγορά αγαθών π.χ. βιβλίων από ηλεκτρονικά καταστήματα).
● Λογισμικό για την αύξηση της παραγωγικότητας (productivity software): λογισμικό
που χρησιμοποιείται από ευρύ φάσμα χρηστών για την εκτέλεση κάποιων λειτουργιών
ευρείας χρήσης (π.χ. επεξεργαστές κειμένου, επεξεργαστές πινάκων, Εργαλεία παρουσιάσεων, Εργαλεία CASE κ.λπ.).
● Επιστημονικό Λογισμικό (scientific software): λογισμικό που χρησιμοποιείται από επιστημονικούς κλάδους (Ιατρική, αστρονομία, βιολογία αρχιτεκτονική κ.λπ.) για εστιασμένους ερευνητικούς και διαχειριστικούς σκοπούς. π.χ. τα λογισμικά για γενετιστές-βιολόγους, που αφορούν στην περιγραφή του γενετικού αποτυπώματος.
● Λογισμικό Τεχνητής Νοημοσύνης (artificial intelligence software): λογισμικό για ρομπότ, νευρωνικά δίκτυα, λογισμικό εμπείρων συστημάτων και συστημάτων λήψης απόφασης.
● Ενσωματωμένο Λογισμικό (embedded software): λογισμικό που έχει ενσωματωθεί σε
υπολογιστικές μηχανές ειδικού σκοπού (π.χ. holter καταγραφής της αρτηριακής πίεσης
και καρδιακής συχνότητας, ηλεκτρονικά πιεσόμετρα κ.λπ.).
Θα μπορούσαμε επίσης να αναφέρουμε και να κατηγοριοποιήσουμε το λογισμικό σε -εμπορικό ή μη εμπορικό- χαρακτηρίζοντας ως εμπορικό το λογισμικό που χρειάζεται να το αγοράσουμε για να το χρησιμοποιήσουμε. Επίσης θα μπορούσαμε να μιλήσουμε για ανοικτο