Rodzaje Code slicing w weryfikacji Narzędzia Literatura. Code slicing. Bartłomiej Wołowiec. 16 lutego 2011

Wielkość: px
Rozpocząć pokaz od strony:

Download "Rodzaje Code slicing w weryfikacji Narzędzia Literatura. Code slicing. Bartłomiej Wołowiec. 16 lutego 2011"

Transkrypt

1 w weryfikacji 16 lutego 2011

2 w weryfikacji 1 Rodzaje Statyczny slicing (ang. Static Slicing) Dynamiczny slicing (ang. Dynamic Slicing) Warunkowy slicing (ang. Conditioned Slicing) Bezpostaciowy slicing (ang. Amorphous Slicing) 2 w weryfikacji Motywacja Rodzaje slicingu w weryfikacji 3 Frama-C Bogor CodeSurfer 4

3 w weryfikacji Code / Program slicing Zaproponowany przez Mark Weiser w 1981, Ułatwia analizę dużych programów, Czytelniejsze od grafów zależności, Zmniejsza ilość kodu podczas weryfikacji,

4 w weryfikacji Statyczny slicing (ang. Static Slicing) Dynamiczny slicing (ang. Dynamic Slicing) Warunkowy slicing (ang. Conditioned Slicing) Bezpostaciowy slicing (ang. Amorphous Slicing) Początkowa metoda zaproponowana przez Weiser-a, Usuwanie całych wyrażeń, jeżeli nie mają one wpływu na wybrane zmienne Wybieramy zmienne użyte w wyrażeniu oraz jako lokalizacje Najprostsza odmiana slicingu Mało efektywna dla większości kawałków kodu

