Summary

Instructor note

  • Summary 10 min

You now have acquainted yourself with the tools you will use in this course. These are also helpful in your development work.

The development cycle

Typical workflow:

Requirements

Analysis and design

Development

Test

Development and maintenance

Iteration!

Important to identify problem in beginning and add for flexibility

Planning phase with pseudocode and UML

  • UML is good in several conditions

  • The most important diagrams for software development are:

    •  Class
      
    •  Sequence
      
    •  Activity
      
  • There are plenty of tools out there

  • Pseudocode gives a more detailed description what you want the program to do.

    • Can be highly personal or very language-like

Git and Github

  • share your code

  • open source

Reproducibility

  • Preserve the steps for re-generating published results.

  • Hundreds of workflow management tools exist.

  • Snakemake is a comparatively simple and lightweight option to create transferable and scalable data analyses.

  • Sometimes a script is enough.

  • Share your code! Eventually others will probably use it anyway.

  • Licence your software and do it early. Default is “no one can make copies or derivative works”.

  • Get DOI or at least state how to cite your software

Documentation

  • Document in code, answering why, not how.

  • Make a README.txt for an overview of the software.

  • Documentation should be tracked with the corresponding code in the same repository

  • Full documentation or tutorial

  • Deploy at GH-pages or ReadTheDocs

Coming days

  • Programming paradigms

  • Testing and test-driven design

  • Algorithms

  • Data structures

  • Modular programming

  • Optimization

Nordic Research Software Engineer

A Research Software Engineer (RSE) is someone in between research and technology (software, computing, data). Perhaps they work as a expert within a research group, or perhaps they work as a specialist in a service that supports other researchers. Does this sound like you? Read on… https://nordic-rse.org/

Menti

  • What have you learnt

  • What will you do differently?