Ανάλυση του έργου Platform Independent Petri-net Editor 2.5 (PIPE2)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δημιουργία Ιστοσελίδων σε HTML και FrontPage Πρόγραμμα Αναμόρφωσης Προπτυχιακών Σπουδών Κεντρικό Γραφείο Υποστήριξης Εκπαιδευτικού Έργου Αλέξανδρος Λεκατσάς.
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Τύποι δεδομένων και τελεστές,
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Πανεπιστήμιο Δυτικής Μακεδονίας Πανεπιστήμιο Δυτικής Μακεδονίας Παιδαγωγικό Τμήμα Νηπιαγωγών Τίτλος Μαθήματος Ενότητα # (bold): Τίτλος Ενότητας (normal)
ΠΜΣ ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Κατεύθυνση ΤΕΔΑ Τεχνολογίες Διαχείρισης Ασφάλειας Security Management Engineering Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
ΗΥ-566 Διαχείρηση Γνώσης στο Διαδίκτυο1 SWRC Ontology Κτιστάκης Γιώργος Μπούτσικα Κατερίνα Παπαδάκης Μύρων.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων.
OpenOffice Απο τον: Ανδρέα Μπουράκη Msc in Distributed Systems Engineering
Πτυχιακή εργασία των Κωνσταντίνου Κουρμούση (1604)
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 6: Java Collections Εβδομάδα 6: Συλλογές δεδομένων στην Java.
Ομάδα Ασύγχρονης Τηλεκπαίδευσης
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Πολυμέσα – Δίκτυα (μαθ. επιλογής Γ’ Λυκείου)
Title of the presentation | Date |1 Καταγραφή απαιτήσεων ερευνητών ανθρωπιστικών επιστημών για γλωσσικούς πόρους και εργαλεία Δρ Νίκος Χούσος Εθνικό Κέντρο.
Μποχρίνη Σταυρούλα ΑΜ:3173 Σταθόπουλος Αναστάσιος ΑΜ:3220.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
GTK - ΕΙΣΑΓΩΓΗ ΦΩΤΗΣ ΣΙΤΑΡΑΣ A.M: 1117.
Α.ΜΑ.Π.. Αναπτύχθηκε στο πλαίσιο του προγράμματος «Πλειάδες» Ομάδα επιστημόνων – Διδακτικής Φυσικών επιστημών – Φυσικής – Πληροφορικής Συνεργασία σχολών.
Λάζαρος Πολυμενάκος, καθηγητής ΑΙΤ Ηρακλής Καπρίτσας, telia.co.gr
Σχεδίαση, ανάπτυξη, υλοποίηση και αξιολόγηση ενός συστήματος εξ αποστάσεως εκπαίδευσης: Μελέτη περίπτωσης του συστήματος Moodle, για την υποστήριξη της.
Μονάδα Εκπαίδευσης & Επιμόρφωσης Χρηστών Απρίλιος 2010.
Αλγόριθμοι και Πολυπλοκότητα
Ποιότητα Λογισμικού Ενότητα 6: Μέτρηση της κάλυψης των ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Οσμές στη Σχεδίαση του Λογισμικού (Code Smells) Πρόγραμμα Μεταπτυχιακών Σπουδών στην Εφαρμοσμένη Πληροφορική.
Ποιότητα Λογισμικού Ενότητα 10: Μετρικές Ποιότητας Κώδικα. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
E X a M p L e Αξιοποιώντας την τεχνολογία XML στη διαχείριση της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο Πανελλήνιο Συνέδριο Ακαδημαϊκών.
Γλωσσική Τεχνολογία Εισαγωγικό Φροντιστήριο. Project του μαθήματος  Εργασία 2 ατόμων  Προφορική εξέταση για :  Project (80%)  Θεωρία (20%)  Στο φροντιστήριο.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
1 Μελέτη κανόνων συμμετοχής σε ομότιμα δίκτυα επικοινωνίας μέσω προσομοίωσης Φοιτητής : Χρήστος Ι. Καρατζάς Επιβλέποντες Καθηγητές : Γ. Πολύζος – Κ. Κουρκουμπέτης.
Αντικειμενοστραφής Προγραμματισμός & JAVA
Οδηγός Αναζήτησης Ιδρυματικού Αποθετηρίου
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
19η Συνάντηση Εκπαιδευτικών Δυτ. Μακεδονίας ΠΑΡΟΥΣΙΑΣΗ Πολυμεσικές Εφαρμογές με Χρήση ΕΛ/ΛΑΚ ΔΗΜΗΤΡΗΣ ΤΖΗΜΑΣ Εκπαιδευτικός ΠΕ19 Πληροφορικός ΚΑΣΤΟΡΙΑ ΔΕΚΕΜΒΡΙΟΣ.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Tomcat Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
Μάθημα: «Ψηφιακές Βιβλιοθήκες» Μεταπτυχιακό Πρόγραμμα Σπουδών στην Επιστήμη της Πληροφορίας Ιόνιο Πανεπιστήμιο Κωνσταντόπουλος Παναγιώτης
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Ο Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Ι Δ Ρ Υ Μ Α Σ Ε Ρ Ρ Ω Ν Σ Χ Ο Λ Η Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Ω Ν Ε Φ Α Ρ Μ Ο Γ Ω Ν Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ.
Βασικά στοιχεία της Java
Τεχνολογία ΛογισμικούSlide 1 Τεχνολογία Απαιτήσεων u Καθορίζει τι θέλει ο πελάτης από ένα σύστημα λογισμικού.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΠΙΒΛΕΠΟΝΤΕΣ: Καθ. ΙΩΑΝΝΗΣ ΜΠΑΚΟΥΡΟΣ Δρ. ΕΛΠΙΔΑ ΣΑΜΑΡΑ ‘‘ΣΥΓΚΡΙΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ ΚΑΙΝΟΤΟΜΙΑΣ ΣΤΗ ΝΟΤΙΟ-ΑΝΑΤΟΛΙΚΗ ΕΥΡΩΠΗ & ΣΤΑΤΙΣΤΙΚΗ.
Ανοιχτά Ακαδημαϊκά Μαθήματα, Προδιαγραφές και Υποστήριξη Ομάδα ανάπτυξης Ανοιχτών Ακαδημαϊκών Μαθημάτων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο.
Ελληνοποίηση Λογισμικού Διαχείρισης Έργων “OpenProj”
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Αρχές Πληροφορικής Ενότητα # 13: Επεξεργασία κειμένου – LibreOffice #3
Κλάσεις και αντικείμενα
Αρχές Πληροφορικής Ενότητα # 11: Επεξεργασία κειμένου - LibreOffice
Αρχές Πληροφορικής Ενότητα # 10: Ιστολόγια. Η υπηρεσία Blogger
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Msc in Distributed Systems Engineering
ΕΙΣΑΓΩΓΗ ΣΤΗ UML ΕΙΣΑΓΩΓΗ ΣΤΗ UML.
Ανάπτυξη Εκπαιδευτικού Λογισμικού
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Τύποι δεδομένων και τελεστές,
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Μεταγράφημα παρουσίασης:

