420 likes | 575 Views
Encouraging and Enabling Software Reuse in Earth Science at NASA. James Marshall NASA GSFC Code 610.2/614.5 Monthly Branch Meeting May 3, 2011. Agenda. Introduction to Reuse About the NASA Earth Science Data Systems (ESDS) Software Reuse Working Group (WG)
E N D
Encouraging and EnablingSoftware Reuse in Earth Science at NASA James Marshall NASA GSFC Code 610.2/614.5 Monthly Branch Meeting May 3, 2011
Agenda • Introduction to Reuse • About the NASA Earth Science Data Systems (ESDS) Software Reuse Working Group (WG) • Some Major Activities and Work Products • Reuse Enablement System (RES) • Reuse Readiness Levels (RRLs) • Guideline Documents • Software Reuse Portal Web Site • Social Network Groups • Peer-Recognition Software Reuse Award • Plans for the Coming Year * Note: Most slides used here are taken/adapted from past presentations available on http://www.esdswg.com/softwarereuse/.
Introduction to Reuse Some background information
About Reuse • Reuse involves integration into another context, and can be done with hardware, software, or other assets. • Source code, plans, design requirements, system documentation, algorithms, procedures, and other system components contain the results of previous work, knowledge, and experience. • Reuse of such components allows developers to take advantage of past experience and avoid starting over from the beginning with each new system. • Reusable assets exist in all stages of the development life cycle and can contribute to future development.
Benefits and Risks of Reuse • Reuse is often practiced in order to: • Reduce cost, time, effort, and risk. • Increase productivity, quality, performance, and interoperability. • However, there are potential risks involved with reuse, for example: • Assumptions about origin or validation/verification of assets could increase risks, especially in critical systems. • Modifications necessary to integrate the asset into its new context could be more expensive than building from scratch. • Such risks need to be recognized and assessed to be mitigated. • A planned, directed approach to reuse will help producers and adopters attain the benefits of reuse while limiting its costs and managing its risks.
Developing for Reuse • System developers must be aware of the reuse potential of components they are currently developing. • The development of current and future systems can have similar purposes and motivations. • Currently accumulated knowledge should be preserved for reuse by future generations. • Contributing to the pool of quality resources available for reuse (e.g., in catalogs and repositories) can further enhance the benefits of reuse while reducing risks. • Such contributions must be cleared for release from the developer’s organization and licensed as shareable resources so that others can reuse them.
About the NASA Earth Science Data Systems (ESDS) Software Reuse Working Group (WG)
Introduction • About the NASA Earth Science Data Systems (ESDS) Software Reuse Working Group (WG): • The WG was started in 2004 to facilitate reuse of software assets within the NASA Earth science community. • Membership is limited to NASA-funded projects and investigators, though there have been many contributions from the general Earth science community. • The WG has been working to establish a “marketplace” for reusable Earth science software artifacts by working to increase the supply and availability of reusable assets. • Also, the WG has worked to increase the community capacity and desire for reuse by demonstrating the feasibility and value of reuse. • Through regular meetings of the full WG and a smaller support team, a variety of activities are performed to encourage and enable reuse. • Goals of the Reuse WG include: • To spend less time, money, and effort on software development • To increase productivity and improve quality through reuse • To increase the number of available reusable assets
Reuse WG Charter Highlights • Purpose • Address technical issues required to enable and facilitate reuse of software assets, including open source products, within the NASA Earth science community • Goals • Demonstrate the feasibility and value of reuse • Increase the supply and availability of reusable assets • Make recognizable and easy-to-evaluate candidate reuse solutions • Minimize the cost of infrastructure activities to support the community’s reuse activities • Increase community capacity and interest in reusing existing assets • Contribute to the removal of existing barriers to reuse • Recommend incentives to encourage reuse • Scope • Facilitating reuse across projects and not interfering with local control of participating systems • Focusing on reuse process and not on technology infusion process • Focusing on reuse of existing assets rather than reusability of newly developed assets • Focusing not only on software code, but also on design artifacts (architectures, software designs, ICDs, test plans, etc.) • Focusing on reuse of proven operational and NASA Earth science specific software assets An update to the charter is planned for this year, but the primary purpose, goals, and scope of the Reuse WG and its activities remain the same.
Summary of Recommendations Policy Recommendations NASA should develop standard language for use in future procurement and grant notices that will encourage more software reuse Accepted and implemented NASA should adopt a policy of releasing its Earth science software to the community using the NASA Open Source Agreement WG will be helping NASA develop its open source strategy Enabling Systems Recommendations NASA should establish a Web-based information portal for the sharing and dissemination of information about software reuse practices for the Earth science community Accepted; WG established and actively maintains a software reuse portal web site NASA should establish a system to facilitate the cataloging and distribution of reusable assets for the Earth science community WG performed and documented studies, and prototyped a system Reuse Incentive Recommendation NASA should recognize and officially support a Peer-Recognition Software Reuse Award operated by the Reuse WG. Accepted; created an award at the WG level and run the process annually
Reuse WG Activities • Examples of work in some of these areas: • Recommending that NASA create a Reuse Enablement System; developing Reuse Readiness Levels; developing guideline documents • Creating a web site to promote and provide information about reuse; participating in social network groups • Developing a reuse peer-recognition award • Dozens of WG members have contributed to this work. Reuse Implementation Projects Efforts that result in the publication or use of a reusable component Support/Enablement Activities Efforts that provide tools and mechanisms to enable reuse Outreach and Education Activities Efforts that increase community awareness and understanding of benefits, best practices, etc. Policy Change Activities Efforts to reduce policy barriers to reuse Reuse Incentive Activities Awards and structural changes that directly or indirectly encourage reuse
Reuse Enablement System (RES) A support and enablement activity
Reuse Surveys • A survey on the reuse practices of the Earth science community was conducted in 2004 and repeated in 2005 with OMB approval and a wider audience*. • Both surveys show the same basic results: • Developers need to be able to easily locate and evaluate available reusable artifacts. • Top three motivations for reuse match the WG goals: • Saving time • Ensuring reliability • Saving money • Top three factors to increase reuse: • Earth science catalog/repository of reusable assets • Greater use of open source licensing • More education and guidance on reuse • Top two barriers to reuse: • Did not know reusable assets existed • Did not know where to look for reusable assets Areas where the WG is informing and improving. * Source: Marshall, J.J.; Olding, S.W.; Wolfe, R.E.; Delnore, V.E., "Software Reuse Within the Earth Science Community," Geoscience and Remote Sensing Symposium, 2006. IGARSS 2006. IEEE International Conference on, pp.2880–2883, July 31, 2006 – Aug. 4, 2006.
Progress Towards the RES • A series of use cases and requirements for the proposed RES were developed and documented. • The WG conducted a trade study of various NASA and non-NASA sites. • The results showed that none of the existing systems satisfied the needs of the community of Earth science software developers. • The WG then conducted an architecture study to determine what existing software package/system was most suited for reuse in building the RES. • The results showed that the XOOPS content management system met the most requirements and would take the least time to develop. • The WG began work on developing a prototype RES built using XOOPS. • Additions and modifications were made as needed to meet all of the previously developed RES requirements. • SMAP is piloting an instance of the RES. • The WG developed a set of policies for the operation and maintenance of the RES. • Additional reviews by other relevant offices (e.g., legal, tech. transfer, NASA Headquarters) are planned, as needed. • The WG developed a test plan for formal testing of the prototype • The WG plans to distribute the prototype RES to the NASA community for their use, pending appropriate approvals, in response to NASA’s indicated preference for distributed systems rather than a centralized system.
Views of the Prototype Current categories are not final; tagging option under consideration Full detail page for an asset (Provider view) Home page as viewed by an Anonymous User • Other highlights: • When logged in, a menu bar appears above the reuse banner. • Registered users can sign up for notifications. • Consumers see a note about registering for provider status if they want to submit assets to the RES.
Reuse Readiness Levels (RRLs) A support and enablement activity
Developing the RRLs • Created for use by developers and adopters to assess software and related artifacts for reuse. • Through discussions on weekly and monthly telecons, the WG made the following decisions: • To use nine levels, to align with the familiar TRL scale. • To look at nine topic areas that the WG thought were important for measuring the reuse maturity of software. • In an iterative process, volunteers from the WG: • Wrote an initial set of levels for each topic, • Drafted summaries of each RRL, looking across all topic areas at each level, • Created a set of summary RRLs with descriptions by combining information from all topics at the same level, and • Made suggested revisions to RRLs and topic area levels based on feedback received from the community. • Use cases have also been developed and are being reviewed and revised by the WG.
Topic areas included: Documentation Extensibility Intellectual Property Issues Modularity Packaging Portability Standards compliance Support Verification and Testing Example from Verification and Testing RRL 4 – Software application testedand validated in laboratory environment Following successful testing of inputs and outputs, the testing would include integrating an application to establish that the “pieces” will work together to achieve concept-enabling levels. This validation must be devised to support the concept that was formulated earlier and should also be consistent with the requirements of potential system applications. The validation is relatively “low-fidelity” compared to the eventual system: it could be composed of ad hoc discrete components in a laboratory; for example, an application tested with simulated inputs. RRL Topic Areasand an Example Level Version 1.0 of the RRL document is available at: http://www.esdswg.com/softwarereuse/Resources/rrls
Guideline Documents A support and enablement activity
Some Guideline Documents • To help the community improve its reuse practices, the WG has developed a number of guideline documents. • Bottom-up reuse guidelines (developer perspective): • Documentation • Hierarchy of Reuse • Intellectual Property • Metadata • Object-Oriented Programming • Packaging • Virtual Globes • NASA technology transfer guideline and FAQ • Software Packaging for Reuse v1.0 document http://www.esdswg.com/softwarereuse/Resources/guidelines
Guideline Documents (cont.) • The WG has also started collecting technical reports written by its members at http://www.esdswg.com/softwarereuse/Resources/tr • Currently, only Michael Leyton’s “Mathematical Theory of Reusability” is available, but we plan to add more when possible. • Given the recent work for a specific software packaging document, the WG plans to revisit the bottom-up guideline on packaging. • The WG also plans to update the packaging document with additional use cases and other improvements as suggested by feedback we receive.
Tech Transfer Guidelines • Developed by the WG in late 2007 with the help of Goddard’s Innovative Partnerships Program (IPP) Office • The 5-page guideline document provides information on: • New Technology Reports (NTRs), where/when to file what info, etc. • The basic spin-out process and your role in it • Software protection, release types, and the release process • http://www.esdswg.com/softwarereuse/Resources/guidelines/techtransfer_v2.pdf/view • The 2-page FAQ highlights some key issues and points to where in the guideline more information can be found. • http://www.esdswg.com/softwarereuse/Resources/guidelines/techtransfer-faq_v2.pdf/view • The WG needs to collaborate with the IPP Office to keep these files up-to-date.
Software Reuse Portal Web Site An education and outreach activity
Portal Web Site • Key drivers for the web portal include: • Serve the community of Earth science data systems and software developers who are interested in reuse • Serve as a gateway for reuse information relevant to the community • Establish a portal for the community to share resources on reuse • Distribute various resources on reuse to the community • Foster easier access to resources on reuse • Major content categories based on purposes identified for the web portal include: • List of catalogs of reusable assets, tools, etc. • Reference library including events, news, Working Group documents, guidelines, and other resources • Information on open source software projects and licensing • Funding opportunities within and outside NASA • “Suggest content” feature for user-submitted ideas
Details on the Portal • Content organized into 4 major areas • Resources section includes: • Awards • Books and articles • Events • Guidelines (e.g., on tech. transfer) • Library (including WG publications, presentations, and case studies) • Basic web stats, 12/2005 to ~4/2011: • Over 64000 visits by almost 50000 unique visitors • Over 156000 page views • Average ~1000 visitors a month • Site has been in top 3 hits for “software reuse” on major search engines, and still achieves high placement in search results (more terms = better results) http://www.esdswg.com/softwarereuse
Portal Folder Hierarchy Resources Reusable Assets Funding Opportunities Open Source Awards NASA NASA Books and Articles Content within folders is not shown here. Events Non-NASA Non-NASA Featured Projects Event Highlights Groups The home page provides links that lead directly to some sections. Past Events Guidelines Initiatives Publications Library Survey 2005 Presentations RES Case Studies RRLs Colors indicate folder level in the hierarchy. Tech Reports Working Group Documents TRLs 4th – 9th ESDS WG Meetings (six separate folders) Tools
Portal Content Examples • Resources • Books and articles: suggested by WG members or portal visitors • Events: listing of meetings and conferences on reuse and Earth science, suggested by WG members or portal visitors • Library of WG Material: includes presentations, publications, case studies, and other items created by WG members • Guidelines: a number of short articles written by WG members on topics in bottom-up reuse and technology transfer • Reusable Assets • Links to software asset collections of interest to the Earth science community (e.g., GCMD, ECHO, HDF tools) • Links to NASA open source software and information
Social Network Groups An education and outreach activity
Introduction • NASA has a presence on many social sites. • See http://www.nasa.gov/connect/ for a list. • The WG saw social networks as opportunities to engage with the community in a less formal setting and created accounts/groups on: • Twitter (http://twitter.com/esdswg_reuse) • Facebook (http://on.fb.me/eNUPcc) • LinkedIn (http://lnkd.in/aQP8Kn) • In general, we post the same items to all three sites. • People may not have/want accounts on all locations. • They can choose which site(s) they use to interact with us. • They (hopefully) don’t need to create a new account to receive our posts.
Twitter • Short, 140-character “tweets” are used for communication. • We post links to WG announcements, other articles of interest, highlights from events, etc. http://www.twitter.com/esdswg_reuse
Facebook • An open group on a general social networking site. • A bit easier for two-way communication in a group than Twitter. http://on.fb.me/eNUPc
LinkedIn • An open group on a professional-oriented social network. • Similar to Facebook, but the work-related aspect of this site may be preferred by some users. http://lnkd.in/aQP8Kn
Peer-Recognition Software Reuse Award An incentive activity
Basic Information • The WG developed a Peer-Recognition Software Reuse Award to recognize those people whose efforts and projects contribute to the practice of software reuse in the Earth science community. • There are three categories of the Reuse Award: • Contribution, for the creation and offering of reusable software assets • Utilization, for the reuse of existing software assets in new projects and the demonstration of reuse for the benefit of the community • Peer Education, for providing guidance to others on preparing or adopting software for reuse • Awards are decided annually in early September • The number of awards given is based on the quality of the nominations received. • See http://www.esdswg.com/softwarereuse/Resources/awards/ for additional details about the award and past recipients.
Past Recipients • In 2008, five awards were given: • Two contribution, one utilization, two peer education • WG members were among the recipients • In 2009, three awards were given: • One contribution, one utilization, one peer education • All recipients included Goddard civil servants and contractors: • SeaDAS Development Team (contribution) • NPP Science Data Segment Team (utilization) • Robert E. Wolfe (peer education) • In 2010, four awards were given: • One contribution, two utilization, one peer education • First award to a project in a related field (space physics) Sample award logo images
2011 Award Process • The call for nominations is open until July 31. • Please consider submitting a nomination. • Self-nominations are allowed, with a letter of endorsement. • In August, volunteers from the WG will review submitted nominations and recommend award recipients. • The recommendations are provided to the WG Chair, who makes the final selection of award recipients. • Results are announced in early September. • Recipients are invited to receive their award in person at the annual ESDS WG Meeting in October.
Plan for 2011 – Major Tasks • Decadal survey missions • Case study document • Targeting tier 1 and 2 missions • Work with the Data System Planning Group (DSPG) • Best practices and guidelines • Continue RRL work revisions to RRLs (e.g., quantification) • Deliver packaging recommendation and revisit guidelines • Open Source • Reuse Enablement System (RES) • Disseminating the RES as an installable package for missions, DAACs, and proposal-funded tasks • General • Collaborative efforts (wiki, incubator) between centers and WGs • Work to get reuse product(s) into projects (e.g., RRLs into NTRs, liaisons between WG and missions) • Surveys
Web Sites and Contacts • Software Reuse Portal Web Site • http://www.esdswg.com/softwarereuse • Mailing List • https://lists.nasa.gov/mailman/listinfo/esdswg-reuse-general • Monthly Telecons • Third Wednesday of the month @ 2 pm Eastern time • Support Contact • Jim Marshall (James.J.Marshall@nasa.gov) • Social Networks • http://twitter.com/esdswg_reuse • http://on.fb.me/eNUPcc • http://lnkd.in/aQP8Kn