5 -)1!+(1<#-#&2&,#-)&-)1!+;"31'-.$/,."# 1 3*+:&+:"+3,# #-1<+,."# 1-)# Rodzaje Statyczny slicing (ang. Static Slicing),2;1$35 6.$)-1* &;,+"3+-. ; 41;+: 3#,)1"#,) $ )-C+"4#$0 -#;14#;,!.,&,."# 1!+!"31:3#0 $.$/,."# 1-)13#:#-1,*".;1")&42()$)-<&-#01<++2) <#(-+ w weryfikacji Dynamiczny slicing (ang. Dynamic Slicing) +"#3-#,#";+ $)34)1--.$/!"31;,#"3#-.$/!"313;+,."# 1-)15D"3.* #:14+'"#3&= Warunkowy slicing (ang. Conditioned Slicing) 0 $.4; 41;+: 2 :,#!+-) 231".2&-*)5E.2&-1*F!"31:2;#,)#!"3.* #:+,.*+: Bezpostaciowy slicing (ang. Amorphous Slicing),0 3.*&G#H#5!"#$&'()*D"3.* #:+,.*+: "B: +,.,0 3.*&G#H#5 E.2&-1* I!"31:2;#,)#,.$)-1* *+:& &;,+"3+-. 3<+:-)1 3 *".;1")&4 2()$)-= <&<15, z>a<:3)1j15k012;()-) *+:&:(#*;B"10*+-2;"&+,#-.' :3)1,.$)-1*# JzK012;"+3,# #- 34)1-- 5

6 -)1!+(1<#-#&2&,#-)&-)1!+;"31'-.$/,."# 1 3*+:&+:"+3,# #-1<+,."# 1-)# Rodzaje Statyczny slicing (ang. Static Slicing),2;1$35 6.$)-1* &;,+"3+-. ; 41;+: 3#,)1"#,) $ )-C+"4#$0 -#;14#;,!.,&,."# 1!+!"31:3#0 $.$/,."# 1-)13#:#-1,*".;1")&42()$)-<&-#01<++2) <#(-+ w weryfikacji Dynamiczny slicing (ang. Dynamic Slicing) +"#3-#,#";+ $)34)1--.$/!"31;,#"3#-.$/!"313;+,."# 1-)15D"3.* #:14+'"#3&= Warunkowy slicing (ang. Conditioned Slicing) 0 $.4; 41;+: 2 :,#!+-) 231".2&-*)5E.2&-1*F!"31:2;#,)#!"3.* #:+,.*+: Bezpostaciowy slicing (ang. Amorphous Slicing),0 3.*&G#H#5!"#$&'()*D"3.* #:+,.*+: "B: +,.,0 3.*&G#H#5 E.2&-1* I!"31:2;#,)#,.$)-1* *+:& &;,+"3+-. 3<+:-)1 3 *".;1")&4 2()$)-= <&<15, z>a<:3)1j15k012;()-) *+:&:(#*;B"10*+-2;"&+,#-.' :3)1,.$)-1*# JzK012;"+3,# #- 34)1-- 5!"#$&'()*!"#$&'(!)*+,-.,&#!./,0&'!.!(-#*'-)1!2345!.67!! 8*+,! 0,9*-.'$5! '! )*+,-.,&#! +#$&'(! (,0)!!./,0&'!.! 0':&$;!.8+'-8!;'0#&'! +#-8 '&85!(*<-'!1,/!1'!+=

7 w weryfikacji Statyczny slicing (ang. Static Slicing) Dynamiczny slicing (ang. Dynamic Slicing) Warunkowy slicing (ang. Conditioned Slicing) Bezpostaciowy slicing (ang. Amorphous Slicing) Dodajemy konkretne wartości niektórych zmiennych, Często duża redukcja kodu, Za duże ograniczenia na zmienne,

8 -1<+,2;1$3>#-<5executable backward static + 1 A *;B"1#&;+"!"3.0 :1C)-)&0 $,.$)-*)*+:&+"#32!+2+'&;,+"31-)#,.$)-*#561)21" Rodzaje Statyczny slicing (ang. Static Slicing)!"3.0 A 1*# :.,.$)-1*4&2)!+3+2;#,.*+-.,#(-.4!"+<"#414#01<+;,+"31= w weryfikacji Dynamiczny slicing (ang. Dynamic Slicing) -)1!+(1<#-#&2&,#-)&-)1!+;"31'-.$/,."# 1 3*+:&+:"+3,# #-1<+,."# 1-)# Warunkowy slicing (ang. Conditioned Slicing),2;1$35 6.$)-1* &;,+"3+-. ; 41;+: 3#,)1"#,) $ Bezpostaciowy )-C+"4#$0 -#;14#;,!.,& slicing (ang. Amorphous Slicing),."# 1!+!"31:3#0 $.$/,."# 1-)13#:#-1,*".;1")&42()$)-<&-#01<++2) <#(-+ +"#3-#,#";+ $)34)1--.$/!"31;,#"3#-.$/!"313;+,."# 1-)15D"3.* #:14+'"#3&= 0 $.4; 41;+: 2 :,#!+-) 231".2&-*)5E.2&-1*F!"31:2;#,)#!"3.* #:+,.*+:,0 3.*&G#H#5!"#$&'()*D"3.* #:+,.*+: "B: +,.,0 3.*&G#H#5 E.2&-1* I!"31:2;#,)#,.$)-1* *+:& &;,+"3+-. 3<+:-)1 3 *".;1")&4 2()$)-= <&<15, z>a<:3)1j15k012;()-) *+:&:(#*;B"10*+-2;"&+,#-.' :3)1,.$)-1*# JzK012;"+3,# #- 34)1-- 5

9 -1<+,2;1$3>#-<5executable backward static + 1 A *;B"1#&;+"!"3.0 :1C)-)&0 $,.$)-*)*+:&+"#32!+2+'&;,+"31-)#,.$)-*#561)21" Rodzaje Statyczny slicing (ang. Static Slicing)!"3.0 A 1*# :.,.$)-1*4&2)!+3+2;#,.*+-.,#(-.4!"+<"#414#01<+;,+"31= w weryfikacji Dynamiczny slicing (ang. Dynamic Slicing) -)1!+(1<#-#&2&,#-)&-)1!+;"31'-.$/,."# 1 3*+:&+:"+3,# #-1<+,."# 1-)# Warunkowy slicing (ang. Conditioned Slicing)!,2;1$35 6.$)-1* &;,+"3+-. ; 41;+: 3#,)1"#,) $ Bezpostaciowy )-C+"4#$0 -#;14#;,!.,& slicing (ang. Amorphous Slicing) "#$ &'(!#)*+!+,,(-.'/0#!+1*-*'02!3/+,!&#+, )'(!4!)5--6!789:!7;9:!7<9!#5.!7=9>!,."# 1!+!"31:3#0 $.$/,."# 1-)13#:#-1,*".;1")&42()$)-<&-#01<++2) <#(-+ +"#3-#,#";+ $)34)1--.$/!"31;,#"3#-.$/!"313;+,."# 1-)15D"3.* #:14+'"#3&= 0 $.4; 41;+: 2 :,#!+-) 231".2&-*)5E.2&-1*F!"31:2;#,)#!"3.* #:+,.*+:,0 3.*&G#H#5!"!# $&'()*+&#,-)*)&.#/'&."#Dynamic Slicing0# ".* $*!?/,#&.*/!&('?*-.'/0#!+1*-*'02!?# '!2.(+$!.'-.'*/!?'*/3+.(!4(-*'/$! 02! &'*! &#&,$#4#! 45,# -*!.?*/''(-6:! &1! $,C5(-6!,4#5.#'(! 3/+,! 4(-*'/$! -*!&#!+,,(-.'/0#!+1*-*'02!'*/!+!,2!5#.),5(4'/!4+.(+,$*/!?# B 1*4/!45,# -*!.?*/''(-6>!D5(,/5*2?!&('?*-.'/0#!+1*-*'02!EF:!G:!HI!+$ &!+*!4* -!.!,5./-6!+$ &#4(-6J!! #K+.52!4(+, )#4'*!L1#$1*.-3*M!4(5 /!F:!.?*/''(-6!G:! 2+,1#'(-6!45,# -! &#! )5.($ &#4/0#! $#&2! 5C& #4/0#! )5./&+,4*#'/0#! '! 5(+2'$2! N:! &1! $5(,/5*2?! &('?*-.'/0#! +1*-*'02! +A#5?2 #4'/0#! 3$#J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! <15, z, <args[0]="1", args[1]="2", args[2]="3">>:! 4(-*'/$! #)5C-.! -. -*! +, (-6!,$*-6! 3$! &/$15-3! $1+(! #5.!?/,#&(! +$ &! +*!.!)#3/B &('-./0#!4(5 /'*!Lint z = 0;M>!O/.21,,!)5./&+,4*#5(+2'/$!;>!!"#$&'()*D"3.* #:+,.*+: "B: +,.,0 3.*&G#H#5! E.2&-1* I!"31:2;#,)#,.$)-1* *+:& &;,+"3+-. 3<+:-)1 3 *".;1")&4 2()$)-= <&<15, z>a<:3)1j15k012;()-) *+:&:(#*;B"10*+-2;"&+,#-.' :3)1,.$)-1*# JzK012;"+3,# #- 34)1-- 5! <15, z, <args[0]="1", args[1]="2", args[2]="3">> P#'*/4!45,#!.?*/''/3!args[0]!3/+,!2+,1#'!4!$5(,/5*2?:!4* -! -*/ $!4(B $#'(4'*!)5#05?2!3/+,!.!0C5(!.''>!Q!45,# -*!.?*/''/3!RxS!4('*$:!*!4!1*'**!=! #5(0*'1'/0#! $#&2! 5C& #4/0#! L5(+2'/$!NM! 452'/$!.4+./! K &.*/! +)/ '*#'(! *!+,/5#4'*/!'*0&(!'*/!.#+,'*/!)5./$.'/!&#!K1#$2!RelseS>!"1,/0#!,/!4!)5./-*4B '# -*!&#!4(-*'$!2,4#5.#'/0#!4!#)5-*2!#!?/,#&!+,,(-.'/0#!+1*-*'02:!4(5 /'*!.!

10 w weryfikacji Statyczny slicing (ang. Static Slicing) Dynamiczny slicing (ang. Dynamic Slicing) Warunkowy slicing (ang. Conditioned Slicing) Bezpostaciowy slicing (ang. Amorphous Slicing) Dodajemy zależności między zmiennymi (np x < y) Przydatny przy dowodzeniu własności Trudny w realizacji

11 61)21"!"31:2;#,) 41;+: +'1$-)1-+23 $ -#3,,.*+-.,#(-1<+2()$)-<&2;#;.$3= -1<+,2;1$3>#-<5executable Rodzaje backward static Statyczny + 1 A (ang. Static Slicing) *;B"1#&;+"!"3.0 :1C)-)&0 $,.$)-*)*+:&+"#32!+2+'&;,+"31-)#,.$)-*#561)21" w weryfikacji Dynamiczny slicing (ang. Dynamic Slicing)!"3.0 A 1*# :.,.$)-1*4&2)!+3+2;#,.*+-.,#(-.4!"+<"#414#01<+;,+"31= Warunkowy slicing (ang. Conditioned Slicing) -)1!+(1<#-#&2&,#-)&-)1!+;"31'-.$/,."# 1 3*+:&+:"+3,# #-1<+,."# 1-)# Bezpostaciowy slicing (ang. Amorphous Slicing),2;1$35 6.$)-1* &;,+"3+-. ; 41;+: 3#,)1"#,) $ )-C+"4#$0 -#;14#;,!.,&,."# 1!+!"31:3#0 $.$/,."# 1-)13#:#-1,*".;1")&42()$)-<&-#01<++2) <#(-+ +"#3-#,#";+ $)34)1--.$/!"31;,#"3#-.$/!"313;+,."# 1-)15D"3.* #:14+'"#3&= 0 $.4; 41;+: 2 :,#!+-) 231".2&-*)5E.2&-1*F!"31:2;#,)#!"3.* #:+,.*+:,0 3.*&G#H#5!"#$&'()*D"3.* #:+,.*+: "B: +,.,0 3.*&G#H#5 E.2&-1* I!"31:2;#,)#,.$)-1* *+:& &;,+"3+-. 3<+:-)1 3 *".;1")&4 2()$)-= <&<15, z>a<:3)1j15k012;()-) *+:&:(#*;B"10*+-2;"&+,#-.' :3)1,.$)-1*# JzK012;"+3,# #- 34)1-- 5

