Software Engineering Project Management Experiment
Software Engineering Project Management Experiment
Theory :
Theory:-
Version control is a system that records changes to a file or set of files over
time so
that you can recall specific versions later. For the examples in this book, you
software
will use source code as the files being version controlled, though
in reality
o this you can
with nearly any type of file on a
dcomputer.
The various types of the version control
systems are:
1. Localversion control system
2. Centralized version control system
3. Distributed version control system
Installing git:-
Before you start using Git, you have to make it available on
your computer. Even if it’s already installed, it’s probably a
good idea to update to the latest version. You can either
install it as a package or via another installer, or download
the source code and compile it yourself.
Installing on Windows
There are also a few ways to install Git on Windows. The most
official build is available for download on the Git website. Just go
to https://git- scm.com/download/win and the download will
start automatically. Note that this is a project called Git for
Windows, which is separate from Git itself; for more information
on it, go to https://gitforwindows.org.
Installing on macOS
There are several ways to install Git on macOS. The easiest is
probably to install the Xcode Command Line Tools. On
Mavericks (10.9) or above you can do this simply by trying to
run git from the Terminal the very first time.
$ git --version
If you don’t have it installed already, it will prompt you to install it.
If you want a more up to date version, you can also install it via
a binary installer. A macOS Git installer is maintained and
available for download at the Git website, at https://git-
scm.com/download/mac.
Conclusion:-
Thus, we have successfully studied version control and installed git.
Experiment No. 3
AIM:-
To perform various GIT operaons on local and remote repositories using GIT cheat-sheet.
Theory:-
Git add:
Moves changes from the working directory to the staging area. This gives you the
opportunity to prepare a snapshot before comming it to the official history.
Git branch:
This command is your general-purpose branch administraon tool. It lets
you create isolated development environments within a single repository.
Git clone:
Creates a copy of an exisng Git repository. Cloning is the most common way
for developers to obtain a working copy of a central repository.
Git commit:
Takes the staged snapshot and commits it to the project history. Combined with
git add, this defines the basic workflow for all Git users.
git config:
A convenient way to set configuraon opons for your Git installaon. You’ll
typically only need to use this immediately aer installing Git on a new
development machine.
git init:
Inializes a new Git repository. If you want to place a project under revision
control, this is the first command you need to learn.
git pull:
Pulling is the automated version of git fetch. It downloads a branch from a remote
repository, then immediately merges it into the current branch. This is the Git
equivalent of svn update.
git push:
Pushing is the opposite of fetching (with a few caveats). It lets you move a
local branch to another repository, which serves as a convenient way to
publish contribuons. This is like svn commit, but it sends a series of commits
instead of a single changeset.
git status:
Displays the state of the working directory and the staged snapshot. You’ll want
to run this in conjuncon with git add and git commit to see exactly what’s being
included in the next snapshot.
Commands
Conclusion :
We have successfully implemented Git Commands.
Experiment-4
Theory:
7)Step 7: Go on localHost:8080
T-23 114
Aim: Experiment5:ToBuildthepipelineofjobsusingMaven/Gradle/AntinJenkins,createa
pipeline script to Test and deploy an application over the tomcat server
Programming in Jenkins:
Continuous Integration is a software development practice where members of a
team integrate their work frequently, usually each person integrates at least
daily leading to multiple integrations per day. Each integration is verified by an
automated build (including test) to detect integration errors as quickly as
possible.” In simple way, Continuous integration (CI) is the practice of frequently
building and testing each change done to your code automatically.
Jenkins is a self-contained, open-source automation server which can be used to
automate all sorts of tasks related to building, testing, and delivering or
deploying software.
Our first job will execute the shell commands. The freestyle project provides enough options and
features to build the complex jobs that you will need in your
projects. Example 1
Modifying the Jenkins project to execute the script while supplying required parameters:
Kashik
Sredhar
an T-23
input argument:
Kashik
Sredhar
an T-23
Testing the program on the terminal:
script:
Aim: Experiment5:ToBuildthepipelineofjobsusingMaven/Gradle/AntinJenkins,createa
pipeline script to Test and deploy an application over the tomcat server
Programming in Jenkins:
Continuous Integration is a software development practice where members of a
team integrate their work frequently, usually each person integrates at least
daily leading to multiple integrations per day. Each integration is verified by an
automated build (including test) to detect integration errors as quickly as
possible.” In simple way, Continuous integration (CI) is the practice of frequently
building and testing each change done to your code automatically.
Jenkins is a self-contained, open-source automation server which can be used to
automate all sorts of tasks related to building, testing, and delivering or
deploying software.
Our first job will execute the shell commands. The freestyle project provides enough options and
features to build the complex jobs that you will need in your
projects. Example 1
Modifying the Jenkins project to execute the script while supplying required parameters:
Kashik
Sredhar
an T-23
input argument:
Kashik
Sredhar
an T-23
Testing the program on the terminal:
script:
AIM: To Create Scrum Board for Scrum Master using JIRA Tool.
Theory:
To create a Scrum Board for a Scrum Master using the JIRA tool,
you need to follow these steps:
Create a Scrum Project in JIRA:
Log in to your JIRA account and select a template from the library,
choosing the Scrum template.
Once the project is created, you will land on the empty backlog,
also known as the product backlog, containing a list of potential
work items for the project
Theory:
Project Scheduling:
Gantt chart:
A Gantt chart, commonly used in project management, is one of the most
popular and useful ways of showing activities (tasks or events) displayed
against time. On the left of the chart is a list of the activities and along the top
is a suitable time scale. Each activity is represented by a bar; the position and
length of the bar reflects the start date, duration and end date of the activity.
Theory:
Docker:
Containerization:
Docker utilizes containerization technology to create isolated environments
for applications. Containers are lightweight, standalone, and executable
packages that include everything needed to run an application, such as
code, runtime, system tools, libraries, and settings.
This isolation ensures that applications run consistently across different
environments, from development to production.
Docker Engine:
At the core of Docker is the Docker Engine, which is responsible for
building, running, and managing containers. It consists of the Docker
daemon, which manages containers, images, networks, and volumes, and
the Docker client, which allows users to interact with the daemon through
the Docker API.
Docker Images:
Docker images are read-only templates used to create containers.
They contain the application code, runtime, libraries, dependencies,
and other files needed to run the application. Images are built using
Dockerfiles, which are text files that define the steps needed to create
the image.
Docker Containers:
Containers are instances of Docker images that are running as isolated
processes on a host machine. They are lightweight, portable, and can be
easily started, stopped, moved, and deleted. Containers provide a
consistent environment for applications to run, regardless of the
underlying infrastructure.
Benefits of Docker:
Portabilit
y: Docker containers can run on any platform that supports Docker, making it
easy
to deploy applications across different environments.
Kashik
Sredhar
E foT-23
Can f ni ct iaei n ceyr s: share the host OS kernel, reducing
overhead and improving resource utilization.
Kashik
Sredhar
an T-23
Isolation: Containers provide a level of isolation that helps prevent
conflicts between applications and dependencies.
Scalability: Docker enables easy scaling of applications by quickly
spinning up additional containers.
Consistency: Docker ensures that applications run the same way in
development, testing, and production environments.
Outputs:
Docker PS command:
Exp 10
Aim : To learn Dockerfile instructions, build an image for a sample web
application using DOCKERFILE.
Theory:
Kashik
Sredhar
an T-23
The RUN instruction executes commands within the container during the
image-building process. In the context of the Node.js web application, this
instruction is used to install application dependencies with the npm
package manager. The result is a containerized environment with all the
required dependencies for the application to run.
EXPOSE Instruction:
While the EXPOSE instruction does not publish ports, it documents the ports on
which the application inside the container will listen. In the example, port 8080 is
specified, offering clarity to users on the expected port for accessing the web
application.
CMD Instruction:
The CMD instruction defines the default command to execute when the container
starts. In this instance, it is configured to run the npm start command, assuming
the presence of a corresponding script in the package.json file. This ensures the
seamless initiation of the web application within the container.
Kashik
Sredhar
an T-23
Kashik
Sredhar
an T-23
114
Conclusion:
This theoretical exploration elucidates the core Dockerfile instructions essential
for crafting Docker images tailored for web applications. By understanding the
purpose and functionality of each instruction, users gain insights into optimizing
Dockerfiles to meet the specific requirements of their applications, fostering
efficient containerization practices.
G Learning
Great
CERTIFICATE OF COMPLETION
Presented to
Keval Gosrani
For successfully completing a free online course
Project Management
Pro,idedby
Great Learning Academy
(O.i'<ri2024)
GGreat
Leairning
CERTIFICATE OF COMPLETION
Presented to
Keval Gosrani
For successfully completing a free online course
Agiile for Beginners
Provid9d t>y
CERTIFICATE OF COMPLETION
Presented to
Keval Gosrani
For successfully completing a free online course
Waterfall Model
Provided t>y
Gr,eat Learning, Academy
(On Aa<l 202◄)