Bewertung von objektorientierten Entwürfen

Werbung
Übung 8 - ST II
BEWERTUNG VON OBJEKTORIENTIERTEN ENTWÜRFEN
1. Untersuchen und diskutieren Sie gegebenes Beispiel bezüglich:
• Halstead-Metrik
• McCabe -Metrik
•
•
•
•
•
•
Depth of Inheritence Tree (DIT)
Number Of Children of a class (NOC)
Response For a Class (RFC)
Weighted Methods per Class (WMC)
Coupling Between Object classes (CBO)
Lack of Cohesion Of Methods (LCOM)
Object
Übung8
(from lang)
+ main()
<<uses>>
Rechteck
+ berechneUmfang() :
+ berechneFläche() : double
-m_Linie
0..*
Punkt
x
:
double
-m_Punkt
- y : double
Linie
4 + berechneLänge() :
0..*
2
+ getX() : double
+ getY() : double
Seite 1/3
Technische
Universität
Dresden
Softwaretechnologie II, Übungsmaterial
Softwaretechnologie
// Source file: Punkt.java
// Source file: Linie.java
public class Punkt extends Object {
private double x;
private double y;
public class Linie extends Object {
private Punkt m_Punkt[]=new Punkt[2];
Linie(double x1, double y1, double x2, double y2) {
Punkt(double x, double y) {
this.x=x;
this.y=y;
}
m_Punkt[0]=new Punkt(x1,y1);
m_Punkt[1]=new Punkt(x2,y2);
}
public double getX() {
return x;
}
public double berechneLänge() {
double xdiff, ydiff;
public double getY() {
return y;
}
xdiff=m_Punkt[0].getX()-m_Punkt[1].getX();
ydiff=m_Punkt[0].getY()-m_Punkt[1].getY();
}
return Math.sqrt(xdiff*xdiff + ydiff*ydiff);
}
}
Seite 2/3
Technische
Universität
Dresden
Softwaretechnologie II, Übungsmaterial
Softwaretechnologie
// Source file: Rechteck.java
public class Rechteck extends Object {
private Linie m_Linie[]=new Linie[4];
Rechteck(double x, double y, double breite, double höhe) {
// Punkt(x,y) ist linke obere Ecke
m_Linie[0]=new Linie(x,y,x+breite,y);
m_Linie[1]=new Linie(x,y,x,y-höhe);
m_Linie[2]=new Linie(x,y-höhe,x+breite,y-höhe);
m_Linie[3]=new Linie(x+breite,y-höhe,x+breite,y);
}
public double berechneFläche() {
return m_Linie[0].berechneLänge()*m_Linie[1].berechneLänge();
}
public double berechneUmfang() {
return 2*(m_Linie[0].berechneLänge()+m_Linie[1].berechneLänge());
}
}
// Source file: Übung8
class Übung8 {
public static void main(java.lang.String[] args) {
System.out.println("Rechteck (5.0,7.0,10,5)");
Rechteck r=new Rechteck(5.0,7.0,10,5);
System.out.println("Umfang = "+ r.berechneUmfang());
System.out.println("Fläche = "+ r.berechneFläche())
Seite 3/3
Technische
Universität
Dresden
Softwaretechnologie II, Übungsmaterial
Softwaretechnologie
Herunterladen