🟣Κ1 Εισαγωγή στην ανάπτυξη λογισμικού

Κ1.1. Το Λογισμικό, Κατηγορίες Λογισμικού 

Ορισμός Λογισμικού

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

 

 

Κατηγορίες Λογισμικού (με βάση τον τρόπο παρέμβασης)

Στην ορολογία της επιστήμης των υπολογιστών μπορούμε να διακρίνουμε τις παρακάτω κατηγορίες λογισμικού (με βάση τον τρόπο παρέμβασης) χωρίς να είναι πλήρως διακριτές μεταξύ τους:

● Λογισμικό Συστήματος (system software): λειτουργικά συστήματα, λειτουργικά περιβάλλοντα, οδηγοί συσκευών, λογισμικά δικτύου μεταγλωττιστές, λογισμικά για αντιμετώπιση ιών, λογισμικά περιήγησης στο Διαδίκτυο κ.α. 

CLASIFICACIÓN DEL SOFTWARE | Mind Map

 

● Λογισμικό Εφαρμογών (applications software): κάθε λογισμικό που σκοπό έχει να αντιμετωπίσει συγκεκριμένες ανάγκες του χρήστη ή/και συγκεκριμένου φορέα ή επιχείρησης (π.χ. Διαχείριση Φαρμακείου, Διαχείριση Βιοϊατρικού εξοπλισμού κ.α.). Το λογισμικό αυτό εντάσσεται στα λεγόμενα εσωτερικά Πληροφοριακά Συστήματα οργανισμών ή φορέων. Το Λογισμικό Διαδικτυακών Εφαρμογών (web applications) αποτελεί μια ειδική κατηγορία εφαρμογών λογισμικού. Είναι το λογισμικό που αξιοποιεί τις τεχνολογίες του Διαδικτύου για την παροχή ηλεκτρονικών υπηρεσιών σε εστιασμένους χρήστες ή σε ένα ευρύτερο κοινό ενός φορέα ή μιας επιχείρησης (π.χ. Υποβολή φορολογικών δηλώσεων στο Υπουργείο Οικονομικών, Αγορά αγαθών π.χ. βιβλίων από ηλεκτρονικά καταστήματα). 

E-Care - Διαχείριση Φαρμακείου - In-house Solutions Α.Ε.

 

● Λογισμικό για την αύξηση της παραγωγικότητας (productivity software): λογισμικό που χρησιμοποιείται από ευρύ φάσμα χρηστών για την εκτέλεση κάποιων λειτουργιών ευρείας χρήσης (π.χ. επεξεργαστές κειμένου, επεξεργαστές πινάκων, Εργαλεία παρουσιάσεων, Εργαλεία CASE κ.λπ.). 

Benefits of Microsoft Office 365 [Plus Definition] | KR Group

 

● Επιστημονικό Λογισμικό (scientific software): λογισμικό που χρησιμοποιείται από επιστημονικούς κλάδους (Ιατρική, αστρονομία, βιολογία αρχιτεκτονική κ.λπ.) για εστιασμένους ερευνητικούς και διαχειριστικούς σκοπούς. π.χ. τα λογισμικά για γενετιστές-βιολόγους, που αφορούν στην περιγραφή του γενετικού αποτυπώματος.

 

● Λογισμικό Τεχνητής Νοημοσύνης (artificial intelligence software): λογισμικό για ρομπότ, νευρωνικά δίκτυα, λογισμικό εμπείρων συστημάτων και συστημάτων λήψης απόφασης. 

Σεμινάριο για την χρήση της Τεχνητής Νοημοσύνης από ΟΚοιΠ | Group 1 –  Social Dynamo

 

● Ενσωματωμένο Λογισμικό (embedded software): λογισμικό που έχει ενσωματωθεί σε υπολογιστικές μηχανές ειδικού σκοπού (π.χ. holter καταγραφής της αρτηριακής πίεσης και καρδιακής συχνότητας, ηλεκτρονικά πιεσόμετρα κ.λπ.).

