User Tools

Site Tools


skill-tree:sd:b

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
skill-tree:sd:b [2020/06/19 14:34] kunkelskill-tree:sd:b [2020/07/19 20:00] (current) lucy
Line 4: Line 4:
  
 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, reducing the coding errors and increasing the manageability of software.+However, it bears the potential to increase productivity by providing scaffolding for collaborative programming, reducing the coding errors and increasing the manageability of software.
  
 # Aim # Aim
-  * To apply practices and methods from software engineering that are relevant for high performance computing+  * To apply practices and methods from software engineering that are relevant for high-performance computing.
  
 # Outcomes # Outcomes
-  * Explain agile software engineering methods and practices relevant in high-performance computing +  * Explain agile software engineering methods and practices relevant in high-performance computing. 
-  * Apply software engineering methods and best practices when developing parallel applications +  * Apply software engineering methods and best practices when developing parallel applications. 
-  * Write modular, reusable code by applying software design principles like loose coupling and information hiding +  * Write modular, reusable code by applying software design principles like loose coupling and information hiding. 
-  * Apply design patterns for HPC +  * Apply design patterns for HPC. 
-  * Configure and use integrated development environments (IDEs) to seamlessly perform the typical development cycle with the steps edit, build (compile and link), and test +  * Configure and use integrated development environments (IDEs) to seamlessly perform the typical development cycle with the steps edit, build (compile and link), and test. 
-  * Use sophisticated debuggers for parallel programs +  * Use sophisticated debuggers for parallel programs. 
-  * Recognize where (parallel) programming idioms are violated and refactor the code to comply to a specific programming idom +  * Recognize where (parallel) programming idioms are violated and refactor the code to comply with a specific programming idiom. 
-  * Define and establish coding standards and conventions in a project +  * 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 +  * 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. 
-  * Configure an environment for continuous integration with basic processing steps like compiling and automated testing +  * 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 +  * Apply unit testing in a specific programming language using an appropriate unit testing framework. 
-  * Appropriately document the entire software system+  * Appropriately document the entire software system.
  
 # Subskills # Subskills
- 
   * [[skill-tree:sd:1:b]]   * [[skill-tree:sd:1:b]]
   * [[skill-tree:sd:2:b]]   * [[skill-tree:sd:2:b]]
skill-tree/sd/b.1592570060.txt.gz · Last modified: 2020/06/19 14:34 by kunkel