01Basic Concepts of Software Engineering and Maintenance

93
Scientific Software Software Engineering Instruments Basic concepts of software engineering and maintenance G. Giuliani International Centre for Theorethical Physics - Trieste Earth System Physics Section ICTP - Earth System Physics Section Advanced School on Scientific Software Development Trieste, 20 Feb - 2 Mar 2012 ICTP - ESP Basic concepts of software engineering and maintenance

Transcript of 01Basic Concepts of Software Engineering and Maintenance

Page 1: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Basicconcepts

ofsoftwareengineeringand

maintenance

G.Giuliani

InternationalCentreforTheorethicalPhysics

-Trieste

Earth

System

Physics

Section

ICTP

-Earth

System

PhysicsSection

AdvancedSchoo

lon

Scientific

SoftwareDevelop

ment

Trieste,20

Feb

-2Mar

2012

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 2: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

IsSoftwarepart

ofScience?

�WhatScience

isAbou

t

�Try

toun

derstand

Reality

�Collect

inform

ationas

numerical

values

�Build

know

ledg

eon

itwithanalysisandmod

els

�Ormix

theprevious

twopoints

�Com

puteraidedScience

�Science

ISinform

ationprocessing

�Large

compu

tation

anddata

requ

ireacompu

ter

�Softwaredevelopm

entisno

tscienceforitself

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 3: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

IsSoftwarepart

ofScience?

�WhatScience

isAbou

t�

Try

toun

derstand

Reality

�Collect

inform

ationas

numerical

values

�Build

know

ledg

eon

itwithanalysisandmod

els

�Ormix

theprevious

twopoints

�Com

puteraidedScience

�Science

ISinform

ationprocessing

�Large

compu

tation

anddata

requ

ireacompu

ter

�Softwaredevelopm

entisno

tscienceforitself

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 4: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

IsSoftwarepart

ofScience?

�WhatScience

isAbou

t�

Try

toun

derstand

Reality

�Collect

inform

ationas

numerical

values

�Build

know

ledg

eon

itwithanalysisandmod

els

�Ormix

theprevious

twopoints

�Com

puteraidedScience

�Science

ISinform

ationprocessing

�Large

compu

tation

anddata

requ

ireacompu

ter

�Softwaredevelopm

entisno

tscienceforitself

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 5: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

IsSoftwarepart

ofScience?

�WhatScience

isAbou

t�

Try

toun

derstand

Reality

�Collect

inform

ationas

numerical

values

�Build

know

ledg

eon

itwithanalysisandmod

els

�Ormix

theprevious

twopoints

�Com

puteraidedScience

�Science

ISinform

ationprocessing

�Large

compu

tation

anddata

requ

ireacompu

ter

�Softwaredevelopm

entisno

tscienceforitself

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 6: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

IsSoftwarepart

ofScience?

�WhatScience

isAbou

t�

Try

toun

derstand

Reality

�Collect

inform

ationas

numerical

values

�Build

know

ledg

eon

itwithanalysisandmod

els

�Ormix

theprevious

twopoints

�Com

puteraidedScience

�Science

ISinform

ationprocessing

�Large

compu

tation

anddata

requ

ireacompu

ter

�Softwaredevelopm

entisno

tscienceforitself

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 7: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

IsSoftwarepart

ofScience?

�WhatScience

isAbou

t�

Try

toun

derstand

Reality

�Collect

inform

ationas

numerical

values

�Build

know

ledg

eon

itwithanalysisandmod

els

�Ormix

theprevious

twopoints

�Com

puteraidedScience

�Science

ISinform

ationprocessing

�Large

compu

tation

anddata

requ

ireacompu

ter

�Softwaredevelopm

entisno

tscienceforitself

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 8: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

IsSoftwarepart

ofScience?

�WhatScience

isAbou

t�

Try

toun

derstand

Reality

�Collect

inform

ationas

numerical

values

�Build

know

ledg

eon

itwithanalysisandmod

els

�Ormix

theprevious

twopoints

�Com

puteraidedScience

�Science

ISinform

ationprocessing

�Large

compu

tation

anddata

requ

ireacompu

ter

�Softwaredevelopm

entisno

tscienceforitself

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 9: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

IsSoftwarepart

ofScience?

�WhatScience

isAbou

t�

Try

toun

derstand

Reality

�Collect

inform

ationas

numerical

values

�Build

know

ledg

eon

itwithanalysisandmod

els

�Ormix

theprevious

twopoints

�Com

puteraidedScience

�Science

ISinform

ationprocessing

�Large

compu

tation

anddata

requ

ireacompu

ter

�Softwaredevelopm

entisno

tscienceforitself

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 10: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

IsSoftwarepart

ofScience?

�WhatScience

isAbou

t�

Try

toun

derstand

Reality

�Collect

inform

ationas

numerical

values

�Build

know

ledg

eon

itwithanalysisandmod

els

�Ormix

theprevious

twopoints

�Com

