sdlc-to internet
sdlc-to internet
sdlc-to internet
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.
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.
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.
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
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.
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.
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 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?
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.
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!
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.
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.
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.
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:
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.
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
Advantages of IoT
Key benefits of IoT technology are as follows:
Disadvantages IOT