12 61)21"!"31:2;#,) 41;+: +'1$-)1-+23 $ -#3,,.*+-.,#(-1<+2()$)-<&2;#;.$3= -1<+,2;1$3>#-<5executable Rodzaje backward static Statyczny + 1 A (ang. Static Slicing) *;B"1#&;+"!"3.0 :1C)-)&0 $,.$)-*)*+:&+"#32!+2+'&;,+"31-)#,.$)-*#561)21" w weryfikacji Dynamiczny slicing (ang. Dynamic Slicing)!"3.0 A 1*# :.,.$)-1*4&2)!+3+2;#,.*+-.,#(-.4!"+<"#414#01<+;,+"31= Warunkowy slicing (ang. Conditioned Slicing) -)1!+(1<#-#&2&,#-)&-)1!+;"31'-.$/,."# 1 3*+:&+:"+3,# #-1<+,."# 1-)# Bezpostaciowy slicing (ang. Amorphous Slicing),2;1$35 6.$)-1* &;,+"3+-. ; 41;+: 3#,)1"#,) $ )-C+"4#$0 -#;14#;,!.,&,."# 1!+!"31:3#0 $.$/,."# 1-)13#:#-1,*".;1")&42()$)-<&-#01<++2) <#(-+ +"#3-#,#";+ $)34)1--.$/!"31;,#"3#-.$/!"313;+,."# 1-)15D"3.* #:14+'"#3&= 0 $.4; 41;+: 2 :,#!+-) 231".2&-*)5E.2&-1*F!"31:2;#,)#!"3.* #:+,.*+:,0 3.*&G#H#5!"#$!&!'( ) *+"!$+,&-.#,/,01& )".!'+/2".3+$/"24)' 3$)0$2'#$ 04 /, 34-, 52" 2-,$00"-,6 7+"!$+,&- )'+&0*4)$14.#,/,01& 89: ;: <=.* '5'., ), / 2!+2$/>.* '54)"/>? 34)'0,'A#4*'#,2'/(,B)"+' $ 9: 2-,$00"/>;: )'+!4 $0,')'+&0*4)$14<6 C+2"* '54)42'* '5'( /3$),$0.!43,$ 0'2'3,.' *+"!$+,&-)'+&0D *4)$14.#,/,01&('*4? <15, z, <args[1]="1", args[0] < args[1], args[2]=args[0] > > E"/,0$* &2".*'0" 21450,$ 2!'* 2'5'0"- *+"!$+,&- 3+2$5.!'),40"0'+".&0*&F6!"#$&'()*D"3.* #:+,.*+: "B: +,.,0 3.*&G#H#5 E.2&-1* I!"31:2;#,)#,.$)-1* *+:& &;,+"3+-. 3<+:-)1 3 *".;1")&4 2()$)-= <&<15, z>a<:3)1j15k012;()-) *+:&:(#*;B"10*+-2;"&+,#-.' :3)1,.$)-1*# JzK012;"+3,# #- 34)1-- 5!"#$&'()*E"/,0$*&!)4+240"21450,$2*+"!$+,&- 8GH:2:8'+1.IGJK"G":'+1.ILJ8'+1.IGJ:'+1.IMJK'+1.ILJ== ('* ) 3+2"3'5*& 5"0'-,/20$14.#,/,01& -4 0' 3+2$),52,$!&3+2$3 ").!$+4)'0,' ) 3+41+'-,$6 N 2'#$ 04 /, 345'0"/> ) *+"!$+,&-.#,/,01& -4 0' )"D )0,4.*4)' : $)'+!4 args[0]'/42'!"-,52,$)'+!4 52,$ 2').2$-0,$(.2'45G6Q20'/2'!4: $)'+&0$*x Code<= slicing 1A#,0,'R4+"1,0'#0$14*45&

