Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

sdlc-to internet

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

Practical-1

Aim: An introduction to Software product life cycle


Software Development Life Cycle (SDLC) is a process used by the software industry to design,
develop and test high quality softwares. The SDLC aims to produce a high-quality software that
meets or exceeds customer expectations, reaches completion within times and cost estimates.
 SDLC is the acronym of Software Development Life Cycle.
 It is also called as Software Development Process.
 SDLC is a framework defining tasks performed at each step in the software development
process.

What is SDLC?

SDLC is a process followed for a software project, within a software organization. It consists of
a detailed plan describing how to develop, maintain, replace and alter or enhance specific
software. The life cycle defines a methodology for improving the quality of software and the
overall development process.
The following figure is a graphical representation of the various stages of a typical SDLC.

A typical Software Development Life Cycle consists of the following stages −


Stage 1: Planning and Requirement Analysis: Requirement analysis is the most important and
fundamental stage in SDLC. It is performed by the senior members of the team with inputs from
the customer, the sales department, market surveys and domain experts in the industry. This
information is then used to plan the basic project approach and to conduct product feasibility
study in the economical, operational and technical areas.
Stage 2: Defining Requirements: Once the requirement analysis is done the next step is to
clearly define and document the product requirements and get them approved from the customer
or the market analysts. This is done through an SRS (Software Requirement
Specification) document which consists of all the product requirements to be designed and
developed during the project life cycle.
Stage 3: Designing the Product Architecture: SRS is the reference for product architects to
come out with the best architecture for the product to be developed. Based on the requirements
specified in SRS, usually more than one design approach for the product architecture is
proposed and documented in a DDS - Design Document Specification.
Stage 4: Building or Developing the Product:In this stage of SDLC the actual development
starts and the product is built. The programming code is generated as per DDS during this stage.
If the design is performed in a detailed and organized manner, code generation can be
accomplished without much hassle.
Stage 5: Testing the Product: This stage is usually a subset of all the stages as in the modern
SDLC models, the testing activities are mostly involved in all the stages of SDLC. However, this
stage refers to the testing only stage of the product where product defects are reported, tracked,
fixed and retested, until the product reaches the quality standards defined in the SRS.
Stage 6: Deployment in the Market and Maintenance : Once the product is tested and ready
to be deployed it is released formally in the appropriate market. Sometimes product deployment
happens in stages as per the business strategy of that organization. The product may first be
released in a limited segment and tested in the real business environment (UAT- User acceptance
testing).

SDLC Models

There are various software development life cycle models defined and designed which are
followed during the software development process. These models are also referred as Software
Development Process Models". Each process model follows a Series of steps unique to its type
to ensure success in the process of software development.
Following are the most important and popular SDLC models followed in the industry −

 Waterfall Model
 Iterative Model
 Spiral Model
 V-Model
 Agile Model,
 RAD Model (Rapid Application Development and Prototyping Models).
Waterfall Model - Design

The Waterfall Model was the first Process Model to be introduced. It is also referred to as
a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall
model, each phase must be completed before the next phase can begin and there is no
overlapping in the phases Waterfall approach was first SDLC Model to be used widely in
Software Engineering to ensure success of the project. In "The Waterfall" approach, the whole
process of software development is divided into separate phases. In this Waterfall model,
typically, the outcome of one phase acts as the input for the next phase sequentially.
The following illustration is a representation of the different phases of the Waterfall Model.

The sequential phases in Waterfall model are −


 Requirement Gathering and analysis − All possible requirements of the system to be
developed are captured in this phase and documented in a requirement specification
document.
 System 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.
 Integration and 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.
Waterfall Model – Application:

 Requirements are very well documented, clear and fixed.


 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Ample resources with required expertise are available to support the product.
 The project is short.

Waterfall Model - Advantages

 Simple and easy to understand and use


 Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are very well understood.
 Clearly defined stages.
 Well understood milestones.
 Easy to arrange tasks.
 Process and results are well documented.