Αυτόματος καθαριστής δαπέδου για σκούπισμα και σφουγγάρισμα

 


 

 

1.2. Το πεδίο της τεχνολογίας Λογισμικού 

Βήματα Ανάπτυξης Λογισμικού

Η τεχνολογία λογισμικού μπορεί να οριστεί ως ο κλάδος της πληροφορικής που ασχολείται µε την εύρεση και θεμελίωση μεθόδων και με το συστηματικό σχεδιασμό και την ανάπτυξη προϊόντων λογισμικού.

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

 

 

Κατηγορίες Χρηστών

● οι χρήστες, το πρόσωπο ή ομάδα ατόμων, στελέχη του οργανισμού ή της εταιρίας που θα αξιοποιήσουν το λογισμικό που θα αναπτυχθεί, θα εισάγουν τα δεδομένα, θα αναζητήσουν πληροφορία, θα πάρουν αποτελέσματα και θα δώσουν εκτυπώσεις κ.λπ. 

● ο πελάτης, είναι η εταιρεία, ο οργανισμός ή ο ιδιώτης που ξεκινά την διαδικασία ανάπτυξης υπό την έννοια ότι χρηματοδοτεί το έργο και δίνει αυτός ή τα στελέχη του (και οι χρήστες) τις απαιτήσεις στην ομάδα ανάπτυξης. 

● οι επωφελούμενοι από τη λειτουργία του λογισμικού αποδέκτες των υπηρεσιών του λογισμικού. Εάν για παράδειγμα πρόκειται για το λογισμικό διαχείρισης AMKA-Αριθμός Μητρώου Κοινωνικής Ασφάλισης του Υπουργείου Απασχόλησης, οι επωφελούμενοι είναι όλοι οι Έλληνες πολίτες καθώς και όλοι οι δημόσιοι ή ιδιωτικοί φορείς

 

Σχήμα: Oι τελικοί αποδέκτες του λογισμικού

 

 


 

 

1.3. Λογισμικό και Πληροφοριακά Συστήματα 

Πληροφοριακό Σύστημα μιας επιχείρησης/οργανισμού είναι ένα σύστημα που αποτελείται από ανθρώπους, διαδικασίες και εξοπλισμό (Υλικό, Λογισμικό, Δεδομένα) μέσω των οποίων παράγονται, φυλάσσονται, διακινούνται και μετασχηματίζονται οι πληροφορίες που είναι χρήσιμες για την επίτευξη των σκοπών της επιχείρησης/οργανισμού.

Οι συνιστώσες του είναι: 

α) Άνθρωποι: Οι άνθρωποι ενός Πληροφοριακού Συστήματος θα μπορούσαν να ταξινομηθούν σε δυο κατηγορίες: ● στους χρήστες (users) και ● στους χειριστές (operators) του συστήματος.

β) Διαδικασίες: Διαδικασία είναι μια σειρά από οδηγίες, οι οποίες καθορίζουν τον τρόπο με τον οποίο θα ενεργήσουν οι άνθρωποι σε συγκεκριμένες περιστάσεις και απευθύνονται στους ανθρώπους που συμμετέχουν στο σύστημα.

γ) Λογισμικό (Software): Το λογισμικό ενός Πληροφοριακού Συστήματος μπορούμε να το διακρίνουμε στις κατηγορίες όπως αυτές παρουσιάστηκαν στην πρώτη ενότητα του κεφαλαίου.

δ) Δεδομένα (data): Ο όρος δεδομένα (data) σημαίνει μια παράσταση γεγονότων, εννοιών ή εντολών κατά τέτοιο τρόπο που να είναι σε μορφή κατάλληλη για επικοινωνία, ερμηνεία ή επεξεργασία από άνθρωπο ή από το αυτοματοποιημένο μέσο (π.χ. Η/Υ).

