Software Engineering Manual
Software Engineering Manual
Certificate
Date : 27 / 10 / 2020
6 Study of any any two Open source tools in DevOps for 5 Module 9 14/10/2020
Infrastructure Automation, Configuration Management,
Deployment Automation, Performance Management, Log
Management. Monitoring. (Behat , Watir, Chef,
Supergiant, SaltStack, Docker, Hudson etc)
Practical 1: Study the complete Software Development Life Cycle (SDLC) and
analyze various activities conducted as a part of various phases. For each
SDLC phase, identify the objectives and summaries outcomes.
All the requirements are gathered from stakeholders including customers, industry
experts, and programmers.
Phase 2: Planning
In this stage of the SDLC, the team determines the cost and resources required for
implementing the requirements.
It also details the risks involved and provides sub-plans for protecting those risks.
Phase 3: Design
Phase 4: Coding
Phase 5: Testing
In this stage, we test for defects and deficiencies. We fix those issues until the product
meets the original specifications.
Phase 6: Deployment
At this stage, the goal is to deploy the software to the production environment so users
can start using the product.
1) Waterfall model :
The waterfall model used when user requirements are fixed and the size of the project
is small.
Patiency level is very high because final product is available after long time.
The waterfall Model illustrates the software development process in a linear sequential
flow.
In The Waterfall approach, the whole process of software development is divided into
separate phases.
1) Requirement Analysis
2) System Design
3) Implementation
4) Testing
5) Deployment
6) Maintenance
In this Waterfall model, typically, the outcome of one phase acts as the input for the next
phase sequentially.
All possible requirements of the system to be developed are captured in this phase and
documented in a software requirement and specification document.
Design :
The requirement specifications from first phase are studied in this phase and the system
design is prepared. This system design helps in specifying hardware and system
requirements and helps in defining the overall system architecture.
Implementation :
With inputs from the system design, the system is first developed in small programs
called units, which are integrated in the next phase. Each unit is developed and tested for
its functionality, which is referred to as Unit Testing.
All the units developed in the implementation phase are integrated into a system after
testing of each unit. Post integration the entire system is tested for any faults and failures.
Deployment of system :
Once the functional and non-functional testing is done; the product is deployed in the
customer environment or released into the market.
Maintenance :
There are some issues which come up in the client environment. To fix those issues,
patches are released. Also to enhance the product some better versions are released.
Maintenance is done to deliver these changes in the customer environment.
Advantages :
Works well for smaller projects where requirements are very well understood.
Disadvantages :
Not suitable for the projects where requirements are at a moderate to high risk of
changing.
When to use:
This model is used only when the requirements are very well known ,clear and fixed.
Technology is understood.
Example:
In the olden days, Waterfall model was used to develop enterprise applications like Customer
Relationship Management (CRM) systems, Human Resource Management Systems (HRMS),
Supply Chain Management Systems, Inventory Management Systems, Point of Sales (POS)
systems for Retail chains etc.
2) Prototyping Model :
The Prototyping Model is one of the most popularly used Software Development Life
Cycle Models (SDLC models).
This model is used when the customers do not know the exact project requirements
beforehand.
In this model, a prototype of the end product is first developed, tested and refined as per
customer feedback repeatedly till a final acceptable prototype is achieved which forms
the basis for developing the final product.
This technique offers a useful method of exploring ideas and getting customer feedback for
each of them.
In this method, a developed prototype need not necessarily be a part of the ultimately
accepted prototype. Customer feedback helps in preventing unnecessary design faults and
hence, the final prototype developed is of a better quality.
2. Evolutionary Prototyping :
In this method, the prototype developed initially is incrementally refined on the basis of
customer feedback till it finally gets accepted. In comparison to Rapid Throwaway
Prototyping, it offers a better approach which saves time as well as effort. This is because
developing a prototype from scratch for every iteration of the process can sometimes be
very frustrating for the developers.
Advantages :
The customers get to see the partial product early in the life cycle. This ensures a greater
level of customer satisfaction and comfort.
Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
The developed prototype can be reused by the developer for more complicated projects in
the future.
Flexibility in design.
Disadvantages :
There may be too much variation in requirements each time the prototype is evaluated by
the customer.
Poor Documentation due to continuously changing customer requirements.
It is very difficult for the developers to accommodate all the changes demanded by the
customer.
There is uncertainty in determining the number of iterations that would be required before
the prototype is finally accepted by the customer.
After seeing an early prototype, the customers sometimes demand the actual product to be
delivered soon.
The customer might lose interest in the product if he/she is not satisfied with the initial
prototype.
When to use:
The Prototyping Model should be used when the requirements of the product are not
clearly understood or are unstable.
It can also be used if requirements are changing quickly.
It is also a very good choice to demonstrate the technical feasibility of the product.
This model can be successfully used for developing user interfaces, high technology
software-intensive systems, and systems with complex algorithms and interfaces
The Rapid Application Development model is based on prototyping and iterative development
with no specific planning involved.
The critical feature of this model is the use of powerful development tools and techniques.
A software project can be implemented using this model if the project can be broken down in to
small modules wherein each module can be assigned independently to separate teams.
Development of each module involves the various basic steps as in waterfall model analyzing,
designing, coding and then testing, etc.
1. Requirements Planning :
It also consists of the entire structured plan describing the critical data, methods to obtain it
and then processing it to form final refined model.
2. User Description :
This phase includes re-examination and validation of the data collected in the first phase.
The dataset attributes are also identified and elucidated in this phase.
3. Construction :
It includes the actual use of powerful automated tools to transform process and data models
into the final working product.
All the required modifications and enhancements are too done in this phase.
4. Cutover :
All the interfaces between the independent modules developed by separate teams have to
be tested properly.
The use of powerfully automated tools and subparts makes testing easier. This is followed
by acceptance testing by the user.
Advantages :
Use of reusable components helps to reduce the cycle time of the project.
The progress and development of the project can be measured through the various stages.
It is easier to accommodate changing requirements due to the short iteration time spans.
Disadvantages :
The use of powerful and efficient tools requires highly skilled professionals.
The team leader must work closely with the developers and customers to close the project
in time.
The systems which cannot be modularized suitably cannot use this model.
It is not meant for small scale projects as for such cases, the cost of using automated tools
and techniques may exceed the entire budget of the project.
When to use :
RAD should be used when there is a need to create a system that can be modularized in
2-3 months of time.
It should be used if there’s high availability of designers for modeling and the budget is
high enough to afford their cost along with the cost of automated code generating tools.
RAD SDLC model should be chosen only if resources with high business knowledge are
available and there is a need to produce the system in a short span of time (2-3 months).
First, a simple working system implementing only a few basic features is built and then
that is delivered to the customer.
Then thereafter many successive iterations/ versions are implemented and delivered to
the customer until the desired system is released.
A, B, C are modules of Software Product that are incrementally developed and delivered.
Requirements of Software are first broken down into several modules that can be
incrementally constructed and delivered.
At any time, the plan is made just for the next increment and not for any kind of long
term plans.
Therefore, it is easier to modify the version as per the need of the customer.
Development Team first undertakes to develop core features (these do not need services
from other features) of the system.
Once the core features are fully developed, then these are refined to increase levels of
capabilities by adding new functions in Successive versions.
As each successive version of the software is constructed and delivered, now the
feedback of the Customer is to be taken and these were then incorporated in the next
version.
Each version of the software have more additional features over the previous ones.
After Requirements gathering and specification, requirements are then spitted into several
different versions starting with version-1, in each successive increment, next version is
constructed and then deployed at the customer site.
After the last version (version n), it is now deployed at the client site.
1. Staged Delivery Model : Construction of only one part of the project at a time.
Different subsystems are developed at the same time. It can decrease the calendar time
needed for the development,
i.e. TTM (Time to Market), if enough Resources are available.
1. Funding Schedule, Risk, Program Complexity, or need for early realization of benefits.
Advantages :
Error Reduction (core modules are used by the customer from the beginning of the phase
and then these are tested thoroughly)
Disadvantages :
5) Spiral Model :
Spiral model is one of the most important Software Development Life Cycle models,
which provides support for Risk Handling.
The exact number of loops of the spiral is unknown and can vary from project to
project depending upon project risks.
Each loop of the spiral is called a Phase of the software development process.
As the project manager dynamically determines the number of phases, so the project
manager has an important role to develop a product using spiral model.
The Radius of the spiral at any point represents the expenses (cost) of the project so
far, and the angular dimension represents the progress made so far in the current
phase.
Each phase of Spiral Model is divided into four quadrants as shown in the above figure.
During the second quadrant all the possible solutions are evaluated to select the best
possible solution.
Then the risks associated with that solution is identified and the risks are resolved using the
best possible strategy.
At the end of this quadrant, Prototype is built for the best possible solution.
The Spiral model is called as a Meta Model because it subsumes all the other SDLC models.
For example, a single loop spiral actually represents the Iterative Waterfall Model.
The spiral model incorporates the stepwise approach of the Classical Waterfall Model.
The spiral model uses the approach of Prototyping Model by building a prototype at the
start of each phase as a risk handling technique.
Also, the spiral model can be considered as supporting the evolutionary model – the
iterations along the spiral can be considered as evolutionary levels through which the
complete system is built.
Advantages
Risk Handling:
The projects with many unknown risks that occur as the development proceeds, in that
case, Spiral Model is the best development model to follow due to the risk analysis and risk
handling at every phase.
Good for large projects: It is recommended to use the Spiral Model in large and complex
projects.
Customer Satisfaction:
Customer can see the development of the product at the early phase of the software
development and thus, they habituated with the system by using it before completion of the
total product.
Disadvantages :
Complex: The Spiral Model is much more complex than other SDLC models.
The successful completion of the project is very much dependent on Risk Analysis.
Without very highly experienced expertise, it is going to be a failure to develop a project
using this model.
TOPIC : E – Placement
1) Purpose :
collecting the details of each student and maintain the ascertains is very hard work in offline
placement. This application help them and make work smooth and effective. The System can
used for college to manage the students’ information with regards to placement details. It
helps in searching for a students who is eligible for recruitment criteria. Then whole
recruitment process done using this online platform.
Scope :
The scope of the project is to maintain details and keep records of students updated. As well
as placement schedule of companies is also provided. Based on this the recruitment process
goes on and placement take place.
Overview:
offline placement process is very lengthy and also requires so much time to collect all
information of candidate and to analyze it. Our Application will help recruiters to find an
appropriate candidate in less time. It will be also very helpful for freshers and other
candidates to find their appropriate companies by analyzing company’s details and criteria.
Student can give aptitude test for placement. By this App recruiters can easily get details of
candidates. They can sort out the list of candidates and can find proper candidates they want.
2) General section:
Problem statement :
Now a day’s campus placement are conducted in all colleges. Various software and other
sector companies are conducting campus selection for selecting merit candidates .When
campus selection are conducted the students should provide their curriculum details to the
concern officer for attending the campus interviews. This process is maintained manually ,
like maintenance of their resumes in papers. Also student face problems to find job
according to their interest and capabilities. This can be overcome by designing software.
Introduction :
E – Placement is a total management and informative system, Which provides the up – to date
information of all the students in a particular college. E - placement helps the colleges to
overcome the difficulty in keeping records of hundreds and thousands of the students and
searching for a student eligible for recruitment criteria from the whole thing. It helps in effective
and timely utilization of the hardware and software resources.
The administrator will create the user and the user will use the account created by administrator.
When the user enters into his respective page he can update his details , and the details are to be
approved by the administrator. All the user have some common services like changing
password, updating details, searching for details , checking the details , mailing to administrator
and reading the material uploaded by the administrator if the user is a student.
It takes so much time for a placement officer to collect students’ details and approving
the details provided by them.
Poor communication between students and placement officer, so here intimating about
new placements is a hard task.
Students may not know about company details. Here also poor communication provides a
problem.
Advantages :
Placement officer can easily collect students’ details , and approve that details provided
by them.
As it is online application , communication with placement officer is easy to students and
recruiters, so here intimating about new placements very easy task.
Here recruiters can also search for the details provided by students on the basis of their
percentage.
Placement officer can send required materials used for placement preparation to students.
Wirth this option preparation for placements becomes easy.
As whole placement take place online , students and company hr is able to attend
placement process from home also.
Proposed system :
User registration : Administrator permit students for registration , companies can also do
registration.
Inserting the details : Students and companies have to insert their details.
Updating the details : As time passes students and companies have to update their details.
Event Details : Administrator update the schedules of placement.
Recruitment Process : Every company arrange aptitude tests for students.
Interview : Interview takes place for the students who pass the aptitude test.
3) Functional Requirements :
2. User Log in :
A registered user can login to the system by using his User ID and Password
provided after registration. After Successful login Home page is shown. In home
page user can see details and requirements of different companies.
3. Searching :
User can search company by ,
Technology
Location
Salary
By company’s review
6. Interview details :
7. Updating details :
After some time users have to update their details.
4) Interface Requirement:
User Interface :
1. This system is used by administrator ,Students ,faculty , Company HR.
2. Student and company can login after administrator create user account.
3. Administrator upload the details of companies which students can refer .
4. Company HR upload their criteria for recruitment process.
5. Faculty can collect the details of students regarding placement.
6. Company HR provide their aptitude tests and interview schedules.
7. Students can mail Administrator.
Hardware interface :
Processor : Intel core i5
RAM : 4GB
Hard Disk: 1TB
Software interface :
Communication interface :
This website supports all types of web browsers.
User will be informed about placement process via uploading dashboard by
administrator.
Selected candidates will be informed for interview via mail by company.
5) Performance requirements :
Security: The details of the students will be kept secured by providing password
facility and while updating details after OTP validation.
6) Design Constraints :
Software must be flexible so that user can easily update their details and can
easily go through placement process.
The system must be able to manage the details of the users very efficiently.
Using this system placement process can be carry out from any where so that
this application is also useful in pandemic situations like corona.
All the users have provided their important details so that software must provide
the security of their data.
1. Security Requirements :
Every Login Time Verification by OTP.
OTP and password verification while updating details.
2. Database Requirements:
To store , maintain and access details of the thousands of students and also companies.
3. Performance Requirements:
Sorting facilities for quick access.
4. Accuracy
8) Operational scenario :
User logged in but he/she forgot their password.
User forgot to update their details.
Administrator may have entered wrong details of the company.
Student may face difficulty to understand recruitment process of particular company.
9) Preliminary Schedule :
We gave 1 month to discuss about software, cost, deadlines, risk analysis etc.
2 month for requirement gathering from user and then by analyzing that we made
SRS document and verified that from user.
2 months for Data collection like details of different companies which wanted to
involve.
3 months to Design software according to user requirements and .
2 months for implementation and testing for final product.
10%
20%
Discussion
20%
Documentation
Data collection
Designing
testing
30%
20%
11) Appendices:
This software will make easy placement process for all candidates, faculties and
interviewers. Also we can save time and from any where we can complete the placement
process.
Reference:
https://www.myamcat.com/blog/campus-placements-the-essential-steps-in-
placement-process/
https://cpt.hitbullseye.com/ABB-Placement-Papers.php
https://cpt.hitbullseye.com/Placement-Papers.php
Also take into consideration the following cost drivers with their ratings:
o Find schedule?
o Find minimum size of the team you would require to develop this system?
Solution :
For the basic procedure, we need to do calculate the basic terms as follows:
1. Project Type
Here, Project is of creating a simple database of movies of Bollywood released into theatres
after 2000. The task is to procure information from the database. Here, we have been also
told that we are prior software developers having immense experience. Hence, this one
would be “ ORGANIC PROJECT TYPE”.
2. Project Size
Here, Project size will be computed by computing all the given KDSI (Kilo-Delivered Source
Instructions)
Adding all these, we get the project size, which is 4.5 KDSI
For finding Initial Effort Estimation, we have to calculate as per the following formula
Software project a b c
Effort = a * (KDSI)^b PM
= 2.4 * (4.5^1.05)
= 11.643
The product of effort multipliers of all the 15 attributes gives the Effort Adjustment Factor
(EAF).
attributes
Required 0.75 0.88 1.00 1.15 1.40
software
reliability
Size of 0.94 1.00 1.08 1.16
application
database
Complexity 0.70 0.85 1.00 1.15 1.30 1.65
of the
product
Hardware
attributes
Run-time 1.00 1.11 1.30 1.66
performance
constraints
Memory 1.00 1.06 1.21 1.56
constraints
Volatility of 0.87 1.00 1.15 1.30
the virtual
machine
environment
Required 0.87 1.00 1.07 1.15
turnabout
time
Personnel
attributes
Analyst 1.46 1.19 1.00 0.86 0.71
capability
Applications 1.29 1.13 1.00 0.91 0.82
experience
Software 1.42 1.17 1.00 0.86 0.70
engineer
capability
Virtual 1.21 1.10 1.00 0.90
machine
experience
Programming 1.14 1.07 1.00 0.95
language
experience
Project
attributes
Application 1.24 1.10 1.00 0.91 0.82
of software
engineering
methods
Use of 1.24 1.10 1.00 0.91 0.83
software tools
Required 1.23 1.08 1.00 1.04 1.10
development
schedule
= 0.7 * 11.643
= 8.15 PM
5. Schedule
= 5.54
6. Team Size
= 8.15/5.54 Ceiling
=2
Solution:
Cyclomatic Complexity:
where,
15-14 +2(1)
Since V(G) is less than 10, the concerned program could be categorized as simple in terms
of its complexity.
TOPIC : E – Placement
1) Purpose :
collecting the details of each student and maintain the ascertains is very hard work in offline
placement. This application help them and make work smooth and effective. The System can
used for college to manage the students’ information with regards to placement details. It
helps in searching for a students who is eligible for recruitment criteria. Then whole
recruitment process done using this online platform.
Scope :
The scope of the project is to maintain details and keep records of students updated. As well
as placement schedule of companies is also provided. Based on this the recruitment process
goes on and placement take place.
Overview:
offline placement process is very lengthy and also requires so much time to collect all
information of candidate and to analyze it. Our Application will help recruiters to find an
appropriate candidate in less time. It will be also very helpful for freshers and other
candidates to find their appropriate companies by analyzing company’s details and criteria.
Student can give aptitude test for placement. By this App recruiters can easily get details of
candidates. They can sort out the list of candidates and can find proper candidates they want.
General section:
Problem statement :
Now a day’s campus placement are conducted in all colleges. Various software and other
sector companies are conducting campus selection for selecting merit candidates .When
campus selection are conducted the students should provide their curriculum details to the
concern officer for attending the campus interviews. This process is maintained manually ,
like maintenance of their resumes in papers. Also student face problems to find job
according to their interest and capabilities. This can be overcome by designing software.
Introduction :
E – Placement is a total management and informative system, Which provides the up – to date
information of all the students in a particular college. E - placement helps the colleges to
overcome the difficulty in keeping records of hundreds and thousands of the students and
searching for a student eligible for recruitment criteria from the whole thing. It helps in effective
and timely utilization of the hardware and software resources.
The administrator will create the user and the user will use the account created by administrator.
When the user enters into his respective page he can update his details , and the details are to be
approved by the administrator. All the user have some common services like changing
password, updating details, searching for details , checking the details , mailing to administrator
and reading the material uploaded by the administrator if the user is a student.
It takes so much time for a placement officer to collect students’ details and approving
the details provided by them.
Poor communication between students and placement officer, so here intimating about
new placements is a hard task.
Students may not know about company details. Here also poor communication provides a
problem.
Advantages :
Placement officer can easily collect students’ details , and approve that details provided
by them.
As it is online application , communication with placement officer is easy to students and
recruiters, so here intimating about new placements very easy task.
Here recruiters can also search for the details provided by students on the basis of their
percentage.
Placement officer can send required materials used for placement preparation to students.
Wirth this option preparation for placements becomes easy.
As whole placement take place online , students and company hr is able to attend
placement process from home also.
Proposed system :
User registration : Administrator permit students for registration , companies can also do
registration.
Inserting the details : Students and companies have to insert their details.
Updating the details : As time passes students and companies have to update their details.
Event Details : Administrator update the schedules of placement.
Recruitment Process : Every company arrange aptitude tests for students.
Interview : Interview takes place for the students who pass the aptitude test.
7) Functional Requirements :
9. User Log in :
A registered user can login to the system by using his User ID and Password
provided after registration. After Successful login Home page is shown. In home
page user can see details and requirements of different companies.
10. Searching :
User can search company by ,
Technology
Location
Salary
By company’s review
8) Interface Requirement:
User Interface :
8. This system is used by administrator ,Students ,faculty , Company HR.
9. Student and company can login after administrator create user account.
10. Administrator upload the details of companies which students can refer .
11. Company HR upload their criteria for recruitment process.
12. Faculty can collect the details of students regarding placement.
13. Company HR provide their aptitude tests and interview schedules.
14. Students can mail Administrator.
Hardware interface :
Software interface :
Communication interface :
This website supports all types of web browsers.
User will be informed about placement process via uploading dashboard by
administrator.
Selected candidates will be informed for interview via mail by company.
9) Performance requirements :
Security: The details of the students will be kept secured by providing password
facility and while updating details after OTP validation.
Software must be flexible so that user can easily update their details and can
easily go through placement process.
The system must be able to manage the details of the users very efficiently.
Using this system placement process can be carry out from any where so that
this application is also useful in pandemic situations like corona.
All the users have provided their important details so that software must provide
the security of their data.
5. Security Requirements :
Every Login Time Verification by OTP.
OTP and password verification while updating details.
6. Database Requirements:
To store , maintain and access details of the thousands of students and also companies.
7. Performance Requirements:
Sorting facilities for quick access.
8. Accuracy
10%
20%
Discussion
20%
Documentation
Data collection
Designing
testing
30%
20%
16) Appendices:
This software will make easy placement process for all candidates, faculties and
interviewers. Also we can save time and from any where we can complete the placement
process.
Reference:
https://www.myamcat.com/blog/campus-placements-the-essential-steps-in-
placement-process/
https://cpt.hitbullseye.com/ABB-Placement-Papers.php
https://cpt.hitbullseye.com/Placement-Papers.php
The Figure shows the context level of Data Flow Diagram of E – Placement system.
The external entities interacting with this system are Students, Company and Administrator.
To get online Placement Student has to register in the System then student will Authenticate him
self by User ID and Password. The system in turn verifies the user credentials using information
stored in the Students database.
In the data Flow with the label “Apply For Placement” Student will search for company and
select company to apply for placement .
In the data Flow label “Take aptitude Test” Company will organize aptitude test for students
and
The Figure 2 shows the level 1Data Flow Diagram for E –Placement
The process "Registration " has the number 1.1, which indicates that in the level 1 DFD the
concerned process is numbered 1. Other processes are numbered in a similar way.
1) Introduction :
Actors :
Actor Description
Administrator Administrator will create an account for
students .He will approve details inserted By
students.
Student Students will apply for job and will pass
through the placement process.
Company Company will hire students by taking aptitude
tests and interview.
1) REGISTRATION
2) LOGIN
3) INSERTING DETAILS :
5) APTITUDE TEST :
# TS1
again.
# TS 2
student.
# TS 3
give process."
second is shown.
round.
round.
# TS 4
2. Student
apply for
interview.
# TS 5
3. Student
update
details.
Practical 6 : Study of any any two Open source tools in DevOps for
Infrastructure Automation, Configuration Management ,Deployment
Automation, Performance Management, Log Management. Monitoring.
(Behat , Watir, Chef, Supergiant, SaltStack, Docker, Hudson etc).
Selenium:
Selenium is one of the most widely used open source Web UI (User Interface) automation
testing suite. It was originally developed by Jason Huggins in 2004 as an internal tool at
Thought Works. Selenium supports automation across different browsers, platforms and
programming languages.
Selenium can be easily deployed on platforms such as Windows, Linux, Solaris and
Macintosh. Moreover, it supports OS (Operating System) for mobile applications like iOS,
windows mobile and android.
Selenium supports a variety of programming languages through the use of drivers specific to
each language. Languages supported by Selenium include C#, Java, Perl, PHP, Python and
Ruby. Currently, Selenium Web driver is most popular with Java and C#. Selenium test
scripts can be coded in any of the supported programming languages and can be run directly
in most modern web browsers. Browsers supported by Selenium include Internet Explorer,
Mozilla Firefox, Google Chrome and Safari.
Automation Testing
Automation testing uses the specialized tools to automate the execution of manually designed
test cases without any human intervention. Automation testing tools can access the test data,
controls the execution of tests and compares the actual result against the expected result.
Consequently, generating detailed test reports of the system under test.
o Functional automation is used for automation of functional test cases. For example,
regression tests, which are repetitive in nature, are automated.
o Performance automation is used for automation of non-functional performance test cases.
For example, measuring the response time of the application under considerable (say 100
users) load.
Selenium Features:
Git:
What is Git?
Git is an open-source distributed version control system. It is designed to handle minor to
major projects with high speed and efficiency. It is developed to co-ordinate the work among
the developers. The version control allows us to track and work together with our team
members at the same workspace.
Git is foundation of many services like GitHub and GitLab, but we can use Git without using
any other Git services. Git can be used privately and publicly.
Git was created by Linus Torvalds in 2005 to develop Linux Kernel. It is also used as an
important distributed version-control tool for the DevOps.
Git is easy to learn, and has fast performance. It is superior to other SCM tools like
Subversion, CVS, Perforce, and ClearCase.
Features of Git
Open Source
Git is an open-source tool. It is released under the GPL (General Public License) license.
Scalable
Git is scalable, which means when the number of users increases, the Git can easily handle such
situations.
Distributed
One of Git's great features is that it is distributed. Distributed means that instead of switching the
project to another machine, we can create a "clone" of the entire repository. Also, instead of just
having one central repository that you send changes to, every user has their own repository that
contains the entire commit history of the project. We do not need to connect to the remote
repository; the change is just stored on our local repository. If necessary, we can push these
changes to a remote repository.
Security
Git is secure. It uses the SHA1 (Secure Hash Function) to name and identify objects within its
repository. Files and commits are checked and retrieved by its checksum at the time of checkout.
It stores its history in such a way that the ID of particular commits depends upon the complete
development history leading up to that commit. Once it is published, one cannot make changes to
its old version.
Speed
Git is very fast, so it can complete all the tasks in a while. Most of the git operations are done on
the local repository, so it provides a huge speed. Also, a centralized version control system
continually communicates with a server somewhere.
Performance tests conducted by Mozilla showed that it was extremely fast compared to other
VCSs. Fetching version history from a locally stored repository is much faster than fetching it
from the remote server. The core part of Git is written in C, which ignores runtime overheads
associated with other high-level languages.
Git was developed to work on the Linux kernel; therefore, it is capable enough to handle large
repositories effectively. From the beginning, speed and performance have been Git's primary
goals.
Benefits of Git
A version control application allows us to keep track of all the changes that we make in the files
of our project. Every time we make changes in files of an existing project, we can push those
changes to a repository. Other developers are allowed to pull your changes from the repository
and continue to work with the updates that you added to the project files.
Saves Time
Git is lightning fast technology. Each command takes only a few seconds to execute so we can
save a lot of time as compared to login to a GitHub account and find out its features.
Offline Working
One of the most important benefits of Git is that it supports offline working. If we are facing
internet connectivity issues, it will not affect our work. In Git, we can do almost everything
locally. Comparatively, other CVS like SVN is limited and prefer the connection with the central
repository.
Undo Mistakes
One additional benefit of Git is we can Undo mistakes. Sometimes the undo can be a savior
option for us. Git provides the undo option for almost everything.
Git facilitates with some exciting features such as Diff, Log, and Status, which allows us to track
changes so we can check the status, compare our files or branches.