Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 152

DEPARTMENT OF COLLEGIATE AND TECHNICAL EDUCATION

KARNATKA

LABORATORY MANUAL

ON

SOFTWARE ENGINEERING PRINCIPLES AND


PRACTICES

By

Smt. SUNANDA DEVI V K


Head of Department of Computer Science and Engineering

GOVERNMENT POLYTECHNIC-109
Kalaburagi
SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

TABLE OF CONTENTS
WEE TITLE OF THE PRACTISE PAGE REMARK
K NO S
1 Overview
1. Discuss success and failure stories
2. Presentation of collected case studies
3. Enact the importance of ethical practices
2 SDLC and Process Models
1.Case study to understand the SDLC
2. Organize and play games to understand
the agile process like:
morning wake up game
▪ the marshmallow challenges
▪ White Elephant Sizing
▪ Easter Egg Challenge
3. Create JIRA (similar tool) account and
learn interface
3 Agile frameworks
1. Play and act agile ceremonies
2. Play different agile roles Eg. Product
owner, business analyst
4 Risk
1. Case study to understand the importance
of risk management and mitigation of risk
2. How to use tools to manage and mitigate
risks [eg. Logicgate, AuditBoard etc]
5 Design Thinking
1.Conduct warm up activities to Ignite
Design Thinking
2.Organize and conduct design thinking
exercises and game
6 Requirement Engineering & Modeling
1.Organize role play for requirement
activities
2. Identify a problem and prepare
requirement document or Epics and user
stories
3. Configure JIRA for the managing the
project to solve the identified problem
4. Draw UML diagram for given use case
7 User stories
1.Create detailed user stories for the above
identified problem
2.Organize and play planning poker to
decide on user points
8 Design
1.Create sitemap and wireframe for above
created user stories. (Tools such as sketch,
Adobe XD, Figma, etc can be used)

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 3


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