puteraidedScience

�Science

ISinform

ationprocessing

�Large

compu

tation

anddata

requ

ireacompu

ter

�Softwaredevelopm

entisno

tscienceforitself

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 11: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientifical

Problem

�The

Scientist

aimsto

undertandthereality

�The

Scientist

makes

mod

elsof

thereality

�The

mod

elisabu

nchof

mathequation

s�

The

calculator

helpsgetthemathdo

nesoon

er�

The

softwareistheinstructionto

getthere

�Ifthetimeto

resultislowered

bycalculator

�The

Scientist

ishapp

ywithpu

blications

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 12: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientifical

Problem

�The

Scientist

aimsto

undertandthereality

�The

Scientist

makes

mod

elsof

thereality

�The

mod

elisabu

nchof

mathequation

s�

The

calculator

helpsgetthemathdo

nesoon

er�

The

softwareistheinstructionto

getthere

�Ifthetimeto

resultislowered

bycalculator

�The

Scientist

ishapp

ywithpu

blications

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 13: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientifical

Problem

�The

Scientist

aimsto

undertandthereality

�The

Scientist

makes

mod

elsof

thereality

�The

mod

elisabu

nchof

mathequation

s

�The

calculator

helpsgetthemathdo

nesoon

er�

The

softwareistheinstructionto

getthere

�Ifthetimeto

resultislowered

bycalculator

�The

Scientist

ishapp

ywithpu

blications

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 14: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientifical

Problem

�The

Scientist

aimsto

undertandthereality

�The

Scientist

makes

mod

elsof

thereality

�The

mod

elisabu

nchof

mathequation

s�

The

calculator

helpsgetthemathdo

nesoon

er

�The

softwareistheinstructionto

getthere

�Ifthetimeto

resultislowered

bycalculator

�The

Scientist

ishapp

ywithpu

blications

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 15: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientifical

Problem

�The

Scientist

aimsto

undertandthereality

�The

Scientist

makes

mod

elsof

thereality

�The

mod

elisabu

nchof

mathequation

s�

The

calculator

helpsgetthemathdo

nesoon

er�

The

softwareistheinstructionto

getthere

�Ifthetimeto

resultislowered

bycalculator

�The

Scientist

ishapp

ywithpu

blications

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 16: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientifical

Problem

�The

Scientist

aimsto

undertandthereality

�The

Scientist

makes

mod

elsof

thereality

�The

mod

elisabu

nchof

mathequation

s�

The

calculator

helpsgetthemathdo

nesoon

er�

The

softwareistheinstructionto

getthere

�Ifthetimeto

resultislowered

bycalculator

�The

Scientist

ishapp

ywithpu

blications

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 17: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientifical

Problem

�The

Scientist

aimsto

undertandthereality

�The

Scientist

makes

mod

elsof

thereality

�The

mod

elisabu

nchof

mathequation

s�

The

calculator

helpsgetthemathdo

nesoon

er�

The

softwareistheinstructionto

getthere

�Ifthetimeto

resultislowered

bycalculator

�The

Scientist

ishapp

ywithpu

blications

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 18: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Software

�Softwareforscienceis...

�DataDigitalizationandStorage

�Num

erical

Algorithm

sandPackages

�Program

mingLangu

ages

andEnviron

ment

�DataVisualizationToo

ls�

WordProcessorsandPub

lishing

�Inform

ationExchang

eSystems

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 19: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Software

�Softwareforscienceis...

�DataDigitalizationandStorage

�Num

erical

Algorithm

sandPackages

�Program

mingLangu

ages

andEnviron

ment

�DataVisualizationToo

ls�

WordProcessorsandPub

lishing

�Inform

ationExchang

eSystems

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 20: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Software

�Softwareforscienceis...

�DataDigitalizationandStorage

�Num

erical

Algorithm

sandPackages

�Program

mingLangu

ages

andEnviron

ment

�DataVisualizationToo

ls�

WordProcessorsandPub

lishing

�Inform

ationExchang

eSystems

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 21: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Software

�Softwareforscienceis...

�DataDigitalizationandStorage

�Num

erical

Algorithm

sandPackages

�Program

mingLangu

ages

andEnviron

ment

�DataVisualizationToo

ls�

WordProcessorsandPub

lishing

�Inform

ationExchang

eSystems

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 22: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Software

�Softwareforscienceis...

�DataDigitalizationandStorage

�Num

erical

Algorithm

sandPackages

�Program

mingLangu

ages

andEnviron

ment

�DataVisualizationToo

ls

�WordProcessorsandPub

lishing

�Inform

ationExchang

eSystems

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 23: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Software

�Softwareforscienceis...

�DataDigitalizationandStorage

�Num

erical

Algorithm

sandPackages

�Program

mingLangu

ages

andEnviron

ment

�DataVisualizationToo

ls�

WordProcessorsandPub

lishing

�Inform

ationExchang

eSystems

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 24: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Software

