Λογισμικό Πληροφοριακών Συστημάτων



Σχετικά έγγραφα
Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραµµατισµός Η/Υ. Μέρος2

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

Λειτουργικά Συστήµατα

Εισαγωγή στην Ανάπτυξη Πληροφοριακών Συστημάτων

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4: Λογισμικό Συστήματος

Εισαγωγή στην Ανάπτυξη Πληροφοριακών Συστημάτων

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 4. Λογισμικό Συστήματος

ΕΠΛ Εισαγωγή στον Προγραµµατισµό: Λογισµικό. Το λογισµικό του συστήµατος: 1 Εισαγωγή ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Εισαγωγή στην Πληροφορική

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

Α. Ερωτήσεις Ανάπτυξης

Προγραμματισμός Η/Υ. Λογισμικό. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Υπολογιστών

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Λογισμικό - Προγράμματα

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

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

6. Εισαγωγή στον προγραµµατισµό

ΛΟΓΙΣΜΙΚΟ (software)

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

Εισαγωγή στον προγραμματισμό

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

Μάθημα 1 ο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Κεφάλαιο : Εισαγωγή Στον Προγραμματισμό. (Διάλεξη 2) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Περιεχόμενα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Εισαγωγή. Ανάπτυξη Συστημάτων Λογισμικού. Οργάνωση μαθήματος. #1. Εισαγωγή στον Προγραμματισμό

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Εισαγωγή στον Προγραμματισμό

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

6. 1 Η έννοια του προγράμματος

Αρχές Προγραμματισμού Υπολογιστών

Συστήματα Πληροφοριών Διοίκησης Ενότητα 5: Λογισμικό Πληροφοριακών Συστημάτων

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Εισαγωγή στην Πληροφορική

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΑΟΓΙΣΤΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ...3-1

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΑΕΠΠ Ερωτήσεις θεωρίας

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Αριστοµένης Μακρής Εργαστήρια Η/Υ

Μαλούτα Θεανώ Σελίδα 1

Προγραμματισμός Η/Υ. 1 η ενότητα: Εισαγωγή στις γλώσσες προγραμματισμού. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ. Σημειώσεις Θεωρίας

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 2: Μεταφραστές

Αρχιτεκτονικές Υπολογιστών

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Information Technology for Business

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

ΤΙ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ

Εξειδικευμένο λογισμικό Office

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

ΕΠΛ 032 Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Γενική Περιγραφή

Κεφάλαιο 2: Λογισμικό (Software) Εφαρμογές Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος

Σχεδιασμός Επεξεργασίας και Τηλεπεξεργασίας

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Επιµέλεια Θοδωρής Πιερράτος

2. Εισαγωγή στον Προγραμματισμό

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Transcript:

Ενότητα 7 Λογισμικό Πληροφοριακών Συστημάτων Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-1 Στόχοι και αντικείμενο ενότητας Περιγραφή βασικών τύπων λογισμικού Λειτουργικό σύστημα Λογισμικό εφαρμογών Γλώσσες προγραμματισμού Η/Υ Σύγχρονα εργαλεία και προσεγγίσεις Κύκλος ζωής λογισμικού Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-2