Waterfall Model - Disadvantages

 No working software is produced until late during the life cycle.


 High amounts of risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
 It is difficult to measure progress within stages.
 Cannot accommodate changing requirements.
 Adjusting scope during the life cycle can end a project.
 Integration is done as a "big-bang. at the very end, which doesn't allow identifying any
technological or business bottleneck or challenges early.
Iterative Model:
The Iterative model, iterative process starts with a simple implementation of a small set of the
software requirements and iteratively enhances the evolving versions until the complete system
is implemented and ready to be deployed.An iterative life cycle model does not attempt to start
with a full specification of requirements. Instead, development begins by specifying and
implementing just part of the software, which is then reviewed to identify further requirements.
This process is then repeated, producing a new version of the software at the end of each
iteration of the model.
Iterative Model - Design
Iterative process starts with a simple implementation of a subset of the software requirements
and iteratively enhances the evolving versions until the full system is implemented. At each
iteration, design modifications are made and new functional capabilities are added. The basic
idea behind this method is to develop a system through repeated cycles (iterative) and in smaller
portions at a time (incremental).
The following illustration is a representation of the Iterative and Incremental model −

Iterative and Incremental development is a combination of both iterative design or iterative


method and incremental build model for development. "During software development, more
than one iteration of the software development cycle may be in progress at the same time." This
process may be described as an "evolutionary acquisition" or "incremental build" approach."

Iterative Model - Application

Like other SDLC models, Iterative and incremental development has some specific applications
in the software industry. This model is most often used in the following scenarios −
 Requirements of the complete system are clearly defined and understood.
 Major requirements must be defined; however, some functionalities or requested
enhancements may evolve with time.
 There is a time to the market constraint.
 A new technology is being used and is being learnt by the development team while
working on the project.
 Resources with needed skill sets are not available and are planned to be used on contract
basis for specific iterations.
 There are some high-risk features and goals which may change in the future.
Advantages

 Some working functionality can be developed quickly and early in the life cycle.
 Results are obtained early and periodically.
 Parallel development can be planned.
 Progress can be measured.
 Less costly to change the scope/requirements.
 Testing and debugging during smaller iteration is easy.
 Risks are identified and resolved during iteration; and each iteration is an easily managed
milestone.
 Easier to manage risk - High risk part is done first.
 With every increment, operational product is delivered.
 Issues, challenges and risks identified from each increment can be utilized/applied to the
next increment.
 Risk analysis is better.
 It supports changing requirements.
 Initial Operating time is less.
 Better suited for large and mission-critical projects.
 During the life cycle, software is produced early which facilitates customer evaluation
and feedback.
Disadvantages:
 More resources may be required.
 Although cost of change is lesser, but it is not very suitable for changing requirements.
 More management attention is required.
 System architecture or design issues may arise because not all requirements are gathered
in the beginning of the entire life cycle.
 Defining increments may require definition of the complete system.
 Not suitable for smaller projects.
 Management complexity is more.
 End of project may not be known which is a risk.
 Highly skilled resources are required for risk analysis.
 Projects progress is highly dependent upon the risk analysis phase.
Spiral Model:
The spiral model combines the idea of iterative development with the systematic, controlled
aspects of the waterfall model. This Spiral model is a combination of iterative development
process model and sequential linear development model i.e. the waterfall model with a very high
emphasis on risk analysis. It allows incremental releases of the product or incremental
refinement through each iteration around the spiral.

Spiral Model - Design

The spiral model has four phases. A software project repeatedly passes through these phases in
iterations called Spirals.
Identification
This phase starts with gathering the business requirements in the baseline spiral. In the
subsequent spirals as the product matures, identification of system requirements, subsystem
requirements and unit requirements are all done in this phase.
Design
The Design phase starts with the conceptual design in the baseline spiral and involves
architectural design, logical design of modules, physical product design and the final design in
the subsequent spirals.
Construct or Build
The Construct phase refers to production of the actual software product at every spiral. In the
baseline spiral, when the product is just thought of and the design is being developed a POC
(Proof of Concept) is developed in this phase to get customer feedback.
Evaluation and Risk Analysis
Risk Analysis includes identifying, estimating and monitoring the technical feasibility and
management risks, such as schedule slippage and cost overrun. After testing the build, at the end
of first iteration, the customer evaluates the software and provides feedback.
Spiral Model Application