�Softwareforscienceis...

�DataDigitalizationandStorage

�Num

erical

Algorithm

sandPackages

�Program

mingLangu

ages

andEnviron

ment

�DataVisualizationToo

ls�

WordProcessorsandPub

lishing

�Inform

ationExchang

eSystems

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 25: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

MyProblem

needsanewsolution

�Ineed

towrite

softwareif

�Ihave

anew

instrument

�Ihave

anew

mod

elto

implem

ent

�Ihave

anew

numerical

algorithm

�Ihave

anew

view

ingpoint

tomydata

�Ihave

anew

commun

ityto

sharedata

with

�IsthereaGoo

dWay

towrite

Scientific

Software?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 26: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

MyProblem

needsanewsolution

�Ineed

towrite

softwareif

�Ihave

anew

instrument

�Ihave

anew

mod

elto

implem

ent

�Ihave

anew

numerical

algorithm

�Ihave

anew

view

ingpoint

tomydata

�Ihave

anew

commun

ityto

sharedata

with

�IsthereaGoo

dWay

towrite

Scientific

Software?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 27: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

MyProblem

needsanewsolution

�Ineed

towrite

softwareif

�Ihave

anew

instrument

�Ihave

anew

mod

elto

implem

ent

�Ihave

anew

numerical

algorithm

�Ihave

anew

view

ingpoint

tomydata

�Ihave

anew

commun

ityto

sharedata

with

�IsthereaGoo

dWay

towrite

Scientific

Software?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 28: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

MyProblem

needsanewsolution

�Ineed

towrite

softwareif

�Ihave

anew

instrument

�Ihave

anew

mod

elto

implem

ent

�Ihave

anew

numerical

algorithm

�Ihave

anew

view

ingpoint

tomydata

�Ihave

anew

commun

ityto

sharedata

with

�IsthereaGoo

dWay

towrite

Scientific

Software?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 29: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

MyProblem

needsanewsolution

�Ineed

towrite

softwareif

�Ihave

anew

instrument

�Ihave

anew

mod

elto

implem

ent

�Ihave

anew

numerical

algorithm

�Ihave

anew

view

ingpoint

tomydata

�Ihave

anew

commun

ityto

sharedata

with

�IsthereaGoo

dWay

towrite

Scientific

Software?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 30: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

MyProblem

needsanewsolution

�Ineed

towrite

softwareif

�Ihave

anew

instrument

�Ihave

anew

mod

elto

implem

ent

�Ihave

anew

numerical

algorithm

�Ihave

anew

view

ingpoint

tomydata

�Ihave

anew

commun

ityto

sharedata

with

�IsthereaGoo

dWay

towrite

Scientific

Software?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 31: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

MyProblem

needsanewsolution

�Ineed

towrite

softwareif

�Ihave

anew

instrument

�Ihave

anew

mod

elto

implem

ent

�Ihave

anew

numerical

algorithm

�Ihave

anew

view

ingpoint

tomydata

�Ihave

anew

commun

ityto

sharedata

with

�IsthereaGoo

dWay

towrite

Scientific

Software?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 32: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

wrong

way

ofwriting

scientificsoftware

�Iwill

just

have

todo

iton

ce

�Nob

odycareson

how

Ido

getto

theansw

er,Iwill

nevershare

thiswithothers

�IfIsparetime,

Iwill

publishfaster

�The

compu

terwill

understand

anyw

ay

�Ifitworks

withthisinpu

t,itworks

foranyinpu

t

�The

resourcesIhave

iswhateveryb

odyhave

�The

data

form

atissecond

ary,Ikn

owwhatthey

are

�The

precisionIneed

inresultistheon

ethecompu

teruses

�Softwareprofession

alsarejust

overstim

ated

freaks

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 33: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

wrong

way

ofwriting

scientificsoftware

�Iwill

just

have

todo

iton

ce

�Nob

odycareson

how

Ido

getto

theansw

er,Iwill

nevershare

thiswithothers

�IfIsparetime,

Iwill

publishfaster

�The

compu

terwill

understand

anyw

ay

�Ifitworks

withthisinpu

t,itworks

foranyinpu

t

�The

resourcesIhave

iswhateveryb

odyhave

�The

data

form

atissecond

ary,Ikn

owwhatthey

are

�The

precisionIneed

inresultistheon

ethecompu

teruses

�Softwareprofession

alsarejust

overstim

ated

freaks

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 34: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

wrong

way

ofwriting

scientificsoftware

�Iwill

just

have

todo

iton

ce

�Nob

odycareson

how

Ido

getto

theansw

er,Iwill

nevershare

thiswithothers

�IfIsparetime,

Iwill

publishfaster

�The

compu

terwill

understand

anyw

ay

�Ifitworks

withthisinpu

t,itworks

foranyinpu

t

�The

resourcesIhave

iswhateveryb

odyhave

�The

data

form

atissecond

ary,Ikn

owwhatthey

