Background for the header
To the home page of the University of Antwerp

 

 

Software Metrics

Doel

  • De studenten kunnen een Function Point Analyse toepassen op de functionele requirements voor een software project.
  • De studenten kunnen m.b.v. het Constructive Cost Model (COCOMO)
  • De studenten kunnen in de les geziene tools gebruiken om de complexiteit, koppeling en cohesie van een software project te evalueren.

Opgaves

Opgave 1 - Function Points: Voorraad Controle Systeem

J.A. Roberts is een bedrijf dat 200 verschillende elektronische apparaten verkoopt via de telefoon. Om dit te kunnen verwezelijken vragen ze aan jou om een geautomatiseerd voorraad controle systeem te implementeren. Dit systeem zou de volgende functionaliteit moeten aanbieden:

  • De operator moet de details van nieuwe klanten kunnen invoegen.
  • Stel de operator in de mogelijkheid om een klantaccount te zoeken op basis van o.a. een bestaand klantnummer.
  • Controleer de kredietwaardigheid van klanten en weiger klanten met een lage kredietwaardigheid. De kredietwaardigheid van de klanten wordt bijgehouden door de financiële dienst op basis van openstaande facturen.
  • Stel de operator in de mogelijkheid om bestelde goederen in te voeren.
  • Controleer de beschikbaarheid van bestelde goederen:
    • indien er voldoende goederen in voorraad zijn; verzend de bestelde goederen,
    • Indien er niet voldoende goederen in voorraad zijn; verzend het aantal beschikbare goederen en maak een nabestelling om de overige goederen te verzenden wanneer ze beschikbaar zijn.
  • Update de voorraadstand indien goederen werden verzonden naar een klant.
  • De operator moet de details van een klantaccount kunnen aanpassen.
  • Maak een verzendingsnota en een factuur wanneer goederen naar de klant worden verzonden.
  • Update de voorraadstand wanneer goederen worden geleverd door een leverancier.
  • Update de klantaccount details gebaseerd op de betaling door een klant.
Identificeer volgende programma karakteristieken:
  • External Inputs
  • External Outputs
  • Inquiries
  • External Interfaces
  • Logical Files
en vul deze informatie in op slide 10.26 (Size: Function Points) van de cursus om de Unadjusted Function Points (UFP) te berekenen.

Kijk in de Documenten sectie voor definities van deze programma karakteristieken.

Vermenigvuldig dit getal met de Complexity Factor (CF), te berekenen via slide 10.29 (Size: Use Case Points ii). De Adjusted Function Points (AFP) bekom je via volgende formule: AFP = UFP*CF.

Hoeveel lijnen code zal het Stock Control System ongeveer omvatten indien je het zou implementeren in Java (#LOC/AFP = 46)?

Opgave 2 - Algorithmic Cost Modelling: Constructive Cost Model (COCOMO)

In Algorithmic Cost Modelling wordt de kost berekend volgens een wiskundige functie van product, proces en project attributen. Deze functie wordt afgeleid vanuit historische data (callibratie), en maakt gebruik van een of andere code-grootheidsmaat.

Neem volgende formule: E = a*KDSI^b , D = 2,5*E^c Stel:

  • E = Effort in Person-months
  • a, b & c zijn constanten gebaseerd op project class en historische data (zie tabel onder)
  • D = development time uitgedrukt in maanden
  • Je project is 42.000 lijnen code groot (=> KDSI=42)

Project Class a b c
Organic 2,4 1,05 0,38
Semi-Detached 3,0 1,12 0,35
Embedded 3,6 1,30 0,32


Bereken het aantal personen die je voor je project nodig zal hebben, en dit voor elk van de project classes {organic, semi-detached, embedded}.

Opgave 3: Kwaliteitsanalyse m.b.v. Software Metrics

Evalueer het software project Sweethome 3D inzake
  • complexiteit;
  • koppeling;
  • cohesie.
Kijk in de Documenten sectie voor achtergrondinformatie, broncode en beschikbare tools.

Documenten

Je kan hier een inleiding tot Funtion Point Analysis vinden.

Om SweetHome 3D te evalueren heb je het volgende ter beschikking:

  • De broncode van SweetHome 3D
  • Tools:
    • Metrics (update site: http://metrics2.sourceforge.net/update/ )
    • De code audit tool PMD (reeds aanwezig op de eclipse installatie in de PC klas)
    • De tool inFusion

Oplossingen

Valid HTML 4.01! Valid CSS!

 Lab On REengineering - Antwerpen, last modified 10:56:25 05 December 2016