13 w weryfikacji Statyczny slicing (ang. Static Slicing) Dynamiczny slicing (ang. Dynamic Slicing) Warunkowy slicing (ang. Conditioned Slicing) Bezpostaciowy slicing (ang. Amorphous Slicing) Dopuszczamy zmianę składni (nie tylko usuwanie) Zwiększona czytelność powstałego kodu (lub zmniejszona...)

14 !"3.0 A 1*# :.,.$)-1*4&2)!+3+2;#,.*+-.,#(-.4!"+<"#414#01<+;,+"31= -)1!+(1<#-#&2&,#-)&-)1!+;"31'-.$/,."# 1 3*+:&+:"+3,# #-1<+,."# 1-)# Rodzaje Statyczny slicing (ang. Static Slicing),2;1$35 Code 6.$)-1* slicing &;,+"3+-. w weryfikacji ; 41;+: 3#,)1"#,) $ Dynamiczny )-C+"4#$0 -#;14#;,!.,& slicing (ang. Dynamic Slicing),."# 1!+!"31:3#0 $.$/,."# 1-)13#:#-1,*".;1")&42()$)-<&-#01<++2) <#(-+ Warunkowy slicing (ang. Conditioned Slicing) +"#3-#,#";+ $)34)1--.$/!"31;,#"3#-.$/!"313;+,."# 1-)15D"3.* #:14+'"#3&= Bezpostaciowy slicing (ang. Amorphous Slicing) 0 $.4; 41;+: 2 :,#!+-) 231".2&-*)5E.2&-1*F!"31:2;#,)#!"3.* #:+,.*+:,0 3.*&G#H#5!"#$&'()*D"3.* #:+,.*+: "B: +,.,0 3.*&G#H#5 E.2&-1* I!"31:2;#,)#,.$)-1* *+:& &;,+"3+-. 3<+:-)1 3 *".;1")&4 2()$)-= <&<15, z>a<:3)1j15k012;()-) *+:&:(#*;B"10*+-2;"&+,#-.' :3)1,.$)-1*# JzK012;"+3,# #- 34)1-- 5

15 !"3.0 A 1*# :.,.$)-1*4&2)!+3+2;#,.*+-.,#(-.4!"+<"#414#01<+;,+"31= -)1!+(1<#-#&2&,#-)&-)1!+;"31'-.$/,."# 1 3*+:&+:"+3,# #-1<+,."# 1-)# Rodzaje Statyczny slicing (ang. Static Slicing),2;1$35 Code 6.$)-1* slicing &;,+"3+-. w weryfikacji ; 41;+: 3#,)1"#,) $ Dynamiczny )-C+"4#$0 -#;14#;,!.,& slicing (ang. Dynamic Slicing),."# 1!+!"31:3#0 $.$/,."# 1-)13#:#-1,*".;1")&42()$)-<&-#01<++2) <#(-+ Warunkowy slicing (ang. Conditioned Slicing) +"#3-#,#";+ $)34)1--.$/!"31;,#"3#-.$/!"313;+,."# 1-)15D"3.* #:14+'"#3&= Bezpostaciowy slicing (ang. Amorphous Slicing) 0 $.4; 41;+: 2 :,#!+-) 231".2&-*)5E.2&-1*F!"31:2;#,)#!"3.* #:+,.*+:,0 3.*&G#H#5!!"#$&'()*D"3.* #:+,.*+: "B: +,.,0 3.*&G#H#5 E.2&-1* I!"31:2;#,)#,.$)-1* *+:& &;,+"3+-. 3<+:-)1 3 *".;1")&4 2()$)-= <&<15, z>a<:3)1j15k012;()-) *+:&:(#*;B"10*+-2;"&+,#-.' :3)1,.$)-1*# JzK012;"+3,# #- 34)1-- 5!"#$&'()*!"#$&'(!)*+,-.,&#!./,0&'!.!(-#*'-)1!2345!.6!! "#$&'(!.!-#7)&()!4!8'7*!-9+&,+: &#!+#$&(,+!+#(,&:&'1)!.:!;,1,$!7*:*#$.< &$!8'7*!1,0#C(:$8:!+#-: '&:!+:-)&(,+'/,!

16 w weryfikacji Statyczny slicing (ang. Static Slicing) Dynamiczny slicing (ang. Dynamic Slicing) Warunkowy slicing (ang. Conditioned Slicing) Bezpostaciowy slicing (ang. Amorphous Slicing) Backward slice Wszystkie ścieżki od początku do danej lokalizacji, Większość sprawdzeń poprawności programu w danym punkcie, Forward slice Wszystkie ścieżki od danej lokalizacji do końca programu, Można badać wpływ zmiany w kodzie na dalszą część programu Połączenie obu daje complete slice.

17 w weryfikacji Motywacja Rodzaje slicingu w weryfikacji Większość narzędzi sprawdza model, nie program, Duże znaczenie ma rozmiar, Większość programów jest duża i bardzo skomplikowana......ale często sprawdzamy proste własności dotyczące małego kawałka, Staramy się zautomatyzować jak największą część weryfikacji oprogramowania,

18 w weryfikacji Motywacja Rodzaje slicingu w weryfikacji Automatyczny program jest bezpieczniejszy od człowieka, Może działać na dużych programach, Pomaga znaleźć komponenty wymagające ręcznego napisania modelu, Redukuje rozmiar programu bez zmniejszania czytelności,

19 w weryfikacji Motywacja Rodzaje slicingu w weryfikacji Statyczny slicing z warunkiem zawierającym lokalizacje i zmienne z formuły LTL, Warunkowy slicing na podstawie reguły LTL,

20 w weryfikacji Frama-C Bogor CodeSurfer Frama-C, Framework do weryfikacji programów w C, Początkowy etap analizy to slicing, Wspiera slicing statyczny i dynamiczny,

21 w weryfikacji Frama-C Bogor CodeSurfer Bogor / Bandera (Indus), Framework Wsparcie języków OO z dynamicznymi obiektami, wątkami, itd, Integracja z Eclipse,

22 w weryfikacji Frama-C Bogor CodeSurfer Indus - część projektu Bandera Wspiera statyczną analizę i przekształcanie kodu w języku Java, Backward, Forward slice, Wygenerowane wycinki można skompilować, Integracja z Eclipse,

23 w weryfikacji Frama-C Bogor CodeSurfer CodeSurfer Komercyjny, Wspiera C / C++, Wspiera zmienną ilość argumentów funkcji, struktury, libc (sygnały, abort(), exec()), Umożliwia robienie wycinków z programów do 100K LOC,

24 w weryfikacji Bartosz Bogacki, : Droga do lepszego rozumienia kodu źródłowego Mark Weiser. Program slicing. Proceedings of the 5th International Conference on Software Engineering, pages , IEEE Computer Society Press, March John Hatcliff, Matthew B. Dwyer and Hongjun Zheng, Slicing Software for Model Construction

Code slicing: Droga do lepszego rozumienia kodu źródłowego (część druga)

Code slicing: Droga do lepszego rozumienia kodu źródłowego (część druga) Code slicing: Droga do lepszego rozumienia kodu źródłowego (część druga) Bartosz Bogacki Poznan University of Technology, Institute of Computing Science ul. Piotrowo 2, 60-965 Poznan, Poland Bartosz.Bogacki@cs.put.poznan.pl

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Metody Programowania

Metody Programowania POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 8: Wyszukiwanie

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

SZKOLENIE TWORZENIE SYSTEMÓW

SZKOLENIE TWORZENIE SYSTEMÓW SZKOLENIE TWORZENIE SYSTEMÓW INFORMATYCZNYCH Z UŻYCIEM GROOVY I GRAILS KOD: JGR Strona 1 1 Opis Platforma Java EE to zbiór zaawansowanych narzędzi umożliwiających tworzenie systemów korporacyjnych. Jest

Bardziej szczegółowo

Inżynieria Programowania Weryfikacja i zatwierdzanie. Plan wykładu. Motto. Wstęp. Notatki. Notatki. Notatki. Notatki.

Inżynieria Programowania Weryfikacja i zatwierdzanie. Plan wykładu. Motto. Wstęp. Notatki. Notatki. Notatki. Notatki. Inżynieria Programowania Weryfikacja i zatwierdzanie Arkadiusz Chrobot Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 3 listopada 2015 Plan wykładu 1. Wstęp 2. Planowanie weryfikacji

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Kompilator języka C na procesor 8051 RC51 implementacja

Kompilator języka C na procesor 8051 RC51 implementacja Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub

Bardziej szczegółowo

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza

Bardziej szczegółowo

Wykład 7 Metodyki wytwarzania oprogramowania internetowego (2) Wykładowca: dr inż. Mariusz Trzaska

Wykład 7 Metodyki wytwarzania oprogramowania internetowego (2) Wykładowca: dr inż. Mariusz Trzaska Wykład 7 Metodyki wytwarzania oprogramowania internetowego (2) Wykładowca: dr inż. Mariusz Trzaska Zagadnienia Wprowadzenie MDD Model Analityczny Projektowy Przykład Podsumowanie Wykorzystano materiały

Bardziej szczegółowo

SpecVer - metodyka tworzenia oprogramowania integrująca zadania specyfikacji, implementacji i weryfikacji modułów programów

SpecVer - metodyka tworzenia oprogramowania integrująca zadania specyfikacji, implementacji i weryfikacji modułów programów Zakład Zaawansowanych Technik Informacyjnych (Z-6) SpecVer - metodyka tworzenia oprogramowania integrująca zadania specyfikacji, implementacji i weryfikacji modułów programów Praca nr 06300067 Warszawa,

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Techniki (automatyzacji) projektowania testów. Adam Roman WarszawQA, 24 II 2016

Techniki (automatyzacji) projektowania testów. Adam Roman WarszawQA, 24 II 2016 Techniki (automatyzacji) projektowania testów Adam Roman WarszawQA, 24 II 2016 Prelegent Quality Assurance R&D Lead, Rivet Group Adiunkt w Instytucie Informatyki i Matematyki Komputerowej UJ Członek Stowarzyszenia

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.wroc.pl http://www.tjeleniewski.wstt.edu.pl Treści kształcenia: Paradygmaty

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna

Bardziej szczegółowo

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika Warsztaty AVR Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR Dariusz Wika 1.Krótki wstęp: Eclipse to rozbudowane środowisko programistyczne, które dzięki możliwości instalowania

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

METODY REPREZENTACJI INFORMACJI

METODY REPREZENTACJI INFORMACJI Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Magisterskie Studia Uzupełniające METODY REPREZENTACJI INFORMACJI Ćwiczenie 1: Budowa i rozbiór gramatyczny dokumentów XML Instrukcja

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

Web frameworks do budowy aplikacji zgodnych z J2EE

Web frameworks do budowy aplikacji zgodnych z J2EE Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Załącznik 1 instrukcje instalacji

Załącznik 1 instrukcje instalacji Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych

Bardziej szczegółowo

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH Mirosław Gołda, Programista Java Agenda Kilka słów o języku Groovy Wpięcie Grooviego w projekt Springowy Testy jednostkowe

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Dokumentacja kompilacji źródeł aplikacji 1.0

Dokumentacja kompilacji źródeł aplikacji 1.0 Projekt dofinansowany ze środków Mechanizmu Finansowego Europejskiego Obszaru Gospodarczego Dokumentacja kompilacji źródeł aplikacji Projekt: Wypracowanie i wdrożenie innowacyjnych metod integracji danych

Bardziej szczegółowo

Tools for (Java) Developers. by Mirosław Żyszczyński

Tools for (Java) Developers. by Mirosław Żyszczyński Tools for (Java) Developers by Mirosław Żyszczyński Agenda Wstęp / Cel wykładu Opis problemu programistów Etapy tworzenia aplikacji Przegląd etapów oraz narzędzi Confluence JIRA + JIRA Agile SVN FishEye/Crucible

Bardziej szczegółowo

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.

Bardziej szczegółowo

Dokumentacja Użytkownika Systemu

Dokumentacja Użytkownika Systemu Dokumentacja Użytkownika Systemu Proces wystawiania aukcji i realizacji zamówień z serwisu Allegro Wersja 7.2 Spis treści 1 NAJWIĘKSZY SERWIS AUKCYJNY... 3 2 WYSTAWIANIE AUKCJI... 4 3 REALIZACJA ZAMÓWIENIA...

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Wykorzystanie infrastruktury chmurowej i platformy GridSpace w obliczeniach naukowych

Wykorzystanie infrastruktury chmurowej i platformy GridSpace w obliczeniach naukowych 1 Wykorzystanie infrastruktury chmurowej i platformy GridSpace w obliczeniach naukowych Daniel Harężlak, Eryk Ciepiela, Jan Meizner i Marian Bubak ACK CYFRONET AGH konferencja i3, Poznań, 16 kwietnia 2013

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Rekurencja (rekursja)

Rekurencja (rekursja) Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)

