Software Sustainable Development

5
Sustainability in Software Development Laxmi B Pandya University of Mumbai, Tolani College of Commerce, Shere-E-Punjab, Andheri(East), Mumbai : 4000093, India Email ID : [email protected] Abstract: Sustainability has been a global aspect today that has been applied in by all industries. Software Industry is no exception to this although this industry has just made its beginning in considering the sustainability aspects. Sustainability should be considered as one of the non-functional requirement to be met in software. The Requirement engineers would have a major role in determining various sustainability indicators for a system domain and to validate the system for sustainability compliance. This research paper is aimed at providing sustainability reference model to the requirement engineers involved in capturing preliminary data to build varied software. It would help them gain greater insight into the sustainability aspects and enable them in making the software sustainable compliant. There exist a future scope of adding sustainability indicators by studying different software domains and a step ahead a generic sustainability reference model could be created to validate sustainability compliance for all system domains. Keywords:- Sustainability, Requirement engineers , Sustainability indicators, System domain, Sustainably compliant, Non-Functional requirement 1. Introduction Sustainability refers to the capacity to endure. It includes social, economic and environmental aspects. Today, it is by no means certain that our society has the capacity to endure at least in such a way that the nine billion people expected on Earth by 2050 will all be able to achieve a basic quality of life. The planet's ecosystems are deteriorating and the climate is changing. We are consuming so much, and so quickly, that we are already living far beyond the earth's capacity to support us. And yet nearly a sixth of our fellow humans go to bed hungry each day: both an unnecessary tragedy and a source of social and political unrest. Meanwhile, our globalized world is more interconnected and volatile than ever, making us all more vulnerable. While sustainability is about the future of our society, for today's industries and businesses, it is also about commercial success improving the economic, social and environment aspect. Sustainability has been a global concept now and has been considered in all fields. In Information Technology area Green IT was a revolutionary concept to support environmental sustainability. However its discussion was limited to hardware. Sustainability has its significance in software too directly and indirectly. Sustainable Software is defined as software “whose direct and indirect negative impacts on economy,

description

Software Sustainable development

Transcript of Software Sustainable Development

Page 1: Software Sustainable Development

Sustainability in Software Development

Laxmi B Pandya

University of Mumbai, Tolani College of Commerce,Shere-E-Punjab, Andheri(East), Mumbai : 4000093, India

Email ID : [email protected]

Abstract: Sustainability has been a global aspect today that has been applied in by all industries. Software Industry is no exception to

this although this industry has just made its beginning in considering the sustainability aspects. Sustainability should be considered as one of the non-functional requirement to be met in software. The Requirement engineers would have a major role in determining various sustainability indicators for a system domain and to validate the system for sustainability compliance.

This research paper is aimed at providing sustainability reference model to the requirement engineers involved in capturing preliminary data to build varied software. It would help them gain greater insight into the sustainability aspects and enable them in making the software sustainable compliant. There exist a future scope of adding sustainability indicators by studying different software domains and a step ahead a generic sustainability reference model could be created to validate sustainability compliance for all system domains.

Keywords:-Sustainability, Requirement engineers , Sustainability indicators, System domain, Sustainably compliant, Non-Functional requirement

1. Introduction

Sustainability refers to the capacity to endure. It includes

social, economic and environmental aspects. Today, it is by no means

certain that our society has the capacity to endure at least in such a way

that the nine billion people expected on Earth by 2050 will all be able to

achieve a basic quality of life. The planet's ecosystems are deteriorating

and the climate is changing. We are consuming so much, and so quickly,

that we are already living far beyond the earth's capacity to support us.

And yet nearly a sixth of our fellow humans go to bed hungry each day:

both an unnecessary tragedy and a source of social and political unrest.

Meanwhile, our globalized world is more interconnected and volatile

than ever, making us all more vulnerable.

While sustainability is about the future of our society, for

today's industries and businesses, it is also about commercial success

improving the economic, social and environment aspect. Sustainability

has been a global concept now and has been considered in all fields. In

Information Technology area Green IT was a revolutionary concept to

support environmental sustainability. However its discussion was limited

to hardware. Sustainability has its significance in software too directly

and indirectly. Sustainable Software is defined as software “whose

direct and indirect negative impacts on economy, society, human

beings, and environment that result from development, deployment, and

usage of the software are minimal and/or which has a positive effect on

sustainable development.” Every developed software product will have

an economic, social and environmental impact directly or indirectly on

sustainability. So it becomes necessary to consider the sustainability

