40 Years of Function Points: Vergangenheit, Vorhanden, Zukunft

Durch Louis Bouillon

Gerade 40 Jahre im Oktober 1979, DR. Allan Albrecht vorgeschlagen zum ersten Mal eine Technik zur Auslegung der Funktionalität eines Softwaresystems. Seine Technik wurde angenommen, wurde ein internationaler Standard, und inspirierte einige andere Techniken und mehr. Dieses Papier zeigt die Vergangenheit, Gegenwart und (möglich) zukünftige Beiträge von Function Point Analysis.

Die Vergangenheit: Ursprünge, Motivation und Rationale

In den 1970ern, Zeilen von Code (LOCs) wurden zum Schlichten von Softwaresystemen missbräuchlich verwendet (und noch heute in einigen funktionellen Domänen wie das Militär und in Echtzeit und Kfz-Systeme, nur um ein paar zu nennen) und es führte zu dem, was Capers Jones markierte das „Produktivitätsparadoxon“ [1]: mehr LOCs Schreiben bedeutet nicht unbedingt produktiver ... der Programmierstil zu sein, die Expressivität einer bestimmten Programmiersprache, die Regel LOCs zum Zählen (physikalischen oder logischen, mit / ohne kommentierten Zeilen ...) eine große Variabilität in Projekt erstellt (Ja, Projekt!) Einschätzung. Da zu dieser Zeit, wir hatten nur Großrechner, nicht PCs oder Mini-Computer. Somit, das (Software) Produkt Aufwand für entfalte war die meisten der gesamten Projektaufwand und Software-Funktionalitäten als Hauptergebnis eines Software-Projekts bestimmt waren. Als Konsequenz, für viele Jahre (und nach wie vor in vielen Verträgen), Function Points (FPs) wurden (und) zu Unrecht als „Projektgröße“ bestimmt, während sie das Produkt nur funktionale Größe auszudrücken. Sowieso, Albrecht hat sich zum Ziel war es, die „Produktivitätsparadoxon“ zu überwinden und einen Weg finden, um die Produktivität Berechnungen aus betriebswirtschaftlicher Sicht zu normalisieren [2]. Die große Idee war, seine Technik auf etwas zu stützen technologieunabhängig: Prozesse und Daten. Somit, eine Berechnungs FP (und zugehöriges Produkt funktionale Größe) aus der Analyse einer Reihe von Funktionsbenutzeranforderungen abgeleitet (FUR) angenommen ist das gleiche, trotz der Technologie und organisatorischen Stil, während Anstrengung, Dauer und Kosten / Preis ist, natürlich, Variable entsprechend solche Elemente. Das typische Beispiel im Laufe der Jahre vorgeschlagen wurde zur Messung der „Größe“ eines Wohnung FP als Quadratmetern zu sehen: die Zahl der Quadratmeter kann das gleiche für zwei Wohnungen in zwei verschiedenen Orten sein, aber die Zeit, um sie für den Aufbau kann abweichen (z.B.. eine Wohnung kann mit Ziegeln oder werden vorgefertigte gebaut werden), sowie deren Produktionskosten und Handelswert (eine Wohnung in Manhattan, New York, soll mehr pro Quadratmeter als ein anderes in einem anderen Ort kosten); Kosten nicht Wert.

Das erste Papier, datiert 1979, posierte Grundlagen für ein solches Ziel, wie im Titel angegeben („Measuring Anwendungsentwicklung Produktivität“). Sie stellte einen großen Knall für Schätzungen, versuchen, Auszug Ein- / Ausgänge / Abfragen und Daten aus einer Funktionsanalyse insbesondere weil eine solche neue Nummer vor der Programmierung abgeleitet worden sein könnte und nicht später, wie auch mit einer LOC Zählung. Da Sie nicht mit einem gewissen Maß an Genauigkeit die Anzahl der LOCs wird Ihr Team morgen produzieren vorhersehen kann ... zu viel Variabilität!

