2. Εισαγωγή στους Η/Υ και τον προγραμματισμό



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

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

Information Technology for Business

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

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος

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

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

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών

Αντικειμενοστρεφής Προγραμματισμός

Παραδείγματα Δεδομένων: Οι τιμές στο κυλικείο, μια λίστα από ονόματα, τα σήματα της τροχαίας.

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

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

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

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

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

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

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

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

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

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

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

Πληροφορίες. Εισαγωγή στην Πληροφορική. Κατηγορίες υλισµικού. Περίληψη µαθήµατος (συνέχεια) Επεξεργαστής Μνήµη. Χειµερινό Εξάµηνο

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

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

2. Αλγόριθμοι, δομές δεδομένων και πολυπλοκότητα

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

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

Βασικές Έννοιες της Πληροφορικής

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

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

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

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

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

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Σημειώσεις Θεωρίας

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

MULTIPLE CHOICE REVISION: ΜΑΘΗΜΑ 1-2

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

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

Χειµερινό εξάµηνο

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ Της ΠΛΗΡΟΦΟΡΙΚΗΣ. Εισαγωγή

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

ΜΑΘΗΜΑ 1- MULTIPLE CHOICE

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

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

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Εισαγωγή στην Επιστήμη της Πληροφορικής και των Υπολογιστών

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

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

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

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

Υποδομή ΤΠ: Υλικό και λογισμικό

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

Δεδομένα & Αναπαράσταση Πληροφορίας

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

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

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

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

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

Σύντοµη Ιστορία της Πληροφορικής

Εισαγωγή στην επιστήμη των υπολογιστών

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

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία

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

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

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

Σχολ.έτος Κεφάλαιο 5 ο Γνωριμία με το Λογισμικό του Υπολογιστή.

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

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

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

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

Εφαρμογές Πληροφορικής

Πληροφορική και Υπολογιστές

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

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

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

ΣΗΜΕΙΩΣΕΙΣ ΓΡΑΦΙΣΤΙΚΗ ΜΕ Η/Υ 1. Του Αποστόλου Παπαποστόλου Επίκουρου Καθηγητή του ΤΕΙ Αθήνας

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

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 1

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

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

Transcript:

ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής 2. Εισαγωγή στους Η/Υ και τον προγραμματισμό Χειμερινό εξάμηνο 2014 Πέτρος Κωμοδρόμος kmdrms@ucy.ac.cy http://www.eng.ucy.ac.cy/petrs 1

Θέματα Ιστορικά στοιχεία Η/Υ Βασικές αρχές υλικού (hardware) και λογισμικού (sftware) Λειτουργικά συστήματα και δίκτυα (perating systems and netwrks) Αναπαράσταση αριθμών και δεδομένων στους Η/Υ Τύποι γλωσσών προγραμματισμού (prgramming languages) Εισαγωγή στον αντικειμενοστραφή προγραμματισμό (OOP) Διαδικασία ανάπτυξης λογισμικού Java Αξιοποίηση Java σε σύγχρονες εφαρμογές πληροφορικής Αντικειμενοστραφής προγραμματισμός, Design Patterns και UML 2

Ιστορικά στοιχεία H/Y και πληροφορικής 1939, Atanasff και Berry: πρώτος ψηφιακόs Η/Υ 1939-44, Hward Aiken: πρώτος μεγάλης κλίμακας Η/Υ (Harvard Mark I) 1943, Alan Turing: πρώτος προγραμματιζόμενος ψηφιακόs Η/Υ (COLOSSUS) 1944: πρώτος γενικής χρήσης ψηφιακόs Η/Υ (ENIAC) 3

Δεκαετία 1960: Ολοκληρωμένα κυκλώματα σημαντική μείωση μεγέθους Η/Υ 1969: ARPANET: Γέννηση του διαδίκτυου Δεκαετία 1970: πρώτοι μικροϋπολογιστές 1976: Κατασκευάζεται ο πρώτος υπερυπολογιστής (Cray-1) 1981: Κατασκευάζεται ο προσωπικός Η/Υ IBM PC 1989-90, Tim Berners-Lee: Wrld-Wide Web (WWW), HTML, & HTTP 1993 & 1994: Δημιουργούνται τα Msaic & Netscape WWW brwsers 4

Πρόοδος Τεχνολογίας Ηλεκτρονικών Υπολογιστών 5 ΜΒ σκληρός Δίσκος (1956) 128 GΒ (128 x 1024 MB) USB Memry key (2011) 5