Bardziej szczegółowo

Investing f or Growth

Investing f or Growth Investing for Growth Open Business Solution OB One - zintegrowane oprogramowanie modułowe wspomagające zarządzanie firmą w łatwy i przejrzysty sposób pozwala zaspokoić wszystkie potrzeby księgowe, administracyjne

Bardziej szczegółowo

1.Wstęp. 2.Generowanie systemu w EDK

1.Wstęp. 2.Generowanie systemu w EDK 1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).

Bardziej szczegółowo

MODELOWANIE WARSTWY POWIERZCHNIOWEJ O ZMIENNEJ TWARDOŚCI

MODELOWANIE WARSTWY POWIERZCHNIOWEJ O ZMIENNEJ TWARDOŚCI Dr inż. Danuta MIEDZIŃSKA, email: dmiedzinska@wat.edu.pl Dr inż. Robert PANOWICZ, email: Panowicz@wat.edu.pl Wojskowa Akademia Techniczna, Katedra Mechaniki i Informatyki Stosowanej MODELOWANIE WARSTWY

Bardziej szczegółowo

ECDL ZARZĄDZANIE PROJEKTAMI

ECDL ZARZĄDZANIE PROJEKTAMI ECDL ZARZĄDZANIE PROJEKTAMI EUROPEJSKI CERTYFIKAT UMIEJĘTNOŚCI KOMPUTEROWYCH ZARZĄDZANIE PROJEKTAMI Syllabus v. 1.0 Oficjalna wersja dokumentu jest dostępna w serwisie WWW Polskiego Biura ECDL www.ecdl.pl