9 Development
1.Create Git (similar tool) account and
configure repository
2. Upload the artifacts created to Git
Learn version control and configuration
management with Git
10 Code quality and code security
1. Install and configure Jenkins
2. Create a container image for Hello
world project
3. Setup build for container image using
Jenkins (Hello world application
11 Testing
1. Prepare Test plan for the user
stories using JIRA
2. 2. Prepare RTM for the user stories
created using JIRA. Create test
cases for the user stories created.
12 Software Measurement and Metrics
1. Use JIRA or similar tool to capture
agile metrics
2. 2.Use SonarQube to capture code
quality metric
13 Quality Control and Assurance
1. Organize Role play to understand the
roles and responsibilities of QA and QC
team.
2.Audit the artifacts produced in previous
sessions

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 4


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

WEEK 1- OVERVIEW

 Discuss success and failure stories


 Presentation of collected case studies
 Enact the importance of ethical practices

Introduction :
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 5
SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

What is Software Engineering?

Software engineering is defined as a process of analyzing user requirements and then designing,
building, and testing software application which will satisfy those requirements.

Define Success:
 Project Success can be defined as the achievement of something desired, planned or
attempted.
 It is also said that success is an event that accomplishes its intended purpose.
 Anything short of that is failure.

Some Causes of Project Success :


1. Consider End Users and Implement User Testing.
2. Have Clear Objectives and Specifications.
3. Hire Experienced Developers.
4. Have a Plan.
5. Practice Effective Project Management.
6. Have Clear Communication.
7. Focus on Your Design.
8. Implement Risk Management.
9. Follow Software Development Best Practices
10. Do a Final Review and Post-Release Review
There is also some arguments about projects success and failure causes. Some view the cause of failure
and success is Cost. The amount used to develop the project is cost. The main factors that affect this
cost factor are stated and explained here.

Define Failure:
 A failure can be defined for a task or project or assignedwork.
 Failure for a project is, “ that fails to perform a duty or an expected action, non-occurrence or
non-performance”.

Startling Facts:
Only 2.5% of companies in South Africa successfully completed 100% of their projects in the last 2

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 6


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

years. The average cost overrun of a Project is27%


 57% of projects fail due to “breakdown in communications.” ( No 2 cause of Project Failure at
themoment)
 39% of projects fail due to lack of planning, resources, and activities.
 60% of failed projects have a duration of less than one year.
 31% of Development Programme’s are cancelled
 53% of Projects have a cost overrun over 180 % over their Original Budget.
 By 2020 , 40% of existing infrastructure programmes will be stopped due to poor execution
 By 2025 , 45% of firms appointed as Consultant Project Managers will have failed their
Clients.

Some Causes of Project Failures:


 Lack of Senior management support- happens when “Junior” or “ Candidate PMs” are thrown
into the Project and left unattended.
 Poor communication- causes delay or even failure since team members do not have the
information they needed, issues or changes do not get escalated, project reporting is sluggish
 Inadequate resources- Task take longer than expected to complete, deadlines and milestones
get missed, and project completion date comes into jeopardy, one end of working more than
necessary (double shift) to get the work done No one is in control not even the project manager,
who is assigned to the project but not given the free hand to manage the project.
 Poor definition of Scope- Project changes from its original objective and goals. This can occur
due to additional requirement from the client.
 Project lacks structure - caused by things such as critical tasks being underrated
 Inaccurate estimates - A top- down plan causes constraints on the prediction of the cost of the
project
 Poor risk management - The project planning stages ( Stage 1 – 3) is not properlyplanned
 Unrealistic Milestones - it is not possible for a project to succeed if unrealistic timeframes and
milestones are made available for that project
 Incompetent project management skill - procedures and policies are not adhered to from
inception

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 7


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 1. Discuss success and failure stories

1.1.SUCCESS STORIES examples of some of Software


Projects( case studies)
1.1.1. Carerix: providing state-of-art software for corporate and personnel
Intermediaries
 Carerix is a Netherlands-based market leader in the field of staffing and recruitment software
solutions.
 The company was recently acquired by European workforce management solutions provider
PIXID.Carerix supplies innovative Customer Relationship Management (CRM) and Applicant
Tracking Systems to more than 700 enterprise and mid-level businesses worldwide.
 Their smart web-based software features all the necessary functionality for vacancy posting,
candidate sourcing, matching, and invoicing. Daxx has worked with Carerix since 2012,
contributing to its enterprise software development, UX design, and QA activities.
 During that time, the company's monthly recurring revenue has more than doubled along with
the number of subscribers to the Carerix service. Currently, Carerix software serves more than
650 customers and 10,000 users on a day to day basis.

1.1.2 HVR: Enabling real-time data integration for the enterprise


 HVR Software is a U.S.-based company specializing in real-time data integration. HVR is a
solution that helps companies move large volumes of data in their complex environments fast
and efficiently for real-time information.
 The solution integrates data between on-premise and cloud systems, often into a data lake or
data warehouse.HVR is uniquely designed for moving data within cloud environments as it
has a flexible, distributed architecture that simplifies cloud adoption.
 Our company Daxx had a chance to cooperate with HVR on a number of software
development activities for their solution.
 What's special about the company's solution is its unique ability integrate data to and from
traditional storage and management systems such as Oracle, SQLServer, etc. into their cloud
systems such as AWS, Apache KafkaⓇ, Microsoft Azure.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 8


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

1.1.3. Broadleaf: improving the efficiency of multi-channel retailing


 Broadleaf Commerce is an Inc 5000 enterprise eCommerce solution provider with
headquarters in Dallas, Texas
 The company's mission is to provide businesses with all the necessary functionality for online
transactions while helping them significantly reduce costs and improve efficiency. Broadleaf
was one of the first companies to develop an open-source, enterprise-ready e-Commerce
platform for online retailers based on Spring Framework.
 This flexible and extensible framework is widely used for building enterprise-class Java
applications and is easily customizable for various business needs. Daxx had the opportunity
to help Broadleaf reach their business goals by creating a cross-functional development team
that covers support and system integration for European clients.
 Broadleaf B2B and B2C e-commerce platform solutions facilitate multi- channel retailing by
handling more than 10,000 concurrent site visitors, processing 200 transactions per second,
and managing more than 1,000,000 products in one system.

1.1.4.Qualtrics: Powering Customer and Employee Experiences:


 Qualtrics is an experience management company with co-headquarters across the US.
 The company provides enterprise software for collecting and analyzing data for market
research, customer satisfaction and loyalty surveys, product and concept testing, employee
evaluation and website feedback.
 Qualtrics serves industries such as automotive, travel, hospitality, financial
services, government, media, and aviation.
 Its core product is an Experience Management (XM) platform which helps brands continually
assess the quality of their customers, employees, products, and brands. It is the first experience
management platform measuring employee experiences via key metrics powered by predictive
intelligence.
 With Qualtrics XM, enterprises can predict which changes will resonate most with all of their
stakeholders.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 9


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

1.1.2.Discuss Failures Stories of software Engineering:


1.1.2.1Heathrow Airport Disruption
 In February of this year, more than 100 flights in and out of London’s Heathrow
airport were cancelled, delayed, or otherwise disrupted after technical issues
compromised the departure boards and check-in systems.

 As a result passengers were left without the critical information they needed about
their flights. On top of that, there was limited functionality for electronic tickets
(which have become quite common in recent years).

 While a Heathrow spokesperson issued a statement and said they couldn’t share
any more details about what caused the systems to be affected and/or which
systems were impacted, they did promise to continue closely monitoring their
systems.
1.1.2.1 Deadly Flaw in Medical Infusion Pumps
 The company Care Fusion designs and manufactures advanced medical equipment for some of the
top hospitals around the world. Unfortunately, they also have their fair share of recalls.
 And some of them are direr than others. In 2015, the Care Fusion Alaris Pump, which is designed
to automatically deliver fluids and medicine to hospital patients, had a software error that caused
the pump to delay infusion.

 Thankfully the issue was caught very early on, but the consequences could have been dire –
potentially leading to accidental over dosing. But that’s not all.
1.1.2.3. F-35 Fighter Plane Glitch
 A couple of years ago, a software glitch in an F-35 Joint Strike Fighter jet was
identified to have a bug.
 The bug actually caused planes to incorrectly detect and lock in on the wrong
targets when flying in formation. As the company explained, each of the planes
flying in formation must detect a target from varying angles.
 But the software was unable to differentiate between one target and multiple
targets. In essence, the F-35s were seeing double. (And that’s not something you
want when flying in formation at high speeds and high altitudes.)

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 10


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

1.1.2.4. Uber Software Bug Catches “Cheater”


 Okay, let’s take a temporary break from the serious ones. Here’s one that’s
pretty funny (unless you’re the main character of the story, that is.)In France, a
bug within the Uber app actually revealed a man’s affair with another woman
to his wife.

 It ultimately led to a divorce and got Uber slapped with a $45 million
lawsuit.
 The bug, which causes Uber notifications to be pushed to a device even after you
log out of the account on a specific device, actually sent several notifications to
the Frenchman’s wife – clearly outlining his rendezvous to his mistress’ flat.

1.1.2.5. Software Bug Aids in Bank Heist


 In 2016, a group of advanced hackers/thieves hijacked the Bangladesh Bank
System and successfully transferred out over $81 million in four different
transactions.
 They had another $870 million lined up, but a spelling error tipped off the
bank and caused these additional transfers to be canceled.

 But here’s where it gets interesting. According to a release by the


Bangladesh Bank authorities, there’s a printer set up to automatically print
read-outs of all transactions made.
 But there just so happened to be a glitch in the system (which could have been
caused by the thieves, I supposed) that interrupted this printing process.
 So it wasn’t until several delays later that the transfer receipts were
tracked down.

1.1.2.6.TSB Bank Outage Locks Clients Out


 When you store your money in a bank, you expect to be able to access it
whenever and wherever you want. But, alas, technology doesn’t always afford
this freedom.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 11


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 And while you’ve probably experienced a minor glitch in online banking in the past, I
bet you’ve never had to go through one like this.
 In April 2018, millions of TSB Bank customers were locked out of their accounts
after a “simple” upgrade to the software led to a massive banking outage.
 The system upgrade was planned, but apparently not well enough. Immediately
after TSB turned on the new system, customers began experiencing issues
logging in. Others were shown details of other people’s accounts.

1.1.2.7 Hospital Computer Failure


 Also in 2018, Wales National Health Service (NHS) experienced a widespread
computer failure that led to issues accessing patient files.
 In many hospitals and facilities, doctors were unable to see patient files. This meant
they couldn’t access X-ray results or bloodwork.
 It also led to a backlog in appointments, since patients couldn’t be seen and the
system didn’t allow for cancellations.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 12


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 1.2. Presentation of collected case studies


( Students put your presentation Slides Here)

 The main objective here was to improve the data collection techniques of the students.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 13


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

1.3.Enact the importance of ethical practices:


 Objective here is to improve analysis skills of the students to see the problem and give solutions

Ethics provide the moral compass by which we live our lives and make decisions –
'doing the right thing' because it’s the right thing to do.

The way we make decisions is important for organization's because the wrong
decisions can have a significant impact on people’s lives and the reputation of
organizations. So, when we make decisions based on good principles, and live by
good values, we can improve the lives of others and the experiences they have at
work.

Ethical practice standards

Each standard progresses through four levels of impact;


(1) Foundation level
At this level you will:

 Take responsibility for your actions


 Act consistently with relevant regulation and law
 Handle personal data and information in a professional manner
 Demonstrate honesty in dealings with others
(2) Associate level
At this level you will:

 Make responsible choices about your work, applying professional


principles and values
 Consider the purpose and implications of actions, decisions and people
practices for all stakeholders
 Provide explanations and reasons for the choices you make and the
advice you provide
 Demonstrate professionalism and consistency in what you say and do in order

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 14


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

to build trust

(3) Chartered Member level


At this level you will:

 Make responsible decisions by considering different ethical perspectives, and


finding the best possible way forward for all stakeholders
 Coach and influence managers and leaders to consider the implications of their
decisions on stakeholders
 Challenge decisions and actions which are not ethical, explaining the
organization risks
 Encourage transparency in decision-making and communication where
possible
(4) Chartered Fellow level
At this level you will:

 Make responsible decisions by balancing different ethical perspectives, and


shape how ethics inform wider decision-making and governance
 Coach and influence senior leaders to consider the ethical impact of their
decisions in the short and long-term
 Take a visible lead in solving ethical dilemmas, considering how they will
play out beyond the organization
 Surface the unsaid in leadership discussions to enable transparency and
improved decision-making

CASE STUDY 1: What kinds of harm to the public can software engineers cause?
What kinds of harm can they prevent?
Mike is a father of 3, and in order to save for their college educations, he has been working two jobs
since his kids were born. His daughter Sarah has worked as hard as she can in high school to get high
grades and SAT scores; as a result of her hard work she has been accepted to a prestigious Ivy-
League college, and the deposit for her first year is due today. If the deposit goes unpaid, Sarah loses
her spot in the freshman class. Mike paid the bill last week, but today he gets an email from the

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 15


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

college admissions office saying that his payment was rejected for insufficient funds by his bank, and
if he does not make the payment by the end of the day, Sarah will lose her place and be unable to
attend in the Fall. Panicked, Mike calls the bank – he had more than enough money in his savings to
cover the bill, so he cannot understand what has happened. The bank confirms that his account had
plenty of funds the day before, but cannot tell him why the funds are gone now or why the
payment was rejected. They tell him there must be some ‘software glitch’ involved and that they
will open an investigation, but that it will take weeks to resolve. They will only restore the funds in
his account once the investigation is completed and the cause found. Mike has no other way to get the
money for the deposit on such short notice, and has to tell Sarah that he couldn’t cover the bill
despite his earlier promise, and that she won’t be attending college in the Fall.

Problem 1.:What kinds of harm has Mike probably suffered as a result of this incident? What kinds of
harm has Sarah probably suffered? (Make your answers as full as possible; identify as many kinds of
harm done as you can think of).
Your Solution to the above Problem :

Problem 2 : Could the problem with Mike’s account have been the result of an action (or a failure
to perform an action) by a software engineer? How many possible scenarios/explanations for this
event can you think of that involve the conduct of one or more software engineers? Briefly explain
the scenarios:
Your Solution to the above Problem :

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 16


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

CASE STUDY 2:
Karen is a young lawyer at a prestigious firm with an incredibly hectic and stressful schedule,
who needs to organize what little free time she has more efficiently. She has just downloaded a
new app called Errand Whiz onto her iPhone; this app merges information from Karen’s to-do list,
information on her purchasing habits from retail stores she shops at, and GPS software to produce
the most efficient map and directions for running errands on her days off. Based on what it knows
about what she needs to purchase and her general shopping habits, it tells Karen what locations of her
favorite stores to visit on a given day, in what order and by what routes – this way she can get her
errands done in the least amount of time, traveling the least number of miles. To accomplish this, the
app aggregates information not only about where she lives and shops, but also tracks what she
typically buys in each store, how much she buys, what she typically pays for each item. This
collected data is not stored on Karen’s phone, but on a separate server that the app links to when
it needs to create a shopping map. The app encourages users to log in via Facebook, as the
developers have made a deal with Facebook to sell this data to third-party advertisers, for the
purpose of targeting Facebook ads to Karen and her friends.

Problem : In what ways could Karen potentially be harmed by this app, depending on how it is
designed and how her shopping data is handled and used? Identify a few harmful scenarios you
can think of, and the types of harm she could suffer in each:

Your Solution:

What sorts of things can excellent software engineers contribute to the good life?

Your Solution:

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 17


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 18


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

WEEK -2
SDLC and Process Models
1.Case study to understand the SDLC
2. Organize and play games to understand the agile process like:
 morning wake up game
 the marshmallow challenges
 White Elephant Sizing
 Easter Egg Challenge
3Create JIRA (similar tool) account and
Learn interface.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 19


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

SDLC- SOFTWARE DEVELOPMENT LIFE CYCLE:

A software life cycle model (also termed process model) is a pictorial and diagrammatic representation
of the software life cycle. A life cycle model represents all the methods required to make a software
product transit through its life cycle stages. It also captures the structure in which these methods are to
be undertaken.

SDLC Cycle

SDLC Cycle represents the process of developing software. SDLC framework includes the following steps:

 Choose any model of the SDLC and analyze the tasks at each stage as described below.

Table Selections on the Basis of the Project Type and Associated Risks

Project Type and Waterfall Prototype Spiral RAD Formal


Associated Risks Methods

Reliability requirements No No Yes No Yes

Stable funds Yes Yes No Yes Yes

Reuse components No Yes Yes Yes Yes

Tight project schedule No Yes Yes Yes No

Scarcity of resources No Yes Yes No No

How to choose the right process model for your project?

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 20


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

It is also essential to consider time and cost while choosing a process model as cost and/ or time constraints
play an important role in software development. The basic characteristics required to select the process
model are project type and associated risks, requirements of the project, and the users.

2.1 Case study to understand the SDLC:


Uberization Project – in-plant Vehicle movement :
Business Requirement:- Need to minimize the use of vehicle in the plant area. Usage of the vehicle
is for movement of logistics and to give a critical support in un-planned shut down. Need online
booking of vehicles as mobile app
Proposed solution -> A mobile app created and data stored on cloud. Technology used is J2ME and
oracle and Google app used to know the location and shortest path between source and destination.
OLA kind of app prepared for users along with phone booking facility
SDLC Model adapted:-
RAD Other applicable models -> Prototype , agile, Iterative Enhancement Models, spiral
How Development Done:- we have prepared a small app with limited scope only with booking
facility for few user segment and for only one department. Once successfully done then added other
modules like cancel booking, booking in advance critical booking, bill generation, and then
deployed the same for all location and all department .

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 21


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Rack monitoring:
Business Requirement:- Need to create a GPS tracker which can be plotted on the railways racks to
maximize the utilization and monitor the same
Proposed solution -> Cloud based web application created and data stored on cloud. Technology
used is Java Hibernate and oracle app server for monitoring also a GPS created separately by R & D
Division.
SDLC Model adapted:- Prototype Other applicable models -> RAD
How Development Done:- we have prepared a small web app and take only one GPS as a trail and
monitor its activity to know the rack position between a particular range. Once successfully done
then full project implemented

Case Study to print a online visitor diary after retirement


Business Requirement:- Need to create visitor diary for retired person and on submission of I-card
and other belongings , system will auto issue a printed visitor diary to enter in the office premises.
Proposed solution -> VB dot net based a web app has been created with oracle database with a two
level approval and printing of diary.
SDLC Model adapted:- waterfall Other applicable models -> V Model, Evolutionary
Development Models: How Development Done:- we have prepared a small web app and deploy it
on one department for one month and then deploy it for all department Case Study for Online
display of OEE for all

Case Study done at our college :

You are leading a team of software developers at a university. The university’s President has approached you
about developing a new information system for tracking student course registrations.

 The system will need to contain information about students, faculty, and courses.

 Students should be able to use the system to browse course descriptions and the
schedule of classes for each semester, add classes to their schedule, and drop classes
from their schedule.

 Case study copy attached

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 22


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Practical 2.2 : Organize and play games to understand the agile process like,
 morning wake up game
 ▪ the marshmallow challenges
 ▪ White Elephant Sizing
 ▪ Easter Egg Challenge

2.2.1.MORNING WAKE UP GAME :


Here are the steps I take to run the exercise:

Step 1 – Individually list the morning activities (5 minutes):


I ask people to write on sticky notes the activities they did from the moment they woke up until they
reached the office, as many as they can.
It should be one activity in each sticky note and should be done individually

Each team should place their sticky notes on the wall and organize them in the groups with the topic as
their title. The titles are the “backbone” activities.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 23


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Step 3 – Order the group of activities by time  (3 minutes):


I ask the teams to order the activities from left to right sequentially, in a way that the order makes sense as a
story with a beginning, a middle and an end (for example: wake-up, prayer, washing, breakfast, home
arrangements , travel, reach the college..).

Step 4 – Order the activities by criticality  (5 minutes):


Now I ask the teams to prioritize the activities in each group by criticality ordered from top to bottom, so
that important activities are on top.
Briefing on this step:
Prioritizing is difficult when there are no guidelines, such as a certain goal we wish to achieve with our
product or a certain market segment or specific persona. For example, if our target college students who are
boys and girls , the priorities will probably be different, different activities will be considered critical for
each target customer. Define the goal/persona so it is easier to determine the priorities.
Step 5 – Drama! (5 minutes):
And now for the drama.. I tell the group:
Imagine you had a very important class in the morning that you just cannot miss or be late to.
Unfortunately, the alarm clock didn’t do its job and you woke up late and have only 15 minutes to get out of
the house!
What do you do? Which part of the morning routine will you drop to fit in the minimal time you have?
Now I ask the team to draw a horizontal line through the activities so that all the activities they choose to do
in such a morning are above the line and all the rest under the line.
They need to reach the safely and be on-time with the minimum activities as possible.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 24


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Final Briefing:
The exercise demonstrates the following important concepts:
 With the constraint of time our aim is still to realise the full “value” of getting on time to the college. In the
process of minimizing the activities, we removed many of them in each step and left the process very thin
and lean but still end-to-end. 
 Since we have a constraint of time, as we eventually want to be fast which means minimize the time to
reach value. in many cases we will go too deep in a single step and not realise the full end-to-end value. in
this exercise we demonstrate how it should be done across the map and how in every increment we build
we have the full end-to-end.
 We don’t invest equally in each step – in some steps we left only one activity and in some we left more,
depending on the step. Some steps where even entirely removed.
 Choosing the depth of each step is easier when the full picture is available since the alternatives are visible.
 Focusing on a single activity but in the context of end-to-end value helps development teams better
understand the scope of the requirement. For example, preparing breakfast in the context of getting out of
the house in 15 minutes is totally different from preparing breakfast for the family on a vacation morning.
Communicating effectively the context helps to make the scope more precise and to trim the less important
parts of the scope.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 25


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 2.2.2. The marshmallow challenges

The Marshmallow Challenge is tasked to promote social learning  and collaboration. In the case of
training and the workplace, the purpose of the challenge is to illustrate the importance of prototypes and
iterations. The process also proves that success is often dependent on close collaboration while
stimulating group innovation and creativity.
The Marshmallow Challenge: What is it and why do we do it?
 Whether it is at school, university or in the workplace, the Marshmallow Challenge is tasked to
promote social learning and collaboration. In the case of training and the workplace, the purpose of the
challenge is to illustrate the importance of prototypes and iterations. The process also proves that
success is often dependent on close collaboration while stimulating group innovation and creativity.

The Marshmallow Challenge


So what exactly does the challenge entail? Let’s explore below.
First, learners should be split up into small groups or teams of around five people. Next, the materials
provided to groups are simple; 20 sticks of spaghetti, 1 metre of tape, 1 metre of string and 1 marshmallow.
And the task, to build a sturdy, freestanding structure with the marshmallow on top, in 18 minutes.
With a focus on team collaboration, this simple exercise highlights how important working together is to
produce a better understanding of the topic at hand. In the case of the Marshmallow Challenge, every group
member will bring a different theory or idea of how the construction should be made. To achieve the best
structure, more hands are better in maintaining the integrity of the structure. Rather than working alone, the
Marshmallow Challenge inspires a shared learning experience, opening up more possibilities to
successfully carry out the project.
The Marshmallow Challenge is an instructive design exercise which tests this ability within us as we are
faced with a challenge without a concrete method. Our success is determined by the extent of
collaboration and the execution of our teamwork skills.
What Can We Take Away From the Marshmallow Challenge Solution?
1. Collaborate:
collaborative work breeds critical thinking. Because of this, collaboration should be introduced
throughout modern learning strategies to give learners the opportunity to learn and grow from each
other. help give learners direction or feedback, where needed.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 26


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

2. Prototype
Prototyping is important for experimental learning and facilitates teams to work together simultaneously
3. Iterate
With a leading designed templates that are suited to a diverse set of learning methodologies, even for
adults that might not naturally embrace iteration.
4.Keep information central:
Keeping all relevant information central is pivotal in the functionality and dynamism of teams. When
teams are well-informed of the happenings and perspectives around them, a more holistic approach is
taken to achieve objectives. 
The lesson: experimentation, prototyping, and iterating are essential to team success.
ATTACH YOUR PHOTOS HERE

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 27


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 2.2.3 White Elephant Sizing – Agile Estimation Method

 Agile teams need to estimate the size of their stories or product backlog items. The goal of the White
Elephant Game is to get a quick estimate of the relative size of an agile project and the size of the individual
stories before the project starts. It gives opportunity to everyone for their  voices are heard, and everyone
contributes equally. Estimation is a key component of project realization. It projects the cost for
Stakeholders, duration of the project for Product Owners, size or complexity for the developer.  The
white elephant game attempts to do this in a way that can be reliably fit into a given amount of time and keeps
the focus on getting the overall estimation done rather than disagreements on the sizing of particular
stories.There are significant difference between White Elephant Sizing Game and Planing Poker, so
evaluate which one is better for your team.
White Elephant Preparation
 A board (whiteboard or White paper chart or something like that) – divided into 5 columns(XS, S,
M, L, XL) or divide it into 3 (S,M.L) columns or start with three columns and as per the need for
more granularity add additional columns or divided by Fibonacci Sequence for estimation 1, 2, 3, 5,
8…
 Timer or stopwatch
 A set of prepared user stories – Print out/Write down all Product Backlog Items or user stories on
separate cards. It can be just the summary or summary with brief description of user stories which is
enough for the team to understand.
 A set of cards 
 Tape or sticky note
White Elephant Rules
Team stand-up in a semi circle facing their sizing or white board.

 Shuffle a deck of user story cards and put those with face down on a table just in-front of the board.
 Start the timer which is the signal for the first member to perform the following steps:
 Take a card from the top of the deck read it out and place in one of the columns (a.k.a  propose the
estimation for that item).
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 28
SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 OR
 Take one of the cards already placed on the board and move to another column (a.k.a change the
estimate). If someone is moving card, he/she need to provide some reasons for doing it.
 OR
 Pass, if all the stories are placed and they are satisfied with the story placement
 The first person has only option to take the card from table and place it in the board as there are no
other cards in the board. Once the action is done team member goes to the end of the queue and it is
the next person turn. Repeat the above process for the other team members until there are no more
cards to pick from, he/she can either take a new story or re-estimate that story. 
 Once all the stories are placed on the board, the team inspects the board and each member can
propose to move one of the stories’ place. They can, later on, discuss it with the product owner and
ask questions that will help them estimate those stories together.

Hanoi Tower algorithm is a mathematical game or puzzle. It consists of three rods and a number of disks
of different sizes, which can slide onto any rod. The puzzle starts with the disks in a neat stack in ascending
order of size on one rod, the smallest at the top, thus making a conical shape.
The objective of the puzzle is to move the entire stack to another rod, obeying the following simple rules:

Only one disk can be moved at a time.


 Each move consists of taking the upper disk from one of the stacks and placing it on top of another
stack or on an empty rod.
 No larger disk may be placed on top of a smaller disk.
The minimal number of moves required to solve a Tower of Hanoi puzzle is 2 n − 1, where n is the number
of disks. For the Agile Team the tasks for which all members agree will stay at the bottom. The lower the
task lies, the more confident team is.
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 29
SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Summary
This game helps the team to estimate faster. The fact that one story at a time is introduced helps limit the
amount of uncertainty.  So it should also help the team feel more confident in completing their estimation
work in a set period of time. But still there are few learnings like

 Group user stories according to their relative size/effort.


 Reach agreement on estimation quickly, if deadlock then apply above techniques to break deadlock.
 Ensure that each team member has their turn to estimate and provide their reason behind estimate.
 No talking among team members helps keep the interactions focused on product owner and team
rather than a intra-team focus.
 Apply different techniques to remove deadlock and make the estimation fun.

2.2.4.The Easter-egg challenge

A challenge, inspired by this article, that on first sight looks fun and irrelevant, represents in many ways how
teams operate, and how that is impacting their productivity. While painting eggs, cutting them out, checking
the quality of the delivered product seems extremely easy, the reality shows that even supposedly easy tasks
can become difficult and hectic when the participant’s mindset is not right.
The challenge is simple:
 Groups of 4 or 5 individuals per team
 A bunch of papers with unpainted easter eggs on them

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 30


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 Several boxes of crayons and a some scissors


 Requirements from the business (preferably difficult to understand)

During the challenge the teams will be instructed to deliver the painted eggs according to the pre-defined
requirements, on time, on quality and on budget (let’s just imagine there was a budget). The team will get 2
attempts in which 2 different delivery approaches will be used, where the first is based on Waterfall, and the
second simulates a more Agile approach.
While the core learnings of the challenge can be found in that an Agile mindset helps you improve
productivity (spoiler alert!), the challenge also shows the participants other relevant daily work problems
that, if not responded to well, can seriously impact your product delivery.
3,2,1, GO!
Start planning your work, appoint who paints, who has the best scissoring skills and who is responsible for
Quality Assurance. The teams have 3 minutes to decide who does what. Simulating the first phase of
development using a waterfall approach, in which you would write all requirements, and create the
documentation for the entire project.

 Then it’s time to start painting, which is a 6 minute job.


 No iterations, just start doing your job, and deliver the project all at once after the time passes.
 After all, all requirements are known, and the planning has been created to complete the task in time, on
quality and on budget.
 When after 3 minutes business requirements are suddenly changed — let’s say the government has just
banned the color blue — you can observe the team getting stressed out. As a result we find many eggs thrown
in the garbage bin, and the team starts all over again.
 As there is no time for evaluation during the project, the teams finish with only a few eggs completed.
 A bit disappointed about the sudden requirement change, the teams somehow aren’t quite satisfied.
Nor is the Business, as the delivered quantity is far below budgeted, and the Sales teams will have some difficult calls
to make.
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 31
SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

The remaining 3 minutes of the challenge are mostly used for discussing what went wrong, pointing most fingers
towards the business.
Let’s iterate!

The teams get a second chance, but are now expected to iterate. In a more agile environment, teams are used to deliver
smaller chunks of work in small iterations allowing them to reflect, adapt and improve each iteration. The teams are
given the same tools, but now they are free to do the work they think is required to get the job done. No fixed roles,
just like a real agile development team

Where in the first round the team was given 3 min to prepare, 6 min to work, and 3 min to evaluate, the teams now get
3 rounds of respective 1,2 and 1 minutes to get the job done in 3 iterations, using the same 12 minutes. Giving the team
less initial time do the planning, results in a bit of chaos. But it’s controlled. The team knows what they are doing, and
get a bit of work done in the first sprint. There are products delivered according to the specifications, and after the 2
minutes of painting, the team takes 1 minute to evaluate the product increment and the team’s processes during the
worlds shortest Sprint Retrospective.

2 more iterations follow in which the requirements change as well— The government also suddenly requires an
additional quality label to be added to the product — This time, the teams are able to respond properly, and discuss
the requirement change in either the retrospective or during the next sprint planning. Despite the sudden change, the
teams are able to deliver more eggs, and realized that working in iterations provides them quite some benefits that
they took for granted or never knew existed.
 Responding to change effectively can only be achieved by occasionally taking the time to evaluate your
processes
 Requirements can change, and its better to plan for that than to hope it won’t happen
 Delivering every now and then is more satisfying for the team than having 1 big delivery.
 Productivity goes up if you take time to evaluate your team’s performance and processes

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 32


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

The hidden challenge


While the changing business requirements were the obvious problem, it was not the only one. When starting to work
while the requirements are not 100% clear, the team and delivery gets seriously impacted when you find yourself
implementing something in a different way than the stakeholders were expecting. Talking to your stakeholders (That
would be us in this case) could clear out missing or unclear requirements. Using the planning phase to groom all
requirements, ensuring they are clear for all team members, will result in a better productivity, and a higher product
quality. Surprisingly, not everybody took the opportunity to talk to the stakeholders while the 3 min planning session
was happening, resulting in some of the eggs getting rejected, simply because they did not meet the pre-defined
(slightly unclear) requirements, set by the business stakeholders.

And the winner is?


Let’s not discuss the actual numbers of eggs that were delivered and approved for shipment to the clients. The most
important finding is that using an agile delivery method resulted in up to 7 times better productivity for some of the
teams. While all teams delivered beautiful eggs, the team’s motivation, productivity and quality significantly
improved.
Working in a more Agile way — and more importantly, with an agile mindset — enabled the team to respond to
change, optimize the process and improve productivity. And in the end the motivation went up. The team completed
the workshop with a good feeling, understanding the benefits of an Agile mindset, and hopefully being able to help
their teams to become better in what they do every day!

TO Create Cartoon Characters

3.Create JIRA (similar tool) account and learn interface


GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 33
SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

What is JIRA?

Jira is a proprietary issue tracking product developed by Atlassian that allows bug


tracking and agile project management.

 Jira is used for issue tracking and project management by over 180,000 customers in 190 countries. Some
of the organizations that have used Jira at some point in time for bug-tracking and project management
include Fedora Commons Hibernate and the Apache Software Foundation, which uses both Jira and
Bugzilla Jira includes tools allowing migration from competitor Bugzilla

Step 1 – To download and install Jira visit the official website of Atlassian. The link to
the website is https://www.atlassian.com/software/jira/download?
_ga=1.28526460.178747397 8.1 488778536
Step 2 – After selecting the type of Operating System in which you want to install Jira,
look for the Download option and click on it. You can change the operating system type
by clicking on the dropdown.

Step 3 – Once Jira is downloaded, click on the .exe file. After this, you will see
that the Run confirmation pop-up is displayed, click on RUN to proceed. You can
refer to the screenshot below.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 34


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Step 4 – Notice that the JIRA installation wizard would be displayed. If so, click on Next

Step 5 – Choose the desired installation option and then click on Next again.The installation
summary would be displayed with the Destination Directory, Home Directory, RMI Port, HTTP
Port etc. The screenshots for the same are attached below for your reference.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 35


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Step 6 – Click on Install. JIRA will start installing. It would take a few minutes for
the installation to finish.

Step 7 – Please make sure that the “Start JIRA Software 8.0.2 now” checkbox is
checked in order to start Jira automatically. After that click on Next, if not, it can
be
accessed using the Windows Start Menu shortcut. .
Step 8 – Click the Finish button.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 36


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

How to use Jira software

To Create a project
 In the top-left corner, click the Jira home icon
 In the top-right corner, select Create project.

To Pick a template
The Jira template library houses dozens of templates across a variety of different
categories, and is designed to get your team started quickly and successfully. You can
choose a template from all the Jira products you own (Jira Software, Jira Service
Management, and Jira Work Management). Today, Jira Software offers three
templates
To Set up your columns

 Navigate to your team's board by selecting Active sprints (for Scrum


projects) or Kanban board (for Kanban projects) in the project menu on the
left
 Select more (•••) > Board settings in the top-right corner.

 Select Columns.

 Select Add column to add a column for each step in your team's process.