Ανάλυση του έργου Platform Independent Petri-net Editor 2.5 (PIPE2) FindBugs & PMD Ανάλυση του έργου Platform Independent Petri-net Editor 2.5 (PIPE2) Μάθημα: Ερευνητικά Θέματα Ανάπτυξης Λογισμικού Αθανασόπουλος Μιχάλης, ΣΗΜΜΥ ΕΜΠ, 2009

Platform Independent Petri-net Editor 2.5 (GUI view)

PIPE2, ορισμένα στοιχεία Εργαλείο σχεδιασμού και ανάλυσης Δικτύων Petri Έχει αναπτυχθεί και εξελίσσεται κυρίως από ερευνητές & μεταπτυχιακούς φοιτητές του Imperial College (από το 2002) Metrics: 26716 LOC (χωρίς σχόλια/κενές γραμμές) 29 packages, 243 κλάσεις, 1820 μέθοδοι Ενδιαφέρον γιατί: Επιστημονικό λογισμικό, περίπλοκοι αλγόριθμοι, προγραμματιστές από το ακαδημαϊκό περιβάλλον (κατά κανόνα CS) Σημαντικός αριθμός προγραμματιστών στην πορεία των χρόνων (24 σύμφωνα με το site) για το μέγεθος του έργου Σχετικά επιτυχημένο εργαλείο που έχει υιοθετηθεί και χρησιμοποιείται αρκετά (παρέχει υποδομή για εύκολες επεκτάσεις) Site: http://pipe2.sourceforge.net/

