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'!+= #+!&8!+8-*,!.1'&&';!>z?!+!@&!34!(,0)7!!!

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(-*'/$! &1!.&'/0#!$5(,/5*2?!+1*-*'02>!@('*$!,#!.!A$,2:!*!?/,#&!,!4!$5(,/5*2?!+1*-*'B 02! &'*! &#&,$#4#! 45,# -*!.?*/''(-6:! &1! $,C5(-6!,4#5.#'(! 3/+,! 4(-*'/$! $#&2>!@!)5./-*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! 1,2&34#5"!@(-*'/$!2,4#5.#'(!.0#&'*/!.!$5(,/5*2?!!!!!!! <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 slicing?5@#3,#!+$/+:3)+:3# + 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 slicing?5@#3,#!+$/+:3)+:3# + 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)"/>? 4@.2'+&)".! 34)'0,'A#4*'#,2'/(,B)"+' $ 9: 2-,$00"/>;: )'+!4 /,2-,$00"/>#&@)"+' $0,')'+&0*4)$14<6 C+2"* '54)42'* '5'( /3$),$0.!43,$ '@.!+'*/(,-4 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== C454@0,$ ('* ) 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 2-,$00$(OxP@ 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*:*#$.< &'/,!7=$&/)!>-#7)&'(!?@A!B'0#&!-9 &$!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

Formalna weryfikacja oprogramowania w lotnictwie

Formalna weryfikacja oprogramowania w lotnictwie 30 listopada 2010 Motywacja Wymagania ACSL CIL SCADE wysoka niezawodność, zmniejszenie kodu obsługi sytuacji wyjątkowych, DO178B Motywacja Wymagania ACSL CIL SCADE Wymagania stawiane nowemu podejściu:

Bardziej szczegółowo

Wykład 3 Składnia języka C# (cz. 2)

Wykład 3 Składnia języka C# (cz. 2) Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest

Bardziej szczegółowo

Wzorce projektowe i refaktoryzacja

Wzorce projektowe i refaktoryzacja Wzorce projektowe i refaktoryzacja Paweł Kozioł p.koziol@students.mimuw.edu.pl 18.01.2005 Moja praca magisterska Narzędzie dla środowiska Eclipse wspierające stosowanie wzorców projektowych J2EE Prowadzący:

Bardziej szczegółowo

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Testowanie oprogramowania. Testowanie oprogramowania 1/34 Testowanie oprogramowania Testowanie oprogramowania 1/34 Testowanie oprogramowania 2/34 Cele testowania testowanie polega na uruchamianiu oprogramowania w celu wykrycia błędów, dobry test to taki, który

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna Strona 1 z 9 «Przykładowe zadania do cz. III ćwiczeń z genetyki Java pierwsze kroki w programowaniu (01)» Kategoria: java, Tagi: eclipse - java - programowanie. Autor: Grzegorz, napisał dnia: February

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

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

Wymagania edukacyjne z informatyki w klasie VIII

Wymagania edukacyjne z informatyki w klasie VIII Wymagania edukacyjne z informatyki w klasie VIII Wymagania konieczne K dotyczą zagadnień elementarnych, stanowiących swego rodzaju podstawę, powinien je zatem opanować każdy uczeń. Wymagania podstawowe

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

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

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

Egzamin / zaliczenie na ocenę*

Egzamin / zaliczenie na ocenę* WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW33/01 KARTA PRZEDMIOTU Nazwa w języku polskim : INŻYNIERIA OPROGRAMOWANIA Nazwa w języku angielskim: SOFTWARE ENGINEERING Kierunek studiów (jeśli

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

Michał Olejnik. 22 grudnia 2009

Michał Olejnik. 22 grudnia 2009 Continuous TDD Politechnika Wrocławska Informatyka 22 grudnia 2009 Agenda Wprowadzenie 1 Wprowadzenie 2 3 4 5 Agenda Wprowadzenie 1 Wprowadzenie 2 3 4 5 Agenda Wprowadzenie 1 Wprowadzenie 2 3 4 5 Agenda

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

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

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:

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

WERYFIKACJA WSPOMAGANA KOMPUTEROWO. Sławomir Lasota Uniwersytet Warszawski 2009/1020

WERYFIKACJA WSPOMAGANA KOMPUTEROWO. Sławomir Lasota Uniwersytet Warszawski 2009/1020 WERYFIKACJA WSPOMAGANA KOMPUTEROWO Sławomir Lasota Uniwersytet Warszawski 2009/1020 Teoria i praktyka wspomaganych komputerowo metod analizy formalnej oprogramowania i układów sprzętowych. I. Motywacja

Bardziej szczegółowo

METODY PROGRAMOWANIA

METODY PROGRAMOWANIA METODY PROGRAMOWANIA Testy jednostkowe 8 grudnia 2017 Krzysztof Pawłowski kpawlowski@pjwstk.edu.pl PO CO NAM TESTY? weryfikacja poprawności sprawdzanie regresji specyfikacja dokumentacja wymuszanie dobrego

Bardziej szczegółowo

Algorytmy sztucznej inteligencji

Algorytmy sztucznej inteligencji www.math.uni.lodz.pl/ radmat Przeszukiwanie z ograniczeniami Zagadnienie przeszukiwania z ograniczeniami stanowi grupę problemów przeszukiwania w przestrzeni stanów, które składa się ze: 1 skończonego

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

Inżynieria oprogramowania. Jan Magott

Inżynieria oprogramowania. Jan Magott Inżynieria oprogramowania Jan Magott Literatura do języka UML G. Booch, J. Rumbaugh, I. Jacobson, UML przewodnik użytkownika, Seria Inżynieria oprogramowania, WNT, 2001, 2002. M. Fowler, UML w kropelce,

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

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

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

The current software tools for the JEE platform

The current software tools for the JEE platform Wysłane: 2017-05-29 Przyjęte: 2017-06-06 Aktualne narzędzia wytwarzania oprogramowania na platformie JEE Paweł Ozdoba*, Beata Pańczyk Politechnika Lubelska, Instytut Informatyki, Nadbystrzycka 36B, 20-618

Bardziej szczegółowo

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy Testowanie układów kombinacyjnych Przykładowy układ Wykrywanie błędów: 1. Sklejenie z 0 2. Sklejenie z 1 Testem danego uszkodzenia nazywa się takie wzbudzenie funkcji (wektor wejściowy), które daje błędną

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja

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

Pixy - analiza statyczna skryptów PHP

Pixy - analiza statyczna skryptów PHP - analiza statyczna skryptów PHP MIMUW 4 kwietnia 2012 - analiza statyczna skryptów PHP Co to jest? Analiza statyczna Bezpieczeństwo skryptów PHP Analiza programu bez jego uruchamiania Zazwyczaj pod konkretnym

Bardziej szczegółowo

Materiały dodatkowe. Simulink PLC Coder

Materiały dodatkowe. Simulink PLC Coder Katedra Inżynierii Systemów Sterowania Materiały dodatkowe Simulink PLC Coder Opracowali: mgr inż. Tomasz Karla Data: Listopad, 2016 r. Dodatkowe informacje Materiały dodatkowe mają charakter ogólny i

Bardziej szczegółowo

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium. Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium. Prowadzący Dr inż. Zofia 1 La1 La2 Forma zajęć - laboratorium Wprowadzenie

Bardziej szczegółowo

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej 1. W zakresie rozumienia, analizowania i rozwiązywania problemów uczeń: wyjaśnia, czym jest algorytm, wskazuje specyfikację problemu (dane,

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

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik Projektowanie oprogramowania Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik Agenda Weryfikacja i zatwierdzanie Testowanie oprogramowania Zarządzanie Zarządzanie personelem

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

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

Efektywna analiza składniowa GBK

Efektywna analiza składniowa GBK TEORETYCZNE PODSTAWY INFORMATYKI Efektywna analiza składniowa GBK Rozbiór zdań i struktur zdaniowych jest w wielu przypadkach procesem bardzo skomplikowanym. Jego złożoność zależy od rodzaju reguł produkcji

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

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

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

Praktyczne metody weryfikacji. Wykład 9: Weryfikacja ograniczona.. p.1/40

Praktyczne metody weryfikacji. Wykład 9: Weryfikacja ograniczona.. p.1/40 Praktyczne metody weryfikacji Wykład 9: Weryfikacja ograniczona. p.1/40 Symboliczna weryfikacja modelowa (SMC) model kodowanie boolowskie QBF implementacja OBDD weryfikacja modelowa = operacje na OBDDs.

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 1 (3h) Wprowadzenie do obsługi platformy projektowej Quartus II Instrukcja pomocnicza do laboratorium z przedmiotu

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

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

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

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

Usługa: Audyt kodu źródłowego

Usługa: Audyt kodu źródłowego Usługa: Audyt kodu źródłowego Audyt kodu źródłowego jest kompleksową usługą, której głównym celem jest weryfikacja jakości analizowanego kodu, jego skalowalności, łatwości utrzymania, poprawności i stabilności

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 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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

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

Praktyczne metody weryfikacji

Praktyczne metody weryfikacji Praktyczne metody weryfikacji Sławomir Lasota Uniwersytet Warszawski semestr zimowy 06/07. p.1/?? I. Motywacja czyli po co?. p.2/?? czerwiec 1996. p.3/?? nieobsłużony wyjatek szacunkowy koszt: 600 mln

Bardziej szczegółowo

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Krzysztof Kluza, Janusz Miller 1 Debugowanie Debugowanie, czy też po polsku odpluskiwanie, to proces polegający na kontrolowanym wykonaniu programu

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

Programowanie Systemów Wbudowanych

Programowanie Systemów Wbudowanych Programowanie Systemów Wbudowanych Debugowanie z GDB Iwona Kochańska Gdansk University of Technology GNU debugger Identyfikacja i naprawianie błędów to część procesu wytwarzania oprogramowania Techniki

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

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Metaprogramowanie (w Pythonie) Paweł Daniluk Wydział Fizyki Jesień 2016 P. Daniluk(Wydział Fizyki) PO w. XI Jesień 2016 1 / 32 Wstęp ideologiczny Języki programowania

Bardziej szczegółowo

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej 1. W zakresie rozumienia, analizowania i rozwiązywania problemów uczeń: wyjaśnia, czym jest algorytm, wskazuje specyfikację problemu (dane,

Bardziej szczegółowo

bo od managera wymaga się perfekcji

bo od managera wymaga się perfekcji bo od managera wymaga się perfekcji MODELOWANIE PROCESÓW Charakterystyka modułu Modelowanie Procesów Biznesowych (BPM) Modelowanie procesów biznesowych stanowi fundament wdroŝenia systemu zarządzania jakością

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

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo Operatory w C++ Operatory arytmetyczne + dodawanie - odejmowanie * mnożenie / dzielenie % modulo Operatory relacyjne (porównania) < mniejszy niż większy niż >= większy lub równy

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

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1 Ćwiczenie 1 Uruchamianie programu w Netbeans Uruchom środowisko Netbeans. Stwórz nowy projekt typu Java Application. Nadaj projektowi nazwę HelloWorld (Project Name), zwróć uwagę na folder, w którym zostanie

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

Ć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

Techniki efektywnego testowania kodu dla programistów Java (Spock

Techniki efektywnego testowania kodu dla programistów Java (Spock Program szkolenia: Techniki efektywnego testowania kodu dla programistów Java (Spock/JUnit) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Techniki efektywnego testowania kodu

Bardziej szczegółowo

Sieci komputerowe - administracja

Sieci komputerowe - administracja Sieci komputerowe - administracja warstwa sieciowa Andrzej Stroiński andrzej.stroinski@cs.put.edu.pl http://www.cs.put.poznan.pl/astroinski/ warstwa sieciowa 2 zapewnia adresowanie w sieci ustala trasę

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

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

ZiMSK. VLAN, trunk, intervlan-routing 1

ZiMSK. VLAN, trunk, intervlan-routing 1 ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl VLAN, trunk, intervlan-routing

Bardziej szczegółowo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

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

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

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23) Wprowadzenie (17) Omówione zagadnienia (18) Co trzeba wiedzieć? (18) Co trzeba mieć? (18) Układ książki (18) o Część I. Makra w Excelu - podstawy (19) o Część II. Praca ze skoroszytami (19) o Część III.

Bardziej szczegółowo

Przesyłania danych przez protokół TCP/IP

Przesyłania danych przez protokół TCP/IP Przesyłania danych przez protokół TCP/IP PAKIETY Protokół TCP/IP transmituje dane przez sieć, dzieląc je na mniejsze porcje, zwane pakietami. Pakiety są często określane różnymi terminami, w zależności

Bardziej szczegółowo

Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania. Pomiary w inżynierii oprogramowania

Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania. Pomiary w inżynierii oprogramowania Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania Pomiary w inżynierii oprogramowania Cel pomiarów ocena jakości produktu ocena procesów (produktywności ludzi) stworzenie podstawy dla

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN PBS Wykład 7 1. Zabezpieczenie przełączników i dostępu do sieci LAN mgr inż. Roman Krzeszewski roman@kis.p.lodz.pl mgr inż. Artur Sierszeń asiersz@kis.p.lodz.pl mgr inż. Łukasz Sturgulewski luk@kis.p.lodz.pl

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

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Proces: ciąg rozkazów (wątek główny) i ewentualnie inne wątki stos (wątku głównego) przestrzeń adresowa dodatkowe elementy tworzące

Bardziej szczegółowo

Program szkolenia: Jenkins - Continuous Integration

Program szkolenia: Jenkins - Continuous Integration Program szkolenia: Jenkins - Continuous Integration Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Jenkins - Continuous Integration tools-jenkins-ci Narzędzia developerzy DevOps

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

Prezentacja portalu INTEGRACJA APLIKACJI E-COMMERCE AUTOMATYZACJA PROCESÓW

Prezentacja portalu INTEGRACJA APLIKACJI E-COMMERCE AUTOMATYZACJA PROCESÓW Prezentacja portalu INTEGRACJA APLIKACJI E-COMMERCE AUTOMATYZACJA PROCESÓW Dla sklepów stacjonarnych i e-commerce Automatyczne pobieranie danych do formularza zamówienia oraz do wystawienia faktury Błyskawiczna

Bardziej szczegółowo

Ogólne zasady projektowania algorytmów i programowania

Ogólne zasady projektowania algorytmów i programowania Ogólne zasady projektowania algorytmów i programowania Pracuj nad właściwie sformułowanym problemem dokładna analiza nawet małego zadania może prowadzić do ogromnych korzyści praktycznych: skrócenia długości

Bardziej szczegółowo

Lokalizacja Oprogramowania

Lokalizacja Oprogramowania mgr inż. Anton Smoliński anton.smolinski@zut.edu.pl Lokalizacja Oprogramowania 16/12/2016 Wykład 6 Internacjonalizacja, Testowanie, Tłumaczenie Maszynowe Agenda Internacjonalizacja Testowanie lokalizacji

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs

Bardziej szczegółowo

Logika Temporalna i Automaty Czasowe

Logika Temporalna i Automaty Czasowe Modelowanie i Analiza Systemów Informatycznych Logika Temporalna i Automaty Czasowe (4) Modelowa weryfikacja systemu Paweł Głuchowski, Politechnika Wrocławska wersja 2.1 Treść wykładu Własności współbieżnych

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje

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

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