Green Software Process Assessment: The Theoretical Framework

: Many differentdomains such as engineering, education and health apply green development through sustainability concept.The aim is to ensure the product and services are still relevance and applicable for the next generation. Previously, they were three common pillars of sustainability elements which were economic, social, and environmental. The technical and individual elements were added later to evaluate the software system. Yet, effortsare made to achieve green development process by reducing wastes and to preserve the environment.Most studies targeted on greenness of software products and less consideration on green in software processes. In this study, focus is given to ensure and guarantee green in software process activities. This paper presents the background works on existing studies in green software process and related. Further, it presents the theoretical framework that is based on literature findings and will be the groundwork of this study. The theoretical frameworkdefined consists of software process, green context, and assessment method. The elements of sustainability and waste reduction will be identified further.


Introduction
Sustainable Development Goal (SDG) is a global development program that aims to provide well-being to the world community and preserve the environment (Wu et al, 2018). Nowadays, software engineering is one of domain that leading to sustainable development mainly in software process. Sustainability means the capacity to endure and for humans is the potential for long-term maintenance (PenzenstadlerandFleischmann, 2011). In software, sustainability isthe capacity for a longer life of usage and provides greener characteristic inclusive. According toDick and Naumann (2010), Kern et al. (2013), green software engineering goals are to minimize the negative effect on the environment and produce sustainable software products. Previous studies emphasised on green hardware in the aspect of energy efficiency, power consumption, waste reduction and disposalwhich were supported byArdito et al. (2015), Islam et al., (2018), Kocak (2013), Shenoy and Eeratta (2011). However, literature study discovers that lack of studies on green software even though software also has the impact indirectly to the greenness and sustainability environment (Ibrahim et al,2020).
Researcher suggested that software is no longer viewed in terms of productivity but needs to focus on scalability, usability and quality with recent advances in new technology (Casale et al,2016).Basically, software development projects have many obstacles and barriers to complete and deliver the project. According toTaherdoost and Keshavarzsaleh (2016), several factors come from organization environment, team and user perspective that lack to well-prepared accordingly in term of requirement, budget and time.
This paper is organised as follows: Section II presents materials and methods which consist of the background of software process, green software process model and sustainability context. Section III presents the theoretical framework of green software process assessment, and Section IV concludes the paper with conclusion and future works.

Materials and Methods
Literature highlights that current works in software development do not focus on integrating sustainability measurement and software waste management to achieve green software process (Ibrahim et al, 2020).Previous studies have shown that reducing waste in processes will increase the efficiency and productivity of certain jobs (Taina, 2011). We will discuss the material supporting this study in several contexts: software process, green software process model, sustainability context, and software waste.

Software Process
Software Development Life cycle (SDLC) is a framework that reflect to activity at each phase of software development (Rastogi, 2015), (Hussain, 2016) and (Kramer, 2018). There are several other software development models available in literature such as waterfall, prototyping, incremental, spiral, Agile, XP, Rational Unified Process (RUP) and Rapid Application Development (RAD). The five basic and fundamental activities of software process are requirement analysis, design, implementation, testing, deployment and maintenance (Rastogi, 2015), (Hussain, 2017) and (Stoica et al, 2013).
Typically, in software development, the problemsarousedin initial phase that involved the requirement scope and user understanding. Many developers have problems dealing to incomplete and change frequently of specifications and requirements that may lead to misunderstanding the user needs (Geogy and Dharani, 2016).The complex design occurs during software development may cause the conflicts between users and developers. The design should be simple and easy to be understood by the stakeholders and developers. In the implementationphase, the problem in term of the capability of programmers that do not have expertise and knowledge about programming used is the main challenge. In the testing phase, the selection of tests can reduce the error by using the automation testing. In addition, the re-use of test cases is encouraged to increase the efficiency of testing. In the maintenance phase, complaints for software issue often goes to the forms used which it should be done electronically (Shenoy and Eeratta, 2011), (Mahmoud and Ahmad, 2013). Based to thementioned issues and problemscould lead to the high consumption of energy, power and resources. It causes incompatibility and negatively effectto the environment.

Green Software Process Model
The GREENSOFT model is a conceptual reference model for green and sustainable software. It supportssustainability matters for software developers, administrators, and users. This model specifically covers the life cycle of a software product. The life cycle which was proposed by Naumann et al.  (2013) did not focused on society, economic, technical and individual elements and waste reduction in development phases whichwe believed will contributing to production of sustainable software.

