Aspects of scientific software development that should be systematically addressed in order to improve software productivity, quality, and sustainability.
Software development is a process of writing, maintaining, and extending source code to create software products. In a broad sense, software development includes all that is involved between the conception of the software through to the final manifestation of the software.
Management of changes to files. Also known as revision control, source control, or source management.
Installing scientific software from source requires a system for setting up (configuring) software to compile and link (build) the code according to the user's specific platform and needs.
Written text or illustration that accompanies computer software to explain how it operates or how to use it.
Procedures and considerations for getting a well engineered, reliable and maintained software.
The process of improving internal attributes of a software product (e.g. readability, maintainability) without modifying any of its existing external functionality.
Tools that support different aspects of software development, such as editors, integrated development environments, performance measurement and analysis tools, memory checkers, and debuggers.
The process of managing a collection of issues (bugs, feature requests, missing documentation, etc.) that are currently being handled, or should be handled, by a software development team.
Making software available to users and related activities. This could involve providing users with an installer, deploying the software on systems where the users can access it, or a combination of both.