The Spiral Model is widely used in the software industry as it is in sync with the natural
development process of any product, i.e. learning with maturity which involves minimum risk
for the customer as well as the development firms.
The following pointers explain the typical uses of a Spiral Model −
 When there is a budget constraint and risk evaluation is important.
 For medium to high-risk projects.
 Long-term project commitment because of potential changes to economic priorities as
the requirements change with time.
 Customer is not sure of their requirements which is usually the case.
 Requirements are complex and need evaluation to get clarity.
 New product line which should be released in phases to get enough customer feedback.
 Significant changes are expected in the product during the development cycle.

Advantages

 Changing requirements can be accommodated.


 Allows extensive use of prototypes.
 Requirements can be captured more accurately.
 Users see the system early.
 Development can be divided into smaller parts and the risky parts can be developed
earlier which helps in better risk management.
Disadvantages
 Management is more complex.
 End of the project may not be known early.
 Not suitable for small or low risk projects and could be expensive for small projects.
 Process is complex
 Spiral may go on indefinitely.
 Large number of intermediate stages requires excessive documentation.

V-model:
The V-model is an SDLC model where execution of processes happens in a sequential manner
in a V-shape. It is also known as Verification and Validation model.The V-Model is an
extension of the waterfall model and is based on the association of a testing p hase for each
corresponding development stage. This means that for every single phase in the development
cycle, there is a directly associated testing phase. This is a highly-disciplined model and the next
phase starts only after completion of the previous phase.

V-Model – Design: Under the V-Model, the corresponding testing phase of the development
phase is planned in parallel. So, there are Verification phases on one side of the ‘V’ and
Validation phases on the other side. The Coding Phase joins the two sides of the V-Model.

The following illustration depicts the different phases in a V-Model of the SDLC.

4.2 V-Model - Verification Phases

There are several Verification phases in the V-Model, each of these are explained in detail
below.
Business Requirement Analysis
This is the first phase in the development cycle where the product requirements are understood
from the customer’s perspective. This phase involves detailed communication with the customer
to understand his expectations and exact requirement. This is a very important activity and
needs to be managed well, as most of the customers are not sure about what exactly they need.
The acceptance test design planning is done at this stage as business requirements can be used
as an input for acceptance testing.
System Design
Once you have the clear and detailed product requirements, it is time to design the complete
system. The system design will have the understanding and detailing the complete hardware and
communication setup for the product under development. The system test plan is developed
based on the system design. Doing this at an earlier stage leaves more time for the actual test
execution later.
Architectural Design
Architectural specifications are understood and designed in this phase. Usually more than one
technical approach is proposed and based on the technical and financial feasibility the final
decision is taken. The system design is broken down further into modules taking up different
functionality. This is also referred to as High Level Design (HLD).
Module Design
In this phase, the detailed internal design for all the system modules is specified, referred to
as Low Level Design (LLD). It is important that the design is compatible with the other
modules in the system architecture and the other external systems. The unit tests are an essential
part of any development process and helps eliminate the maximum faults and errors at a very
early stage. These unit tests can be designed at this stage based on the internal module designs.

V- Model ─ Application: V- Model application is almost the same as the waterfall model, as
both the models are of sequential type. Requirements have to be very clear before the project
starts, because it is usually expensive to go back and make changes. This model is used in the
medical development field, as it is strictly a disciplined domain.

The following pointers are some of the most suitable scenarios to use the V-Model application.
 Requirements are well defined, clearly documented and fixed.
 Product definition is stable.
 Technology is not dynamic and is well understood by the project team.
 There are no ambiguous or undefined requirements.
 The project is short.

V-Model - Pros and Cons

