An empirical study of software design practices
IEEE Transactions on Software Engineering
An empirical study of communication in code inspections
ICSE '97 Proceedings of the 19th international conference on Software engineering
Case study: extreme programming in a university environment
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Case Studies for Software Engineers
Proceedings of the 26th International Conference on Software Engineering
Workshop on Software Engineering for High Performance Computing System (HPCS) Applications
Proceedings of the 26th International Conference on Software Engineering
International Journal of High Performance Computing Applications
Proceedings of the 27th international conference on Software engineering
Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers
SC '05 Proceedings of the 2005 ACM/IEEE conference on Supercomputing
Case study of the Falcon code project
Proceedings of the second international workshop on Software engineering for high performance computing system applications
Proceedings of the second international workshop on Software engineering for high performance computing system applications
The role of MPI in development time: a case study
Proceedings of the 2008 ACM/IEEE conference on Supercomputing
How do scientists develop and use scientific software?
SECSE '09 Proceedings of the 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering
ACM SIGSOFT Software Engineering Notes
Computer Supported Cooperative Work
Productive petascale computing: requirements, hardware, and software
Productive petascale computing: requirements, hardware, and software
A survey of scientific software development
Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement
The state of the art in end-user software engineering
ACM Computing Surveys (CSUR)
Scientific software production: incentives and collaboration
Proceedings of the ACM 2011 conference on Computer supported cooperative work
A refactoring tool to extract GPU kernels
Proceedings of the 4th Workshop on Refactoring Tools
A literature review of agile practices and their effects in scientific software development
Proceedings of the 4th International Workshop on Software Engineering for Computational Science and Engineering
A domain specific requirements model for scientific computing (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Using automatic persistent memoization to facilitate data analysis scripting
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Development of a Mesh Generation Code with a Graphical Front-End: A Case Study
Journal of Organizational and End User Computing
Characterizing Data Discovery and End-User Computing Needs in Clinical Translational Science
Journal of Organizational and End User Computing
Computational Engineering in the Cloud: Benefits and Challenges
Journal of Organizational and End User Computing
Extracting UML class diagrams from object-oriented Fortran: ForUML
SE-HPCCSE '13 Proceedings of the 1st International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
The need for high performance computing applications for computational science and engineering projects is growing rapidly, yet there have been few detailed studies of the software engineering process used for these applications. The DARPA High Productivity Computing Systems Program has sponsored a series of case studies of representative computational science and engineering projects to identify the steps involved in developing such applications (i.e. the life cycle, the workflows, technical challenges, and organizational challenges). Secondary goals were to characterize tool usage and identify enhancements that would increase the programmers' productivity. Finally, these studies were designed to develop a set of lessons learned that can be transferred to the general computational science and engineering community to improve the software engineering process used for their applications. Nine lessons learned from five representative projects are presented, along with their software engineering implications, to provide insight into the software development environments in this domain.