2009-04-24 11 views
3

Ich wurde gebeten, eine Metrik bezüglich der Größe einer Unternehmensanwendung anzugeben. Die fragliche Anwendung ist eine webbasierte Anwendung und ich bin mir nicht sicher, wie ich ihre Größe quantifizieren soll. Offensichtliche, aber nicht nützliche Metriken wären Codezeilen, Anzahl der Dateien usw. Was sind einige vorgeschlagene Mittel, um die Größe einer Anwendung zu bestimmen, die eine echte Bedeutung liefert?Metrik für Programmgröße

Hinweise zur Anwendung:

  • ASP.NET Web Forms Based C# App
  • Tiered Architektur
  • Alle Datenbank-Interaktion über gespeicherte Prozeduren

Antwort

5

Anzahl der "Seiten" oder " Bereiche ", auf die die Benutzer Zugriff haben werden

Problem: Dies kann fudged werden, indem Teile in verschiedene Seiten oder Abschnitte getrennt werden, wenn es viel sinnvoller wäre, sie zu einer einzigen "Control Center" -Schnittstelle zusammenzufassen.


Anzahl der Klassen

Problem: Dies gilt nicht berücksichtigt die Komplexität (oder Einfachheit) einige Klassen im Vergleich zu anderen. Sie können eine einzelne Klasse haben, die zwei Eigenschaften und eine Methode enthält, während eine andere Klasse hardcore sein kann.


Anzahl der Nicht-Lookup-Tabellen

Problem: Dadurch wird die Komplexität der Software nicht in Betracht ziehen, nur die Datenschicht, die es auf der Oberseite aufliegt. Einige der gleichen Probleme, die mit der Anzahl der Klassen verbunden sind, können auch hier angewendet werden, da einige Tabellen komplexer sind als andere.


Lines of Code

Problem: Dies ist ein ziemlich Standard-Metrik, aber es steckt viel mehr positive Konnotation auf Programme mit vielen Linien, statt effizienter zu fördern und eleganter Code.


Wie viele Arbeitsstunden nahm es

Problem zu entwickeln: Keine zwei Entwickler die gleichen Skillset haben und keine zwei Entwickler werden wahrscheinlich genau die gleiche Menge an Zeit in Anspruch nehmen (oder folgen der gleiche Weg), wenn es darum geht, eine Software zu erstellen. Es kann also einen einzelnen Entwickler genauso lange dauern, bis ein Team von drei weniger erfahrenen Entwicklern die gleiche Menge an Code herausfordert.Außerdem kann der gesamte "Mythische Mann-Monat" beginnen, den Kopf zu heben, wenn Sie beginnen, mehr Menschen für ein Problem einzusetzen, als es wirklich notwendig ist.


Insgesamt Ich denke, das größte Problem mit Metriken ist, dass sie versuchen, und einige quantifizierbare Eigenschaft der Software messen, wenn sie in Wirklichkeit Software über Qualität ist statt Menge, und das ist, wo Metriken wirklich scheitern .

+0

Ich stimme dem zu, außer ich würde die Anzahl der Schnittstellen zu anderen Systemen und Anzahl der Tiers hinzufügen. – ojblass

0

Was sind einige vorgeschlagene Mittel zur Bestimmung der Größe einer Anwendung, die eine echte Bedeutung bieten?

Wenn Sie jemals eine wirklich gute Antwort darauf finden, schreiben Sie es bitte richtig, ok?

Code Metriken fast universell saugen, nach meiner Erfahrung. Einige von ihnen schaffen es, nur schlecht zu sein.

[Addendum]

fair zu sein, ist das Problem nicht so genau, dass "-Code metric saugen", nachdem sie alle nur Messungen (hoffentlich gut definiert sind); Das Problem ist, dass sie nie zu messen scheinen, was die Leute wollen, dass sie messen, aber sie werden benutzt, als hätten sie. Die Zahlen für diesen Missbrauch zu tadeln ist nicht wirklich fair.

+0

Einverstanden. Es gibt Probleme mit jeder einzelnen der grundlegenden Metriken, die ich in meiner Antwort angegeben habe. Ich kann die Antwort bearbeiten, um einige dieser "Probleme" dort einzubringen. – TheTXI

3

SLOC (Quellcodezeilen) ist ein allgemein akzeptiertes Größenmaß.

Ihre Frage nur fragen über die Größe, aber ich wette, dass Sie gebeten werden, mit diesen Messwerten zu kommen, so dass das Management den Umfang der Anstrengung, die notwendig ist, um diese Anwendung zu unterstützen. In diesem Fall würde ich auch auf die Komplexität des Codes achten.

Sie könnten eine Testversion von Understand herunterladen, die mit vielen Programmiersprachen funktioniert, Ihnen die benötigten Messwerte liefert und die kostenlose Testversion lange genug dauert, um die Zahlen zu erhalten, die das Management benötigt.

Was Metriken hier ist das, was ich mir nehmen würde:

zyklomatische Komplexität V (G) ist ein gutes Maß für die Komplexität.

Der SEI Wartbarkeitsindex ist gut, um zu sehen, wie schwierig es sein wird, die Codebasis zu pflegen.

Code zu kommentieren von mindestens 15% und andere notwendige High-Level-und Low-Level-Design-Dokumente. Verstehen Sie, dass die meisten davon veraltet sein werden, aber sie helfen Ihren Leuten immer noch, anzufangen.

Testabdeckung wäre auch etwas anderes zu betrachten. Haben sie überhaupt Unit-Test? Code ist einfacher zu pflegen, wenn Sie eine schöne Unit-Test-Suite haben, die Sie ausführen können, um sich selbst einen "vernünftigen" Sinn zu geben, dass Sie nichts kaputt gemacht haben. 80% Testabdeckung ist normalerweise das Minimum.

0

Eine Metrik kann nur dann eine echte Bedeutung liefern, wenn Sie wissen, wofür sie verwendet wird. Kennen Sie den Zweck der Größenmessung? Wenn nicht, frag.

1

Die Funktion Punktanalysemethode, die ich denke, für mittlere bis große Anwendungen, unabhängig von der Programmiersprache geeignet ist:

http://en.wikipedia.org/wiki/Function_point_analysis

Das Ergebnis der Analyse eine Funktion Punktwert ist, der sein kann verwendet, um die Implementierungszeit zu schätzen. Diese Methode ist ziemlich einfach zu verstehen und zu implementieren (mit einer einfachen Tabelle), erfordert jedoch einige Erfahrung, da einige Schlüsselfaktoren in der Berechnung variabel sind.