Create an issue

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 37


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 In the project menu, select Roadmap


 Start typing, then hit enter to create your first epic.

Invite your team


 In the project menu on the left, select Project settings.
 Select People.
 In the top-right corner, select Add people.
 Search for your team member's email address, and select Add

Attach your execution report here

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 38


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

WEEK - 3
Agile ceremonies

1. Play and act agile ceremonies


2. Play different agile roles

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 39


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

The four scrum ceremonies are:


• Sprint Planning
• Daily Scrum
• Sprint Review
• Sprint Retrospective

Sprint planning: is an event in scrum that kicks off the sprint. The purpose of
sprint planning is to define what can be delivered in the sprint and how that work will
be achieved.

Sprint planning is done in collaboration with the whole scrum team.

 Sprint Planning is used to determine what the team will accomplish in the
upcoming Sprint. The event itself has two parts.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 40


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Daily Scrum : sometimes referred to as the Daily Standup, has a time-box for 15
minutes or less, and is specifically for the benefit of the development team.

 The goal of this event is for the team to get in sync on a daily basis,
allowing for better collaboration and transparency.
 The Daily Scrum should be held at the same time each day and should not
include anyone outside of the Scrum Team.

 The Daily Standup meetings are usually time-boxed to between 5 and 15


minutes.
Sprint Review:is when the team presents their work from the Sprint to the project's
stakeholders.
 It should cover not only the work they accomplished, but also open
discussions around the work they were not able to complete.

A Sprint Review includes the following events:


 Attendees include the Scrum Team and key stakeholders if invited by the Product Owner;
 The Product Owner discusses the ‘done’ and ‘what has not been done’ items of the Product
Backlog,

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 41


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 The Development team elaborates the ‘done’ work, and justifies the Increment,
 The Product Owner discusses the Product Backlog. He or she projects likely target and delivery
dates based on progress to date (if needed).
Sprint Retrospective: is the primary event in which the Scrum Team can inspect and adapt their
approaches based on their experiences from the previous sprints.
The sprint retrospective is usually held as the last activity of the sprint. It is a good idea to repeat the sprint
retrospective on the same day time and place.

When you’re performing a sprint retrospective you want to capture any good ideas that come up which can
then be applied to future sprints
Roles and Responsibilities of Agile:

Product Owner – Often an executive or key stakeholder, the Product Owner has
a vision for the end product and a sense of how it will fit into the company’s
long-term goals.
• This person will need to direct communication efforts, alerting the team to
major developments and stepping in to course-correct and implement high-
level changes as necessary.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 42


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 The product owner is a role on a product development team responsible for managing the product
backlog in order to achieve the desired outcome that a product development team seeks to
accomplish.
Key activities to accomplish this include:
 Clearly identify and describe product backlog items in order to build a shared understanding of the
problem and solution with the product development team
 Make decisions regarding the priority of product backlog items in order to deliver maximum
outcome with minimum output
 Determine whether a product backlog item was satisfactorily delivered
 Ensure transparency into the upcoming work of the product development team.
Scrum Master – The Scrum Master is most akin to a project manager. They are
guardians of process, givers of feedback, and mentors to junior team members.

 They oversee day-to-day functions, maintain the Scrum board, check in


with team members, and make sure tasks are being completed on target

 The methodology is highly collaborative and requires efficient processes,


and the results of the process depend upon the expertise of the Scrum
Master.
 Agile methodologies may have started in tech companies, but Scrum Master

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 43


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

jobs can be found in all kinds of industries and for all kinds of companies
around the globe
Team Member– Team members are the makers: front- and back-end engineers,
copywriters, designers, videographers, you name it.

 Team members have varied roles and skills but all are responsible for
getting stuff done on time and in excellent quality.
 Every organization requires its employees to work together as a team to
achieve its goals. It is possible to have different individuals working together
in a group.
 But they must be team-oriented because effective teamwork depends
on the character traits of a good team member.

What are the qualities of a good team member?

1. Having an identity.

2. Being committed.

3. Being flexible..

4. You are humble.

5. An effective communicator.

6. A consistent performer.

7. Being objective.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 44


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Agile ceremonies done at college

An example : Students management system :

1.Sprint planning

What the project is:


To make a simple software for student management system.

To accept the input choice of user and display the following :

 If choice is 1 - Add new student


 If choice is 2 - To view
 If choice is 3 – To search a student
 If choice is 4 – To update
 If choice is 5 – To delete
 If choice is 6 – To quit

How to accomplish:
 Using python functions to create each function for each of the choice
 Using csv module creating rows to store details
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 45
SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

Scrum master creates team for the project and assigns task to them
2.Daily scrums:

 Goal is to check the progression of sprints


 Scrum master issues a time box for 15 min or less
 the goal is for the team to get in sync on daily basis, allowing for collaboration and
transparency.
 here they do all the discussions regarding the backlogs.
3.Sprint Review

 The team and scrum master presents the software to owner and all the stakeholders.
 They cover all the work they accomplished and also discusses what they were not able to
complete .
 And asks for extra time to complete the unfinished work
4.Sprint Retrospective

 It is the primary event

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 46


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 They finalizes the software and presents it to the owner

