• Główny
  • Gry Strzelanki
  • Gry Rpg
  • Gry Strzelanki
  • Gry Symulacyjne
  • Gry Rpg
  • Gry Zręcznościowe
  • Gry
logo
  • Główny
  • Jak oszacować oprogramowanie

Jak oszacować oprogramowanie

Doskonale pamiętam ten dzień, w którym przyjechałem do pracy - pod koniec 2003 roku - było łatwo przed 6 rano. Prowadziłem mały zespół, któremu powierzono prototypowanie środowiska testowego dla propozycji NASA. Stałem tam zdumiony widząc, jak moi dwaj programiści demonstrują całkowicie przeprojektowane środowisko symulacji satelitarnej. Poczekaj - pozwól mi wyjaśnić - w ciągu zaledwie kilku dni - przepisali blisko 30 000 linii FORTRAN i kolejne 4000 linii kodu zespołu. Jak oni to zrobili? Nazywali to :goop:. :Czyścik do rąk?: Zapytałem - raczej zdezorientowany. Nie, odnosili się oni do nowego języka programowania przez LabVIEW (National Instruments) o nazwie :GOOP: - skrót od graficznego programowania obiektowego.

Oprogramowanie Civil Estimate

Tego dnia postanowiłem przestać być programistą. Byłem, w moim wieku :, nie interesowałem się dłużej nadążaniem za najnowszymi paradygmatami programowania (i rodzimym - takim jak: paradygmat :). Zdecydowałem się porzucić przeszłość i objąć moją rolę menedżera programu. Ale teraz, patrząc wstecz, chciałbym zadać jeszcze kilka pytań.

Błąd pomiaru

W 1995 r. Firma badawczo-konsultingowa Boston Stand up opublikowała swój pierwszy raport podsumowujący CHAOS. Raport szybko stał się wizytówką branżową do pomiaru sukcesu lub porażki projektów IT; głównie ze względu na zdumiewający odsetek nieudanych projektów ujawnionych w raporcie. Raport posłużył jako sygnał alarmowy, który wydaje się słyszalny - w raporcie CHAOS z okazji 10. rocznicy ogłoszono, że odsetek nieudanych projektów zmniejszył się o ponad połowę. Niestety, w ciągu zaledwie pięciu lat liczba nieudanych projektów ponownie wzrasta; Raport CHAOS Grupy Standish z 2009 r. wskazuje, że prawie 1 na 4 projekty są skazane na zagładę. Ale dlaczego?

Zgodnie z oryginalnym raportem CHAOS z 1995 r., Aby zwiększyć prawdopodobieństwo powodzenia projektów, należy zmniejszyć złożoność, a oprogramowanie :rozwijać:. Zalecano zredukowanie oprogramowania do mniejszych, łatwiejszych w zarządzaniu segmentów i rozwinięcie go na zewnątrz. Jeśli wierzyć zgłoszonemu spadkowi nieudanych projektów, to wydaje się, że branża programistyczna pracowała nad :rosnącymi: projektami przy użyciu mniejszych elementów (1). Jednak należy również rozumieć, że projekty te składały się z wielu mniejszych elementów, które były łatwiejsze do :rozmiaru:.

W 1995 r. Najczęstszym podejściem do rozmiaru oprogramowania było policzenie linii źródłowych kodu (SLOC) lub policzenie punktów funkcyjnych (choć mniej powszechne). Rozmiary oprogramowania to ugruntowana i dojrzała metodologia obejmująca ponad dwadzieścia lat - z mnóstwem narzędzi dostępnych do zautomatyzowania procesu i dodatkowych wskaźników dostępnych do pomiaru złożoności oprogramowania i prawdopodobieństwa błędów (błędów). Jeśli zrozumiano rozmiar projektu, wówczas zdolność do oszacowania harmonogramu i nakładu można łatwo modelować, stosując poprzednie miary wydajności (i wiele innych parametrów). Prognozując realistyczne oszacowanie na wczesnym etapie cyklu rozwojowego, było znacznie większe prawdopodobieństwo powodzenia projektu (na czas, w ramach budżetu, przy obiecanej funkcjonalności) - a zatem - mniej awarii.

Powrót do przyszłości