are

�The

precisionIneed

inresultistheon

ethecompu

teruses

�Softwareprofession

alsarejust

overstim

ated

freaks

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 35: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

wrong

way

ofwriting

scientificsoftware

�Iwill

just

have

todo

iton

ce

�Nob

odycareson

how

Ido

getto

theansw

er,Iwill

nevershare

thiswithothers

�IfIsparetime,

Iwill

publishfaster

�The

compu

terwill

understand

anyw

ay

�Ifitworks

withthisinpu

t,itworks

foranyinpu

t

�The

resourcesIhave

iswhateveryb

odyhave

�The

data

form

atissecond

ary,Ikn

owwhatthey

are

�The

precisionIneed

inresultistheon

ethecompu

teruses

�Softwareprofession

alsarejust

overstim

ated

freaks

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 36: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

wrong

way

ofwriting

scientificsoftware

�Iwill

just

have

todo

iton

ce

�Nob

odycareson

how

Ido

getto

theansw

er,Iwill

nevershare

thiswithothers

�IfIsparetime,

Iwill

publishfaster

�The

compu

terwill

understand

anyw

ay

�Ifitworks

withthisinpu

t,itworks

foranyinpu

t

�The

resourcesIhave

iswhateveryb

odyhave

�The

data

form

atissecond

ary,Ikn

owwhatthey

are

�The

precisionIneed

inresultistheon

ethecompu

teruses

�Softwareprofession

alsarejust

overstim

ated

freaks

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 37: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

wrong

way

ofwriting

scientificsoftware

�Iwill

just

have

todo

iton

ce

�Nob

odycareson

how

Ido

getto

theansw

er,Iwill

nevershare

thiswithothers

�IfIsparetime,

Iwill

publishfaster

�The

compu

terwill

understand

anyw

ay

�Ifitworks

withthisinpu

t,itworks

foranyinpu

t

�The

resourcesIhave

iswhateveryb

odyhave

�The

data

form

atissecond

ary,Ikn

owwhatthey

are

�The

precisionIneed

inresultistheon

ethecompu

teruses

�Softwareprofession

alsarejust

overstim

ated

freaks

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 38: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

wrong

way

ofwriting

scientificsoftware

�Iwill

just

have

todo

iton

ce

�Nob

odycareson

how

Ido

getto

theansw

er,Iwill

nevershare

thiswithothers

�IfIsparetime,

Iwill

publishfaster

�The

compu

terwill

understand

anyw

ay

�Ifitworks

withthisinpu

t,itworks

foranyinpu

t

�The

resourcesIhave

iswhateveryb

odyhave

�The

data

form

atissecond

ary,Ikn

owwhatthey

are

�The

precisionIneed

inresultistheon

ethecompu

teruses

�Softwareprofession

alsarejust

overstim

ated

freaks

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 39: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

wrong

way

ofwriting

scientificsoftware

�Iwill

just

have

todo

iton

ce

�Nob

odycareson

how

Ido

getto

theansw

er,Iwill

nevershare

thiswithothers

�IfIsparetime,

Iwill

publishfaster

�The

compu

terwill

understand

anyw

ay

�Ifitworks

withthisinpu

t,itworks

foranyinpu

t

�The

resourcesIhave

iswhateveryb

odyhave

�The

data

form

atissecond

ary,Ikn

owwhatthey

are

�The

precisionIneed

inresultistheon

ethecompu

teruses

�Softwareprofession

alsarejust

overstim

ated

freaks

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 40: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

wrong

way

ofwriting

scientificsoftware

�Iwill

just

have

todo

iton

ce

�Nob

odycareson

how

Ido

getto

theansw

er,Iwill

nevershare

thiswithothers

�IfIsparetime,

Iwill

publishfaster

�The

compu

terwill

understand

anyw

ay

�Ifitworks

withthisinpu

t,itworks

foranyinpu

t

�The

resourcesIhave

iswhateveryb

odyhave

�The

data

form

atissecond

ary,Ikn

owwhatthey

are

�The

precisionIneed

inresultistheon

ethecompu

teruses

�Softwareprofession

alsarejust

overstim

ated

freaks

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 41: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientist

asaprogrammer

�Poo

rkn

owledg

eof

theHardw

are

�Poo

rkn

owledg

eof

theSystem

Software

�Poo

rkn

owledg

eof

theToo

ls

�Usually

littlemon

eybu

tlotof

manpow

er

�Usually

forced

tosomeone

else

bestchoices

�Veryconservative,low

sharingattitude

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 42: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientist

asaprogrammer

�Poo

rkn

owledg

eof

theHardw

are

�Poo

rkn

owledg

eof

theSystem

Software

�Poo

rkn

owledg

eof

theToo

ls

�Usually

littlemon

eybu

tlotof

manpow

er

�Usually

forced

tosomeone

else

bestchoices

�Veryconservative,low

sharingattitude

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 43: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientist

asaprogrammer