WEEK 4
Risk
1. Case study to understand the importance of risk management and mitigation of risk
2. How to use tools to manage and mitigate risks [eg. Logicgate, AuditBoard etc

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 47


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

4.1.Case study to understand the importance of risk


management and mitigation of risk
Risk is an expectation of loss, a potential problem that may or may not occur in the
future. It is generally caused due to lack of information, control or time.
• A possibility of suffering from loss in software development process is called a software
risk.
• Risk is a measure of the potential inability to achieve overall program objectives within
defined cost, schedule and technical constraints.
Risk Management
• Risk management is defined as the process of identifying, monitoring and managing
potential risks in order to minimize the negative impact they may have on an
organization.
• Examples of potential risks include security breaches, data loss, cyberattacks, system
failures and natural disasters.
• Risk Management is the system of identifying addressing and eliminating theseproblems
before they can damage the project.
 Boehm has produced a list of the top 10 risk items.
 Table shows some of these risks 
 The techniques preferred by management for managing these risks. 
 Top risks in a commercial software organization can be found in
Example:

  Risk Item  Risk Management and mitigation steps

1 Personnel Shortfalls  Staffing with top talent; Job matching; Team building; Key personnel
agreements; Training; Prescheduling key people

2 Unrealistic Schedules  Detailed cost and schedule estimation; Design to cost; Incremental

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 48


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

development; Software reuse; Requirements scrubbing

3 Developing the Wrong Organization analysis; Machine analysis; User surveys; Prototyping;
Software Functions Early user’s manuals 

4 Developing the Wrong Prototyping; Scenarios; Task analysis; User characterization


User Interface

5 Gold Plating Requirements scrubbing; Prototyping; Cost benefit analysis; Design to


cost

Need and Importance of Risk Mitigation: 

 A robust risk mitigation plan helps establish procedures to avoid risks, minimize risks, or reduce the
impact of the risks on organizations.
 It guides organizations on how they can bear and control risks.
 This helps a business in achieving its objectives.

CASE STUDY ON Takeaway Subscription and Food Ordering System

SL RISK IMPACTS RISK MITIGATION


NO STEPS
1 Customer Privacy Payment procedure and data are recorded in Mobilization of advance
&Data computerized system. So, there is high chances of computerized setup
security breach of sensitive data like credit card
numbers and customer data  Configuration of
firewall
2 Food Safety Unwanted addition of recipe, insect found on food Controlling food
and food adulteration can create bad impression & adulteration
impact on the service of food  Create good
relationship between
customers & suppliers
3 Food Quality Food Quality is challenging problem for Serving qualitative food
restaurant and it built the reputation of industry.
Lack of qualitative food can lead to bad reviews

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 49


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

and poor customer attraction. 


4 Poor Ineffective communication between customers Make clear
Communication and system may create dispute due to understanding of
&Planning misunderstanding.  customer order.
 Setting proper
planning.
5 Poor Absence of Malware Protection, strong Wi-Fi Implementation of
Communication network and security cameras can bring lack of modern technology
&Planning customer satisfaction.
Now we can conclude that if we do not Manage and Mitigate the Risk, It May have adverse impact on
software, Organization and its users.

Tornado IPT Case Study


Working with Tornado IPT
 The Tornado Integrated Project Team (Tornado IPT) is part of the UK Ministry of Defence’s
(MOD’s),
 Defence Equipment and Support (DE&S) organization.
 It is responsible for the provision of logistical support and capability development for the RAF
Tornado F3 (Air Defence Variant) and the GR4 (Ground Reconnaissance) fleet until 2025,
 The requirement to drive down defence costs whilst maintaining outputs to the end customer has led
the IPT instigating a transformation program which has resulted in the development of a series of
availability-based contracting solutions with industry.
1. The Challenge

 The management of Safety-related risk has always been paramount within the
Tornado IPT and it was recognized that a similar rigours needed to be
introduced to manage the risks and issues potentially impacting on all areas
of IPT business.
 In partnership with MOD’s Risk Process Owner (Through Life
Procurement Management Support Group) a formalized project risk
management process was developed for the Tornado IPT.
 Key to the successful implementation of this program would be the
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 50
SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

selection and deployment of a powerful risk management and analysis tool.


2. The Solution

 After a comprehensive evaluation and assessment phase, Tornado IPT


selected Predict! Risk Controller as best meeting its requirement.
 The intuitive nature of operation and integration with Predict! Risk Analyzer
were key points identified.
 Feedback sought from other DE&S IPT’s who already operated the tool
were also positive which reinforced the selection processes.
 Risk Decisions have worked closely with Tornado IPT to configure
Predict! And develop custom templates for management reporting.
 They also provided a comprehensive training program to ensure that users
were able to get up to speed quickly and realize the benefits from Predict!
Risk Controller and Risk Analyzer.

3. The Benefits

 Risk Management is now co-ordinate across the IPT with regular monthly
business and project reviews being conducted.
 The decision-making process is now risk-based, with clearly defined
escalation processes in place, ensuring risk is managed at the level where it
can be influenced.

LEND LEASE CORPORATION CASE STUDY

Lend Lease Corporation Limited is an Australian-based multinational company


that specializes in project management and construction, property investment
management and property development.
The company has over 11,485 employees operating in more than 40 countries
around the world where the Bovis Lend Lease division constructs and manages
large building projects.
The Challenge:
 Lend Lease is leading a development team that includes Bovis Lend Lease as a project and construction
manager for the residential development and infrastructure for Phase One of the Stratford City project.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 51


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 This involves the construction of up to 3000 residential dwellings and related accommodation that are due
for completion in late 2011.
 As the preferred development partner for Zones 2-7 of the Stratford City regeneration scheme, the company
needed to implement the latest risk management technologies and model of proposed developments
processes to help ensure the successful delivery of this key project on budget and within tight timescales.

Solution:
 Was selected after a rigorous ITT process which included a detailed analysis of all potential solutions.
 Risk Decisions was one of the only suppliers able to demonstrate a track record of successful
implementations and delivery of high levels of support to organizations of a similar scale working on large
complex projects.
 Prior to installation on Lend Lease’s servers based in Atlanta, USA, Risk Decisions conducted a master
class to introduce the concept of risk management at the highest level and a series of workshops with
different stakeholder groups to determine configuration requirements.
o The company has also provided additional consultancy support to assist with stakeholder mapping
and setting a framework to enable risk management to be rolled out and embedded as a core
process and procedure.
 Lend Lease has deployed Predict!, the latest enterprise version of Risk Decisions’ powerful suite of risk
management and analysis software which includes Predict! Risk Controller and Predict! Risk Analyzer.
 It also intends to implement Predict! Risk Controller Lite, a unique solution that uses familiar spreadsheets to
enable infrequent and remote users to provide regular updates on risks.
 This module will also be a key change management tool to assist in the embedding of risk management
across the organization and will be deployed early in 2009.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 52


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

4.2 How to use tools to manage and mitigate risks


RISK RIGISTER-tool

 A risk register is a tool in risk management and project management. 


 It is used to identify potential risks in a project or an organization, sometimes to fulfil regulatory
compliance but mostly to stay on top of potential issues that can fulfil intended outcomes.
 risk register is mostly used during the execution of the project, it’s part of your risk management
plan, which must be given serious consideration by project managers during the project
planning phase.
 Once you have your risk register to identify and track risk events, then you need project
management software to take action. Project Manager has kanban boards and Gantt charts that
visualize the workflow as your team works to resolve the risks. 
 Risk registers may vary depending on the organization and the project. However, most risk register
templates share these commonly used elements:

What Is Included in a Risk Register?

 Risk identification ID: A name or ID number to identify the risk.


 Risk description: A brief explanation of the risk.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 53


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

 Risk breakdown structure: A risk breakdown structure is a chart that allows you identify all your
project risks and categorize them.
 Risk categories: There are many risk categories that can impact a project such as schedule, budget,
technical and external risks.
 Risk analysis: The purpose of risk analysis is to determine the probability and impact of a risk. You
can either do a qualitative risk analysis or a quantitative risk analysis.
 Risk probability: You’ll need to estimate the likelihood of each risk and assign a qualitative or
quantitative value.
 Risk priority: The risk priority is determined by assigning a risk score to each risk, which is
obtained by multiplying the risk impact and probability values. If you’re using qualitative
measurements, you’ll need to prioritize risks with the highest impact and highest probability.
 Risk response: Each risk needs a risk response to mitigate its effect on your project. Those risk
responses are also documented in a risk response plan.
 Risk Ownership: Each risk needs to be assigned to a team member who becomes a risk owner. The
risk owner is responsible for deploying the appropriate response and supervising it.

How to Create a Risk Register


Let’s go through all the steps to create a risk register so we can get the most out of this risk
management tool when we use it.
1. Risk Identification: Identify risk for project and give Risk ID
2. Describe Project Risks
The next thing you want to do is describe the project risk. For example, don’t write, “The
Weather,” for a risk contingent on the weather. Rather, go for something specifically related to
your project, such as, “Monsoon season in India could cause shipping delays for copper.”

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 54


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

3. Estimate Risk Impact


Include everything that the risk can influence. 
4. Create a Risk Response Plan
This is the heavy lifting in the project risk register, so give it the time and effort necessary to
complete it properly. Keep the risk response plan short and to the point. Document all response
plans and implementation strategies. If this requires a long document, add a link or add an
attachment to the risk response plan document to point directly towards the planned response.
5. Prioritize Project Risks

Not all project risks are created equally. Some of them have a greater impact than others, so you have to
decide here which are going to move to the front of the line and which are okay to ignore if you don’t have
the time and resources. Here you’ll determine the level of risk: high, medium or low. This way you can
filter your register and then prioritize.

Plan for project risks with this risk register template. Define risk priority and the potential impact for
each. Risk is going to happen, but with this free risk tracking template for Excel handy, you can prepare for
it and have a response already thought out and in place.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 55


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

But, if you open the risk tracking template in ProjectManager instead, you’ll be able to manage project risks
in our software with five different views: Gantt, kanban board, task list, calendar and sheet. Plus, you’ll be
able to manage those risks with your team in real time, and track progress along the way with live
dashboards and instant status reports.  ProjectManager’s risk register template is free to use and more
powerful than Excel. 

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 56


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

6. Define Risk Owners


Finally, assign an owner to each risk. If you don’t have a risk owner for each and every potential
risk, then you might not know about it until the impact of that risk is irreversible.

7. Notes

There is one last column in your risk register, and that’s a place to collect any notes that don’t fit under the
above categories. It’s important to have a place to put these ideas.

One of most powerful risk management features is real-time dashboard.  project dashboard gives you a snapshot of
your project status and is ideal for catching risks ahead of time before they become issues. This unique feature is
valued by project managers all over the world, in major companies like Volvo, NASA and Bank of America.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 57


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

WEEK 5
Design Thinking

1.Conduct warm up activities to Ignite Design Thinking


2.Organize and conduct design thinking exercises and game

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 58


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

What is Design Thinking? 

The iterative process of Design Thinking helps learners understand its users, challenge assumptions,
redefine problems and solve problems. Design Thinking for software will help speed up the overall
development process. 

The five design thinking steps are

1. Empathy
2. Definition
3. Ideation
4. Prototyping
5. Testing

1. Conduct warmup activities to Ignite Design Thinking

Warm-ups in Design Thinking — more than just a game

What are warm-ups?

Warm-ups can be described as exercises one normally runs right before the main proceedings to help participants
relax and ease people into a group activity or learning situation. Warm-ups go very well with design thinking
because they support many of its attributes, such as being curious and having an open mindset as well as being
mindful of and collaborating with other people.

Consequently, a well-chosen warm-up can add real value to a design thinking workshop or project, but then, a poorly
chosen warm-up can also have the opposite effect, making people feel nervous, uncomfortable and confused. So,
when choosing your warm-up, choose it purposefully! Here are some pointers to bare in mind:

 Firstly, warm-ups are not per se part of design thinking, they just have proven to be a useful way of
promoting team work and supporting certain work attitudes.

 Warm-ups as well as other methods and exercises should generally be selected to suit the team, so you should
know your audience and the people you are working with.

 While it’s important to be mindful of the people, it is also vital to read the current mood and situation and
select the warm-up accordingly — it should fit to the given circumstances.

 Let the participants understand that you don’t just want to do a ‘warm-up’ with them now. Communicate the
goal and reflect on it afterwards if necessary. Especially when using an ‘educative’ warm-up, e.g.
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 59
SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

‘Marshmallow Challenge’ before prototyping, you should debrief it — active reflection increases the
likelihood of understanding and learning.

 For the conduct of the warm-up, give clear instructions and know when a short demo might be necessary for
your audience to better understand the activity.

 Lastly, I would like to add that you as a facilitator should love and understand the warm-up you’re choosing
and get excited when using it. Only then will the spark be transmitted to the participants.

Below, you find some examples of what for and when you can use a warm-up:

• Create a positive group atmosphere

• Help people to get to know one another (better)

• Break down social barriers

• Reduce pressure

• Energize

• Distract the group temporarily to better focus afterwards

• Prepare the team for a certain mode of working / phase / mindset

• Energize

2.Organize and conduct design thinking exercises and game

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 60


SOFTWARE ENGINEERING PRINCIPLES AND PRACTISES – 20CS44P

In our college we have practiced design thinking games by our students in a team.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 61


WEEK 6
Requirement Engineering & Modeling
1.Organize role play for requirement activities
2. Identify a problem and prepare requirement document or Epics and user stories
3. Configure JIRA for the managing the project to solve the identified problem
4. Draw UML diagram for given use case

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 62


6.1. Organize role play for requirement activities
Organize role play for requirement activities 
Role-Playing : 
 Role-play has a long history as a tool for learning. Role-play can be used to simulate real world
practices in environments where consequences can be mitigated safely .
 It makes sense that some investigators have examined the use of role-play in software engineering
education. Role-play has been used as a way to engage the student as part of the requirements
engineering process to help them understand how a user would perceive the system behaviour in a
human computer interaction.
Uses and Benefits of Role Playing
 Role-playing takes place between two or more people, who act out roles to explore a particular
scenario.
 It's most useful to help you or your team prepare for unfamiliar or difficult situations. 
 For example, you can use it to practice sales meetings, interviews, presentations , or emotionally
difficult conversations, such as when you're resolving conflict .
 By acting scenarios like these out, you can explore how other people are likely to respond to
different approaches; and you can get a feel for approaches that are likely to work, and for those that
might be counter-productive. You can also get a sense of what other people are likely to be thinking
and feeling in the situation.
 Also, by preparing for a situation using role-play, you build up experience and self-confidence with
handling the situation in real life, and you can develop quick and instinctively correct reactions to
situations. This means that you'll react effectively as situations evolve, rather than making mistakes
or becoming overwhelmed by events.
 You can also use role-play to spark brainstorming sessions, to improve communication between
team members, and to see problems or situations from different perspectives.
How to Use Role Play
It is easy to set up and run a role-playing session. It will help to follow the five steps below.
Step 1: Identify the Situation
 To start the process, gather people together, introduce the problem, and encourage an open
discussion to uncover all of the relevant issues. This will help people to start thinking about the
problem before the role-play begins.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 63


 If you're in a group and people are unfamiliar with each other, consider doing some icebreaker 
exercises beforehand.
NOTE : When to Use Icebreakers
As the name suggests, these sessions are designed to "break the ice" at an event or meeting. The
technique is often used when people who do not usually work together, or may not know each other at
all, meet for a specific, common purpose.
Consider using an ice breaker when:
 Participants come from different backgrounds.
 People need to bond quickly so as to work towards a common goal.
 Your team is newly formed.
 The topics you are discussing are new or unfamiliar to many people involved.
 As facilitator you need to get to know participants and have them know you better.
Step 2: Add Details
 Next, set up a scenario in enough detail for it to feel "real."
  Make sure that everyone is clear about the problem that you're trying to work through, and that they
know what you want to achieve by the end of the session.
Step 3: Assign Roles
 Once you've set the scene, identify the various fictional characters involved in the scenario. Some of
these may be people who have to deal with the situation when it actually happens (for example,
salespeople). Others will represent people who are supportive or hostile, depending on the scenario
(for example, an angry client).
 Once you've identified these roles, allocate them to the people involved in your exercise; they
should use their imagination to put themselves inside the minds of the people that they're
representing. This involves trying to understand their perspectives, goals, motivations, and feelings
when they enter the situation. (You may find the Perceptual Positions   technique useful here.)
Step 4: Act Out the Scenario
 Each person can then assume their role, and act out the situation, trying different approaches where
necessary.
 It can be useful if the scenarios build up in intensity. For instance, if the aim of your role-play is to
practice a sales meeting, the person playing the role of the potential client could start as an ideal
client, and, through a series of scenarios, could become increasingly hostile and difficult. You could
then test and practice different approaches for handling situations, so that you can give participants
experience in handling them.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 64


Step 5: Discuss What You Have Learned
When you finish the role-play, discuss what you've learned, so that you or the people involved can learn
from the experience.
Further Tips
 Some people feel threatened or nervous when asked to role-play, because it involves acting. This
can make them feel silly, or that they've been put on the spot.
 To make role-playing less threatening, start with a demonstration. Hand two "actors" a prepared
script, give them a few minutes to prepare, and have them act out the role-play in front of the rest of
the group. This approach is more likely to succeed if you choose two outgoing people, or if you're
one of the actors in the demonstration.
 Another technique for helping people feel more comfortable is to allow them to coach you during
the demonstration. For instance, if you're playing the role of a customer service representative who's
dealing with an angry customer, people could suggest what you should do to make things right.
Role-Play Example
 In an effort to improve customer support, John, Customer Service Manager for Mythco
Technologies, sets up a team role-playing session. Acting as the leader/trainer, John brings together
a group of software developers and customer support representatives.
 He divides the 12 people into two groups: Group A represents the customer support representatives;
Group B represents the customer.
 John tells Group A that the customer in this situation is one of Mythco's longest-standing customers.
This customer accounts for nearly 15 percent of the company's overall annual revenue. In short, the
company cannot afford to lose her business!
 John tells Group B that the customer has recently received a software product that did not live up to
expectations. While the customer has a long-standing relationship with Mythco, this time she's
growing weary because Mythco has previously sold her faulty software on two separate occasions.
Clearly, her relationship with Mythco is in jeopardy.
John now allows the groups to brainstorm for a few minutes.
 Next – with this particular approach to role-play – each group sends forth an "actor" to take part in
the role-play. The actor receives support and coaching from members of the team throughout the
role-playing process. Each team is able to take time-outs and regroup quickly as needed.
 John runs through the scenario several times, starting with the "customer" behaving gently and
ending with the customer behaving aggressively. Each time, a best solution is found. Of course,

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 65


John can always ask for additional role-playing and suggestions if he feels that the process needs to
continue, or that the team has yet to uncover the very best solutions.
 Once it's clear that they cannot identify any more solutions, John brings the two groups together and
discusses the session. During this, they discuss the strategies and the solutions that the actors
implemented, and how they could apply them to a real-life situation.
 John also asks each team to write a short summary of what they learned from the exercise. He then
combines the summaries and provides a copy of everything learned to all participants.

2  Identify a problem and prepare requirement document or Epics and user stories.
Software Requirement Specification(SRS) document 
For Online Shopping System(OSS)
1 Introduction
1.1   Purpose:
The Online Shopping System (OSS) for electronics item shop web application is intended to provide
complete solutions for vendors as well as customers through a single gate way using the internet. It will
enable vendors to setup online shops, customer to  browse through the shop and purchase them online
without  having to visit the shop physically. The administration module will  enable a  system  administrator
to approve and reject requests for new shops and maintain various lists of shop category
.2 SCOPE:
This system allows the customer’s to maintain their cart for 
add
or remove the product over the internet.
3    DEFINITIONS:
OSS- Online shopping System (for electronics item  shop)
SRS- Software Requirement Specification
GUI- Graphical User Interface
Stackholder- The person who will participate in system 
Ex. Customer, Administrator, Visitor etc.
4 Overview: 
 This system provides an easy solution for customers to buy the product without going to the shop
and also to shop owner to sale the product.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 66


 This proposed system can be used by any naïve users and it does not require any educational level,
experience or technical expertise in computer field but it will be of good use if user has the good
knowledge of how to operate a computer.
5. Overall Description: 
 The   Online   Shopping   system   (OSS)   application   enables vendors to set up online shops,
customers to browse through the shops,   and   a system   administrator   to   approve   and   reject
requests for new shops and maintain lists of shop categories.
 The online shopping system will use the internet as the sole method for selling goods to its
consumers.      
  Product Perspective:
This product aimed toward a person who don’t want to visit the shop as he might don’t get time for that or
might not interested in visiting there and dealing with lot of formalities.    
  Product Functions:
OSS should support this use case:

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 67


6.3. Configure JIRA for the managing the project to solve the identified
problem
Project Problem
• A problem statement is a concise description of the problem or issues a project needs to
address.
• Problem Definition – defining the problem statement for user need.
• The group or individual that has an understanding or can recognize workable solutions to
the defined problems.
• Once the team understands the issues they are going to address first, they can then begin
to form solutions.
EPIC
• An epic is a large body of work that can be broken down into a number of smaller stories,
or sometimes called “Issues” in Jira.
• Consists of multiple teams, on multiple projects, and can even be tracked on multiple
boards
To create user story in jira tool ->
type jira tool login in web browser ->select Log in with Atlassian account ->login with valid email-id.
To Create a project
• In the top-left corner, click the Jira home icon • In the top-right corner, select Create project.
To Pick a template
Choose a template from Jira products you own (Jira Software, Jira Service Management, and Jira
Work Management).
Create an issue
• In the project menu, select Roadmap
• Start typing, then hit enter to create your first epic.
Invite your team

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 68


• In the project menu on the left, select Project settings.
• Select People.
• In the top-right corner, select Add people.
• Search for your team member's email address, and select Add
Steps to create epic and create issues in epic, status update and add people for team and
assigning work for them.
Step1: Create Project from Projects menu
Step 2: Project name or work name must be entered and choose kanban template and add key for
the project to identify issues in project.
Step 3: Select roadmap -> create epic and its description-> add issues(user stories) for epic.
Step 4: Select board and check for the status of all issues which are in to do list, in progress list
and done list. Issues attended will be moved to in progress list. Issues completed will be moved
done list.
Step 5: Adding people to team, select people from menu ->invite using email id ->then add
Step 6: Select issue for assigning work to team mate-> write description for the issue ->select
assign ->select people in list and assign work.

5. Draw UML diagram for given use case


• Unified Modeling Language (UML) is a general purpose modelling language.
• The main aim of UML is to define a standard way to visualize the way a system has been
designed.
• It is quite similar to blueprints used in other fields of engineering.
• UML is not a programming language, it is rather a visual language.
Different UML Diagrams are
• Use case Diagram
• Class Diagram
• Object Diagram
• State Diagram
• Activity Diagram
• Sequence Diagram
• Collaboration Diagram

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 69


• Component Diagram
• Depolyment Diagram
Use-case diagrams
• Describe the high-level functions and scope of a system.
• These diagrams also identify the interactions between the system and its actors.
• The use cases and actors in use-case diagrams describe what the system does and how the
actors use it

Example: Use case Diagram for Restaurant Ordering System

Consider payment processing in e-Toll System and draw use case diagram.

Steps to draw Use case diagram


Step 1 : To draw UML diagram download Staruml using this link https://staruml.io/download . Select
Windows option and Install
Below figure shows the home page.
Step 2: In home page, from menu Select Model 🡪Add Diagram 🡪Use case Diagram
Use case Box will appear with blank system name fill the name of system, enter e-toll System for this
usecase.
Step 3: Select different notations used for use case building from Tool box
Step 4: Select Actor from Toolbox and draw where actor has to be represented and type the suitable name
for actor. Similarly draw other actors needed in the system
Step 5: Select use case from Toolbox and draw in the rectangle where it is required and type the suitable
name for use case. Similarly draw other use cases needed in the system
Step 4: Select Association and include from the Toolbox, connect actors to its appropriate use cases. And
save the use case.

6.4 Draw UML diagram for given use case

What is a use case diagram?

In the Unified Modelling Language (UML), a use case diagram can summarize the
details of your system's users (also known as actors) and their interactions with the

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 70


system. To build one, you'll use a set of specialized symbols and connectors. An
effective use case diagram can help your team discuss and represent:

 Scenarios in which your system or application interacts with people,


organizations, or external systems .

Goals that your system or application helps those entities (known as actors) achieve

 The scope of your system

When to apply use case diagrams

 Representing the goals of system-user interactions.


 Defining and organizing functional requirements in a system.
 Specifying the context and requirements of a system.
 Modelling the basic flow of events in a use case.

E -Toll System

 Electronic toll collection (ETC) is a wireless system.


 Automatically collect the usage fee or toll charged to vehicles using toll
roads, HOV lanes, toll bridges, and toll tunnels.
 It is a faster alternative which is replacing toll booths, where vehicles must
stop and the driver manually pays the toll with cash or a card.
 In most systems, vehicles using the system are equipped with an
automated radio transponder device.
 A major advantage is the driver does not have to stop, reducing traffic delays.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 71


Use case of toll system

(1) first, the Internet access is ubiquitous and reliable.

(2) Strict vehicle registration policy is actively in place to ensure maximum compliance.

(3) Lastly, an efficient legal provision is in force to handle cases of toll fee
evasions and outright violation of traffic laws.

The system design was implemented in five modules.

1. Database design

2. Web service (cloud component)

3. Android application (mobile client)


4.Administrative web application (web client);
and
5. XBee-driven WSN component.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 72


WEEK 7
User stories

1.Create detailed user stories for the above identified problem


2.Organize and play planning poker to decide on user points Create detailed user stories for
the above identified problem

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 73


User Stories:

A user story is a small, self-contained unit of development work designed to accomplish a specific
goal within a product.

Themes or Initiatives
These are the broadest level, and describe an area of focus. A Theme is something which would commonly
be discussed at the program or project level. 
Example: Buy.
Epics
An Epic is a group of related User Stories. They simply provide a mechanism of grouping related user
stories together that would be unwieldy to manage.
Example: Find Item, Place Order.
User Story
 A user story is usually written from the user’s perspective and follows the format: 
“As [a user persona], I want [to perform this action] so that [I can accomplish this goal].”
OR
As a [description of user], I want [functionality] so that [benefit].
User stories:
Are easy for anyone to understand
Represent bite-sized deliverables that can fit in sprints, whereas not all full features can.
Help the team focus on real people, rather than abstract features
Build momentum by giving development teams a feeling of progress

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 74


What are agile user stories? 

A user story is the smallest unit of work in an agile framework. It’s an end goal, not a feature, expressed
from the software user’s perspective.

A user story is an informal, general explanation of a software feature written from the perspective of the
end user or customer. 

The purpose of a user story is to show how a piece of work will deliver a particular value back to the
customer. User stories are a few sentences in simple language that outline the desired outcome. They don't
go into detail. Requirements are added later, once agreed upon by the team.

User story examples

Characteristics of a User Story?

The user story should have the following qualities:


GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 75
 Be complete enough to demonstrate user value.
 Be user-centric.
 Start with an epic.
 Be short, simple, and clear.
 Contain supporting files and documentation if necessary.
 Be comprehensive enough to demonstrate value, but simple enough to develop in a single iteration.
 Be written based on the input of all stakeholders.
 Be flexible and negotiable without impacting other stories or features.
 Be easy to test.
 Include acceptance criteria (conditions of satisfaction) for testers.

1. Create detailed user stories for the above identified problem


Create User stories for the given problem:

1. To create user story in jira tool 🡪type jira tool login in web browser 🡪select Log in with Atlassian
account    🡪 login  with valid email-id
2. Click on create button to create issue with issue type is story and summary as your problem type
example login functionality as shown below.

3. Write full description of your issue using user story format: 


Consider a problem student login to college website

“AS A” User (Student)


“I WANT” to have login functionality

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 76


“SO THAT “I can successfully login and use school management Software

“scope”
 Build a Login Page
 Student Validation
 Student should able to change password
 It should work in all the browser
 It should also work in mobile
Pre-Condition:
Student should have registered in school management software
Acceptance Criteria:
Scenario 1: User can successfully login
Given i am on login page
And I give valid username and password
And I click on sign in
Then i will Successfully login
Scenario 2: User can’t login successfully 
Given i am on login page
And I give invalid username and password
And I click on sign in
Then i will error message in “Login Failed Invalid username and password”.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 77


4. Fill remaining tab assignee, label, and attachment (if required).
5. Then press create button to create user story.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 78


2.Organize and play planning poker to decide on user points Create detailed user
stories for the above identified problem

Planning Poker

A gamified exercise called Planning Poker, carried out during the sprint planning meeting, helps team
members to arrive at an understanding of the correct story point approximation for each item.  

Here’s how Planning Poker works: 

1. Each team member receives a set of cards, with numbers printed on the back. 
2. The Product Owner brings a backlog item to the table and describes it to the team. Team members
can ask questions and clarify features, so that they arrive at a complete understanding of the
work involved in developing this item. 
3. Once the discussion is closed, each member of the team privately selects the card with the number
that most accurately reflects their personal estimate of the work involved.  
4. After all cards have been selected, the team opens their cards at the same time. The rationale behind
this is that when numbers are spoken aloud, they could influence the thinking of other team
members. By hiding their choice and revealing the cards together, people will think independently
and discuss their choices. 
5. They will discuss the reasons behind the highest and lowest values and might decide to hold another
round of estimates to narrow down the range. 
6. Once a consensus is met, the team will move on to the next backlog item.  
7. If the estimates vary too much for a particular item, the leaders will discuss it further until they
arrive at a consensus. In case there is any ambiguity, they could also decide to leave this item aside
till more clarity is received. 
  

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 79


 
 

Play planning poker to decide on story points


 Planning poker is a great way to have the team agree on the correct story point approximation for
every item in the backlog.
 During the sprint planning meeting, each developer receives a set of cards depicting   the Fibonacci
sequence.
 A backlog item is brought to the table so that the team may ask questions and clarify features.
 When the discussion is closed, each developer and tester privately select the card that most accurately
reflects their estimate.
 When all cards have been selected, the estimators reveal their cards at the same time. If a consensus is
met, it’s time to move on to the next backlog item. If the estimates vary, the leaders discuss until they
arrived at a consensus.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 80


WEEK 8
Design
1.Create sitemap and wireframe for above created user stories. (Tools such as sketch, Adobe
XD, Figma, etc can be used

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 81


Design:
● Software design is the process to transform the user requirements into some suitable form, which helps
the programmer in software coding and implementation.
● During the software design phase, the design document is produced, based on the customer
requirements as documented in the SRS document.
● Hence the aim of this phase is to transform the SRS document into the design document.
● The software design phase is the first step in SDLC (Software Design Life Cycle), which moves the
concentration from the problem domain to the solution domain.

Objectives:

● Correctness, Completeness, Efficiency, Understandability, Flexibility, Consistency

And Maintainability

● Software Design Concepts:


● The software design concept simply means the idea or principle behind the design.
● It describes how you plan to solve the problem of designing software, the logic, or thinking behind
how you will design software.
● There are many concepts of software design and some of them are given below:

Levels of design
The software design process can be divided into the following three levels of phases of design:
1. Interface Design
2. Architectural Design
3. Detailed Design
 What is UX (User Experience)?
The user experience (UX) is what a user of a particular product experiences when using that
product. The process includes development, improvement of quality interaction between a user

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 82


and all facets of a company. The full form of UX design is User Experience Design. UX design
improves the overall experience a user has with a company’s products or services.
 What is UI (User Interface)?
UI design relates to the appearance and feel of a digital product. It focuses on visual factors like buttons,
fonts, colour schemes, images, interactive elements, etc. The full form of UI design is the User
Interface. It is developing and improving the quality of interaction between user and software.

The difference between User Interface (UI) and User Experience (UX) is that UI refers to the
aesthetic elements by which people interact with a product, while UX is about the experience a
user has with a product or service.
UX Design
 UX Design stands for User Experience Design.
 UX design is focused on everything that affects the user’s journey to solve a problem.
 UX design deals with research, testing, development, content, and prototyping.
 UX design is developing and improving quality interaction between a user and all elements of a
company.
 UX design is a complete experience which may not be limited to the screen.
 It involves creative and convergent thinking.
 UX design is based on the client’s needs and requirements.
 UX design needs mockups, graphics, and layouts.

UI Design
 UI Design stands for User Interface Design.
 UI design is a process that mainly focused on how the specific product’s surfaces look and function.
 UI is a process of visually guiding the user through a product’s interface using interactive elements
across all platforms.
 UI design transmits the brand’s strength and visual assets to a product’s interface.
 UI design is usually visual design and information design around screens.
 It involves creative and critical thinking.
 UI design is based on the user’s needs and research.
 UI design needs wireframes, prototyping, and a good research approach.

1.1 UI types

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 83


There are four prevalent types of user interface and each has a range of advantages and disadvantages:
1. Command Line Interface
2. Menu-driven Interface
3. Graphical User Interface
4. Touch-screen Graphical User Interface
5. Conversational UI

8.3.1 Relationship between UI and UX :


 Many people believe that UI equals UX, and vice versa. This is not entirely true.
 UX design refers to the term “user experience design”, while UI stands for “user interface design”
 Most often time’s people tend to confuse or misunderstand these terms UI/UX.

Let’s take simple example Human Body ,to understand UI and UX

 UX could be likened to the skeletal structure of a person, that’s the buildup, what you’re made of,
 UI also could be likened to the flesh or outer build of a person or beauty of the design or the outer
part of the skeletal build up,
 So you see they both cannot exist without the presence of the other, but that doesn’t make them
same.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 84


Importance of good UI/UX :

Think of any web or mobile application that you've been using today. You might have noticed
two elements:
User Interface (UI): This defines what you touch, click, speak to, etc., in the application.
User Experience (UX): How you felt about your interaction with the application, how soon you
found what you needed, how easy it was to find what you were looking for, etc.
 The primary goal of any business is to increase its sales and increase the growth of the
business.
 UX/UI Design plays an essential role in achieving this goal.

 The UX/UI Design of the application improves the user experience and customer satisfaction that
ultimately helps increase the number of users of the specific application.
 For a start-up or a small venture, the importance of UI and UX Design becomes even more
crucial as the first impression lasts long and using UI and UX designing can make or break the
brand recognition.

Wireframes:
Overview

 A wireframe is a schematic or blueprint that is useful for helping you, your programmers and
designers think and communicate about the structure of the software or website you're building.

 A wireframe is commonly used to layout content and functionality on a page which takes
into account user needs and user journeys.
 Wireframes are used early in the development process to establish the basic structure of a page

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 85


before visual design and content is added.
 Let's say that you've researched your users, and established a user flow. You also now have a good
understanding of what elements have to be on each screen. What's next? It's time to start creating.
 Think of a wireframe as a low-fidelity blueprint for your product. It's meant to be a step-by- step
guide of your customer's journey. These blueprints can be executed both digitally and in pencil.
 While drawing your wireframes is a fun exercise, it's becoming more common to create them
digitally in Sketch, AdobeXD, and Figma.

Purpose:
Wireframes serve three key purposes: They keep the concept user-focused, they clarify and
define website features, and they are quick and cheap to create.

1. Wireframes keep the concept user-focused


 Wireframes are effectively used as communication devices

 They facilitate feedback from the users, instigate conversations with the stakeholders, and
generate ideas between the designers.
 Conducting user testing during the early wireframing stage allows the designer to honest
feedback, and identify key points that help to establish and develop the product concept.
 Wireframing is the perfect way for the designers to gauge how the user would interact with the
interface.
 These insights help the designer to understand what feels intuitive for the user, and create
products that are comfortable and easy to use
2. Wireframes clarify and define website features
 Wireframing specific features will clearly communicate to your clients how they’ll function
and what purpose they’ll serve.
 It also enables all stakeholders to gauge how much space will need to be allocated for each
feature and clarify the page’s functionality , architecture of visual design
 Seeing the features on a wireframe will also allow you to visualize how they all work
together—and may even prompt you to decide to remove a few if you feel they’re not quite
working with the rest of the page’s elements.
3. Wireframes are quick and cheap to create
 In fact, if you have a pen and paper to hand, you can quickly sketch out a wireframe without

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 86


spending a penny.
 The abundance of tools available means you can also build a digital wireframe within
minutes
 Often, when a product seems too polished, the user is less likely to be honest about their first
impressions.
 But by exposing the very core of the page layout, flaws and pain points can easily be
identified and rectified without any significant expenditure of time or money.
 The later it gets in the product design process, the harder it is to make changes!

8.3.4.3 Benefits:
Make Changes More Efficiently
 With wireframes, it doesn’t take a lot of effort to make changes. It is much easier to toss an
idea away and try another approach.
 That is a great incentive to try many different ideas before you find the right solution instead
of sticking to something that doesn’t work so you don’t lose your progress and invested time.

Display the Architecture of Your Site


 Wireframing can help you make sure that everybody included in the process is on the same
page
 when it comes to the site’s architecture and helps you avoid any potential confusion with the
redesign.
Clarify Website Features before You Build Them
 The functionality of a website is the most important thing, even more significant than the
visual appearance.
 That is why wireframes are great since they allow you to discuss all the necessary
functionalities of a website that you want to include. It is more effective to have this
discussion before you move forward with development and design.
Focus on the User Experience
 User experience should always be the focus of your design.
 Difficult and confusing navigation and ill-defined hierarchy of information are some of the most
common causes of bad user experience
 Bad user experience can lead to a high bounce rate, which can seriously damage your
reputation and position in search engines.
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 87
Determine Website Responsiveness
 Since nearly half of all Internet users access websites via mobile devices, which is an ever-
growing trend, your website must be able to work properly on all devices. Even if you design
it with a mobile-first approach in mind, you still need to anticipate how the site will look on
a desktop computer, which is best achieved in the wireframing phase.

Make Content Development Better


 Wireframes allow content writers to get the idea of the length of their content for every page.
That way, the content can look perfectly fitting to the website’s design.
Save Time and Money

 As we mentioned earlier, wireframes can save you a lot of time and consequently
money. It can help you make changes faster and provides better knowledge of the
entire project, minimizing the possibility of additional redesigns.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 88


 Create Sitemap wireframe for above created user stories. (Tools such as sketch,
Adobe XD, Figma, etc. can be used.

NOTE: Download any of the tool mentioned in the Title.

Step-1: Download the Figma Application Through Any


browser, Step-2: Now install the application in the desktop
Step-3: Open the application and create an account using Google account

Step-4: Now again Login into Figma application and create a new page using new
figjam , Step-5: Using Clipboard, click on ellipse and choose it as square,
Step-6: Make some clips by pulling blocks from
ellipse, Step-7: arrange the blocks as shown in the
above diagram.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 89


WEEK 9
Development

1.Create Git (similar tool) account and configure repository


2. Upload the artifacts created to Git .Learn version control and configuration
management with Git

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 90


● DevOps is a software development process that emphasizes communication and collaboration
between product management, software development, and operations professionals.
● ∙ DevOps also automates the process of software integration, testing, deployment and infrastructure
changes.
● ∙ It aims to establish a culture and environment where building, testing, and releasing software can
happen rapidly, frequently, and more reliably.
● The end goal of DEVOPS is to reduce “time to market” and improve the quality of the released
product.
● DevOps focuses on cross-functional mode of working.

DevOps tool set consists of multiple tools. These tools fit into one or more categories starting from
development to delivery process.
∙ Code — Code development and review, version control tools, code merging.
● Build — Continuous integration tools, build status.
● Test —Continuous testing tools that provide feedback on business risks.
● Package — Artifact repository, application pre-deployment staging.
● Release — Change management, release approvals, release automation.
● Configure — Infrastructure configuration and management, Infrastructure as Code tools.

● List of DevOps Tools:


1. Collaboration Tools: A collaboration tool helps people to collaborate. The purpose of a collaboration
tool is to support a group of two or more individuals to accomplish a common goal or objective they
have set themselves.
● Tools are: slack, Trello, HipChat, Flow Dock.
2. Planning Tools: Project planning is the application of knowledge, skills, tools, and techniques to
project activities to meet project requirements.
● Tools are: Asana, Clarizen.
3. Source Code Management Tools: In DevOps world, everything is treated as code (Eg, code, shell
script. configurations etc.) So it is a must to have a robust source code management tools.
● • Tools are: Git Subversion,Mercurial, Github ,Bitbucket, Perforce.
4. Developer Productivity Tools: It is important to maintain the developer environments without
inconsistencies in terms of software configurations and versions. And most importantly, the environment
should be reproducible in minutes in case of laptop crash. This could be achieved using the following

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 91


tools which increase the developer productivity as well as maintains reproducible and consistent
environments across developers.
● • Tools are: Vagrant, Docker.
5. Bug/Issue Tracking Tools: Bug and issue tracking tools are the musts for any teams dealing with code.
● • Tools are: Bugzilla , Jira, Lean testing Mantis.
6. Build Tools: Build tools are essential for any product development to automate package creation or a
deployable artifact.
● • Tools are: Ant ,Maven ,Gradle ,Rake ,MSbuild ,Build Visual , Pybuilder.
7. Configuration Management Tools: Configuration management tools play an important role in every
application and infrastructure deployment. It helps you manage the state of servers and application and
automated every configuration in an independent way.
● • Tools are: Chef ,Ansible ,Puppet ,Ansible.
8. Continuous Integration Tools: Continuous Integrations is the essential part of SDLC. This capability
gives continuous feedback on code integrations for the stakeholders and developers. This helps in
solving the issues faster and decreases the time in software release cycles.
● • Tools are: Jenkins, Bamboo, Travis , Team_City, Hudson ,Codes Ship ,Circle CI, Cruise Control ,
Shippable .
9. Continuous Delivery Tools: Go, Chef Delivery.
10. Repositories: Any code/binary that has to be deployed into production should be stored and versioned
in a central location. For this, we can make use of dedicated repositories which are specifically made for
this purpose.
● • Tools are: Nexus , Artifactory , Archiva , Package Drone .
11.Tools: For any production environment, logging and monitoring application for infrastructure
components is must to avoid system failures and applications downtime. When it comes to monitoring,
we have app based and infra based monitoring solutions.
● • Tools are: ELK stack ,Sensu ,Nagios, New Relic, Data Dog ,App Dynamics ,Graylog, Zabbix,
Riemann , Splunk , Sumologic.
12. Test Automation/Performance Testing Tools: Another important pillar in CI/CD pipeline is test
automation tools.
● • Tools are: Selenium ,UFT ,Appium , Jmeter , Load runner.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 92


9.1. Create Git (similar tool) account and configure repository
Steps to publish Git artifacts
A developer should follow these five steps to publish GitHub Actions artifacts for download:
● Perform Git Actions build steps
● Create a temporary folder in the container being used
● Copy all artifacts of interest into that temporary folder
● Use GitHub’s upload-artifact action
1.Provide a meaningful name for the artifact download link
2.Specify the path to the folder containing your GitHub Action artifacts
1. Run the GitHub Actions workflow and find the published artifacts on the
workflow’s build page
2. The easiest way to demonstrate how GitHub’s artifact upload action works is to
add a step to a simple workflow that creates a temporary directory. Then, use the
touch and echo commands to create a few simple files. Once a developer completes
this action, the files will publish as artifacts.

Published artifacts in GitHub


If a developer isn’t familiar with the echo and output switch, the following command
will create a file on the local filesystem named alpha.html with the text ‘alpha’
contained within it:

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 93


Workflow artifact downloads
 When this build runs, the status page of the workflow will include a link to
download a file named assets-for-download.
 zip, which will contain the three files named alpha.html, bravo.html and charlie.html.
 This proves that the script works and makes the GitHub Action artifacts
available for download.

Learn version control and configuration management with GIT:

Step 1:On your computer, you need to install Git first. The process will depend on your
operating system: please follow the instructions below by clicking the relevant button.

What is a repository?

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 94


You can think of a repository (aka a repo) as a “main folder”, everything associated
with a specific project should be kept in a repo for that project. Repos can have
folders within them, or just be separate files.

2. Create your own repository and project folder structure


To make a repository, go to Repositories/New repository - choose a concise and
informative name that has no spaces or funky
characters in it.

Step 3:Let’s create a new private repository. You can call it whatever you like if the
name is available.

Step 4:Click on Initialise repo with a README.md file. It’s common practice
for each repository to have a README.md file,

Step 5:We will also create a .gitignore file. This file lets Git know what kind of files
should not be included in the repository.

Once you are ready, click on Create repository.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 95


Here is how the repository should look:

You can directly edit your README.md file on Github by clicking on the file and then
selecting Edit this file.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 96


Configuration management with GIT:
Using GIT for Configuration Management

Step 1:Initialization on a new deployment


Step 2: Updating any configuration, including the default configuration:
Step 3: Resolving Git merge conflicts

Step 4: Identifying the occurrence of a merge conflict:

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 97


Step5:Examining Conflicts
Step 6: Examining differences between your current version and the previous upstream version
 The previous "upstream" version on the ardana branch.

 Your current version on the site branch.


He new "upstream" version on the ardana branch.
Step 7: Using stage markers to view clean versions of files (without conflict markers)
Step 8: Resolving the conflict

There are two approaches to resolving the conflict:

1. Edit the merged file containing the conflict markers, keeping the change you want to
preserve and removing the conflict markers and any changes you want to discard.

2. Take the new upstream version of the file and re-apply any changes you would like to keep
from your current version.

Step 9: Resolving the conflict - editing the file containing the conflict markers

Step 10: Resolving the conflict - re-applying your changes to new upstream version

Step 11: Completing the merge procedure

Step 12: Recovering from Errors

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 98


WEEK 10
Code quality and code security
Containerization

1. Install and configure Jenkins


2. Create a container image for Hello world project
3. Setup build for container image using Jenkins (Hello world application)

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 99


Code Quality
 Quality code is often defined as code that functions as intended for end-users without any
deficiencies.
 Writing a quality code involves a number of best practices during development. By following
standard conventions, reducing complexity, improving old code whenever new code is added,
and more, developers can build a higher-quality, more secure product.
 Code quality is measured in terms of common factors like maintainability, testability, readability,
security, and more.
 Some automated tools can also analyze source code and provide a code quality score based on a
number of metrics that measure complexity and functionality.
Code Security
 Security is defined as being free from danger, or feeling safe.
 Developers should focus on how to write the most secure code possible in their language of choice.
 The best way to produce the most secure code is to use an environment that suggests secure patterns
and reinforces security best practices through notifications in the environment.
 Secure coding is the practice of developing computer software in such a way that guards against the
accidental introduction of security vulnerabilities.
 Defects, bugs and logic flaws are consistently the primary cause of commonly exploited software
vulnerabilities.
 In modern software development, code security analysis is a crucial part of the “prevention is-better-
than-cure” paradigm. Code security auditing improves code quality.
 Code quality and code security aren’t the same, but they’re closely related. And in the current cyber
threat environment, developers should care about both.

Threats to Code Security


• Trusting third-party code
• Hard-coding backdoor accounts
• Unverified SQL injections
• Remote file inclusions
• Insecure data handling

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 100


• Failing to encrypt data.
• Ignoring layer 8(humans that use software)
• Review user actions
Importance of Code Quality
A quality code is one that is clear, simple, well tested, bug-free, refactored, documented, and performant.
Importance of code quality can be stated in 5 points
1. Making software robust
The software can cope with errors during execution in spite of unusual conditions. High quality software
has clear and understandable error messages for end users.
2. Increasing readability and ease of editing
Good quality of code makes sure that codes are written in such a way that makes them highly readable and
are easy to implement changes. Communication of code is more straightforward and hence also promotes
inter-team learning.
3. Making program sustainable Software is said to be sustainable when it can survive over time with
minimal changes. An average software life is accounted to be around six years, but poor software quality
does not last even half of this time duration.
4. Promotes easy transferability Code quality practices make the translation of software across platforms
straightforward. With numerous platforms for software to work on, it is essential to have direct
transferability with minimal changes required.
5. Decreasing technical debt With poor quality, the software is set to fail early, when significant number of
changes are brought into the program repeatedly and hence increasing the technical debt. The extra
development work is time and capital consuming, which a high-quality code avoids.

Issues caused by poor code

‘Bad’ code primarily has the following attributes:


a. It is not readable – if a new person joins the team, it takes them an abnormally long time to be productive
– fix bugs, add features, and so on. This aspect of ‘bad’ code can be due to several reasons, here are some
of them:
1. Badly organized code and poorly structured or very large control flows.
2. Carelessly named classes that do not give a clue to the reader about the intent of the programmer.
3. Architectural and design issues such as modules with too many in-coming and/or outgoing
dependencies, tightly coupled components, and so on

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 101


4. Poor attention to detail on issues of scalability, security, etc. – again an architectural issue.
b. It is not testable –By looking at the code, one can detect poor testability.
Project management and executive management members miss the important non functional ability of a
system. The simple activity of measuring the time spent on testing/debugging vs the time spent on
development, as the project progresses tells whether the code is testable or not of readability and testability.
As the
c. It is hard to extend – because of the combined effects of lack because of the combine
effects of lack of readability and testability you find that even trivial features are taking a long
time to deliver, then you project progresses and you find that even trivial features are taking
along time to deliver, then you you find that even trivial features are taking a long time to
deliver, then you have a problem of extensibility.

1. Install and configure Jenkins


Step 1: Setup wizard
On opening the Windows Installer, an Installation Setup Wizard appears, Click
Next on the Setup Wizard to start your installation.

Step 2: Select destination folder


Select the destination folder to store your Jenkins Installation and click Next to
continue.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 102


Step 3: Service logon credentials
When Installing Jenkins, it is recommended to install and run Jenkins as an independent
windows service using a local or domain user as it is much safer than running
Jenkins using LocalSystem(Windows equivalent of root) which will grant Jenkins
full access to your machine and services.
To run Jenkins service using a local or domain user, specify the domain user name and
password with which you want to run Jenkins, click on Test Credentials to test your
domain credentials and click on Next.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 103


If you get Invalid Logon Error pop-up while trying to test your credentials, follow
the steps explained here to resolve it.

Step 4: Port selection


Specify the port on which Jenkins will be running, Test Port button to validate
whether the specified port if free on your machine or not. Consequently, if the
port is free, it will show a green tick mark as shown below, then click on Next.

Step 5: Select Java home directory

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 104


The installation process checks for Java on your machine and prefills the dialog
with the Java home directory. If the needed Java version is not installed on your
machine, you will be prompted to install it.

Once your Java home directory has been selected, click on Next to continue.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 105


Step 6: Custom setup
Select other services that need to be installed with Jenkins and click on Next.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 106


Step 7: Install Jenkins
Click on the Install button to start the installation of Jenkins.

Additionally, clicking on the Install button will show the progress bar of installation,
as shown below:

Step 8: Finish Jenkins installation


Once the installation completes, click on Finish to complete the installation.

Jenkins will be installed as a Windows Service. You can validate this by

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 107


browsing the services section, as shown below:

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 108


See the upgrade steps when you upgrade to a new release.

Post-installation setup wizard


After downloading, installing and running Jenkins, the post-installation setup wizard begins.
This setup wizard takes you through a few quick "one-off" steps to unlock Jenkins,
customize it with plugins and create the first administrator user through which you can
continue accessing Jenkins.
Unlocking Jenkins
When you first access a new Jenkins instance, you are asked to unlock it using an
automatically-generated password.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 109


Step1
Browse to http://localhost:8080 (or whichever port you configured for Jenkins when installing
it) and wait until the Unlock Jenkins page appears.

Step
2 The initial Administrator password should be found under the Jenkins
installation path (set at Step 2 in Jenkins Installation).

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 110


For default installation location to C:\Program Files\Jenkins, a
file called initialAdminPassword can be found under C:\Program Files\
Jenkins\secrets.
However, If a custom path for Jenkins installation was selected, then you should
check that location for initialAdminPassword file.

Step 3
Open the highlighted file and copy the content of the initialAdminPassword file.

Step 4

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 111


On the Unlock Jenkins page, paste this password into the Administrator password
field and click Continue. Notes:
● You can also access Jenkins logs in the jenkins.err.log file in your Jenkins directory
specified during the installation.
● The Jenkins log file is another location (in the Jenkins home directory) where the
initial password can also be obtained.

This password must be entered in the setup wizard on new Jenkins


installations before you can access Jenkins’s main UI. This password also serves as the
default administrator account’s password (with username "admin") if you happen to skip
the subsequent user-creation step in the setup wizard.
Customizing Jenkins with plugins
After unlocking Jenkins, the Customize Jenkins page appears. Here you can install
any number of useful plugins as part of your initial setup.
Click one of the two options shown:
● Install suggested plugins - to install the recommended set of plugins, which
are based on most common use cases.
● Select plugins to install - to choose which set of plugins to initially install.
When you first access the plugin selection page, the suggested plugins are
selected by default.

If you are not sure what plugins you need, choose Install suggested plugins. You
can install (or remove) additional Jenkins plugins at a later point in time via the
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 112
Manage Jenkins > Manage Plugins page in Jenkins.
The setup wizard shows the progression of Jenkins being configured and your chosen
set of Jenkins plugins being installed. This process may take a few minutes.
Creating the first administrator user
Finally, after customizing Jenkins with plugins, Jenkins asks you to create your first
administrator user.
1. When the Create First Admin User page appears, specify the details for
your administrator user in the respective fields and click Save and Finish.
2. When the Jenkins is ready page appears, click Start using
Jenkins. Notes:

o This page may indicate Jenkins is almost ready! instead and if


so, click Restart.
o If the page does not automatically refresh after a minute, use your web
browser to refresh the page manually.
3. If required, log in to Jenkins with the credentials of the user you just created
and you are ready to start using Jenkins!
Troubleshooting Windows installation
Invalid service logon credentials

When installing a service to run under a domain user account, the account must have
the right to logon as a service. This logon permission applies strictly to the local

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 113


computer and must be granted in the Local Security Policy.

Perform the following steps below to edit the Local Security Policy of the computer
you want to define the ‘logon as a service’ permission:

1. Logon to the computer with administrative privileges.


2. Open the Administrative Tools and open the Local Security Policy
3. Expand Local Policy and click on User Rights Assignment
4. In the right pane, right-click Log on as a service and select properties.

5. Click on the Add User or Group… button to add the new user.
6. In the Select Users or Groups dialogue, find the user you wish to enter and click OK
7. Click OK in the Log on as a service Properties to save
changes. After completing the steps above, try logging in again with
the added user.
10.2 Create a container image for Hello world project
Create a container image for Hello world project And Setup build for container
image using Jenkins (Hello world application)
How to Create a New Build Job in Jenkins

The freestyle build job is a highly flexible and easy-to-use option. You can use it for
any type of project; it is easy to set up, and many of its options appear in other build
jobs. Below is a step by step process to create job in Jenkin.
Step 1) Login to Jenkins
To create a Jenkins freestyle job, log on to your Jenkins dashboard by visiting your
Jenkins installation path. Usually, it will be hosted on localhost at http://localhost:8080
If you have installed Jenkins in another path, use the appropriate URL to access your
dashboard as shown in the below Jenkins job creation example.
Step 2) Create New Item
Click on “New Item” at the top left-hand side of your dashboard.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 114