Sustainability Context
According to Lago (2015),sustainability is often associated with economic, social and environmental dimensions. However,  argue that these three dimensionswere insufficient and further addedtwo more dimensions which associated with individual and technical. This is specifically for software systems sustainability measurements. In economic dimension, Venters et al.(2014),Amri and Bellamine(2014) stated that greensoftware was applied to ensure the investment could be invested safely for a long time and free from economic risk. The factors of economic sustainability are cost reduction, productivity and usability. For the social dimension, software isdeveloped to increase the value of capital such as maintaining social relations in society. The social dimension includes employee support and tool support (Al Hinai and Chitchyan, 2014). The environment dimension in software context is associated withenvironmentally friendly to create, use, maintain and dispose of with minimal impact, while technicalaspect is referred to the design of the software to beeasy to modify, easy to customize and useful for the future (García-Berna et al,2018), (Lago et al,2015). Whereas, the individual sustainability in software is to ensure that the people or team enjoy and satisfy their works with appropriate task, skill and experience (Calero and Piattini, 2015).

Software Waste
In general, waste is considered as irrelevant product or services to production line (Seadon, 2010). Waste formation is not just a form of public solid waste in the manufacturing industry(Abualfaraa et al, 2020)and construction (Dajadian and Koch, 2014)but it also occurs in software development(Al-Baik and Miller, 2014). In software process, waste can be classified such as excessiverequirement and specification, out of scope design during design phase, and repeating testing process during testing phase (Shmueli and Ronen, 2017).Previous studies have identified software wastes during development process stated by Sedano et al.(2017), Shmueli and Ronen (2017), Santhiapillai and Ratnayake (2018), Mujtaba et al (2010). Some identified software waste are building wrong product, rework activity, waiting period, ineffective communication and software defect (Sedano et al, 2017), (Santhiapillai and Ratnayake, 2018). Previous study revealed that software waste needs to be eliminated accordingly by prevention, incremental improvement and removing waste by improving the productivity of software itself (Sedano et al, 2019).

The Theoretical Framework
The theoretical framework is an overview of the definitions, theories and concepts involved in this study. The design of the theoretical framework is based on software process activities and sustainability elements. Figure 1 shows the theoretical framework of green software process assessment which consists of three main components: software process, green context, and assessment method. The first component defined in this framework is software process that involves five main phases: requirements analysis, design, implementation, testing, and maintenance. These fundamental activities are applicable in any methodology of software development. For example, waterfall model, prototyping approach, agile development approach, Rapid Application Development (RAD), and spiral model (Sommerville, 2016).For instance, in agile method, pair programming principle is considered as fulfilling green practices because it accelerates the programming phase and offers knowledge sharing among team members(Da Silva Estácio and Prikladnicki, 2014).

B. Green Context
The second component is the green context component that consists of sustainability and waste elements. These elements are essential in order to produce green factors for software process (Kern et al, 2013). The sustainability element is the green factors that consists of resources, people, organizational, technical and environmental (Calero et al, 2014), )(Al-Ta'ani and Razali, 2016). In order to produce green factors, the waste elementswill be identified at each phases of software process and therefore requires to be eliminated (Murugesan, 2012). Thus, the green factors are one of the influential elements in green software process assessment model.

C. Assessment Method
The third component is assessment method. It defines weightage and significance of factors through a defined algorithm. Weighted Sum Method (WSM) and Analytical Hierarchy Process (AHP) are the two potential method and technique for assessment. It is useful to software practitioners as a guidance for assessment of green software process in their environments. The measurement instrument is needed to be designed and constructed. This requires analysing method using appropriate formulas and algorithm to determine the level of greenness in specific software process.

Conclusion
This paper has presented the theoretical framework for green software process assessment. It consists of three components which are software process, green context, and assessment method. This frameworkfocuseson sustainability elements and waste reduction to improve green software process using specific assessment method. The theoretical framework was constructed based on literature study that applicable for green software assessment model development. Previous researchers believe that greener software process is valuable to guarantee the long life of software with green practices. The green assessment mechanism is one alternative to ensure the green processes are being practiced by the developers or practitioners in their organisations. For future work, the green factors of software process will be investigatedfurther through experts' interview.