The advantages of the V-Model method are as follows −


 This is a highly-disciplined model and Phases are completed one at a time.
 Works well for smaller projects where requirements are very well understood.
 Simple and easy to understand and use.
 Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
The disadvantages of the V-Model method are as follows −
 High risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a moderate to high risk of
changing.
 Once an application is in the testing stage, it is difficult to go back and change a
functionality.
 No working software is produced until late during the life cycle.

Agile SDLC model:


Agile SDLC model is a combination of iterative and incremental process models with focus on
process adaptability and customer satisfaction by rapid delivery of working software product.
Agile Methods break the product into small incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves
cross functional teams working simultaneously on various areas like −

 Planning
 Requirements Analysis
 Design
 Coding
 Unit Testing and
 Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer and important
stakeholders.

What is Agile?

Agile model believes that every project needs to be handled differently and the existing methods
need to be tailored to best suit the project requirements. In Agile, the tasks are divided to time
boxes (small time frames) to deliver specific features for a release.
Iterative approach is taken and working software build is delivered after each iteration. Each
build is incremental in terms of features; the final build holds all the features required by the
customer.
Here is a graphical illustration of the Agile Model −
The Agile thought process had started early in the software development and started becoming
popular with time due to its flexibility and adaptability.
Following are the Agile Manifesto principles −
 Individuals and interactions − In Agile development, self-organization and motivation
are important, as are interactions like co-location and pair programming.
 Working software − Demo working software is considered the best means of
communication with the customers to understand their requirements, instead of just
depending on documentation.
 Customer collaboration − As the requirements cannot be gathered completely in the
beginning of the project due to various factors, continuous customer interaction is very
important to get proper product requirements.
 Responding to change − Agile Development is focused on quick responses to change
and continuous development.

Agile Model - Pros and Cons

Agile methods are being widely accepted in the software world recently. However, this method
may not always be suitable for all products. Here are some pros and cons of the Agile model.
The advantages of the Agile Model are as follows −
 Is a very realistic approach to software development.
 Promotes teamwork and cross training.
 Functionality can be developed rapidly and demonstrated.
 Resource requirements are minimum.
 Suitable for fixed or changing requirements
 Delivers early partial working solutions.
 Good model for environments that change steadily.
 Minimal rules, documentation easily employed.
 Enables concurrent development and delivery within an overall planned context.
 Little or no planning required.
 Easy to manage.
 Gives flexibility to developers.
The disadvantages of the Agile Model are as follows −
 Not suitable for handling complex dependencies.
 More risk of sustainability, maintainability and extensibility.
 An overall plan, an agile leader and agile PM practice is a must without which it will not
work.
 Strict delivery management dictates the scope, functionality to be delivered, and
adjustments to meet the deadlines.
 Depends heavily on customer interaction, so if customer is not clear, team can be driven
in the wrong direction.
 There is a very high individual dependency, since there is minimum documentation
generated.
 Transfer of technology to new team members may be quite challenging due to lack of