Ι. Λογισμικό Βασικοί τύποι Λογισμικό το σύνολο των εντολών που ρυθμίζουν τη λειτουργία ενός υπολογιστικού συστήματος Λογισμικό συστήματος Περιλαμβάνει το το σύνολο σύνολο των των προγραμμάτων που που ελέγχουν, διαχειρίζονται και και συντονίζουν τους τους πόρους πόρους των των Η/Υ Η/Υ Ανεξάρτητο από από συγκεκριμένες εφαρμογές Η λειτουργία του του δεν δεν είναι είναι άμεσα άμεσα αντιληπτή από από τον τον απλό απλό χρήστη χρήστη Λογισμικό εφαρμογών Περιλαμβάνει προγράμματα που που επιτρέπουν την την εκτέλεση συγκεκριμένων εργασιών των των χρηστών, π.χ. π.χ. τη τη δημιουργία κειμένων, τη τη σχεδίαση γραφικών, την την οργάνωση δεδομένων κλπ. κλπ. Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-3 Λειτουργικό Σύστημα Υπεύθυνο για τις ακόλουθες λειτουργίες Το λειτουργικό σύστημα ελέγχει και συντονίζει την λειτουργία των μονάδων περιφερειακής μνήμης, την κύρια μνήμη και την κεντρική μονάδα επεξεργασίας Διαχείριση συσκευών (χρήση οδηγών συσκευής) Διαχείριση διαδικασιών (processes) Επικοινωνία μεταξύ των διαδικασιών Διαχείριση μνήμης Διαχείριση αρχείων Λογισμικό εφαρμογών Λειτουργικό σύστημα Υλικό (hardware) (operating system) Το λειτουργικό σύστημα περιέχει τις απαραίτητες εντολές που υποδεικνύουν στην ΚΜΕ πώς να επικοινωνεί με τις υπόλοιπες μονάδες, άλλα προγράμματα και τους χρήστες Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-4

Λειτουργικό Σύστημα (συν.) Διαχείριση των πόρων του Η/Υ Διανομή χρόνου της ΚΜΕ ανάμεσα σε διάφορους χρήστες και διάφορες ταυτόχρονες εργασίες, κατανομή περιφερειακής μνήμης στα διάφορα αρχεία, εύρυθμη λειτουργία μονάδων εισόδου / εξόδου Διαχείριση των δεδομένων Εντοπισμός, αποθήκευση, τροποποίηση κατάλληλων αρχείων κλπ. Δρομολόγηση των διαφόρων εργασιών Επίβλεψη και έλεγχος των εργασιών που έχουν καθορισθεί από τους χρήστες ότι πρέπει να εκτελεσθούν στην ΚΜΕ Παροχή τρόπου επικοινωνίας μεταξύ χρηστών και υπολογιστικών συστημάτων Καθορισμός των συμβάσεων που αποτελούν τον προκαθορισμένο τρόπο επικοινωνίας των χρηστών Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-5 Λειτουργικά Συστήματα Βασικές έννοιες Τύποι επεξεργασίας Πολυεπεξεργασία (multiprocessing) Δύο ή περισσότερες (ισοδύναμες) μονάδες επεξεργασίας εκτελούν από κοινού μια διεργασία Κάθε μονάδα επεξεργασίας εργάζεται πάνω σε ένα διαφορετικό σύνολο από εντολές ή πάνω σε ένα διαφορετικό τμήμα της ίδιας της επεξεργασίας Αύξηση ταχύτητας επεξεργασίας και της υπολογιστικής ισχύος Πολυπρογραμματισμός (multiprogramming) Είναι η ταυτόχρονη εκτέλεση περισσοτέρων του ενός προγραμμάτων από τον ίδιο Η/Υ Τα προγράμματα φορτώνονται κανονικά στη μνήμη και η επεξεργασία τους γίνεται εκ περιτροπής κατά μικρά χρονικά διαστήματα Στην πραγματικότητα, η ΚΜΕ επεξεργάζεται μόνο ένα πρόγραμμα κάθε συγκεκριμένη στιγμή. Επιτυγχάνεται πολυπρογραμματισμός γιατί την ίδια στιγμή μπορεί να γίνεται επεξεργασία μέρους άλλου προγράμματος από άλλο τμήμα του Η/Υ Βέλτιστη χρήση επιμέρους τμημάτων (μνήμη, επεξεργαστής, περιφερειακά) ενός Η/Υ και μείωση του συνολικού χρόνου επεξεργασίας των προγραμμάτων Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-6