Η/Υ Ηλεκτρονικοί Υπολογιστές (Η/Υ) Δυνατότητα εκτελέσεως υπολογισμών και λογικών αποφάσεων Δισεκατομμύρια φορές μεγαλύτερη ταχύτητα από του ανθρώπου Προγράμματα υπολογιστών Εντολές βάσει των οποίων ένας Η/Υ εκτελεί κάποια συγκεκριμένη εργασία Υλικό (hardware) Ηλεκτρονικά και μηχανικά τμήματα ενός υπολογιστικού συστήματος Λογισμικό (sftware) Προγράμματα και δεδομένα που εκτελούνται σε ένα Η/Υ 6

Βασικά στοιχεία ψηφιακών Η/Υ Βασικές λειτουργίες: αποθήκευση πληροφοριών ανάκληση πληροφοριών ταχύτατη εκτέλεση μαθηματικών πράξεων Υλικό (hardware): Βασική αρχιτεκτονική: Eίσοδος δεδομένων (Ιnput data) K.M.E. (CPU) Επεξεργαστής (prcessr) Πρωτεύων μνήμη (RAM) Έξοδος αποτελεσμάτων (Output data) 7

Βασικά στοιχεία ψηφιακών Η/Υ Λογισμικό(sftware): Προγράμματα Η/Υ: Προγράμματα συστημάτων: λειτουργικά συστήματα (Unix, MSDOS, Windws, Linux, κλ.π.), μεταγλωττιστές, κ.λπ. Προγράμματα εφαρμογών: π.χ. Ntepad, Wrd, Excel, Pwerpint, Οutlk, Netscape, Internet Explrer, Matlab, Autcad, κ.λπ. Δεδομένα προγραμμάτων Η/Υ 8

Σύνηθες λογικές μονάδες υπολογιστικού συστήματος Μονάδα εισόδου (input unit) Ποντίκι (muse), πληκτρολόγιο (keybard) Μονάδα εξόδου (utput unit) Εκτυπωτής (printer), οθόνη (mnitr), μεγάφωνα (audi speakers), κ.λπ. Μονάδα μνήμης (memry unit) Διατηρεί άμεσα δεδομένα όσο είναι σε λειτουργία ο Η/Υ Αριθμητική και λογική μονάδα (arithmetic and lgic unit - ALU) Εκτελεί υπολογισμούς Κεντρική μονάδα επεξεργασίας (central prcessing unit - CPU) Συντονίζει την λειτουργία όλων των επιμέρους συσκευών του Η/Υ Δευτερεύουσα μνήμη αποθήκευσης (secndary strage unit) Σκληρός δίσκος (hard drive), δισκέττα (flppy drive), CD (cmpact disc), DVD (digital vide disc), κλ.π. 9

Λειτουργικά συστήματα (perating systems) Επεξεργασία κατά δεσμίδες (batch prcessing) Εκτέλεση εργασιών (jb, task) ξεχωριστά μία-μία με τη σειρά Ανάπτυξη λειτουργικών συστημάτων για έλεγχο και διαχείριση της εκτέλεσης των διεργασιών Πολυπρογραμματισμός (multiprgramming) Πολλαπλές ταυτόχρονες εργασίες ( simultaneus jbs) Χρονικός καταμερισμός (timesharing) της χρήσης του Η/Υ Μη προεκτοπιστικός χρονοπρογραμματισμός (nn-preemptive scheduling) Προεκτοπιστικός χρονοπρογραμματισμός (preemptive scheduling) 10

Κατηγορίες υπολογιστικών συστημάτων Προσωπικοί υπολογιστές (persnal cmputers - PCs) Ανεξάρτητοι/αυτόνομοι Η/Υ για ατομική χρήση Κατανεμημένο (distributed) υπολογιστικό σύστημα Οι διεργασίες που πρέπει να εκτελεστούν κατανέμονται σε ομάδα Η/Υ Πελάτης/εξυπηρετητής (client/server) Η/Υ Οι εξυπηρετητές προσφέρουν συγκεκριμένα δεδομένα ή προγράμματα Οι πελάτες έχουν πρόσβαση στα δεδομένα ή προγράμματα του εξυπηρετητή H Java μπορεί να χρησιμοποιηθεί και στις 3 κατηγορίες Η/Υ 11

Διαδίκτυο (Internet) και Παγκόσμιος ιστός πληροφοριών (Wrld Wide Web - WWW) Διαδίκτυο (internet): Παγκόσμιο δίκτυο Η/Υ Αναπτύχθηκε πριν 40 χρόνια στις Η.Π.Α. για στρατιωτικούς σκοπούς Αρχικά συνέδεσε ένα μικρό αριθμό υπολογιστικών κέντρων Σήμερα παρέχει πρόσβαση σε εκατοντάδες εκατομμύρια Η/Υ Παγκόσμιος ιστός (Wrld Wide Web - WWW) Διευκολύνει την εύρεση και πρόσβαση σε πληροφορίες διαφόρων τύπων και πολυμέσων (multimedia) μέσω υπερκειμένων (hypertext) αξιοποιώντας την γλώσσα HTML (Markup Language) H Java μπορεί να αξιοποιήσει τόσο το διαδίκτυο όσο και το WWW 12