FindBugs, ορισμένα στοιχεία Ένα από τα πιο δημοφιλή εργαλεία στατικής ανάλυσης για έργα λογισμικού υλοποιημένα σε Java >700.000 downloads (Ιούλιος 2008) Ανοιχτού κώδικα (Lesser GNU Public License) Φορείς: U of Maryland, Υποστηρικτές: SureLogic, Google, Sun Microsystems, National Science Foundation των ΗΠΑ Αναλύει στατικά Java bytecode έναντι ενός συνόλου προτύπων σφαλμάτων Σύμφωνα με το site, το ποσοστό των false warnings που δίνει είναι μικρότερο από 50% Site: http://findbugs.sourceforge.net/ Διατίθεται και ως plug-in για το Eclipse.

PMD, ορισμένα στοιχεία Εργαλείο στατικής ανάλυσης για λογισμικό γραμμένο σε Java (επίσης, αρκετά διαδεδομένο) Ανοιχτού κώδικα (υπό ενός "BSD-style" license) Ανεξάρτητη κοινότητα ανάπτυξης, Υποστηρικτές: DARPA, ae.be, QA-Systems κ.ά. Εξετάζει κώδικα Java αναζητώντας παραβιάσεις (violations) έναντι ενός συνόλου κανόνων και πιο συγκεκριμένα: πιθανά σφάλματα, «νεκρό» κώδικα, μη βέλτιστο κώδικα και υπερβολικά σύνθετες εκφράσεις Περιλαμβάνει επίσης εργαλείο εντοπισμού κλώνων μέσω string matching (αλγόριθμος Karp-Rabin) Site: http://pmd.sourceforge.net/ Διατίθενται plug-ins για πολλά IDEs.

FindBugs: ενσωμάτωση & χρήση Εγκατάσταση ως Eclipse plug-in (υπάρχει αντίστοιχο update site) Στο Eclipse προστίθεται το FindBugs Perspective και τα Views: Bug Explorer: Δένδρο πλοήγησης σφαλμάτων (σημαντικές δυνατότητες ομαδοποίησης & φιλτραρίσματος) Bug User Annotations: Ο χρήστης μπορεί να κατηγοριοποιήσει και να προσθέσει επισημάνσεις για κάθε bug Η περιγραφή κάθε bug παρατίθεται στο Properties View. Η εφαρμογή της ανάλυσης γίνεται στο σύνολο του project. Δεν απαιτείται επέμβαση στον κώδικα (π.χ. annotations) ή γενικότερα περαιτέρω ενέργειες από τον χρήστη (πέρα ενδεχομένως από ρυθμίσεις των παραμέτρων της ανάλυσης)

FindBugs: παράμετροι Δυνατότητα για project specific / workspace ρυθμίσεις Ανάλυση Επίπεδο «προσπάθειας ανάλυσης»: minimum, default, maximum. Επιλέχθηκε το maximum. Επιλογή των bug detectors που θα χρησιμοποιηθούν. Επιλέχθηκαν όλοι οι διαθέσιμοι Κάθε bug detector αντιστοιχεί σε ένα σύνολο προτύπων σφαλμάτων (bug patterns) συχνά διαφορετικής προτεραιότητας & κατηγορίας. Αναφορά Επίπεδο προτεραιότητας: Low, Normal, High. Επιλέχθηκε Low. Κατηγορία: Malicious code vulnerability, Dodgy, Bad practice, Correctness, Internationalization, Performance, Security, Multithreaded correctness, Experimental, Bogus random noise. Επιλέχθηκαν όλες. Αρχεία φίλτρων (include/exclude φίλτρα). Δεν χρησιμοποιήθηκαν.

