What is CSE Software Development

All software development should be cognizant of quality control, and should ideally adopt software practices that lead to reproducible results. Beyond that, the rigor and extent of software practices adopted should reflect the scope and complexity of the project. The requirements that we advocate address most demanding project needs; others can adopt a subset of these practices depending upon their needs.

Published May 15, 2019

Contributor Anshu Dubey

In scientific software requirements gathering phase only loosely determines the required functionality to achieve project goals because scientific software typically does not have static goals. They change with greater knowledge and understanding, therefore, in a way requirements gathering can be viewed as an ongoing process in scientific codes. Not only must the software design be flexible enough to accommodate this dynamism, the software process must also be able to handle it. Development process also involves determination and articulation of verification and validation standards, coding standards and documentation standards. It also includes decision on whether automated regular testing should be a part of the development regime, and if so what are the policites for checking in and addressing testsuite failures. Having well defined coding and testing standards from the outset is essential. Documentation standards dictate the extent of information carried about the development process. For example, a policy could be that all interfaces be described in terms of functionality, parameters, and outcomes in terms of both returned quantities and any changes to the state, and how much documentation should be maintained about design choices and references relevant to the code. A part of coding standard could be the choice of variable names, which would ideally be as self-explanatory as possible.