To znowu 2003 rok i właśnie powiedziano mi o nowej metodologii, która pozwala każdemu na tworzenie oprogramowania za pomocą komponentów graficznych. To nie było aż tak nowe; w połowie lat 90. do początku XXI wieku języki :wizualne: i :przenośne: zyskały akceptację branży i zaczęły dominować w krajobrazie rozwoju. W ciągu zaledwie kilku lat języki, które mogły zostać :wyprodukowane: przez środowisko, stały się lingua du jour. W końcu, kto mógłby spierać się z ogromną skalą ekonomii, którą narzędzia do wytwarzania oprogramowania mogłyby wygenerować za pomocą programowania :wizualnego:? A szczególnie dla mnie - po trzech dniach oglądania, jak mój zespół wykręcił :GOOP: - byłem bohaterem dla mojego kierownictwa.

Ale czekaj - zwróć uwagę na oś czasu wspomnianego powyżej badania Chaosu i na ponowne pojawienie się błędów oprogramowania. Chociaż nie jestem wielkim zwolennikiem przyczynowości - poświęćmy przynajmniej kilka chwil i zbadajmy potencjalnego przyczynę tendencji w przypadku awarii oprogramowania. Po pierwsze, obraz ze społeczności TIOBE Programming Community (2) - nieoficjalni hodowcy tego, co jest popularne w językach programowania.

Językami o największym wzroście popularności przez pięć lat były: Java, a następnie C #, JavaScript, a następnie Ruby. Niektóre starsze języki również w modzie to Perl, C i Visual Basic. Czemu? Być może dlatego, że większość z tych języków stała się bardziej wyrafinowana, otoczona jest zintegrowanymi środowiskami programistycznymi i jest ustawiona wyłącznie w celu zwiększenia produktywności. Jednym słowem - stały się bardziej :wizualne:. Chociaż tworzenie kodu może być łatwiejsze, nie ma większego znaczenia, w jaki sposób wygenerowany kod powinien być :zwymiarowany:. W rzeczywistości twórcy środowiska pochwalają się tym, że ledwo potrzebuje bawić się pod maską; Rysuj, klikaj i Puf - natychmiastowy kod, który działa.

Rozmiar ma znaczenie

Najważniejszym czynnikiem decydującym o tym, ile czasu, kosztów i wysiłku potrzeba, aby zbudować oprogramowanie, jest zakres (lub rozmiar) tego, co ma zostać zbudowane, a zatem jeden z największych czynników dokładnej oceny. Jak ostrzegł nas Ojciec chrzestny oceny oprogramowania (Barry W. Boehm) - :Największą trudnością w stosowaniu dzisiejszych algorytmicznych modeli kosztów oprogramowania jest problem z oszacowaniem wielkości dźwięku: (3). W jaki sposób estymator mierzy :GOOP: i ile linii kodu wstawianych przez generator kodu jest naprawdę potrzebny? Jaki procent szablonu C ++ możemy usunąć (jeśli się odważymy) i utrzymać klasę zasadniczo stabilną - ale zwięzłą. Jak powiedział kiedyś Mark Twain - :najtrudniejszą częścią pisania jest usunięcie wszystkich dodatkowych słów:.

Czy można już liczyć linie kodu oprogramowania? Nawet przy użyciu najlepszych dostępnych narzędzi do liczenia kodu - czy tak naprawdę nie liczą one wielu linii kodu, które mogą być niepotrzebne? Lub odwrotnie - ile czasu zajęło programiście usunięcie całego kodu, który nie powinien był zostać policzony - a nie było? Podejrzewam, że cały kod pozostaje (chyba że standard o wysokim rygorze, taki jak FAA DO-178B, zweryfikował system).

Odkąd jestem na temat liczenia kodu - co stało się z Adą i FORTRANEM; te niezłomne języki lat 80. i 90., które były łatwe do zliczenia? Niestety, są teraz w rankingu numer 24 i 25; znowu nie ma założenia o przyczynowości. (Ale tak, mój język jest mocno osadzony w policzku). Szacunki wydawały się wtedy o wiele łatwiejsze. Podaj muzykę.

