Software Sustainable Development
description
Transcript of Software Sustainable Development
![Page 1: Software Sustainable Development](https://reader036.fdocuments.in/reader036/viewer/2022083018/577c83d91a28abe054b6824a/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022083018/577c83d91a28abe054b6824a/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022083018/577c83d91a28abe054b6824a/html5/thumbnails/3.jpg)
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.