Λειτουργικά Συστήματα Βασικές έννοιες (συν.) Άλλα θέματα Ιδεατή μνήμη (αποθήκευση) virtual memory (storage) Βοηθητική μνήμη (π.χ. στο δίσκο), η οποία χρησιμοποιείται σε συνεργασία με την κύρια μνήμη, όταν η χωρητικότητα της τελευταίας δεν επαρκεί για την εκτέλεση ενός μεγάλου προγράμματος Το πρόγραμμα χωρίζεται σε τμήματα (segments ή pages ), τα οποία αποθηκεύονται στη βοηθητική μνήμη και μεταφέρονται διαδοχικά στην κύρια, όπου παραμένουν μόνον όσο χρειάζεται για την επεξεργασία segments: μεταβλητό μέγεθος, pages: προκαθορισμένο μέγεθος Χρονικός καταμερισμός (time sharing) Όλα οι πόροι ενός Η/Υ είναι στη διάθεση δύο ή περισσοτέρων χρηστών Ο χρόνος της ΚΜΕ διαιρείται σε πολύ μικρά τμήματα (time slices), της τάξης των 2 milliseconds Η ΚΜΕ διαθέτει τα τμήματα χρόνου διαδοχικά σε κάθε χρήστη Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-7 Λειτουργικά Συστήματα Βασικές έννοιες (συν.) Αριθμός χρηστών ΛΣ ενός χρήστη (single-user) Υποστηρίζουν έναν μόνο χρήστη κάθε φορά ΛΣ πολλαπλών χρηστών (multi-user) Επιτρέπουν σε δύο ή περισσότερους χρήστες να έχουν ταυτόχρονη πρόσβαση στο υπολογιστικό σύστημα Αριθμός εργασιών ΛΣ μιας εργασίας (single-tasking) Επιτρέπουν να εκτελείται μόνο μια εργασία κάθε φορά Η εργασία πρέπει να ολοκληρωθεί για να αρχίσει η εκτέλεση της επομένης ΛΣ πολλαπλών εργασιών (multi-tasking) Δυνατότητα εκτέλεσης πολλών εργασιών ταυτοχρόνως Επιτρέπουν την εισαγωγή πολλών εργασιών σε έναν Η/Υ με μία ΚΜΕ Εναλλασσόμενη επεξεργασία εργασιών με σκοπό την ταυτόχρονη απεικόνιση των αποτελεσμάτων τους στην οθόνη του χρήστη Πολυπρογραμματισμός σε σύστημα ενός χρήστη Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-8

Λειτουργικά Συστήματα Συστατικά μέρη Επεξεργαστής εντολών (command processor) Παρακολουθεί το πληκτρολόγιο, το ποντίκι και γενικά, όλες τις προσαρτημένες στον Η/Υ μονάδες εισόδου και μεταφράζει τις σχετικές εντολές Χρονοδρομολογητής (scheduler) Διευθετεί την εκτέλεση του προγράμματος Σύστημα Διαχείρισης Αρχείων (file manager) Καθιστά δυνατή τη δημιουργία, διαγραφή ή ανεύρεση ενός αρχείου μέσα σ ένα μέσο αποθήκευσης Καλείται από τον χρονοδρομολογητή όταν χρειάζεται να βρει το απαραίτητο προς εκτέλεση πρόγραμμα Κατανεμητής Πόρων (resource allocator) Συντονίζει την εκχώρηση των πόρων του Η/Υ (π.χ., επεξεργαστή, μνήμης) Επιλογέας (dispatcher) Σε ένα σύστημα με χρονικό καταμερισμό, συντονίζει τη καταχώρηση της μηχανής μεταξύ των διαφόρων εργασιών που είναι έτοιμες προς εκτέλεση μετά από μία παύση, στάση ή διακοπή Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-9 Λειτουργικά Συστήματα Παραδείγματα Λειτουργικό Σύστημα Windows 9x Windows NT & 2000 Windows CE OS/2 UNIX Mac OS DOS Χαρακτηριστικά 32-bit operating system, GUI, multitasking, networking capabilities 32-bit operating system not limited to Intel chips, multitasking, multiprocessing, intensive networking Pared-down for handheld computers, wireless communication devices 32-bit, developed for IBM PS/2, supports multitasking & networking For powerful PCs, workstations, minicomputers. Supports multitasking, multi-user processing & networking. Portable to various computer platforms For Macintosh computers. Supports multitasking & networking.powerful multimedia capabilities For IBM (PC-DOS) and IBM-compatible (MS-DOS) PCs. Limits program use of memory to 640K Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-10

