Personal Software Process cz. I
|
|
- Konrad Nawrocki
- 9 lat temu
- Przeglądów:
Transkrypt
1 Personal Software Process cz. I Witam serdecznie! Tematem tego wykładu bdzie metodyka wytwarzania oprogramowania zwana Personal Software Process, czyli Osobisty proces programistyczny. Na slajdzie umieciłem zdjcie Pittsburgha, gdy metodyka ta podobnie, jak CMMI jest sztandarowym produktem Software Engineering Institute majcego sw siedzib włanie w Pittsburghu, w stanie Pensylwania. W dalszej czci wykładu bd uywał oryginalnej nazwy Personal Software Process lub skróconej PSP. 1
2 Plan wykładów! " # $ $% & ' (! ) * +, " # $ $% & ' (! ) * +,!!! - %. & ' / & & % % - 0 1) ) ) % * 8 " # % % 9 : " & % - % ; Personal Software Process, cz. I (2) W trakcie ostatnich dwóch wykładów mówilimy o metodyce zarzdzania przedsiwziciami PRINCE2. Personal Software Process jest w pewnym sensie konkurencyjn metodyk wzgldem PRINCE2 z tym, e: Dotyczy pojedynczej osoby a nie całego zespołu. Jest silnie ukierunkowany na tworzenie oprogramowania. Problematyce PSP powicimy dwa wykłady. 2
3 Syndrom LOOP Loop Late (póno) Over budget (przekroczony budet) Overtime (nadgodziny) Poor quality (kiepska jako) Personal Software Process, cz. I (3) Zmor wielu kierowników przedsiwzi programistycznych jest LOOP. Loop po angielsku oznacza ptl. Ale LOOP oznacza te cztery podstawowe bolczki zwizane z wytwarzaniem oprogramowania. Oprogramowanie jest dostarczane póno, bardzo czsto znacznie póniej ni obiecywał to na pocztku wykonawca std L, jak Late. Ponadto bardzo czsto dochodzi do przekroczenia budetu przedsiwzicia std pierwsze O, jak Over budget. Programici w bardzo wielu firmach pracuj w nadgodzinach, rezygnujc z ycia osobistego std drugie O, jak Overtime. I mimo ich powicenia produkt ich pracy jest czsto (w ocenie uytkowników kocowych) kiepskiej jakoci std P, jak Poor quality. 3
4 Wprowadzenie Watts Humphrey : IBM Corporation, Director of Programming Quality and Process Fellow of the Software Engineering Insititue (SEI) at Carnegie Mellon University A Discipline for Software Engineering, Addison Wesley, 1995 Personal Software Process, cz. I (4) Specjalici cigle poszukuj metod i narzdzi, które miałyby zaradzi syndromowi LOOP. Jedn z takich propozycji jest PSP. Autorem metodyki PSP jest Watts Humphrey. Przez 27 lat pracował w firmie IBM, gdzie był m.in. dyrektorem ds. jakoci i procesu programowania. W drugiej połowie lat 80-tych przeszedł do SEI. W 1995 roku opublikował ksik pt. A Discipline for Software Engineering (Dyscyplina w inynierii oprogramowania), w której przedstawił szczegółowy opis metodyki PSP. Wykład opiera si na tej ksice. 4
5 Czym jest PSP? PSP: samodoskonalenie PSP: jak podejmowa i wypełnia zobowizania PSP: formularze + procedury Czego brak: inynieria wymaga, zarzdzanie konfiguracj, zarzdzanie ryzykiem Personal Software Process, cz. I (5) Czym jest PSP? Jest to metoda samodoskonalenia dla programistów. Uczy te, jak podejmowa zobowizania i je wypełnia. Ale przez wiele osób PSP jest postrzegana przede wszystkim jako zestaw formularzy i procedur. PSP nie obejmuje wszystkich zagadnie zwizanych z wytwarzaniem oprogramowania. Nie proponuje adnych metod zwizanych z inynieri wymaga PSP jest zorientowane na programist i zakłada si, e specyfikacja wymaga jest ju gotowa lub na tyle prosta, e bardziej zaawansowane metody inynierii wymaga nie s potrzebne i programista moe j sam napisa. Nie ma te w PSP propozycji praktyk dotyczcych zarzdzania konfiguracj i niewiele si mówi o zarzdzaniu ryzykiem. 5
6 Wprowadzenie Personal Software Process, cz. I (6) Jak ju wspomniałem, metodyka PSP została stworzona przez pracownika SEI. Jak pamitamy z wykładu dotyczcego CMMI, w SEI powstał te 5-poziomowy model dojrzałoci CMMI. Nic wic dziwnego, e PSP swoj struktur przypomina CMMI. PSP składa si z czterech poziomów, z których trzy pierwsze maj po dwie warstwy. 6
7 Wprowadzenie Rozwój cykliczny Szablony projektowe Przegldy kodu i proj. Planowanie zada i harmon. Szacowanie rozmiaru + raport tst Stand. kodu + Pomiar rozm. + PS Rejestry czasu i defektów 3.Cykliczny 2.Jakoci 1.Planowania 0.Bazowy Personal Software Process, cz. I (7) Najniszy, zerowy, poziom nazywa si Bazowym. Pierwsza jego warstwa uczy jak korzysta z rejestru czasu pracy i rejestru defektów. Druga warstwa poziomu Bazowego obejmuje standard kodowania, pomiar rozmiaru tworzonego oprogramowania i propozycj samodoskonalenia (PS). Drugi poziom dotyczy planowania. Pierwsza jego warstwa obejmuje szacowanie rozmiaru tworzonego oprogramowania i raporty dotyczce testowania. Druga warstwa jest zwizana z planowaniem zada i tworzeniem harmonogramów. Trzeci poziom jest zwizany z jakoci tworzonego oprogramowania. Pierwsza jego warstwa dotyczy przegldów kodu i projektu oprogramowania. W ramach drugiej warstwy Watts Humphrey proponuje korzystanie z opracowanych przez niego szablonów projektowych obejmujcych cztery notacje dotyczce czterech rónych aspektów oprogramowania. Wobec pojawienia si w 1997 roku jzyka UML, notacje zaproponowane przez Humphrey a straciły na atrakcyjnoci. Z drugiej strony nie trudno zmodyfikowa PSP tak, aby oprze szablony projektowe na jzyku UML. Najwyszy poziom dotyczy tworzenia przez pojedynczego programist duego oprogramowania rzdu tysicy linii kodu. Na tym poziomie Watts Humphrey proponuje stosowanie podejcia cyklicznego (inni nazywaj to podejciem iteracyjnym). 7
8 Plan wykładu < < " # < " # $ < " % < < & #% < % Personal Software Process, cz. I (8) Szczegółowe omawianie PSP rozpoczn od najniszego poziomu, czyli od poziomu Bazowego. Przedstawi proces bazowy wchodzcy w skład PSP. Potem zaprezentuj rejestry czasu i defektów, które odgrywaj w PSP bardzo wan rol. Nastpnie przejd do zagadnie pomocniczych dotyczcych definicji rozmiaru kodu, standardu kodowania i propozycji samodoskonalenia. Zakocz ten pierwszy z dwóch wykładów na temat PSP przedstawieniem metody PROBE słucej do szacowania rozmiaru kodu. 8
9 Plan wykładu < < " # < " # $ < " % < < & #% < % Personal Software Process, cz. I (9) Zacznijmy zatem od przedstawienia procesu bazowego. 9
10 Proces bazowy Skrypty & & % Planowanie Projekt Kodowanie Kompilacja Testowanie Postmortem ' Rej. Podsum. przeds. " & & % Personal Software Process, cz. I (10) Jak ju wspomniałem, w PSP zakłada si, e wymagania s ju gotowe (np. spisane przez analityka) lub te na tyle proste, e programista sam moe je sformułowa na podstawie opisu problemu. Na tej podstawie programista planuje swoj prac, opracowuje projekt i pisze kod. Po zakoczeniu kodowania przechodzi do kompilacji. W trakcie kompilacji mog si ujawni róne błdy składniowe, które programista musi usun. Kompilacja koczy si po pierwszej udanej kompilacji. Potem nastpuje testowanie. Obejmuje ono równie usuwanie błdów wykrytych w trakcie testowania. Ostatni faz jest tzw. postmortem. W trakcie tej fazy nastpuje podsumowanie dowiadcze zebranych w trakcie pracy nad oprogramowaniem. Dla kadej fazy Watts Humphrey opracował skrypt opisujcy potrzebne dane wejciowe, procedur zgodnie z któr naley t faz wykona oraz dane wyjciowe, bdce wynikiem tej fazy. Dane charakteryzujce przebieg kadej fazy umieszcza si w tzw. rejestrach, których szablony równie zostały opracowane przez Wattsa Humphrey ego. S to głównie rejestry czasu i rejestry defektów. Za chwil nieco dokładniej o nich powiem. W fazie postmortem dane zawarte w rejestrach zostaj przeanalizowane i przedstawione w formie Raportu podsumowania. Raport ten jest odpowiednikiem Raportu dowiadczenia w PRINCE2 (Lessons Learned Report). 10
11 Plan wykładu < < " # < " # $ < " % < < & #% < % Personal Software Process, cz. I (11) W PSP s wykorzystywane dwa podstawowe rejestry: rejestr czasu i rejestr defektów. Omówi teraz pierwszy z nich. 11
12 Rejestr czasu Inynieria oprogramowania Klasyczne praktyki zarzdzania czasem Obserwuj zuycie czasu. Zasady skutecznego działania (75) Personal Software Process, cz. I (12) Rejestr czasu jest realizacj jednej z dobrych praktyk zarzdzania czasem, zgodnie z któr naley obserwowa zuycie czasu (mówilimy o tych sprawach w ramach przedmiotu Inynieria oprogramowania, na wykładzie powiconym zasadom skutecznego działania). 12
13 Rejestr czasu % ( ) ( & * Faza czy zadanie? Personal Software Process, cz. I (13) Przykładowy szablon rejestru czasu (dokładniej mówic, rejestru czasu pracy) jest przedstawiony na slajdzie. U góry jest miejsce na nazw programu i na dat. Załómy, e 20-tego maja pracowałem nad programem dotyczcym kolorowania grafów, który nazwałem KolorGraf. Wówczas w górnym wierszu rejestru czasu wpisałbym nazw programu i dat tak, jak to pokazano na slajdzie. Dane wpisywane w kolejnych kolumnach rejestru czasu pracy oznaczaj: Start Godzina rozpoczcia pracy. Przerwa Przerwy w pracy liczone w minutach. Stop Godzina zakoczenia pracy. Efektywny czas pracy liczony jako rónica midzy Stop a Start, pomniejszona o przerwy. Faza Nazwa fazy pracy nad programem lub jej skrót (Plan, Projekt, Kod itd.). Uwagi Dowolny komentarz. Najczciej jest to komentarz do przerwy w pracy (podaje z czego wynikała przerwa). Załómy, e o godzinie 9:10 rozpoczłem planowanie pracy nad programem KolorGraf. Wówczas w kolumnach Start i Faza wpisałbym dane pokazane na slajdzie. O 9:15 wpada szef i proponuje mi wyjazd na konferencj dotyczc inynierii oprogramowania. Nasza rozmowa trwa 9 minut. Po wyjciu szefa wpisuj w kolumnach Przerwa i Uwagi odpowiedni informacj. O 9:30 przychodzi kolega i prosi o poyczenie ksiki na temat specyfikacji wymaga za pomoc przypadków uycia. Poszukanie ksiki i zwizana z tym krótka rozmowa trwa 7 minut. Po wyjciu kolegi aktualizuj rejestr czasu tak, jak to pokazano na slajdzie. O 9:57 skoczyłem planowanie i wpisuj t godzin w kolumnie Stop. Jeli rejestr czasu jest zrealizowany za pomoc odpowiednio przygotowanego arkusza kalkulacyjnego, to efektywny czas pracy zostanie automatycznie obliczony. W przeciwnym razie musiałbym sam ten czas obliczy i wpisa go w kolumnie. Mona to zrobi od razu, albo w fazie postmortem. Przy okazji warto wspomnie, e w Internecie mona znale programy wspomagajce wpisywanie danych do rejestru czasu. Wystarczy nacinicie odpowiedniego klawisza myszy i dane na temat czasu s automatycznie zapamitywane. Załómy, e o 10:55 powtórnie zabrałem si za prac nad programem KolorGraf i do 12:50 projekt tego programu był gotowy. W midzyczasie miałem drug rozmow z szefem, która zajła mi 20 minut. Wówczas drugi wiersz rejestru czasu zostałby wypełniony w sposób taki, jak na slajdzie. Rejestr czasu przedstawiony na slajdzie ma pewn wad. Jest do wielu programistów, którzy nie pracuj zgodnie z fazami zaproponowanymi przez Wattsa Humprey a. Napisz fragment kodu, zaraz go skompiluj i przetestuj, potem dodadz nastpny fragment kodu itd. W trakcie pracy s tak skupieni na aspektach algorytmicznych, e nie maj ochoty ani energii prowadzi notatek na temat charakteru pracy, jaki w danej chwili wykonuj (nie obchodzi ich, czy w tej chwili jest to kodowanie, kompilacja, czy testowanie). W takiej sytuacji wersja rejestru czasu zaproponowana przez Wattsa Humphrey a jest nazbyt szczegółowa. 13
14 Rejestr czasu ) ( & + "#! Faza czy zadanie? Personal Software Process, cz. I (14) Dlatego warto zawsze podchodzi to tego typu spraw w sposób proaktywny i w razie potrzeby dostosowywa takie narzdzia, jak rejestr czasu do aktualnych potrzeb. Na przykład zamiast fazy mona wpisywa nazw zadania. Wtedy formularz rejestru czasu bdzie bardziej zwizany z danym dniem, a nie z programem. Na slajdzie jest przedstawiony rejestr czasu dotyczcy dnia 20. maja Jak wida, pojawił si tam wiersz dotyczcy zebrania na temat reorganizacji. Natomiast zniknła informacja nt. fazy pracy nad programem KolorGraf wida tylko ile czasu łcznie powiciłem na prac nad tym programem. 14
15 Plan wykładu < < " # < " # $ < " % < < & #% < % Personal Software Process, cz. I (15) Przejd teraz do omówienia rejestru defektów. 15
16 Rejestr defektów % ( ) ( / &. & - &, & & $%&'( Personal Software Process, cz. I (16) Przykładowy szablon tego rejestru został przedstawiony na slajdzie. W górnej czci formularza wpisuje si nazw programu (np. KolorGraf) i dat. W kolumnie Lp (Lp od Liczba Porzdkowa ) wpisuje si kolejny numer defektu. W ostatniej kolumnie, Opis, umieszcza si słowny opis znalezionego błdu, np. Brak rednika. W kolumnie Typ znajduj si liczby charakteryzujce typ błdu. Ta charakterystyka błdów jest oparta na klasyfikacji błdów zaproponowanej przez Rama Chillarege a. 16
17 Rejestr defektów ), 0 ), 1 " %,!A 23() % #0 % % 1 43( 53(! #0 # 1 63( & 0 # 1 7 3(! #0 $ #& % 1 83( & 0 % 9 : & $& 1 ; 3() 0 :< 1 =3(* #0 #& 9 1 > 3( % 0? : & % 9< 1 233(@ 0 % & 1 Personal Software Process, cz. I (17) W 1992 roku Ram Chillarege i jego koledzy z firmy IBM opublikowali w renomowanym czasopimie amerykaskim IEEE Transactions on Software Engineering tzw. ortogonaln klasyfikacj defektów programistycznych. Wyrónili dziesi głównych klas defektów. Po pierwsze, defekty mog by w dokumentacji zwizanej z oprogramowaniem. W przypadku samodokumentujcych si programów informacja o charakterze dokumentacyjnym jest zawarta głównie w komentarzach, ale take w komunikatach generowanych przez program. Po drugie, moemy mie do czynienia z błdami o charakterze składniowym (np. brak rednika na kocu instrukcji jzyka C). Mog te by błdy dotyczce integracji oprogramowania. Mog one dotyczy biblioteki podprogramów, zarzdzania wersjami i tym podobnych spraw. Kolejn grup stanowi defekty zwizane z instrukcj przypisania. Mog polega na niewłaciwej deklaracji zmiennej, czy te niewłaciwym rozumieniu zakresu zmiennej (która instancja zmiennej X jest w danym miejscu widoczna?). Defekty interfejsu najczciej dotycz deklaracji nagłówka funkcji (lub, ogólnie mówic, podprogramu) i jej parametrów. W programach wystpuje rónego rodzaju sprawdzanie (ang. checking). Defekty dotyczce sprawdzania mog polega np. na niewłaciwych komunikatach o błdach lub niewłaciwym sposobie sprawdzania danej zalenoci. Mog te by błdy dotyczce struktur danych i ich zawartoci. Inn kategori błdów wyodrbnion przez Chillarege a i jego kolegów s błdy dotyczce funkcji (podprogramów). S to rónego rodzaju błdy w obrbie funkcji, które nie s błdami interfejsu (50), czy te błdami dotyczcymi instrukcji przypisania (40). Mog to by np. defekty zwizane z logik przetwarzania w obrbie funkcji, niewłaciwym zorganizowaniem wywoła rekurencyjnych, czy te defekty dotyczce ptli (np. ptle z nieskoczon liczb powtórze). Mog te by defekty o charakterze systemowym. Na przykład mog w opracowywanym programie (systemie) istnie zalenoci czasowe. Defekt moe polega na tym, e czasami odpowied systemu zostaje wypracowana zbyt póno i która z tych zalenoci nie zostaje spełniona (jest to szczególnie wane we wszelkiego typu systemach sterowania). Mog te by problemy z dostpna pamici (program moe da wikszej pamici ni dostpna w systemie). Ostatnia kategoria dotyczy defektów rodowiska. Mog to by błdy kompilatora (tak jest - zdarzaj si błdy równie w kompilatorach), czy te błdy zawarte w testach. Tutaj te Chillarege umiecił błdy zwizane z projektem (design) całego oprogramowania (np. niewłaciwy podział kodu na moduły). 17
18 Rejestr defektów % ( ) ( / &. & - &, & & $%&'( 43( 63( & 0 # 1 7 3(! #0 $ #& % 1 ; 3() 0 :< 1 =3(* #0 #& 9 1 Personal Software Process, cz. I (18) Brak rednika jest typowym błdem składniowym, std te w kolumnie Typ wpisano warto 20. W kolumnie Wpro (Wpro jak WPROwadzenie) umieszczane s dane wskazujce faz pracy nad programem, w której wprowadzono defekt. 18
19 Rejestr defektów - % Planowanie Projekt Kodowanie Kompilacja Testowanie Postmortem ' Personal Software Process, cz. I (19) Jak ju wczeniej wspomniałem, w PSP proces tworzenia oprogramowania składa si z szeciu faz. Ostatnia faza, Postmortem, polega na podsumowaniu całego procesu i ma charakter administracyjny. Zatem w tej fazie nie mona wstawi adnego błdu do oprogramowania (oprogramowanie jest ju gotowe). 19
20 Rejestr defektów - % Planowanie Projekt Kodowanie Kompilacja Testowanie Postmortem ' ( ) (), (, ( &. (. Personal Software Process, cz. I (20) Zatem w rachub wchodzi pi pierwszych faz. Humphrey oznacza fazy całymi wyrazami. Myl, e mona te uy pojedynczych liter pochodzcych od ich angielskich nazw tak jak to pokazano na slajdzie. Jest kłopot z kompilacj, bo Coding i Compilation zaczynaj si na C. Mona przyj, e M bdzie oznacza kompilacj. 20
21 Rejestr defektów % ( ) ( / &. & - &, & & * ) $%&'( 43( 63( & 0 # 1 7 3(! #0 $ #& % 1 ; 3() 0 :< 1 =3(* #0 #& 9 1 ( ) (), (, ( &. (. Personal Software Process, cz. I (21) Jeli rednik pominito w fazie kodowania, to w kolumnie Wpro powinna si pojawi litera C oznaczajca faz kodowania. Kolumna Usu (jak USUnicie) pokazuje faz, w której dany błd usunito. Jak wida, brak rednika usunito w fazie kompilacji. W kolumnie Czas odnotowuje si czas, jaki był potrzebny na zidentyfikowanie i usunicie danego błdu. Jak wida, w przypadku braku rednika wystarczyła 1 minuta by to wykry (za pomoc kompilatora) i usun. 21
22 Rejestr defektów % ( / &. & - &, * ) * ) & ) ( & $%&'( $%+!%, 43( 63( & 0 # 1 7 3(! #0 $ #& % 1 ; 3() 0 :< 1 =3(* #0 #& 9 1 ( ) (), (, ( &. (. Personal Software Process, cz. I (22) W trakcie kompilacji (Usu = M) zauwaono i usunito drugi błd (Lp = 2) polegajcy na braku deklaracji zmiennej (jest to błd składniowy, std Typ = 20). Programista pominł deklaracj zmiennej w trakcie kodowania, std Wpro = C. Usunicie tego błdu zajło 1 minut. 22
23 Rejestr defektów % ( / &. & - &, * ) * ) ) ) & ) ( & $%&'( $%+!%, $%&-( 43( 63( & 0 # 1 7 3(! #0 $ #& % 1 ; 3() 0 :< 1 =3(* #0 #& 9 1 ( ) (), (, ( &. (. Personal Software Process, cz. I (23) Czasami tak si, niestety, zdarza, e usuwajc jeden błd wprowadzamy inny. Nasz programista wprowadzajc brakujca deklaracj zmiennej (by usun defekt nr 2) zapomniał wprowadzi przecinek oddzielajcy nazwy zmiennych midzy sob i tak powstał defekt nr 3. Jeli taka sytuacja ma miejsce, to zgodnie z PSP wpisujemy do kolumny Popr numer defektu, w którego trakcie usuwania wprowadzilimy dany defekt. Poniewa defekt nr 3 powstał w trakcie usuwania defektu nr 2, zatem w ostatnim wierszu Popr = 2. 23
24 Rejestr defektów % ( ) ( / &. & - &, & & * ) $%&'( * ) $%+!%, ) ) $%&-( Personal Software Process, cz. I (24) Wydaje mi si, e rejestr defektów zaproponowany przez Humphrey a jest troch nadto skomplikowany i zbyt detaliczny. To prawda, e jak bdziemy mieli dane dotyczce typu kadego defektu, fazy jego wprowadzenia i usunicia oraz czasu, jaki zajło jego usunicie, to charakterystyka procesu programowania bdzie bardzo dokładna. Ale, jak si przekonamy, w samym PSP nie ma mechanizmów, które robiłyby uytek z tych danych. Dlatego te uwaam, e warto pomyle nad uproszczeniem rejestru defektów. 24
25 Uproszczony rejestr defektów % ), B C &.%/!%!#01%234,%2534% Personal Software Process, cz. I (25) Rejestr defektów mona by potraktowa, jako rejestr dowiadczenia w PRINCE2 (Lessons Learned Log). Zatem powinny do niego trafia nie drobne defekty, których poprawienie jest oczywiste, lecz takie, które kosztowały sporo czasu. Na slajdzie pokazana jest propozycja uproszczonego rejestru defektów. Zawiera on jedynie cztery kolumny, do których wpisuje si nazw programu, dat wykrycia błdu, czas jaki zajło jego poprawianie (liczony nie w minutach, lecz w godzinach, bo chodzi nam o czasochłonne defekty) i opis defektu. 25
26 Plan wykładu < < " # < " # $ < " % < < & #% < % Personal Software Process, cz. I (26) Zastanówmy si teraz, jaka miara rozmiaru kodu bdzie najwłaciwsza z punktu widzenia PSP. 26
27 Rozmiar kodu & % #, #, D / /, /, Personal Software Process, cz. I (27) Generalnie miary oprogramowania mona podzieli na funkcjonalne i bazujce na cechach kodu. Miary funkcjonalne opieraj si na specyfikacji wymaga i (ewentualnie dodatkowo) na załoonej architekturze systemu. Najbardziej znan miar funkcjonaln s punkty funkcyjne opracowane w firmie IBM przez Allana Albrechta pod koniec lat 70-tych ubiegłego wieku. Jest to do skomplikowana technika pomiaru oprogramowania uwaa si, e jej opanowanie wymaga około roku dowiadcze z mierzeniem rónego typu programów. Przykładem miary bazujcej na cechach kodu moe by tzw. złoono cyklomatyczna znana równie jako miara McCabe a. Tutaj rozmiar oprogramowania jest mierzony liczb rozgałzie w programie. Miara ta jest zdefiniowana w prosty i jasny sposób tak, e nawet pocztkujcy programista jest w stanie, w krótkim czasie, napisa dla danego jzyka program obliczajcy t miar. Jednake najprostsz i (prawdopodobnie włanie dlatego) najbardziej popularn miar kodu s linie kodu. Oznacza si je jako LOC, od angielskiego Lines of Code. W kontekcie PSP bardzo nam zaley na szacowaniu pracochłonnoci, std te bd nas interesowały tylko te linie kodu, które zostały napisane przez programist tzw. ródłowe linie kodu, w skrócie SLOC od angielskiego Source Lines of Code. Linie kodu, które zostały wygenerowane przez takie narzdzia jak YACC nie bd nas interesowały. 27
28 Rozmiar kodu " % E!F,. " F432> > 4 & (GG % G& G % G> 4 & G& G43 > 4 & Personal Software Process, cz. I (28) Oczywicie, kada miara musi by dobrze okrelona. Naley zatem precyzyjnie okreli, jak bd liczone linie kodu. Czy na przykład bd wliczane puste linie, linie zawierajce tylko komentarz, linie zawierajce tylko nawiasy klamrowe w jzyku C lub te tylko słowa BEGIN i END w Pascalu itd. Robert Park z SEI opracował bardzo dokładn metod definiowania miary oprogramowania opartej na liniach kodu na slajdzie jest podany adres raportu zawierajcego opis tej metody. Jeli linie kodu nie bd miar produktywnoci programisty (wykorzystywan np. przez jego szefa) lecz bd wykorzystywane przez samego programist do szacowania pracochłonnoci, to uwaam, e mona przyj jako miar fizyczne linie kodu ródłowego. Jest to bardzo prosta miara - wystarczy przej na koniec pliku i wikszo edytorów pokae nam numer ostatniej linii. Jeeli styl kodowania (tzw. standard kodowania, o którym bdziemy za chwil mówi) bdzie przez cały czas ten sam, to ta miara mimo, i tak prosta nie powinna wnosi istotnie wikszego błdu do szacowania, ni bardziej wyrafinowane definicje. 28
29 Plan wykładu < < " # < " # $ < " % < < & #% < % Personal Software Process, cz. I (29) Przejdmy teraz do omówienia standardu kodowania. Ma on dwojakie znaczenie: z jednej strony zmniejsza błd szacowania pracochłonnoci w oparciu o fizyczne linie kodu ródłowego, a z drugiej strony zwiksza czytelno programów, przez co w sposób poredni przyczynia si do podniesienia ich jakoci. 29
30 Standard kodowania /*************************************************************/ /* Program: KolorGraf */ /* Autor: Jerzy Nawrocki */ /* Data: */ /* Funkcja: Program koloruje wezly podanego grafu nieskiero- */ /* wanego w taki sposób, aby kazda para wezlow */ /* polaczonych lukiem miala róny kolor. */ /* Wejscie: Liczba naturalna N>0 okreslajaca liczbe wezlow. */ /* Sekwencja par liczb A,B (0 < A,B <= N). Para taka*/ /* oznacza, ze wezly A,B sa polaczone lukiem. */ /* Wyjscie: Minimalna liczba potrzebnych kolorow */ /*Efekt ub: Brak */ /* Uwagi: Program koloruje graf metoda brutalnej sily. */ /*************************************************************/ Personal Software Process, cz. I (30) Standard kodowania powinien zawiera ustalenia odnonie do nagłówka programu. Nagłówek prezentowany na slajdzie jest moj modyfikacj nagłówka proponowanego przez Wattsa Humphrey a. Zawiera on siedem pól. Pole Program okrela nazw programu. Ta nazwa bdzie si te pojawia w rejestrach czasu i defektów. Program prezentowany na slajdzie nazywa si KolorGraf. Pole Autor podaje imi i nazwisko osoby, która napisała ten program. W tym przypadku jest to Jerzy Nawrocki. Pole Data pokazuje dat rozpoczcia prac nad kodem programu. Jak wida, prac nad kodem programu KolorGraf rozpoczto 20 maja Data opracowania ostatniej wersji programu, która te czsto jest potrzebna, bdzie dostpna automatycznie, jako data zapisania pliku z programem. Pole Funkcja zawiera moliwie krótk specyfikacj programu. Jak wida, program KolorGraf koloruje wzły podanego grafu nieskierowanego w taki sposób, aby kada para wzłów połczonych łukiem miała róny kolor. Jeli specyfikacja byłaby bardziej złoona, to mona ogólnie napisa czego program dotyczy i poda np. odwołanie do strony www zawierajcej dokładny opis problemu. W polu Wejcie umieszcza si opis danych wejciowych i ich roli w programie. W przypadku programu prezentowanego na slajdzie mamy na wejciu liczb naturaln N wiksz od zera, okrelajc liczb wzłów w grafie, a ponadto sekwencj par liczb A, B (kada z tych liczb jest wiksza od zera i nie wiksza ni N). Para taka oznacza, e wzły o numerach A, B s połczone łukiem. Pole Wyjcie opisuje dane bdce wynikiem działania programu. W naszym przypadku jest to minimalna liczba kolorów potrzebnych do pokolorowania grafu. Pole Efekt ub. zawiera opis efektu ubocznego (na przykład opis zmian w bazie danych, jakie nastpuj po wywołaniu programu). Jak wida, wykonanie programu KolorGraf nie powoduje powstania adnych efektów ubocznych, czyli jest to prosty program transformujcy dane wejciowe w dane wyjciowe. W ostatnim polu, Uwagi, umieszcza si uwagi na temat implementacji. Moe to by wskazanie algorytmu przez jego nazw (jeli jest to algorytm ogólnie znany) lub te odwołanie si np. do artykułu opisujcego dany algorytm. W przypadku programu KolorGraf zastosowano metod brutalnej siły, czyli przeglda si wszystkie moliwe pokolorowania grafu. 30
31 Standard kodowania int N; /* Liczba wezlow w grafie: 0 < N <= MaxN */ int A, B; /* Numery rozwazanych wezlow: 0 < A,B <= N */ int Kolor; /* Numer rozwazanego koloru: 0 < Kolor <= N */ int x41; int PopKG; Personal Software Process, cz. I (31) Standard kodowania powinien te okrela sposób tworzenia identyfikatorów, czyli nazw zmiennych, nazw funkcji itp. Identyfikatory powinno si tak dobiera, aby łatwo było domyli si, jak rol dany identyfikator pełni w programie. Identyfikator zadeklarowany w trzecim wierszu jest klasycznym przykładem dobrze dobranego identyfikatora. Jego nazwa, Kolor, sugeruje, e bdzie w tej zmiennej pamitany numer koloru. Ponadto mamy komentarz, który opisuje rol zmiennej Kolor wynika z niego, e faktycznie zmienna ma pamita numer rozwaanego koloru. Jest te informacja o dopuszczalnych wartociach, jakie moe przyjmowa zmienna kolor: s to liczby całkowite od 1 do N. Generalnie naley unika nazw jednoliterowych, chyba e nawizuj one do specyfikacji programu lub te wystpuj w zewntrznym opisie algorytmu (np. w artykule prezentujcym ten algorytm). Poniewa nazwy N, A i B zadeklarowane w pierwszych dwóch wierszach, wystpiły w specyfikacji programu KolorGraf, zatem mog równie wystpi w programie. Ponadto s one opisane w komentarzu i dla kadej zmiennej podano zakres wartoci, jakie moe ona przyjmowa. Zatem te deklaracje s jak najbardziej poprawne pod wzgldem metodycznym. 31
32 Standard kodowania int N; /* Liczba wezlow w grafie: 0 < N <= MaxN */ int A, B; /* Numery rozwazanych wezlow: 0 < A,B <= N */ int Kolor; /* Numer rozwazanego koloru: 0 < Kolor <= N */ int x41; int PopKG; Personal Software Process, cz. I (32) Dwa ostatnie wiersze zawieraj deklaracje identyfikatorów, jakich powinno si unika. Ich nazwy nic nie mówi. Brakuje te opisania ich roli i podania zakresu dopuszczalnych wartoci. Mona przyj zasad, e w przypadku, gdy zmienna moe przyjmowa dowolne wartoci danego typu, jako zakres dopuszczalnych wartoci wpisuje si słowo ANY (po angielsku any znaczy jakikolwiek ). 32
33 Standard kodowania while (scanf("%d %d", &A, &B)>0){ if (0<A && A<=N && 0<B && B<=N) Luk[A,B]= True; LiczbaLukow++; } Personal Software Process, cz. I (33) Standard kodowania powinien te prezentowa zasady, na jakich wprowadza si wcicia do tekstu programu. Wcicia powinny by widoczne, ale nie powinny by zbyt głbokie, bo wtedy troch mocniej zagniedone instrukcje byłyby bardzo wskie. Najczciej przyjmuje si wcicia od 3 do 5 spacji. Na slajdzie zastosowano wcicia wielkoci trzech spacji. Wane, aby wcicia w moliwie czytelny sposób oddawały zagniedanie instrukcji. 33
34 Standard kodowania while (scanf("%d %d", &A, &B)>0){ /* Czytaj kolejne pary */ /* wezlow A,B i dla kazdej,*/ if (0<A && A<=N && 0<B && B<=N) /* o ile jest poprawna, */ Luk[A,B]= True; /* zapamietaj, ze jest luk */ /* miedzy tymi wezlami. */ } Personal Software Process, cz. I (34) Kolejnym aspektem, który powinien by poruszony w standardzie kodowania jest sposób komentowania instrukcji. Panuje ogólnie akceptowany pogld, e komentarze do instrukcji powinny by tak napisane, aby pomagały czytelnikowi zrozumie kod. Rozwamy fragment kodu pokazany na slajdzie. Mona go na przykład skomentowa w sposób pokazany na slajdzie: czytaj kolejne pary wzłów A,B i dla kadej z nich, o ile jest poprawna, zapamitaj, e jest łuk midzy tymi wzłami. Komentarz niesie informacj, która nie wynika bezporednio z tego fragmentu kodu i to moe by cenn wskazówk dla osoby próbujcej zrozumie kod. 34
35 Standard kodowania while (scanf("%d %d", &A, &B)>0){ /* Czytaj kolejne pary */ /* wezlow A,B i dla kazdej,*/ if (0<A && A<=N && 0<B && B<=N) /* o ile jest poprawna, */ Luk[A,B]= True; /* zapamietaj, ze jest luk */ /* miedzy tymi wezlami. */ } while (scanf("%d %d", &A, &B)>0){ /* Jak dlugo funkcja scanf,*/ /* czytajac wartosci A,B, */ /* zwraca wartosc dodatnia,*/ if (0<A && A<=N && 0<B && B<=N) /* sprawdz, czy A,B naleza */ /* do przedzialu [1, N] i */ Luk[A,B]= True; /* zapamietaj wartosc True */ /* w tablicy Luk o wspol- */ /* rzednych A,B. */ } Personal Software Process, cz. I (35) Na dole slajdu mamy pokazany ten sam kod, ale z innym komentarzem: jak długo funkcja scanf, czytajc wartoci A,B, zwraca warto dodatni, masz sprawdzi, czy A,B nale do przedziału domknitego [1, N] i masz zapamita warto True w tablicy Luk o współrzdnych A,B. Ten komentarz w zasadzie powiela informacj zawart w kodzie, zatem raczej nie pomoe czytelnikowi zrozumie programu. Tego typu komentarzy naley unika. 35
36 Plan wykładu < < " # < " # $ < " % < < & #% < % Personal Software Process, cz. I (36) Poziom bazowy PSP obejmuje równie propozycj samodoskonalenia, któr chciałbym teraz omówi. 36
37 Uproszczony rejestr defektów % ), B C &.%/!%!#01%234,%2534% Personal Software Process, cz. I (37) Jak pamitamy, przy pracy nad programem KolorGraf pojawił si defekt zwizany z brakiem znaku & przed nazw zmiennej. Wykrycie i usunicie tego defektu kosztowało 0.5 godz. pracy. Mona uzna, e jest to wypadek przy pracy i ufa, e taka sytuacja si wicej nie powtórzy. Mona te zmodyfikowa proces tworzenia oprogramowania tak, aby radykalnie zmniejszy prawdopodobiestwo pojawienia si tego typu defektu w przyszłoci. Takie propozycje modyfikacji s propozycjami samodoskonalenia. 37
38 Propozycja samodoskonalenia ( & & % & & & # % Personal Software Process, cz. I (38) Formularz propozycji samodoskonalenia zaproponowany przez Humphrey a składa si z identyfikatora procesu i trzech głównych czci: opisu problemu (kady problem ma swój numer), opisu propozycji udoskonalenia (jej numer odpowiada numerowi opisu problemu) oraz notatek i komentarza (tutaj mog si pojawi m.in. uwagi na temat silnych stron danego procesu). 38
39 Uproszczony rejestr defektów % ), B C &.%/!%!#01%234,%2534% Personal Software Process, cz. I (39) Jeli postanowimy, e trzeba zmodyfikowa proces tak, aby problem brakujcego znaku & wicej si nie pojawił, to moemy potraktowa ten defekt jako problem wymagajcy udoskonalenia procesu. 39
40 Propozycja samodoskonalenia ( & & %!1,% % +-%#%#61%254 6%6061/%! & & & # +%+/%*0%60%!, %,8 % Personal Software Process, cz. I (40) Zatem moemy w sekcji Opis problemu umieci nastpujcy zapis: Straciłem 0.5 godziny, bo brakowało znaku & w wywołaniu funkcji scanf. Natomiast w sekcji Opis propozycji udoskonalenia moemy zapisa, e naley wprowadzi do procesu przegldy kodu i w trakcie przegldu trzeba zawsze sprawdzi, czy wszystkie wywołania funkcji scanf maj znak & przed nazw zmiennej (oczywicie znak & nie jest potrzebny, jeli zmienna zawiera wskanik ale to powinno by wiadome osobie, która bdzie dokonywała przegldu). Jak wida, problem i zwizana z nim propozycja udoskonalenia, majca na celu rozwizanie tego problemu, s powizane tym samym numerem. 40
41 Poziomy PSP Stand. kodu + Pomiar rozm. + PS Rejestry czasu i defektów 0.Bazowy Personal Software Process, cz. I (41) Omówilimy wszystkie najistotniejsze elementy zwizane z poziomem bazowym. 41
42 Plan wykładu < < " # < " # $ < " % < < & #% < % Personal Software Process, cz. I (42) Przejdziemy teraz do omówienia metody szacowania rozmiaru kodu, która jest wykorzystywana w PSP. 42
43 Model dojrzałoci w PSP Szacowanie rozmiaru + raport tst Stand. kodu + Pomiar rozm. + PPO Rejestry czasu i defektów 1.Planowania 0.Bazowy Personal Software Process, cz. I (43) Szacowanie rozmiaru kodu jest zwizane z poziomem dotyczcym planowania. 43
44 Schemat planowania begin.. end 500 LOC Personal Software Process, cz. I (44) Szacunkowy rozmiar kodu jest punktem wyjcia do szacowania pracochłonnoci, a szacunkowa pracochłonno jest punktem wyjcia do opracowania harmonogramu przedsiwzicia i ustalenia daty odbioru oprogramowania. 44
45 Metoda PROBE PROxy-Based Estimating Obiekty jako elementy zastpcze Watts Humphrey, 1995 Metoda PROBE Dane historyczne Metody statystyczne Personal Software Process, cz. I (45) W PSP wykorzystuje si metod PROBE. PROBE jest skrótem od PROxy-Based Estimating, co oznacza szacowanie bazujce na elementach zastpczych, którymi s klasy obiektów. Zatem jest to metoda zorientowana na programowanie obiektowe. Jest ona oryginaln propozycj Wattsa Humphrey a. Najogólniej mówic, w metodzie PROBE zbiera si dane dotyczce wczeniej napisanych programów (s to tzw. dane historyczne) i stosujc metody wnioskowania statystycznego opracowuje si na tej podstawie szacunkowe wartoci rozmiaru kodu i pracochłonnoci. 45
46 Planowanie przedsiwzicia Wymagania Projekt koncepcyjny Szacowanie rozmiaru Szacowanie zasobów Harmonogram Produkt Baza rozmiarów Baza produktyw. Dostpne zasoby Rozmiar, pracochł. Personal Software Process, cz. I (46) W PSP, jak w wielu innych metodykach, planowanie odbywa si na podstawie wymaga, których głównym ródłem jest klient i przyszli uytkownicy kocowi budowanego systemu. W oparciu o wymagania tworzony jest w PSP tzw. projekt koncepcyjny systemu. Projekt ten ma głównie pomóc w oszacowaniu potrzebnych zasobów. Jak ju wczeniej wspomniałem, najpierw szacuje si rozmiar kodu, jaki trzeba bdzie napisa. Wykorzystuje si do tego projekt koncepcyjny i baz danych historycznych zawierajc dane na temat rozmiarów wczeniej napisanych programów. Po oszacowaniu rozmiaru kodu szacuje si pracochłonno przedsiwzicia. To oszacowanie powstaje na podstawie szacunkowego rozmiaru kodu i bazy danych historycznych zawierajcej dane dotyczce produktywnoci (czyli szybkoci programowania). Znajc pracochłonno przedsiwzicia mona opracowa jego harmonogram. Warto przy tym wzi pod uwag dostpne zasoby. Jeli na przykład oszacowalimy, e napisanie jakiego oprogramowania zajmie 2 tygodnie, ale za tydzie jedziemy na 2-tygodniowe szkolenie do Wielkiej Brytanii, to trzeba to uwzgldni w harmonogramie przedsiwzicia. Po zaplanowaniu przedsiwzicia przechodzi si do realizacji produktu. Głównym efektem jest produkt kocowy, który powinien trafi do klienta. Ponadto naley zaktualizowa baz danych historycznych wprowadzajc dane dotyczce faktycznego rozmiaru kodu i faktycznej pracochłonnoci. 46
47 Planowanie przedsiwzicia Wymagania Projekt koncepcyjny Szacowanie rozmiaru Szacowanie zasobów Harmonogram Produkt Baza rozmiarów Baza produktyw. Dostpne zasoby Rozmiar, pracochł. Personal Software Process, cz. I (47) Metoda PROBE obejmuje projekt koncepcyjny i szacowanie rozmiaru. 47
48 Metoda PROBE Projekt koncepcyjny Identyfikuj klasy obiektów Liczba Rodzaj Rozmiar metod klasy rozmyty Oblicz nowe i zmodyfikowane LOC Oszacuj rozmiar programu Oblicz przedział ufnoci Personal Software Process, cz. I (48) Na podstawie projektu koncepcyjnego okrela si dla kadej klasy obiektów liczb jej metod, rodzaj klasy (bdzie jeszcze o tym mowa) i jej rozmiar rozmyty. Nastpnie okrela si ile linii kodu trzeba bdzie napisa (s to nowe linie kodu) a ile zmodyfikowa (z modyfikacj mamy do czynienia przy opracowywaniu kolejnej ulepszonej wersji tego samego programu). Na tej podstawie szacuje si rozmiar całego kodu, jaki trzeba bdzie napisa. W metodzie PROBE nie jest to trywialny krok w oparciu o dane dotyczce naszych wczeniejszych szacunków i faktycznych rozmiarów kodu metodami statystycznymi koryguje si zaproponowane w poprzednim kroku oszacowanie. Ale kade oszacowanie jest obarczone jakim błdem. Czasami moe to by bardzo duy błd. W metodzie PROBE okrela si przedział ufnoci dla obliczonego wczeniej rozmiaru kodu, dziki czemu mamy informacj na temat niepewnoci otrzymanego oszacowania. W trakcie tego wykładu przedstawi jedynie szacowanie rozmiaru. Obliczanie przedziału ufnoci zostanie omówione w trakcie nastpnego wykładu. 48
49 Metoda PROBE 1. Opracuj projekt koncepcyjny (klasy i metody + ich funkcje) Personal Software Process, cz. I (49) Metoda PROBE składa si z siedmiu kroków. W pierwszym kroku naley opracowa wspomniany wczeniej projekt koncepcyjny, w tym naley wyodrbni klasy i ich metody oraz opisa funkcj, jak dana klasa ma pełni w programie (opis ten nie musi by szczegółowy). 49
50 Metoda PROBE 2. Kadej klasie przypisz jej rodzaj. < <. = <! < > Drapacz chmur Kociół Gara Personal Software Process, cz. I (50) Nastpnie kadej klasie naley przypisa jej rodzaj. Chodzi o trafno szacowania rozmiaru. Jeli mielibymy zbudowa duy gara, to i tak bdzie on znacznie mniejszy ni mały drapacz chmur. Dlatego potrzebna jest informacja o rodzaju budowli, czy w naszym przypadku rodzaju klasy. Watts Humphrey proponuje m.in. nastpujce rodzaje klas: I/O S to klasy oferujce głównie operacje wejcia-wyjcia. Text Ten rodzaj klas słuy głównie do przetwarzania tekstu. Calculation S to klasy zorientowane na obliczenia o charakterze numerycznym. Data Klasy tego rodzaju s abstrakcyjnymi typami danych (np. kolejka, słownik itp.). 50
51 Metoda PROBE 2. Kadej klasie przypisz jej rodzaj. < <. = <! < > < ; Drapacz chmur Kociół Gara Personal Software Process, cz. I (51) Niestety, kwestia podziału klas na rodzaje została nader pobienie potraktowana przez Wattsa Humphrey a (Humphrey wprowadził jeszcze dwa dodatkowe rodzaje, Logic i Set-up, ale nie wyjanił co jest cech charakterystyczn klas tego rodzaju). By moe warto byłoby wprowadzi klas Others na wypadek, gdyby jaka klasa z modelu koncepcyjnego nie pasowała do adnego ze wspomnianych rodzajów. 51
52 Metoda PROBE 3. Oszacuj rozmyty rozmiar kadej klasy. Bardzo duy Duy redni Mały Bardzo mały Personal Software Process, cz. I (52) W trzecim kroku naley oszacowa rozmyty rozmiar kadej klasy. Rozmiar rozmyty oznacza rozmiar scharakteryzowany słowami. Mona na przykład, tak jak to pokazano na slajdzie, przyj skal 5-stopniow: bardzo duy, duy, redni, mały i bardzo mały. Mona te zdecydowa si na skale 3-stopniow. Wane, by przez cały czas mała klasa rodzaju Calculation oznaczała klasy o mniej-wicej podobnym rednim rozmiarze metody. Z tego wzgldu lepiej jest na pocztku przyj skal 3- stopniow i ewentualnie w przyszłoci j rozbudowa. 52
53 Metoda PROBE 4. Znajc: jzyk programowania rodzaj klasy rozmyty rozmiar klasy liczb metod oszacuj, korzystajc z danych historycznych, rozmiar kadej klasy. Personal Software Process, cz. I (53) W czwartym kroku, znajc jzyk programowania, jaki zostanie uyty, rodzaj klasy wystpujcej w modelu koncepcyjnym, rozmyty rozmiar klasy oraz szacowan liczb metod, naley oszacowa, w oparciu o dane historyczne, rozmiar kadej klasy. 53
54 Metoda PROBE = 5 5. Okrel pocztkowe oszacowanie rozmiaru kodu, X, dodajc wartoci otrzymane w poprzednim kroku. Personal Software Process, cz. I (54) Pocztkowe oszacowanie rozmiaru kodu, oznaczane przez X, otrzymujemy dodajc wartoci otrzymane w poprzednim kroku. 54
55 Metoda PROBE 5, czyli Zastosuj regresj liniow, aby otrzyma szacowany rozmiar programu, Y. β 1 = x i y i - n x avg y avg x i2 - n x avg 2 β 0 = y avg - β 1 x avg Personal Software Process, cz. I (55) Niestety, bardzo czsto programici maj tendencj do nadmiernego optymizmu i na etapie planowania wszystko wydaje im si prostsze i łatwiejsze ni to ma miejsce w rzeczywistoci. Dlatego te szacunkowy rozmiar kodu, X, otrzymany w poprzednim kroku naley skorygowa. W metodzie PROBE stosuje si metod regresji liniowej. Na podstawie danych historycznych opisujcych szacunkowy i faktyczny rozmiar kodu wyznacza si wartoci współczynników regresji liniowej, 0 i 1, w sposób pokazany na slajdzie. 55
56 Metoda PROBE 5, czyli Zastosuj regresj liniow, aby otrzyma szacowany rozmiar programu, Y. Y = β 1 X + β 0 β 1 = x i y i - n x avg y avg x i2 - n x avg 2 β 0 = y avg - β 1 x avg Personal Software Process, cz. I (56) n oznacza liczb programów w bazie danych historycznych. xi oraz yi oznaczaj odpowiednio szacowany i faktyczny rozmiar i-tego programu. Natomiast xavg oraz yavg podajredni warto szacunkowego i faktycznego rozmiaru kodu dla wszystkich n programów. Szacowany rozmiar programu, Y, oblicza si mnoc warto X przez 1 i dodajc 0. 56
57 Metoda PROBE Dla 100% przedział wynosi [0; + ]. 7. Korzystajc z rozkładu t Studenta i odchylenia standardowego oblicz przedział dla podanego poziomu ufnoci. Personal Software Process, cz. I (57) W ostatnim kroku, korzystajc z rozkładu t Studenta i odchylenia standardowego od prostej regresji, oblicza si przedział ufnoci dla podanego poziomu ufnoci. Ten krok zostanie omówiony w trakcie nastpnego wykładu. 57
58 Przykład szacowania rozmiaru kodu " # )?, 6 6> ) 6 54!G = 4;. H 8 > 6 B IHC BHIC BI HC H H JJJ H 5 J H 5 J HG Personal Software Process, cz. I (58) Na zakoczenie przedstawi przykład szacowania rozmiaru kodu. Załómy, e mamy w swoim dorobku cztery programy napisane w jzyku C++. Z ich analizy wynika, e metody zawarte w klasach rodzaju Calculation maj od 4 do 49 linii kodu ródłowego, dla klas rodzaju Data ten przedział wynosi od 4 do 32 linii kodu, metody klas I/O zajmuj od 8 do 27 linii kodu, za metody klas rodzaju Text maj od 6 do 94 linii kodu. Załómy, e bdziemy posługiwa si 3-stopniow skal oceny rozmiaru klasy: mała, rednia i dua. Na podstawie zebranych danych wyznaczymy wartoci numeryczne odpowiadajce małym, rednim i duym klasom poszczególnych rodzajów. Przyjmijmy, e mała klasa ma metody od Min do x, rednia od x do y, natomiast dua od y do Max. Jeli załoymy, e wartoci numeryczne odpowiadajce poszczególnym rozmiarom rozmytym tworz postp geometryczny, to stosunek górnej granicy kadego przedziału do dolnej granicy powinien by taki sam, czyli prawdziwa jest równo pokazana na slajdzie. Oznaczmy ten iloraz liter k. Z równoci tych wynika, e k do potgi trzeciej jest równe ilorazowi Max i Min. Zatem k mona obliczy, jako pierwiastek trzeciego stopnia z ilorazu Max do Min. 58
59 Przykład szacowania rozmiaru kodu " # )?, 6 6> 45 ) !G = 4; 27. H 8 > 6 47 B IHC BHIC BI HC H H JJJ H 5 J H 5 J HG Personal Software Process, cz. I (59) Do tabeli wpisano wartoci k obliczone na podstawie tego wzoru. 59
60 Przykład szacowania rozmiaru kodu " #, )!G. H 6 6 = 8 H 6> 54 4; > )? B IHC J KH H J HJK J K Personal Software Process, cz. I (60) Obliczymy teraz warto numeryczn reprezentujc rozmiar metody małej klasy. Poniewa załoylimy, e granice przedziałów Min, x, y i Max tworz postp geometryczny, zatem warto numeryczna reprezentujc przedział małych klas powinna by liczona jako rednia geometryczna, czyli jako pierwiastek kwadratowy z granic przedziału. Poniewa, jak ju wczeniej si zgodzilimy, stosunek x do Min jest równy k, zatem x jest równe iloczynowi k i Min. Podstawiajc x do pierwszej równoci dostajemy wzór na warto numeryczn reprezentujc rozmiar metody małej klasy: jest to iloczyn minimalnego rozmiaru metody, Min, i pierwiastka z ilorazu k. 60
61 Przykład szacowania rozmiaru kodu " # )?, 6 6> ) ;!G = 4; 27 > =. H 8 > 6 47 > 7 J K Personal Software Process, cz. I (61) W tabeli pokazane s wartoci numeryczne dla poszczególnych rodzajów klas obliczone na podstawie tego wzoru. 61
62 Przykład szacowania rozmiaru kodu " # )?, 6 6> ) ; 225!G = 4; 27 > = 26;. H 8 > 6 47 > 7 J K Personal Software Process, cz. I (62) Poniewa granice przedziałów zwizanych z wartociami rozmytymi tworz postp geometryczny i wartoci numeryczne reprezentujce przedziały s obliczane na podstawie redniej geometrycznej granic przedziałów, zatem wartoci numeryczne reprezentujce przedziały te musz tworzy postp geometryczny. Oznacza to, e aby otrzyma wartoci numeryczne reprezentujce redniej wielkoci klasy wystarczy pomnoy wartoci dotyczce małych klas przez iloraz k. Otrzymamy wówczas wartoci numeryczne pokazane w przedostatniej kolumnie tabeli. 62
63 Przykład szacowania rozmiaru kodu " # )?, 6 6> ) ; !G = 4; 27 > = 26; 443. H 8 > 6 47 > 7 45; 7 > 5 )?J@ K Personal Software Process, cz. I (63) W podobny sposób oblicza si wartoci numeryczne reprezentujce due klasy. 63
64 Przykład szacowania rozmiaru kodu " #, )!G. H 6 6 = 8 H 6> 54 4; > ; > = > ; 45; )? > 5 H F H L L β 2 J H 4 F H 4 L 2 4 H 633 = β 3 J L F β 2 H L Personal Software Process, cz. I (64) Druga cz naszych danych historycznych dotyczy rozmiarów kodu. Mamy dane dotyczce czterech programów. W kolumnie xi znajduj si szacunkowe rozmiary kodu podane przez programist, natomiast w kolumnie yi mamy faktyczne rozmiary kodu. Dane te wykorzystamy do obliczenia współczynników regresji liniowej 0 i 1. 64
65 Przykład szacowania rozmiaru kodu " #, )!G. H 6 6 = 8 H 6> 54 4; > ; > = > ; 45; )? > 5 H F H L L β 2 J H 4 F H 4 L 2 4 H 633 = β 3 J L F β 2 H L Personal Software Process, cz. I (65) Jak wida, liczba programów, n, jest równa 4. 65
66 Przykład szacowania rozmiaru kodu H F H L L β 2 J H 4 F H 4 L β 3 J L F β 2 H L " #, )!G. H )? 6 6> ; = 4; 27 > = 26; > 6 47 > 7 45; 7 > 5 H = = Personal Software Process, cz. I (66) rednia warto oszacowa programisty wynosi 800, natomiast rednia warto faktycznego rozmiaru kodu jest równa
67 Przykład szacowania rozmiaru kodu H F H L L β 2 J H 4 F H 4 L β 3 J L F β 2 H L " #, )!G. H )? 6 6> ; = 4; 27 > = 26; > 6 47 > 7 45; 7 > 5 H H K = == = ==3333 Personal Software Process, cz. I (67) Suma iloczynów szacowanych i faktycznych rozmiarów kodu wynosi tys. 67
68 Przykład szacowania rozmiaru kodu H F H L L β 2 J H 4 F H 4 L β 3 J L F β 2 H L " #, )!G. H )? 6 6> ; = 4; 27 > = 26; > 6 47 > 7 45; 7 > 5 H H K H KH = == = ==3333 4=33333 Personal Software Process, cz. I (68) Natomiast suma kwadratów szacunkowych rozmiarów kodu wynosi tys. 68
69 Przykład szacowania rozmiaru kodu β 2 J 27 β 3 J L F β 2 H L " #, )!G. H )? 6 6> ; = 4; 27 > = 26; > 6 47 > 7 45; 7 > 5 H H K H KH = == = ==3333 4=33333 Personal Software Process, cz. I (69) Podstawiajc te wartoci do wzoru na 1 dostajemy 1,5. 69
70 Przykład szacowania rozmiaru kodu β 2 J 27 β 3 J M 233 " #, )!G. H )? 6 6> ; = 4; 27 > = 26; > 6 47 > 7 45; 7 > 5 H H K H KH = == = ==3333 4=33333 Personal Software Process, cz. I (70) Zatem 0 jest równe Współczynniki te wykorzystamy przy szacowaniu rozmiaru kodu. Podsumowujc t cz oblicze mona powiedzie, e to, czego potrzebujemy z danych historycznych obejmuje numeryczne reprezentacje wartoci rozmytych oraz współczynniki regresji liniowej 0 i 1. Pozostałe dane nie bd ju nam potrzebne. 70
71 Przykład szacowania rozmiaru kodu " #, )!G. H 82 7 ; > = > 7 β 2 J 27 β 3 J M ; 45; )? > 5 Personal Software Process, cz. I (71) Po lewej stronie slajdu mamy wszystkie dane historyczne, które bd nam potrzebne do obliczenia szacunkowego rozmiaru kodu. Jestemy gotowi do wykonania oblicze zgodnie z metod PROBE. 71
72 Przykład szacowania rozmiaru kodu N )3 " )? 9, )!G 7 ; > = ; Zaawansowana inynieria oprogramowania Metoda PROBE. H > 7 45; 7 > 5 β 2 J 27 β 3 J M Opracuj projekt koncepcyjny (klasy i metody + ich funkcje) Personal Software Process, cz. I (114) Personal Software Process, cz. I (72) Jak pamitamy, w pierwszym kroku naley opracowa projekt koncepcyjny, z którego powinno wynika, jakie bd klasy, jakie metody bd one zawierały i co te klasy maj robi. Załómy, e w naszym programie bd trzy klasy: Matrix Bdzie udostpnia podstawowe operacje zwizane z abstrakcyjn struktur danych, jak jest macierz. Linear Bdzie wykonywa operacje zwizane z algebr liniow. Linked Bdzie to klasa udostpniajca operacje na listach 2-kierunkowych. Dla uproszczenia przyjmiemy, e kada z tych klas bdzie miała po 10 metod. 72
73 Przykład szacowania rozmiaru kodu N )3 " # : " % ;+ " )? 9 *! :/, : :/ )!G. H 7 ; > = > ; 45; > 5 Zaawansowana inynieria oprogramowania Metoda PROBE 3. Oszacuj rozmyty rozmiar kadej klasy. β 2 J 27 β 3 J M 233 Bardzo duy Duy redni Mały Bardzo mały Personal Software Process, cz. I (119) Personal Software Process, cz. I (73) W drugim kroku naley kadej klasie przypisa jej rodzaj. Na podstawie wczeniej przedstawionego opisu mona przyj, e klasy Matrix i Linked bd rodzaju Data, natomiast klasa Linear bdzie rodzaju Calculation. W trzecim kroku naley przypisa kadej klasie jej rozmiar rozmyty. Korzystajc ze swojego dowiadczenia i intuicji programista przyjł, e klasa Matrix bdzie miała metody redniej wielkoci, natomiast klasy Linear i Linked bd due. 73
74 Przykład szacowania rozmiaru kodu N " # " % )3 : ;+ " )? 9 *! :/, : :/ )!G 7 ; > = ; Zaawansowana inynieria oprogramowania Metoda PROBE. H > 7 β 2 J 27 β 3 J M ; 7 > 5 4. Znajc: jzyk programowania rodzaj klasy rozmyty rozmiar klasy liczb metod oszacuj, korzystajc z danych historycznych, rozmiar kadej klasy. Personal Software Process, cz. I (120) Personal Software Process, cz. I (74) W czwartym kroku naley, korzystajc z danych historycznych, oszacowa rozmiar kadej klasy, biorc pod uwag liczb jej metod. Wczeniej przyjlimy, e kada klasa bdzie miała 10 metod. 74
PROWIZJE Menad er Schematy rozliczeniowe
W nowej wersji systemu pojawił si specjalny moduł dla menaderów przychodni. Na razie jest to rozwizanie pilotaowe i udostpniono w nim jedn funkcj, która zostanie przybliona w niniejszym biuletynie. Docelowo
Instrukcja obsługi programu MechKonstruktor
Instrukcja obsługi programu MechKonstruktor Opracował: Sławomir Bednarczyk Wrocław 2002 1 1. Opis programu komputerowego Program MechKonstruktor słuy do komputerowego wspomagania oblicze projektowych typowych
Program SMS4 Monitor
Program SMS4 Monitor INSTRUKCJA OBSŁUGI Wersja 1.0 Spis treci 1. Opis ogólny... 2 2. Instalacja i wymagania programu... 2 3. Ustawienia programu... 2 4. Opis wskaników w oknie aplikacji... 3 5. Opcje uruchomienia
Uniwersytet Rzeszowski
Uniwersytet Rzeszowski Interdyscyplinarne Centrum Modelowania Komputerowego Inżynieria oprogramowania Część 1: Tworzenie dokumentacji projektowej Opracował: dr inż. Przemysław Pardel v2.01 2014 1. Dokumentacja
M E R I D I A N. Sobota, 11 lutego 2006
M E R I D I A N Sobota, 11 lutego 2006 Czas pracy: 75 minut Maksymalna liczba punktów do uzyskania: 123 W czasie testu nie wolno uywa kalkulatorów ani innych pomocy naukowych. 1. Na ostatniej stronie testu
Sposoby przekazywania parametrów w metodach.
Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych
Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:
wiczenie 2 Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Cel wiczenia: Zapoznanie si ze sposobami konstruowania tabel, powiza pomidzy tabelami oraz metodami manipulowania
Średni. Mały. Zakres Dół Środek Góra
Szacowanie rozmiaru kodu Jerzy Nawrocki & Adam Wojciechowski Po co szacować wielkość kodu? Opracowanie planów pracy Ocena pracochłonności Konstruowanie wiarygodnych harmonogramów Sizing represents the
Mikroprocesorowy regulator temperatury RTSZ-2 Oprogramowanie wersja 1.1. Instrukcja obsługi
Mikroprocesorowy regulator temperatury RTSZ-2 Oprogramowanie wersja 1.1 Instrukcja obsługi Parametry techniczne mikroprocesorowego regulatora temperatury RTSZ-2 Cyfrowy pomiar temperatury w zakresie od
Podział Internetu radiowego WIFI konfiguracja
Podział Internetu radiowego WIFI konfiguracja TL-WR543G Wireless AP Client Router Instrukcja ta zawiera uproszczony opis podziału łcza internetowego dostarczanego poprzez sie WIFI za pomoc dwóch routerów
Gramatyki regularne i automaty skoczone
Gramatyki regularne i automaty skoczone Alfabet, jzyk, gramatyka - podstawowe pojcia Co to jest gramatyka regularna, co to jest automat skoczony? Gramatyka regularna Gramatyka bezkontekstowa Translacja
SUPLEMENT SM-BOSS WERSJA 6.15
SUPLEMENT SM-BOSS WERSJA 6.15 Spis treci Wstp...2 Pierwsza czynno...3 Szybka zmiana stawek VAT, nazwy i PKWiU dla produktów...3 Zamiana PKWiU w tabeli PKWiU oraz w Kartotece Produktów...4 VAT na fakturach
Komentarz do prac egzaminacyjnych w zawodzie technik administracji 343[01] ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJĄCEGO KWALIFIKACJE ZAWODOWE
Komentarz do prac egzaminacyjnych w zawodzie technik administracji 343[01] ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJĄCEGO KWALIFIKACJE ZAWODOWE OKE Kraków 2012 Zadanie egzaminacyjne zostało opracowane
10. Poczta 11. Ulica 12. Nr domu 13. Nr lokalu. 37. Numer w rejestrze
INF D Z Podstawa prawna: Składajcy: Termin składania: Adresat: Wzór Załcznik nr 1 do informacji INF-D Art. 26c ust. 1 pkt 1 ustawy z dnia 27 sierpnia 1997 r. o rehabilitacji zawodowej i społecznej oraz
WZÓR. WNIOSEK o przyznanie rodków z Funduszu Nauki i Technologii Polskiej na finansowanie projektu badawczego. Data złoenia
Załczniki do rozporzdzenia Ministra Nauki i Szkolnictwa Wyszego z dnia... (poz....) Załcznik nr 1 WZÓR WNIOSEK o przyznanie rodków z Funduszu Nauki i Technologii Polskiej na finansowanie projektu badawczego
Instrukcja obsługi regulatora i wizualizacji pieca pokrocznego na Walcowni Drobnej P46 Strona 1 z 26
Strona 1 z 26 Spis treci 1. WSTP.... 2 2. PANEL OPERATORSKI PANELVIEW PLUS 700.... 3 3. URUCHOMIENIE PANELU OPERATORSKIEGO.... 5 4. OKNO GŁÓWNE.... 6 5. OKNO REGULACJI STREFY 1 W TRYBIE AUTOMATYCZNYM...
1. Rozwiązać układ równań { x 2 = 2y 1
Dzień Dziecka z Matematyką Tomasz Szymczyk Piotrków Trybunalski, 4 czerwca 013 r. Układy równań szkice rozwiązań 1. Rozwiązać układ równań { x = y 1 y = x 1. Wyznaczając z pierwszego równania zmienną y,
Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej
Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej 3.1 Informacje ogólne Program WAAK 1.0 służy do wizualizacji algorytmów arytmetyki komputerowej. Oczywiście istnieje wiele narzędzi
Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1
Temat: Funkcje. Własności ogólne A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1 Kody kolorów: pojęcie zwraca uwagę * materiał nieobowiązkowy A n n a R a
EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015
1. Wprowadzenie do C/C++
Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
INSTRUKCJA WYPEŁNIANIA DEKLARACJI O WYSOKOŚCI OPŁATY ZA GOSPODAROWANIE ODPADAMI KOMUNALNYMI DLA DOMÓW OPIEKI, HOTELI, PENSJONATÓW, SZPITALI itp.
INSTRUKCJA WYPEŁNIANIA DEKLARACJI O WYSOKOŚCI OPŁATY ZA GOSPODAROWANIE ODPADAMI KOMUNALNYMI DLA DOMÓW OPIEKI, HOTELI, PENSJONATÓW, SZPITALI itp. Deklarację należy wypełnić czytelnie na maszynie, komputerze
EGZAMIN MATURALNY Z INFORMATYKI CZERWIEC 2011 POZIOM ROZSZERZONY WYBRANE: CZĘŚĆ I. Czas pracy: 90 minut. Liczba punktów do uzyskania: 20
Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2010 KOD WISUJE ZDAJĄCY ESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY
Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych
Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.
INSTRUKCJA Panel administracyjny
INSTRUKCJA Panel administracyjny Konto trenera Spis treści Instrukcje...2 Opisy...3 Lista modułów głównych...3 Moduł szkoleniowy...4 Dodaj propozycję programu szkolenia...4 Modyfikuj arkusz wykładowcy...6
1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza
165 1) Grafy eulerowskie własnoci algorytmy 2) Problem chiskiego listonosza 166 Grafy eulerowskie Def. Graf (multigraf, niekoniecznie spójny) jest grafem eulerowskim, jeli zawiera cykl zawierajcy wszystkie
Podstawowe pojęcia: Populacja. Populacja skończona zawiera skończoną liczbę jednostek statystycznych
Podstawowe pojęcia: Badanie statystyczne - zespół czynności zmierzających do uzyskania za pomocą metod statystycznych informacji charakteryzujących interesującą nas zbiorowość (populację generalną) Populacja
W definicji powyszej funkcji załoylimy, e 1 m 1 oraz x0 < xk.
Wykład 2 Podstawowe algorytmy rysowania prymitywów 2D w grafice rastrowej Pakiet grafiki rastrowej aproksymuje prymitywy matematyczne (idealne), opisane przez wierzchołki siatki kartezjaskiej, za pomoc
SUPLEMENT SM-BOSS WERSJA 6.15
SUPLEMENT SM-BOSS WERSJA 6.15 Spis treci Wstp...2 Pierwsza czynno...3 Szybka zmiana stawek VAT, nazwy i PKWiU dla produktów...3 Szeroki wydruk rejestru VAT...4 Filtry wydruków dotyczcych VAT...5 Kontrola
INSTRUKCJA DO INTERNETOWEGO ROZKŁADU JAZDY
INSTRUKCJA DO INTERNETOWEGO ROZKŁADU JAZDY Internetowy rozkład jazdy służy do ułatwienia komunikacji między stacjami. Pokazuje jakie pociągi aktualnie kursują między stacjami i gdzie są. Pomaga nie dopuścić
Dodatek do ksiki Funkcjonalno stron internetowych (Mark Pearrow, wyd. Helion 2002) Test funkcjonalnoci strony firmowej korporacji Xolax
Dodatek do ksiki Funkcjonalno stron internetowych (Mark Pearrow, wyd. Helion 2002) Test funkcjonalnoci strony firmowej korporacji Xolax Wstp Oto plan testów strony firmowej korporacji Xolax. Składa si
Formularz Zgłoszeniowy propozycji zadania do Szczecińskiego Budżetu Obywatelskiego na 2016 rok
Formularz Zgłoszeniowy propozycji zadania do Szczecińskiego Budżetu Obywatelskiego na 2016 rok 1. KONTAKT DO AUTORA/AUTORÓW PROPOZYCJI ZADANIA (OBOWIĄZKOWE) UWAGA: W PRZYPADKU NIEWYRAŻENIA ZGODY PRZEZ
Bazy danych Podstawy teoretyczne
Pojcia podstawowe Baza Danych jest to zbiór danych o okrelonej strukturze zapisany w nieulotnej pamici, mogcy zaspokoi potrzeby wielu u!ytkowników korzystajcych z niego w sposóbs selektywny w dogodnym
Komentarz technik ochrony fizycznej osób i mienia 515[01]-01 Czerwiec 2009
Strona 1 z 19 Strona 2 z 19 Strona 3 z 19 Strona 4 z 19 Strona 5 z 19 Strona 6 z 19 Strona 7 z 19 W pracy egzaminacyjnej oceniane były elementy: I. Tytuł pracy egzaminacyjnej II. Założenia do projektu
Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania...
Zawartość Instalacja... 1 Konfiguracja... 2 Uruchomienie i praca z raportem... 4 Metody wyszukiwania... 6 Prezentacja wyników... 7 Wycenianie... 9 Wstęp Narzędzie ściśle współpracujące z raportem: Moduł
Krajowy System Monitorowania Technologii rodowiskowych Zarys koncepcji Dlaczego taki system jest potrzebny?
Krajowy System Monitorowania Technologii rodowiskowych Dlaczego taki system jest potrzebny? Zarys koncepcji Sektor technologii rodowiskowych postrzegany jest w Europie i na wiecie jako jeden z najbardziej
Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska
Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska 1 Projekt Ogólnopolski: 1.1. Projekt Ogólnopolski (dalej Projekt ) to przedsięwzięcie Stowarzyszenia podjęte w celu realizacji celów
1. Wprowadzenie do C/C++
Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Proces tworzenia programu:
Temat 1 Pojcia: algorytm, program, kompilacja i wykonanie programu. Proste typy danych i deklaracja zmiennych typu prostego. Instrukcja przypisania. Operacje wejcia/wyjcia. Przykłady prostych programów
BADANIE UMIEJĘTNOŚCI UCZNIÓW W TRZECIEJ KLASIE GIMNAZJUM CZĘŚĆ MATEMATYCZNO-PRZYRODNICZA
BADANIE UMIEJĘTNOŚCI UCZNIÓW W TRZECIEJ KLASIE GIMNAZJUM CZĘŚĆ MATEMATYCZNO-RZYRODNICZA MATEMATYKA TEST 4 Zadanie 1 Dane są punkty A = ( 1, 1) oraz B = (3, 2). Jaką długość ma odcinek AB? Wybierz odpowiedź
ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:
ASD - ćwiczenia III Dowodzenie poprawności programów iteracyjnych Nieformalnie o poprawności programów: poprawność częściowa jeżeli program zakończy działanie dla danych wejściowych spełniających założony
Program do konwersji obrazu na cig zero-jedynkowy
Łukasz Wany Program do konwersji obrazu na cig zero-jedynkowy Wstp Budujc sie neuronow do kompresji znaków, na samym pocztku zmierzylimy si z problemem przygotowywania danych do nauki sieci. Przyjlimy,
R E G U L A M I N. Warsztatów Szkolnych Zespołu Szkół Nr 10 im. Bolesława Chrobrego w Koszalinie
R E G U L A M I N Warsztatów Szkolnych Zespołu Szkół Nr 10 im. Bolesława Chrobrego w Koszalinie I. Informacje o Warsztatach Szkolnych 1. Pełna nazwa i adres: Zespół Szkół Nr 10 im. Bolesława Chrobrego
PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec
PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25
Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski
Instrukcja obsługi Norton Commander (NC) wersja 4.0 Autor: mgr inż. Tomasz Staniszewski ITM Zakład Technologii Maszyn, 15.10.2001 2 1.Uruchomienie programu Aby uruchomić program Norton Commander standardowo
Model dojrzałoci CMMI
Model dojrzałoci CMMI Witam na trzecim wykładzie dotyczcym zaawansowanej inynierii oprogramowania. Dzisiaj bdzie mowa o modelu dojrzałoci CMMI. 1 Plan wykładów! " # $ % & ' ( )! " # $ % & ' ( ) " * + "
AltiumLive - Content Store. AltiumLive - Content Store. Language. Contents
AltiumLive - Content Store Language AltiumLive - Content Store Contents Dostp do Content Store Obsuga Content Store Przegldanie elementów i pobieranie zawartoci Wyszukiwanie elementów Ocenianie zawartoci
Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu
Rozdział 6 Pakowanie plecaka 6.1 Postawienie problemu Jak zauważyliśmy, szyfry oparte na rachunku macierzowym nie są przerażająco trudne do złamania. Zdecydowanie trudniejszy jest kryptosystem oparty na
Instrukcja obsługi dodatku InsERT GT Smart Documents
Instrukcja obsługi dodatku InsERT GT Smart Documents InsERT, grudzie 2003 http://www.insert.com.pl/office2003 InsERT GT Smart Documents to przygotowany przez firm InsERT specjalny dodatek, umoliwiajcy
Wniosek o rejestrację podmiotu w Krajowym Rejestrze Sądowym 1) FUNDACJA, STOWARZYSZENIE, INNA ORGANIZACJA SPOŁECZNA LUB ZAWODOWA
KRS-W20 Sygnatura akt (wypełnia sąd) CORS Centrum Ogólnopolskich Rejestrów Sądowych Krajowy Rejestr Sądowy Wniosek o rejestrację podmiotu w Krajowym Rejestrze Sądowym 1) FUNDACJA, STOWARZYSZENIE, INNA
ostatni dzień miesiąca (yyyy-mm-dd) miejsce zam. - ulica nr miejscowość wypełnienia oświadczenia
ostatni dzień miesiąca (yyyy-mm-dd) 2014 11 30 imię i nazwisko: miejsce zam. - ulica nr miejsce zam. - kod Miejscowość Imię nazwisko ul. Xxx nr kod miejscowość miejscowość wypełnienia oświadczenia miejscowość
Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?
Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych? 1 Podstawowe pojęcia: 2 3 4 5 Dana (ang.data) najmniejsza, elementarna jednostka informacji o obiekcie będąca przedmiotem przetwarzania
Planowanie adresacji IP dla przedsibiorstwa.
Planowanie adresacji IP dla przedsibiorstwa. Wstp Przy podejciu do planowania adresacji IP moemy spotka si z 2 głównymi przypadkami: planowanie za pomoc adresów sieci prywatnej przypadek, w którym jeeli
Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.
Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą. Po pierwsze - notacja - trzymasz swoją kostkę w rękach? Widzisz ścianki, którymi można ruszać? Notacja to oznaczenie
Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Sieci komputerowe Rodzaj zajęć: wykład, laboratorium Technologie internetowe Internet technologies Forma studiów:
Podstawy programowania
Podstawy programowania Elementy algorytmiki C w środowisku.e (C#) dr inŝ. Grzegorz Zych Copernicanum, pok. 104 lub 206a 1 Minimum programowe reści kształcenia: Pojęcie algorytmu. Podstawowe konstrukcje
Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM
Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM PROGRAM INWENTARYZACJI Poznań 2011 Spis treści 1. WSTĘP...4 2. SPIS INWENTARZA (EWIDENCJA)...5 3. STAŁE UBYTKI...7 4. INTERPRETACJA ZAŁĄCZNIKÓW
5.13.A.11 Wymagania szczegółowe dla urzdze szkolnego placu zabaw.
** 5.13.A.11 Wymagania szczegółowe dla urzdze szkolnego placu zabaw. B2 Podium Podest, pełnicy min. funkcj obserwacyjn, zbudowany jest z rur metalowych malowanych proszkowo w kolorze brzowym. Wypełnienie
Zadania do wykonaj przed przyst!pieniem do pracy:
wiczenie 3 Tworzenie bazy danych Biblioteka tworzenie kwerend, formularzy Cel wiczenia: Zapoznanie si ze sposobami konstruowania formularzy operujcych na danych z tabel oraz metodami tworzenia kwerend
Zastosowanie programu Microsoft Excel do analizy wyników nauczania
Grayna Napieralska Zastosowanie programu Microsoft Excel do analizy wyników nauczania Koniecznym i bardzo wanym elementem pracy dydaktycznej nauczyciela jest badanie wyników nauczania. Prawidłow analiz
Wniosek o rejestrację podmiotu w Krajowym Rejestrze Sądowym 1)
KRS-W20 Sygnatura akt (wypełnia sąd) CORS Centrum Ogólnopolskich Rejestrów Sądowych Krajowy Rejestr Sądowy Wniosek o rejestrację podmiotu w Krajowym Rejestrze Sądowym 1) FUNDACJA, STOWARZYSZENIE, INNA
Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych
Program szkoleniowy Efektywni50+ Moduł III 1 Wprowadzenie do zagadnienia wymiany dokumentów. Lekcja rozpoczynająca moduł poświęcony standardom wymiany danych. Wprowadzenie do zagadnień wymiany danych w
Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego.
Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego. Jerzy Grobelny Politechnika Wrocławska Projektowanie zadaniowe jest jednym z podstawowych podej do racjonalnego kształtowania
Podstawowe działania w rachunku macierzowym
Podstawowe działania w rachunku macierzowym Marcin Detka Katedra Informatyki Stosowanej Kielce, Wrzesień 2004 1 MACIERZE 1 1 Macierze Macierz prostokątną A o wymiarach m n (m wierszy w n kolumnach) definiujemy:
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: MECHATRONIKA Rodzaj przedmiotu: obowiązkowy Rodzaj zajęć: wykład, laboratorium ROBOTYKA Robotics Forma studiów: stacjonarne Poziom przedmiotu: I stopnia Liczba godzin/tydzień:
Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.
Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.. Oznaczenia i załoenia Oznaczenia G = - graf skierowany z funkcj wagi s wierzchołek ródłowy t wierzchołek
SZABLONY KOMUNIKATÓW SPIS TREŚCI
SZABLONY KOMUNIKATÓW SPIS TREŚCI Zarządzanie zawartością stron... 2 Dodawanie komunikatu... 3 Lista komunikatów... 6 Lista komunikatów na stronie głównej... 9 ZARZĄDZANIE ZAWARTOŚCIĄ STRON Istnieją dwa
Harmonogramowanie projektów Zarządzanie czasem
Harmonogramowanie projektów Zarządzanie czasem Zarządzanie czasem TOMASZ ŁUKASZEWSKI INSTYTUT INFORMATYKI W ZARZĄDZANIU Zarządzanie czasem w projekcie /49 Czas w zarządzaniu projektami 1. Pojęcie zarządzania
9. Dynamiczne generowanie grafiki, cz. 3
9. Dynamiczne generowanie grafiki, cz. 3 9.1. Kopiowanie fragmentów obrazu Funkcja imagecopy służy do kopiowania fragmentów obrazka między dwoma różnymi obrazkami, lub w obrębie jednego. Uwaga, przy kopiowaniu
Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016
Politechnika Krakowska im. Tadeusza Kościuszki Karta przedmiotu Wydział Mechaniczny obowiązuje studentów rozpoczynających studia w roku akademickim 015/016 Kierunek studiów: Inżynieria Produkcji Forma
Symfonia Produkcja Instrukcja instalacji. Wersja 2013
Symfonia Produkcja Instrukcja instalacji Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy
Wniosek o rejestrację podmiotu w rejestrze przedsiębiorców SPÓŁKA AKCYJNA. q 1. Nowego podmiotu q 2. KRS-W4. CzêœæA CORS
KRS-W4 CORS Centrum Ogólnopolskich Rejestrów Sądowych Sygnatura akt (wypełnia sąd) Wniosek o rejestrację podmiotu w rejestrze przedsiębiorców SPÓŁKA AKCYJNA Formularz należy wypełnić w języku polskim,
Nazwa przedmiotu: PODSTAWY TEORII ZBIORÓW ROZMYTYCH I ARYTMETYKI PRZEDZIAŁOWEJ Foundations of fuzzy set theory and interval arithmetic Kierunek:
Nazwa przedmiotu: PODSTAWY TEORII ZBIORÓW ROZMYTYCH I ARYTMETYKI PRZEDZIAŁOWEJ Foundations of fuzzy set theory and interval arithmetic Kierunek: Forma studiów: Informatyka Stacjonarne Rodzaj przedmiotu:
Zastosowanie metod statystycznych do problemu ujednoznaczniania struktury zdania w języku polskim
Motywacja Zastosowanie metod statystycznych do problemu ujednoznaczniania struktury zdania w języku polskim Seminarium IPI PAN, 03.01.2011 Outline Motywacja 1 Motywacja Poziomy anotacji Równoważność dystrybucyjna
ECDL Advanced Moduł AM3 Przetwarzanie tekstu Syllabus, wersja 2.0
ECDL Advanced Moduł AM3 Przetwarzanie tekstu Syllabus, wersja 2.0 Copyright 2010, Polskie Towarzystwo Informatyczne Zastrzeżenie Dokument ten został opracowany na podstawie materiałów źródłowych pochodzących
7. REZONANS W OBWODACH ELEKTRYCZNYCH
OBWODY SYGNAŁY 7. EZONANS W OBWODAH EEKTYZNYH 7.. ZJAWSKO EZONANS Obwody elektryczne, w których występuje zjawisko rezonansu nazywane są obwodami rezonansowymi lub drgającymi. ozpatrując bezźródłowy obwód
Organizacja produkcji
Formy organizacji Organizacja Stacjonarna forma organizacji Niepotokowe formy organizacji Potokowe formy organizacji Gniazdowa forma organizacji Formy organizacji W zaleŝności od okoliczności to... zadanie
KONKURS PRZEDMIOTOWY INFORMATYCZNY DLA UCZNIÓW GIMNAZJUM
... piecztka WKK KONKURS PRZEDMIOTOWY INFORMATYCZNY DLA UCZNIÓW GIMNAZJUM ETAP WOJEWÓDZKI Drogi Uczniu, witaj w II etapie konkursu informatycznego. Przeczytaj uwanie instrukcj i postaraj si prawidłowo
System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy
Instrukcja obsługi programu 2.11. Przygotowanie programu do pracy - ECP Architektura inter/intranetowa System Informatyczny CELAB Przygotowanie programu do pracy - Ewidencja Czasu Pracy Spis treści 1.
System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy
System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy modelowaniem, a pewien dobrze zdefiniowany sposób jego
W tym elemencie większość zdających nie zapisywała za pomocą równania reakcji procesu zobojętniania tlenku sodu mianowanym roztworem kwasu solnego.
W tym elemencie większość zdających nie zapisywała za pomocą równania reakcji procesu zobojętniania tlenku sodu mianowanym roztworem kwasu solnego. Ad. IV. Wykaz prac według kolejności ich wykonania. Ten
Klonowanie MAC adresu oraz TTL
1. Co to jest MAC adres? Klonowanie MAC adresu oraz TTL Adres MAC (Media Access Control) to unikalny adres (numer seryjny) kadego urzdzenia sieciowego (jak np. karta sieciowa). Kady MAC adres ma długo
Firma Informatyczna JazzBIT
Artykuły i obrazy Autor: Stefan Wajda [zwiastun] 10.02.2006. Dodawanie i publikowanie artykułów to najczęstsze zadanie. I chociaż nie jest skomplikowane, może początkujacych wprawiać w zakłopotanie. Trzeba
TAJEMNICA BANKOWA I OCHRONA DANYCH OSOBOWYCH W PRAKTYCE BANKOWEJ
OFERTA dotyczące realizacji e-szkolenia nt: TAJEMNICA BANKOWA I OCHRONA DANYCH OSOBOWYCH W PRAKTYCE BANKOWEJ dla sektora bankowego OFERTA dotycząca realizacji e-szkolenia nt.: Tajemnica bankowa i ochrona
Obowiązki informacyjne i promocyjne dla beneficjentów RPO WM 2014-2020
Obowiązki informacyjne i promocyjne dla beneficjentów RPO WM 2014-2020 DLACZEGO NALEŻY PROMOWAĆ PROJEKTY? Podstawą dla działań informacyjnych i promocyjnych w ramach projektów unijnych jest prawo obywateli
PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3
PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 29/2 SEMESTR 3 Rozwiązania zadań nie były w żaden sposób konsultowane z żadnym wiarygodnym źródłem informacji!!!
PROGRAM NAUCZANIA INFORMATYKA
PROGRAM NAUCZANIA INFORMATYKA KLASA VI Program nauczania: DKOS 5002 38/05 Podręcznik: Informatyka Europejczyjka. Wydawnictwo HELION Lp. Temat lekcji podstawowe Wymagania programowe ponadpodstawowe 1 Lekcja
Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.
Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili
Specyfikacja techniczna banerów Flash
Specyfikacja techniczna banerów Flash Po stworzeniu własnego banera reklamowego należy dodać kilka elementów umożliwiających integrację z systemem wyświetlającym i śledzącym reklamy na stronie www. Specyfikacje
INFORMATYKA dla gimnazjum Opis założonych osiągnięć ucznia klasy trzeciej
INFORMATYKA dla gimnazjum Opis założonych osiągnięć ucznia klasy trzeciej W ROKU SZKOLNYM 2015/2016 1. Podstawa prawna do opracowania Przedmiotowego Systemu Oceniania. a) Rozporządzenie Ministra Edukacji
PAKIET MathCad - Część III
Opracowanie: Anna Kluźniak / Jadwiga Matla Ćw3.mcd 1/12 Katedra Informatyki Stosowanej - Studium Podstaw Informatyki PAKIET MathCad - Część III RÓWNANIA I UKŁADY RÓWNAŃ 1. Równania z jedną niewiadomą MathCad
OGŁOSZENIE O ZAMÓWIENIU - usługi
ZP/TESLA/09/2014 Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia: www.ur.edu.pl/uniwersytet/przetargi/ogloszenia/uslugi Przeprowadzenie kursu pt.:
Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)
Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy) 1. Wejście na stronę http://www.officemedia.com.pl strona główną Office Media 2. Logowanie do zakupowej części serwisu. Login i hasło należy
Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.
Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu. Uk ad graficzny CKE 2010 KOD WPISUJE ZDAJ CY PESEL Miejsce na naklejk z kodem EGZAMIN MATURALNY
Mnożenie macierzy. Systemy z pamięcią współdzieloną Systemy z pamięcią rozproszoną Efektywność
Mnożenie macierzy Systemy z pamięcią współdzieloną Systemy z pamięcią rozproszoną Efektywność Literatura: Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; 1 Mnożenie macierzy dostęp do
Podstawy Informatyki Gramatyki formalne
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Języki i gramatyki Analiza syntaktyczna Semantyka 2 Podstawowe pojęcia Gramatyki wg Chomsky ego Notacja Backusa-Naura
CELAB. System Informatyczny. Punkt przyjęć krok po kroku LTC 1
Instrukcja obsługi programu 2.03.a Punkt przyjęć krok po kroku Architektura inter/intranetowa Aktualizowano w dniu: 2007-10-08 System Informatyczny CELAB Punkt przyjęć krok po kroku 1 Po poprawnym zalogowaniu
Kurs z matematyki - zadania
Kurs z matematyki - zadania Miara łukowa kąta Zadanie Miary kątów wyrażone w stopniach zapisać w radianach: a) 0, b) 80, c) 90, d), e) 0, f) 0, g) 0, h), i) 0, j) 70, k), l) 80, m) 080, n), o) 0 Zadanie
Zamawiający potwierdza, że zapis ten należy rozumieć jako przeprowadzenie audytu z usług Inżyniera.
Pytanie nr 1 Bardzo prosimy o wyjaśnienie jak postrzegają Państwo możliwość przeliczenia walut obcych na PLN przez Oferenta, który będzie składał ofertę i chciał mieć pewność, iż spełnia warunki dopuszczające