Bardziej szczegółowo

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką? ROZDZIAŁ1 Podstawy inżynierii oprogramowania: - Cele 2 - Zawartość 3 - Inżynieria oprogramowania 4 - Koszty oprogramowania 5 - FAQ o inżynierii oprogramowania: Co to jest jest oprogramowanie? 8 Co to jest

Bardziej szczegółowo

Lifehacking dla R. Przemyślenia i rozwiązania w temacie reprodukowalności analiz i organizacji pracy

Lifehacking dla R. Przemyślenia i rozwiązania w temacie reprodukowalności analiz i organizacji pracy Przemyślenia i rozwiązania w temacie reprodukowalności analiz i organizacji pracy Michał Bojanowski m.bojanowski@uw.edu.pl www.bojanorama.pl ICM, Uniwersytet Warszawski Spotkania Entuzjastów R 27 luty,

Bardziej szczegółowo

Maciej Oleksy Zenon Matuszyk

Maciej Oleksy Zenon Matuszyk Maciej Oleksy Zenon Matuszyk Jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów kontroli jakości oprogramowania. Weryfikacja oprogramowania - testowanie zgodności systemu

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Db4o obiektowa baza danych wersja.net

Db4o obiektowa baza danych wersja.net Wstęp Db4o obiektowa baza danych wersja.net Db4o (database for objects) to obiektowa baza danych na platformę Java i.net. Pełna wersja bazy db4o jest dostępna na dwóch licencjach: open source: pozwala

Bardziej szczegółowo

WYKORZYSTANIE PORTALU DYDAKTYCZNEGO W NAUCE JĘZYKÓW PROGRAMOWANIA

WYKORZYSTANIE PORTALU DYDAKTYCZNEGO W NAUCE JĘZYKÓW PROGRAMOWANIA WYKORZYSTANIE PORTALU DYDAKTYCZNEGO W NAUCE JĘZYKÓW PROGRAMOWANIA Plan wystąpienia Wprowadzenie Zdalne nauczanie języków programowania Cele i przyjęte rozwiązania Przykładowe elementy kursów Podsumowanie

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

Bardziej szczegółowo

Programowanie w Javie

Programowanie w Javie Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Algorytmy i programowanie Algorithms and Programming Kierunek: Zarządzanie i Inżynieria Produkcji Rodzaj przedmiotu: kierunkowy Poziom studiów: studia I stopnia forma studiów: studia

