From: Bil Kleb Date: 2006-02-16T00:03:35+09:00 Subject: Possible Ruby-centric NASA SBIR area I've been asked to write a small topic area for our SBIR (small business innovation research) program, which is basically a method to fun small businesses in $70k, $500k, and $2-3M chunks for promising research topics. SBIR's premise doesn't fit too well with open source, but I thought it would be worth a try. For more information about SBIRs, see http://sbir.gsfc.nasa.gov The following is a selfish, Ruby-centric draft of a topic I threw together last night. Please pick it apart, add to it, ignore it, or whatever, but to have an impact on this go-around, I need your input by tomorrow morning (Eastern US time). Title: Tools to Support Agile, Scientific Software Development The aim of this "software craftsmanship" topic is to solicit tools that make it easier for software developers in general, and scientific programmers in particular, to adopt agile software development practices. Submissions will achieve this by creating tools that are easier to learn and use than the current Unix-style tool set, documenting these tools and the practices they embody, and remaining readily extendable. All tools should be portable across Mac OS X, Linux, and Microsoft Windows, come with a complete set of automated unit tests, and be implemented primarily in, or scriptable with, Ruby. Examples of desired tools include testing frameworks for Fortran 95, C, and C++ (unit, regression, performance, and integration), CASE tools (Lakos analysis, calling trees, object modeling and design, dependency analysis, cyclomatic complexity), refactoring tools, API documentation tools (e.g., C++ and Fortran 95 parsers for RDoc), a Textile-to-PDF converter including embedded LaTeX mathematics and graphics or similar way to get from simple markup to a typeset document, domain specific languages, code release and request administration systems, distributed continuous integration systems, templating systems for Fortran 95, and novel systems for monitoring simulations (e.g., Peep:A Network Auralizer or other ambient means). Regards, -- Bil, http://fun3d.larc.nasa.gov