Hmm, w raporcie Standish jest coś, co staje się jasne - zakładając, że nie robię tego, co statystycy nazywają :błędem potwierdzenia:; Chciałbym zaproponować, aby być może branża uczyniła przechwytywanie rozmiaru oprogramowania zbyt skomplikowanego - i w konsekwencji - naszą zdolność do dokładnego tworzenia dobrego kosztorysu. Ostatecznie, jeśli przemysł odchodzi od języków :przeliczalnych: i migruje w kierunku :wizualnych: reprezentacji, to trzeba ustalić jakiś mechanizm, który może dokładnie powiązać wysiłek z wielkością lub odwrotnie..

Oto myśl - pamiętaj o tysiącach dolarów używanych do zakupu wymagań graficznych i narzędzi do projektowania - takich jak IBM Rational Rose, RSA Integration i Rhapsody? Dlaczego nie wykorzystać wyników tych modeli przypadków użycia, aby obliczyć Punkty Przypadków Użytkowania (nieskorygowane), które następnie można wprowadzić do modeli parametrycznych. Czy budujesz :Wzorce projektowe?:. Możesz spędzić nieco więcej czasu i obliczyć Punkty Funkcyjne COSMIC i opublikować je wraz ze wzorcem - w ten sposób można obliczyć koszt wdrożenia wzoru. Co najmniej przed wykonaniem ładowania od wymagań do kodu - spróbuj obliczyć pewien :funkcjonalny: rozmiar, który model parametryczny akceptuje i postępować - następnie wróć później, aby sprawdzić, czy twoje wysiłki na założenia funkcji były prawidłowe.

Społeczność programistów poczyniła ogromny postęp w tworzeniu narzędzi zwiększających produktywność - ale nasze szacunki są błędne, ponieważ zatrzymaliśmy się w połowie drogi! Musimy przegrupować i zidentyfikować rozmiar oprogramowania w odniesieniu do kosztu oprogramowania i zaangażować narzędzia parametryczne do obliczania dokładnych szacunków. Do tego czasu - to czysto domysłowa praca, aby oszacować rozwój nowych produktów i ślepe zaufanie do wiedzy plemiennej podczas modyfikowania istniejących aplikacji. W końcu - ile czasu zajmuje zrobienie GOOP?

1 - Jim Johnson, przewodniczący The Standish Group, mówi, że był tak zaskoczony, że zaobserwował spadek wskaźników sukcesu projektów informatycznych, na który czekał dodatkowe cztery miesiące przed opublikowaniem raportu CHAOS, aby upewnić się, że wyniki są dokładne. Przypisuje wzrost niepowodzeń projektów IT recesji, która według ekonomistów rozpoczęła się w grudniu 2007 r., A kolejne cięcia budżetowe.

2- http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

3 - Inżynieria oprogramowania - Lifetime Wkłady Barry W. Boehma w rozwój oprogramowania, zarządzanie i badania., Edytowane przez Richarda W. Selby, Wiley-IEEE Computer Society Pr; Wydanie Reprint (4 czerwca 2007 r.) Jak oszacować oprogramowanie Niektórzy właściciele domów nie mają problemu z wizją i planem, jeśli chodzi o przebudowę i renowację. Wydaje się, że niektóre osoby mogą ułożyć plan, po wymyśleniu ogólnego pomysłu na renowację, a potem przejrzeć ten plan bez większego wsparcia. Ale nie dotyczy to większości właścicieli domów. W tym miejscu pomocne może być oprogramowanie do naprawy domu.

Podczas gdy żaden program komputerowy nie jest idealny dla każdej sytuacji, większość właścicieli domów będzie w stanie znaleźć programy do planowania i oprogramowanie do szacowania kosztów, które będą bardzo pomocne w tym, aby projekt przebudowy / renowacji przebiegał sprawniej. Może to być prawda dla osób, które są typu :zrób to sam: i dla tych, którzy chcą dowiedzieć się o kosztach przed oddaniem projektu profesjonalistom..

Niektórzy właściciele nieruchomości, którzy chcą wykonać bardzo proste przebudowy lub po prostu ulepszyć coś w domu, mogą wybrać najprostszy program do planowania i kalkulacji kosztów. Mogą one działać całkiem dobrze w wielu sytuacjach. Istnieją jednak profesjonalne wersje większości oprogramowania do przebudowy domu, zarówno do planowania, jak i do szacowania kosztów. Na początku mogą one być nieco droższe, ale dadzą właścicielowi domu jeszcze kilka dodatkowych opcji (i być może bardziej szczegółowe oszacowanie kosztów).