Bardziej szczegółowo

XII. Warunek wielokrotnego wyboru switch... case

XII. Warunek wielokrotnego wyboru switch... case XII. Warunek wielokrotnego wyboru switch... case 12.1. Gdy mamy więcej niŝ dwie moŝliwości Do tej pory poznaliśmy warunek if... else... Po co nam kolejny? Trudno powiedzieć, ale na pewno nie po to, Ŝeby

Bardziej szczegółowo

RAPORT KOŃCOWY PROJEKTU

RAPORT KOŃCOWY PROJEKTU RAPORT KOŃCOWY PROJEKTU Temat: Wieloplatformowy program do obsługi faktur Adresat: dr inż. Jacek Kołodziej Wykonawcy: Daniel Krysiak Przemysław Szpunar Grzegorz Śmierzchalski Spis Treści 1. Charakterystyka

Bardziej szczegółowo

Użycie Visual Basic for Applications ("VBA")

Użycie Visual Basic for Applications (VBA) Użycie Visual Basic for Applications ("VBA") Przegląd SEE z modułem VBA Developer SEE używa języka programowania Visual Basic for Applications (VBA) pozwalającego tworzyć krótkie programy zwane "makrami".

Bardziej szczegółowo

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Python wstęp do programowania dla użytkowników WCSS

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

Import zleceń / Integracja klienta K-Ex

Import zleceń / Integracja klienta K-Ex Import zleceń / Integracja klienta K-Ex 1 1 Integracja systemów Klient K-Ex jako sposobem zwiększenia wydajności tworzenia wysyłki 1.1 Import przesyłek na podstawie pliku CSV Wprowadzenie danych na temat

Bardziej szczegółowo

ALGORYTMY I PROGRAMY

ALGORYTMY I PROGRAMY ALGORYTMY I PROGRAMY Program to ciąg instrukcji, zapisanych w języku zrozumiałym dla komputera. Ten ciąg instrukcji realizuje jakiś algorytm. Algorytm jest opisem krok po kroku jak rozwiązać problem, czy

Bardziej szczegółowo

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Javadoc Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Wprowadzenie do Javadoc Treść prezentacji: http://students.mimuw.edu.pl/~as219669/javadoc.pdf Zadania: http://students.mimuw.edu.pl/~as219669/zadanie.rar

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

OpenLaszlo. OpenLaszlo

OpenLaszlo. OpenLaszlo OpenLaszlo Spis Treści 1 OpenLaszlo Co to jest? Historia Idea Architektura Jako Flash lub DHTML Jako servlet lub SOLO Jak to działa? Język LZX Struktura programu Skrypty Obiekty i klasy Atrybuty i metody

Bardziej szczegółowo

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. Kontrola topto Obsługa aplikacji Kontrola topto 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. 5. Dodawanie, edycja i usuwanie przejść.

Bardziej szczegółowo

Generowanie raportów

Generowanie raportów 1 Generowanie raportów 1. Wprowadzenie przykładowy problem, podstawowe własności narzędzi raportujących. 2. JasperReports struktura raportu, parametry, zmienne i pola, generowanie raportu (API). 3. ireport

Bardziej szczegółowo

Projekt i implementacja zintegrowanego środowiska programistycznego dla języka ROsWeL

Projekt i implementacja zintegrowanego środowiska programistycznego dla języka ROsWeL Projekt i implementacja zintegrowanego środowiska programistycznego dla języka ROsWeL promotor: dr inż. Anna Kobusińska opiekun: mgr inż. Andrzej Stroiński Przemysław Piechowiak Agenda Zakres pracy Język

Bardziej szczegółowo

Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski 26.05.2011

Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski 26.05.2011 Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF Tomasz Turski 26.05.2011 Plan prezentacji Architektura korporacyjna Frameworki Pryncypia Metodyka TOGAF

Bardziej szczegółowo

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VII - semestr III Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Wytwarzanie oprogramowania Model tworzenia oprogramowania

Bardziej szczegółowo

Odkryj potencjał swojej strony internetowej

Odkryj potencjał swojej strony internetowej Odkryj potencjał swojej strony internetowej Do prężnej działalności w przestrzeni internetowej nie wystarczy posiadanie rozbudowanej strony internetowej. Aby witryna była widoczna dla użytkowników i potencjalnych

Bardziej szczegółowo

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie mgr Piotr Gaś, dr hab. inż. Jerzy Mischke Ośrodek Edukacji Niestacjonarnej Akademii Górniczo-Hutniczej w Krakowie Samokontrola postępów w nauce z wykorzystaniem Internetu Wprowadzenie W każdym systemie

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

Projekt: Mikro zaprogramowane na sukces!

Projekt: Mikro zaprogramowane na sukces! Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Projekt: Mikro zaprogramowane na sukces! Opis autoryzowanych szkoleń Microsoft planowanych do realizacji w ramach

Bardziej szczegółowo

Systemy Rozproszone Technologia ICE

Systemy Rozproszone Technologia ICE Systemy Rozproszone Technologia ICE Zespół Systemów Rozproszonych () Katedra Informatyki AGH Kraków Kornel Skałkowski skalkow@agh.edu.pl Opracowano na podstawie książki: Henning M, Spruiell M. Distributed

Bardziej szczegółowo

Wykład 1: Wprowadzenie do technologii Java

Wykład 1: Wprowadzenie do technologii Java Programowanie komputerów Wykład 1: Wprowadzenie do technologii Java dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl Czym jest Java? Obiektowy język programowania ogólnego przeznaczenia Opracowany

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu

Bardziej szczegółowo

ECDL zaawansowany, moduł EXCEL