�Poo

rkn

owledg

eof

theHardw

are

�Poo

rkn

owledg

eof

theSystem

Software

�Poo

rkn

owledg

eof

theToo

ls

�Usually

littlemon

eybu

tlotof

manpow

er

�Usually

forced

tosomeone

else

bestchoices

�Veryconservative,low

sharingattitude

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 44: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientist

asaprogrammer

�Poo

rkn

owledg

eof

theHardw

are

�Poo

rkn

owledg

eof

theSystem

Software

�Poo

rkn

owledg

eof

theToo

ls

�Usually

littlemon

eybu

tlotof

manpow

er

�Usually

forced

tosomeone

else

bestchoices

�Veryconservative,low

sharingattitude

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 45: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientist

asaprogrammer

�Poo

rkn

owledg

eof

theHardw

are

�Poo

rkn

owledg

eof

theSystem

Software

�Poo

rkn

owledg

eof

theToo

ls

�Usually

littlemon

eybu

tlotof

manpow

er

�Usually

forced

tosomeone

else

bestchoices

�Veryconservative,low

sharingattitude

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 46: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

The

Scientist

asaprogrammer

�Poo

rkn

owledg

eof

theHardw

are

�Poo

rkn

owledg

eof

theSystem

Software

�Poo

rkn

owledg

eof

theToo

ls

�Usually

littlemon

eybu

tlotof

manpow

er

�Usually

forced

tosomeone

else

bestchoices

�Veryconservative,low

sharingattitude

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 47: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

SoftwareEngineering

�Designsolution

underconstraint

�Und

erstanding

thecompu

ter

�Und

erstanding

theprob

lem

�Fitthetwotogether

andchoo

setherigh

ttools

�Stand

ards

inbothcoding

anddata

�Docum

entation

ofcode

andalgorithm

�Teston

differentplatform

s�

Check

possiblefailures

�Wheneverpossible,

seek

forhelp

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 48: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

SoftwareEngineering

�Designsolution

underconstraint

�Und

erstanding

thecompu

ter

�Und

erstanding

theprob

lem

�Fitthetwotogether

andchoo

setherigh

ttools

�Stand

ards

inbothcoding

anddata

�Docum

entation

ofcode

andalgorithm

�Teston

differentplatform

s�

Check

possiblefailures

�Wheneverpossible,

seek

forhelp

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 49: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

SoftwareEngineering

�Designsolution

underconstraint

�Und

erstanding

thecompu

ter

�Und

erstanding

theprob

lem

�Fitthetwotogether

andchoo

setherigh

ttools

�Stand

ards

inbothcoding

anddata

�Docum

entation

ofcode

andalgorithm

�Teston

differentplatform

s�

Check

possiblefailures

�Wheneverpossible,

seek

forhelp

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 50: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

SoftwareEngineering

�Designsolution

underconstraint

�Und

erstanding

thecompu

ter

�Und

erstanding

theprob

lem

�Fitthetwotogether

andchoo

setherigh

ttools

�Stand

ards

inbothcoding

anddata

�Docum

entation

ofcode

andalgorithm

�Teston

differentplatform

s�

Check

possiblefailures

�Wheneverpossible,

seek

forhelp

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 51: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

SoftwareEngineering

�Designsolution

underconstraint

�Und

erstanding

thecompu

ter

�Und

erstanding

theprob

lem

�Fitthetwotogether

andchoo

setherigh

ttools

�Stand

ards

inbothcoding

anddata

�Docum

entation

ofcode

andalgorithm

�Teston

differentplatform

s�

Check

possiblefailures

�Wheneverpossible,

seek

forhelp

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 52: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

SoftwareEngineering

�Designsolution

underconstraint

�Und

erstanding

thecompu

ter

�Und

erstanding

theprob

lem

�Fitthetwotogether

andchoo

setherigh

ttools

�Stand

ards

inbothcoding

anddata

�Docum

entation

ofcode

andalgorithm

�Teston

differentplatform

s�

Check

possiblefailures

�Wheneverpossible,

seek

forhelp

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 53: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

SoftwareEngineering

�Designsolution

underconstraint

�Und

erstanding

thecompu

ter

�Und

erstanding

theprob

lem

�Fitthetwotogether

andchoo

setherigh

ttools

�Stand

ards

inbothcoding

anddata

�Docum

entation

ofcode

andalgorithm

�Teston

differentplatform

s

�Check

possiblefailures

�Wheneverpossible,

seek

forhelp

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 54: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

SoftwareEngineering

�Designsolution

underconstraint

�Und

erstanding

thecompu

ter

�Und

erstanding

theprob

lem

�Fitthetwotogether

andchoo

setherigh

ttools

�Stand

ards

inbothcoding

anddata

�Docum

entation

ofcode

andalgorithm

�Teston

differentplatform

s�

Check

possiblefailures

�Wheneverpossible,

seek

forhelp

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 55: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

SoftwareEngineering

