EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Σχετικά έγγραφα
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Μετρικές Αντικειμενοστραφούς Σχεδίασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

The Simply Typed Lambda Calculus

(McCabe, 1976) (1/4) C = e n + 2p 29/4/2009

Ποιότητα Λογισμικού. Μετρικές Αντικειμενοστραφούς Σχεδίασης

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

(Διαφάνειες Νίκου Βιδάκη)

Approximation of distance between locations on earth given by latitude and longitude

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Homework 3 Solutions

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Partial Trace and Partial Transpose

Other Test Constructions: Likelihood Ratio & Bayes Tests

Assalamu `alaikum wr. wb.

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Ανάπτυξη εργαλείου διαχείρισης έργων λογισμικού» Αρ. Μητρώου: 06/3059

EE512: Error Control Coding

Second Order RLC Filters

ΠοιότηταΛογισµικού. Μετρικές Αντικειµενοστραφούς Σχεδίασης

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

(C) 2010 Pearson Education, Inc. All rights reserved.

ST5224: Advanced Statistical Theory II

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Math 6 SL Probability Distributions Practice Test Mark Scheme

Capacitors - Capacitance, Charge and Potential Difference

Ποιότητα Λογισμικού. Μετρικές Αντικειμενοστραφούς Σχεδίασης

ΑΥΤΟΜΑΤΟΠΟΙΗΣΗ ΜΟΝΑΔΑΣ ΘΡΑΥΣΤΗΡΑ ΜΕ ΧΡΗΣΗ P.L.C. AUTOMATION OF A CRUSHER MODULE USING P.L.C.

Προσομοίωση BP με το Bizagi Modeler

Φοιτητόσ : Κουκϊρασ Παραςκευϊσ ΑΜ : 06/3059 Ίδρυμα/Τμόμα : Αλεξϊνδρειο Τεχνολογικό Εκπαιδευτικό Ιδρυμα/Πληροφορικόσ

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

Calculating the propagation delay of coaxial cable

Comparative Study of API vs. Open-Source Software ZAPROUDI A. PASCHALIA. Supervisor: CHATZHGEORGIOU ALEXANDROS

Démographie spatiale/spatial Demography

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

[1] P Q. Fig. 3.1

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Matrices and Determinants

Inverse trigonometric functions & General Solution of Trigonometric Equations

ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΘΕΜΑ»

Μορφοποίηση υπό όρους : Μορφή > Μορφοποίηση υπό όρους/γραμμές δεδομένων/μορφοποίηση μόο των κελιών που περιέχουν/

PARTIAL NOTES for 6.1 Trigonometric Identities

Section 8.3 Trigonometric Equations

ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

SOAP API. Table of Contents

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΗΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία ΑΝΑΠΤΥΞΗ ΔΕΙΚΤΩΝ ΠΟΙΟΤΗΤΑΣ ΕΔΑΦΟΥΣ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Αντικειμενοστρεφής Προγραμματισμός

ΑΚΑ ΗΜΙΑ ΕΜΠΟΡΙΚΟΥ ΝΑΥΤΙΚΟΥ ΜΑΚΕ ΟΝΙΑΣ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Strain gauge and rosettes

2 Composition. Invertible Mappings

C.S. 430 Assignment 6, Sample Solutions

Congruence Classes of Invertible Matrices of Order 3 over F 2

Example Sheet 3 Solutions

Reminders: linear functions

the total number of electrons passing through the lamp.

Mean bond enthalpy Standard enthalpy of formation Bond N H N N N N H O O O

Μηχανική Μάθηση Hypothesis Testing

«Χρήσεις γης, αξίες γης και κυκλοφοριακές ρυθμίσεις στο Δήμο Χαλκιδέων. Η μεταξύ τους σχέση και εξέλιξη.»

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

Statistical Inference I Locally most powerful tests

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

Advanced Subsidiary Unit 1: Understanding and Written Response

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ

CE 530 Molecular Simulation

«ΑΝΑΠΣΤΞΖ ΓΠ ΚΑΗ ΥΩΡΗΚΖ ΑΝΑΛΤΖ ΜΔΣΔΩΡΟΛΟΓΗΚΩΝ ΓΔΓΟΜΔΝΩΝ ΣΟΝ ΔΛΛΑΓΗΚΟ ΥΩΡΟ»

ΑΝΩΤΑΤΗ ΣΧΟΛΗ ΠΑΙ ΑΓΩΓΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΠΑΡΑΔΟΤΕΟ ΕΠΙΣΤΗΜΟΝΙΚΗ ΕΡΓΑΣΙΑ ΣΕ ΔΙΕΘΝΕΣ ΕΠΙΣΤΗΜΟΝΙΚΟ ΠΕΡΙΟΔΙΚΟ

Block Ciphers Modes. Ramki Thurimella

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ»

1. Ηλεκτρικό μαύρο κουτί: Αισθητήρας μετατόπισης με βάση τη χωρητικότητα

ΓΗΠΛΧΜΑΣΗΚΖ ΔΡΓΑΗΑ ΑΡΥΗΣΔΚΣΟΝΗΚΖ ΣΧΝ ΓΔΦΤΡΧΝ ΑΠΟ ΑΠΟΦΖ ΜΟΡΦΟΛΟΓΗΑ ΚΑΗ ΑΗΘΖΣΗΚΖ

CHAPTER 48 APPLICATIONS OF MATRICES AND DETERMINANTS

Πώς μπορεί κανείς να έχει έναν διερμηνέα κατά την επίσκεψή του στον Οικογενειακό του Γιατρό στο Ίσλινγκτον Getting an interpreter when you visit your

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

Instruction Execution Times

Areas and Lengths in Polar Coordinates

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

ΠΕΡΙΕΧΟΜΕΝΑ. Κεφάλαιο 1: Κεφάλαιο 2: Κεφάλαιο 3:

Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

8. Μέθοδοι (Methods)

Study of In-vehicle Sound Field Creation by Simultaneous Equation Method

Section 9.2 Polar Equations and Graphs

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 10η: Basics of Game Theory part 2 Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Η ΜΑΛΑΞΗ ΚΑΙ ΤΑ ΕΙ Η ΤΗΣ ΣΤΟ ΙΝΣΤΙΤΟΥΤΟ ΑΙΣΘΗΤΙΚΗΣ

5.4 The Poisson Distribution.

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΠΗΡΕΑΖΕΙ ΤΗΝ ΠΡΟΛΗΨΗ ΚΑΡΚΙΝΟΥ ΤΟΥ ΜΑΣΤΟΥ

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΙΚΗΣ ΙΣΧΥΟΣ

ΓΕΩΠΟΝΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΑΓΡΟΤΙΚΗΣ ΟΙΚΟΝΟΜΙΑΣ & ΑΝΑΠΤΥΞΗΣ

department listing department name αχχουντσ ϕανε βαλικτ δδσϕηασδδη σδηφγ ασκϕηλκ τεχηνιχαλ αλαν ϕουν διξ τεχηνιχαλ ϕοην µαριανι

ΑΝΙΧΝΕΥΣΗ ΓΕΓΟΝΟΤΩΝ ΒΗΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΕΠΙΤΑΧΥΝΣΙΟΜΕΤΡΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Transcript:

EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 5: Component Adaptation Environment (COPE)

Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class (e.g. Class, Abstract Class, Interface, etc.) Size: The size of the specific class (in bytes) Used By: Number of classes in the project that uses the specific class Uses (I): Number of internal classes used by the specific class Uses (E): Number of external classes used by the specific class Layer: The layer of the class CKJM: Chidamber and Kemerer Java metrics R (reusability index): It is an estimation of the reusability of a class based on the Chidamber-Kemerer metrics. The larger this value the more reusable a class is. It can take values between 3 to -20 (approximately) Pattern: The design pattern to which a specific class is involved (if any) Cluster Size: The number of classes the specific class needs in order to form an autonomous, fully functional component. This is the cardinality of the dependencies' set of a class, which includes the class dependencies, the dependencies of these dependencies and so on

Chidamber & Kemerer Java Metrics 2 WMC Weighted methods per class denotes the sum of the complexities of its methods. The ckjm program assigns a complexity value of 1 to each method, and therefore the value of the WMC is equal to the number of methods in the class DIT Depth of Inheritance Tree provides for each class a measure of the inheritance levels from the object hierarchy top. In Java where all classes inherit Object the minimum value of DIT is 1 NOC Number of Children simply measures the number of immediate descendants of the class. CBO Coupling between Object Classes represents the number of classes coupled to a given class (efferent couplings, Ce). This coupling can occur through method calls, field accesses, inheritance, arguments, return types, and exceptions RFC Response for a Class measures the number of different methods that can be executed when an object of that class receives a message (when a method is invoked for that object) LCOM Lack of Cohesion in Methods counts the sets of methods in a class that are not related through the sharing of some of the class's fields Ca Afferent Couplings is a measure of how many other classes use the specific class. Ca is calculated using the same definition as that used for calculating CBO (Ce) NPM Number of Public Methods simply counts all the methods in a class that are declared as public. It can be used to measure the size of an API provided by a package

Weighted Methods per Class 3 Ένας μεγάλος αριθμός (πολύπλοκων) μεθόδων μέσα σε μια κλάση θα χρειαστεί περισσότερη προσπάθεια για να τα κατανοήσουμε Ένας μεγάλος αριθμός μεθόδων θα έχει ως αποτέλεσμα μια πιο πολύπλοκη συμπεριφορά των παιδιών της που κληρονομούν αυτές τις μεθόδους Μια τέτοια κλάση πολύ πιθανόν να είναι application specific και άρα λιγότερο επαναχρησιμοποιήσιμη Αποφεύγουμε κλάσεις με ψηλό WMC

Depth of Inheritance Tree 4 Κλάσεις με ψηλό DIT κληρονομούν μεθόδους από πολλούς προγόνους έτσι είναι πιο δύσκολο να προβλέψουμε τη συμπεριφορά τους και να δυσκολεύεται η συντήρηση τους Στη JAVA όλες οι κλάσεις κληρονομούν από το Object DIT = 1 Στη C++, το DIT μπορεί να είναι 0

Number of Children 5 Μια κλάση με μεγάλο αριθμό παιδιών μάλλον είναι θεμελιώδες στοιχείο στη δομή του συστήματος Κλάσεις με παιδιά είναι ξεκάθαρη υπόδειξη επαναχρησιμοποίησης μέσω κληρονομικότητας Μια κλάση με ένα υπερβολικά μεγάλο αριθμό παιδιών μπορεί να σημαίνει την κακή χρήση των subclass, ειδικά όταν η χρήση αυτών των παιδιών είναι ελάχιστη

Coupling between Object Classes 6 Αυτή η σύζευξη μπορεί να γίνει μέσω κλήση μεθόδων, field addresses, κληρονομικότητα, ορίσματα, τύποι επιστροφής, και exceptions Η υπερβολική σύζευξη κάνει το σύστημα πιο δύσκολο να συντηρηθεί και να επαναχρησιμοποιηθεί Αλλαγές σε μια κλάση μπορεί να επηρεάσει τις κλάσεις με τις οποίες έχει ψηλή σύζευξη και μετά είναι δύσκολο να απομονωθούν και να επαναχρησιμοποιηθούν αλλού Είναι πιο δύσκολο να ελέγξουμε στοιχεία ατομικά (unit testing) σε συστήματα με ψηλή σύζευξη

Response for a Class 7 Όταν το σύνολο responses μιας κλάσης περιλαμβάνει ένα μεγάλο αριθμό μεθόδων, είναι δύσκολο η κατανόηση, η αποσφαλμάτωση και ο έλεγχος της

Lack of Cohesion in Methods 8 Όταν αυτός ο δείκτης είναι ψηλός ίσως η κλάση να μπορεί να σπάσει σε ξεχωριστές κλάσεις και οι μέθοδοι που δεν μοιράζονται πεδία μπορούν να χωριστούν αναλόγως Ένας χαμηλός δείκτης δείχνουν ότι οι κλάσεις σχεδιάστηκαν σωστά με κατάλληλη χρήση encapsulation

Credits 9 www.spinelis.gr/sw/ckjm