aspect/ attribute/property during the requirement engineering stage. Just

like the other non-functional requirements security, availability,

reliability, performance sustainability should also be considered during

the requirement engineering phase.

Sustainability aspects can be brought to bear both during the

development and use of software systems. Software should have a

positive impact on sustainable development.

Contrary to the common assumption that software is "environmentally

friendly" simply because it is virtual, the processes and methods used to

develop, maintain and deploy software do have an environmental, social

and economic impact that is normally not accounted for by software

development practices. For example, e-waste could be greatly minimized

if software vendors would take into consideration the lifetime of old

hardware.

Page 2: Software Sustainable Development

2. BELOW ARE SOME OF THE INDICATORS FOR SOCIAL, ECONOMIC AND ENVIRONMENTAL SUSTAINABILITY TO BE

CONSIDERED DURING SOFTWARE DEVELOPMENT.

Social Sustainability Economic Sustainability

Environmental Sustainability

It includes Labor rights, Decent Work, Human Rights, Health and Safety, Governance and Community. 

Software has led to reduction in manpower for performing routine mundane task thereby providing opportunity to the manpower resource to focus on intellectual task and being more productive.

Developers working from Home get the benefit of working at their pace and comfort. They can spend more time with their family. At the same time this concept deprives them of social interaction and work support they would otherwise have if they were working at office in a team.

Software applications are performing various mundane, tedious and laborious jobs thereby reducing job opportunities for the people doing similar jobs thus affecting them socially and economically.

Cyber Crimes on account of social applications affecting the children safety

Social applications like Twitter, Facebook, Orkut enables democratic process at the same time it can become an easy place for open criticism to anyone.

Software Product should be very user friendly making it

Developer side: COTS or Reusability of software would bring in economic sustainability compared to developing software from the scratch.

To use energy efficient algorithms which are smaller in size and less time consuming

Client side:-The software product developed for an organization brings in economic sustainability in a way that the manual tedious tasks were more people were involved can be now done with few resources and the remaining resources can be utilized elsewhere in doing some intellectual task.

Indirect Impact of Software on Economic Sustainability :Today we have software application for alarm clock, calculator, basic clock, weather forecasting and so we need not buy special devices thereby having an impact on economy. Common man money is saved however there is a decline in the business of such device producers.

Modular programming leads to software reusability and thus helps achieve economic sustainability.

If data is compressed and stored on the storage medium more amount of data can be stored on the same medium thereby saving on the cost to implement new storage solutions

We have discovered that improvement of performance with data

The functionality of the product so develop should support carbon footprint directly or indirectlyDirect: The software size should be as low as possible to make it energy efficient. An energy efficient product would consume fewer resources and emit less heat thereby emitting less Co2.To encourage emission of low radiation.To provide software solutions that is environmental friendly and may have multiple utility values. For e.g. for attendance authentication a camera can be used instead of biometric device as a camera has multiple utility compare to a biometric machine.Indirectly: The functionality of the product should deliver such service to the user that would optimize the environmental consideration For. E.g. When a software product is being developed for an organization during the requirement phase the employees can be grouped on the basis of area code and an arrangement could be made for carpooling(transit).

Also for a software product in catering management can consider the exact number of guest and food preferences and accordingly generate an exact resource requirement report thereby avoiding any food wastage or shortage

possible for all levels of user group to access it smoothly.

Important software systems should be designed in a waythat they are still available even in an unreliable infrastructure

Social Sustainability

especially during natural disasters

Some organizations prefer customer involvement and

accept their suggestions. In requirements engineeringwe must take up this trend and find ways to build adequateSystematic feedback methods. This will help to gatherRequirements of a heterogeneous group of users and to meet the needs of people that will otherwise be out of scope.

Surveillance and monitoring software for crime protection defeats people privacy thereby impacting the social aspect. Some countries permit this and the others may not allow the same so it all depends on socio-cultural aspect which has to be considered during the requirement engineering stage.

compression brings reduction of energy consumption per unit of work, reduces the cost of database

Economic Sustainability

Maintenance and makes the database environmental friendly.

Software that is portable brings sustainability as it can be used in wide platform making it economically cost efficient.

Developing maintainable software using code review/inspection or pair programming

Preserve heritage programs

Emulation (data-centric)An emulator is a software package that mimics your old hardware (and, possibly, your operating environment) so that it can be run on any computer.Migration (functionality-centric)

If you need to reliably reproduce the operation of your software, the best choice may be migration. With this approach, you re-code your software so that it will work on new hardware or operate with new and reliable software.