ε) Υλικό (Hardware): Η συνιστώσα αυτή είναι όλος ο εξοπλισμός (Hardware) του/των Η/Υ που χρησιμοποιούνται στο Πληροφοριακό Σύστημα. Σε αυτόν περιλαμβάνονται και οι περιφερειακές συσκευές (π.χ. εκτυπωτές κ.λπ.) καθώς και ο πιθανός δικτυακός εξοπλισμός (π.χ. καλώδια, κάρτες κ.λπ.).

 


 

 

1.7. Αρχιτεκτονική Εφαρμογών

Ορισμός: Αρχιτεκτονική Εφαρμογών

Η Αρχιτεκτονική εφαρμογών περιγράφει την δομή και την οργάνωση των εφαρμογών που χρησιμοποιούνται από μια επιχείρηση ή οργανισμό, εστιάζοντας στο πως αλληλεπιδρούν μεταξύ τους και με τους χρήστες. Επίσης αναλύεται ο τρόπος με τον οποίο παράγονται τα δεδομένα αλλά και χρησιμοποιούνται από τις ίδιες τις εφαρμογές. Το αντικείμενο της αρχιτεκτονικής δεν είναι η εσωτερική δομή των εφαρμογών αλλά η εξωτερική τους συμπεριφορά και η σχέση τους με τα δεδομένα εισόδου / εξόδου.

 

  • Η αρχιτεκτονική των εφαρμογών εξειδικεύεται στις απαιτήσεις και ανάγκες της επιχείρησης. Μελετά την επικοινωνία μεταξύ των εφαρμογών του λογισμικού, τις βάσεις δεδομένων και τις εφαρμογές-γέφυρες οι οποίες δρουν συνδέοντας τα διάφορα συστήματα (Διεπαφή χρηστών, Βάσεις Δεδομένων, Λογισμικά Επεξεργασίας Δεδομένων, Διαδίκτυο). Αυτό βοηθά στο να εντοπίσουμε τα δυσλειτουργικά κενά στο σύνολο των εφαρμογών. Στη συνέχεια εντοπίζονται εφαρμογές λογισμικού οι οποίες έφτασαν στο τέλος της ζωής τους (life time cycle) και έχουν τεχνολογικά προβλήματα.
  • Η αρχιτεκτονική των εφαρμογών παίζει σημαντικό ρόλο, έτσι ώστε όλες οι εφαρμογές να λειτουργούν και να συνεργάζονται αρμονικά και με λειτουργικά οφέλη για τον οργανισμό για τον οποίο σχεδιάστηκαν. Διαφοροποιείται από την αρχιτεκτονική του λογισμικού στο ότι αυτή εστιάζει στη σχεδίαση των εφαρμογών.

 

 

Πληροφοριακά Συστήματα

Όλα τα συστήματα που έχουν αμφίδρομη επικοινωνία με μια διαμοιρασμένη βάση δεδομένων θεωρούνται πληροφοριακά συστήματα βασισμένα στις δοσοληψίες. Ένα τέτοιο πληροφοριακό σύστημα επιτρέπει ελεγχόμενη πρόσβαση σε βάση δεδομένων μεγάλης κλίμακας, όπως κατάλογοι βιβλιοθηκών, πρόγραμμα πτήσεων αεροδρομίων ή αρχείο ασθενών σε ένα νοσοκομείο.

 

Το Σχήμα 1.16 αποτυπώνει ένα πολύ γενικό μοντέλο ενός πληροφοριακού συστήματος. Το σύστημα αυτό είναι οργανωμένο σε επίπεδα (Layered) όπου το επίπεδο της κορυφής αποτελεί την Διεπαφή του χρήστη και το κάτω επίπεδο είναι η Βάση των Δεδομένων.

Σχήμα: Αρχιτεκτονική Πληροφοριακού Συστήματος με Επίπεδα

 

 

Σχήμα: Αρχιτεκτονική Πληροφοριακού Συστήματος στο Διαδίκτυο με Επίπεδα