540 likes | 646 Views
Τα εργαλεία του εμπορείου (the tools of the Trade). Δρ. Μαρία Ι. Ανδρέου. Περιεχόμενα. Σταδιακή Εκλέπτυνση ( Stepwise refinement ) Ανάλυση-Κόστους Οφέλους ( Cost–benefit analysis ) Μετρικές Λογισμικού ( Software metrics )
E N D
Τα εργαλεία του εμπορείου (the tools of the Trade) Δρ. Μαρία Ι. Ανδρέου
Περιεχόμενα • Σταδιακή Εκλέπτυνση (Stepwise refinement) • Ανάλυση-Κόστους Οφέλους (Cost–benefit analysis) • Μετρικές Λογισμικού (Software metrics) • Τεχνολογία Λογισμικού βοηθούμενη από τον υπολογιστή (CASE - computer-aided software engineering) • Taxonomy of CASE • Το πεδίο δράσεως (Scope) of CASE • Εκδόσεις Λογισμικού (Software versions) • Configuration control • Εργαλεία Κατασκευής (Build tools) • Η παραγωγικότητα που κερδίζεται με χρήση της τεχνολογίας των CASE Δρ. Μαρία Ι. Ανδρέου
Σταδιακή Εκλέπτυνση (Stepwise Refinement) • Η βασική τεχνική πίσω από πολλές τεχνικές (techniques) για software engineering • “καθυστερείτε να παίρνετε αποφάσεις για λεπτομέρειες όσο το δυνατό περισσότερο, για να είναι δυνατό να εστιάζετε σε σημαντικά θέματα” • Miller’s law (1956) • Ένας άνθρωπος μπορεί να εστιάζει σε 7 ± 2 items κάθε στιγμή Δρ. Μαρία Ι. Ανδρέου
Stepwise Refinement Mini Case Study • Σχεδιάστε ένα προϊόν το οποίο θα κάνει update a sequential master file το οποίο περιλαμβάνει δεδομένα (εγγραφές) με: το όνομα (name)καιτη διεύθυνση (address) συνδρομητών (subscriber)του μηνιαίου περιοδικού «True Life Software Disasters» • Υπάρχουν τριών ειδών transactions (συναλλαγές) • Type 1: INSERT (a new subscriber into the master file) • Type 2: MODIFY (an existing subscriber record) • Type 3: DELETE (an existing subscriber record) • Τα Transactions αποθηκεύονται σε αλφαβητική σειρά, και κατά transaction code με αλφαβητική σειρά Δρ. Μαρία Ι. Ανδρέου
Τυπικό File για Input Transactions Δρ. Μαρία Ι. Ανδρέου
Decompose Process • No further refinement is possible Δρ. Μαρία Ι. Ανδρέου
First Refinement Δρ. Μαρία Ι. Ανδρέου
Stepwise Refinement Case Study (contd) • Υπόθεση • Μπορούμε να παράξουμε ένα record όταν η PROCESS το απαιτεί • Ξεχωρίστε το INPUT και το OUTPUT, με βάση την PROCESS Δρ. Μαρία Ι. Ανδρέου
Stepwise Refinement Case Study (contd) • Τί είναι η PROCESS? • Παράδειγμα: Δρ. Μαρία Ι. Ανδρέου
Stepwise Refinement Case Study (contd) • Πιο τυπικά (More formally): Δρ. Μαρία Ι. Ανδρέου
Second Refinement Δρ. Μαρία Ι. Ανδρέου
Third Refinement • Αυτό το design έχει ένα βασικό λάθος Δρ. Μαρία Ι. Ανδρέου
Stepwise Refinement Case Study (contd) • Η τρίτη εκλέπτυνση είναι ΛΑΘΟΣ • “Modify JONES” ακολουθούμενο από το “Delete JONES” διαχειρίζεται λανθασμένα (is incorrectly handled) Δρ. Μαρία Ι. Ανδρέου
Stepwise Refinement Case Study (contd) • Μετά την διόρθωση της τρίτης εκλέπτυνσης • Λεπτομέρειες όπως opening and closing files έχουν αγνοηθεί μέχρι τώρα • όταν η λογική του design ολοκληρωθεί πρέπει να επιλυθούν όλες τα θέματα που έχουν προς το παρών παραβλεφθεί • Η φάση κατά την οποία χειρίζεται ένα θέμα (μια πτυχή του προϊόντος) είναι καίριας σημασίας • Το θέμα του ανοίγματος και κλεισίματος αρχείων (Opening and closing files) • Έχει αγνοηθεί σε προηγούμενα στάδια (βήματα), αλλά • Είναι ουσιώδες και σημαντικό στην συνέχεια (σε ένα από τα επόμενα στάδια) Δρ. Μαρία Ι. Ανδρέου
Αποτίμηση της τεχνικής του Stepwise Refinement • Η βασική αρχή που χρησιμοποιείτε σε • Κάθε δραστηριότητα (Every workflow) • Κάθε αναπαράσταση (Every representation) • Η δύναμη της σταδιακής εκλέπτυνσης (stepwise refinement) • Ο μηχανικός λογισμικού μπορεί να εστιάζει και να συγκεντρώνετε σε πτυχές του προϊόντος που είναι σχετικές κάθε φορά (και όχι σε όλες ταυτόχρονα). • Προειδοποίηση (Warning) • Ο Miller’s Law είναι θεμελιώδης περιορισμός στην νοητική δύναμη των ανθρώπων Δρ. Μαρία Ι. Ανδρέου
Ανάλυση Κόστους-Οφέλους (Cost–Benefit Analysis) • Σύγκρινε το κόστος και μελόντικες ωφέλειες • Εκτίμηση κόστους (Estimate costs) • Εκτίμηση ωφελειών (Estimate benefits) • Άμεση έκθεση (διατύπωση) όλων των υποθέσεων Δρ. Μαρία Ι. Ανδρέου
Cost–Benefit Analysis (contd) • Παράδειγμα: Computerizing Krag Central Electric Company (KCEC) Δρ. Μαρία Ι. Ανδρέου
Cost–Benefit Analysis (contd) • Χειροπιαστά κόστη και ωφέλειες (Tangible costs/benefits)είναι εύκολο να μετρηθούν • Κάντε υποθέσεις για να εκτιμήσετε μη χειροπιαστά (intangible) κόστη και ωφέλειες • Βελτιώνοντας τις υποθέσεις θα βελτιώσουν τις εκτιμήσεις Δρ. Μαρία Ι. Ανδρέου
Μετρικές Λογισμικού (Software Metrics) • Για να εντοπίζετεπροβλήματα γρήγορα, είναι σημαντικό να μπορείτε να τα μετρήσετε (υπολογίσετε) • Παραδείγματα: • LOC per month • Defects per 1000 lines of code Δρ. Μαρία Ι. Ανδρέου
Διάφοροι Τύποι Μετρικών (Different Types of Metrics) • Μετρικές του Προϊόντος (Product metrics) • παραδείγματα: • Μέγεθος του προϊόντος (Size of product) • Αξιοπιστία του προϊόντος (Reliability of product) • Μετρικές της Διαδικασίας (Process metrics) • παράδειγμα: • Αποδοτικότητα της αναγνώρισης λαθών (fault detection)κατά την ανάπτυξη (development) του software • Metrics συγκεκριμένα σε ένα δεδομένο workflow • παράδειγμα: • Ο αριθμός των defects που εντοπίζονταικάθε ώρα κατά την αξιολόγηση των προδιαγραφών (specifications) Δρ. Μαρία Ι. Ανδρέου
Οι πέντε βασικές μετρικές (The Five Basic Metrics) • Μέγεθος (Size) • Σε γραμμές κώδικα (In lines of code, or better) • Κόστος (Cost) • Σε χρήματα (In dollars) • Διάρκεια (Duration) • Σε μήνες (In months) • Προσπάθεια (Effort) • Σε ανθρωπομήνες (In person months) • Ποιότητα (Quality) • Number of faults detected Δρ. Μαρία Ι. Ανδρέου
CASE (Computer-Aided Software Engineering) • Το πεδίο δράσης των CASE (Scope of CASE) • CASE υποστηρίζουν όλο τον κύκλο ζωής (life-cycle) • The computer assists with drudge work • Διαχειρίζεται όλες τις λεπτομέρειες Δρ. Μαρία Ι. Ανδρέου
Taxonomy of CASE • UpperCASE (front-end tool) versus • LowerCASE (back-end tool) Δρ. Μαρία Ι. Ανδρέου
Μερικά Χρήσιμα Εργαλείο (Some Useful Tools) • Λεξικό δεδομένων (Data dictionary) • Computerized list όλων των δεδομένων που ορίσθηκαν κατά την διάρκεια ανάπτυξης του product • Έλεγχος συνέπειας, αξιοπιστίας (Consistency checker) • Report generator, screen generator Δρ. Μαρία Ι. Ανδρέου
Taxonomy of CASE (contd) • (a) Tool versus (b) workbench versus (c) environment Δρ. Μαρία Ι. Ανδρέου
Scope of CASE • Οι Programmers πρέπει να έχουν : • Ακρίβεια, ενημερωμένες εκδόσεις (up-to-date versions)όλων των project documents • Online πληροφορίες για βοήθεια σχετικά με • Λειτουργικό σύστημα (Operating system) • Editor • Γλώσσα προγραμματισμού (Programming language) • Online programming standards • Online manuals • Editor manuals • Programming manuals Δρ. Μαρία Ι. Ανδρέου
Scope of CASE (contd) • Οι Programmers πρέπει να έχουν: • E-mail systems • Spreadsheets • Word processors • Structure editors • Pretty printers • Online interface checkers Δρ. Μαρία Ι. Ανδρέου
Online Interface Checker • ένας structure editor πρέπει να υποστηρίζειonline interface checking • Ο editor πρέπει να ξέρει το όνομακάθε procedure • Interface checking είναι ένα σημαντικό μέρος του programming-in-the-large Δρ. Μαρία Ι. Ανδρέου
Online Interface Checker (contd) • Παράδειγμα • The user enters the call average = dataArray.computeAverage (numberOfValues); • The editor immediately responds Method computeAverage not known • ο programmer έχει δυο επιλογές • Διόρθωση του ονόματος της μεθόδου σεcomputeMean • Ορισμό μιας νέας procedurecomputeAverageκαι καθορισμό των παραμέτρων της • Αυτό επιτρέπει πλήρη έλεγχο του interface Δρ. Μαρία Ι. Ανδρέου
Online Interface Checker (contd) • Παράδειγμα • Ο ορισμός του qείναι void q (float floatVar, int intVar, String s1, String s2); • Call (invocation) is q (intVar, floatVar, s1, s2); • ο online interface checker εντοπίζει τι λάθος • Help facility • Online πληροφόρηση για τις παραμέτρους της μεθόδουq • Καλύτερα: ο Editor generates a template for the call • The template δείχνει τον τύπο κάθε παραμέτρου • ο programmer αντικαθιστά τις formal με actual παραμέτρους Δρ. Μαρία Ι. Ανδρέου
Online Interface Checker (contd) • Πλεονεκτήματα • Δεν υπάρχει ανάγκη για διάφορα εργαλεία (tools)με διάφορα interfaces • Hard-to-detect faults are immediately flagged για διόρθωση • Λάθος αριθμός παραμέτρων • Παράμετροι με λάθος τύπο • Κατάλληλο όταν το software παράγετε ανά ομάδες • Αν ένας programmer αλλάξει το interface specification, όλα τα components που καλούν αυτά τα αλλαγμένα τμήματα πρέπει να είναι disabled Δρ. Μαρία Ι. Ανδρέου
Online Interface Checker (contd) • Ακόμα και όταν ένας structure editor incorporates an online interface checker, το πρόβλημα παραμένει • ο programmer still has to exit from the editor to invoke the compiler (to generate code) • τότε, ο linker πρέπει να κληθεί to link the product • ο programmer must adjust to the JCL, compiler, and linker output • Λύση: Incorporate an operating system front-end into the structure editor Δρ. Μαρία Ι. Ανδρέου
Operating System Front-End in Editor • Single command • goorrun • Χρήση του mouse για επιλογή • An icon, or • A menu selection • This one command causes the editor to invoke the compiler, linker, loader, and execute the product Δρ. Μαρία Ι. Ανδρέου
Source Level Debugger • Παράδειγμα: • Έστω ότι ένα πρόγραμμά εκτελείτε και τερματίζει απότομα και το μήνυμα που μας δίνετε είναιOverflow at 4B06 ή Core dumped ή Segmentation fault Δρ. Μαρία Ι. Ανδρέου
Source Level Debugger (contd) • Ο programmer δουλεύει με μια high-level language, αλλά θα πρέπει να ελέγχει • Machine code core dumps • Assembler listings • Linker listings • Similar low-level documentation • Αυτό καταστρέφει τα πλεονεκτήματα του να δουλεύει κανείς σε μια high-level language • Χρειαζόμαστε • An interactive source level debugger (like dbx) Δρ. Μαρία Ι. Ανδρέου
Source Level Debugger (contd) • Το Output από ένα τυπικό source-level debugger Δρ. Μαρία Ι. Ανδρέου
Programming Workbench • Structure editor with • Online interface checking capabilities • Operating system front-end • Online documentation • Source level debugger • Αυτό συνιστά ένα απλό περιβάλλον προγραμματισμού (programming environment) Δρ. Μαρία Ι. Ανδρέου
Programming Workbench (contd) • Αυτά Δεν είναι κάτι νέο • Όλα τα πιο πάνω χαρακτηριστικά υποστηρίζονται by FLOW (1980) • Η τεχνολογία αυτή είναι σε εφαρμογή για χρόνοα • Μας εκπλήσσει που, μερικοί προγραμματιστές ακόμα γράφουν code με τον παλιό τρόπο (old-fashioned) Δρ. Μαρία Ι. Ανδρέου
Εκδόσεις του Software (Software Versions) • Κατά την διάρκεια του maintenance, συνέχεια υπάρχουν τουλάχιστον δυο εκδόσεις (versions)του προϊόντος (product): • Η παλιά έκδοση (old version), και • Η νέα έκδοση (new version) • Υπάρχουν δυο τύποι εκδόσεων: αναθεώρησης (revision) and παραλλαγών (variations) Δρ. Μαρία Ι. Ανδρέου
Αναθεωρήσεις (Revisions) • Revision • ένα version για διόρθωση λαθών σε κάθε τμήμα • Δεν μπορούμε να πετάξουμε μια μη σωστή έκδοση (incorrect version) επειδή • Η νέα version μπορεί να μην είναι καλύτερη • Μπορεί να μην εγκατασταθεί η νέα έκδοση σε όλες τις πλευρές • Συντήρηση για τελειοποίηση και προσαρμογή (Perfective and adaptive maintenance) έχει επίσης σαν αποτέλεσμα αναθεώρηση του προϊόντος Δρ. Μαρία Ι. Ανδρέου
Παραλλαγές (Variations) • Μια παραλλαγή (variation)είναι μια έκδοση (version)για ένα διαφορετικό operating system–hardware • Οι παραλλαγές σχεδιάζονται για να συνυπάρχουν παράλληλα Δρ. Μαρία Ι. Ανδρέου
Configuration Control • Κάθε κομμάτι του κώδικα (code artifact)υπάρχει σε τρις μορφές • Source code • Object code • Executable load image • Configuration • Μια έκδοση κάθε κομματιού από την οποία έχει προκύψει μια δεδομένη έκδοση του προϊόντος Figure 5.12 Δρ. Μαρία Ι. Ανδρέου
Εργαλεία ελέγχου των διαφόρων εκδόσεων (Version-Control Tool) • Essential for programming-in-the-many • Είναι το πρώτο βήμα για configuration management • Ένα εργαλείο ελέγχου-εκδόσεωνπρέπει να διαχειρίζεται • Updates • Parallel versions Δρ. Μαρία Ι. Ανδρέου
Version-Control Tool (contd) • Σημειογραφία (notation) για file name, variation, and version Δρ. Μαρία Ι. Ανδρέου
Version-Control Tool (contd) • Πρόβλημα με πολλαπλές παραλλαγές (Problem of multiple variations) • Deltas • Δεν είναι αρκετός ο έλεγχος των εκδόσεων (Version control is not enough), συνεπώς προκύπτουν • Θέματα συντήρησης (maintenance issues) Δρ. Μαρία Ι. Ανδρέου
Configuration Control during Postdelivery Maintenance • Έστω ότι δυο προγραμματιστές δουλεύουν την ίδια ώρα στο ίδιο κομμάτι του κώδικα το mDual/16 • Οι αλλαγές που έκανε ο πρώτος προγραμματιστής αποθηκεύονται στο mDual/17 • Οι αλλαγές που έκανε ο δεύτερος προγραμματιστής αποθηκεύονται στοmDual/18 • οι αλλαγές που έκανε π πρώτος προγραμματιστής χάνονται Δρ. Μαρία Ι. Ανδρέου
Γραμμές βάσης (Baselines) • Ο διευθυντής που είναι υπεύθυνος για τη συντήρηση (maintenance manager)πρέπει να θέσει • Γραμμές βάσης (Baselines) • Προσωπικούς χώρους εργασίας (Private workspaces) • Όταν ένα κομμάτι θα τροποποιηθεί, η τρέχον έκδοση του παγοποιείται (frozen) • Από εκεί και πέρα δεν μπορεί να τροποποιηθεί Δρ. Μαρία Ι. Ανδρέου
Baselines (contd) • Και οι δυο προγραμματιστές κάνουν τις αλλαγές τους στο mDual/16 • Ο πρώτος προγραμματιστής • Παγοποιεί (Freezes) τοmDual/16και κάνει αλλαγές σε αυτό • Η έκδοση που προέκυψε (The resulting revision) είναι η mDual/17 • Μετά τον έλεγχο, η mDual/17γίνεται η ΝΕΑ γραμμή βάσης (baseline) για αυτό το κομμάτι • Ο δεύτερος προγραμματιστής • Παγοποιεί το mDual/17και κάνει τις αλλαγές του σε αυτό • The resulting revision είναι ηmDual/18 • Μετά τον έλεγχο, ηmDual/18γίνεται η ΝΕΑ γραμμή βάσης (baseline) για αυτό το κομμάτι Δρ. Μαρία Ι. Ανδρέου
Configuration Control during Development • Ενόσω ένα κομμάτι κωδικοποιείται • Ο προγραμματιστής εκτελεί άτυπο έλεγχο (informal testing) σε αυτό • Στη συνέχει αυτό το κομμάτι δίνετε στο SQA group για μεθοδικό έλεγχο (methodical testing) • Αλλαγές από εδώ και πέραν μπορούν επηρεάζουν ολόκληρο το προϊόν • Ένα κομμάτι πρέπει να υπόκειται σε configuration control όταν περάσει από το SQA Δρ. Μαρία Ι. Ανδρέου
Configuration-Control Tools • UNIX version-control tools • sccs • rcs • cvs • Popular commercial configuration-control tools • PVCS • SourceSafe • Open-source configuration-control tool • cvs Δρ. Μαρία Ι. Ανδρέου