FindBugs: ανάλυση Χρόνος: 3 λεπτά (για τις συγκεκριμένες επιλογές). Με τις “out of the box” ρυθμίσεις, περίπου 50’’. Υπολογιστής: 1.6 GHz (Intel Core Duo), 1 GB RAM. Αποτελέσματα: 855 Ανά προτεραιότητα: High (43), Normal (330), Low (482) Ανά κατηγορία: Malicious code vulnerability (40), Dodgy (295), Bad practice (99), Correctness (64), Internationalization (7), Performance (308), Security (0), Multithreaded correctness (4), Experimental (1), Bogus random noise (37)

FindBugs: παραδείγματα StateSpace.java: Nullcheck of sourceDataLayer at line 83 of value previously dereferenced DataLayer sourceDataLayer = sourceFilePanel.getDataLayer(); int[] markup = sourceDataLayer.getCurrentMarkingVector(); if (sourceDataLayer == null) { JOptionPane.showMessageDialog( null, "Please, choose a source net", "Error", JOptionPane.ERROR_MESSAGE); return; } StateSpaceGenerator.java: Remainder of hashCode could be negative LinkedList hashrow = es[newstate.hashCode()%NUMHASHROWS]; Transition.java: Test for floating point equality public int compareTo(Object arg0) { double angle2 = ((ArcAngleCompare)arg0).angle; return (angle < angle2 ? -1 : (angle == angle2 ? 0 : 1)); Επεξήγηση: Η μέθοδος hashCode() του Object θα μπορούσε να επιστρέψει αρνητική τιμή. Στην προκειμένη περίπτωση όμως η hashCode() γίνεται override στην κλάση State (που είναι και ο τύπος του newstate). Επεξήγηση: ο έλεγχος αν έχει επιστραφεί null από την μέθοδο getDataLayer() (η οποία όντως ενδέχεται να επιστρέψει null) γίνεται αφού γίνει dereference το sourceDataLayer. Επεξήγηση: Η χρήση του == operator μεταξύ float/double μεταβλητών είναι αμφιλεγόμενη πρακτική. Εναλλακτικά προτείνεται μια σύγκριση όπως η εξής: Math.abs(x - y) < .0000001 )

PMD: ενσωμάτωση & χρήση Εγκατάσταση ως Eclipse plug-in (υπάρχει, επίσης, αντίστοιχο update site) Στο Eclipse προστίθεται το PMD Perspective και τα Views: Violations Outline: Δένδρο πλοήγησης παραβιάσεων Violations Overview: Παραβιάσεις ανά κλάση Επίσης: CPD View (για το εργαλείο εντοπισμού κλώνων) και Dataflow View Η εφαρμογή της ανάλυσης γίνεται στο σύνολο του project. Και πάλι, δεν απαιτείται επέμβαση στον κώδικα ή περαιτέρω ενέργειες από το χρήστη (εκτός ίσως από ρυθμίσεις των παραμέτρων της ανάλυσης)

