Modeling Software Sustainability W. Christopher Lenhardt RENCI – UNC, Chapel Hill, NC Papers • Towards a Software Product Sustainability Model – Coral Calero, M. Angeles Moraga, Manuel F. Bertoa. • The Blind Men and the Elephant: Towards a Software Sustainability Architectural Evaluation Framework – Colin C. Venters, Lydia Lau, Michael K. Griffiths, Violeta Holmes, Rupert R. Ward, Jie Xu. • Sustainable Cyberinfrastructure Software Through Open Governance – Marlon Pierce, Suresh Marru, Chris Mattmann. • A Framework for Discussing e-Research Infrastructure Sustainability – Daniel S. Katz, David Proctor. • Data Management Lifecycle and Software Lifecycle Management in the Context of Conducting Science – Christopher Lenhardt, Stanley Ahalt, Brian Blanton, Laura Christopherson, Ray Idaszak. • Niche Modeling: Ecological Metaphors for Sustainable Software in Science – Nicholas Weber, Andrea Thomer, Michael Twidale. Towards a Software Product Sustainability Model Coral Calero, M. Angeles Moraga, Manuel F. Bertoa. • • • • Draws parallels between ideas of software sustainability and environmental sustainability Sustainability is part of software quality Notion of designing into the software requirements for environmental sustainability ISO/IEC 25010 - Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models – Product quality model – Data quality model – Quality in use model • Suggest adding the following sustainability characteristics to the quality model of ISO 25010 – Energy consumption – Reserouce optimization – Perdurability The Blind Men and the Elephant: Towards a Software Sustainability Architectural Evaluation Framework Colin C. Venters, Lydia Lau, Michael K. Griffiths, Violeta Holmes, Rupert R. Ward, Jie Xu. • What does software sustainability mean – It “is a rather ambiguous concept….” • • • • Lack of an accepted definition gets in the way of integrating the concept into software engineering Sustainability as a non-functional requirement Quality of software architectures determines sustainability Propose sustainability is a measure of central quality attributes – – – – – – • Extensibility Interoperability Maintainability Portability Reusability Scalability Develop an architecture evaluation framework based on scenarios which help to illuminate how to measure quality/sustainability at the architectural level Sustainable Cyberinfrastructure Software Through Open Governance Marlon Pierce, Suresh Marru, Chris Mattmann. • • • • Draws a link between sustainable software and a community which supports it Software fulfills a community need Authors’ contention that ‘much of…open source principles have been inadequately applied or misapplied by the research community.” Also focus on “cyberinfrastructure software” – – • • • • “Network accessible services that supports large scale distributed computing and scientific data management” Ideal CI software includes mutually supporting contributions from three areas scientific collaboration, escience research, operations and support Under this approach sustainability comes from community support and governance Authors argue for open governance a la Apache Software Foundation as opposed to the benevolent dictator approach Apache provides a community of communities and much cross-pollination Also see to extend community-led open governance model to concept of ‘open operations’ A Framework for Discussing e-Research Infrastructure Sustainability Daniel S. Katz, David Proctor. • • Focus on e-research infrastructure (aka cyberinfrastructure) Identify three dimensions that define the e-research infrastructure space – – – • • Creating not necessarily the challenge, path to sustainability not clear Clarifying the notion of sustainability – – – – – • Open source Closed partnership For profit Foundation/Government Models to Sustain – – • Provide same functionality going forward even if environment changes Is functionality and usability clear Will functionality be correct going into the future even if environment changes Is the functionality desired by current and future users Can it incorporate new things as they develop Models for creation of infrastructure – – – – • Temporal duration Spatial extent (i.e. department, school, etc.) Purpose of the infrastructure All of the above, plus Open source with paid support Suggest an analysis of what models work best along which of the axes Data Management Lifecycle and Software Lifecycle Management in the Context of Conducting Science Christopher Lenhardt, Stanley Ahalt, Brian Blanton, Laura Christopherson, Ray Idaszak. • Authors suggest there are distinct parallels between science data management life cycle and software life cycle • Goals of data management are similar to software sustainability, e.g. discovery, use, re-use • Data management life cycle connected to data quality • In the context of science software and data are intimately connected Niche Modeling: Ecological Metaphors for Sustainable Software in Science Nicholas Weber, Andrea Thomer, Michael Twidale. • Ask whether or not using the concept of ecology and ecosystems can be a useful metaphor as applied to sustainable software • Using this approach allows us – to look at multiple pieces of software rather than on a single application – Consider the interaction as and interdependencies of components – Potentially better insight into the dynamics of introduction and extinction – Look at how software evolves and co-evolves – “Understanding collaborative bricolage and tinkering” • Argue to focus on the software niche – Niche equates to the set of technical requirements, organizational conditions and culture that support maintenance and use Comparison Across Papers Short Title Authors Software Sustainability Approach to Understand or Evaluate Sustainability Sustainability and Quality (ISO & env sustain.) Calero, et al General notion of software. Not explicitly defined. Sustainability is linked to quality. Add to ISO Blind Men and Elephant Venters, et al Software as science software; increasingly complex; serviceoriented computing Extensibility, interoperability, maintainability, portability, reusability, scalability, efficiency Use various architecture evaluation approaches to assess sustainability Governance ≈ Sustainability Pierce, et al Cyberinfrastructure software Sustainable to the extent to which there is a community to support it Open community governance E-Research Sustainability Framework Katz and Proctor E-research infrastructures (i.e. cyberinfrastructure) Persisting over time, meeting original needs and projected needs Equates models for the creation of software with sustaining software Data Management Life Cycle Lenhardt, et al Broadly defined as software supporting science Re-use; reproducible science Comparing data management life cycle to software development life cycle Niche Modeling / Ecological Metaphors Weber, et al Software broadly defined; a software ecosystem Software niches Ecological analysis and ecosystem Some Common Themes • Definitional Issues – What do we mean by software? • Talk about a range of software • Trying to unpack what sustainability means – Ties to what is the end goal (e.g. reproducible science, persistence, quality, etc.) • Quality a key component related to sustainability • Look at sustainability at key junctures, i.e. architecture, engineering, design • Question of measuring success - sustainability / metrics