1 / 54

Τα εργαλεία του εμπορείου (the tools of the Trade)

Τα εργαλεία του εμπορείου (the tools of the Trade). Δρ. Μαρία Ι. Ανδρέου. Περιεχόμενα. Σταδιακή Εκλέπτυνση ( Stepwise refinement ) Ανάλυση-Κόστους Οφέλους ( Cost–benefit analysis ) Μετρικές Λογισμικού ( Software metrics )

jemma
Télécharger la présentation

Τα εργαλεία του εμπορείου (the tools of the Trade)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Τα εργαλεία του εμπορείου (the tools of the Trade) Δρ. Μαρία Ι. Ανδρέου

  2. Περιεχόμενα • Σταδιακή Εκλέπτυνση (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 Δρ. Μαρία Ι. Ανδρέου

  3. Σταδιακή Εκλέπτυνση (Stepwise Refinement) • Η βασική τεχνική πίσω από πολλές τεχνικές (techniques) για software engineering • “καθυστερείτε να παίρνετε αποφάσεις για λεπτομέρειες όσο το δυνατό περισσότερο, για να είναι δυνατό να εστιάζετε σε σημαντικά θέματα” • Miller’s law (1956) • Ένας άνθρωπος μπορεί να εστιάζει σε 7 ± 2 items κάθε στιγμή Δρ. Μαρία Ι. Ανδρέου

  4. 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 με αλφαβητική σειρά Δρ. Μαρία Ι. Ανδρέου

  5. Τυπικό File για Input Transactions Δρ. Μαρία Ι. Ανδρέου

  6. Decompose Process • No further refinement is possible Δρ. Μαρία Ι. Ανδρέου

  7. First Refinement Δρ. Μαρία Ι. Ανδρέου

  8. Stepwise Refinement Case Study (contd) • Υπόθεση • Μπορούμε να παράξουμε ένα record όταν η PROCESS το απαιτεί • Ξεχωρίστε το INPUT και το OUTPUT, με βάση την PROCESS Δρ. Μαρία Ι. Ανδρέου

  9. Stepwise Refinement Case Study (contd) • Τί είναι η PROCESS? • Παράδειγμα: Δρ. Μαρία Ι. Ανδρέου

  10. Stepwise Refinement Case Study (contd) • Πιο τυπικά (More formally): Δρ. Μαρία Ι. Ανδρέου

  11. Second Refinement Δρ. Μαρία Ι. Ανδρέου

  12. Third Refinement • Αυτό το design έχει ένα βασικό λάθος Δρ. Μαρία Ι. Ανδρέου

  13. Stepwise Refinement Case Study (contd) • Η τρίτη εκλέπτυνση είναι ΛΑΘΟΣ • “Modify JONES” ακολουθούμενο από το “Delete JONES” διαχειρίζεται λανθασμένα (is incorrectly handled) Δρ. Μαρία Ι. Ανδρέου

  14. Stepwise Refinement Case Study (contd) • Μετά την διόρθωση της τρίτης εκλέπτυνσης • Λεπτομέρειες όπως opening and closing files έχουν αγνοηθεί μέχρι τώρα • όταν η λογική του design ολοκληρωθεί πρέπει να επιλυθούν όλες τα θέματα που έχουν προς το παρών παραβλεφθεί • Η φάση κατά την οποία χειρίζεται ένα θέμα (μια πτυχή του προϊόντος) είναι καίριας σημασίας • Το θέμα του ανοίγματος και κλεισίματος αρχείων (Opening and closing files) • Έχει αγνοηθεί σε προηγούμενα στάδια (βήματα), αλλά • Είναι ουσιώδες και σημαντικό στην συνέχεια (σε ένα από τα επόμενα στάδια) Δρ. Μαρία Ι. Ανδρέου

  15. Αποτίμηση της τεχνικής του Stepwise Refinement • Η βασική αρχή που χρησιμοποιείτε σε • Κάθε δραστηριότητα (Every workflow) • Κάθε αναπαράσταση (Every representation) • Η δύναμη της σταδιακής εκλέπτυνσης (stepwise refinement) • Ο μηχανικός λογισμικού μπορεί να εστιάζει και να συγκεντρώνετε σε πτυχές του προϊόντος που είναι σχετικές κάθε φορά (και όχι σε όλες ταυτόχρονα). • Προειδοποίηση (Warning) • Ο Miller’s Law είναι θεμελιώδης περιορισμός στην νοητική δύναμη των ανθρώπων Δρ. Μαρία Ι. Ανδρέου

  16. Ανάλυση Κόστους-Οφέλους (Cost–Benefit Analysis) • Σύγκρινε το κόστος και μελόντικες ωφέλειες • Εκτίμηση κόστους (Estimate costs) • Εκτίμηση ωφελειών (Estimate benefits) • Άμεση έκθεση (διατύπωση) όλων των υποθέσεων Δρ. Μαρία Ι. Ανδρέου

  17. Cost–Benefit Analysis (contd) • Παράδειγμα: Computerizing Krag Central Electric Company (KCEC) Δρ. Μαρία Ι. Ανδρέου

  18. Cost–Benefit Analysis (contd) • Χειροπιαστά κόστη και ωφέλειες (Tangible costs/benefits)είναι εύκολο να μετρηθούν • Κάντε υποθέσεις για να εκτιμήσετε μη χειροπιαστά (intangible) κόστη και ωφέλειες • Βελτιώνοντας τις υποθέσεις θα βελτιώσουν τις εκτιμήσεις Δρ. Μαρία Ι. Ανδρέου

  19. Μετρικές Λογισμικού (Software Metrics) • Για να εντοπίζετεπροβλήματα γρήγορα, είναι σημαντικό να μπορείτε να τα μετρήσετε (υπολογίσετε) • Παραδείγματα: • LOC per month • Defects per 1000 lines of code Δρ. Μαρία Ι. Ανδρέου

  20. Διάφοροι Τύποι Μετρικών (Different Types of Metrics) • Μετρικές του Προϊόντος (Product metrics) • παραδείγματα: • Μέγεθος του προϊόντος (Size of product) • Αξιοπιστία του προϊόντος (Reliability of product) • Μετρικές της Διαδικασίας (Process metrics) • παράδειγμα: • Αποδοτικότητα της αναγνώρισης λαθών (fault detection)κατά την ανάπτυξη (development) του software • Metrics συγκεκριμένα σε ένα δεδομένο workflow • παράδειγμα: • Ο αριθμός των defects που εντοπίζονταικάθε ώρα κατά την αξιολόγηση των προδιαγραφών (specifications) Δρ. Μαρία Ι. Ανδρέου

  21. Οι πέντε βασικές μετρικές (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 Δρ. Μαρία Ι. Ανδρέου

  22. CASE (Computer-Aided Software Engineering) • Το πεδίο δράσης των CASE (Scope of CASE) • CASE υποστηρίζουν όλο τον κύκλο ζωής (life-cycle) • The computer assists with drudge work • Διαχειρίζεται όλες τις λεπτομέρειες Δρ. Μαρία Ι. Ανδρέου

  23. Taxonomy of CASE • UpperCASE (front-end tool) versus • LowerCASE (back-end tool) Δρ. Μαρία Ι. Ανδρέου

  24. Μερικά Χρήσιμα Εργαλείο (Some Useful Tools) • Λεξικό δεδομένων (Data dictionary) • Computerized list όλων των δεδομένων που ορίσθηκαν κατά την διάρκεια ανάπτυξης του product • Έλεγχος συνέπειας, αξιοπιστίας (Consistency checker) • Report generator, screen generator Δρ. Μαρία Ι. Ανδρέου

  25. Taxonomy of CASE (contd) • (a) Tool versus (b) workbench versus (c) environment Δρ. Μαρία Ι. Ανδρέου

  26. 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 Δρ. Μαρία Ι. Ανδρέου

  27. Scope of CASE (contd) • Οι Programmers πρέπει να έχουν: • E-mail systems • Spreadsheets • Word processors • Structure editors • Pretty printers • Online interface checkers Δρ. Μαρία Ι. Ανδρέου

  28. Online Interface Checker • ένας structure editor πρέπει να υποστηρίζειonline interface checking • Ο editor πρέπει να ξέρει το όνομακάθε procedure • Interface checking είναι ένα σημαντικό μέρος του programming-in-the-large Δρ. Μαρία Ι. Ανδρέου

  29. 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 Δρ. Μαρία Ι. Ανδρέου

  30. 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 παραμέτρους Δρ. Μαρία Ι. Ανδρέου

  31. Online Interface Checker (contd) • Πλεονεκτήματα • Δεν υπάρχει ανάγκη για διάφορα εργαλεία (tools)με διάφορα interfaces • Hard-to-detect faults are immediately flagged για διόρθωση • Λάθος αριθμός παραμέτρων • Παράμετροι με λάθος τύπο • Κατάλληλο όταν το software παράγετε ανά ομάδες • Αν ένας programmer αλλάξει το interface specification, όλα τα components που καλούν αυτά τα αλλαγμένα τμήματα πρέπει να είναι disabled Δρ. Μαρία Ι. Ανδρέου

  32. 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 Δρ. Μαρία Ι. Ανδρέου

  33. 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 Δρ. Μαρία Ι. Ανδρέου

  34. Source Level Debugger • Παράδειγμα: • Έστω ότι ένα πρόγραμμά εκτελείτε και τερματίζει απότομα και το μήνυμα που μας δίνετε είναιOverflow at 4B06 ή Core dumped ή Segmentation fault Δρ. Μαρία Ι. Ανδρέου

  35. 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) Δρ. Μαρία Ι. Ανδρέου

  36. Source Level Debugger (contd) • Το Output από ένα τυπικό source-level debugger Δρ. Μαρία Ι. Ανδρέου

  37. Programming Workbench • Structure editor with • Online interface checking capabilities • Operating system front-end • Online documentation • Source level debugger • Αυτό συνιστά ένα απλό περιβάλλον προγραμματισμού (programming environment) Δρ. Μαρία Ι. Ανδρέου

  38. Programming Workbench (contd) • Αυτά Δεν είναι κάτι νέο • Όλα τα πιο πάνω χαρακτηριστικά υποστηρίζονται by FLOW (1980) • Η τεχνολογία αυτή είναι σε εφαρμογή για χρόνοα • Μας εκπλήσσει που, μερικοί προγραμματιστές ακόμα γράφουν code με τον παλιό τρόπο (old-fashioned) Δρ. Μαρία Ι. Ανδρέου

  39. Εκδόσεις του Software (Software Versions) • Κατά την διάρκεια του maintenance, συνέχεια υπάρχουν τουλάχιστον δυο εκδόσεις (versions)του προϊόντος (product): • Η παλιά έκδοση (old version), και • Η νέα έκδοση (new version) • Υπάρχουν δυο τύποι εκδόσεων: αναθεώρησης (revision) and παραλλαγών (variations) Δρ. Μαρία Ι. Ανδρέου

  40. Αναθεωρήσεις (Revisions) • Revision • ένα version για διόρθωση λαθών σε κάθε τμήμα • Δεν μπορούμε να πετάξουμε μια μη σωστή έκδοση (incorrect version) επειδή • Η νέα version μπορεί να μην είναι καλύτερη • Μπορεί να μην εγκατασταθεί η νέα έκδοση σε όλες τις πλευρές • Συντήρηση για τελειοποίηση και προσαρμογή (Perfective and adaptive maintenance) έχει επίσης σαν αποτέλεσμα αναθεώρηση του προϊόντος Δρ. Μαρία Ι. Ανδρέου

  41. Παραλλαγές (Variations) • Μια παραλλαγή (variation)είναι μια έκδοση (version)για ένα διαφορετικό operating system–hardware • Οι παραλλαγές σχεδιάζονται για να συνυπάρχουν παράλληλα Δρ. Μαρία Ι. Ανδρέου

  42. Configuration Control • Κάθε κομμάτι του κώδικα (code artifact)υπάρχει σε τρις μορφές • Source code • Object code • Executable load image • Configuration • Μια έκδοση κάθε κομματιού από την οποία έχει προκύψει μια δεδομένη έκδοση του προϊόντος Figure 5.12 Δρ. Μαρία Ι. Ανδρέου

  43. Εργαλεία ελέγχου των διαφόρων εκδόσεων (Version-Control Tool) • Essential for programming-in-the-many • Είναι το πρώτο βήμα για configuration management • Ένα εργαλείο ελέγχου-εκδόσεωνπρέπει να διαχειρίζεται • Updates • Parallel versions Δρ. Μαρία Ι. Ανδρέου

  44. Version-Control Tool (contd) • Σημειογραφία (notation) για file name, variation, and version Δρ. Μαρία Ι. Ανδρέου

  45. Version-Control Tool (contd) • Πρόβλημα με πολλαπλές παραλλαγές (Problem of multiple variations) • Deltas • Δεν είναι αρκετός ο έλεγχος των εκδόσεων (Version control is not enough), συνεπώς προκύπτουν • Θέματα συντήρησης (maintenance issues) Δρ. Μαρία Ι. Ανδρέου

  46. Configuration Control during Postdelivery Maintenance • Έστω ότι δυο προγραμματιστές δουλεύουν την ίδια ώρα στο ίδιο κομμάτι του κώδικα το mDual/16 • Οι αλλαγές που έκανε ο πρώτος προγραμματιστής αποθηκεύονται στο mDual/17 • Οι αλλαγές που έκανε ο δεύτερος προγραμματιστής αποθηκεύονται στοmDual/18 • οι αλλαγές που έκανε π πρώτος προγραμματιστής χάνονται Δρ. Μαρία Ι. Ανδρέου

  47. Γραμμές βάσης (Baselines) • Ο διευθυντής που είναι υπεύθυνος για τη συντήρηση (maintenance manager)πρέπει να θέσει • Γραμμές βάσης (Baselines) • Προσωπικούς χώρους εργασίας (Private workspaces) • Όταν ένα κομμάτι θα τροποποιηθεί, η τρέχον έκδοση του παγοποιείται (frozen) • Από εκεί και πέρα δεν μπορεί να τροποποιηθεί Δρ. Μαρία Ι. Ανδρέου

  48. 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) για αυτό το κομμάτι Δρ. Μαρία Ι. Ανδρέου

  49. Configuration Control during Development • Ενόσω ένα κομμάτι κωδικοποιείται • Ο προγραμματιστής εκτελεί άτυπο έλεγχο (informal testing) σε αυτό • Στη συνέχει αυτό το κομμάτι δίνετε στο SQA group για μεθοδικό έλεγχο (methodical testing) • Αλλαγές από εδώ και πέραν μπορούν επηρεάζουν ολόκληρο το προϊόν • Ένα κομμάτι πρέπει να υπόκειται σε configuration control όταν περάσει από το SQA Δρ. Μαρία Ι. Ανδρέου

  50. Configuration-Control Tools • UNIX version-control tools • sccs • rcs • cvs • Popular commercial configuration-control tools • PVCS • SourceSafe • Open-source configuration-control tool • cvs Δρ. Μαρία Ι. Ανδρέου

More Related