Es gibt viele Vorteile, aber auch einige offene Fragen: die Korrelation zwischen dem Projektaufwand (Mann / Tage) und das Produkt funktionale Größe (in FP) war nicht so hoch,, und ein Wert Adjustment Factor (VAF) wurde eingeführt, um eine solche Beziehung und den Wert R2 in einer linearen Regressionsanalyse zu verbessern. VAF wurde zunächst berechnet auf 10 Merkmale Allgemein System (GSCs) mit einer Variabilität von ± 25% in dem ersten 1979 Papier-, vergrößert 14 GSCs in dem zweiten und letzten Papier, datiert 1983 [3], mit ± 35% Variabilität auf dem anfänglichen „unangepasste“ FP-Wert. VAF war, deshalb, Der erste Weg ist der Beitrag von nicht-funktionalen Anforderungen an indirekt „Größe“ (NFRs), sowohl auf als auch das Produkt als Projektebene. Das zweite und letzte Papier von Allan Albrecht erklärte die endgültige FPA Struktur, Aufspalten des Ausgangs MASTER DATA Funktionsart in Ilf und EIF, und erklärte, das endgültige Gewichtungssystem (wie noch gültig in der aktuellen IFPUG CPM V4.3.1 Version, datiert 2010 [4]) von dieser Zeit an. Somit, es ist möglich, eine funktionelle Schlicht Sicht vergleichen -von- ein Software-Produkt für die Benchmarking Zweck heute mit einem anderen Jahren veröffentlicht vor realisiert.

Im 1987, IFPUG wurde in seinen Händen das Management und die Entwicklung von Albrechts Technik geboren und gehalten. In den folgenden Jahren, verschiedene Techniken zog von Albrecht Ideen entfernt, und nur wenige wurden ISO-Normen, wie in Fig. 1:

Feige. 1: ISO FSM Standards (mit gepunkteten Linien blauen)

Feige. 1: ISO FSM Standards (mit gepunkteten Linien blauen)

Sie sind (in der Reihenfolge der Erscheinung): Mark-II (1988), NESMA FPA (1990), FISMA (199x) und COSMIC (1998), mit vielen kleineren Varianten (Hier [5] eine Liste von einigen von ihnen).

Erste Verwendungen von FPA waren die funktionale Größe von Softwareprodukten für die Schätzung und Benchmarking Zwecke zu bestimmen und -zu zu vereinfachen- als Vertragseinheit zur Zahlung in einem ITK-Vertrag.

Im 1998, ISO begann die Schaffung einer Familie von Standards im Rahmen des „14143“ Label mit gemeinsamen Grundsätzen für die so genannte Funktionsgrößenmessung (FSM) Methoden, in einer klaren Art und Weise die besagt, dass solche Verfahren ein Produkt bemessen (kein Projekt) und nur dann, wenn sich von Produkt FUR, die ausgeschlossen entsprechenden ISO-Versionen, die zunächst Anpassungsfaktoren enthalten wie VAF [6]. Das Grundprinzip? Solche „Justierung / Kalibrierung“ Faktoren kamen aus NFRs, somit, außerhalb des Bereichs ist für ein FSM Verfahren. Als Beweis: ISO 20926:2003 Der ISO-Standard für IFPUG CPM v4.1 „unangepasst.“ war Versionen 4.x -von 1999 auf- verfeinerte Version Definitionen und grundlegende Konzepte, insbesondere „user“ und „Grenze“. Version v4.3 (2010) endgültig fallen gelassen VAF aus dem normativen Text (auch in ISO / IEC 20926:2009) und behielt sie für historische Zwecke in Anhang C.

Inzwischen, da Pelze und NFRs müssen in einer parallelen Art und Weise behandelt werden,, die Software Non-Functional Assessment Process (SNAP) Projekt begann 2007, Lösen in v1.0 2011 [7], für eine neue, erst nicht-funktionales Sizing Mess (NFSM) Methode, die bewegte von der ISO-Norm auf dem Produkt Software-Qualität (9126 Vor [8], und in den Strom entwickelte 25010:2011 Standard [9]) Beim Versuch, die funktionelle Dimensionierung so viel wie möglich zu ergänzen. Feige. 2 hilft, den richtigen Projektumfang zu bestimmen,, mit drei Arten von Anforderungen:

Feige. 2: Drei Arten von Anforderungen (aus dem ‚ABC‘ schema)

Feige. 2: Drei Arten von Anforderungen (aus dem ‚ABC‘ schema)

Die Informationen wurden in anderer Weise als CPM v4.1 geschrieben. Ich klar in einem erklärten 2012 Papier schrieb ich für MetricViews [10], Das ‚ABC‘ Schema; solche Taxonomie wurde ebenfalls in einem benutzten 2015 Papier mitgeschrieben von IFPUG / COSMIC für besser, eine Taxonomie für NFRs exprimierenden [11]. Diese Klassifizierung ist entscheidend von Anfang eines jeden Projekts für richtig zu analysieren und sie mit einem guten Benchmark-Analyse zu vergleichen. Feige. 3 fasst zusammen, wie ein Benutzer Anforderung bereitgestellt und Split werden könnten, im weiteren Fall, in drei Stücke: Produkt FUR (EIN), Produkt NFRs (B) und Projekt Einschränkungen / Anforderungen (C).

