Mid Term Lab Manual SEMP
Mid Term Lab Manual SEMP
LAB MANUAL
Software Engineering and Project Management Lab
Name: Uday Bharadwa
Class: TE AIML/DE
Sem: VI
Roll No:146
Batch: C1
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
List of Experiments
Exp No. 1: Prepare detailed statement of problem and Define proposed system for
the selected / allotted mini project
Exp No. 2: Identify suitable process model for the proposed system with
justification.
Exp No. 4: To Perform various GIT operations on local and Remote repositories
using GIT Cheat-Sheet
Experiment No:- 1
2. EXISTING SYSTEM
Like other authentication methods, the graphical password consisted of two steps,
registration and authentication. In the registration step, users select some images from
different categories or produce a graphical image as his password. Later on, in the
authentication step, he needs to select the correct images or re-draw the graphical
password which is used by him in the registration step. In the following, these two
steps are explained in detail.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
3. PROPOSED SYSTEM
PROPOSED SYSTEM
The proposed system is more easy and faster than the existing system. In the
existing system of graphical password authentication user have to select multiple
graphical images which take lots of time and might be less secure.
In the proposed system for login in the system, users have to type or click the
password using a rotating wheel. Here, wheel will be divided into multiple parts
and each part will contain some alphabets and number, and wheel will be
surrounded by a color where users have to rotate the wheel and select the
password using unique color.
This system will use hybrid password system where user can select he option in
which form they want to login using graphical password system or manually by
typing.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Reference:
∙ Paper 1: Numerical Password via Graphical Input – An Authentication System
on Embedded Platform(2018)
∙ Paper 2: A Shoulder-Surfing Resistant Graphical Authentication Method (2020).
∙ https://www.irjet.net/archives/V5/i3/IRJET-V5I3805.pdf
Conclusion:
Hence, we have successfully prepared detailed Statement of Problem for the
allotted Mini Project.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Experiment No:- 02
Aim:- Identify suitable process model for the selected Mini Project with justification.
Theory:-
Process Model
The objective of software project planning is to provide a framework that enables the
manager to make reasonable estimates of resources, cost and schedule.
These estimates are made within a limited time frame at the beginning of the software
project and should be updated regularly as the project progresses.
The planning objective is achieved through a process of information discovery that
leads to reasonable estimates.
Project Development Approach and Justification
Main steps following project development consisted of Analysis, Designing,
Implementation and Testing. The goal of any development effort is to produce some
product.
A development process is a set of activities, together with an ordering relationship
between activities, which if performed in a manner that satisfies the ordering
relationship, will produce the desired product.
A process model is an abstract representation of a development process. In a software
development effort, the goal is to produce high quality software. The development
process is, therefore, the sequence of activities that will produce such software.
A software development process model specifies how these activities are organized in
the entire software development effort. The purpose of specifying a development
process model is to suggest an overall process for developing software.
Incremental Model
The incremental model may be viewed as a modification to the waterfall model. As
software projects increased in size, it was recognized that it is much easier, and
sometimes necessary to develop the software if the large projects are subdivided into
smaller components, which may thus be developed incrementally and iteratively. In
the early days, each component followed the waterfall process model, passing through
each step iteratively. In the incremental model the components were developed in an
overlapping fashion, as shown in figure 1. The component all had to be integrated and
then tested as whole in a final system test. The incremental model provided a certain
amount of risk containment. If any one component ran into trouble, the other
components were able to still continue to be developed independently.
Unless the problem was a universal one such as the underlying technology being
faulty. one problem would not hold up the entire development process.
Another perspective in utilizing the incremental model is to first develop the "core"
software that contains most of the required functionality. The first increment may be
delivered to users and customers as release 1. Additional functionality and
supplemental features are then developed and delivered separately as they are
completed, becoming Release 2, Release 3, and so on. Utilizing the incremental
model in this fashion provides an approach that is more akin to an evolutionary
software product development. When utilized in this development mode, the model in
figure 1 would not have the integration bucket.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
The incremental model in figure 1 would have individual releases. For example,
Requirement 1 would be the core functionality release. Other requirements would
each depict different deliveries scenarios where the first release, Release 1, is the core
function, followed by subsequent releases that may include fixes of bugs from
previous releases along with new functional features. The multiple release incremental
models also make it possible to evolve the first release, which may have flaws, into an
ideal solution through subsequent releases.
Both incremental models utilize the "divide and conquer" methodology where a large,
complex problem is decomposed into parts. The difficulty with this model is that such
problems are also intertwined, making the decoupling of the parts into independently
implementable components difficult. It will require a deep understanding of the
problem, the solution, and the usage environment. Overlapping the different
increments is another area of difficulty in that there may be some amount of
sequential dependency of information among the components. How much overlapping
can take place depends on how much prerequisite information is required.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Conclusion
A software process model is an abstraction of the software development process. The
models specify the stages and order of a process. So, think of this as a representation
of the order of activities of the process and the sequence in which they are performed.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Experiment No:- 03
1. What Is DevOps?
DevOps is a set of practices, tools, and a cultural philosophy that automate and integrate
the processes between software development and IT teams. It emphasizes team
empowerment, cross-team communication and collaboration, and technology automation.
The DevOps movement began around 2007 when the software development and IT
operations communities raised concerns about the traditional software development
model, where developers who wrote code worked apart from operations who deployed
and supported the code. The term DevOps, a combination of the words development and
operations, reflects the process of integrating these disciplines into one, continuous
process.
Under a DevOps model, development and operations teams are no longer “siloed.”
Sometimes, these two teams merge into a single team where the engineers work across
the entire application lifecycle — from development and test to deployment and
operations — and have a range of multidisciplinary skills.
DevOps teams use tools to automate and accelerate processes, which helps to increase
reliability. A DevOps toolchain helps teams tackle important DevOps fundamentals
including continuous integration, continuous delivery, automation, and collaboration.
DevOps values are sometimes applied to teams other than development. When security
teams adopt a DevOps approach, security is an active and integrated part of the
development process. This is called DevSecOps.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
security audits and security testing into agile development and DevOps
workflows.
4. How to Adopt a DevOps Model.
Together, these practices help organizations deliver faster, more reliable updates to
their customers. Here is an overview of important DevOps practice.
Conclusion
Hence, we have Successfully studied on DevOps And It’s Benefits.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
EXPEREMENT NO: 04
Aim: To Perform various GIT operations on local and Remote repositories using GIT
Cheat-Sheet
Theory:
1) Git Init Description:
o This command creates an empty Git repository - basically a .git directory with subdirectories
for objects, refs/heads, refs/tags, and template files. An initial branch without any commits will
be created (see the --initial-branch option below for its name).
o If the $GIT_DIR environment variable is set then it specifies a path to use instead of ./.git for the
base of the repository.
o If the object storage directory is specified via the $GIT_OBJECT_DIRECTORY environment
variable then the sha1 directories are created underneath - otherwise the
default $GIT_DIR/objects directory is used.
o Running git init in an existing repository is safe. It will not overwrite things that are already there.
The primary reason for rerunning git init is to pick up newly added templates (or to move the
repository to another place if --separate-git-dir is given).
Screenshot:
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Screenshot:
o This command can be performed multiple times before a commit. It only adds the content of the
specified file(s) at the time the add command is run; if you want subsequent changes included in
the next commit, then you must run git add again to add the new content to the index.
o The git status command can be used to obtain a summary of which files have changes that are
staged for the next commit.
o The git add command will not add ignored files by default. If any ignored files were explicitly
specified on the command line, git add will fail with a list of ignored files. Ignored files reached
by directory recursion or filename globbing performed by Git (quote your globs before the shell)
will be silently ignored. The git add command can be used to add ignored files with the -f (force)
option.
o Please see git-commit for alternative ways to add content to a commit.
Screenshot
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
o Git diff is a command-line utility. It's a multiuse Git command. When it is executed,
it runs a diff function on Git data sources. These data sources can be files, branches,
commits, and more. It is used to show changes between commits, commit, and
working tree, etc.
o It compares the different versions of data sources. The version control system stands
for working with a modified version of files. So, the diff command is a useful tool for
working with Git.
o However, we can also track the changes with the help of git log command with option
-p. The git log command will also work as a git diff command.
Screenshot:
Screenshot:
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
o The push term refers to upload local repository content to a remote repository. Pushing is
an act of transfer commits from your local repository to a remote repository. Pushing is
capable of overwriting changes; caution should be taken when pushing.
o Moreover, we can say the push updates the remote refs with local refs. Every time you
push into the repository, it is updated with some interesting changes that you made. If we
do not specify the location of a repository, then it will push to default location at origin
master.
o The "git push" command is used to push into the repository. The push command can be
considered as a tool to transfer commits between local and remote repositories. The basic
syntax is given below:
$ git push <option> [<Remote URL><branch name><refspec>...]
EXPEREMENT NO: 05
AIM: Develop Software Requirement Specification (SRS) document in
IEEE format for the project.
Software Requirements
Specification
for
Prepared by <author>
<organization>
<date created>
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Table of Contents
Table of Contents...........................................................................................................................ii
Revision History.............................................................................................................................ii
1. Introduction..............................................................................................................................1
1.1 Purpose...........................................................................................................................................1
1.2 Document Conventions...................................................................................................................1
1.3 Intended Audience and Reading Suggestions.................................................................................1
1.4 Product Scope.................................................................................................................................1
1.5 References......................................................................................................................................1
2. Overall Description..................................................................................................................2
2.1 Product Perspective.........................................................................................................................2
2.2 Product Functions...........................................................................................................................2
2.3 User Classes and Characteristics.....................................................................................................2
2.4 Operating Environment...................................................................................................................2
2.5 Design and Implementation Constraints.........................................................................................2
2.6 User Documentation.......................................................................................................................2
2.7 Assumptions and Dependencies......................................................................................................3
3. External Interface Requirements...........................................................................................3
3.1 User Interfaces................................................................................................................................3
3.2 Software Interfaces.........................................................................................................................3
4. System Features.......................................................................................................................4
4.1 System Feature 1.............................................................................................................................4
5. Other Nonfunctional Requirements.......................................................................................4
5.1 Performance Requirements.............................................................................................................4
5.2 Security Requirements....................................................................................................................5
5.3 Software Quality Attributes............................................................................................................5
Appendix A: Glossary....................................................................................................................5
Appendix B: Analysis Models.......................................................................................................5
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Introduction:
Purpose (purpose of document, whether SRS is about part of the system or
whole system, what is scope, use or purpose of system to be developed)
All in One Food Ordering System is mainly designed primarily function for use in the
food delivery industry. This system will allow hotels and restaurants to increase online
food ordering such type of business. The customers can be selected food menu items in
just few minutes. In the modern food industries allows to quickly and easily delivery on
customer place. Restaurant employees then use these orders through an easy to delivery
on customer place easy find out navigate graphical interface for efficient processing.
Increased demand of restaurant-goers generated the need for much attention for the
hospitality industry. Providing much option with ease of ordering and delivering is the
need of the hours. Technological interference has become mandatory to improve the
quality of the service and business in this industry. Evidence are already existed for
partial automation of food ordering process in the country; most of these technologies
implemented are based on wireless technologies. This manuscript reports implementation
and integration of web-based technology for restaurants. A dynamic database utility
system was designed to fetch all the information from a centralized database. User utility
was given importance during the development of this interface and efficiency, accuracy
was the priority for better results and services and to reduce most of the human error. It
was observed that this system was successful in overcoming the shortcomings found in
the previously developed similar systems. Moreover, this system was very cost effective
in development as well as during use.
Document Conventions (what will be font, size for title, subtitle, body)
Font-Family:
'Poppins',sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;.
Intended Audience and Reading Suggestions(optional)
Overall Description
Product Perspective (High level Use case diagram ,broad level diagram)
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
b) USER Login:
The user Login of proposed system, the user has to login into Application
which will secure the progress of user after that the home page of Web-
application is display in that Then the User has the menu items in which the
user can select the FOOD from different Categories, Users can add Food
items to the Cart then Users can Order all the Items in the Cart.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
2. MENU ITEMS: -
the User has the menu items in which the user can select the FOOD from
different Categories, Users can add Food items to the Cart then Users can
Order all the Items in the Cart.
3. FILTERING: -
Users can filter their food according to their requirements in menu items, then
the users can select and add the food into Cart.
Chrome 60+
Safari 10.1+ / iOS Safari 10.1+
Edge 12+
Firefox ESR+
Opera
If specific exports have a different browser support expectation, it will be documented
with that export.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
System Features
System Feature 1
4.1.1 Description and Priority (Features)
ADD TO CART: -
First the user has to login into Application which will secure the progress of
user after that the home page of Web-application is display in that Then the
User has the menu items in which the user can select the FOOD from different
Categories, Users can add Food items to the Cart then Users can Order all the
Items in the Cart.
REQ-2: Filtering
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Performance Requirements
Using Immutable Data Structures. ...
Function/Stateless Components and React. ...
Multiple Chunk Files. ...
Use React. ...
Avoid Inline Function Definition in the Render Function. ...
Throttling and Debouncing Event Action in JavaScript. ...
Avoid using Index as Key for map.
Security Requirements
There are times when we just want to use an application and do not have the
patience to sign up and sign in with our email and password first. We might also
just want to try out the application and do not want the burden of having to create
a new account just for that.
At the same time, the owners of the application need to know how many users
their application has, and will want to get feedback about who’s using the
application and how. To get these statistics, they need users to sign up with
Authentication is the process by which your identity is confirmed through the use
of some kind of credential. Authentication is about proving that you are who you
say you are.
Google provides many APIs and services, which require authentication to access.
Google also provides a number of services that host applications written by our
customers; these applications also need to determine the identity of their users.
Appendix A: Glossary
VS Code
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made
by Microsoft with the Electron Framework, for Windows, Linux and macOS. Features
include
support for debugging, syntax highlighting, intelligent code completion, snippets, code
refactoring,
and embedded Git. Users can change the theme, keyboard shortcuts, preferences, and
In the Stack Overflow 2021 Developer Survey, Visual Studio Code was ranked the most
popular
developer environment tool among 82,000 respondents, with 70% reporting that they use
it.
REACT JS
React is a JavaScript library for building user interfaces. Learn what React is all about on
our homepage or in the tutorial.
React has been designed from the start for gradual adoption, and you can use as little or
as much React as you need. Whether you want to get a taste of React, add some
interactivity to a simple HTML page, or start a complex React-powered app, the links in
this section will help you get started.
REDUX
Redux itself is a standalone library that can be used with any UI layer or framework, including
React, Angular, Vue, Ember, and vanilla JS. Although Redux and React are commonly used
together, they are independent of each other.
If you are using Redux with any kind of UI framework, you will normally use a "UI binding"
library to tie Redux together with your UI framework, rather than directly interacting with the
store from your UI code. React Redux is the official Redux UI binding library for React. If you
are using Redux and React together, you should also use React Redux to bind these two libraries.
To understand why you should use React Redux, it may help to understand what a "UI binding
library" does.
o React Redux is the official UI bindings for react Application. It is kept up to date with
any API changes to ensure that your React components behave as expected.
Tailwind CSS
Tailwind CSS can be used to make websites in the fastest and the easiest way.
Tailwind CSS is basically a utility-first CSS framework for rapidly building custom user
interfaces. It is a highly customizable, low-level CSS framework that gives you all of the building
blocks you need to build bespoke designs without any annoying opinionated styles you have to
fight to override.
Makes the changes in the desired manner. CSS is global in nature and if make changes in the file
the property is changed in all the HTML files linked to it. But with the help of Tailwind CSS we
can use utility classes and make local changes.
YARN
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
o Yarn is a package manager for your code. It allows you to use and share code with other
developers from around the world. Yarn does this quickly, securely, and reliably so you
don't ever have to worry.
o Yarn allows you to use other developers' solutions to different problems, making it easier
for you to develop your software. If you have problems, you can report issues or
contribute back on GitHub, and when The problem is fixed, you can use Yarn to keep it
all up to date.
o Code is shared through something called a package. A package contains all the code
being shared as well as a package.Json file (called a manifest) which describes the
package.
FIREBASE
Firebase is an app development platform that helps you build and grow apps and games
users love. Backed by Google and trusted by millions of businesses around the world.
Firebase evolved from Envolve, a prior startup founded by James Templin and Andrew
Lee in 2011. Envolve provided developers an API that enables the integration of online
chat functionality into their websites. After releasing the chat service, Templin and Lee
found that it was being used to pass application data that were not chat messages.
Developers were using Envolve to sync application data such as game state in real time
across their users. Templin and Lee decided to separate the chat system and the real-
time architecture that powered it. They founded Firebase as a separate company in 2011
and it launched to the public in April 2012.
Firebase's first product was the Firebase Realtime Database, an API that synchronizes
application data across
iOS, Android, and Web devices, and stores it on Firebase's cloud. The product assists
software developers in building real-time, collaborative applications.
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
CLASS DIAGRAM: -
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
SEQUENCE DIAGRAM: -
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC
ACTIVITY DIAGRAM: -
Vidya Vikas Education Trust’s
Universal College of Engineering, Kaman Road, Vasai-401208
Accredited B+ Grade by NAAC