Γλώσσες προγραμματισμού (Prgramming Languages) Γλώσσα μηχανής (machine language): Άμεσα κατανοητή από τον συγκεκριμένο Η/Υ Πολύ δύσκολος και αργός προγραμματισμός (απλές εντολές σε μορφή αριθμών) Εξαρτώμενη αποκλειστικά από τον συγκεκριμένο Η/Υ Γλώσσα Assembly Χρήση αγγλικών λέξεων αντί αριθμών για τον καθορισμό απλών εντολών Μεταφραστές (Assemblers) μετατρέπουν τα προγράμματα σε γλώσσα μηχανής Ανάγκη χρήσης πάρα πολλών εντολών ακόμη και για την πιο απλή διεργασία 13

Γλώσσες προγραμματισμού (Prgramming Languages) Γλώσσα ψηλού επιπέδου (high-level language) Χρήση αγγλικών λέξεων για τον καθορισμό σύνθετων εντολών και εργασιών συμπεριλαμβανομένων μαθηματικών εντολών και λογικών ελέγχων Ο μεταγλωττιστής (cmpiler) μετατρέπει τον πηγαίο κώδικα (surce cde) σε γλώσσα μηχανής δημιουργώντας ένα εκτελέσιμο πρόγραμμα (executable prgram) Κάποιες γλώσσες (π.χ. VB) χρησιμοποιούν μεταφραστής/διερμηνευτή (interpreter) Διερμηνεύοντας άμεσα το πρόγραμμα το εκτελεί χωρίς μεταγλώττιση Πολύ πιο αργό αφού δεν αξιοποιεί πλήρως το διαθέσιμο υλικό (hardware) 14

Γλώσσες προγραμματισμού FORTRAN (FORmula TRANslatr) Δημιουργήθηκε κατά τα μέσα της δεκαετίας του 50 Κατάλληλη για πολύπλοκους μαθηματικούς υπολογισμούς COBOL (COmmn Business Oriented Language) Δημιουργήθηκε προς το τέλος της δεκαετία του 50 Κατάλληλη για εμπορικές εφαρμογές για αποδοτική διαχείριση ογκωδών δεδομένων Basic (Beginner s All Purpse Symblic Instructin Cde) Δημιουργήθηκε στα μέσα της δεκαετίας του 60 για να είναι δυνατή η ανάπτυξη πολύ απλών προγραμμάτων από σχετικά άπειρους προγραμματιστές Pascal Δημιουργήθηκε το 1971 για τη διδασκαλία δομημένου προγραμματισμού (structured prgramming) με τον οποίο πιο ευανάγνωστα, εύκολα ελέγξιμα και τροποποιήσιμα προγράμματα μπορούσαν να αναπτυχθούν 15

Ada C C++ Java C# Δημιουργήθηκε κατά τα τέλη της δεκαετίας του 70 Προσφέρει δυνατότητες παράλληλης εκτέλεσης διάφορων διεργασιών (multitasking) Δημιουργήθηκε το 1972 από τον Dennis Ritchie στα Bell Labs Παρέχει πάρα πολλές δυνατότητες και με αυτή έχουν γραφτεί τα περισσότερα λειτουργικά συστήματα (perating systems) Δημιουργήθηκε τη δεκαετία του 80 από τον Bjarne Strustrup στα Bell Labs Επέκταση της C με ικανότητες αντικειμενοστραφούς προγραμματισμού Δημιουργήθηκε το 1995 από τον James Gsling βάσει της C++ Καθαρά αντικειμενοστραφής προγραμματισμός με δυνατότητες διαδικτύου Δημιουργήθηκε το 2000 σαν βασική γλώσσα της τεχνολογίας.net Βασίστηκε στις C++ και Java ανταγωνιζόμενη εμπορικώς την τελευταία 16

Java Αρχικά δημιουργήθηκε για έξυπνες ηλεκτρονικές συσκευές Αξιοποιήθηκε για το διαδίκτυο και το WWW H γλώσσα προγραμματισμού Java είναι: μία καθαρά αντικειμενοστραφής γλώσσα προγραμματισμού ανεξάρτητη πλατφόρμας (platfrm-independent) (PC, Mac, Unix, Linux, κ.λπ.) ανεξάρτητη από το είδος των γραφικών του Η/Υ 17

Προσφέρει δυνατότητες Java αφαιρετικότητας (abstractin) απόκρυψης (infrmatin hiding) συμπερίληψης (encapsulatin) κληρονομικότητας (inheritance) πολυμορφισμού (plymrphism) πολλαπλές διεργασίες (multithreading) διαχείριση σφαλμάτων (exceptin handling) επαναχρησιμοποίησης (reusability) επεκτασιμότητας (extensibility) 18