�Designsolution

underconstraint

�Und

erstanding

thecompu

ter

�Und

erstanding

theprob

lem

�Fitthetwotogether

andchoo

setherigh

ttools

�Stand

ards

inbothcoding

anddata

�Docum

entation

ofcode

andalgorithm

�Teston

differentplatform

s�

Check

possiblefailures

�Wheneverpossible,

seek

forhelp

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 56: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandthecompu

ter

�Mathematic

isdeclarative(W

hatiskn

owledg

e)

�Com

puterScience

isim

perative(H

owto

know

ledg

e)

�Weneed

alang

uage

todescribeprocess

�Weneed

alogicto

prescribeprocess

�FloatingPoint

Arithmetic

�ReadDadid

Goldb

ergPap

erWhateverycompu

terscientist

shou

ldkn

owab

outflo

ating-point

arithm

etic

�Com

puterresources:

econ

omicsof

thecalculation

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 57: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandthecompu

ter

�Mathematic

isdeclarative(W

hatiskn

owledg

e)�

Com

puterScience

isim

perative(H

owto

know

ledg

e)

�Weneed

alang

uage

todescribeprocess

�Weneed

alogicto

prescribeprocess

�FloatingPoint

Arithmetic

�ReadDadid

Goldb

ergPap

erWhateverycompu

terscientist

shou

ldkn

owab

outflo

ating-point

arithm

etic

�Com

puterresources:

econ

omicsof

thecalculation

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 58: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandthecompu

ter

�Mathematic

isdeclarative(W

hatiskn

owledg

e)�

Com

puterScience

isim

perative(H

owto

know

ledg

e)�

Weneed

alang

uage

todescribeprocess

�Weneed

alogicto

prescribeprocess

�FloatingPoint

Arithmetic

�ReadDadid

Goldb

ergPap

erWhateverycompu

terscientist

shou

ldkn

owab

outflo

ating-point

arithm

etic

�Com

puterresources:

econ

omicsof

thecalculation

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 59: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandthecompu

ter

�Mathematic

isdeclarative(W

hatiskn

owledg

e)�

Com

puterScience

isim

perative(H

owto

know

ledg

e)�

Weneed

alang

uage

todescribeprocess

�Weneed

alogicto

prescribeprocess

�FloatingPoint

Arithmetic

�ReadDadid

Goldb

ergPap

erWhateverycompu

terscientist

shou

ldkn

owab

outflo

ating-point

arithm

etic

�Com

puterresources:

econ

omicsof

thecalculation

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 60: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandthecompu

ter

�Mathematic

isdeclarative(W

hatiskn

owledg

e)�

Com

puterScience

isim

perative(H

owto

know

ledg

e)�

Weneed

alang

uage

todescribeprocess

�Weneed

alogicto

prescribeprocess

�FloatingPoint

Arithmetic

�ReadDadid

Goldb

ergPap

erWhateverycompu

terscientist

shou

ldkn

owab

outflo

ating-point

arithm

etic

�Com

puterresources:

econ

omicsof

thecalculation

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 61: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandthecompu

ter

�Mathematic

isdeclarative(W

hatiskn

owledg

e)�

Com

puterScience

isim

perative(H

owto

know

ledg

e)�

Weneed

alang

uage

todescribeprocess

�Weneed

alogicto

prescribeprocess

�FloatingPoint

Arithmetic

�ReadDadid

Goldb

ergPap

erWhateverycompu

terscientist

shou

ldkn

owab

outflo

ating-point

arithm

etic

�Com

puterresources:

econ

omicsof

thecalculation

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 62: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandthecompu

ter

�Mathematic

isdeclarative(W

hatiskn

owledg

e)�

Com

puterScience

isim

perative(H

owto

know

ledg

e)�

Weneed

alang

uage

todescribeprocess

�Weneed

alogicto

prescribeprocess

�FloatingPoint

Arithmetic

�ReadDadid

Goldb

ergPap

erWhateverycompu

terscientist

shou

ldkn

owab

outflo

ating-point

arithm

etic

�Com

puterresources:

econ

omicsof

thecalculation

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 63: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandtheproblem

�Think

withDataStructures

�DesignDataStructuresandaccess

function

sto

them

�Designtheprogram

asasequ

ence

ofop

erations

ondata

�Designthem

tobeexpand

able

�Designaflo

wdiagram

oftheprog

ram

andwrite

itdown

�Use

standard

toolsifavailable(U

ML)

�Use

anyw

aythepseudo

code

�Evaluatetherequ

irem

ents

fortheexecution

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 64: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandtheproblem

�Think

withDataStructures

�DesignDataStructuresandaccess

function

sto

them

�Designtheprogram

asasequ

ence

ofop

erations

ondata

�Designthem

tobeexpand

able

�Designaflo

wdiagram

oftheprog

ram

andwrite

itdown

�Use

standard

toolsifavailable(U

ML)

�Use

anyw

aythepseudo

code