Step 3) Enter Item details
In the next screen,

1. Enter the name of the item you want to create. We shall use the “Hello world”
for this demo.
2. Select Freestyle project
3. Click Okay

Step 4) Enter Project details

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 115


Enter the details of the project you want to test.

Step 5) Enter repository URL

Under Source Code Management, Enter your repository URL. We have a test
repository located at https://github.com/kriru/firstJava.git

It is also possible for you to use a local repository.


If your GitHub repository is private, Jenkins will first validate your login credentials
with GitHub and only then pull the source code from your GitHub repository.
Step 6) Tweak the settings
Now that you have provided all the details, it’s time to build the code. Tweak the
settings under the build section to build the code at the time you want. You can even
schedule the build to happen periodically, at set times.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 116


Under build,

1. Click on “Add build step”

2. Click on “Execute Windows batch command” and add the commands you want
to execute during the build process.

Here, I have added the java commands to compile the java


code. I have added the following windows commands:

javac HelloWorld.java
java HelloWorld

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 117


Step 7) Save the project
When you have entered all the data,
1. Click Apply
2. Save the project.
Step 8) Build Source code
Now, in the main screen, Click the Build Now button on the left-hand side to build
the source code.

Step 9) Check the status


After clicking on Build now, you can see the status of the build you run under
Build History.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 118


