skill-tree:sd:b
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
skill-tree:sd:b [2020/06/05 17:06] – external edit 127.0.0.1 | skill-tree:sd:b [2025/04/16 18:30] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | # SD-B Software Development | + | # SD Software Development |
- | t | + | |
- | # Background | + | |
Software engineering is often neglected in computational science. | Software engineering is often neglected in computational science. | ||
- | However, it bears potential to increase productivity by providing scaffolding for the collaborative programming, | + | However, it bears the potential to increase productivity by providing scaffolding for collaborative programming, |
- | # Aim | + | ## Learning Outcomes |
- | * To apply practices and methods from software engineering that are relevant for high performance computing | + | |
- | # Outcomes | + | * Apply software engineering methods and best practices when developing parallel applications. |
- | * Explain agile software engineering methods and practices relevant in high-performance computing | + | * Write modular, reusable code by applying software design principles like loose coupling and information hiding. |
- | | + | * Configure and use integrated development environments (IDEs) to seamlessly perform the typical development cycle with the steps edit, build (compile and link), and test. |
- | * Write modular, reusable code by applying software design principles like loose coupling and information hiding | + | * Recognize where (parallel) programming idioms are violated and refactor the code to comply |
- | * Apply design patterns for HPC | + | * Define and establish coding standards and conventions in a project. |
- | | + | * Apply version and configuration management to the development of (parallel) programs in order to track and control changes in the sources and to establish and maintain consistency of the program or software system throughout its life. |
- | * Use sophisticated debuggers for parallel programs | + | * Appropriately document the entire software system. |
- | | + | * Demonstrate using a workflow management system for a given use case. |
- | * Define and establish coding standards and conventions in a project | + | |
- | * Apply version and configuration management to the development of (parallel) programs in order to track and control changes in the sources and to establish and maintain consistency of the program or software system throughout its life | + | ## Subskills |
- | * Configure an environment for continuous integration with basic processing steps like compiling and automated testing | + | |
- | * Apply unit testing in a specific programming language using an appropriate unit testing framework | + | * [[skill-tree: |
- | | + | * [[skill-tree: |
+ | * [[skill-tree: | ||
+ | * [[skill-tree: | ||
+ | * [[skill-tree: | ||
+ | * [[skill-tree: | ||
+ | * [[skill-tree: | ||
+ | * [[skill-tree: | ||
- | # Subskills | ||
- | s | ||
- | * [[skill-tree: | ||
- | * [[skill-tree: | ||
- | * [[skill-tree: | ||
- | * [[skill-tree: | ||
- | * [[skill-tree: | ||
- | * [[skill-tree: | ||
- | * [[skill-tree: |
skill-tree/sd/b.1591369587.txt.gz · Last modified: 2020/06/05 17:06 by 127.0.0.1