1. ‹#› Het begint met een idee
SOSA: A SOFTWARE
SUSTAINABILITY ASSESSMENT
METHOD
( )
ILLUSTRATION: VU STRATEGIC PLAN, VISION 2015-2020
@patricia_lago
2. ‹#› Het begint met een idee
WHAT IS SOFTWARE WITH A SUSTAINABILITY INTENT?
WHAT CHALLENGES DOES IT BRING?
3. Technical Economic
SocialEnvironmental
Source: P. Lago et al. “Framing Sustainability as a Software Quality Property”, ACM
Communications, 2015.
Software with a sustainability intent: intended
sustainability behavior”
6. Smart software:
from Energy-aware to Socially-aware
Resource scarce
environment
Mission impossible II (2000), the motion picture
Smart home
7. Energy-efficient software:
By implementation
[Procaccianti, Fernandez, Lago, Empirical evaluation of two best practices for energy-efficient software
development, Journal of Systems and Software, 117:185-198, 2016]
[S2 Green Software Wiki, wiki.cs.vu.nl/green_software]
11. Smart software:
Cyber-foraging software tactics make the cloud smarter
G. Lewis & P. Lago, “Characterization of Cyber-Foraging Usage Contexts”, In Software Architecture, Springer LNCS (2015)
SurrogateMobile Client
Legend
System
Boundary
Cyber-
Foraging
Enabled
Mobile App
Custom
Runtime
Component
Data
Staging
Client
Call
Data Staging
Manager
Execute Data Operation
Execute Data
Operation(Pre-Fetch Hints)
Enterprise
Cloud
File Read/
Write
(Synchronous)
Cache
Repository
Cloud Data
Repository
Data Operation
Data Operation
File Read/Write
(Asynchronous)
File
Pre-Fetch
Hints
Pre-Fetch
Algorithm
Calculate Pre-Fetch Data Set(Pre-Fetch Hints)
Pre-Fetch Data Set
Sync
Cache
Depending
on
location,
user
profile,
schedule
Retrieves data from
the cloud according
to algorithm and
stores it locally
Only when not
already
available on the
surrogate
THE SOFTWARE LAB
12. KNOWLEDGE BANK
NEW ARCHITECTURE METHODSNEW EMPIRICAL METHODS
SOFTWARE REFACTORING
-50% energy consumption
-20% power consumption
GREEN SOFTWARE LABEL
Summary of the challenges
13. Thank you
13@patricia_lago
Credits: slides, ideas and results are a collective
effort with my bright and energetic colleagues in the
S2 Group @Vrije Universiteit Amsterdam
www.s2group.cs.vu.nl
What does it mean to develop software with …
And what are the challenges that come with that
Even more complex to …
First, software sustainability entails the complex interplay of four types of demands:
Environmental= preserve natural resources
Social= support communities and social capital
Economic= to balance financial investments and revenues
Technical= ensure (software) longevity and reliable functioning.
While they are intuitively natural, ensuring that software supports them as planned is not trivial.
Example: personalized E-Health applications are supposed to solve problems like forgetting your medicine or influencing a more active lifestyle. Are they successful in their intent? Are users becoming “healthier”?
Second, sustainability needs to take an holistic perspective on a “big enough” system of interest.
Over time
Also called longevity, long lasting
If we combine the two dimensions,
Concerns
Design decisions
Trade-offs
Quality assessment
From E to S (smart for quality of life)
Medical case in Australia
Agricultural knowledge in Africa
To make software use resources effectively, we need to understand the impact of different coding practices.
When we have to deal with complex software, or new projects, we must reason at the design or architecture level. Maybe the software is not implemented yet, or maybe we must identify which design decision are more or less beneficial for energy consumption.
We capture best practices in reusable patterns and so-called architectural tactics. They document generic designs, specific implementations, metrics and measures.
All true, all come from research projects in collaboration with industry or OSS communities
All yield TTVs that could be relaxed:
Generalizability, but within application domains (DB queries: not all possible query types; but we have recurring patterns in types of queries we issue in types of systems)
Size of samples, but in reasonable time (refactoring all types of code smells in how many applications)
From Economic to Technical
Imagine you on holiday, and you want to have a virtual meeting with your team, access to all work docs, etc. (not sure why you wanna do that, on holiday, but anyway)
Connectivity is not the best, you do not want to pay for a local meeting facility, if existing, and you need access to your own “virtual desk”
… and everyhting from your mobile client!
In principle, Cyber-foraging tactics allow you to do that! (explain how it works)
Dynamic adaptation to changing contexts
Or to changing intents