Oczywiście, jeśli właściciel domu nie planuje wykonać żadnej pracy i nie jest zaniepokojony szczegółowymi kosztami, oprogramowanie planistyczne i finansowe może nie być konieczne. Większość profesjonalistów, którzy pracują nad zadaniami remodelowania, ma oprogramowanie komputerowe do planowania i szacowania. Ci, którzy zwykle nie mają wystarczającego doświadczenia, aby zająć się pierwotnymi planami, oszacować koszty pracy i materiałów i tak dalej.

Kilka podstawowych pomysłów na temat tego, czego szukać w oprogramowaniu do przebudowy domu, pomoże sprawnie rozpocząć wczesne etapy projektu. Pamiętaj, że to oprogramowanie do planowania / szacowania jest zwykle zaprojektowane do użytku przed każdym cięciem drewna lub wbijaniem jakichkolwiek gwoździ. Będzie to ważne, gdy właściciel domu lub inna osoba pomagająca w projekcie zacznie kupować materiały. Większość programów do planowania i kosztorysowania pozwala na wydrukowanie listy materiałów, a nawet zapewnia raport całego projektu. Ważne jest również upewnienie się, że wstępny plan i kosztorys są dostępne, zanim właściciel domu powróci do oprogramowania rysunków, planów pięter i szczegółów budżetu. Generalnie proces planowania i szacowania powinien przebiegać powoli i w kilku krokach.

Istnieje kilka całkiem dobrych wolnych programów. Kilka z nich można pobrać ze stron internetowych. Należy zadbać o to, aby typ oprogramowania najlepiej pasował do oryginalnego pomysłu / wizji projektu przebudowy. Nawet przy najstaranniejszym planowaniu i najlepszym oprogramowaniu będą wyzwania i zmiany (niektóre można przewidzieć, inne nie). W większości przypadków pomocne może być samo użycie oprogramowania. Używanie odpowiedniego oprogramowania do wykonania zadania, czy to przebudowa łazienki czy po prostu utworzenie stołu warsztatowego może być różnicą między płynnie płynącym projektem a takim, który nęka problem.

Powiązane Artykuły

12 gier takich jak Uncharted 4: A Thief's End na PS2

9 gier takich jak Starcraft 64 dla Mac OS

7 Gry jak Manhunt 2 na PS4

10 gier takich jak Mystical Eyeball na PC

Gry takie jak Crazy Machines Elements na system PS4

Jak korzystać z internetowego biuletynu w celu zwiększenia sprzedaży i potencjalnych klientów

3 Games Like Just Cause 3 na system PSP

5 gier takich jak UnReal World dla systemu Linux

6 gier takich jak Dungeon Quest dla systemu Linux

Gry takie jak Age of Empires III: Pełna kolekcja na Xbox One

Poprzedni Post
5 gier, takich jak kłopoty w rezydencji na Androida
Następny Post
2 gry takie jak Mega Brain Boost na PC

Kategoria

  • Gry Strzelanki
  • Gry Strzelanki
  • Inny
  • Gry
  • Inne Usługi Online
  • Gry Rpg
  • Gry Platformowe
  • Symulacja Sportowa

Zaleca

Gry takie jak nadchodzące na górę na PS3 Gry Symulacyjne

Gry takie jak nadchodzące na górę na PS3

Gry takie jak Lakeview Cabin na Xbox 360 Gry

Gry takie jak Lakeview Cabin na Xbox 360

35 gier takich jak Buzz! Quiz World Puzzle Puzzle

35 gier takich jak Buzz! Quiz World

Jak usunąć zabrudzenia z betonu

Jak usunąć zabrudzenia z betonu

Popularne Wiadomości

  • Gry takie jak Dual Universe na Nintendo Wii

    Gry takie jak Dual Universe na Nintendo Wii

    Jak korzystać z Adwords, aby zwiększyć ruch w blogu

    Jak korzystać z Adwords, aby zwiększyć ruch w blogu

Biuletyn

Zapisz Się Do Newslettera

Trend-top.com © Copyrights 2019. All rights reserve

Jak oszacować oprogramowaniePrivacy policy