Feige. 3: Das ABC-Schema [10]

Feige. 3: Das ABC-Schema [10]

Von Benutzeranforderungen an den endgültige Gesamtprojektaufwand und Kosten – Das „ABC“ Schema [10] im 1997 ISBSG (isbsg.org) geboren wurde und alle der aktivste Mess Verbände Software (FGL) diese Benchmarking-Initiative eingehalten. Das 2019 Veröffentlichung [12] umfasst mehr als 9,000 Projekte, meist bemessen, um die IFPUG und COSMIC FPA Methoden. Eine weitere ergänzende Norm war die ISO / IEC 14143-5:2004 [13], die schlägt Kriterien für „funktionelle Domänen“ zu definieren und erlaubt einen angemessenen Vergleich zwischen Softwaresystemen mit ähnlichen Merkmalen und Aufwandsverteilung von Anforderungstypen (ABC). Es macht keinen Sinn, Äpfel mit Birnen zu vergleichen ...

 

Das Geschenk: Was ist los?

FSM Methoden sind diffus in Informationen verwendet & Kommunikationstechnologie (ICT) Verträge, mit einer höheren Konzentration in einigen Ländern (z.B.. Italien, Brasilien, Polen, Indien), und stellen eine quantitative Basis für das Produkt funktionale Größe Dimensionierung und kann in Benchmarking-Analyse helfen, zu bestimmen, welche sein könnte (CA) der nicht-funktionale Aufwand in einem Projekt, wie in 4 gezeigt:

Feige. 4: Aufwandsverteilung von Anforderungstyp (ABC) pro Funktionsbereich: ein Beispiel

Feige. 4: Aufwandsverteilung von Anforderungstyp (ABC) pro Funktionsbereich: ein Beispiel

Ein Beispiel für eine Kraftverteilung von Anforderungstyp (ABC) pro funktionelle Domäne spaltet, was nach dem ABC-Schema nicht funktionsfähig ist. Ein B-Typ Anforderung kann durch einen IT-Spezialisten realisiert und eingesetzt werden (z.B.. ein Datenbankadministrator, Usability-Experte ...) dass kostet in der Regel weniger als ein anderen Beruf (z.B.. ein Projekt / Service-Manager, ein Mess Spezialist, eine Qualitätssicherung Person ...) Ausführen eine C-Typ-Anforderung aber mehr als ein Profi (z.B.. Analyst / Programmierer) einen A-Typ Anforderung läuft. Feige. 5 zeigt die beiden gegenüberliegenden Pyramiden für eine typische Verteilung von Projektaufwand nach Anforderungstyp und die Kosten pro Mann / Tag für jede Art von professionellen [14].

Feige. 5: Aufwandsverteilung nach Anforderungstyp und Kosten / Manntag (nach dem ABC-Schema)

Aufwandsverteilung nach Anforderungstyp und Kosten / Manntag (nach dem ABC-Schema). Nochmal, Lehren aus 40 Jahre Erfahrung dazu beigetragen, besser zu definieren (und verfeinern) Grundsätze und Regeln über Anwendungsbereich des FPA. Das ‚123‘ Schema ist eine weitere Klassifizierung [15] für die Angabe, welche Art von Anforderungen in einer bestimmten Phase eines Projektes vorhanden sein (1: dev, 2: Ops, 3: Svc, Instandhaltung).

Feige. 6: Das ‚123‘ Schema gemeinsam mit dem ‚ABC‘ Schema