PMD: παράμετροι Δυνατότητα ρυθμίσεων ανά “working set” Ανάλυση Αναφορά Επιλογή των κανόνων έναντι των οποίων ο κώδικας θα ελεγχθεί για παραβιάσεις. Επιλέχθηκαν όλοι οι διαθέσιμοι. Συγκεκριμένα, στο PMD υπάρχουν «σύνολα κανόνων» (rule sets) τα οποία περιλαμβάνουν κανόνες παρόμοιων χαρακτηριστικών και διαφόρων επιπέδων προτεραιότητας. Κατά συνέπεια, οι παραβιάσεις που εντοπίζονται έχουν νόημα εφόσον ο κανόνας που επιλέγεται έχει νόημα για το project. Αναφορά Οι παραβιάσεις οργανώνονται ανά package και κλάση. Επιλέγονται τα επίπεδα προτεραιότητας που εμφανίζονται, τα οποία είναι: [1] error high, [2] error, [3] warning high, [4] warning, [5] information Δυνατότητα υπολογισμού στατιστικών στοιχείων (# Violations, #Violations / LOC, #Violations / Method)

PMD: ανάλυση Χρόνος: 40’’ (για τις συγκεκριμένες επιλογές) Σύνολο παραβιάσεων: 5932 [1] error high: 182 [2] error: 182 [3] warning high: 4325 [4] warning: 81 [5] information: 1162 Στην εξέταση των αποτελεσμάτων λήφθηκαν υπόψη παραβιάσεις κυρίως από τα επίπεδα [1] και [2].

PMD: παραδείγματα ArcPathPoint.java: Overridable method ‘setPointLocation’ called during object construction public ArcPathPoint(ArcPath a) { this(); myArcPath = a; setPointLocation(0,0); } ArcHandler.java: A switch with less than 3 branches is inefficient, use a if statement instead. public void mouseDragged(MouseEvent e) { switch (CreateGui.getApp().getMode()) { case Pipe.SELECT: if (!isDragging){ break; } Arc currentObject = (Arc)myObject; Point oldLocation = currentObject.getLocation(); … PNMatrix.java: Avoid reassigning parameters such as 'a' private int gcd2(int a, int b) { int gcd; a = Math.abs(a); b = Math.abs(b); Επεξήγηση από το PMD: «Calling overridable methods during construction poses a risk of invoking methods on an incompletely constructed object and can be difficult to discern. It may leave the sub-class unable to construct its superclass or forced to replicate the construction process completely within itself, losing the ability to call super(). If the default constructor contains a call to an overridable method, the subclass may be completely uninstantiable. Note that this includes method calls throughout the control flow graph - i.e., if a constructor Foo() calls a private method bar() that calls a public method buz(), this denotes a problem.»

Σύγκριση Συγκριτική αξιολόγηση σε τρείς άξονες: Ενσωμάτωση και χρήση σε περιβάλλον ανάπτυξης και χαρακτηριστικά διεπαφής με το χρήστη: Ισοδύναμα. Δυνατότητες ανάλυσης, χρησιμοποιούμενες τεχνικές: Διαφορετικό επίπεδο ανάλυσης και –ενδεχομένως- στόχοι. Το PMD εντοπίζει «παραβιάσεις» σε κανόνες που επιλέγει ή θέτει ο χρήστης ενώ το FindBugs προσπαθεί να εντοπίσει σφάλματα που ενδεχομένως να οδηγήσουν σε λανθασμένη ή κακή λειτουργία. Πλήθος, ποιότητα κι ευστοχία αποτελεσμάτων: Τα αποτελέσματα του FindBugs έχουν συνήθως μεγαλύτερο ενδιαφέρον και είναι συνήθως πιο κρίσιμα ως προς την ορθή λειτουργία του συστήματος.

Συμπεράσματα Χαμηλές απαιτήσεις σε χρόνο και υποδομή για την εφαρμογή της ανάλυσης – γεγονός που επιτρέπει την επαναλαμβανόμενη εφαρμογή. Μικρή προσπάθεια από το χρήστη για την εφαρμογή της ανάλυσης. Σημαντική προσπάθεια για την διερεύνηση των γενικά πολλών και συχνά άστοχων αποτελεσμάτων. Επαναληπτική διαδικασία: επιλογή ρυθμίσεων -> ανάλυση -> διερεύνηση -> χαρακτηρισμός / διόρθωση -> αναθεώρηση ρυθμίσεων -> ανάλυση κ.ο.κ.

Ευχαριστώ αναφορά & παρουσίαση: http://users.ntua.gr/athanm