documentation.
RAD (Rapid Application Development:
The RAD (Rapid Application Development) model is based on prototyping and iterative
development with no specific planning involved. The process of writing the software itself
involves the planning required for developing the product.Rapid Application Development
focuses on gathering customer requirements through workshops or focus groups, early testing of
the prototypes by the customer using iterative concept, reuse of the existing prototypes
(components), continuous integration and rapid delivery.

What is RAD?

Rapid application development is a software development methodology that uses minimal


planning in favor of rapid prototyping. A prototype is a working model that is functionally
equivalent to a component of the product.
In the RAD model, the functional modules are developed in parallel as prototypes and are
integrated to make the complete product for faster product delivery. Since there is no detailed
preplanning, it makes it easier to incorporate the changes within the development process.
RAD projects follow iterative and incremental model and have small teams comprising of
developers, domain experts, customer representatives and other IT resources working
progressively on their component or prototype.
The most important aspect for this model to be successful is to make sure that the prototypes
developed are reusable.

RAD Model Design

RAD model distributes the analysis, design, build and test phases into a series of short, iterative
development cycles.
Following are the various phases of the RAD Model −
Business Modeling
The business model for the product under development is designed in terms of flow of
information and the distribution of information between various business channels. A complete
business analysis is performed to find the vital information for business, how it can be obtained,
how and when is the information processed and what are the factors driving successful flow of
information.
Data Modeling
The information gathered in the Business Modeling phase is reviewed and analyzed to form sets
of data objects vital for the business. The attributes of all data sets is identified and defined. The
relation between these data objects are established and defined in detail in relevance to the
business model.
Process Modeling
The data object sets defined in the Data Modeling phase are converted to establish the business
information flow needed to achieve specific business objectives as per the business model. The
process model for any changes or enhancements to the data object sets is defined in this phase.
Process descriptions for adding, deleting, retrieving or modifying a data object are given.
Application Generation
The actual system is built and coding is done by using automation tools to convert process and
data models into actual prototypes.
Testing and Turnover
The overall testing time is reduced in the RAD model as the prototypes are independently tested
during every iteration. However, the data flow and the interfaces between all the components
need to be thoroughly tested with complete test coverage. Since most of the programming
components have already been tested, it reduces the risk of any major issues.
The following illustration describes the RAD Model in detail.
RAD Model - Application

RAD model can be applied successfully to the projects in which clear modularization is
possible. If the project cannot be broken into modules, RAD may fail.
The following pointers describe the typical scenarios where RAD can be used −
 RAD should be used only when a system can be modularized to be delivered in an
incremental manner.
 It should be used if there is a high availability of designers for modeling.
 It should be used only if the budget permits use of automated code generating tools.
 RAD SDLC model should be chosen only if domain experts are available with relevant
business knowledge.
 Should be used where the requirements change during the project and working
prototypes are to be presented to customer in small iterations of 2-3 months.

RAD Model - Pros and Cons

The advantages of the RAD Model are as follows −


 Changing requirements can be accommodated.
 Progress can be measured.
 Iteration time can be short with use of powerful RAD tools.
 Productivity with fewer people in a short time.
 Reduced development time.
 Increases reusability of components.
 Quick initial reviews occur.
 Encourages customer feedback.
 Integration from very beginning solves a lot of integration issues.
The disadvantages of the RAD Model are as follows −
 Dependency on technically strong team members for identifying business requirements.
 Only system that can be modularized can be built using RAD.
 Requires highly skilled developers/designers.
 High dependency on modelling skills.
 Inapplicable to cheaper projects as cost of modelling and automated code generation is
very high.
 Management complexity is more.
 Suitable for systems that are component based and scalable.
 Requires user involvement throughout the life cycle.
 Suitable for project requiring shorter development times.

Practical -2
AIM: Case study of various software development trends
1. ARTIFICIAL INTELLIGENCE:

With the onset of Artificial Intelligence, the machines are programmed to conduct the tasks that
were restricted to the human mind. The artificial intelligence-based software can think
intelligently like humans.

The subsets of artificial intelligence like machine learning and deep learning are gaining constant
popularity among businesses. More and more companies are taking machine learning and
solutions services as a necessity. The ability of a digital computer or computer-
controlled robot to perform tasks commonly associated with intelligent beings. The term is
frequently applied to the project of developing systems endowed with the intellectual processes
characteristic of humans, such as the ability to reason, discover meaning, generalize, or learn
from past experience. Since the development of the digital computer in the 1940s, it has been
demonstrated that computers can be programmed to carry out very complex tasks—as, for
example, discovering proofs for mathematical theorems or playing chess—with great
proficiency. Still, despite continuing advances in computer processing speed and memory
capacity, there are as yet no programs that can match human flexibility over wider domains or in
tasks requiring much everyday knowledge. On the other hand, some programs have attained the
performance levels of human experts and professionals in performing certain specific tasks, so
that artificial intelligence in this limited sense is found in applications as diverse as
medical diagnosis, computer search engines, and voice or handwriting recognition..

What Is Intelligence?
All but the simplest human behaviour is ascribed to intelligence, while even the most
complicated insect behaviour is never taken as an indication of intelligence. What is the
difference? Consider the behaviour of the digger wasp, Sphex ichneumoneus. When the female
wasp returns to her burrow with food, she first deposits it on the threshold, checks for intruders
inside her burrow, and only then, if the coast is clear, carries her food inside. The real nature of
the wasp’s instinctual behaviour is revealed if the food is moved a few inches away from the
entrance to her burrow while she is inside: on emerging, she will repeat the whole procedure as
often as the food is displaced. Intelligence—conspicuously absent in the case of Sphex—must
include the ability to adapt to new circumstances.
How does Artificial Intelligence work?

Computers are good at following processes, i.e., sequences of steps to execute a task. If we give
a computer steps to execute a task, it should easily be able to complete it. The steps are nothing
but algorithms. An algorithm can be as simple as printing two numbers or as difficult as
predicting who will win elections in the coming year!

So, how can we accomplish this?

Let’s take an example of predicting the weather forecast for 2020.

First of all, what we need is a lot of data! Let’s take the data from 2006 to 2019.

Now, we will divide this data in an 80:20 ratio. 80 percent of the data is going to be our labeled
data, and the rest 20 percent will be our test data. Thus, we have the output for the entire 100
percent of the data that has been acquired from 2006 to 2019.

What happens once we collect the data? We will feed the labeled data, i.e., 80 percent of train
data, into the machine. Here, the algorithm is learning from the data which has been fed into it.
Next, we need to test the algorithm. Here, we feed the test data, i.e., the remaining 20 percent of
the data, to the machine. The machine gives us the output. Now, we cross verify the output given
by the machine with the actual output of the data and check for its accuracy. While checking for
accuracy if we are not satisfied with the model, we tweak the algorithm to give us the precise
output or at least somewhere close to the actual output. Once we are satisfied with the model, we
then feed the data to the model so that it can predict the weather forecast for the year 2020.

What are the major subfields of Artificial Intelligence?

What are the applications of Artificial Intelligence?

Now, it is time for us to know various real-life applications of AI across industry vertical.

1. Fraud detection : Every time you make a transaction online/offline, using your credit or
debit card, you receive a message from your bank asking if you have made that
transaction. The bank also asks you to report if you haven’t made the transaction. The
bank feeds its Artificial Intelligence system with data regarding both fraudulent and non-
fraudulent
transactions. The AI system learns from this data and then predicts which transactions are
fraudulent and which are not based on this huge training set.
2. Music and movie recommendations: Did you know that Mark Zuckerberg had created
Synapse, a music player which suggested songs that users would likely to listen to?
Netflix, Spotify, and Pandora also recommend music and movies for users based on their
past interests and purchases. These sites accomplish this by garnering the choices users
had made earlier and providing these choices as inputs into the learning algorithm.
3. AI in retail: The market size of AI software is expected to reach up to $36 million by
2025. This hype in the market has caused retailers to pay attention to Artificial
Intelligence. Thus, the majority of big- and small-scale industries are adopting AI tools in
novel ways across the entire product life cycle—right from the assembling stage to the
post-sale customer–service interactions.
4. Autopilot flight: With the AI technology, the pilot only needs to put the system on the
autopilot mode and then the majority operations of the flight will be taken care of by AI
itself. It is reported by The New York Times that only seven minutes of human
intervention (which mostly relates takeoff and landing) is required for the average flight
of a Boeing plane.
5. ROBOTICS: Robots often have shared sets of programming that allow them to function
and communicate. However, as robots are used in a variety of settings, they may need to
be programmed or given instructions to make decisions and value judgments in changing
environments. This will require them to possess artificial intelligence.
6. IMAGE RECOGNITION: While computers are getting better at recognizing voice
commands, the ability of a program to remember and decode an image is equally
appealing and has many applications for everything from security to graphic design.
Large databases of tagged images are now available to tech giants like Google and
Facebook, and these volumes of graphic data are being used in creative ways to create
computer programs that recognize what they see in front of them, even if it is for the first
time.
7. Netflix: Netflix needs no introduction – it is a widely popular content-on-demand
service that uses predictive technology to offer recommendations on the basis of
consumers’ reaction, interests, choices, and behavior. The technology examines from a
number of records to recommend movies based on your previous liking and reactions.
2. Internet Of Things(IoT)
The Internet of Things(IoT) can be defined as a network of physical objects or people called
"things" that are embedded with software, electronics, network, and sensors which allows these
objects to collect and exchange data. The goal of IoT is to extend to internet connectivity from
standard devices like computer, mobile, tablet to relatively dumb devices like a toaster. IoT
makes virtually everything "smart," by improving aspects of our life with the power of data
collection, AI algorithm, and networks. The thing in IoT can also be a person with a diabetes
monitor implant, an animal with tracking devices, etc.

How IOT works?

The entire IOT process starts with the devices themselves like smartphones, smartwatches,
electronic appliances like TV, Washing Machine which helps you to communicate with the IOT
platform.

Devices and objects with built in sensors are connected to an Internet of Things platform, which
integrates data from the different devices and applies analytics to share the most valuable
information with applications built to address specific needs.
These powerful IoT platforms can pinpoint exactly what information is useful and what can
safely be ignored. This information can be used to detect patterns, make recommendations, and
detect possible problems before they occur.
For example, if I own a car manufacturing business, I might want to know which optional
components (leather seats or alloy wheels, for example) are the most popular. Using Internet of
Things technology, I can:
 Use sensors to detect which areas in a showroom are the most popular, and where customers
linger longest;
 Drill down into the available sales data to identify which components are selling fastest;
 Automatically align sales data with supply, so that popular items don’t go out of stock.
The information picked up by connected devices enables me to make smart decisions about
which components to stock up on, based on real-time information, which helps me save time and
money.
With the insight provided by advanced analytics comes the power to make processes more
efficient. Smart objects and systems mean you can automate certain tasks, particularly when
these are repetitive, mundane, time-consuming or even dangerous. Let’s look at some examples
to see what this looks like in real life.

Here, are four fundamental components of an IoT system:

1) Sensors/Devices: Sensors or devices are a key component that helps you to collect live data
from the surrounding environment. All this data may have various levels of complexities. It
could be a simple temperature monitoring sensor, or it may be in the form of the video feed.