Επεξεργαστές κειμένου (word processing software) Λογισμικό εφαρμογών Λογιστικά φύλλα (spreadsheets) Λογισμικό διαχείρισης δεδομένων (data management software) Λογισμικό παρουσιάσεων (presentation graphics) Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-11 Λογισμικό εφαρμογών (συν.) Ολοκληρωμένα πακέτα λογισμικού (integrated software packages) Ηλεκτρονικό ταχυδρομείο (e-mail software) Εργαλεία περιήγησης του Διαδικτύου (Web browsers) Λογισμικό ομάδων εργασίας (groupware) Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-12

ΙΙ. Προγραμματισμός Η/Υ Βήματα ανάπτυξης ενός προγράμματος Ορισμός του προβλήματος Λύση του προβλήματος Ανάπτυξη του αλγορίθμου Σχεδιασμός διαγράμματος ροής Δημιουργία ψευδοκώδικα Κωδικοποίηση του προγράμματος Διόρθωση λαθών του προγράμματος Σύνταξη τεκμηρίωσης Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-13 Προγραμματισμός Η/Υ (συν.) Αρχή Διάβασε όνομα φοιτητή open STUDENT.DAT read STUDENT_NAME Τέλος αρχείου? Όχι Ναι Τέλος while not EOF do read STUDENT_INFO if YEAR = 1 then print STUDENT_NAME read STUDENT_NAME Διάβασε υπόλοιπα στοιχεία φοιτητή end while close STUDENT.DAT end Είναι πρωτοετής? Όχι Ναι Τύπωσε όνομα φοιτητή ψευδοκώδικας Διάβασε όνομα φοιτητή Διάγραμμα ροής Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-14

Γλώσσες προγραμματισμού Γλώσσα Μηχανής (Machine Language) - Γλώσσα πρώτης γενιάς (40 s) Είναι η φυσική γλώσσα των Η/Υ Είναι κώδικας σε δυαδική μορφή (0,1) Διακρίνεται για την ταχύτητα εκτέλεσης των εντολών της και την βέλτιστη χρήση της κύριας μνήμης Είναι δύσκολη στην χρήση της, στον εντοπισμό και διόρθωση τυχόν λαθών Συμβολική γλώσσα (Assembly Language) - Γλώσσα δεύτερης γενιάς (50 s) Μνημονική αναπαράσταση Είναι πιο εύκολη στην γραφή και στην κατανόηση Η εκτέλεση της απαιτεί την μετάφραση της σε γλώσσα μηχανής μέσω των συμβολομεταφραστών (assemblers) Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-15 Γλώσσες προγραμματισμού (συν.) Γλώσσες υψηλού επιπέδου (High level Languages) - Γλώσσες τρίτης Γενιάς (60 s) Εννοιολογικά βρίσκονται πιο κοντά στις ανθρώπινες γλώσσες (χρήση ενός μικρού συνόλου από αγγλικές λέξεις) Για να εκτελεστεί ένα τέτοιο πρόγραμμα γίνεται χρήση μεταφραστών (compilers) και των διερμηνευτών (interpreters) Cobol, Fortran, Basic, Logo, Pascal, Ada, C Γλώσσες τέταρτης γενιάς (80 s) Ο προγραμματιστής δεν περιγράφει αλγορίθμους, απλά καθορίζει τα δεδομένα και τις ενέργειες που πρέπει να γίνουν και το ίδιο το εργαλείο δημιουργεί τον κώδικα σε κάποια γλώσσα προγραμματισμού Αντικειμενοστραφείς (Object-Oriented) γλώσσες προγραμματισμού Π.χ C++, Java, Visual Basic Γλώσσες ανάπτυξης εφαρμογών τεχνητής νοημοσύνης, Π.χ LISP, PROLOG Γλώσσες ερωταποκρίσεων Γεννήτριες προγραμμάτων Συστήματα διαχείρισης βάσεων δεδομένων Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-16