Step 10) See the console output
Click on the build number and then Click on console output to see the status of the
build you run. It should show you a success message, provided you have followed the
setup properly as shown in the below Jenkins create new job example.

In sum, we have executed a HelloWorld program hosted on GitHub. Jenkin pulls the code from the
remote repository and builds continuously at a frequency you define.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 119


WEEK11
Testing
1. Prepare Test plan for the user stories using JIRA
2. Prepare RTM for the user stories created using JIRA.
Create test cases for the user stories created.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 120


Principles of Testing; Need of testing; stages; Testing process and activities;
classification;
Software testing can be stated as the process of verifying and validating whether a software or
application is bug-free, meets the technical requirements as guided by its design and development, and
meets the user requirements effectively and efficiently by handling all the exceptional and boundary
cases.
The process of software testing aims not only at finding faults in the existing software but also at
finding measures to improve the software in terms of efficiency, accuracy, and usability. It mainly
aims at measuring the specification, functionality, and performance of a software program or
application.
Software testing can be divided into two steps:
1. Verification: it refers to the set of tasks that ensure that the software correctly implements a
specific function.
2. Validation: it refers to a different set of tasks that ensure that the software that has been built is
traceable to customer requirements.
Verification: “Are we building the product right?”
Validation: “Are we building the right product?”
Principles of Testing:
1) Testing shows the presence of defects: The goal of software testing is to make the
software fail. Software testing reduces the presence of defects. Testing can reduce the
number of defects but not remove all defects.
2) Exhaustive testing is not possible: It is the process of testing the functionality of the
software in all possible inputs (valid or invalid) and pre-conditions is known as exhaustive
testing
3) Early Testing: To find the defect in the software, early test activity shall be started. The
defect detected in the early phases of SDLC will be very less expensive. For better
performance of software, software testing will start at the initial phase
4) Defect clustering: In a project, a small number of modules can contain most of the defects.
Pareto Principle to software testing state that 80% of software defect comes from 20% of
modules.
5) Pesticide paradox: Repeating the same test cases, again and again, will not find new bugs.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 121