�Evaluatetherequ

irem

ents

fortheexecution

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 65: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandtheproblem

�Think

withDataStructures

�DesignDataStructuresandaccess

function

sto

them

�Designtheprogram

asasequ

ence

ofop

erations

ondata

�Designthem

tobeexpand

able

�Designaflo

wdiagram

oftheprog

ram

andwrite

itdown

�Use

standard

toolsifavailable(U

ML)

�Use

anyw

aythepseudo

code

�Evaluatetherequ

irem

ents

fortheexecution

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 66: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandtheproblem

�Think

withDataStructures

�DesignDataStructuresandaccess

function

sto

them

�Designtheprogram

asasequ

ence

ofop

erations

ondata

�Designthem

tobeexpand

able

�Designaflo

wdiagram

oftheprog

ram

andwrite

itdown

�Use

standard

toolsifavailable(U

ML)

�Use

anyw

aythepseudo

code

�Evaluatetherequ

irem

ents

fortheexecution

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 67: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandtheproblem

�Think

withDataStructures

�DesignDataStructuresandaccess

function

sto

them

�Designtheprogram

asasequ

ence

ofop

erations

ondata

�Designthem

tobeexpand

able

�Designaflo

wdiagram

oftheprog

ram

andwrite

itdown

�Use

standard

toolsifavailable(U

ML)

�Use

anyw

aythepseudo

code

�Evaluatetherequ

irem

ents

fortheexecution

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 68: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandtheproblem

�Think

withDataStructures

�DesignDataStructuresandaccess

function

sto

them

�Designtheprogram

asasequ

ence

ofop

erations

ondata

�Designthem

tobeexpand

able

�Designaflo

wdiagram

oftheprog

ram

andwrite

itdown

�Use

standard

toolsifavailable(U

ML)

�Use

anyw

aythepseudo

code

�Evaluatetherequ

irem

ents

fortheexecution

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 69: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandtheproblem

�Think

withDataStructures

�DesignDataStructuresandaccess

function

sto

them

�Designtheprogram

asasequ

ence

ofop

erations

ondata

�Designthem

tobeexpand

able

�Designaflo

wdiagram

oftheprog

ram

andwrite

itdown

�Use

standard

toolsifavailable(U

ML)

�Use

anyw

aythepseudo

code

�Evaluatetherequ

irem

ents

fortheexecution

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 70: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Und

erstandtheproblem

�Think

withDataStructures

�DesignDataStructuresandaccess

function

sto

them

�Designtheprogram

asasequ

ence

ofop

erations

ondata

�Designthem

tobeexpand

able

�Designaflo

wdiagram

oftheprog

ram

andwrite

itdown

�Use

standard

toolsifavailable(U

ML)

�Use

anyw

aythepseudo

code

�Evaluatetherequ

irem

ents

fortheexecution

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 71: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

followcoding

standard

�You

canun

derstand

You

row

nprog

rams

�Som

eone

else

canun

derstand

You

row

nprog

rams

�You

canhave

external

contribu

tion

You

understand

�You

sparetimein

thelong

run:

Science

mustbereprod

ucible

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 72: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

followcoding

standard

�You

canun

derstand

You

row

nprog

rams

�Som

eone

else

canun

derstand

You

row

nprog

rams

�You

canhave

external

contribu

tion

You

understand

�You

sparetimein

thelong

run:

Science

mustbereprod

ucible

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 73: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

followcoding

standard

�You

canun

derstand

You

row

nprog

rams

�Som

eone

else

canun

derstand

You

row

nprog

rams

�You

canhave

external

contribu

tion

You

understand

�You

sparetimein

thelong

run:

Science

mustbereprod

ucible

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 74: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

followcoding

standard

�You

canun

derstand

You

row

nprog

rams

�Som

eone

else

canun

derstand

You

row

nprog

rams

�You

canhave

external

contribu

tion

You

understand

�You

sparetimein

thelong

run:

Science

mustbereprod

ucible

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 75: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

usearevision

controlsystem

�You

canfollow

thedevelopm

entof

theprog

ram

�You

candeveloptheprogram

inateam

�You

canrevert

themod

ification

sdo

neat

anytime

�You

cancalculateeasily

efforts

requ

ired

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 76: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

usearevision

controlsystem

�You

canfollow

thedevelopm

entof

theprog

ram

�You

candeveloptheprog

ram

inateam

�You

canrevert

themod

ification

sdo

neat

anytime

�You

cancalculateeasily

efforts

requ

ired

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 77: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

usearevision

controlsystem

�You

canfollow

thedevelopm

entof

theprog

ram

�You

candeveloptheprog

ram

inateam

�You

canrevert

themod

ification

sdo

neat

anytime

�You

cancalculateeasily

efforts

requ

ired

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 78: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

usearevision

controlsystem

�You

canfollow

thedevelopm

entof

theprog

ram

�You

candeveloptheprog

ram

inateam

�You

canrevert

themod