Γλώσσες προγραμματισμού (συν.) Oι παραπάνω γλώσσες προκειμένου να γίνουν κατανοητές από τον Η/Υ πρέπει να μεταφραστούν σε γλώσσα μηχανής Εργαλεία μετάφρασης Συμβολομεταφραστής (assembler) μεταφράζει προγράμματα σε γλώσσα assembly Μεταγλωττιστής (compiler) Ελέγχει το πρόγραμμα για συντακτικά λάθη και το μεταφράζει ολόκληρο πριν ξεκινήσει η εκτέλεση οποιουδήποτε μέρους του Η εκτέλεση του προγράμματος γίνεται κατόπιν απαίτησης του ίδιου του χρήστη Κάθε γλώσσα έχει το δικό της μεταγλωττιστή Το πρόγραμμα που είναι γραμμένο σε γλώσσα υψηλού επιπέδου λέγεται πηγαίος κώδικας (source code) ενώ το αποτέλεσμα της μεταγλώττισης λέγεται αντικειμενικός κώδικας (object code) Διερμηνευτής (interpreter) Η μετάφραση (και η εκτέλεση) γίνεται γραμμή-γραμμή σε αντίθεση με τον μεταγλωττιστή ο οποίος μεταφράζει ολόκληρο το πρόγραμμα Αντικειμενικό πρόγραμμα δεν δημιουργείται και δεν χρησιμοποιείται Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-17 ΙIΙ. Σύγχρονα εργαλεία και προσεγγίσεις Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-18

Αντικειμενοστραφής προγραμματισμός Παράδειγμα - Σχεδιασμός λειτουργικού συστήματος Τα διάφορα jobs ταξινομούνται ανάλογα με το αν έχουν high priority, medium priority, ή low priority. Πρέπει να υπάρχουν τρία queues για τα incoming jobs, ένα για κάθε τύπο job. Όταν στέλνεται ένα job, αυτό προστίθεται στο κατάλληλο queue, ενώ όταν το λειτουργικό σύστημα αποφασίζει ότι το job είναι έτοιμο προς εκτέλεση, τότε αυτό αποσύρεται από το αντίστοιχο queue Ολοκλήρωση δεδομένων (data) και διεργασιών (procedures) σε ένα αντικείμενο (object) Αποστολή μηνυμάτων (messages) στο object για να κάνει κάποια διεργασία Ενθυλάκωση δεδομένων (encapsulated data) Επαναχρησιμοποιήσιμος κώδικας (reusable code) Μείωση χρόνου και κόστους ανάπτυξης λογισμικού Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-19 Αντικειμενοστραφής προγραμματισμός (συν.) Objects Το προϊόν σχεδιάζεται με βάση τα abstract data types Τα αντικείμενα (objects) είναι instantiations αυτών των abstract data types Class: abstract data type η οποία υποστηρίζει inheritance Τα objects είναι instantiations των classes Κληρονομιά (inheritance) Έστω humanbeing μία class Ένα humanbeing έχει attributes, όπως age, height, gender Καταχώριση τιμών στα attributes κατά την περιγραφή του object Ορισμός της parent ως subclass του humanbeing Ένας parent έχει όλα τα attributes του humanbeing και, επιπλέον, τα δικά του attributes (name_of_oldest_child, num_of_children) Ένας parent «κληρονομεί» όλα τα attributes του humanbeing Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-20

