Bestimmung der Function Points

Werbung
Fragmente zu Softwaremessung“, Teil 2
”
(Version 1.0, 10.5.2010)
Bestimmung der Function Points:
1. Systemgrenze bestimmen
mit application boundary“ ist etwa das Kontextdiagramm bei SA oder das
”
Use-Case-Diagramme in UML gemeint.
2. Datenflüsse identifizieren
in Zusammenarbeit mit dem Benutzer
Eingabedaten
Informationen, die über die Grenze ins System geht und zu
Änderung von Daten in internen Files führt bzw. den Ablauf beeinflusst.
Es werden nicht Datenmengen sondern logische Daten gezählt.
Ausgabedaten
Informationen, die über die Grenze an den Benutzer gehen.
Abfragen
Anfragen und Antworten ohne weitere Änderungen
(interne) Datenbestände
Datenhaltung im System (Relationen und Files)
externe Referenzdaten
Datenhaltung, die nicht im System stattfindet.
3. Datenflüsse bewerten
Hierbei wird die functional size“ bestimmt als einfach/mittel/schwierig
”
(low/average/high)
=⇒ unadjusted function points“ (UFP)
”
4. Die Anwendung bewerten
Hierbei werden nach 14 Fragen Bewertungen mit 0-5 vergeben mit app”
lication characteristic multipliern“ (ACM)
=⇒ function points“ (FP)
”
1
Abbildung 1: (../Pictures.png/metrics012)
2
Bestimmung der Object Points
1. Bewertung des Klassenmodells
(Basis für die Schätzung des Codier- und Unittest-Aufwands.
Pro Klasse berechnet man
ClassPoints = (#Basisattribute+2∗#Referenzattribute+3∗#Methoden)∗Neuheit
Hierbei versucht Neuheit zu messen, zu welchem Prozentsatz die Klassenrealisierung nicht durch Vererbung erstellt wird, d.h. geerbte Member werden nicht
gezählt.
2. Bewertung der Interaktion
(Basis für die Schätzung der Integration und des Integrationstestaufwands.)
Pro Operation (d.h. Methodengruppe) berechnet man
MessagePoints = (#Parameter+2∗#Quellen+2∗#Ziele)∗Komplexitaet∗Neuheit
Hierbei ist eine Quelle ein Aufrufpunkt und ein Ziel ist eine Klasse, in der die
Methode definiert wurde.
Die Komplexität misst die Kompliziertheit der Methode als
hoch (1,25)
mittel (1,0)
niedrig (0,75)
3. Bewertung der Anwendungsprozesse
(Basis für die Schätzung des Systemtestaufwands. Die Anwendungsprozesse
entsprechen etwa den Use-Cases.)
Pro Prozess berechnet man
ProcessPoints = (Prozesstyp + #Varianten) ∗ Komplexitaet
3
Es werden vier Typen von Prozessen unterschieden
Batch-Prozesse (2)
geringe menschliche Eingriffe
Online-Prozesse (4)
wesentliche menschliche Eingriffe
System-Prozesse (6)
z.B. Backup, Recovery
Realtime-Prozesse (8)
gesteuert von externen Ereignissen
Hierbei werden Prozesse ähnlicher Art zusammengefasst.
4. Berechnung einer Rohgröße
Mit diesen Zahlen erhält man
ObjectPoints =
X
ClassPoints +
X
MessagePoints +
X
ProcessPoints
5. Gewichtung nach den Qualitätsanforderungen
Sneed schlägt vor, die berechnete Rohgröße nach den Qualitätsanforderungen
zu gewichten (12 Kriterien), die durch Metriken bestimmt werden:
Zuverlässigkeit
Sicherheit
Zeiteffizienz
Speichereffizienz
Benutzbarkeit
Integrität
Integrierbarkeit
Portabilität
Wartbarkeit
Datenunabhängigkeit
Testüberdeckung
Konformität
Jeder Faktor erhält einen Wert zwischen 0 und 2:
minimaler Wert (0)
Industriestandard (1)
Maximaler Wert (2)
Der Durchschnitt dieser Werte ergibt den Qualitätsfaktor QF
QualityAdjustedObjectPoints = ObjectPoints ∗ QF
4
6. Gewichtung nach Eigenschaften des Projekts
Dieser Wert wird aufgrund von Eigenschaften des gesamten Erstellungsprozesses noch ein weiteres Mal gewichtet (10 Aspekte):
Verfügbarkeit von Groupware zur Unterstützung des Projektteams
Qualität der Benutzeroberfläche der Entwicklungsumgebung
Zuverlässigkeit des Netzes, in dem die Entwickler arbeiten
Reife des zu entwicklenden Prozesses
technische Unterstützung des Projektteams
Anwendungsgrad objekt-orientierter Methoden
objekt-orientiertes Niveau der verwendeten Sprache
Verfügbarkeit von objekt-orientierten CASE-Tools
Anwesenheit eines Objekt-Repositorys
Grad der Testautomatisierung
Jede dieser Eigenschaften wird bewertet mit
nicht erfüllt (0)
gering erfüllt (1)
teilweise erfüllt (2)
hoch erfüllt (3)
vollständig erfüllt (4)
Durch die Summe er hält man eine Bewertung des Technologiegrades (0.6 ≤
P
EF = 1 − /100 ≤ 1.0)
AdjustedObjectPoints = QualityAdjustedObjectPoints ∗ EF
5
Herunterladen