So it is necessary to review the test cases and add or update test cases to find new bugs.
6) Testing is context-dependent: The testing approach depends on the context of the
software developed. Different types of software need to perform different types of testing.
For example, The testing of the e-commerce site is different from the testing of the Android
application.
7) Absence of errors fallacy: If a built software is 99% bug-free but it does not follow the
user requirement then it is unusable. It is not only necessary that software is 99% bug-free
but it is also mandatory to fulfill all the customer requirements.
Need of Testing :
Software testing is the process of evaluating and verifying that a software product or application
does what it is supposed to do. The benefits of testing include preventing bugs, reducing
development costs and improving performance.
Stages of Testing:
• Software Testing Life Cycle (STLC) is a sequence of different activities performed during the
software testing process.
• The STLC involves strategizing, planning, executing and completing test cycles.
• Each STLC phase is useful in its own way to achieve high-quality software releases.
Characteristics of STLC:
• STLC is a fundamental part of Software Development Life Cycle (SDLC) but STLC consists of
only the testing phases.
• STLC starts as soon as requirements are defined or software requirement document is shared by
stakeholders.
• STLC yields a step-by-step process to ensure quality software.
Phases of STLC:
• Requirement Analysis: Requirement Analysis is the first step of Software Testing Life Cycle
(STLC). In this phase quality assurance team understands the requirements like what is to be
tested. If anything is missing or not understandable then quality assurance team meets with the
stakeholders to better understand the detail knowledge of requirement.
• Test Planning: Test Planning is most efficient phase of software testing life cycle where all testing
plans are defined. In this phase manager of the testing team calculates estimated effort and cost for
the testing work. This phase gets started once the requirement gathering phase is completed.
• Test Case Development: The test case development phase gets started once the test planning
phase is completed. In this phase testing team note down the detailed test cases. Testing team also

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 122


prepare the required test data for the testing. When the test cases are prepared then they are
reviewed by quality assurance team.
• Test Environment Setup: Test environment setup is the vital part of the STLC. Basically test
environment decides the conditions on which software is tested. This is independent activity and
can be started along with test case development. In this process the testing team is not involved.
Either the developer or the customer creates the testing environment.
• Test Execution: After the test case development and test environment setup ,test execution phase
gets started. In this phase testing team start executing test cases based on prepared test cases in the
earlier step.
• Test Closure: This is the last stage of STLC in which the process of testing is analyzed.
Testing activities
The activities of testing can be divided into the following basic steps:
1. Planning and Control
2. Analysis and Design
3. Implementation and Execution
4. Evaluating exit criteria and Reporting
5. Test Closure activities

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 123