Αντικειμενοστραφής προγραμματισμός (συν.) Πολυμορφισμός και dynamic binding Το μόνο που χρειάζεται είναι η myfile.open() Η κατάλληλη μέθοδος καλείται σε run-time (δυναμικά) Η μέθοδος open μπορεί να εφαρμοστεί σε objects διαφορετικών classes (πολυμορφισμός) FileClass virtual method open DiskFileClass Implementation of method open for a disk file TapeFileClass Implementation of method open for a tape file DisketteFileClass Implementation of method open for a diskette file Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-21 HTML Hypertext Markup Language Γλώσσα περιγραφής μιας ιστοσελίδας με δυνατότητες υπερκειμένου και υπερμέσων Χρήση εντολών, γνωστές ως ετικέτες (tags), για καθορισμό του τρόπου εμφάνισης των διαφόρων μέσων (κείμενο, γραφικά, βίντεο, ήχος) σε μια ιστοσελίδα και δημιουργία δυναμικών συνδέσμων (links) σε άλλα αρχεία (αποθηκευμένα στον ίδιο ή σε απομακρυσμένους Η/Υ) HTML editors: Claris Home Page, Adobe PageMill, Microsoft s FrontPage Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-22

XML extensible Markup Language «what Java did for portability of code, XML claims to do for portability of data» [McLaughlin, Java and XML] Είναι μια μεταγλώσσα που χρησιμοποιείται για να ορίσει άλλες γλώσσες (πολύ πιο απλή από την SGML) Δεν ορίζει ούτε το σύνολο των tags ούτε τη «γραμματική» μιας γλώσσας. Άρα, είναι πλήρως προεκτάσιμη <?xml version="1.0"?> <dining-room> <table type="round" wood="maple"> <manufacturer>neoset</manufacturer> <price>$549.9</price> </table> <chair wood="oak"> <quantity>4</quantity> <quality>excellent</quality> </chair> </dining-room> Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-23 Περιλαμβάνει: ΙV. Κύκλος Ζωής Λογισμικού Μοντέλο κύκλου ζωής Άνθρωποι (managers, experts, programmers, ) Εργαλεία CASE (computer-aided software engineering) Φάσεις κύκλου ζωής: Απαιτήσεων (requirements) Ορισμού Προδιαγραφών (specification) Σχεδιασμού (design) Υλοποίησης (implementation) Συνένωσης Κώδικα (integration) Συντήρησης (maintenance) Απόσυρσης (retirement) Ανάλυση απαιτήσεων Επαλήθευση Καθορισμός προδιαγραφών Επαλήθευση Σχεδιασμός Επαλήθευση Υλοποίηση Έλεγχος Συνένωση κώδικα Έλεγχος Αλλαγμένες απαιτήσεις Επαλήθευση Κατάσταση λειτουργίας Ανάπτυξη Συντήρηση Απόσυρση Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-24

Φάση συντήρησης Σχετικά κόστη κάθε φάσης Αντιστοιχεί στο 67% του ολικού κόστους "Καλό" είναι το λογισμικό που συντηρείται, ενώ το "κακό" πετιέται Τύποι συντήρησης Διορθωτική (corrective maintenance) - 20% Επαυξητική 80% Τελειοποίησης (perfective maintenance) -60% Προσαρμογής (adaptive maintenance) - 20% Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-25 Προϋπόθεση Φάση Ανάλυσης Απαιτήσεων Η διαδικασία θεωρείται εύλογη οικονομικά Αναλυτική διερεύνηση του προβλήματος Κατανόηση του τι χρειάζεται και όχι τι θέλει ο πελάτης Καταγραφή περιορισμών (constraints) Περαιτέρω ανάλυση και «εκλέπτυνση» του προβλήματος Είναι το προϊόν τεχνικά εφικτό; Γίνεται στα πλαίσια του budget του πελάτη; Βασικός έλεγχος φάσης απαιτήσεων Γρήγορο prototype Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-26

