Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
0rapr|ca|
Everl-dr|ver
Vu|l|lrreaded
0ojecl-or|erled
Corp||ed
Vu|l|-p|allorr
Vu|l|-largel
Verory raraged
Larguage Craracler|sl|cs
8
10
12
11
1
0 lo 100 vls 100 lo 250 vls 250 lo 1000 vls 1000 lo 3000
vls
3000 lo 5000
vls
0realer lrar
5000
$ource 20'0 n|.oom/|areapps survey
5
Average Number of 0eve|opers Per Project
0
5
10
15
20
25
> 10 5 lo 10 3 lo 5 2 1
$ource hlweek 2008 $olruare En|neer|n $urvey
6
8ource 6ode 6o3tro|
0eve|oper 1
0eve|oper 2
Verger
Code Rev|s|or
6ode
Repos|tory
6ode
Repos|tory
Loc|ed lor ed|l
Requ|rererls
0alrer|rg
App||cal|or
Arcr|leclure
0eve|oprerl
0eougg|rg &
Tesl|rg
0ep|oyrerl
8oftware 6o3f|gurat|o3 Ha3ageme3t
Crec|ed 0ul Crec|ed lr
Crec|ed 0ul Crec|ed lr
Crec|ed lr Crec|ed 0ul
0el Lalesl vers|or
7
Craph|ca| 0|ffere3c|3g
Prov|des a crec|||sl ol crarges
uselu| lor peer rev|eWs
Ava||ao|e v|a corrard-||re
Prov|des a crec|||sl ol crarges
uselu| lor peer rev|eWs
Ava||ao|e v|a corrard-||re
8
866 0pt|o3s for |3tegrat|o3 w|th|3 LabV|
al|ve LaovlEw lrlegral|or
Perlorce
lrlegral|or Trrougr 3lardard APl
V|crosoll v|sua| 3ource3ale
V|crosoll Tear 3ysler
Ral|ora| C|earCase
PCv3 (3erera) vers|or Varager
VK3 3ource lrlegr|ly
3eap|re 3urrourd 3CV
8or|ard 3larTear
Te|e|og|c 3yrergy
|orForge Evo|ul|or
3upporl lrrougr add|l|ora| add-ors
3uovers|or
Vecur|a|
opu|ar|ty of SCC Cpt|ons Amongst LabVILW rogrammers
v| l||e lorral
v| l||e lorral
lronL anel lronL anel
8lock
ulagram
8lock
ulagram
ConnecLor
ane
ConnecLor
ane
lcon lcon
Complled
Code
Complled
Code
lnplaceness
lnfo
lnplaceness
lnfo
Complled
Code
Complled
Code
lnplaceness
lnfo
lnplaceness
lnfo
lronL anel lronL anel
8lock
ulagram
8lock
ulagram
ConnecLor
ane
ConnecLor
ane
lcon lcon
A separale oojecl l||e |s crealed lo
slore ard rela|r lr|s |rlorral|or
1opLevelvl
Subvlvl
Subvlvl
Source Code Contro| Scenar|o 1oday
ln SCC
1opLevelvl
Subvlvl
Local Machlne
LdlL
Save
Checkln
Subvlvl Subvlvl Subvlvl
Source Code Contro| Scenar|o 2010
ln SCC
1opLevelvl
Subvlvl
Local Machlne
LdlL
8un/Save
Subvlvl
Checkln
local vlob[
cache
1opLevel
vlob[
Subvl
vlob[
Subvl
vlob[
1opLevel
vlob[
Subvl
vlob[
Subvlvl
1opLevelvl
Subvlvl
Subvlvl Sub vlvl Subvlvl
25
The Project L|brary
Prov|de rare-spac|rg lo
avo|d cross-||r|s
0rgar|ze secl|ors ol ar
app||cal|or |rlo corporerls
Vod|ly corlerls W|lroul
rod|ly|rg lre Projecl l||e
Pac| lrer |rlo a s|rg|e, ror-
ed|lao|e l||e
26
Project L|brar|es (.|v||b}
Xco3tro|s (.ct|} 6|asses (.|vc|ass}
27
V| V| V| V|
|v||b
!roject Library
Puo||c APl
Pr|vale vls
V| V|
Ca||ers
V|
V| V| V| V| Puo||c APl
Corp||ed
code
V| V| Ca||ers V|
!acked !roject Library
0ep|oyed 8ystem 0eve|opme3t 3v|ro3me3t
acked ro[ect L|brar|es -ew in Lobvlw 2010
ulsLrlbuLe and ueploy LabvlLW Llbrarles as a Slngle llle
uecrease bulld Llmes
ueploy Lhe vl hlerarchy wlLh a slngle flle
Slmpllfled code deploymenL
28
V| Package Ha3ager
8u||d ard rarage pac|ages ol LaovlEw code
29
3lruclured Error lard|er
0XVL L|orary
|3sta|| a3d Ha3age V| Packages
3
0H0
lrlroducl|or lo lre vl Pac|age Varager
3
as||y Upgrade a3d 0ow3grade Vers|o3s
32
3lruclured Error lard|er
0XVL L|orary
6reate V| 6o3f|gurat|o3 F||es
AVC L|orary 0 L|orary
A s|rg|e l||e lral corla|rs ru|l|p|e pac|ages
Eas||y srare ard d|slr|oule code lral deperds upor ru|l|p|e ||orar|es
3lruclured Error
lard|er Corl|g
33
0H0
Creale a Corl|gural|or F||e oy 3carr|rg a Projecl
34
%rack Changes
Manage Reuse Libraries
lntegrate with $CC
Merge Craphical Code Manage Files and Links
$ystem Level View
8oftware 6o3f|gurat|o3 Ha3ageme3t for LabV|
35
The 8oftware 3g|3eer|3g Process
Now |3c|uded
w|th 0ev8u|te
Now |3c|uded
w|th 0ev8u|te
l Requ|rererls
0aleWay
Requ|rererls
0alrer|rg
App||cal|or
Arcr|leclure
0eve|oprerl
Tesl|rg ard
va||dal|or
0ep|oyrerl
LaovlEw
vl Ara|yzer
LaovlEw 0es|lop
Execul|or Trace
LaovlEw ur|l
Tesl FrareWor|
App||cal|or
8u||der
LaovlEw
3lalecrarl
lmprove quallLy 8educe rlsk Save Llme
rove lL works
0ojecl
0r|erlal|or
Rea| T|re
FP0A
Eroedded
l Tesl3lard
0alal|oW
Valr3cr|pl
3lalecrarl
3|ru|al|or
36
The 8oftware 3g|3eer|3g Process
l Requ|rererls
0aleWay
Requ|rererls
0alrer|rg
App||cal|or
Arcr|leclure
0eve|oprerl
Tesl|rg ard
va||dal|or
0ep|oyrerl
LaovlEw
vl Ara|yzer
LaovlEw
vl Ara|yzer
LaovlEw 0es|lop
Execul|or Trace
LaovlEw 0es|lop
Execul|or Trace
LaovlEw ur|l
Tesl FrareWor|
LaovlEw ur|l
Tesl FrareWor|
App||cal|or
8u||der
LaovlEw
3lalecrarl
lmprove quallLy 8educe rlsk Save Llme
rove lL works
0ojecl
0r|erlal|or
Rea| T|re
FP0A
Eroedded
l Tesl3lard
0alal|oW
Valr3cr|pl
3lalecrarl
3|ru|al|or
37
Prototype 8pec|f|cat|o3s
Test
0ef|3|t|o3s
8ystem
Requ|reme3ts
U3|t
8pec|f|cat|o3s
8oftware 0es|g3 Phase
38
Requ|reme3ts Traceab|||ty 8o|ut|o3 from N|
39
Requ|rererls
0alrer|rg
App||cal|or
Arcr|leclure
0eve|oprerl
0eougg|rg &
Tesl|rg
0ep|oyrerl
Requirements Coverage and
!roject %racking %raceability and 0ocumentation
Ceneration
4
0H0
Requ|rererls Trac||rg
4
0ocume3tat|o3
Laoe|ed oojecls
lr-||re correrls
0|sl|rcl lcor
0escr|pl|or ard T|p
lTVL Pr|rl-0ul
Requ|rererls Coverage
42
Too|s for 0ebugg|3g a3d Test|3g
h|gh R|sk Low R|sk
0ebugg|3g &
Test|3g
0y3am|c 6ode A3a|ys|s
Rea| T|re
Execul|or Trace
Rea| T|re
Execul|or Trace
8tat|c 6ode A3a|ys|s
Fu3ct|o3a| Va||dat|o3
of 6ode
ur|l Tesl
FrareWor|
ur|l Tesl
FrareWor|
A
d
v
a
3
c
e
d
8
|
m
p
|
e
A
p
p
|
|
c
a
l
|
o
r
C
o
r
p
|
e
x
|
l
y
App||cal|or Cr|l|ca||ly
0es|lop
Execul|or Trace
0es|lop
Execul|or Trace
vl Ara|yzer
Too|||l
vl Ara|yzer
Too|||l
43
Perform|3g a LabV| 6ode Rev|ew
wa|| soreore lrrougr your code
0uesl|ors lo cors|der:
ls lre code easy lo ra|rla|r, ard ras |l oeer docurerled?
wral rappers |l lre code relurrs ar error?
or |l |r reoe|ves an error?j
ls loo rucr lurcl|ora||ly |ocaled |r a s|rg|e vl?
Are lrere ary race cord|l|ors?
ls lre rerory usage W|lr|r acceplao|e ||r|ls?
Perlorr code rev|eWs lrequerl|y
44
stab||sh or Adopt 0eve|opme3t Cu|de||3es
Fro3t Pa3e| 8ty|e
Forls ard Texl Craracler|sl|cs
Co|ors
0rapr|cs ard Cuslor Corlro|s
Layoul
3|z|rg ard Pos|l|or|rg
Laoe|s
Palrs versus 3lr|rgs
Erureraled Type Corlro|s versus R|rg Corlro|s
0elau|l va|ues ard Rarges
Properly odes
Key av|gal|or
0|a|og 8oxes
8ty|e 6heck||st
vl Crec|||sl
Frorl Pare| Crec|||sl
8|oc| 0|agrar Crec|||sl
|ock 0|agram 8ty|e
w|r|rg Tecrr|ques
Verory ard 3peed 0pl|r|zal|or
3|z|rg ard Pos|l|or|rg
Lell-lo-R|grl Layouls
8|oc| 0|agrar Correrls
Ca|| L|orary Furcl|or odes ard Code lrlerlace
odes
Type 0el|r|l|ors
3equerce 3lruclures
|co3 a3d 6o33ector Pa3e 8ty|e
lcors
Exarp|e ol lrlu|l|ve lcors
Correclor Pares
N| 8ty|e Cu|de||3e: r|cor/|argeapps
45
Prepar|3g for a 6ode Rev|ew w|th V| A3a|yzer
Aulorale code ara|ys|s
W|lr 80 corl|gurao|e lesls
Perlorrarce
3ly|e
Corp|ex|ly
lrleracl|ve|y |rspecl la||ures
0ererale cuslor reporls
Code corp|ex|ly relr|cs
wr|le your oWr lesls W|lr vl
3cr|pl|rg LabVlEw 2010
46
V| A3a|yzer 6ode 6omp|e|ty Hetr|cs
Tests for |3dustry 8ta3dard Hetr|c 6a|cu|at|o3s
True
Fa|se
Case 1
Case 2
Case 3
Edges = 5 odes = 3 Palrs = 1
Cyc|oral|c corp|ex|ly: 5 - 3 2 (1) = 1
47
6reat|3g 6ustom Tests
3e|ecl lesls lo rur
Tesl spec|l|c
corl|gural|or
sell|rgs
Tesl Pr|or|ly uroer ol la||ures lo
reporl
48
0ef|3e 6o3f|gurat|o3 0pt|o3s
Access va|ues |r lesl code us|rg
0|ooa| var|ao|es
49
0H0
vl Ara|yzer lor Peer Rev|eWs
5
Too|s for 0ebugg|3g a3d Test|3g
h|gh R|sk Low R|sk
0eougg|rg &
Tesl|rg
0y3am|c 6ode A3a|ys|s
Rea| T|re
Execul|or Trace
Rea| T|re
Execul|or Trace
8tat|c 6ode A3a|ys|s
Fu3ct|o3a| Va||dat|o3
of 6ode
ur|l Tesl
FrareWor|
ur|l Tesl
FrareWor|
A
d
v
a
3
c
e
d
8
|
m
p
|
e
A
p
p
|
|
c
a
l
|
o
r
C
o
r
p
|
e
x
|
l
y
App||cal|or Cr|l|ca||ly
0es|lop
Execul|or Trace
0es|lop
Execul|or Trace
vl Ara|yzer
Too|||l
vl Ara|yzer
Too|||l
5
Coa|s of 0y3am|c 6ode A3a|ys|s:
wral |s corsur|rg sysler rerory?
Ar l caplur|rg a|| lre errors |r ry app||cal|or?
wral Was lre |asl everl lo occur oelore.?
wral Was lre ca||-cra|r lral |ed us lo.?
wral lrread |s |l execul|rg |r?
Ar l aclua||y erler|rg a spec|l|c everl-case?
wral rappered |rs|de a slruclure?
wral order lo lrese everls occur |r?
ls a daeror process rurr|rg |r lre oac|grourd?
0oes lre code oerave d|llererl |r ar execulao|e?
52
Trace Product|o3 8ystems Remote|y
Ru3-T|me ecut|o3 |3format|o3
Ru3-T|me ecut|o3 |3format|o3
heruork
heruork
0ep|oyed Rea|-T|me App||cat|o3s
V|s a3d 0ebuggab|e ecutab|es
LabV| 0esktop ecut|o3 Trace Too|k|t
LabV| Rea|-T|me ecut|o3 Trace Too|k|t
53
0esktop ecut|o3 Trace Too|k|t
Trace 0ur|3g Ru3-T|me:
Everl 3lruclures
Verory A||ocal|or
0ueues / ol|l|ers
Relererce Lea|s
Trread l0
urrard|ed Errors
0yrar|c / 3lal|c 3uovls
Cuslor user 3lr|rgs
54
0esktop ecut|o3 Trace Too|k|t
Trace 0ur|3g Ru3-T|me:
Everl 3lruclures
Verory A||ocal|or
0ueues / ol|l|ers
Relererce Lea|s
Trread l0
urrard|ed Errors
0yrar|c / 3lal|c 3uovls
Cuslor user 3lr|rgs
55
0H0
0yrar|c Code Ara|ys|s W|lr 0es|lop Execul|or Trace Too|||l
56
Remote 0ebugg|3g of ecutab|es
lrc|ude o|oc| d|agrars W|lr ar execulao|e
Rerole|y lrouo|esrool us|rg LaovlEw deoug loo|s
57
Too|s for 0ebugg|3g a3d Test|3g
h|gh R|sk Low R|sk
0eougg|rg &
Tesl|rg
0y3am|c 6ode A3a|ys|s
Rea| T|re
Execul|or Trace
Rea| T|re
Execul|or Trace
8tat|c 6ode A3a|ys|s
Fu3ct|o3a| Va||dat|o3
of 6ode
ur|l Tesl
FrareWor|
ur|l Tesl
FrareWor|
A
d
v
a
3
c
e
d
8
|
m
p
|
e
A
p
p
|
|
c
a
l
|
o
r
C
o
r
p
|
e
x
|
l
y
App||cal|or Cr|l|ca||ly
0es|lop
Execul|or Trace
0es|lop
Execul|or Trace
vl Ara|yzer
Too|||l
vl Ara|yzer
Too|||l
58
0ata 8c|e3ce Automat|o3
0eve|oped Lorg-lerr lesl|rg so|ul|or lor arl|l|c|a| rearls
Tre ur|l Tesl FrareWor|'s
l|ex|o|||ly ard ease ol use
cerla|r|y erao|ed rucr lasler
ard re||ao|e corp|el|or ol lr|s
porl|or ol lre projecl
polerl|a||y sav|rg hu3dreds
of hours a3d thousa3ds of
do||ars over lre ||le ol lre
projecl
59
LabV| U3|t Test Framework
vl urder Tesl
|3put Va|ues |3put Va|ues 0ulpul 0ulpul
pected 0utput pected 0utput
U3|t Test
Framework
Automated
Report Ce3erat|o3
Test vector = |3put va|ue(s} + pected output(s} Test vector = |3put va|ue(s} + pected output(s}
6
|3dows 0esktop |3dows 0esktop
LabV| U3|t Test Framework
vl urder Tesl
|3put Va|ues |3put Va|ues 0ulpul 0ulpul
pected 0utput pected 0utput
U3|t Test
Framework
Automated
Report Ce3erat|o3
Test vector = |3put va|ue(s} + pected output(s} Test vector = |3put va|ue(s} + pected output(s}
6
Rea| T|me Rea| T|me
LabV| U3|t Test Framework
vl urder Tesl
|3put Va|ues |3put Va|ues 0ulpul 0ulpul
pected 0utput pected 0utput
U3|t Test
Framework
Automated
Report Ce3erat|o3
Test vector = |3put va|ue(s} + pected output(s} Test vector = |3put va|ue(s} + pected output(s}
62
H|t|gat|3g R|sk Through hardware
P
a
r
d
w
a
r
e
C
p
e
r
a
L
l
n
g
S
y
s
L
e
m
u
r
l
v
e
r
A
l
A
p
p
l
l
c
a
L
l
o
n
S
o
f
L
w
a
r
e
C
a
l
c
u
l
a
L
l
o
n
Trad|l|ora| 3ysler
0ulpuls
at|ent
Crasr Poss|o|e
63
P
a
r
d
w
a
r
e
C
p
e
r
a
L
l
n
g
S
y
s
L
e
m
u
r
l
v
e
r
A
l
A
p
p
l
l
c
a
L
l
o
n
S
o
f
L
w
a
r
e
C
a
l
c
u
l
a
L
l
o
n
at|ent
LaovlEw FP0A 3ysler
h|ghest Re||ab|||ty
0ulpuls
H|t|gat|3g R|sk Through hardware
64
0H0
ur|l Tesl|rg
SeLup / 1eardown vls
lnpuL
values
value
Comparlson
66
6ode 6overage amp|e
0|agrams. 3 0|agrams ecuted. 507 6ode 6overage
67
6ode 6overage amp|e
2
3d
Test Vector (aggregates covered code from 1
st
pass}
8|oc| d|agrar, 5 Case d|agrars execuled ( 1 1 ) / = 8333 Code Coverage
1
8T
Test Vector:
8|oc| d|agrar, 2 Case d|agrars execuled ( 2 1 ) / = 50 Code Coverage
68
Programmat|c U3|t Test|3g
Prograrral|ca||y
|rvo|e lesl|rg ard
reporl gereral|or
69
U3|t Tests
|mp|eme3tat|o3
8oftware Requ|reme3ts
Test Resu|ts
|3tegrat|o3 w|th Requ|reme3ts Cateway
7
LabV| User |3terface Test|3g
7
Requ|rererls
0alrer|rg
App||cal|or
Arcr|leclure
0eve|oprerl
0eougg|rg &
Tesl|rg
0ep|oyrerl
Prograrral|c ou||d processes
Prograrral|c corlro| ol source code corlro|
72
App||cat|on 8u||der AI -ew in Lobvlw 2011
AuLomaLe bulld and deploymenL processes
73
App u||der Log-F||e Ce3erat|o3
0ocurerl vers|or, dale ard l|re ol v|s |rc|uded |r ou||d
va||ao|e |n laovlEw 2009
LaovlEw
Core 1
LaovlEw
Core 2
LaovlEw Core 3
Cerl|l|ed
LaovlEw
0eve|oper
Advarced
Arcr|leclures
|r LaovlEw
Cerl|l|ed
LaovlEw
Arcr|lecl
Cerl|l|ed
LaovlEw
Assoc|ale
0eve|oper
-I LabVILW Cert|f|cat|ons A||gn w|th 1ra|n|ng
Varag|rg
3ollWare
Erg|reer|rg |r
LaovlEw
LaovlEw
Correcl|v|ly
LaovlEw
Perlorrarce
0ojecl-0r|erled
0es|gr &
Prograrr|rg |r
LaovlEw
8ecommended course
CpLlonal course
CpLlonal cerLlflcaLlon
0eve|oper 8e3|or 0eve|oper 8oftware Arch|tect
| Project Ha3ager
cettlflcotloo ls oo obsolote most fot ooyooe setloos oboot collloq blmself o
lobvlw expett At oot otqoolzotloo we tepolte tbot evety lobvlw Jevelopet
be oo o ptofessloool potb to become o cettlfleJ lobvlw Atcbltect
res|dent IkI Software Inc
Software Lng|neer|ng 8estract|ces
n|com]|argeapps
SofLware Lnglneerlng 1ools
uevelopmenL racLlces
LargeApp CommunlLy