1. Prepare Test plan for the user stories using JIRA
Zephyr for Jira Project
Zephyr for Jira facilitates test management capabilities for any Jira project.
Using Zephyr, tests (test cases) can be created inside Jira, and executed whenever required, or as part of a
test cycle. with some customization (using appropriate gadgets), detailed test metrics can be viewed and
tracked.

Features of Zephyr for Jira Cloud

• Create, view, edit, clone, and execute tests (test cases).


• Testing directly inside/through Jira.
• Link test cases to user stories, tasks, requirements, bugs, etc.
• Logical grouping of test cases, with proper folder structure within the test cycles. • Plan
test execution cycles, like system tests, etc.
• Link Sprint to folders and test cycles to have increased traceability.
• Export test execution data to the CSV file.
• Configure and track Quality metrics. Streamlined tracking capabilities. •
Inline editing capabilities.
• High flexibility.
• Real-time reporting.

Installation Procedure
Note: Zephyr for Jira only works with Jira 5. x or higher.
Search Zephyr Jira Add-on in Atlassian Marketplace:
Step 1:Click the ‘Apps’ dropdown menu and select ‘explore more apps’

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 124


Step 2:Enter ‘Zephyr for JIRA’ in the ‘Search for Marketplace’ box and click on ‘zephyr scale test
management for JIRA’ from search results.

Step 3:Select ‘Zephyr for JIRA – Test Management’, from the search results. Click on the ‘Buy Now’ or
‘Free Trial’ button.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 125


Step 4:After go to JIRA software homepage. Here we can find the zephyr scale option in left side panel
of the JIRA software.

Step 5:Then click on the zephyr scale option, so click on project settings page ,web page will be
open for setting the grant permission to a particular user and project for writing test case, test
cycle and test plan.

Step 6:Here we have to enable zephyr scale for JIRA option. Select the ON label. Add the permission

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 126


for the user to create test case, test cycle, test plan and managing folder.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 127


GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 128
2. Prepare RTM for the user stories created using JIRA.
Create test cases for the user stories created.
Introduction RTM Features Steps to Follow to create RTM Different Types of RTM Conclusion

1. Introduction:
▪ Requirements Traceability Matrix is generally known as RTM.
▪ The main aim of having RTM is to ensure that all requirements have been tested by executing the test
cases
▪ Every user-story has requirements and every requirement is covered by the test cases and in turn it is
linked with the user-story
2 RTM provides:
• Built-in requirements management
• Detailed Test Case creation and maintenance mechanism
• Reusable Test Plan templates
• Easy Test Execution
• Basic automated testing support

3 Steps to be followed
• Create a Project on Jira, for example “Student management project”.
• Create the User Stories in the project according to the given requirements.
• Now go to the “Setting”. In “Find new app” section, search for Zephyr squad for test management system
and install it.
• We need to enable Zephyr to start managing the test cases. Provide all the required permissions and save
it.
• Click The zephyr Scale tab which is on left side
• In the “Tests” section, create a folder to maintain the test cases and fill the details.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 129


Create all the test cases and assign the user story to the test case under traceability tab for all the test
cases accordingly


To generate the reports, select the “reports” and then click on the Traceability under that we can click
to see Traceability matrix

4. Different types of RTM

∙ Forward Traceability: It shows the mapping between Requirements to the Test Cases. It helps us to
ensure that requirements are tested thoroughly.
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 130
Backward Traceability: It shows the mapping between Test Cases to the Requirements. It helps us to
ensure that only provided requirements are implemented.

5. Conclusion

• Quality of software testing relies largely on a tool we use to manage it.

• RTM gives the team a possibility to seamlessly implement it into your software development
process.
• Create reusable Test Plans

• Prevent bugs

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 131


WEEK 12
Software Measurement and Metrics
1. Use JIRA or similar tool to capture agile metrics
2. Use SonarQube to capture code quality metrics

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 132


Use JIRA tool or similar tool to capture Agile Metrics.
Introduction:
• Agile metrics are standards that help a software team in monitoring how productive a team is across
the different phases of the SDLC.
• Agile metrics are an essential component of the development process. For companies or teams
that work on the agile framework, agile metrics help in assessing software quality.
• By measuring how productive a team is, agile metrics help keep the team performance in check.
If there are any loopholes, they expose them at the initial stages.
• Since the data and its usage are measurable.
• Agile metrics measure different aspects of project development. Here are some agile metrics
important for your project.Agile metrics are
1.Velocity.
2.Sprint Burndown Report.
3.Epic and Release Burndown.
4.Control chart.
5.Cumulative Fow diagram.

So let us go with one example from Exercise :


Here , we will create a sample project for capturing Agile Metrics
STEP 1: To install and configure jira tool.
Step 1 :Launch Chrome Browser
Step 2 :Maximize the browser
Step 3:Open URL:start.attlassian.com
Step 4:Click JIRA Software, continue with google
Step 5:Enter Site Name, click on Agree

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 133


STEP 2:To create a project in Jira and To add users in Jira.
Step 1 :Add Project Name”Multi Feature call tracking software” & click on create Project.

Step 2:Add email address & click on Conti

Step 2: Following Images illustrates about JIRA home page

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 134


Step 3:Click on Projects->Create project->Select Scrum

Step 4: Click on use templets-> click on select a team managed projects.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 135


Step 5: Add project details then click on next.
Step 6:Click on go to projects

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 136


STEP 3: To create Backlog-EPIC and To create stories in jira
Step 1:Go to Backlog on create , Issue type Epic.(Feature Call Tracking), click on create

Step 2:Go to create, Issue type as Story, (location tracking), click on create.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 137


Step 3:Go to create, Issue type as Story(keyword tracking), click on create

STEP 4: To create sprint in jira and Adding user stories to Sprint and staring the Sprint.
Step 1:Go to Backlog.Click on create Sprint(Drag and drop the stories we have created in Epic)

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 138


Step 2: Click on story1-> go to details-> assign the task to developers.& close the window.

Step 3: Repeat the task for other stories.

Step 4: Click on Create issue Select task, & provide task description & create the task.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 139


Step 5: Click on start sprint->select duration as 2 weeks-> click on start.

Step 6:Go to Board. Swap the stories to change the status of the stories as below, from to do issue
to in progress status, in progress to done.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 140


Step 7: Double click on the story, Add description(develop location feature along with the area
code) and click on save button and close the window.

STEP 4:To capture the agile metrics in jira


Step 1: Click on Reports, here we will see all types of Agile Metrics reports.
Step 2: Click on each reports to understand the metrics in detail.
GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 141
Step 2: Click on each reports to understand the metrics in detail.
Example is illustrated in below image.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 142


GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 143
2. Use SonarQube to capture code quality metrics

 What is Sonar Qube ?

SonarQube is an open-source platform developed by Sonar Source for continuous


inspection of code quality. Sonar does static code analysis, which provides a detailed
report of bugs, code smells, vulnerabilities, code duplications.
 Features:
 Can perform automatic reviews with static code analysis for many problems
that affect code quality.
 Helps maintain quality and reliability of code projects over its life-span
using advanced quality test metrics and graphs.
 Integrates seamlessly with other tools like Jenkins, Atlassian, MSBuild, etc,
which helps productive workflow.
 Supports most popular programming languages like Java, Python, JavaScript,
etc (along with framework support).

 ADVANTAGES FOR SONARQUBE TOOL

1. Architecture and Design

2. Unit tests

3. Duplicated code

4. Potential bugs

5. Complex code

6. Coding standards

7. Comments

 SonarQube For Metrics

 Complexity.
 Duplications.
 Issues.
 Maintainability.

 Reliability.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 144


 Security.
 Size.
 Tests.
 How to Use SonarQube Tool For Code Quality:
Step 1: Download and Unzip SonarQube
Step 2: Run the SonarQube local server
Step 3: Start a new SonarQube project
Step 4: Setup Project properties and SonarScanner
Step 5: View your analysis report on Sonar
Dashboard

 What is SonarQube and why it is used?

SonarQube (formerly Sonar) is an open-source platform developed by SonarSource for


continuous inspection of code quality to perform automatic reviews with static
analysis of code to detect bugs, code smells on 17 programming languages.

 INSTALLATION PROCESS FOR SONAR QUBE

Step 1:In the browser search download sonar qube 8.9lts


Step 2:Click download sonar qube
Step 3:Scroll down and click on the sonar qube 8.9(community edition)
Step 4:In the computer file open sonar qube application
Step 5:In the solar qube application open bin
Step 6:IN the bin application select window –x86-64,select start sonar.bat
Step 7:Open start sonar.bat copy the application in CP(command prompt)coppied
application press enter
Step 8:END

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 145


WEEK 13

Quality Control and Assurance

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 146


1. Organize Roleplay to understand the roles and responsibilities of QA and QC
team.

Roles and Responsibilities of Quality Assurance(QA)

Strategic roles and responsibilities of a Quality Assurance Manager


In addition to their day-to-day duties as quality assurance managers, they may be
asked to assume other strategic positions such as:
• Managing the overall performance of the quality department;
• Ensuring compliance with government regulations;
• Support the development of new products;
• Developing policies for the quality management system;
• Providing technical support to customers;
• Serving on committees responsible for developing and implementing strategies;
• Evaluating the effectiveness of existing programs;
• Monitoring changes in market conditions;
• Preparing reports about current trends and future plans;
• Conducting research into emerging technologies;
• Working with outside consultants; and
• Help develop marketing strategies designed to increase sales.
• Other tasks assigned by senior executives.
Typical Skills of a Quality Assurance
Manager
 The following skills may be found helpful in this position:
 Communication: The ability to communicate effectively both orally and in writing.
 Organization: A good sense of orderliness and time management.
 Problem-solving – An aptitude for analyzing situations and formulating solutions.
 Teamwork – Ability to get along well with others.
 Leadership – Leadership qualities such as initiative, self-confidence,
assertiveness, decisiveness, and diplomacy.
 Creativity – Creative thinking abilities including imagination,
originality, resourcefulness, flexibility, adaptability, and inventiveness.
 Judgment – Judgmental capabilities include discrimination, discernment,

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 147


foresight, objectivity, and sound judgment.
 Analytical Thinking – The ability to think logically and critically about
issues and solve problems.
 Inquiry – Curiosity and interest in learning new things.
 Decision-Making – Decision-making skills that involve choosing alternatives
and evaluating their relative merits.
 Planning – Planning skills that enable one to anticipate future needs and devise
appropriate courses of action.
 Time Management – Time management skills that allow you to organize your
activities efficiently and keep on schedule.

 Self Control – Self-control refers to the capacity to delay gratification and resist
impulses.
 Adaptability – Adaptability involves the ability to adjust behaviour to suit
changing circumstances.
 Attention To Detail – Attention to detail can mean paying close attention to
small details while performing routine tasks.
 Technical Skills - Technical skills and experience related to the industry.
Roles and Responsibilities of Quality Control(QC)
Responsibilities for Quality Control Inspector
 Inspect products to ensure that they meet quality standards

 Create tests for quality control of products

 Disassemble product parts to inspect them individually

 Monitor production operations to ensure conformance to company specifications

 Direct assembly adjustments to ensure operations reflect quality standards

 Ensure products meet customer expectations based on company objectives

 Communicate the results of inspections and put forward corrective suggestions

 Write reports to document deficiencies and errors of products

 Carry out quality assessment measures of all the products ready to be shipped and
incoming raw materials

 Take a thorough look at the plans, specifications, and blueprints to understand the

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 148


product requirements

 Reject all the incoming raw materials fail to meet quality expectations and report the
issue to the concerned department at the earliest

 Resolving quality-related issues adhering to deadlines

 Providing training to the quality assurance team

 Design an efficient design protocol which can be used across all domain

 Prepare documentation of the inspection process, which includes detailed reports


and performance records

 Recommend improvement measures to the production process to ensure quality


control standards are met

 Guide the production team about the quality control issues to enhance the quality of
the product

 Monitor customer satisfaction levels

 Monitor the production phase at various levels

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 149


2.Audit the artifacts produced in previous sessions
Auditing session activity
In addition to providing information about current and completed sessions in the
Systems Manager console, Session Manager provides you with the ability to audit
session activity in your AWS account using AWS Cloud Trail.
Cloud Trail captures session API calls through the Systems Manager console, the AWS
Command Line Interface (AWS CLI), and the Systems Manager SDK. You can view
the information on the Cloud Trail console or store it in a specified Amazon Simple
Storage Service (Amazon S3) bucket. One Amazon S3 bucket is used for all Cloud
Trail logs for your account. For more information, see Logging AWS Systems Manager
API calls with AWS Cloud Trail.

Monitoring session activity using Amazon EventBridge (console)

With Event Bridge, you can set up rules to detect when changes happen to AWS
resources. You can create a rule to detect when a user in your organization starts or ends
a session, and then, for example, receive a notification through Amazon SNS about the
event.
Event Bridge support for Session Manager relies on records of API operations that
were recorded by Cloud Trail. (You can use Cloud Trail integration with Event Bridge
to respond to most AWS Systems Manager events.) Actions that take place within
a session, such as an exit command, that don't make an API call aren't detected by
Event Bridge.
The following steps outline how to initiate notifications through Amazon Simple
Notification Service (Amazon SNS) when a Session Manager API event occurs, such
as StartSession.
To monitor session activity using Amazon EventBridge (console)
1. Create an Amazon SNS topic to use for sending notifications when the Session
Manager event occurs that you want to track.

For more information, see Create a Topic in the Amazon Simple Notification Service
Developer Guide.
2. Create an EventBridge rule to invoke the Amazon SNS target for the type of Session
Manager event you want to track.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 150


For information about how to create the rule, see Creating an EventBridge Rule That
Triggers on an Event from an AWS Resource in the Amazon EventBridge User Guide.
As you follow the steps to create the rule, make the following selections:

 For Service Name, choose Systems Manager.

 For Event Type, choose AWS API Call through CloudTrail.

 Choose Specific operation(s), and then enter the Session Manager command or
commands (one at a time) you want to receive notifications for.
You can choose StartSession, ResumeSession, and TerminateSession.
(EventBridge doesn't support Get*, List*, and Describe* commands.)
 For Targets, choose SNS topic. For Topic, choose the name of the Amazon SNS topic you created in
Step 1.

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 151


References:
1 Google
2 http://www.atlassion.
3. Jenkins, free trial version / demo version
4. Atlassian free trial version / demo version
5. Sonar qube free trial version / demo version

Special Thanks to all State Level LMS Team of SOFTWARE ENGINEERING PRINCIPLES AND
PRACTICES

GOVT. POLYTECHNIC, KALABURAGI-109-SDVKPage 152

You might also like