Somit, in der OPS-Phase wird eine Software verwendet,, nicht erzeugt / verändert, und erzeugt ein „Null-FP“ count, sowie, wenn eine Änderungsanforderung nur B-Typ-Anforderungen umfassen wird (z.B.. für eine Korrektur- / perfective Wartung, wie in ISO / IEC angegeben 14764:2006 Standard [16], auch in CPM V4.3.1 zitiert – Teil 3, Kapitel 4, Seiten 20-21). Auch wenn Definitionen und Kriterien über das, was FUR oder NFR erstellt wurde, erklärt und im Laufe der Zeit diffundiert, gibt es immer noch eine kulturellen Schulden in Vertragspraktiken und Unternehmen mindestens eine Maßeinheit zu verwenden (UoM) zum Schlichten von A-Typ-Anforderungen (FPs, welcher Art auch immer) gemeinsam mit dem UoM zum Schlichten von Anforderungen vom B-Typ (z.B.. mit IFPUG SNAP Punkten oder Maßnahmen aus ISO / IEC 25023 [17], sowie die C-Typ-Aktivitäten, die den Spielraum für die Schätzung des ganzen Aufwand für Scoping ein Projekt benötigt vervollständigen. Nur wenn für die drei alle Anforderungen Dimensionierung (ABC) Arten, es ist möglich, den „Scope Creep zu reduzieren,“, Während es noch ein historisches Missverständnis über, was ein FP Größe und was nicht. Aber es würde ausreichen, um in einer FSM Methode zu kennen, welches sind seine Basisfunktionskomponenten (BFCs) für die Aufnahme von (oder nicht) eine solche Tätigkeit oder Tätigkeiten.

Zu guter Letzt, FP und Automatisierung. DR. Albrecht schaffte eine „konstruktive Maßnahme“ zu ermöglichen, dass eine Schätzung in den frühen Phasen eines Lebenszyklus. Einige Werkzeuge heute, nach dem 40 Jahre, würde ableiten FPs (welcher Art auch immer) Parsing-Software-Code oder die Arbeit an einigen Formen der FUR Notationen. Etwas (gesunder Menschenverstand) Beobachtungen und Gedanken: Automatisierung ist nützlich, wenn es von vier Kriterien respektvoll ist: schneller, genauer, mehr rechtzeitig und kostengünstiger. Wenn wir eine neue FUR Größe benötigen, ein Werkzeug Parsing-Code (wie in der neuen ISO angegeben 19515 Standard auf automatisierte FP [18]) wäre nutzlos und teuer. Oder, mit einem Werkzeug einige UML Notationen Annahme als Eingaben mehr Mannstunden bedeuten würde (und die damit verbunden Kosten) für einen Menschen basierte schriftliche Anforderung in ein Meta-Sprache Format übersetzen. Ebenfalls, eine Organisation muss sorgfältig den Return on Investment für eine solche Wahl analysieren(s) entsprechend den vier oben genannten Kriterien. Schnell einen Entwurf Basislinie zu schaffen, in der Zeit und Mühe ist kritische Vermögenswerte unter den Voraussetzungen in Ordnung sein könnten, dass es von einem Menschen CFPS und dass die UoM unter Umfang ist die gleiche prüft. Andernfalls, Automatisierung könnte riskant oder schwierig zu verwalten.

 

Die Zukunft: Was können wir erwarten?

Wie viele Leute würden sagen,, Die Zukunft ist jetzt ... aber was können wir von FPA in naher Zukunft erwarten? FPA hat ein starkes Fundament und es ist Technologie unabhängig; was wir aus der Vergangenheit gelernt haben, ist, dass die nächsten Schritte sein sollten:

  • Eine bessere und erschwinglichere Benutzeranforderungen (UR) Verwaltung, Scoping und Messung während der frühen Phasen eines Projekts: dies ist das wichtigste und primäres Ziel, das erreicht werden soll.
  • Annahme von FPA zu neuen Technologien, durch die richtige Interpretation der FPA Grundregeln aus 1979/84. Wir können noch nicht messen und Größe durch FPA neue Technologien wie Cloud Computing [19], Internet der Dinge (IoT) [20], künstliche Intelligenz und alle neuen Tech die kommenden Jahre wird es uns bringen.

Unsere beste Wette ist nicht etwas Neues zu erfinden, sondern tief in unserem aktuellen Prozesse und Daten zu analysieren neue und andere Möglichkeiten, um zu bestimmen, ein Software-System zu konstruieren und Größe noch FUR mit FPA!

Wir wollen mit und Verbesserung der Funktion fortzusetzen Wert Messung.” (Allan Albrecht, Oktober 1979)

 

Verweise

  1. Jones, C., Was Function Points sind? SPR Webseite, URL: http://tiny.cc/tgur7y
  2. Albrecht A. J., “Messanwendungsentwicklung Produktivität” in Proc. Gemeinsamer SHARE, FÜHREN, und IBM Application Development , 1979, pp. 83-92. http://tiny.cc/2ywacz
  3. Albrecht A. J. & Gaffney J. E., “Software-Funktion, Quellencodezeilen, und Entwicklungsaufwand Vorhersage: Eine Software-Validierung Wissenschaft,” IEEE Trans. Software Eng., vol. 9, Nein. 6, November 1983, pp. 639-647. http://tiny.cc/1zwacz
  4. IFPUG, Function Point Counting Praxis-Handbuch (CPM), Veröffentlichung 4.3.1, Januar 2010, URL: ifpug.org
  5. Lweitere M., Dumke R., Punkte-Metrics: Vergleiche und Analyse“, im: Aktuelle Trends in der Software-Messung, Shaker Verlag, 2001, pp.228-267
  6. ISO / IEC, Internationaler Standard 14143-1 – Informationstechnologie – Software Mess – Functional Size Measurement – Teil 1: Definition von Begriffen, Februar 2007
  7. IFPUG, Software Nicht-funktional Assessment Process (SNAP) Assessment-Praxis-Handbuch (APM), Ausführung 1.0, September 2011, URL: ifpug.org
  8. ISO / IEC, IS 9126-1:2001 – Softwareentwicklung – Produktqualität – Teil 1: Qualitätsmodell, Internationale Standardisierungsorganisation, 2001
  9. ISO / IEC, IS 25010:2011 -Systeme und Software-Engineering-Systeme und Software-Qualitätsanforderungen und Evaluation (Quadrat)-System- und Software-Qualitätsmodelle, Internationale Standardisierungsorganisation, März 2011
  10. Bouillon L., The Next Frontier: Messen und Auswerten der nicht-funktionelle Productivity, MetricViews, August 2012, URL:https://www.ifpug.org/Metric%20Views/MVBuglione.pdf
  11. COSMIC / IFPUG, Glossar der Begriffe für nicht-funktionale Anforderungen und Projektanforderungen in Software-Projekt Performance-Messung verwendet, Benchmarking und Schätzen, v1.0, September 2015
  12. ISBSG, D&E (Entwicklung & Erweiterung) Repository, R2019, URL:isbsg.org
  13. ISO / IEC, Technischer Bericht 14143-5 – Informationstechnologie – Software Mess – Functional Size Measurement – Teil 5: Bestimmung der funktionellen Domänen zur Verwendung mit funktionellen Größenmaß, 2004 (R2019)
  14. Bouillon L., Wie einheitliche und messbare Projekte zu handhaben: konzentrieren sich auf Arten und Anforderungen, ZeroUnoWeb, Kann 3 2019, URL: http://tiny.cc/y1tr7y
  15. Bouillon L., Interpretieren DevOps zu messen gut (und am besten) Projekte, PMExpo2017, Präsentation, Oktober 2017, URL:https://www.pmexpo.it/2017/programma/009tk
  16. ISO / IEC, Internationaler Standard 14764:2006 - Software Engineering - Software Life Cycle Processes – Instandhaltung, 2006
  17. ISO / IEC, Internationaler Standard 25023:2016 – System- und Softwareengineering – Systeme und Software-Qualitätsanforderungen und Evaluation (Quadrat) – Die Messung der System- und Software-Produktqualität, Juni 2016
  18. ISO / IEC, Internationaler Standard 19515:2019 – Informationstechnologie – Object Management Group Automatische Function Points (AFP), 1.0, Kann 2019
  19. Woodward S., Function Point Analysis Klärt in einer wolkigen Welt, Metricas 2012, Sao Paulo (Brasilien), November 28-29 2012, URL:http://www.bfpug.com.br/metricas2012/woodward.pdf
  20. Cagley T., Function Points und IOT, oder Wie My Kitchen spioniert On Me!, IFPUG ISMA17, Bangalore (Indien), März 8, 2019

Über den Autor

Luigi Buglione ist der IFPUG Direktor für Konferenz / Bildung und Präsident der Gruppo Utenti Function Point Italia – Italienisch Software-Metriken Verband (GUFPI-ISMA) (www.gufpi-isma.org). Er arbeitet als Mess- und Prozessverbesserung Spezialist bei Ingenieur Ing. inf. SpA in Rom, Italien und Associate Professor an der École de Technologie Supérieure (ETS) - Universität von Quebec, Kanada. Er erreichte mehrere Zertifizierungen, einschließlich IFPUG CFPS, CSP, CSMS, und COSMIC CCFL über Software Measurement. Er ist regelmäßiger Referent auf internationalen Konferenzen über Sw / Dienstleistung Mess-, und Prozessverbesserung und Qualität ist aktiv an den internationalen und nationalen Fachverbänden zu solchen Themen. Er erhielt einen Ph.D. in MIS und ein gewisses Maß cum laude in Economics. Luigi ist zu erreichen unter luigi.buglione@eng.it.

Sie können auch mögen...