Software Engineering for Web Applications Reverse Engineering examples

Software Engineering for Web Applications Reverse Engineering examples ι Παναγιώτης Σφέτσος, Ph. D http: //aetos. it. teithe. gr/~sfetsos/ sfetsos@it. teithe. gr

Παραδείγματα – 1/10 Classes • Class (package, αν είναι abstract, …) • Τμήμα attributes • Τμήμα Μεθόδων • Γράφεις: – Class if abstract – Method if constructor, abstract, … – Method signature – Attribute type Παναγιώτης Σφέτσος, Software Engineering - II 2

Παραδείγματα – Classes 2/10 package simple. Bookstore. Demo; public class Item { public Item(){title=""; price=-1. 0; } public Item(String a. Title, double a. Price){title = a. Title; price=a. Price; } public void show. Details() { System. out. println(title + "tt Price: " + price); } public double get. Price() {return price; } public double get. Final. Price() {return price; } protected String title; protected double price; } Παναγιώτης Σφέτσος, Software Engineering - II 3

Παραδείγματα – 4/10 Απεικονίσεις Σχέσεων Dependency : class A uses class B Aggregation : class A has a class B Composition : class A owns a class B Inheritance : class B is a Class A (or class A is extended by class B) Realization : class B realizes Class A (or class A is realized by class B) Παναγιώτης Σφέτσος, Software Engineering - II 4





Παραδείγματα – Συσχέτηση (Association) 8/10 package simple. Bookstore. Demo; public class Item {. . . } public class Book extends Item {. . . } public class CD extends Item {. . . } public class Item. Manager { private Array. List<Item> all. Items; . . . } Παναγιώτης Σφέτσος, Software Engineering - II 9


Παραδείγματα – 10/10 Σύνθεση (Composition) - Ένα αντικείμενο της κλάσης B_Class αποτελεί σύνθεση αντικειμένων της kκλάσης C_Class. public class Piece {. . . } public class Player { Piece piece = new Piece(); /*Player owns the responsibility of creating the Piece*/. . . } Παναγιώτης Σφέτσος, Software Engineering - II 11

Plugin Eclipse – 1/6 1. Εγκατάσταση του Object. Aid UML Explorer στο Eclipse, Help -> Install New Software… Παναγιώτης Σφέτσος, Software Engineering - II 12

Plugin Eclipse – 2/6 2. Βάζουμε την διεύθυνση URL : http: //www. objectaid. net/update στο πεδίο Work with Παναγιώτης Σφέτσος, Software Engineering - II 13



Plugin Eclipse – 5/6 5. Δεχόμαστε το Licence Agreement και πατάμε Finish Παναγιώτης Σφέτσος, Software Engineering - II 16


Παράδειγμα -1/5 (javacodegeeks) package com. javacodegeeks. eclipse; public interface Vehicle { public class Car implements Vehicle{ public void drive(); public void streer(int direction); public void stop(); int weels; int doors; } @Override public void drive() { } package com. javacodegeeks. eclipse; @Override public void streer(int direction) { } public class Truck implements Vehicle{ @Override public void drive() { } @Override public void stop() {} @Override public void streer(int direction) { } @Override public void stop() {} } Παναγιώτης Σφέτσος, Software Engineering - II 18

Παράδειγμα -2/5 package com. javacodegeeks. eclipse; public class Aston. Martin extends Car { String label; public void bar() {}; } package com. javacodegeeks. eclipse; public class Ferrari extends Car { String badge; public void foo (){ } } Παναγιώτης Σφέτσος, Software Engineering - II 19

Παράδειγμα -3/5 package com. javacodegeeks. eclipse; public class Man extends Truck { @Override public void drive() { // TODO Auto-generated method stub } @Override public void streer(int direction) { // TODO Auto-generated method stub } @Override public void stop() { // TODO Auto-generated method stub }} Παναγιώτης Σφέτσος, Software Engineering - II 20

Παράδειγμα -4/5 package com. javacodegeeks. eclipse; public class Scania extends Truck{ @Override public void drive() { // TODO Auto-generated method stub } @Override public void streer(int direction) { // TODO Auto-generated method stub } @Override public void stop() { // TODO Auto-generated method stub } } Παναγιώτης Σφέτσος, Software Engineering - II 21

- Slides: 22