Φάση Καθορισμού Προδιαγραφών Τα σχετικά έγγραφα έχουν νομική υπόσταση (contract) Πρέπει να συμπληρωθούν έτσι ώστε να καθορίζουν επακριβώς το πρόβλημα Οι προδιαγραφές δεν πρέπει να είναι: Διφορούμενες, Ημιτελείς, Αντιφατικές (contradictory) Μετά τη συμπλήρωση των σχετικών εγγράφων: Αναλυτικός σχεδιασμός παραγωγής Υπολογισμός κόστους Τι πρέπει να κάνει το σύστημα; Software product management plan (SPMP) Παραδοτέα (deliverables) Βασικά χρονικά σημεία (milestones) Budget Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-27 Φάση Σχεδιασμού Καθορισμός σπονδύλων (modules) συστήματος και της μεταξύ τους επικοινωνίας (architectural design) Επιλογή αλγορίθμων, δομών δεδομένων και ροών δεδομένων (detailed design) Καταγραφή των σχετικών αποφάσεων Περιπτώσεις dead-end (backtrack and redesign) Συντήρηση Στην ιδανική περίπτωση, ο σχεδιασμός θα πρέπει να είναι openended Έλεγχος φάσης σχεδιασμού Αντιστοίχιση με προδιαγραφές Αναζήτηση λαθών λογικής, διαπροσωπείας (interface) μεταξύ των modules, απουσίας exception handling, Πώς πρέπει να το κάνει; Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-28

Φάση Υλοποίησης Υλοποίηση του αναλυτικού σχεδιασμού (κώδικας) Τεκμηρίωση Σχόλια (comments) στον κώδικα Επιπλέον: ανάλυση περιπτώσεων, αποτελέσματα, Έλεγχος φάσης υλοποίησης Code review Test cases Informal testing (desk checking) Formal testing (Software Quality Assurance Group) Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-29 Φάση Συνένωσης Κώδικα Συνένωση «σπονδύλων» λογισμικού και έλεγχος σωστής λειτουργίας του προϊόντος ως ενιαία οντότητα Υλοποίηση και συνένωση κώδικα πρέπει να γίνονται παράλληλα Έλεγχος φάσης Product testing (functionality against specifications, περιορισμοί, ορθότητα, αξιοπιστία, «ευρωστία» (robustness), συμβατότητα με άλλο λογισμικό, ) Acceptance testing (στον πελάτη, με πραγματικά δεδομένα) Commercial off-the-shelf software (COTS) Alpha version, beta version (σχεδόν τελική) Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-30

Συντήρηση Φάση Συντήρησης Περιλαμβάνει οποιαδήποτε αλλαγή αφότου ο πελάτης έχει παραλάβει το προϊόν λογισμικού Πρέπει πάντα να θεωρείται ως αναπόσπαστο τμήμα της διαδικασίας ανάπτυξης λογισμικού Κοστίζει περισσότερο απ ότι όλες οι άλλες φάσεις μαζί Βασικό πρόβλημα η έλλειψη (καλής) τεκμηρίωσης Έλεγχοι στη φάση αυτή Όχι μόνο αν έγιναν οι απαιτούμενες αλλαγές, αλλά και αν αυτές επέφεραν κάποιες άλλες, ανεπιθύμητες αλλαγές (regression testing) Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-31 Φάση Απόσυρσης Το «καλό» λογισμικό συντηρείται Το λογισμικό γράφεται από την αρχή όταν: Απαιτούνται δραστικές αλλαγές στο σχεδιασμό του τελικού προϊόντος Η συντήρηση καταντά αδύνατη ή ασύμφορη Αντικατασταθεί το υλικό (hardware) ή το λειτουργικό σύστημα Η τεκμηρίωση είναι ανύπαρκτη, ελλιπής ή ανακριβής Πραγματική (ολική) απόσυρση ενός προϊόντος είναι σπάνιο φαινόμενο Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 7-32