Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Β΄ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΕΦΑΛΑΙΟ 2 ΑΠΟ ΤΟ ΑΛΓΟΡΙΘΜΟ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΠΡΟΓΡΑΜΜΑΤΟΣ
Κύκλος Ανάπτυξης Προγράμματος Αναλύεται σε έξι βασικά βήματα: Περιγραφή του προβλήματος, καθορισμός απαιτήσεων Ανάλυση προβλήματος, προσδιορισμός της λύσης Σχεδίαση της λύσης του προβλήματος Ανάπτυξη αλγορίθμου Σχεδιασμός διαγράμματος ροής ∆ημιουργία ψευδοκώδικα Κωδικοποίηση σε γλώσσα προγραμματισμού Έλεγχος διόρθωση λαθών Συντήρηση προγράμματος, τεκμηρίωση
Κύκλος Ανάπτυξης Προγράμματος Είναι η διαδικασία που ακολουθούμε για την ανάπτυξη ενός προγράμματος Δύο βασικές μεθοδολογίες: Μοντέλο του καταρράκτη Μοντέλο σπείρας
Μοντέλο του καταρράκτη Υποδιαιρεί τη διαδικασία ανάπτυξης ενός συστήματος λογισμικού στις ακόλουθες φάσεις: Ανάλυσης απαιτήσεων Σχεδίασης Υλοποίησης Ολοκλήρωσης Λειτουργίας και συντήρησης
Μοντέλο σπείρας Εξελικτική διαδικασία με την επαναληπτική εκτέλεση ενός κύκλου φάσεων, που σε καθεμιά δημιουργείται μια ενδιάμεση έκδοση του τελικού προϊόντος η οποία βελτιώνεται κατά τον επόμενο κύκλο κ.ο.κ. Ανάλυση του προβλήματος Σχεδίαση Συγγραφή κώδικα Έλεγχος και εκσφαλμάτωση Τεκμηρίωση
2.2 Προγραμματιστικά Υποδείγματα 2.2 Προγραμματιστικά Υποδείγματα Η ανάπτυξη ενός προγράμματος σε κάποια γλώσσα προγραμματισμού βασίζεται σε ένα πρότυπο ή μία καθορισμένη μεθοδολογία Ως «Προγραμματιστικό Υπόδειγμα» εννοείται ένα πρότυπο ανάπτυξης προγραμμάτων, δηλαδή μία καθορισμένη μεθοδολογία με βάση την οποία αναπτύσσονται η δομή και τα στοιχεία του προγράμματος
Προγραμματιστικά Υποδείγματα Προστακτικός Προγραμματισμός Εντολές σε προστακτική για εκτέλεση συγκεκριμένων ενεργειών Cobol, Fortran, Pascal, C κ.α. Δηλωτικός Προγραμματισμός Δήλωση επιθυμητών ιδιοτήτων αποτελέσματος, περιγραφή σκοπού Lisp, Logo, Prolog, SQL, HTML
2.2.1 Προστακτικός Προγραμματισμός Μη Δομημένος Προγραμματισμός Δομημένος Προγραμματισμός Διαδικαστικός Προγραμματισμός Αντικειμενοστραφής Προγραμματισμός
Μη Δομημένος Προγραμματισμός η διακλάδωση της ροής γίνονταν με την εντολή goto
Δομημένος Προγραμματισμός προτάθηκε ως έννοια το 1966 από την ανάγκη να περιοριστεί η χρήση των εντολών GOTO (Πήγαινε) Μεθοδολογία ανάλυσης, σχεδίασης και συγγραφής προγραμμάτων που περιλαμβάνει: Ιεραρχική σχεδίαση: διαίρεση προβλήματος σε υποπροβλήματα – (top-down) Τμηματικό προγραμματισμό: κάθε υποπρόβλημα αποτελεί ανεξάρτητη ενότητα που ονομάζεται υποπρόγραμμα Τρείς δομές ελέγχου: δομή ακολουθίας, επιλογής, επανάληψης
2.2.1 Προστακτικός Προγραμματισμός Δομημένος Προγραμματισμός Διαδικαστικός Προγραμματισμός αυτοτελείς ομάδες εντολών, τις διαδικασίες (procedures) Pascal Αντικειμενοστραφής Προγραμματισμός Αντικείμενο: δομή δεδομένων που περιέχει τα χαρακτηριστικά και τις μεθόδους του αντικειμένου – κλάσεις Java, C++
2.2.2 Δηλωτικός Προγραμματισμός Συναρτησιακός Προγραμματισμός Χρήση μαθηματικών συναρτήσεων Lisp, Logo Λογικός Προγραμματισμός Προτάσεις σε μορφή λογικών εκφράσεων Τεχνητή Νοημοσύνη – Prolog Άλλες γλώσσες: HTML SQL
2.2.3 Λοιπά πρότυπα – Τεχνικές Προγραμματισμού 2.2.3 Λοιπά πρότυπα – Τεχνικές Προγραμματισμού Παράλληλος: Πολλοί επεξεργαστές – παράλληλη εκτέλεση τμημάτων κώδικα (OCCAM) Προγραμματισμός οδηγούμενος από γεγονότα: Η ροή του προγράμματος εξαρτάται από την ύπαρξη Γεγονότων π.χ. πάτημα του ποντικιού ή ενός πλήκτρου ( Microsoft Visual-Basic) Οπτικός προγραμματισμός: δημιουργία προγράμματος μέσω γραφικών αντικειμένων, αντί πληκτρολόγησης εντολών (Scratch)
2.2.3 Λοιπά πρότυπα – Τεχνικές Προγραμματισμού 2.2.3 Λοιπά πρότυπα – Τεχνικές Προγραμματισμού Προγραμματισμός δέσμης ενεργειών: δημιουργία μικρών τμημάτων κώδικα (script) Αρθρωτός ή Τμηματικός Προγραμματισμός: διαίρεση του προβλήματος σε απλούστερα τμήματα ανεξάρτητα μεταξύ τους Ιεραρχικός σχεδιασμός: μέθοδος ανάλυσης ενός προβλήματος σε μικρότερα
2.2.4 Ενδεικτικά περιβάλλοντα και γλώσσες προγραμματισμού Pascal Η πλέον κλασική γλώσσα δομημένου προγραμματισμού Visual Basic Περιβάλλον προγραμματισμού, που ακολουθεί μικτό πρότυπο υποδειγμάτων C++ Επέκταση της C - γλώσσα αντικειμενοστραφούς προγραμματισμού, διδασκαλία διαδικαστικού προγραμματισμού Java Αντικειμενοστραφής προγραμματισμός Python Μικτά υποδείγματα προγραμματισμού, όπως Συναρτησιακό, Αντικειμενοστραφές Prolog (Programming in Logic) Γλώσσα Λογικού προγραμματισμού
2.3 Αντικειμενοστρεφής προγραμματισμός (Object-oriented programming) είδος προγραμματισμού που περιστρέφεται γύρω από την έννοια της Κλάσης (Class), η οποία περιγράφει Αντικείμενα (Objects), τα οποία περιέχουν δεδομένα στη μορφή Ιδιοτήτων (Properties) και κώδικα στη μορφή Μεθόδων (Methods)
2.3 Αντικειμενοστρεφής προγραμματισμός (Object-oriented programming)