GreenSoftware Engineering Sheryl John Introducing green elements and guidelines in Software Engineering
Why Green Software Engineering?? Green IT is a holistic approach that applies to green concepts to IT and hardware. Some of the areas that Green IT focuses are: a. power management b. server virtualization c. Data center design layout Green software engineering is an approach that applies the “green” principles known from hardware products on to software product, product life cycles and processes. We need to models or steps to implement these steps in software engineering or product development to produce green and sustainable software.
Definitions Green software engineering is an approach to developing, operating and maintaining sustainable software that recognizes and counteracts the threats to the environments. Sustainable software is software whose direct and indirect negative results impacts on economy, society, human beings and environment that result frommdevelopment, deployment, and usage of the software and/ or has positive effects on sustainable development.
Ongoing research Green Software Engineering(GREENSOFT) is an ongoing project undertaken by Institute of Software Systems of the University of Applied Science Trier (Germany). They have developed a conceptual reference model for the sustainable development and usage of software:
Application of the reference model to ICSM (CSCI-577ab projects) The development model for Sustainable Software Engineering spans from Product Definition to Disposal. In ICSM, we can integrate “green” principles in various activities that take place in each phase.
ICSM phases : Exploration Phase • Additional role: Sustainable Software Expert -> can be integrated with the OCE. • Activities and tasks: i. Explore the current system : - Check for areas where Green IT can be applied. Eg. Virtualization - Reuse and Refurbish hardware after establishing hardware requirements. - Propose new sustainable operational concept. E.g. Process that will reduce paper work, reuse resources etc.
Exploration Phase Contd. ii. Plan and Manage Project: - Project Manager : Assign a team member who will ensure that the design with the material of technologies is directed towards sustainability. This is can be a separate role or integrated with the duties of the OCE. - Business/Client meetings: Transportation to meetings
Valuation , Foundation and Rebaselined Phase - Focus on the energy-saving goals. - The benefits chain diagram should reflect the benefits that the company will get by implementing the proposed sustainable system. - QFP should ensure that the traceability of all requirements should match with the sustainable operational goals. • Assess the feasibility of implementing the sustainable alternatives. • Optimize the development process to mitigate negative impacts or enforce positive impacts. • Use tools or applications to what help analyze costs and benefits of applying green elements in SE.
Development Phase( Construction and Transition): • As a developer, the following are some rules for writing greener code( by HamidShojaee): - Faster code over future hardware : Use old machines and run code with acceptable performance - Include environmental costs in cost analysis: This includes rack costs, cooling costs, bandwidth costs, software costs. - Resolve critical areas: Go back and solve the code again and figure out more efficient way to run the code. - Optimize graphical design elements, logos and photographs. - Optimize videos and animations. - For transition, provide videos for demos and e-copies of manuals.
Milestones/ Reviews • Sustainability reviews which can take place along with the ARB before each phase. • Stakeholders should look at the work done and assess results according to sustainability criteria. • In the Operation Phase the following are some critical areas: • Hardware requirements • Memory and Processor usage during execution.
Conclusion Though Green software engineering is a relatively new field, it is slowly gaining popularity. Software engineers in industry should be encouraged to apply the principles. Since we are next generation of software engineers we should start integrating these guidelines while developing code/software. Possible areas of research in this field are developing metric and assessment tools that will enable developers and users of software system in monitoring the energy consumption or comparing the results of applying the green principles.