ECDL zaawansowany, moduł EXCEL ECDL zaawansowany, moduł EXCEL Szkolenie współfinansowane przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Czas trwania szkolenia - 20h (3 dni szkoleniowe) Grupa- 10 osób Terminy - 18-20

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008 Adam 1 grudnia 2008 Wstęp Opis Historia Apache kontener serwletów rozwijany w ramach projektu Apache jeden z bardziej popularnych kontenerów Web open source, Apache Software License rozwijany przez ASF

Bardziej szczegółowo

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne

Bardziej szczegółowo

Generatory analizatorów

Generatory analizatorów Generatory analizatorów Generator analizatora leksykalnego flex ( http://www.gnu.org/software/flex/ ) Generator analizatora składniowego bison ( http://www.gnu.org/software/bison/ ) Idea ogólna Opis atomów

Bardziej szczegółowo

Instalacja SAS Forecast Studio for Desktop 12.1

Instalacja SAS Forecast Studio for Desktop 12.1 , SAS Institute Polska styczeń 2013 Wstęp Dokument opisuje instalację i konfigurację produktu SAS Forecast Studio for Desktop. Jest to desktopowa wersja produktu SAS Forecast Server, z identycznym interfejsem

Bardziej szczegółowo

BMC Control-M Wybrane przypadki zastosowania

BMC Control-M Wybrane przypadki zastosowania Piotr Orlański Mariusz Gajewski CompFort Meridian Polska & BMC Software BMC Control-M Wybrane przypadki zastosowania Warszawa, 11 czerwca 2015 DISASTER RECOVERY Środowisko bankowe Problem: Zorganizowanie

Bardziej szczegółowo

MODELOWANIE I SYMULACJA Kościelisko, 19-23 czerwca 2006r. Oddział Warszawski PTETiS Wydział Elektryczny Politechniki Warszawskiej Polska Sekcja IEEE

MODELOWANIE I SYMULACJA Kościelisko, 19-23 czerwca 2006r. Oddział Warszawski PTETiS Wydział Elektryczny Politechniki Warszawskiej Polska Sekcja IEEE ODELOWANIE I SYULACJA Kościelisko, 9-3 czerwca 006r. Oddział Warszawski PTETiS Wydział Elektryczny Politechniki Warszawskiej Polska Sekcja IEEE SYSTE DO KOPUTEROWEGO ODELOWANIA I SYULACJI UKŁADÓW DYNAICZNYCH

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

ECDL Advanced Moduł AM4 Arkusze kalkulacyjne Syllabus, wersja 2.0

ECDL Advanced Moduł AM4 Arkusze kalkulacyjne Syllabus, wersja 2.0 ECDL Advanced Moduł AM4 Arkusze kalkulacyjne Syllabus, wersja 2.0 Copyright 2010, Polskie Towarzystwo Informatyczne Zastrzeżenie Dokument ten został opracowany na podstawie materiałów źródłowych pochodzących

Bardziej szczegółowo

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE Kto, co, jak i kiedy Kto? dr inż. Bartosz Jabłoński bartosz.jablonski@pwr.edu.pl s. P0.2, C-16 dr inż. Łukasz Jeleń lukasz.jelen@pwr.edu.pl

Bardziej szczegółowo

Projektowanie baz danych za pomocą narzędzi CASE

Projektowanie baz danych za pomocą narzędzi CASE Projektowanie baz danych za pomocą narzędzi CASE Metody tworzenia systemów informatycznych w tym, także rozbudowanych baz danych są komputerowo wspomagane przez narzędzia CASE (ang. Computer Aided Software

Bardziej szczegółowo

1+1=3? System Zarządzania Bezpieczeństwem

1+1=3? System Zarządzania Bezpieczeństwem 1+1=3? System Zarządzania Bezpieczeństwem Czym jest Nova.sys? Nova.sys to system zarządzania bezpieczeństwem 4 generacji Nova.sys to platforma otwarta Nova.sys spełnia wymagania międzynarodowej normy Systemów

Bardziej szczegółowo

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).

Bardziej szczegółowo

MS EXCEL KURS DLA ZAAWANSOWANYCH Z WYKORZYSTANIEM VBA

MS EXCEL KURS DLA ZAAWANSOWANYCH Z WYKORZYSTANIEM VBA COGNITY Praktyczne Skuteczne Szkolenia i Konsultacje tel. 12 421 87 54 biuro@cognity.pl www.cognity.pl MS EXCEL KURS DLA ZAAWANSOWANYCH Z WYKORZYSTANIEM VBA C O G N I T Y SZKOLENIE MS EXCEL KURS ZAAWANSOWANYCH

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Wymagania edukacyjne z przedmiotu Witryny i aplikacje internetowe klasa 2iA. tworzenia stron. animację - multimedia

Wymagania edukacyjne z przedmiotu Witryny i aplikacje internetowe klasa 2iA. tworzenia stron. animację - multimedia Wymagania edukacyjne z przedmiotu Witryny i aplikacje internetowe klasa 2iA Dział Uczeń otrzymuje ocenę dopuszczającą lub dostateczną, jeśli potrafi: wymienić narzędzia do tworzenia strony Zainstalować

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

KARTA KURSU. Języki skryptowe

KARTA KURSU. Języki skryptowe KARTA KURSU Nazwa Nazwa w j. ang. Języki skryptowe Script languages Kod Punktacja ECTS* 3 Koordynator mgr Alfred Budziak Zespół dydaktyczny: dr Olaf Bar mgr Alfred Budziak Opis kursu (cele kształcenia)

Bardziej szczegółowo

Wymagania edukacyjne z zajęć komputerowych w klasie 5

Wymagania edukacyjne z zajęć komputerowych w klasie 5 Wymagania edukacyjne z zajęć komputerowych w klasie 5 Dział: Klawiatura zamiast pióra. Piszemy w MS Word. - zna reguły pisania w edytorze tekstu - zna pojęcie listy numerowanej i listy wielopoziomowej

Bardziej szczegółowo

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.

Bardziej szczegółowo