Java Η Java μπορεί να χρησιμοποιηθεί για την: ανάπτυξη εύκολα επαναχρησιμοποιούμενου αντικειμενοστραφούς λογισμικού ανάπτυξη μεγάλων λογισμικών πακέτων επέκταση των δυνατοτήτων και υπηρεσιών που προσφέρει ένας εξυπηρετητής (WWW server) ανάπτυξη εφαρμογών με στοιχεία γραφικών δημιουργία εφαρμογών για μικροσυσκευές (κινητά, PDA s, κλ.π.) ανάπτυξη εφαρμογών με αξιοποίηση του διαδικτίου ανάπτυξη εφαρμογών με παράλληλη εκτέλεση πολλαπλών διεργασιών 19

Διαθέσιμες πλατφόρμες Java Java Standard Editin (SE) Σύνηθες εφαρμογές με δυνατότητες δικτύου/διαδικτύου Java Enterprise Editin (EE) Μεγάλης κλίμακας εφαρμογές κυρίως για μεγάλες επιχειρήσεις Java Micr Editin (ΜE) Εφαρμογές για συσκευές με περιορισμένες δυνατότητες μνήμης 20

Java Standard Editin (SE) http://www.racle.cm/technetwrk/java Κατεβάστε το τελευταίο JDK8 (Java SE8) μαζί με το NetBeans Applicatin Prgramming Interface (API): μια συλλογή από στοιχεία τα οποία μπορούν να χρησιμοποιηθούν για την ανάπτυξη λογισμικού Java SE 8.0 Develpment Kit (JDK) παρέχει τα ελάχιστα δυνατά εργαλεία για ανάπτυξη προγραμμάτων Java Πλούσια συλλογή κλάσεων (classes) προς χρήση: Java APIs Συμπεριλαμβάνουν χρήσιμες μεθόδους Μπορούν να αξιοποιηθούν για γρήγορη και αποδοτική δημιουργία επεκτάσιμων προγραμμάτων με τη Java 21

Αντικειμενοστραφής προγραμματισμός Αντικείμενα (bjects) Προγραμματιστικά στοιχεία που αντιπροσωπεύουν πραγματικά αντικείμενα Παραδείγματα αντικειμένων άνθρωποι, κτίρια, αυτοκίνητα, ζώα, δέντρα, ποδήλατα, παιδιά, δοκοί, κ.λπ. Χαρακτηριστικά, γνωρίσματα (attributes) Βάρος, ύψος, χρώμα, πυκνότητα, σχήμα, ηλικία Συμπεριφορές (behavirs) Οι άνθρωποι τρώνε, μιλάνε, περπατούν, δουλεύουν, κ.λπ. Οι δοκοί φορτίζονται, παραμορφώνονται, κ.λπ. Τα κτίρια διεγείρονται σεισμικά, ταλαντώνονται, κ.λπ. 22

Ανάπτυξη αντικειμενοστραφούς λογισμικού Επαναχρησιμοποίηση έτοιμου λογισμικού (sftware reuse) Αξιοποίηση τάξεων και αντίστοιχων μεθόδων (classes/methds): από τις διαθέσιμες βιβλιοθήκες τάξεων που έχουμε ήδη αναπτύξει και ελέγξει στο παρελθόν που έχουν κάποιοι άλλοι αναπτύξει και ελέγξει Εξοικονόμηση απαιτούμενου χρόνου για την ανάπτυξη λογισμικού Χρησιμοποιώντας τις βιβλιοθήκες τάξεων της Java (API classes): αυξάνει η αποδοτικότητα του λογισμικού διατηρούμε την δυνατότητα μεταφοράς (prtability) του λογισμικού σε άλλη πλατφόρμα Η/Υ ελαχιστοποιείται ο χρόνος ανάπτυξης του λογισμικού 23

Αντικειμενοστραφής Ανάλυση, Σχεδιασμός και Προγραμματισμός (Object-Oriented Analysis, Design and Prgramming) Αντικειμενοστραφής προγραμματισμός (bject-riented analysis/design/prgramming OOA/OOD/OOP) Αντιπροσωπεύονται πραγματικά αντικείμενα Προσομοιώνονται οι ενέργειες και αλληλοεπιδράσεις μεταξύ αντικειμένων Οι τάξεις συμπεριλαμβάνουν χαρακτηριστικά και συμπεριφορές (encapsulate attributes and peratins) έχοντας δυνατότητες επιλεκτικής απόκρυψης κάποιων πληροφοριών (infrmatin hiding) και περιορισμού των δυνατοτήτων πρόσβασης σε δεδομένα Unified Mdeling Language (UML) γραφική απεικόνιση της σχεδίασης ενός αντικειμενοστραφούς συστήματος Σύγχρονες μέθοδοι σχεδίασης λογισμικού (Design Patterns) 24