models of scientific software
play

Models of scientific software development Judith Segal Empirical - PowerPoint PPT Presentation

Models of scientific software development Judith Segal Empirical Studies of Software Development Group, Centre for Research in Computing The Open University UK MK7 6AA j.a.segal@open.ac.uk SECSE08,May 13th 2008 1 Background One feature


  1. Models of scientific software development Judith Segal Empirical Studies of Software Development Group, Centre for Research in Computing The Open University UK MK7 6AA j.a.segal@open.ac.uk SECSE08,May 13th 2008 1

  2. Background One feature which distinguishes scientific software development is the poorly understood and complex domain: • The scientists have to be deeply involved with the development • Often, the scientists are the developers, ’professional end user developers’, or they develop the software in partnership with software engineers SECSE08,May 13th 2008 2

  3. My ***creed***: In order to identify those software engineering techniques and tools which might best benefit developers of scientific software, we have to understand - What they do when they develop software - The context in which it is developed. SECSE08,May 13th 2008 3

  4. My field studies Concerned the following scientists • Financial mathematicians • Earth and planetary scientists • Biologists Developing • Models of financial markets • Software to drive instruments • Software to store, manage and analyse data Sometimes scientists develop software on their own, sometimes in partnership with software engineers. SECSE08,May 13th 2008 4

  5. Scientists developing software: a model of scientific software development (SSDS) Vague Um – is this Develop piece idea of of software what I/we what is want? needed Modify/extend No Done? Yes Does it It’ll do seem to do what I expect? SECSE08,May 13th 2008 5

  6. Characteristics of this model • Requirements emerge rather than being specified upfront • Requirements identification and evaluation co-occur • Testing is cursory SECSE08,May 13th 2008 6

  7. It works (apparently)! But in a very specific context… • Developer is embedded in the user community • Software not overly complex nor safety-critical • The developer is truly representative of the user community (so the community is coherent). What happens when the context changes and software engineers become involved? SECSE08,May 13th 2008 7

  8. Problems! (i) inappropriate use of software engineering models The context: • Software engineers developing a library of components to drive a laboratory instrument in a spacecraft • Software engineers following a waterfall-like model of development advocated by the European Space Agency • Scientists used to developing software to drive instruments in the lab • Scientists working on a lab model to derive the requirements. SECSE08,May 13th 2008 8

  9. Software Sorry haven’t quite I need your Scientist engineer requirements worked them out … Wouldn’t it be I need your requirements interesting if we tried NOW … that? … GIVE ME YOUR Just have to work out what’s going REQUIREMENTS … on here… Sigh … Sigh … SECSE08,May 13th 2008 9

  10. More problems: (ii) inappropriate use of the SSDS model Scientist Software engineer Just write a Eh??? simple graph- matching What??? program. Come back How??? next week. SECSE08,May 13th 2008 10

  11. So…some software engineering techniques are less appropriate to scientific software development… • Upfront requirements specification Some are more … Testing [Testing] has also been something new for me. Testing just didn’t happen. .. One assumes that if the numbers came out of the other end, they were right. And that is in hindsight, an embarrassingly stupid assumption… the concept of writing code that is testable has been a very useful one.’ SECSE08,May 13th 2008 11

  12. BUT which are more appropriate and which less, and in which contexts? Software engineering has a huge variety of software engineering techniques and tools Scientific software development takes place in a h uge variety of contexts HPC or not Software engineers involved or not Test oracle or not Purpose of software – Theory testing – Data management – Analysis – Orchestration of workflows – Simulations SECSE08,May 13th 2008 12

  13. A possible research agenda 1. Need to identify contexts of scientific software development 2. Need to identify possibly relevant techniques 3. Need to identify a matching between 1 and 2 (including validation) • AND 4. Need to make scientists aware of our results. SECSE08,May 13th 2008 13

  14. Thank you for listening. Any questions? SECSE08,May 13th 2008 14

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend