Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Οσμές στη Σχεδίαση του Λογισμικού (Code Smells) Πρόγραμμα Μεταπτυχιακών Σπουδών στην Εφαρμοσμένη Πληροφορική.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Οσμές στη Σχεδίαση του Λογισμικού (Code Smells) Πρόγραμμα Μεταπτυχιακών Σπουδών στην Εφαρμοσμένη Πληροφορική."— Μεταγράφημα παρουσίασης:

1 Οσμές στη Σχεδίαση του Λογισμικού (Code Smells) Πρόγραμμα Μεταπτυχιακών Σπουδών στην Εφαρμοσμένη Πληροφορική

2 Design Problems non-compliance with design principles excessive metric values lack of design patterns violations of design heuristics Fowler’s bad smells

3 Software Ageing Design quality decays well-designed code

4 Οσμές Οι ενδείξεις κακής σχεδίασης λογισμικού είναι γνωστές ως «οσμές» λογισμικού (code smells - Fowler) Τα code smells δεν προκαλούν προβλήματα στη λειτουργικότητα του συστήματος (για αυτό και συχνά συσσωρεύονται) Ωστόσο, η ύπαρξή τους ενδέχεται να δυσχεράνει τη μελλοντική συντήρηση του λογισμικού (προσθήκη λειτουργικότητας, διόρθωση σφαλμάτων, κατανόηση, επαναχρησιμοποίηση κλπ) Οι κακές οσμές ανιχνεύονται σχετικά εύκολα από τους έμπειρους σχεδιαστές και ο εντοπισμός μπορεί να υποβοηθάται από εργαλεία Οι οσμές μπορούν να εξαλειφθούν με την εφαρμογή κατάλληλη αναδόμησης

5 Long Method int i; int product = 1; for(i = 0; i < N; ++i) { product = product *i; } System.out.println(product); Pieces of code with large size, high complexity and low cohesion int i; int sum = 0; for(i = 0; i < N; ++i) { sum = sum + i; } System.out.println(sum); Ενδεδειγμένη Αναδόμηση: Εξαγωγή μεθόδου (Extract Method)

6 Feature Envy A method is “more interested in a class other than the one it actually is in” m(Target t) { t.m1(); t.m2(); t.m3(); } m() { m1(); m2(); m3(); } Ενδεδειγμένη Αναδόμηση: Μετακίνηση μεθόδου (Move Method)

7 State Checking State Checking manifests itself as conditional statements that select an execution path based on the state of an object doStateA(); switch(type) { case STATE_A: break; case STATE_B: break; } doStateB(); Ενδεδειγμένη Αναδόμηση: Αντικατάσταση Συνθήκης με Πολυμορφισμός (Replace Conditional with Polymorphism)

8 Total Number of Smells


Κατέβασμα ppt "Οσμές στη Σχεδίαση του Λογισμικού (Code Smells) Πρόγραμμα Μεταπτυχιακών Σπουδών στην Εφαρμοσμένη Πληροφορική."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google