Τεχνικές προγραμματισμού 1

Παράλληλος προγραμματισμός (parallel programming). Επιτρέπει ταυτόχρονη εκτέλεση διαδικασιών από διαφορετικούς επεξεργαστές.

 

 

Προγραμματισμός οδηγούμενος από γεγονότα (event-driven programming). Αποτελεί περισσότερο τεχνική αρχιτεκτονικής ενός προγράμματος σχετικά με τη ροή του, παρά προγραμματιστικό υπόδειγμα. Η ροή του προγράμματος εξαρτάται από την ύπαρξη Γεγονότων (events), όπως είναι για παράδειγμα ένα μήνυμα ενός αισθητήρα ή μια ενέργεια του χρήστη με το πάτημα του ποντικιού ή ενός πλήκτρου. Παράδειγμα αποτελεί η Microsoft Visual-Basic.

 

 

Οπτικός προγραμματισμός (visual programming). Δεν αποτελεί υπόδειγμα, αλλά εκφράζει τη δυνατότητα γλωσσών ή περιβαλλόντων προγραμματισμού να παρέχουν τη δυνατότητα δημιουργίας του προγράμματος μέσω γραφικών αντικειμένων, αντί της πληκτρολόγησης του κειμένου που αντιστοιχεί σε εντολές. Οι γλώσσες οπτικού προγραμματισμού βασίζονται, άλλες σε γραφικά με τη μορφή εικονιδίων (icon-based languages), άλλες σε διαγράμματα (diagram languages) και τέλος, άλλες σε φόρμες (form based languages). Στην κατηγορία αυτή ανήκουν περιβάλλοντα όπως το Authorware της Adobe, περιβάλλοντα δημιουργίας σεναρίων όπως το Kodu της Microsoft και το Alice, το MIT Scratch, το Greenfoot.

Δηλωτικός προγραμματισμός

Ο Δηλωτικός προγραμματισμός (declarative programming paradigm) βασίζεται στην περιγραφή του σκοπού, τον οποίο ζητείται από το πρόγραμμα να επιτύχει. Στο γενικό αυτό υπόδειγμα ανήκουν διάφορες υποκατηγορίες προγραμματισμού, όπως είναι ο Συναρτησιακός και ο Λογικός.

Ο Συναρτησιακός προγραμματισμός (functional programming) βασίζεται σε μαθηματικές συναρτήσεις, με γλώσσες όπως Lisp, Logo κ.ά.

Στο Λογικό προγραμματισμό (logic programming), ένα πρόγραμμα είναι ένα σύνολο από αξιώματα ή κανόνες οι οποίοι καθορίζουν σχέσεις ανάμεσα σε αντικείμενα. Υπολογισμός ενός λογικού προγράμματος είναι ένα συμπέρασμα που συνάγεται από τα αποτελέσματά του.

Στο προγραμματιστικό πρότυπο του Δηλωτικού προγραμματισμού μπορούμε να θεωρήσουμε ότι ανήκουν και άλλες γλώσσες, που δεν υπάγονται στις δύο προηγούμενες κατηγορίες. Χαρακτηριστικές είναι η HTML (HyperText Markup Language), γλώσσα σήμανσης-χαρακτηρισμού υπερκειμένου και εν μέρει η SQL (Structured Query Language) γλώσσα για τη διαχείριση δεδομένων, σε ένα Σύστημα Διαχείρισης Σχεσιακών Βάσεων Δεδομένων (RDBMS-Relational Database Management System).

Προστακτικός προγραμματισμός / Δομημένος και μη προγραμματισμός

Ο Προστακτικός προγραμματισμός βασίζεται σε εντολές που υλοποιούν τα βήματα ενός αλγόριθμου, ενεργώντας σε μεταβλητές και αλλάζοντας την κατάστασή τους. Βρίσκεται πιο κοντά στη λογική λειτουργίας του υπολογιστή. Γλώσσες που ακολούθησαν το είδος αυτό είναι οι κλασικές γλώσσες προγραμματισμού, όπως

Cobol,

Fortran,

Pascal,

C κ.ά.

 

Κατά την αρχική περίοδο του προγραμματισμού, η διακλάδωση της ροής γίνονταν με την εντολή goto, κατάσταση που οδηγούσε σε μη δομημένα προγράμματα (μη δομημένος προγραμματισμός - unstructured programming). Στη συνέχεια δημιουργήθηκε το πρότυπο του Δομημένου προγραμματισμού (structured programming), με τις εντολές σε ομάδες (blocks) να ακολουθούν την Ιεραρχική λογική ροής και τη δυνατότητα χρήσης υπορουτινών και διάφορων άλλων δομών, όπως η if-then-else.

 

Ο Διαδικαστικός προγραμματισμός (procedural programming) αποτελεί μια υποκατηγορία του Δομημένου προγραμματισμού, με το πρόγραμμα να αποτελείται από αυτοτελείς ομάδες εντολών, τις διαδικασίες (procedures). Η γλώσσα προγραμματισμού που αξιοποίησε αρχικά το είδος αυτό είναι η Pascal, από το 1970.

 