The system should communicate in the user understandable language.

The software should comply with all the legal laws and regulations laid down by the regulation authority

Software should be modular and support changes in order to be long lasting. A rigid software is not sustainable.

Create sustainability programs to enforce additional usage of program and also to

Cultivation (process-centric)

This is where you allow developers or contributors from outside to access to your code – under a licence – so that they can work with you. The deal is that outside developers get access to your code so that they can adapt your software to meet their exact needs, but any bugs they fix or new functionality they add is given back to your project., which helps share the sustainability workload.

Page 3: Software Sustainable Development

increase the ROI

3. Steps involved in determing the Sustainability aspect of software

1. Identify Positive and Negative Sustainability indicators(all social, economic and environmental) for a software domain.

2. These indicators so identified should be given weightage number based on risk value.

3. Total Number of each Positive and Negative indicators should be listed 4. The above total should be multiplied by its weight to determine the Total

Positive Sustainability Impact(TPSI) and Total Negative Sustainability Impact(TNSI).

4. Figure 1 below depicts the steps explained above to determine the sustainability impact of software.

Figure 1

5. Abbreviation for Figure 1

1. SSPI- Social Sustainability Positive Indicators2. SSNI-Social Sustainability Negative Indicators3. ESPI- Economic Sustainability Positive Indicators4. ESNI- Economic Sustainability Negative Indicators5. EnSPI- Environmental Sustainability Positive indicators6. EnSNI- Environmental Sustainability Negative indicators7. W= weight8. TPSI- Total Positive Sustainability Impact9. TNSI- Total Negative Sustainability Impact

7. References

[1] Infusing Green: Requirements Engineering for Green In and Through Software SystemsBirgit Penzenstadler ,University of California, Irvine, Irvine, CA, USA, [email protected]

[2] Stefan Naumann, Markus Dick, Eva Kern, and Timo Johann. The greensoft model: A reference model for green and sustainable software and its engineering. Sustainable Computing: Informatics and Systems 1(4):294 – 304, 2011

[3] Qing Gu, Patricia Lago, and Simone Potenza. Aligning economic impact with environmental benefits: A green strategy model

[4] http://www.nist.gov/el/economics/BEESSoftware.cfm- This is an article on BEES(Building for Environmental and Economic Sustainability) software with the powerful technique for selecting cost-effective, environmentally-preferable building products. It has been developed by the NIST (National Institute of Standards and Technology) Engineering Laboratory the tool is based on consensus standards and designed to be practical, flexible, and transparent.

[5] Social Sustainability Indicators for Software: Initial Review – Maryam Al Hinai Department of Computer Science , University of Leicester, Leicester, UK - [email protected] Chitchyan, Department of Computer Science, University of Leicester ,Leicester, UK [email protected]

[6] Discovering Sustainability Requirements: An Experience Report Martin Mahaux, Patrick Heymans, and Germain Saval PReCISE Research Centre University of Namur, Belgium {martin.mahaux, patrick.heymans, germain.saval}@fundp.ac.be .

[7] Sustainable Development, Big Data and Supervisory Control :Service Quality in Banking Sector-David Luigi Fuschi¹, Manuela Tvaronavičienė Brunel University, Uxbridge UB8 3PH, London, United Kingdom²Vilnius Gediminas Technical University, Saulėtekio Av. 11, LT-10223 Vilnius, Lithuania E-mails: [email protected]; Manuela.Tvaronavičienė@vgtu.lt Received 15 October 2013; 20 December 2013 accepted Journal of Security and Sustainability Issueswww.lka.lt/index.php/lt/217049/ISSN 2029-7017 /ISSN 2029-7025 online 2014 Volume 3(3): 5–14 http://dx.doi.org/10.9770/jssi.2014.3.3(1)

[8] Sustainability – a new dimension in information systems evaluation-Wojciech Piotrowicz and Richard Cuthbertson Saı¨d Business School, University of Oxford, Oxford, UK

[9]http://software.ac.uk/resources/guides/developing-maintainable-software

6. Conclusion and Future WorkSustainability is one of the important non-functional requirements of software which have been ignored for long. However, it needs special attention today. The research paper has attempted to identify some sustainability indicators and also proposed a model to calculate the sustainability. But these indicators are not complete, every software domain needs to be studied to identify specific sustainability indicators for software and finally a generic reference model for sustainability can be created. Also there exists a scope of enhancing the metrics for sustainability measure.