2009-09-21 13 views
11

Czy parametr LOC jest poprawny do oszacowania projektu?Czy parametr LOC jest poprawny do oszacowania projektu?

jest tak wiele scenariuszy, w których złożoność zajmuje dużo więcej czasu dla pojedynczej linii kodu, innej niż LOC, co może być sugerowanym parametrem do oszacowania projektu?

Jako że ludzie mówią o funkcjonalnym punkcie programu, czy to oznacza informacje dotyczące użycia?

Próbuję znaleźć jakąkolwiek solidną podstawę do pełnego oszacowania rozwoju oprogramowania, które może składać się z analizy, projektowania, przygotowania do testowania i kodowania, proszę zasugerować?

Odpowiedz

1

Tylko jeśli użyjesz go w odwrotności.

- Edytuj

Ale nie. Nie jest. Jest to w większości bezużyteczny środek i generalnie szkodliwy. Jak zauważyłeś, mniej kodu jest prawie zawsze lepsza od.

Inne rzeczy do sprawdzenia? Cóż, co próbujesz zmierzyć? Jaki wynik chcesz zobaczyć po zmianie rzeczy, które chciałbyś sprawdzić? Jakie decyzje będą podejmowane na podstawie tych zmian?

3

Steve McConnell w szybki rozwój (Microsoft Press, 1996):

ponieważ różne programowanie języki produkować tak różne grzywkę dla danej liczby linii kodu, wiele z branży oprogramowania jest ruchu w kierunku miary o nazwie "punkty funkcyjne" do oszacowania rozmiarów programów o rozmiarach programu . Punkt funkcyjny jest syntetyczną miarą rozmiaru programu opartą na na ważonej sumie liczby wejść, wyjść, zapytań i plików . Punkty funkcyjne są przydatne, ponieważ pozwalają myśleć o rozmiarze programu w języku niezależnym.

Google "Punkt funkcyjny" po więcej informacji.

1

LOC to jedna miara pośrednia do zmierzenia rozmiaru problemu o rozmiarze.

Oszacowanie LOC może być używane, a liczba LOC jest względnie tania w porównaniu z projektami historycznymi. Ale LOC może być problematyczne, jeśli jest używane do czegoś innego niż proxy rozmiaru problemu, jak już wskazano w innych odpowiedziach.

Wielkość problemu jest raczej stała, biorąc pod uwagę wymagania. Z oszacowania wielkości można przejść do szacunków nakładu pracy, harmonogramu i kosztów. To zależy od twoich sterowników planowania, takich jak koszt czy harmonogram. Na podstawie danych historycznych można znaleźć korelację, jak rozmiar problemu przekłada się na wysiłek oraz w jaki sposób inni kierowcy planujący mają dalszy wpływ na wynik. Musisz więc zmierzyć miarę wielkości i wysiłek w porównaniu do innych parametrów i dalej dostosowywać proces szacowania. W literaturze dostępne są niektóre metody LOC-to-wysiłku, ale nie są one bardzo dokładne w twojej domenie, używasz technologii, której używasz, i zespołu, który posiadasz.

Innymi serwerami proxy dla rozmiaru problemu są punkty funkcyjne i punkty fabularne.Moje doświadczenie w zakresie punktów funkcyjnych jest takie, że rzadko są warte wysiłku. Z drugiej strony, punkty fabularne w metodach zwinnych działają bardzo dobrze, ponieważ są celowo abstrakcyjne (unikając w ten sposób wielu problemów z LOC) i mierzone na podstawie sprintu po sprintu, z natychmiastową reakcją na kolejne sprinty.

2

Widząc, że programiści prawdopodobnie spędzają większość swojego czasu na testowaniu zmian, linie kodu nigdy nie są dobrym wskaźnikiem rozmiaru problemu.

Załóżmy, że masz już dużą aplikację - zmiana pojedynczej linii kodu może wydawać się banalna, ale planowanie i wykonanie testu może potrwać kilka tygodni.

Podobnie, dodanie stosunkowo dużej ilości kodu w pojedynczym module o ograniczonym zasięgu, który można łatwo przetestować, może potrwać tylko kilka dni.

* przynajmniej powinny. Jeśli spędzają więcej czasu na pisaniu kodu niż na testowaniu go, to prawdopodobnie jest on pełen błędów. I mam na myśli, ZANIM dotrze do twojego dedykowanego zespołu QA.

1

Nie, nie jest. Powód jest prosty: jeśli tworzysz nową linię kodu podczas rozwoju, czy jesteś o krok bliżej rozwiązania? Jeśli oszacowałeś 1000 linii kodu, aby ukończyć zadanie, czy teraz masz 0,1% do wykonania tego zadania?

Linie kodu mogą być używane jako dane, ale tylko w sensie negatywnym: w przypadku większej liczby linii kodu można założyć, że liczba błędów jest większa. Na podstawie danych historycznych istnieje liniowa korelacja między liniami kodu i liczbą błędów.

Oto kilka przydatnych i mierzalne czynniki, które są warte rozważenia:

  1. Godziny pracy.
  2. Wydane dolary: to jest dobre, ponieważ silnie egzekwuje rzeczywistość, że wolisz znaleźć błędy na pulpicie programisty niż w rękach testera lub klienta).
  3. Kamienie milowe spełnione: czy system jest dostępny dla klientów we właściwym czasie?
  4. Wymagania ukończone: może to być zabawne - a jeśli odkryjesz nowe potrzeby klienta w trakcie projektu?

Krótko mówiąc, wiersze kodu są prawie najgorszymi możliwymi metrykami, jakich można użyć.

0

Jedynym sposobem uzyskania rozsądnych szacunków dotyczących czasu trwania projektu jest CAŁKOWICIE wdrożenie i dostarczenie części wymagań końcowych. Następnie możesz oszacować pozostałe wymagania, porównując ich złożoność z wykonaną pracą.

Powiązane problemy