31
Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 1 Software Development CYCLE in Astronomy

Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 1

Software Development CYCLE

in Astronomy

Page 2: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

2

Convert ideas to software

Deliver on time

Keep it running..(reliably, efficiently)

What is software engineering?

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019

Page 3: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 3

101010

Its about…

Page 4: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 4

Project pitfalls…

Page 5: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 5

SDLC

Page 6: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 6

Process for Small project

Big Bang Model• This model is ideal for small projects

like academic projects or practical

projects. One or two developers can

work together on this model.

• In this model, developers do not follow

any specific process. Development

begins with the necessary funds and

efforts in the form of inputs.

• And the result may or may not be as

per the customer's requirement,

because in this model, even the

customer requirements are not

defined.

• https://www.javatpoint.com/software-

engineering-big-bang-model

Page 7: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 7

triaxalSchwarzchild

➢ 10K LOC

➢ Complex concepts

➢ Less formality

Prototyping

Requirements

Requirements

Development

Test

Maintenance

Analysis

Planning

Design

Page 8: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 8

Requirements

Requirements

Development

Test

Maintenance

Analysis

Planning

Design

Planning

Page 9: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 9

Modelling stellar dynamics•parameter fitting•Select the best model

What?

Page 10: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 10

How?

Parallel computing is perfect

for modeling, simulating

make better use of underlying parallel hardware Cluster of computer

Page 11: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 11

When?

2020

GPU

present triaxialSchwarzchild

Collect ideas

Kick off

Page 12: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 12

Requirements

Requirements

Development

Test

Maintenance

Analysis

Planning

Design

Analysis

Page 13: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 13

Feasibility study

➢Details

➢Prototyping/Testing

➢Discuss GUI

Check availability reusability of existing software

Cost, Time

Analysis

Page 14: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 14

Analysis

Document your idea in a way that is meaningful

for software people (UML, Activity diagram)

Page 15: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 15

Concept via UML activity diagrams

Analysis

Page 16: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 16

Milestones

Milestones

New features: models C++triaxialSchwarzchild via C++

C++ wrappers

Parallel execution MAC

GPU

First prototype

AI

Data handling

Optimisation

Best Fit Loop

100%

C++

User reqGUItests

Page 17: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 17

Requirements

Requirements

Development

Test

Maintenance

Analysis

Planning

DesignDESIGN

Page 18: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 18

➢Architecture• Packages

– classes

• Connections

➢Data handling (memory and file handling)

➢Flexibility/ Configuration etc.

➢Logging and debugging

➢User interface

Design

Page 19: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 19

Design patterns

Design decisions ( e.g. process or thread)

Software Design

Page 20: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 20

Requirements

Requirements

Development

Test

Maintenance

Analysis

Planning

Design

Development

Page 21: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21

Free stuff

➢Platform : Linux by Linus Torvalds

➢GIT version control

➢Language : C++ by Bjarne Stroutstroup

➢ IDE

➢Download support Libraries

➢ Installation method (Makefile,Maven,Gradel,Waf..)

➢Problem reporting system (Jira, Bugzilla)

➢Setup Database

Preparation

Page 22: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 22

80 % of the time the software runs in 20% of the

code (Pareto rule)

➢Stability is given by the rest!! • Error handling, Special cases,

• preparation, logging,

• startup/shutdown actions

Unit test

Documentation

Development…

Page 23: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 23

Software development practices

Page 24: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 24

Interface Fortran/C++

Parallelization

➢Race conditions

Memory handling

Flexibility via design pattern

Stability

Optimization for speed

Software Challenges

Page 25: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 25

Requirements

Requirements

Development

Test

Maintenance

Analysis

Planning

Design

TEST

Page 26: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 26

Test: phaseA (developer) → phaseB (professional testers) → phaseC (requester)

Integration: Test platform ➔ User platform

Test and integration

Page 27: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 27

MAINTENANCE

Page 28: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Evolution

UVES

ISAAC

ISF:OOP

BOSS

Page 29: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 29

• repeatedly updating software for various reasons

• improvement: Involve changes in functionality

• Adaptative: Changes in the environment are adapted to the requirements

• Corrective: Activities for error correction

• Preventive: Improvements to avoid future problems

Maintenance

https://larlet.fr/static/david/blog/

ensmenger-maintainers-v2.pdf

Page 30: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 30

50% and 70% of all total costs

MAINTENANCE COST

Lehman's Laws

• "Continuing Change“

• "Increasing Complexity“

• "Declining Quality"

Page 31: Software Development CYCLE in Astronomy · Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 21 Free stuff Platform : Linux by Linus Torvalds GIT version control Language

Eszter Pozna - Vienna Dynamics Workshop 8-11 October 2019 31