0% found this document useful (0 votes)
8 views42 pages

GSDsummary

The document provides an overview of Green Software Development, emphasizing the importance of energy-efficient coding practices and the impact of software on climate change. It covers key concepts such as the three pillars of green coding, the significance of Software Requirements Specifications (SRS), and tools for sustainability assessment. Additionally, it touches on professional software development tools and methodologies like Lean Six Sigma for process improvement.

Uploaded by

jseptic319
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views42 pages

GSDsummary

The document provides an overview of Green Software Development, emphasizing the importance of energy-efficient coding practices and the impact of software on climate change. It covers key concepts such as the three pillars of green coding, the significance of Software Requirements Specifications (SRS), and tools for sustainability assessment. Additionally, it touches on professional software development tools and methodologies like Lean Six Sigma for process improvement.

Uploaded by

jseptic319
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42

Green Software Development overview for the multiple choice test.

This is not a comprehensive ‘text book’ document since the course depended on learning through
doing (hands-on) and class instruction, during the multiple choice quiz, you will be tested on what
you learnt during the lectures so use this document only as a starting point to remind yourself of the
topics we covered in class. Do not try to learn each word by heart. That approach does not help in
absorbing and understanding the material, nor will it be very useful for the test, instead rely on your
understanding throughout the class.

Intro to Professional Software Development

Key problems in Professional Development:

• Large sized teams working on the same code base.


• Tracking the tasks, enhancements /features implementation and
bug fixes
• Tracking Quality and Various Versions/ Releases
• Deployment and Updates
Introduction to 7 Layers of Modern Application Architecture

What is Green Software Development ?

Introduction to Green Coding


• Measuring the energy consumption of your code (PxC)
• Structural and Behavioral considerations
• Pillars of Green Coding
• Hiring for sustainability

Net Zero Agenda for the companies


• Context - Climate Change
• Type of emissions
• Factors contributing to climate change
• Understanding of UN's 17 principles on Sustainability

Some points of “waste” to be aware of when writing green software

Heavy Memory Usage


Heavy CPU Utilization
Servers are under-utilized
Incorrect Storage Class Usage
Incorrect GPU Utilization

Adressing above issues not only leads to greener software but most of the times also leads to better
performing software and hence a great user experience.
Context – Climate Change

What are scope 1, 2 and 3 emissions?

• Scope 1 emissions: Covers emissions that are directly caused by the organisation.
• Scope 2 emissions: Indirect emissions. For instance emissions caused to generate the
electricity used by the organisation.
• Scope 3 emissions: Indirect emissions embodied in the up and down value chain. For
instance emissions caused by manufacturing of raw material or tools or machinery that the
organisation uses.

What is Green Software Development?


• Write code or computer algorithms that can consume minimal
• energy.
• Structural considerations: It encompasses the energy measures related
• to the code blocks.
• Behavioral considerations: This is the energy consumption related to the
• user scenarios, including doing the Transactions, sending an email, etc
• Adopt Lean Coding practices - minimal amount of processing will be needed
• to deliver a similar result
• Help businesses reduce their energy consumption

Three Pillars of Green Coding?


1. What is generated from the code itself? or “is it efficient enough in terms of energy
invested?”
2. How is it generated? - is the development lifecycle efficient or “could a similar code be
generated with minimal energy consumption”.
3. Where is the software operated? - or “is it required to consume more energy to run the
code?”
What is ESG?
Environmental, social and Governance (ESG) Criteria – A set of standards for a company’s
behaviour used by socially conscious investors to screen potential investments.
Creating SRS and Measuring carbon foot print

Creating Software Requirements Specifications (SRS)

• What is SRS ?
• Why do we need SRS ?
• Content of SRS
• Requirement Analysis, Functional Specification
• External Interface Specification
• External Interfaces and Technical Specification

Requirements analysis

Define the problem and parameters including intended users, what is the software supposed to do,
what are the success metrics and prior precedent.

Functional specification
Functional specification describes how a product will work entirely from the user's perspective.

Functional Spec
1. Scenarios
2. System Overview, The ‘big picture’.
3. Details of scenarios
4. Open Issues, i.e. issues that may not be clear at the outset.
5. Side Notes if any.
External Interface Specification
describes how the software will interact with other components in its eco-system (e.g. GUI,
hardware interface, plug-in api definitions, communication protocol, file formats).

Technical Specifications
describe ‘under the hood’ part of system from the ‘Implementers point of view’. (Hardware details,
performance expectations in terms of both, speed and energy consumption, OS, Languages and
technologies etc. )
Professional Software Development Tools

For version control, we looked at git + github quite extensively in class in hands on. You are
expected to know basics of git + github and version control in general to the extent that it was
covered in class.

We also worked with and discussed codecarbon as a a carbon tracking tool and how it operates. You
are expected to know basics of it to the extent covered in class.
Client Side Development

A user interface is well-designed when the program behaves exactly how the user thought it would.
Server Side Development

Choice of right data structures is something to consider carefully at the outset.


.

.
Custom Application Development

Creating Green Architecture


.

.
.

.
.

.
Testing

Remember we covered designing test cases hands on with python using pytest.

.
.

.
.

.
.

.
.
Tools for Sustainability Assessment

.
Cloud Readiness, Introduction to Containers and Dockers

.
.

.
.

.
.
Lean Six Sigma Overview with DMAIC and A3

We had a brief introduction of a commonly used process improvement method called Lean Six
Sigma.

What is Lean?
Everybody solving problems systematically to maximise value and minimise waste across the entire
system. Lean Six Sigma is a process improvement methodology designed to eliminate problems,
remove waste and inefficiency, and improve working conditions to provide a better response to
customers’ needs.

Lean Waste in Green Software Development

.
Lean Principles : Mindset

What is sigma in six sigma?

.
.
Lean Six Sigma Improvement Process (DMAIC)

.
.

Ishikawa Diagram

.
Presentation Soft Skills

.
.
.

.
.

You might also like