ification

sdo

neat

anytime

�You

cancalculateeasily

efforts

requ

ired

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 79: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

plan

testing

�You

shou

ldtest

You

rprog

ram

forvalid

andinvalid

inpu

t

�You

wantto

have

away

totest

itagainin

thefuture

�You

may

wantto

findprob

lemsandbu

gs

�You

wantsimpletoolsto

follow

prog

ram

flow

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 80: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

plan

testing

�You

shou

ldtest

You

rprog

ram

forvalid

andinvalid

inpu

t

�You

wantto

have

away

totest

itagainin

thefuture

�You

may

wantto

findprob

lemsandbu

gs

�You

wantsimpletoolsto

follow

prog

ram

flow

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 81: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

plan

testing

�You

shou

ldtest

You

rprog

ram

forvalid

andinvalid

inpu

t

�You

wantto

have

away

totest

itagainin

thefuture

�You

may

wantto

findprob

lemsandbu

gs

�You

wantsimpletoolsto

follow

prog

ram

flow

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 82: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

plan

testing

�You

shou

ldtest

You

rprog

ram

forvalid

andinvalid

inpu

t

�You

wantto

have

away

totest

itagainin

thefuture

�You

may

wantto

findprob

lemsandbu

gs

�You

wantsimpletoolsto

follow

prog

ram

flow

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 83: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

have

aSoftwareForge

�WhatisaCollaborativeDevelop

mentEnviron

ment?

�Web

basedcollaborationsite

�Cod

erepositoryandprojectmanagem

ent

�Cod

emaintenance

andversioning

�Docum

entation

platform

�Bug

stracking

andticketing

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 84: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

have

aSoftwareForge

�WhatisaCollaborativeDevelop

mentEnviron

ment?

�Web

basedcollaborationsite

�Cod

erepositoryandprojectmanagem

ent

�Cod

emaintenance

andversioning

�Docum

entation

platform

�Bug

stracking

andticketing

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 85: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

have

aSoftwareForge

�WhatisaCollaborativeDevelop

mentEnviron

ment?

�Web

basedcollaborationsite

�Cod

erepositoryandprojectmanagem

ent

�Cod

emaintenance

andversioning

�Docum

entation

platform

�Bug

stracking

andticketing

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 86: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

have

aSoftwareForge

�WhatisaCollaborativeDevelop

mentEnviron

ment?

�Web

basedcollaborationsite

�Cod

erepositoryandprojectmanagem

ent

�Cod

emaintenance

andversioning

�Docum

entation

platform

�Bug

stracking

andticketing

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 87: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

have

aSoftwareForge

�WhatisaCollaborativeDevelop

mentEnviron

ment?

�Web

basedcollaborationsite

�Cod

erepositoryandprojectmanagem

ent

�Cod

emaintenance

andversioning

�Docum

entation

platform

�Bug

stracking

andticketing

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 88: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Why

You

should

have

aSoftwareForge

�WhatisaCollaborativeDevelop

mentEnviron

ment?

�Web

basedcollaborationsite

�Cod

erepositoryandprojectmanagem

ent

�Cod

emaintenance

andversioning

�Docum

entation

platform

�Bug

stracking

andticketing

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 89: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Scientific

codebases

�Iswriting

from

scratchalwaysworth

thetask?

�Mix

ofpu

blic

domain,

free

softwareandcommercial

solution

s

�Com

mercial

environm

ents

andtoolsforresearch:morethe

possibleou

tcom

e,morethecommercial

�Which

policyshou

ldbeused

todevelopscientificsoftware?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 90: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Scientific

codebases

�Iswriting

from

scratchalwaysworth

thetask?

�Mix

ofpu

blic

domain,

free

softwareandcommercial

solution

s

�Com

mercial

environm

ents

andtoolsforresearch:morethe

possibleou

tcom

e,morethecommercial

�Which

policyshou

ldbeused

todevelopscientificsoftware?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 91: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Scientific

codebases

�Iswriting

from

scratchalwaysworth

thetask?

�Mix

ofpu

blic

domain,

free

softwareandcommercial

solution

s

�Com

mercial

environm

ents

andtoolsforresearch:morethe

possibleou

tcom

e,morethecommercial

�Which

policyshou

ldbeused

todevelopscientificsoftware?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 92: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Scientific

codebases

�Iswriting

from

scratchalwaysworth

thetask?

�Mix

ofpu

blic

domain,

free

softwareandcommercial

solution

s

�Com

mercial

environm

ents

andtoolsforresearch:morethe

possibleou

tcom

e,morethecommercial

�Which

policyshou

ldbeused

todevelopscientificsoftware?

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce

Page 93: 01Basic Concepts of Software Engineering and Maintenance

Scien

tificSoftw

are

Softw

areEngineering

Instrumen

ts

Thank

You

!

Thank

You

!

ICTP

-ESP

Basic

concepts

ofsoftwareen

gineeringan

dmaintenan

ce