A device may have various types of sensors which performs multiple tasks apart from sensing.
Example, A mobile phone is a device which has multiple sensors like GPS, camera but your
smartphone is not able to sense these things.

2) Connectivity: All the collected data is sent to a cloud infrastructure. The sensors should be
connected to the cloud using various mediums of communications. These communication
mediums include mobile or satellite networks, Bluetooth, WI-FI, WAN, etc.

3) Data Processing: Once that data is collected, and it gets to the cloud, the software performs
processing on the gathered data. This process can be just checking the temperature, reading on
devices like AC or heaters. However, it can sometimes also be very complex like identifying
objects, using computer vision on video.

4)User Interface: The information needs to be available to the end-user in some way which can
be achieved by triggering alarms on their phones or sending them notification through email or
text message. The user sometimes might need an interface which actively checks their IOT
system. For example, the user has a camera installed in his home. He wants to access video
recording and all the feeds with the help of a web server.

However, it's not always one-way communication. Depending on the IoT application and
complexity of the system, the user may also be able to perform an action which may create
cascading effects.

For example, if a user detects any changes in the temperature of the refrigerator, with the help of
IOT technology the user should able to adjust the temperature with the help of their mobile
phone.

IoT Applications

IoT solutions are widely used in numerous companies across industries. Some most common IoT
applications are given below:

Application type Description

Smart Thermostats Helps you to save resource on heating


bills by knowing your usage patterns.

Connected Cars IOT helps automobile companies handle


billing, parking, insurance, and other
related stuff automatically.

Activity Trackers Helps you to capture heart rate pattern,


calorie expenditure, activity levels, and
skin temperature on your wrist.

Parking Sensors IOT technology helps users to identify the


real-time availability of parking spaces on
their phone.

Connect Health The concept of a connected health care


system facilitates real-time health
monitoring and patient care. It helps in
improved medical decision-making based
on patient data.

Smart City Smart city offers all types of use cases


which include traffic management to
water distribution, waste management, etc.

Smart home Smart home encapsulates the connectivity


inside your homes. It includes smoke
detectors, home appliances, light bulbs,
windows, door locks, etc.

Smart supply chain Helps you in real time tracking of goods


while they are on the road, or getting
suppliers to exchange inventory
information.

IoT Biometrics Domain

IoT plays a vital role in the Biometrics security system such as a fingerprint system, voice
recognition system, eye scanner system etc.
Now, a biometric system is something that we always encounter in our daily life. We always
either use a fingerprint sensor or an eye-scanning system, depends on organization to
organization.

Let's talk about the fingerprint scanner system and how these systems work. Now, when a person
presents its finger on the fingerprint scanner it scans the fingerprint and considers this as part of
an enrollment process. From this fingerprint template, the device extracts certain key features
which make different from others and stores it into a database. After that, every time the same
person place its finger on the top of this fingerprint scanner, it creates a template and compares
this with all the templates that are present in the database. If it matches to correspondingly let's
say giving that person an attendance or allows him to access a door, if it does not then it raises an
alert.

