ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Παραγωγή ψευδοκώδικα από διάγραμμα δομής προγράμματος Ομιλητής: Κούτσικας Χρήστος
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Σχεδίαση λογισμικού
Αρχιτεκτονική σχεδίαση: διάγραμμα δομής προγράμματος
Λεπτομερής σχεδίαση μονάδων: ψευδοκώδικας
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Λεπτομερές σχέδιο: ψευδοκώδικας
Αποτυπώνει:
την ιεραρχία των μονάδων προγράμματος τα δεδομένα με τα οποία επικοινωνούν οι μονάδες τον τρόπο με τον οποίο κινούνται τα δεδομένα
Υλοποιεί τις προδιαγραφές
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Από ΔΔΠ σε ψευδοκώδικα
Ζ
ExecM5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Από ΔΔΠ σε ψευδοκώδικα Μονάδα ελέγχου Ζ
ExecM5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Από ΔΔΠ σε ψευδοκώδικα Μονάδα ελέγχου Ζ
ExecM5 Δ
Θ Ε
GetΔ
Δ,Ε
Ζ,Θ
GetΕ
PutΘ CalcM5
Λήψη δεδομένων
PutΖ
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Από ΔΔΠ σε ψευδοκώδικα Μονάδα ελέγχου Ζ
ExecM5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Λήψη δεδομένων Μονάδα υλοποίησης υπολογισμών
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Από ΔΔΠ σε ψευδοκώδικα Μονάδα ελέγχου Ζ
ExecM5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Έξοδος αποτελεσμάτων
Λήψη δεδομένων Μονάδα υλοποίησης υπολογισμών
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου Ζ
ExecM 5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Procedure ExecM5 Local Var Δ,Ε,Ζ,Θ Αρχικοποίηση Δ,Ε,Ζ,Θ Call GetΔ(Δ) Call GetΕ(Ε) Call CalcΜ5(Δ,Ε,Ζ,Θ) Call PutΘ(Θ) Call PutΖ(Ζ) End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου Ζ
ExecM 5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Procedure ExecM5 Local Var Δ,Ε,Ζ,Θ Αρχικοποίηση Δ,Ε,Ζ,Θ Call GetΔ(Δ) Call GetΕ(Ε) Call CalcΜ5(Δ,Ε,Ζ,Θ) Call PutΘ(Θ) Call PutΖ(Ζ) End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου Ζ
ExecM 5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Procedure ExecM5 Local Var Δ,Ε,Ζ,Θ Αρχικοποίηση Δ,Ε,Ζ,Θ Call GetΔ(Δ) Call GetΕ(Ε) Call CalcΜ5(Δ,Ε,Ζ,Θ) Call PutΘ(Θ) Call PutΖ(Ζ) End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου Ζ
ExecM 5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Procedure ExecM5 Local Var Δ,Ε,Ζ,Θ Αρχικοποίηση Δ,Ε,Ζ,Θ Call GetΔ(Δ) Call GetΕ(Ε) Call CalcΜ5(Δ,Ε,Ζ,Θ) Call PutΘ(Θ) Call PutΖ(Ζ) End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου Ζ
ExecM 5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Procedure ExecM5 Local Var Δ,Ε,Ζ,Θ Αρχικοποίηση Δ,Ε,Ζ,Θ Call GetΔ(Δ) Call GetΕ(Ε) Call CalcΜ5(Δ,Ε,Ζ,Θ) Call PutΘ(Θ) Call PutΖ(Ζ) End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα υπολογισμών Ζ
ExecM 5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Procedure CalcM5 (Δ,Ε: IN, Ζ,Θ: OUT) ... Υπολόγισε Ζ,Θ ... End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα λήψης δεδομένων Ζ
ExecM 5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Procedure GetΔ (Δ: OUT) ... Διάβασε Δ ... End_Procedure Procedure GetΕ (Ε: OUT) ... Διάβασε Ε ... End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα εξόδου αποτελεσμάτων Ζ
ExecM 5 Δ
Θ Ε
GetΔ
Δ,Ε
PutΖ
Ζ,Θ
GetΕ
PutΘ CalcM5
Procedure PutΘ (Θ: ΙΝ) ... Γράψε Θ ... End_Procedure Procedure PutΖ (Ζ: ΙΝ) ... Γράψε Ζ ... End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
ΔΔΠ από κέντρο δοσοληψιών Μ2
Γ1 Α Γ2
Μ1
Β
Μονάδες ελέγχου περιπτώσεων 1 έως 3
Μονάδα ελέγχου Μ3
Γ3
Γ3
ExecM1
Γ2
Α
Μ4
Γ1 Β
GetΑ GetΒ Λήψη δεδομένων
Α,Β
ExecM4
ExecM3
Γ
ExecM2 CalcM1 Επεξεργασία δεδομένων
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου Procedure ExecM1
Γ3 ExecM 1
Α
Γ2 Γ1
GetΑ
Β
Α,Β
ExecM 3
Γ ExecM 2
GetΒ CalcM 1
ExecM 4
Local Var Α,Β,Γ,Γ1,Γ2,Γ3 Αρχικοποίηση Α,Β,Γ,Γ1,Γ2,Γ3 Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) Case Γ of (Γ1): Call ExecM2(Γ1) (Γ2): Call ExecM3(Γ2) (Γ3): Call ExecM4(Γ3) End_Case End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου Procedure ExecM1
Γ3 ExecM 1
Α
Γ2 Γ1
GetΑ
Β
Α,Β
ExecM 3
Γ ExecM 2
GetΒ CalcM 1
ExecM 4
Local Var Α,Β,Γ,Γ1,Γ2,Γ3 Αρχικοποίηση Α,Β,Γ,Γ1,Γ2,Γ3 Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) Case Γ of (Γ1): Call ExecM2(Γ1) (Γ2): Call ExecM3(Γ2) (Γ3): Call ExecM4(Γ3) End_Case End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου Procedure ExecM1
Γ3 ExecM 1
Α
Γ2 Γ1
GetΑ
Β
Α,Β
ExecM 3
Γ ExecM 2
GetΒ CalcM 1
ExecM 4
Local Var Α,Β,Γ,Γ1,Γ2,Γ3 Αρχικοποίηση Α,Β,Γ,Γ1,Γ2,Γ3 Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) Case Γ of (Γ1): Call ExecM2(Γ1) (Γ2): Call ExecM3(Γ2) (Γ3): Call ExecM4(Γ3) End_Case End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου Procedure ExecM1
Γ3 ExecM 1
Α
Γ2 Γ1
GetΑ
Β
Α,Β
ExecM 3
Γ ExecM 2
GetΒ CalcM 1
ExecM 4
Local Var Α,Β,Γ,Γ1,Γ2,Γ3 Αρχικοποίηση Α,Β,Γ,Γ1,Γ2,Γ3 Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) Case Γ of (Γ1): Call ExecM2(Γ1) (Γ2): Call ExecM3(Γ2) (Γ3): Call ExecM4(Γ3) End_Case End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα επεξεργασίας δεδομένων Γ3 ExecM 1
Α
Γ2 Γ1
GetΑ
Β
Α,Β
ExecM 4
ExecM 3
Γ ExecM 2
GetΒ CalcM 1
Procedure CalcM1 (Α,Β: IN, Γ: OUT) ... Υπολόγισε Γ ... End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα λήψης δεδομένων Procedure GetΑ (Α: OUT)
Γ3 ExecM 1
Α
Γ2 Γ1
GetΑ
Β
Α,Β
ExecM 3
Γ ExecM 2
GetΒ CalcM 1
ExecM 4
... Διάβασε Α ... End_Procedure Procedure GetΒ (Β: OUT) ... Διάβασε Β ... End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Μονάδα ελέγχου περίπτωσης Procedure ExecM2 (Γ1: ΙΝ)
Γ3 ExecM 1
Α
Γ2 Γ1
GetΑ
Β
Α,Β
ExecM 4
ExecM 3
... End_Procedure
Γ ExecM 2
GetΒ CalcM 1
Procedure ExecM3 (Γ2: ΙΝ) ... End_Procedure Procedure ExecM4 (Γ3: ΙΝ) ... End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Έλεγχος ψευδοκώδικα (1)
Υπάρχουν τόσες ρουτίνες όσες οι μονάδες προγράμματος; Έχουν περαστεί σωστά όλες οι παράμετροι; Έχουν αρχικοποιηθεί όλες οι μεταβλητές (εκτός από τις παραμέτρους);
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Έλεγχος ψευδοκώδικα (2)
Στις ρουτίνες που αντιστοιχούν σε μονάδες ελέγχου:
καλούνται όλες οι μονάδες προγράμματος που πρέπει να κληθούν; καλούνται όλες οι μονάδες προγράμματος που πρέπει να κληθούν με τη σωστή σειρά;
Αποτυπώνονται όλες οι προδιαγραφές;
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Άσκηση: βρείτε τα λάθη Procedure ExecM1 Local Var Α,Β,Γ Αρχικοποίηση Α,Β Call GetΑ(Α) Call CalcΜ1(Α,Β) If Γ=-1 Then τύπωσε μήνυμα λάθους Else Call ExecM3(Γ) End_If End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Άσκηση: βρείτε τα λάθη Procedure ExecM1 Local Var Α,Β,Γ Αρχικοποίηση Α,Β,Γ Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) If Γ=-1 Then τύπωσε μήνυμα λάθους Else Call ExecM3(Γ) End_If End_Procedure
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Ερωτήσεις
Procedure ExecM1 Local Var Α,Β Αρχικοποίηση Α,Β,Γ
Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ)
Call ExecM3(Γ) End_Procedure
Σε τι μονάδα προγράμματος αντιστοιχεί η ρουτίνα ExecM1; Είναι ο Μ1 κεντρικός μετασχηματισμός; Ποια είναι τα δεδομένα εισόδου του μετασχηματισμού Μ1; Ποια είναι τα δεδομένα εξόδου του μετασχηματισμού Μ1; Επικοινωνεί ο μετασχηματισμός Μ1 με άλλο μετασχηματισμό; Επικοινωνεί ο μετασχηματισμός Μ1 με αποθήκη δεδομένων, πηγή, αποδέκτη;
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Ερώτηση 1
Procedure ExecM1 Local Var Α,Β Αρχικοποίηση Α,Β,Γ Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) Call ExecM3(Γ) End_Procedure
Σε τι μονάδα προγράμματος αντιστοιχεί η ρουτίνα ExecM1; Σε μονάδα ελέγχου
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Ερώτηση 2
Procedure ExecM1 Local Var Α,Β Αρχικοποίηση Α,Β,Γ Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) Call ExecM3(Γ) End_Procedure
Είναι ο Μ1 κεντρικός μετασχηματισμός; Δεν μπορούμε ν’ απαντήσουμε
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Ερώτηση 3
Procedure ExecM1 Local Var Α,Β Αρχικοποίηση Α,Β,Γ Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) Call ExecM3(Γ) End_Procedure
Ποια είναι τα δεδομένα εισόδου του μετασχηματισμού Μ1; Τα δεδομένα Α,Β
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Ερώτηση 4
Procedure ExecM1 Local Var Α,Β Αρχικοποίηση Α,Β,Γ Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) Call ExecM3(Γ) End_Procedure
Ποια είναι τα δεδομένα εξόδου του μετασχηματισμού Μ1; Το δεδομένο Γ
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Ερώτηση 5
Procedure ExecM1 Local Var Α,Β Αρχικοποίηση Α,Β,Γ Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β,Γ) Call ExecM3(Γ) End_Procedure
Επικοινωνεί ο μετασχηματισμός Μ1 με άλλο μετασχηματισμό; Με το μετασχηματισμό Μ3
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Ερώτηση 6
Procedure ExecM1 Local Var Α,Β Αρχικοποίηση Α,Β,Γ Call GetΑ(Α) Call GetΒ(Β) Call CalcΜ1(Α,Β) Call ExecM3(Γ) End_Procedure
Επικοινωνεί ο μετασχηματισμός Μ1 με αποθήκη δεδομένων, πηγή, αποδέκτη; Δεν μπορούμε ν’ απαντήσουμε