460 likes | 697 Views
Modern Aspects in Software Engineering 5. Software Measurement Prof. Dr.-Ing. habil. Reiner Dumke Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik, Institut für Verteilte Systeme AG Softwaretechnik http://ivs.cs.uni-magdeburg.de/sw-eng/agruppe/. Software Measurement - Introduction.
E N D
Modern Aspects in Software Engineering5. Software MeasurementProf. Dr.-Ing. habil. Reiner DumkeOtto-von-Guericke-Universität MagdeburgFakultät für Informatik, Institut für Verteilte SystemeAG Softwaretechnikhttp://ivs.cs.uni-magdeburg.de/sw-eng/agruppe/
Software Measurement - Introduction Measurement:
Software Measurement - Introduction Software Measurement: „…is the process by which numbers or symbols are assigned to attributes of entities in the real world in such a way as to describe them according to clearly defined rules.“ (Fenton, 1991)
Software Measurement - Introduction Software Metrics: „… are used to characterize the essential features of software quantitatively, so that classification, comparison, and mathematical analysis can be applied.“ (Conte, 1992)
Software Measurement - Introduction • Questions: • the size of a program • the usability of a software system • the performance of a reactive system • the estimation of the development costs • the evaluation of the programmer experience • the realibility of an embedded system • the productivity of a software developer
Software Measurement - Introduction Software metrics example: trend analysis Cost trends development effort
Software Measurement - Introduction • Software metrics example: rules of thumb • One dollar software development leads to two dollar maintenance • 1 KLOC professional software includes 3 errors • productivity of a programmer: 250 LOC/month • Y2K migration: 1500 LOC/month
Software Measurement - Introduction • Software metrics example: formulas • Doc pages = 0.0347 * LOC0.93 • program complexity = #decisions + 1 • current effort = total_effort/(total_time2 * edt/2) • readability = 206.85 – 0.846 word_length – 1.105 sentences_length
Software Measurement - Introduction • Software metrics example: metrics • code metrics (Halstead, LOC) • flow graph metrics (McCabe, depth of nesting) • call graph metrics (Henry-Kafura, coupling) • structure metrics (levels, entropy) • etc.
Software Measurement - Introduction Halstead Metric:
Software Measurement - Introduction Halstead Metric:
Software Measurement - Introduction Halstead Metric:
Software Measurement - Introduction Flow graph metrics - Dijkstra structures
Software Measurement - Introduction Object-oriented Metrics by Chidamber/Kemerer
Software Measurement - Introduction Current Situation in Software Measurement
Software Measurement - Introduction Current Situation in Software Measurement
Software Measurement - Introduction Current Situation in Software Measurement
Software Measurement - Introduction Current Situation in Software Measurement
Software Measurement - Introduction Current Situation in Software Measurement
Software Measurement - Introduction Current Situation in Software Measurement
Software Measurement - Introduction Investigations in Software Measurement
Software Measurement - Introduction Investigations in Software Measurement
Software Measurement - Introduction Investigations in Software Measurement
Software Measurement - Measures Horst Zuse (1990): Software measures based on the measurement theory are founded in a scale which defines an homomorphism between a numerical relative and an empirical relative in order to measure based on units.
Software Measurement - Measures Software metrics Software measures Software measurement Measurement based controlling
Software Measurement - Measures Goal Question Metric (GQM):
Software Measurement - Measures Goal Question Metric (GQM):
Software Measurement - Measures Goal Question Metric (GQM):
Software Measurement - Measures ISO 15939 Software Measurement Standard
Software Measurement - Measures Measurement Framework: CAME
Software Measurement - Measures Measurement Framework: Choice
Software Measurement - Measures Logiscope Tool: . . . Analyzability: committed(aif) -> 1 . . . committed(RECU) -> 1 1 2 3 4 5 6 Empirical method ?!
Software Measurement - Measures FLIGHT QUALITY = Average speed Intervall scale + average age of the crew Nominal scale + index of satisfaction (potentiell) Ratio scale + average temperatur ( C) Ratio scale + typ of the airplane - #air holes Ordinale scale - #passengers/capacity
Software Measurement – Measures LOC(P1 ∘ P2) = LOC(P1) + LOC(P2), LOC((P1 ∘ P2) ∘ P3) = LOC(P1 ∘ (P2 ∘ P3)) = LOC(P1) + LOC(P2) + LOC(P3), LOC(P1 ∘ P2) = LOC(P2 ∘ P1), for LOC(P1) LOC(P2) concludes LOC(P1 ∘ P3) LOC(P2 ∘ P3), exists a number n so that LOC(P1) LOC(P2) and LOC(P3) > LOC(P4) leads to LOC(P1 ∘ nP3) LOC(P2 ∘ nP4). M(P1 ∘ P2) = M(P1) + M(P2), M((P1 ∘ P2) ∘ P3) = M(P1 ∘ (P2 ∘ P3)) = M(P1) + M(P2) + M(P3), M(P1 ∘ P2) = M(P2 ∘ P1), for M(P1) M(P2) concludes M(P1 ∘ P3) M(P2 ∘ P3), exists a number n so that M(P1) M(P2) and M(P3) > M(P4) leads to M(P1 ∘ nP3) M(P2 ∘ nP4). LOC(P) [Maintenance Unit]
Software Measurement – CAME tools Palm based measurement:
Software Measurement – CAME tools The LOC Agent (as Aglet)