This biometric system can be fingerprint or eye scanning or it could be a combination of both.
Voice recognition system is also one of the key products in the biometric domain.

IoT in Security Camera & Door Unlock System

The Security Camera and a Door unlock system is something that is quite interesting IoT
application. The phenomena of its working process are briefly mentioned here.
How does this system work?

Here, we place a camera on the top foot of the door which in turn clicks the photo of a person
who comes into frame. Now, this photo is sent to an analytical system which in turn compares
this with all the photos it possesses to identify whether to let the user open the door or not.

Now, if it does not find the photo of that person then it can notify the concern that a person is
trying to access this door would you like to authorize this person? or would you like to deny the
access to this person?

Usually, the Security Camera and a Door unlock system is used in the areas where you have
highly sensitive information stored. Another usage of the security camera and door unlock
system can be at our homes when we want to identify who comes to our home when we are not
there and either decide to give them access to our home or not.

Challenges of IoT

At present IoT is faced with many challenges, such as:

 Insufficient testing and updating


 Concern regarding data security and privacy
 Software complexity
 Data volumes and interpretation
 Integration with AI and automation
 Devices require a constant power supply which is difficult
 Interaction and short-range communication

Advantages of IoT
Key benefits of IoT technology are as follows:

 Technical Optimization: IoT technology helps a lot in improving technologies and


making them better. Example, with IoT, a manufacturer is able to collect data from
various car sensors. The manufacturer analyzes them to improve its design and make
them more efficient.
 Improved Data Collection: Traditional data collection has its limitations and its design
for passive use. IoT facilitates immediate action on data.
 Reduced Waste: IoT offers real-time information leading to effective decision making &
management of resources. For example, if a manufacturer finds an issue in multiple car
engines, he can track the manufacturing plan of those engines and solves this issue with
the manufacturing belt.
 Improved Customer Engagement: IoT allows you to improve customer experience by
detecting problems and improving the process.

Disadvantages IOT

 Security: IoT technology creates an ecosystem of connected devices. However, during


this process, the system may offer little authentication control despite sufficient security
measures.
 Privacy: The use of IOT, exposes a substantial amount of personal data, in extreme
detail, without the user's active participation. This creates lots of privacy issues.
 Flexibility: There is a huge concern regarding the flexibility of an IoT system. It is
mainly regarding integrating with another system as there are many diverse systems
involved in the process.
 Complexity: The design of the IOT system is also quite complicated. Moreover, it's
deployment and maintenance also not very easy.
 Compliance: IOT has its own set of rules and regulations. However, because of its
complexity, the task of compliance is quite challenging.

You might also like