Ο Αντικειμενοστραφής προγραμματισμός (object-oriented programming) βασίζεται, σε αντίθεση με το Διαδικαστικό προγραμματισμό, σε αντικείμενα που αλληλεπιδρούν μεταξύ τους, αποτελώντας πρότυπο που ταιριάζει περισσότερο στη λογική οργάνωσης και λειτουργίας του πραγματικού κόσμου. 2

Μοντέλο του καταρράκτη / Μοντέλο σπείρας

Μοντέλο του καταρράκτη

 

Πρόκειται για το μοντέλο που υποδιαιρεί τη διαδικασία ανάπτυξης ενός συστήματος λογισμικού στις ακόλουθες φάσεις:

• Ανάλυση απαιτήσεων.

• Σχεδίαση.

• Υλοποίηση.

• Ολοκλήρωση.

• Λειτουργία και συντήρηση

Μοντέλο σπείρας

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

 

Παρόμοια με τη διαδικασία ανάπτυξης ενός λογισμικού, εργαζόμαστε και κατά την ανάπτυξη ενός προγράμματος, ακολουθώντας πάλι μια μεθοδολογία υλοποίησης του κύκλου ανάπτυξης προγράμματος (program development life cycle-PDLC).

Μια από τις μεθοδολογίες ανάπτυξης προγράμματος αποτελείται από φάσεις, όπως:

• Ανάλυση του προβλήματος.

• Σχεδίαση.

• Συγγραφή κώδικα.

• Έλεγχος και εκσφαλμάτωση.

• Τεκμηρίωση.

Περιγραφή με ψευδοκώδικα/διάγραμμα ροής

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

• Με διαγραμματικές τεχνικές (diagramming techniques), οι οποίες συνιστούν ένα γραφικό τρόπο παρουσίασης του αλγόριθμου. Από τις διάφορες διαγραμματικές τεχνικές που έχουν επινοηθεί η πιο παλιά και η πιο γνωστή ίσως είναι το διάγραμμα ροής (flow chart).

• Με κωδικοποίηση (coding), δηλαδή με ένα πρόγραμμα γραμμένο είτε σε μία ψευδογλώσσα είτε σε κάποια γλώσσα προγραμματισμού που, όταν εκτελεσθεί, θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο.

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

Τι πρέπει να θυμάστε:

Η Ψευδογλώσσα είναι το στοιχείο εκείνο που θα κάνει έναν αρχάριο προγραμματιστή, να σχεδιάσει τα προγράμματα του πριν την τελική του εκτέλεση και δομή του κώδικα γραφής.

Ανάλυση ενός προβλήματος σε απλούστερα υποπροβλήματα

Υπάρχουν διάφορες επιστημονικές μέθοδοι για την ανάλυση της δομής ενός προβλήματος και την εύρεση των τμημάτων (υποπροβλημάτων) που το αποτελούν. Οι μέθοδοι αυτές είναι γνωστές με τα ονόματα Αναλυτική (Από Πάνω προς τα Κάτω-Top Down), Συνθετική (Από Κάτω προς τα Πάνω-Bottom Up), και Μικτή (Mixed) μέθοδος. Στο κεφάλαιο αυτό θα γνωρίσουμε την Αναλυτική μέθοδο επίλυσης προβλήματος (Top Down problem solving) η οποία είναι η ευρύτερα εφαρμοζόμενη μέθοδος. Η γενική αρχή της είναι ότι για να λύσουμε κάποιο σύνθετο πρόβλημα πρέπει:

1. Να καθορίσουμε τα υποπροβλήματα.

2. Να επαναλάβουμε τη διαδικασία αυτή για κάθε ένα από τα υποπροβλήματα, όσο αυτό είναι αναγκαίο.

3. Να προχωράμε στην άμεση επίλυσή τους, όταν φτάσουμε σε υποπροβλήματα που δεν απαιτούν επιπλέον διάσπαση. Η λύση του προβλήματος επιτυγχάνεται με τη σύνθεση των λύσεων των επιμέρους προβλημάτων.
Αν η ανάλυση του αρχικού προβλήματος θεωρείται επαρκής, η διάσπαση των επιμέρους προβλημάτων σε άλλα απλούστερα μπορεί να τερματιστεί. Ο παραπάνω τρόπος περιγραφής και ανάλυσης ενός προβλήματος γίνεται φραστικά. Ο ενδιαφερόμενος για την αντιμετώπιση του αρχικού προβλήματος έχει πλέον μπροστά του να αντιμετωπίσει μια σειρά από επιμέρους προβλήματα τα οποία, στο σύνολό τους, εκφράζουν και αντιστοιχούν στο αρχικό πρόβλημα. Η ανάλυση αυτή του προβλήματος σε άλλα απλούστερα αναδύει, παράλληλα, και τη δομή του προβλήματος. Για τη γραφική απεικόνιση της δομής ενός προβλήματος χρησιμοποιείται συχνότατα η διαγραμματική αναπαράσταση, σύμφωνα με την οποία:

• Το αρχικό πρόβλημα αναπαρίσταται από ένα ορθογώνιο παραλληλόγραμμο.

• Κάθε ένα από τα απλούστερα προβλήματα στα οποία αναλύεται ένα οποιοδήποτε πρόβλημα αναπαρίσταται επίσης από ένα ορθογώνιο παραλληλόγραμμο.

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