You are on page 1of 90

lOMoARcPSD|32436628

Final-sdlc

Software Development (University of Sunderland)

Studocu is not sponsored or endorsed by any college or university


Downloaded by Rifas (rifashamid25@gmail.com)
lOMoARcPSD|32436628

Software Development Lifecycles 2018

Contents
Part: 1.....................................................................................................................................................4

Introduction........................................................................................................................................4

1.1 Software development lifecycle models.......................................................................................4

Iterative model....................................................................................................................................5

Two iterative models......................................................................................................................6

Sequential model..............................................................................................................................10

Two sequential model...................................................................................................................10

1.2 Spiral lifecycle model.................................................................................................................15

Identify and resolve risk...............................................................................................................15

Risk management in spiral model................................................................................................16

1.3 Selection of model for development environment.....................................................................19

1.4 Merits of applying waterfall model to a large software development project............................21

Conclusion........................................................................................................................................23

Part:2....................................................................................................................................................24

Introduction......................................................................................................................................24

2.1 Feasibility report.........................................................................................................................24

Purpose of feasibility study..........................................................................................................24

2.2 Technical solution.......................................................................................................................26

Comparison of technical solution.................................................................................................26

2.3 Components of feasibility report................................................................................................29

2.4 Impact of feasibility criteria on software investigation..............................................................33

Conclusion........................................................................................................................................38

Part: 4...................................................................................................................................................64

Introduction......................................................................................................................................64

4.1 Documentation of user and system requirements.......................................................................64

Tabulation of the expected client requirements and the actual output of the product..................65

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

4.2 Software specification................................................................................................................66

4.3 Finite state machine (FSM)........................................................................................................74

Deterministic finite automation....................................................................................................74

Nondeterministic finite automation..............................................................................................75

Applications of finite state machine.............................................................................................75

Extended finite state machine...........................................................................................................75

Application of extended finite state machine...............................................................................76

4.4 Data driven software...................................................................................................................76

Improving the reliability and effectiveness of the software using data driven software..............77

Conclusion........................................................................................................................................78

Bibliography.........................................................................................................................................79

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Part: 1
1. Description of predictive and adaptive software development models
considering at least two iterative and two sequential models.
2. The risks involved in each of the models and how the risk can be
mitigated /managed in each model by taking a reference of the spiral
model.
Once you have prepared the report you are required to produce documentation
that

3. Describe with an example why a particular lifecycle model is selected for a


development environment. You may consider a different development
environment with different business logics, platform, etc., and the
applicability of the particular software development model over the
development environment.
4. Assess the merits of applying the waterfall model to a large software
development project with appropriate evidenced researched work with
reference to the current context.

Introduction
In this task, we were given to explain software development lifecycle models. It
is the process of determining how an information system can support business
needs, designing the system, building the system and also delivering it to the
users. Software development lifecycle model can also be defined as the tools
that can be used for better delivering of software projects. After that we have to
describe two iterative and two sequential software lifecycle models and how risk
is managed in the spiral lifecycle model. Also we were given to describe with an
example why a particular lifecycle model is selected for a development
environment. We can also consider a different development environment with
different business logics, platform, etc. and the applicability of the particular

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

software development model over the development environment. Finally, we


have to assess the merits of applying the waterfall model to a large software
development project with appropriate evidenced researched work with
reference to the current context.

1.1 Software development lifecycle models


A software development life cycle (SDLC) model is a conceptual framework
describing all activities in a software development project from planning to
maintenance. In this process, it is associated with many models in which each
model includes a variety of tasks and activities. It involves several distinct
stages which includes planning, building, designing, testing and deployment.
Some of the popular software development lifecycle models are waterfall model,
spiral model and agile model which is used to develop a successfully application
effectively.

Iterative model
Iterative model is a particular implementation of software development life
cycle which focuses on an initial, simplified implementation which after that
progressively gains more complexity and a boarder feature set until the final
system is complete. Such style of model does not attempt to start with a full
specification of requirements. The figure of iterative model is given below:

Process of iterative model


The process of iterative model is given below:
i. Requirements gathering

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

In the iterative models, firstly all the requirement is gathered with proper
planning among the team and map out the specifications documents,
establish software or hardware requirement and also prepare for the
upcoming stages of the cycle.
ii. Design and development
Once the requirements are gathered, the designed stage occurs where the
technical requirement are established that will be utilized. After designing,
the development process begins in the same stage.
iii. Testing
After the development of software, testing is initiated in the cycle to identify
and locate any potential bugs or issues that may have been in the software.
After the development of every software, testing is most compulsory
because it haves to find out the fault and errors in the software so that it
could be fixed before implementing in the market or providing to the
clients.

iv. Implementation
Finally, the most important stage i.e. implementation begins. All the
planning, specification and design documents up to the point are
implemented into this initial iteration of the project and also maintaining
the application after development is done.

Two iterative models


The two iterative software lifecycle models are given below:
1. Spiral model
Spiral model is a combination of an iterative model and waterfall model. Each
phase in a spiral model starts with a design goal and ends with the client
reviewing the progress. Spiral model has specially four phases i.e. Planning,
risk analysis, engineering and evaluation. This type of model is specially used
for big projects which involves continuous enhancements. The figure of spiral
model is given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Every phase of the spiral model is divided into four quadrants which are
shown in the above figures. The functions of these four quadrants are given
below:
i. Determine objectives
This is the first quadrants among the 4 quadrants of the spiral model.
In this quadrant, firstly all the requirements are gathered from the
clients and also objects are identified, elaborated and analyzed. After
that alternative solutions possible for the phase are proposed in this
quadrant.

ii. Identify and resolve risks


In the second quadrant of spiral model, risk analysis which includes
identifying, estimating and monitoring the technical feasibility and
management risks such as cost overrun and schedule slippage are
done. After that all the possible solutions are evaluated so that the best
possible solutions can be selected. Later the risks associated with that
solution is identified and then the risk is resolved by using the best
possible solution.
iii. Development and test
In the third quadrants of the spiral model, the features which are
identified are developed and also verified through testing. The next
version of the software is also available at the end of this quadrant.
iv. Plan the next iteration

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

This is the last quadrants of the spiral model. In this quadrant, the
clients evaluate the so far developed version of the software. Planning
for the next phase is also started in this quadrant.
Advantages of spiral model

The advantages of spiral model are given below:


i. High amount of risk analysis reduces.
ii. Project monitoring is very easy and effective.
iii. Additional functionality can be added at a later date.

Limitations of spiral model


The limitations of spiral model are given below:
i. Cost involved in this model is usually high.
ii. Spiral model is not effective for smaller projects.
iii. It has intermediate phases due to which documentation is more.
2. Agile model
Agile model is a methodology for modeling and documenting software
systems based on best practices. It is a collection of values, practices and
principles for modeling software which can be applied on a software
development project in an effective and light-weight manner. Currently, one
of the most well-known agile development life cycle model is extreme
programming.

The figure of agile model is given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Process of agile model


The process of agile model is given below:
i. Requirements gathering
In the agile model, firstly all the requirement is gathered with proper
planning among the team and map out the specifications documents,
establish software or hardware requirement and also prepare for the
upcoming stages of the cycle. It is the most important step while
developing any types of application by using agile model.
ii. Design
Once the requirements are gathered, the designed stage occurs where
the technical requirement are established which will be utilized. The
layout of the software is designed properly in this stage. Without
proper design of the software, development stage is not carry out.
iii. Development
This is the third stage of software development by using agile model.
After the successful design of the layout of software, the development
stage begins. The programmer starts coding in the software according
to the requirement and layout of the software. It is also most
important stage of the agile model.
iv. Testing
After the development of software, testing is initiated in the cycle to
identify and locate any potential bugs or issues that may have been in
the software. After the development of every software, testing is most
compulsory because it haves to find out the fault and errors in the
software so that it could be fixed before implementing in the market or
providing to the clients.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

v. Deploy
After the testing stage, the most important stage i.e. implementation
begins. All the planning, specification and design documents up to the
point are implemented into this initial iteration of the project.

vi. Review
After the implementation of the software, review stage begins.
Sometimes there could be some errors or faults which is not detected
in the testing stage in the software. When such problem occurs then
the review of the software would be provided by the client which is
very important for the future reference. Due to review of software, we
can update the software by fixing the errors and faults occurred in the
software.

Principles of agile model


The principles of agile model are given below:
i. Customers satisfaction by early and continuous delivery of valuable
software.
ii. Welcome changing requirements even in late development.
iii. Deliver working software frequently.
iv. Sustainable development, able to maintain a constant pace.
v. Continuous attention to technical excellence and good design.
vi. Projects are built around motivated individuals, who should be trusted.

Advantage of agile model


i. Agile model promotes teamwork and cross training.
ii. Late changes in requirement could be done at any time.
iii. Easy to manage and gives flexibility to developers.

Limitation of agile model

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

i. In agile model, there is lack of emphasis on necessary documentation


and designing.
ii. Due to unclear end, projects can become ever-lasting.
iii. Since developers and customers must constantly interact with each
other, agile demands more time and energy from everyone.

Sequential model
Sequential model can be defined as the completion of the work within one cycle
in which one stage needs to be completely finished before the next stage can
starts. In this model, only one phase is carried out at a time and it is not
possible to go back after completing the stage. The phases are carried out in a
sequences. It suggests a systematic, sequential approach to software
development that begins at the system level and professes through analysis,
design, coding, testing and maintenance. It is the most important model which
helps to develop effective software.

Two sequential model


The two sequential software lifecycle models are given below:

1. Waterfall model
Waterfall model is the pioneer of the software development lifecycle
processes which is divided into phases and output of one phase becomes
the input of another phase. In the waterfall model, the software
development activity is divided into the different phases and each phase
are consisting of series of tasks and also it has different objectives. This
model illustrates the software development process in a linear sequential
flow. The figure of the waterfall model is given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Process of waterfall model


The process of waterfall model is given below:
i. Requirements analysis
In the waterfall model, firstly all the requirement which are required
for the application are gathered with proper planning among the team
and map out the specifications documents, establish software or
hardware requirement and also prepare for the upcoming stages of the
cycle. It is the most important step while developing any types of
application by using waterfall model.
ii. System Design
Once the requirements are analysis, the designed stage occurs where
the technical requirement are established which will be utilized. The
layout of the software is designed properly in this stage. Without
proper design of the software, development stage is not carry out.
iii. Implementation
This is the third stage of software development by using waterfall
model. After the successful design of the layout of software, the
development and implementation stage begins. The programmer
starts coding in the software according to the requirement and layout
of the software. It is also most important stage of the waterfall model.
iv. Testing
After the implementation of software, testing is initiated in the cycle to
identify and locate any potential bugs or issues that may have been in
the software. After the development of every software, testing is most
compulsory because it haves to find out the fault and errors in the
software so that it could be fixed before implementing in the market or
providing to the clients.
v. Deployment
After the testing stage, the most important stage i.e. deployment
begins. All the planning, specification and design documents up to the
point are implemented into this initial iteration of the project.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

vi. Maintenance
After the deployment of the software, maintenance stage begins and
remains for until the software is destroyed. Sometimes there could be
some errors or faults which is not detected in the testing stage in the
software. When such problem occurs then the review of the software
would be provided by the client which is very important for the future
reference. Due to review of software, we can update and maintain the
software by fixing the errors and faults occurred in the software.
Maintenance of the software is never ending process and also longest
stage of waterfall model while developing an application.
Advantage of waterfall model
i. Simple and easy to understand.
ii. Process and results are well documented.
iii. Phases are processed and completed one at a time.

Disadvantage of waterfall model


i. High risk and uncertainty.
ii. Poor model for ongoing project.
iii. Cannot accommodate changing requirement.

2. V-model
V-model stands for Verification and Validation model. It is a software
development lifecycle model in which execution of processes happens in a
sequential manner in a V-shape. In the V-model, the corresponding testing
phase of the development phase is planned in parallel. It is based on the
association of a testing phase for each corresponding development stage.
The figure of V-model is given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Stage of V-model
There are different stages of V-model which are given below:
i. Requirement analysis
This is the first stage of V-model for developing an application. In this
stage, there involves detailed communication with a client to know
their exact requirements in the application. This stage should be
completed carefully because the entire requirement in an application
is collected in this stage. If there is any misunderstanding while
collection the client’s requirement, then the software would be
incomplete.
ii. System design
After the successful collection of requirement in an application by the
client, the second stage i.e. system design begins to execute. The
system design will have the understanding and detailing the complete
hardware and communication setup for the product under
development. The layout required for an application are also designed
in this stage. This stage plays a vital role for the software development
through V-model.
iii. Architectural design
After the completion of system design, the architectural design begins.
In this stage, the system design is broken down into modules taking
up different functionality which is also known as high level design
(HLD). Specially, more than one technical approach is proposed and
based on the technical and financial feasibility the final decision is
taken in this stage.
iv. Module design

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

After completing Architectural design, the detailed internal design for


all the system modules are specified which is also known as low level
design (LLD). Module design is very important because the design is
compatible with the other modules in the system architecture and the
other external systems. It plays a vital role for developing an
application through V-model.
v. Coding

This is the fourth stage of software development by using V-model.


After the successful design of the layout of software, the coding stage
begins. The programmer starts coding in the software according to the
requirement and layout of the software. The coding should be based
on coding guidelines and standards. It is also most important stage of
the V-model.

vi. Unit testing


Unit testing designed in the module design phase are executed on the
code during this validation phase. Unit testing is done to fix or
eliminate the bugs, errors or faults at the early stage just after coding
in an application though all the bugs are not uncovered by unit
testing. This types of testing are done at coding level.
vii. Integration testing
Integration testing is done after unit testing which is associated with
the architectural design stage. Such type of testing is specially done to
test the coexistence of the internal modules within the system. This
stage is also very important to fix the bugs, errors or faults.
viii. System testing
System testing is directly associated with the system design stage.
Such type of testing is executed in order to check the entire system
functionality of an application and also to check the communication of
the system under development with external systems. If there is
software or hardware compatibility issues, then it could be also solved
during the system test execution.
ix. Acceptance testing

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Acceptance testing is the last and also important stage of V-model


while developing an application. This type of testing is associated with
the business requirement analysis stage and involves testing the
product in user environment. Acceptance testing is specially done to
fix the compatibility issue with the other systems available in the user
environment.
Advantage of V-model
The advantages of V-model are given below:
i. Simple and easy to use.
ii. Avoids the downward flow of the defects.
iii. This model works well for small projects in which requirements are
easily understood.

Limitation of V-model
The limitations of V-model are given below:
i. V-models are very rigid and also least flexible.
ii. High risk and uncertainty.
iii. Not appropriate for complex projects.

1.2 Spiral lifecycle model


Spiral lifecycle model is a combination of an iterative model and waterfall
model. Each cycle of the spiral model is completed by a review including plans
for the next cycle. In the spiral lifecycle model, project monitoring is very easy
and effective. Spiral model has specially four phases i.e. Planning, risk analysis,
engineering and evaluation. This type of model is specially used for big projects
which involves continuous enhancements. Such model is favored for large,
complicated and expensive projects. The figure of the spiral lifecycle model is
given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Spiral lifecycle model

Identify and resolve risk


In the second quadrant of spiral model, risk analysis which includes identifying,
estimating and monitoring the technical feasibility and management risks such
as cost overrun and schedule slippage are done. After that all the possible
solutions are evaluated so that the best possible solutions can be selected.
Later the risks associated with that solution is identified and then the risk is
resolved by using the best possible solution. Finally, prototype is built for the
best possible solution at the end of this quadrant. Thus in short we can say that
identification of potential risk is done while risk mitigation strategy is planned
and finalized. In the above figure of spiral model, it has divided the development
part into the four quadrant. It has included one full quadrant for the identifying
and resolving of risk even if there is no risk in the sense that there could be risk
in the future. It gives more priority for the risk analysis. For example, while
doing an assignment, if we give 3 hours out of 12 hours in one task then it
would be best task. If we give one fourth of time for completing one task, then
we think properly and complete that task in the better way. Same as that we
give one fourth of time for the identify and resolve of risk due to which there
would be very less change of having risk in the software.

Risk management in spiral model


We can manage a risk from several ways using the spiral model. The risk which
can be managed by using the spiral model are given below:
i. Risk analysis in initial phase
In the spiral model, it identifies the risk factors which harms the project.
It also divides the risk as in the form of user interface risk and

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

development risk. Those division of risk evaluate the risk occurring on


each cycle and also helps developer to handle the risk through resolution
technique such as prototyping and benchmarking.
ii. Evolutionary prototyping spiral
In the spiral model, evolutionary prototyping spiral helps to minimize the
risk before proceeding into the development method. It also helps to
solve the action and user interface related risk. It also plays a vital role
for minimizing the risk in the spiral model.
iii. Analysis risks at each cycle
In the spiral model, risk is analysis at each cycle due to which it would be
easy for solving the program development and error, fault or risk from
the application. It also evaluates and also solve the new risk which might
be develop by changing any of the objectives, alternatives or constraints
at the starting of the cycle.
iv. Iterative features
In the spiral model, iterative features give permission to the
development process for moving back to the first quadrant at any point
which helps in objectives, alternatives and constraints to change for the
purpose to exist more attractive alternatives. It also plays a vital role in
the risk analysis and solving the risk in the spiral model.
v. Conducted review at the end
The review is specially conducted at the end of the cycle in the spiral
model which includes the main stakeholder as the decision part for
removing the lack of commitment risks from the next cycle. It is also
very important for analyzing the risk in the spiral model.

vi. Managed of time and cost overrun


Time and cost is managed in the proper way in the spiral model due to
which risk analyze stage is conducted at each cycle of this model. It is
very important to manage the time and cost in every model for the
successful development of an application which is also done in the spiral
model.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

vii. Manage of increased complexity


Sometime the complexity while developing an application can be
increased. There is this special feature in the spiral model that it can
manage the increased complexity in the proper way due to which there
is decrease in the risk while developing an application.

Also risk is managed on the basis of following diagram which is given below:

Firstly, risk management is divided into two parts which are given below:
1. Risk assessment
Risk assessment can be defined as the identification, evaluation and
estimation of the levels of risks involved in a situation, their comparison
against benchmarks or standards and determination of an acceptable level of
risk. It studies the risk and helps the development to solve the appeared risk.
The risk assessment is further divided into three parts which are given below:
i. Risk identification
Risk identification is the first process of risk assessment. Without identifying
the risk, we cannot find the best solution. We should know what types of
risk it is or which types of risk is going to be occurred in the future so that
we can make the best possible solution for solving the risk.

ii. Risk analysis


After identification of risk, we should analyze the identified risk. We should
analyze deeply to know the main causes of rise for solving it. Without
analyzing the causes of risk, we cannot find the best possible solution for

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

solving it. Also we should analyze which problem can be occurred in the
software if we do not solve the risk or what types of risk it is deeply.
iii.Risk prioritization
After risk analyze, we should prioritize the risk on the basis of importance,
nature or danger. The risk which is very danger for the software or very
important to solve should be solved suddenly before solve other risk. If we
do not prioritize the risk then, it can bring a lots of problem in software in
the future. We may not be able to solve in the future if we do not solve it
suddenly. Thus, risk prioritization is most important process of risk
assessment.

2. Risk control
Risk control is the method by which firms evaluate potential losses and take
action to reduce or eliminate such threats [ CITATION Ris19 \l 1033 ]. It is the
most important part of risk management. In the simple word, we can say risk
is managed for controlling it. Without controlling risk, there is no use of risk
management and there would be regularly different risk occurs in the
software. The different parts of risk control are given below:
i. Planning
As we know, planning means thinking before doing anything. While
controlling the risk, the first step which can be done is planning. Firstly, we
should plan how we can manage or control the risk. We should plan
properly among the group of developers to bring the best possible solution
for solving the risk in a software.
ii. Resolution
After the successful planning, we should move on to the second step which
is resolution. We should move forward on the risk management or control
process on the basis of which we plan in this step.
iii.Monitoring
Finally, the last and important steps of risk control is monitoring. We have
to monitor the risk while solving it. In this step, it tracks and evaluates the
levels of risk in a software. It is the ongoing process of managing the risk.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

After the resolution of risk, we have to monitor the risk everything for
solving it successfully.

1.3 Selection of model for development environment


While developing an application, we have to select the best model according to
the demand of client in the application. If the selection of model is best, then we
can develop any application easily and effectively. But the selection of model for
development environment is not so easy. We should have knowledge of every
model and should know which model is best while developing an application. If
we are able to select the best model while developing an application then it
helps to decrease development time and price, manipulate vulnerability, restrict
overhead and danger exposure and also decorate quality in an application.

For the development environment, I would mostly select spiral model. It is an


aggregate of a waterfall version and iterative model. Each cycle of the spiral
model is completed by a review including plans for the next cycle. In the spiral
lifecycle model, project monitoring is very easy and effective. Spiral model has
specially four phases i.e. Planning, risk analysis, engineering and evaluation.
While developing an application using spiral model, firstly we have to focus on
the planning. We have to gathered the entire requirements from the client and
also objects are identified, elaborated and analyzed. After the successful
gathering od requirement, the planning is done where all the features and
facilities of an application are discussed. After planning, risk analysis which
includes identifying, estimating and monitoring the technical feasibility and
management risks such as cost overrun and schedule slippage are done. When
the risk analysis done, the development stage begins in which the features
which are identified are developed and also verified through testing. Finally, the
evaluation stage is started. This is the last stage of spiral model in which
maintenance and review is also done. This type of model is specially used for
big projects which involves continuous enhancements. The vital evaluation
among the spiral model and other models is its undeniable acknowledgment of
danger. A cycle of the spiral starts off evolved by means of explaining targets,
as an instance, execution and value. Spiral version is utilized for the most
element in massive projects.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

There is also many applicability of the spiral model over the development
environment. Cost estimation becomes easy in this model because the
prototype building is done in small fragments. Additional changes can be done
at also later stage while using spiral model. Development of an application is
usually fast and features are included in a systematic way in the spiral model.
Development can be divided into a smaller parts and the risky parts can be
developed earlier which helps in better risk management. Also in this model,
one fourth of time is invested for the risk identification and resolving it due to
which there is very less change of having risk in the software while using spiral
model. When the requirement of client in very complex then also the spiral
model is very useful for developing the software successfully including the
complex requirement of the client. Thus, there are many applicability of the
spiral model over the development environment.

For example, in our scenario, there is one large insurance company while
developing the software of insurance company, we can use different model
according to the features included in the software and its nature. But according
to me, spiral model is best for the development of insurance company software.
As we know, spiral mode is the It is an aggregate of a waterfall version and
iterative model. It has quality of both waterfall model and iterative model.
Firstly, we have to gather the entire information from the administrator of an
insurance company like. After that we have to discuss and plan among the team
about the features and facilities include in the application like money payment,
news of insurance company, etc. After proper planning, we have to analyze the
risk which could be occurred in an application. We have to find out the different
risk which could be occurred in an application and also the best solution for the
risk. After that we should more on towards the engineering stage which we
design and code for an application. Finally, we have to evaluate our application
from the clients. We can also take review from the administrator and user for
the future update. If we use this approach for the insurance company software
development, then surely it would be the best application for the entire
insurance company. The spiral model would be the best for the development
environment than other model due to its many advantages.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Considering the application of spiral model and also the above example, there is
many benefits of using spiral model for the development environment. We give
one fourth time for the risk analysis due to which there is very less possibility or
almost no possibility of risk or any types of error in an application. Cost
estimation also becomes easy in this model because the prototype building is
done in small fragments. Due to these reasons, I have selected spiral model for
a development environment.

1.4 Merits of applying waterfall model to a large software development


project
As we know, waterfall model is the pioneer of the software development
lifecycle processes which is divided into phases and output of one phase
becomes the input of another phase. Such types of model are useful and
predictable approach if requirements are fixed, well documented and also clear.
It is a very straightforward approach i.e. while developing software, it finishes
one phase then move on to the next. Each stage relies on information from the
previous stage and has its own project plan. Such types of model usually have
clear structure which are easy and simple to understand and also to use. We
also explain waterfall model as a “linear-sequential lifecycle mode”. This means
that it follows a simple and easy structure of phases which the results of each
phase cascade down to the another or next level of development.
There are many merits of applying waterfall model to a large software
development project which are given below:
i. Simple and easy to understand and use
Waterfall model is very easy and simple to understand and also to use. In this
model, we have to finish one phase completely and only move on to the

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

another phase. It helps to minimize the errors or faults from the software
because all the faults and errors are fixed at the early stage. Every person
can easily understand this model if they give their few time to understand
although they are beginners. It plays a vital role while making a large
software development project successfully and effectively.
ii. Use clear structure
Usually waterfall model focus on the clear structure on comparison to other
model. While developing the software, it finishes one phase completely then
move on to the next. Due to this, there would not be any difficulty or
confusion while developing the software. If there occurs any fault or error,
then the development process is not further move on. Firstly, it fixes the fault
or error then only move on to the next phase. Thus, it has benefits of
applying waterfall model to a large software development project.
iii. Determines the end goal early
When we use waterfall model for the large software development software
then it would have clear structure. We complete each phase completely then
only move on to the next phase. Due to this, we can also determine the end
goal early. When the entire step complete without any fault or error then we
can determine the end goal before the completion of software development.
It is one of the most important merit of applying waterfall model to a large
software development project.
iv. Transfer information well
Waterfall approach is highly methodical due to which this methodology
emphasizes a clean transfer of information at each step. When we use
waterfall model in a large software development project, we can easily
transfer the information. Whether we pass projects off at each step or
experience unexpected personnel changes, waterfall prioritizes accessible
information so new additions to the team can get up to speed quickly if
needed. It is also one of the most important merit of applying waterfall model
to a large software development project.
v. No financial surprises
While developing a large software through waterfall model, costs can be
estimated with a fairly high degree of accuracy once the requirement have

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

been defined. There is an exact estimation of the budget while gathering the
requirement due to which there would not be any problem of finance in the
middle stage of developing software development project. It also plays a vital
role for developing a large software project successfully and effectively.

Furthermore, there is need of many features, requirement and functionalities in


the large project. Due to feature of moving forward to another phase only after
completing running phase in the waterfall model, each and every requirement
are initially identified appropriately so that the developer should not have to
make changes which helps to save the time as well as cost. There are so many
large project that are developed by using waterfall model and also they are very
famous in the present time too such as gigantic bridge, a 50+ floors building,
etc. The software that are developed by using waterfall model will be long
lasting because since there would be no change to change the previous work in
a project and they only have to move forward not backward, customer made
clear decision at the beginning and developer make sure that every requirement
and demand of the customer is being fulfilled before entering to the next phase.
Similarly, the outline is also designed after the proper analysis of requirements
and before deployment of the software it is tested to make sure either it is run
properly or not. The software made by using waterfall model won’t become
outdated because while developing a software, developer designed it by
considering the future condition and requirements as well. Thus, due to its great
features and developing process, there are many merits of using waterfall
model while doing the large software development project.

Conclusion
In this task, I have firstly explained about software development lifecycle. After
that I have explained iterative model and also two iterative models with its
figure, advantage and limitations. Iterative model is a particular implementation
of software development life cycle which focuses on an initial, simplified
implementation which after that progressively gains more complexity and a

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

boarder feature set until the final system is complete. In the same way, I have
also explained sequential model and two sequential models with its figure,
advantage and limitations. After that I have explained how risk is managed in
the spiral model. I have also explained why I have select spiral model for the
development environment with the example of insurance company software.
Finally, I have assessed the merits of applying the waterfall model to a large
software development project.

Part:2
1. You are required to produce a documentation that explains the purpose of
the feasibility report and describes how technical solutions can be
compared.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

2. Prepare a brief report discussing the components of the feasibility report.

3. Carry out the feasibility study as per the best of your previous research
work against the solution to be developed for the given problem and assess
the impact of different feasibility criteria on the software investigation.

Introduction
In this part, firstly we have to explain about the feasibility report. It is a
document which assesses potential solutions to the business problem or
opportunity and also determines which of these are viable for further analysis.
After that we have to explain the different purpose of a feasibility report and
how technical solutions can be compared. Technical solution is the process that
describes the methods which are used to design quality solutions. In the same
way, we have to explain the components of the feasibility report. Finally, we
have to carry out the feasibility study as per the best of our previous research
work against the solution to be developed for the given problem and assess the
impact of differently feasibility criteria on the software investigation.

2.1 Feasibility report


As we know a feasibility report is an analysis which is used in measuring the
ability and complete a project successfully including all relevant factors. It is
used to determine whether to proceed with the project or not. It is also used to
identify the important risk that is associated with that project. Feasibility report
is a document which assesses potential solutions to the business problem or
opportunity and also determines which of these are viable for further analysis. It
is a result of feasibility study. It is presented to the company that requested
recommendations to solve particular problems.

Purpose of feasibility study


There are different purposes of feasibility study which are given below: -
1. To define the potential solutions to the defined problems or needs
2. To explore the business opportunity and alternative paths available
3. To explore the different markets and targets audience
4. To prepare final draft of the project
5. To explore the price of the project that the targeted audience is ready to
pay

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

6. To assist the management in implementing the desired system

1. To define the potential solutions to the defined problems or need


As we know that feasibility report is a document which assesses potential
solutions to the business problem or opportunity and also determines which
of these are viable for further analysis. With the help of the feasibility study,
we analyze the problem and find out the main causes of the any problem
with its best solution. It plays a vital role for making the project free from
problems, errors and faults.
2. To explore the business opportunity and alternatives paths
available
When we develop the feasibility report, we know the different ideas or
knowledge about the project like its problem with solution, benefit and
limitations of the projects, budget and manpower for the projects, etc. A
person can easily increase his business or make more profits if he makes
proper feasibility report. Thus, feasibility report is most important to explore
the business opportunity and alternatives paths available.
3. To explore the different markets and targets audience
The another purpose of feasibility report is to explore the different markets
and targets audience. Feasibility reports also includes the demand of
project in the markets by the clients or targeted audience. If there is more
demand of the projects in the market by the targeted audience, then the
project starts to complete as soon as possible. It includes different markets
and targeted audience due to which different market explores.
4. To prepare final draft of the project
After feasibility study before doing any project, a person knows everything
about the projects such as budget, manpower, time-durable, demand by
clients, etc. After that they prepare the document on the basis of their
research. Thus, feasibility report helps to prepare the final draft of the
projects.
5. To explore the price of the project that the targeted audience is
ready to pay
While doing some project, it is difficult to fix the price of the project.
Sometimes the price could be fix more which the targets audience denied

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

to pay and sometimes the price of the project is fixed less due to which he
could have bear loss. Due to such problem, it would be very difficult to fix
the price of the project. But feasibility study makes document of each and
every detail like manpower, expenses, budget, etc. due to which it explores
the price of the projects that the targeted audience is ready to pay.

6. To assist the management in implementing the desired system

With the help of the feasibility report, a person can know each and every
detail information about the project which is being going to start. Due to
this, it would be very easy to assist the management in implementing the
desired system otherwise a person has to face a lot of project while
managing the project. He should keep result of everything which is done on
the regular basis and manage it so that the client should not face problem
on it.
Furthermore, the feasibility report helps to show the different problem with its
location which is occurred in the software. All the solutions for the problem are
explained showing the economic, operational and technical feasibilities.
Economic feasibility is related to the cost which includes the entire expenses
such as cost of hardware, salary of man power, operating expenses, etc. The
operational feasibility addresses how solution would be fitted into the existing
operation and the technical feasibility addresses how the solution will be fitted
into the existing structure. The feasibility report should be edited on the gap of
certain time to add the information of certain interval which were gathered after
preparing the report. The other purpose of the feasibility report is to know the
different variables involved with the business venture and how it will be
accepted on the open market along with who will be the targeted audience. It
explores the main focus of the business opportunity along with the alternative
paths it would follow. Feasibility report is the most important document for the
effective and successful development of software too.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

2.2 Technical solution


Technical solution can be defined as one that requires a change only in the
techniques of the natural sciences, demanding little or nothing in the way of
change in human values or ideas of morality. Technical solution is basically done
to develop, design and implement solutions according to the requirements. It is
very important to use technical solution for every problem so that it could be
easily solved. The technical solution process area is applicable at any level of
the product architecture and to every products and product related lifecycle
process.

Comparison of technical solution


Technical solution can be compared on the basis of following points:
1. Budget
2. Performance
3. Efficiency
4. Automation
5. Legacy systems upgrade

6. Elimination of human errors

1. Budget
As we know budget is the amount of money which is required to complete
the application successfully and effectively. If the budget for developing an
application is strong then a developer can develop any type of application.
The first and main things required for the software development is budget
because everything required for the software development like software
developer, marketing manpower, buying of technology, etc. needs money. It
also helps to compare the technical solution. For example, if the budget of
developer while developing an application is low then he has to face lots of
problem. He cannot buy new technology, his friends and staffs might leave
him if they do not get their salary on time, he cannot solve the problem
properly etc. The software may not able to get completed by him. But if he
has enough budget for the software development, he can buy new
technology, he can fulfill the needs of his staffs and friends, he can solve
each and every problem occurred in an application, etc. In short, he can

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

develop the application successfully without any difficulties. Thus, budget


plays a vital role while developing an application successfully and also to
compare the technical solution.

2. Performance
As we know that performance is the action or process of performing a task
or function. It plays a vital role in the comparison of technical solution. The
best solution which is chosen among different solution can be selected by
analyzing their performance. For example, there is need of accountant in the
insurance company. They are facing a lot of problem in the financial
transaction due to lack of good accountant in the company. To solve this
problem, they give notice about job opportunity in accounting post in the
insurance company. There could be many candidates who come for the
interview but the candidate whose performance is better that other in the
interview and who can keep the record of every transaction is always being
selected in the post. In this problem, performance has played a vital role in
solving the technical problem.

3. Efficiency

Efficiency signifies a level of performance that describes using the least


amount of input to achieve the highest amount of output [ CITATION Ken18 \l
1033 ]. While solving any problem, a person must look the efficiency of the
solution. For example, Previously, there was problem to keep the record of
client in the insurance company in the paper. It was very difficult to keep the
record safely and find it out in the emergency case. For this problem, there
was some solution like keeping more employees, keeping the record
according to name, etc. but the best solution due to which the efficiency of
the insurance company increase is installing the software which keep the
record of the client digitally so that the information of the client can be
gained in a second whenever required. This, efficiency is very important in
the comparison of technical solution.
4. Automation

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Automation is the creation of technology and its application in order to


control and monitor the production and delivery of various goods and
services [ CITATION Aut18 \l 1033 ]. It usually performs a task which were
previously performed by the humans. For example, if there is paper to keep
the daily record of the employee in the company, he can write anything in
the paper. He can write any time according to their wish. if there is digital
machine like fingerprint machine in the insurance company to keep the
record of staff, it would be easy for the employees and also for the
administrator to keep record of every day. There would not be any cheating
in the time of the employee because the fingerprint machine gives exact
time related to coming and going of employee. Due to this, we can say that
there is use of automation in the company and it helps to compare technical
solutions.
5. Legacy systems upgrade
Legacy system upgrade is an another important component by which
technical solutions can be compared. If we can upgrade the system from old
to new by changing its parts, then it would be the best options. We can save
our lots of money by legacy systems upgrade. For example, we want a new
feature in the software of insurance company with new policy, offers, rules,
etc. For this purpose, if we upgrade the old software by upgrading the policy,
offers, features, etc. rather than developing the new software then it helps
to save our lots of money as well as time. We can get a better application in
low budget and less time. Tus, legacy system upgrade is very important for
everyone.
6. Elimination of human errors

While comparing the technical solution in order to solve problem, we should


keep in mind that there should not be any human errors. It creates many
difficulties if we do not eliminate the human errors in the technical solution.
We can use different digital machine so that we can avoid simple human
errors while solving the problem It plays the vital roles in the comparison of
technical solution. For example, there could be human errors while keeping
the record of the clients in the insurance company. Sometime staff can put

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

the record of two different persons in the same file. Such types of problem
can be solved by using different advance software in the present world.

2.3 Components of feasibility report


There are many components of the feasibility reports which are given below: -

1. Introduction

2. Purpose

3. Methodologies
4. Background history
5. Document structure
6. Intended audience
7. Feasibility criteria
8. Outcome
9. Possible alternate solutions
10. Evaluation criteria
11. Feasible solution

12. Conclusion and recommendation

1. Introduction

It is the first components of the feasibility reports. We should always include


introduction of the project of which we check feasibility and make feasibility
report. In this stage, there should be explanation about the project and
criteria which are used to check their feasibility. For example, if we want to
check the feasibility of the software based on insurance company then firstly
we have to give some introduction about software and the facilities which are
used in the software. It helps in development of the software effectively.

2. Purpose
After the introduction, the purpose of doing the project should be clearly
explained. It explains developer about all the features to be included in the
project. It also includes the main reason of developing doing the project. For

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

example, if we want to develop the software based on the insurance


company then we have to example the purpose of developing that software.
We have to explain all the necessity and facilities available in the software
due to which it would be beneficial for insurance company.

3. Methodologies
Methodologies is the third components of the feasibility report. After
explaining the purpose of project, we have to find out or explain the
methodologies of doing project. There are different methodologies of doing
projects according to their nature. For example, while developing the
software for the insurance company, we can choose one method among
different methodologies like waterfall mode, spiral model, prototype
methodology, etc. according to the nature of the application. We have to
choose any one of these according to the nature of the application which can
bring best output after using. It plays a vital role to develop a best as well as
worst application. If we choose the method suitable for the application, then
it can make the application very effective. In the same way, if we choose
method which is not suitable for the application then it can make the useless
application. Thus. Methodologies plays a vital role for an effective
development of an application.
4. Background history
Background history is the another very important components of a feasibility
report. While developing an application, we should collect the background
history of the company so that it would be easy to develop an application
and we can include every features which is required in a software. For
example, before developing an application of insurance company, we should
collect each and every information including background history related to
the insurance company so that we can know what features are important for
the software and what features are not important. We can also include a note
about company including establish date, board of directors, manager, etc.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

from beginning to till date if we know the background history of the company.
Thus, a developer must collect the background history for the development
of better and effective application successfully.
5. Document structure
As we know document structure describes the organization of a document
into graphical constituents like sections, paragraphs, sentences, bulleted lists
and figures. It is the most important components of feasibility report. While
working on the project, we should always keep in mind to have well-
structured document. It helps to complete the project effectively in the given
time. For example, while developing the software for the insurance company,
a well-structured document should be made so that there would not be any
problem while developing a software.

6. Intended audience
Intended audience can be defined as the group of people for whom a service
or product is designed. A project should be complete in such a way that give
best service to the client and satisfy them. If the project is done without the
satisfaction of client, then it would be just useless project. For example, while
developing the insurance company software, we should know that needs and
demands of the client in the software. We should research their satisfaction
so that we can provide best service to the clients. After that we can develop
the best software which holds the entire services needed to the clients of
insurance company.
7. Feasibility criteria
Feasibility criteria plays a vital role while develop any application. As we
know, there are different feasibility criteria like economic criteria, technical
criteria, operational criteria and many more. Economic feasibility is related to
the cost which includes the entire expenses such as cost of hardware, salary
of man power, operating expenses, etc. The operational feasibility addresses
how solution would be fitted into the existing operation and the technical
feasibility addresses how the solution will be fitted into the existing structure.
In short, it helps to find the problem in an application and also helps to solve

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

it. For example, while developing an application, we have to be feasible from


everywhere i.e. economic, technical and also operational. There should not
be any problem of money in the development of application, there should be
high technical equipment and man power and the operational of software
should be always good. If there are these feasibility criteria, then no one
could stop us from developing the best application.
8. Outcome
When the project is finish, we should be aware about the outcome. There
could be some errors and faults in the completed project in many case. It
could bring lots of problem for the developer if he does not solve the problem
immediately. For example, if there is error while depositing money from bank
to insurance company from the software then there may be loss of money
due to that software. If such problem occur, then there would be very
negative impression of software in front of the clients. Thus, a developer
must be aware about the outcome of the project.

9. Possible alternate solutions


If some errors or faults occurs in the outcome of the project, then there
should be alternate solution to solve that problem immediately. A developer
must have different alternate solution so that he can find and solve the
problem in very less possible time. This would help developer to make the
good impression of software in front of clients. Possible alternate solution
helps to increase the efficiency of the developers and also software. It is also
one of the most important components of the feasibility report.
10. Evaluation criteria
Evaluation criteria can be defined as a standard measures established to
evaluate the degree to which an alternative solution, proposals, or individuals
are able to meet expectations or objectives through direct comparisons of

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

their strength, weaknesses and trade-off. It is a benchmark or yardstick


against which accomplishment, conformance, performance and suitability of
an individual, alternative, product as well as risk reward ratio is measured.
The evaluation criteria also play a vital role in a development of an
application. It helps to measure the risk or problem and bring the alternative
solutions of a problem and also helps to know the strength and weakness of
the developing application. Thus, evaluation criteria is one of the most
important purpose of feasibility report.
11. Feasible solution
If there is some bugs or errors in the development of an application, then the
developer always looks for the feasible solution. The solutions for the
problem should be always long lasting which do not create any big problems
in the future. In most of the case, developers solve problem for the
temporary period thinking the they will work on it later. But later it brings
very big problem in an application and the developer becomes unable to
complete an application. To avoid such thing, we should always look for the
feasible solution which solves the problem completely and there would not
be any difficulties in the future.
12. Conclusion and recommendations
The last and important purpose of the feasibility report is conclusion and
recommendations. We should always include some recommendations and
suggestion after the completion of an application as a conclusion. It helps
users to use the application effectively. They can know the features available
in an application and also how to use that application. If some error occurs in
the future or at the time of updating too, we get lots of help with
recommendations at the conclusion. It plays a vital role to develop an
application successfully.

2.4 Impact of feasibility criteria on software investigation


As we know a feasibility study is an analysis which is used in measuring the
ability and complete a project successfully including all relevant factors. It is
used to determine whether to proceed with the project or not. It is also used to
identify the important risk that is associated with that project. It includes the
chances of making better existing system, developing a new system, and

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

produce changed estimates for further development of software. There are


many impact of feasibility criteria on software investigation which are given
below: -
1. Economic criteria
The main purpose of economic criteria study is to demonstrate the net
benefit of a proposed project for accepting or disbursing electronic
funds/benefits, taking into consideration the benefits and costs to the
agency, other state agencies, and the general public as a whole. Economic
analysis is used for evaluating the effectiveness of the proposed system. It
also determines the budget of the project in advance after analyzing the
requirements. While developing the software, if there is used of low cost in
comparison of budget determined in advance then it can be called as
feasible but if there is used of high cost in comparison of budget determined
in advance then it can be called as not feasible. While developing the
software of insurance company according to our scenario, there was cost
limitation of five lakhs. The software which we were going to develop was
very big but it had cost limitation of only five lakh rupees. Due to this, we
have spent every money only after planning and safely without wasting a
single rupee. The cost estimation while developing the software of insurance
company are:

S.N. Cost factors Cost


1. Planning and requirement gathering Rs. 50,000
2. Checking system reliability Rs. 20,000
3. Database designing Rs. 25,000
4. Hardware Rs. 90,000
5. System development tools Rs. 40,000
1. System designing and analysis Rs. 35,000
2. Development of system Rs. 55,000
3. System testing Rs. 85,000
4. System implementation and installing Rs. 30,000
5. Extra expenses Rs. 30,000
6. Total Rs. 4,60,000
In the above table, I have shown the entire expenses which was done while
developing the insurance company software. The total expenses were only
four lakhs and sixty thousand whereas our budget was five lakhs. While
developing an application, we have got the profit of forty thousand rupees. It

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

is showing the positive impact of developing the insurance company


software. Now, if the users like this application then they would download
this software more and more due to which we get more profits. I have
included every features needed in the insurance company software due to
which the software is very useful for every user. While developing the
application, there was occurred some problems related to the economic but I
have also find the best solution for that problems which are given below:

Problems and Solutions occurred in a project related to


economic

S.
Problems Solutions
N
i. High cost than budget planned Before starting the project, there should be proper
and lack of economic at the end planning of budget in every stage of the project
of project. and we should include some extra amount in the
budget so that there would not be lack of
economic if the price of resources increased or
there occurred more expenses that it was actually
planned.
ii. Demand of increment in salary or There should be contract between the employee
other facility in the middle of and administrator to have same salary and facility
project by employee from starting of the project to end of the project so
that the employee could not demand for increment
of salary or facility.

2. Technical criteria
The main purpose of technical criteria is study the project in terms of input,
processes, output, fields, programs and procedures. It provides most
appropriate technical solution to the developed problem. It plays a vital role
for the successful completion of the project. It evaluates which technology or
server is used for software investigation like computer system, database etc.
are feasible or not for the project. In the development process of insurance
company software, we have to check all the technology which is feasible for
the software. Also if there occurred some problem in the software then we
should search for the technical solution to solve the occurred problem
successfully. While developing the insurance company software, I have used
java programming language. With the used of java programming language,
it helped me to make the insurance company software for desktop, mobile

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

and even for tablets. We can use this software in mac too. I have also used
MySQL database to store the data of software, server, etc. I have used
proper technologies while developing an insurance company software due to
which the software is successfully completed with every required features.
This software can be run in the old systems too if the hardware requirement
meets. The hardware requirement of the insurance company software is
given below:

For windows computers


 64-bit operating system is required.
 Compatible in Windows7, Windows 8, Windows 10 or so on.
 2GHz processor with Intel

 Hard Drive: Minimum 32 GB; Recommended 64 GB or more

 Minimum 4GB of RAM is required.

 Minimum 2GB of graphics card.

For Mac Computers


 Apple Mac OSX 10.5 “Leopard” or higher
 An Intel Core 2 Duo, Core i3, Core i5, Core i7, or Xeon processor.

 Hard Drive: Minimum 32 GB; Recommended 64 GB or more

 2GB of ram

This is the main advantage of using this software that we can use this
software at any system without any difficulties if the hardware requirement
meets. Due to these reasons, we are feasible technically. There is not
technical problem in the insurance company software. While developing an
application, there occurred some technical problem but I have found the
solution too which are given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Problems and Solutions occurred in a project related to


technical

S.
Problems Solutions
N
i. Lack of latest technology to meet Nowadays, a client need new technology which
the demand of client meets their every demand and make them easy in
their life. The needs a complete project with zero
error. In order to include latest technology in the
project, we have to use skilled manpower who
have knowledge and idea of latest technology
while doing a project.

3. Time feasibility
The main purpose of the time feasibility is to know whether the project
deadlines which is fixed is reasonable and the project can complete on that
time or not. While developing the application, many developers do not think
about the deadline seriously due to which they cannot finish the project on
time. As the result, they have to face lots of financial and time loss. Such
conditions should not come even mistakenly in the software developer’s life.
If the deadline is mandatory, then we should confirm properly at the
beginning before starting the project so that we can be serious on that
project. If the deadline of the project is desirable that we can submit the
project even after the deadline because it would not bring any difficulties if
such project’s is not completed on time. While developing the software of
insurance company, I have got only 3 months’ time to complete the
software. It was very hard to complete such a big software in just 3 months.
Me and whole team worked very hard to complete this software and finally
able to complete the software in just 2 months and 25 days. The time
schedule of different stage while developing an application are given below:

S.N. Work done Number of days


1. Planning 7 days
2. Analysis 6 days
3. Designing 25 days
4. Development and implementation 29 days
5. Testing 18 days

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Total days 85 days

In the above table, I have shown the total number of days needed to
complete the development of insurance company software. It was very hard
and challenging to complete such a big software in just 3 months. My team
worked very hard to complete this software and finally able to complete the
software in just 2 months and 25 days. We have even worked for a full days
and night for some days to complete this software on the given deadline.
4. Legal feasibility
Legal feasibility determines whether the proposed system conflicts with
legal requirements, e.g., a data processing system must comply with the
local data protection regulations and if the proposed venture is acceptable in
accordance to the laws of the land. It studies and follows the rules of the
government. Once the project is finished, it will check under government
and its functions are studied. While developing the insurance company
software, we have keep in mind to follow the rules and regulations make by
government for the insurance company like tax rate, maximum collection of
amount by the clients, etc. If we have not include such rules in the software,
then it would have been illegal and the company might have face lots of
problem. But I have included the entire rules and regulations of the country
in the software due to which the users are also aware about it and our
company is not facing any problems. This, there is positive impact of legal
policy in the insurance company.
5. Operational criteria
The feasibility study helps to know how the proposed system is taking
advantage from the opportunities outlined in the project identification study
and solve the problem. This operational criterion explains the importance of
problems and acceptability the system of an insurance company. An
operational evaluation will need to confirm the adequacy of normal and
contingency procedures for the particular equipment installation. It also
includes the people oriented and social issues. When the software is done
then it should be come in use properly and regularly. Since I have made the
software of international company, there is a huge amount of clients in the

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

company. Many people can use the software at a time due to which their
server can crash or the software can become slow. To avoid such problem, I
have used best and very expensive server which can hold thousands of
clients at a time without any difficulties. Thus, there is positive impact of
software and the software is operating very well without any complain or
difficulties.

6. Social criteria
Social criteria determine whether the proposed project will be satisfactory
for the people or not. It also determines what skills the target population
need to learn on the job and how to learn them if the jobs will meet their
needs. It accesses whether the organization is likely to succeed in making
the social changes. It is the most important feasibility criteria. In the
insurance company software, there are many features which makes social
changes. I have made easy features for clients while doing every task. The
clients of the insurance company should feel comfort, time saving and
should learn many things from the software. In the insurance company
software, everything about the insurance company is done and found from
the software due to which the persons of the society are encouraging about
the insurance company to do their insurance. Due to this, they do their
insurance including their family too if they feel better offers or policies of the
company. Thus it has bought positive impacts in the society.
7. Management criteria
Management Feasibility is the analysis and evaluation of a proposed project
to determine if it is technically realistic, is within the estimated cost and if it
will be profitable in future [ CITATION Def18 \l 1033 ]. It also helps in
determining whether or not to pursue a system concept. It studies the
strength and weakness of existing proposed venture. Management criteria is
very important for the effective completion of every projects. In the
insurance company software, there is proper management of every features.
I have included new concept and remove the faults or errors from the

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

software whenever it required. There is update facility too whenever


insurance company administrator wants to do in the software. All the menu
tabs and functional are also properly manage due to which the clients of the
company feel easy and interesting while using the application.

Conclusion
In this part, I have firstly explained feasibility report. It is an analysis which is
used in measuring the ability and complete a project successfully including all
relevant factors. After that, I have described some of the purpose of the
feasibility study. In the same way, I have explained how technical solution can
be compared which includes budget, automation, performance, efficiency, etc.
After that I have explain the different components of the feasibility report.
Finally, I have assessed the impacts of feasibility criteria on software
investigation which consists economic criteria, technical criteria, social criteria,
etc. Thus, feasibility report plays a vital role to find the problems or bugs in the
software and also to solve them.

Part 3
1. Undertake the software investigation to meet the business need using
appropriate software analysis tools/techniques to carry out a software
investigation and create a supporting documentation. You may submit
this task in the form a report structured with background information,
problem statements, data collection process and summary etc.
In order to carry out the systems investigation you are required to
identify the stakeholders, identify the requirements of the client, specify
the scopes like inputs, outputs, processes and the process descriptors,
consideration of alternative solutions and security considerations and the
quality assurance applied.
You are also required to identity the constraints like costs, organizational
policies, legacy systems, hardware requirements etc.
For software analysis you may use the following tools:
 Data Flow Diagram up to second level
 Entity Relationship Diagram

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

2. Reference to your task above that required some level of intensive


research work analyze how software requirements can be traced
throughout the software lifecycle.
3. Discuss different approaches to improve the software quality and
considering the above context discusses the two approaches that can be
applied at this context to improve the software quality.
4. Critically evaluate how the use of the function design paradigm in the
software development lifecycle can improve the software quality. Support
your ideas with reference to the tasks you have done.

Introduction
In this task, we were given to identify the shareholders, identify the
requirements of the clients, specify the scopes like inputs, outputs, processes
and the process descriptors, consideration of alternative solutions and security
considerations and the quality assurance applied. After that we have to a form
of report structured with background information, problem statements, data
collection process and summary etc. In the same way, we have to identify the
constraints like costs, organizational policies, legacy systems, hardware
requirements, etc. and use data flow diagram up to second level and entity
relationship diagram for system analysis. After that we have to explain how
software requirements can be traced throughout the software lifecycle. Also we
have to explain the difference approaches to improve the software quality and
two approaches that can be applied to improve the software quality. Finally, we
have to described how the use of the function design paradigm in the software
development lifecycle can improve the software quality.

3.1 Identification of stakeholders


A stakeholder is a party that has an interest in a company and can either affect
or be affected by the business [ CITATION che18 \l 1033 ]. A stakeholder can be
internal or external and also they can be at senior levels or junior levels. They
are groups or individuals with an interest in a business. The stakeholders of the
organization are:
1. Investors

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

An investor is a person who commits capital with the hope of receiving


financial returns. They utilize their money in order to gain profits or to
provide an income during the retirement like within an annuity. They
typically generate returns by developing capital as either equity or debt
investments. In the insurance company too, there could be some investors
who invest their money at beginning for the development of company in
order to gain profit in the future.

2. Board of directors
A board of directors is a team of people who are elected by a corporation’s
shareholders to represent the shareholders’ interests and ensure that the
company’s management acts on their behalf. The head of the board of
directors can be called as the chairman or chairperson of the board. The
main purpose of the board of directors is to ensure the company’s prosperity
by collectively directly the company’s affairs. They are appointed to act on
behalf of the shareholders to run the day to day affairs of the business.
3. Employees
Employees are the person who is hired to provide services to a company on
a regular basis in exchange for compensation and who does not provide
these services as part of an independent business. An employee can be
part-time or full-times whose main aim is to provide service to a company by
taking the salary. In every organization, there is important roles of
employees for its development. If the employees are hard-working and
energetic then they can increase the efficiency of a company in the very
short time whereas if the employees are lazy then they can decease the
efficiency of an organization. So, the CEO of a company should always keep
their employees happy in order to develop the company.

4. Clients
Clients are the person who takes services from the company by paying some
amount of money. Without clients, there would be useless of having a
company. In the case of insurance company, there could be many clients

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

who comes to do their life as well as their property insurance. They pay
certain amount of money yearly for the fix period of time and get some total
of money in returns. They are the most important person for the
development of a insurance company. The insurance company is developed
more when there is many clients in a company.
5. Suppliers
A suppliers are the party who supplies goods and services to the clients.
They can be distinguished from a contractor or subcontractor, who
commonly adds specialized input to deliverables. A supplier can also be
called as vendors or agents. In the insurance, there are some agents who
brings clients for the insurance company and gets come percentage of
commissions from the company. They are also important person for the
development of a company.

Identify the requirements of the client


There are many requirement of the clients in the insurance company software
which are given below:
1. There should be facility of currency exchange in the system.
2. Clients should be able to login in to the system.
3. Clients should be able to see and buy the policies from the system.
4. There should be facility of different account to login into the systems for
clients and administrators.
5. Clients should able to see the present status of the company and different
offers given by the company from the system.
6. Clients should be able to see their due amount and also should be able to
pay the due or premium amount from the system.
7. There should be also facility of advance payment from the system.
8. Clients should be able to see their insurance starting date and also left time
to get money from the company.
9. Clients should be able to see their own status from the system even by
staying in home.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Specification of scopes
Project scope can be defined as the part of project planning which involves
determining and documenting a list of specific project goals, features, tasks and
ultimately costs. It is very important to pin down the scope early in a project’s
life cycle as it can greatly impact the schedule or cost of the project down the
track. It also defines the boundaries of a project, what features will be included
and implemented within this scope, what is the delivery dates and milestones
need to be delivered as well the required budget to deliver that scope. The
people should be able to know the information of their policy, buy and how to
premium insurance guidelines through the help of internet.

Inputs, outputs, processes and the process descriptors


An input can be defined as the data and information which is send to a
computer system for processing whereas an output displays the results of that
processing. A process is an instance of a program which is running in a program
whereas process descriptor is a set of information that defines the status of
resources allocated to a process. In a software of insurance company, the login
is the way to the framework which users, admins or agents enter their
username/email and password to access to the internal arrangement of the
project. Admins can input the policy, offers, documents, etc. to the software and
users or agents can see the output from the software. I have shown the input,
output, process and process descriptor of the insurance company software in
the table which are given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

S.N Descriptio
Input Output Process Process descriptor
. n
1. Login Email/Usernam Login Check The users, admins or
e and password Authentication Authentication agents can only
login to the system
if he enters correct
email and password.
2. Premium Enter the Payment Checks the If the account
payment account details receipt is policy holder details and the bank
and amount of shown in the name and the account along with
money to pay by registered id of code of the card card number are
connecting to software. provided by the match successfully
any bank. company. then only the
premium can be
paid otherwise it
would be
unsuccessful for
payment.
3. Currency Input the Show the Checks the rate If the foreign
exchange foreign currency amount which of foreign exchange detail is in
can be got by currency and the software then it
the foreign exchange it. shows the detailed
currency information
otherwise we have
to enter about the
currency detail in
the software.

Consideration of alternative solutions


Although there are many advantage of having insurance company software,
there are also some of the disadvantage due to which it is good to have
alternative solutions rather than having the insurance company software. It is
need of lots of budget for the development of insurance company software.
Even we develop this software, it is not sure that the entire client will use this
software. Many clients are illiterate due to which they would not understand the
functions of the software or they would not be able to use the software. There
would be need of some amount of money yearly for the maintenance of the
software. Due to such problems, it would not be much effective to use insurance
company software. In the alternative of this, we can use websites. In the

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

website, we can include all the policies and systems which are included in the
software. It is very cheap then developing the software. Also it supports in all
the devices such as mobile, desktop, tablet, etc. and everybody can learn it in
very short period of time. We can also update the policies, rules or anything in
the websites and also information the latest offers to the clients. Thus, I think
the best alternative solution would be use of websites instead of developing a
software.

Security considerations
Security can be defined as the defense of digital information or IT assets against
internal and external, malicious and accidental threats. It is very critical for
enterprises and organization of all sizes and in all industries. If there is weak
security in the company then it compromised systems or data, either by a
malicious threat actor or an unintentional internet threat. For the best security
of insurance company software, we should not rely on a single test. We should
test our software time to time while developing. We should use the best server
for proving the security to our software. Also we should enforce the use of
consistent coding standards, use automated testing tools, build and share
libraries for common tasks such as validating user input, add security related
requirements and test cases from the very beginning of the process, etc.

Use of quality assurance


We have applied the quality assurance while developing the software of
insurance company. There is proper user validation in the software. While
requirement gathering, we check two times so that there would not be mistake
in the requirement gathering. To main the quality, we communicate among the
team member for the discussion almost every hour. We always discuss with the
team members about the new features or included features. We have followed
best practice while coding in the software. There is the use of every coding
standard while development of a software. Also, we have regularly test out
software while in the developing process so that there would not be any
problem in the software when it is launch and used by the clients. We have not
compromise in the quality maintenance of the software. Thus, the quality
assurance is applied in the software of insurance company.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Identification of different constraints


A developer should face different constraints while developing a software which
are given below:
1. Cost
As we know, cost is the most important things which be needed to be
estimated while developing any types of software either it is big or small.
While developing the software of insurance company, there was cost
limitation of five lakhs. The software which we were going to develop was
very big but it had cost limitation of only five lakh rupees. Due to this, we
have spent every money only after planning and safely without wasting a
single rupee and save some amount of money too. The cost constraints are
the most important factor which plays a vital role while developing the
software. The cost estimation while developing the software of insurance
company is given below:

S.N. Cost factors Cost


4. Planning and requirement gathering Rs. 50,000
5. Checking system reliability Rs. 20,000
6. Database designing Rs. 25,000
4. Hardware Rs. 90,000
5. System development tools Rs. 40,000
7. System designing and analysis Rs. 35,000
8. Development of system Rs. 55,000
9. System testing Rs. 85,000
10. System implementation and installing Rs. 30,000
11. Extra expenses Rs. 30,000
12. Total Rs. 4,60,000

In the above cost estimation table, I have shown the detail cost which was
spent while developing a software. We have not done any expenses on
unnecessary things. Our main motive was to complete the development of
insurance company software successfully with the budget of Rs. 4,60,000
and in just three months. We have worked day/night to complete this

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

software and finally developed a successful software by saving some amount


of money too.

2. Organizational policies
As we know that an organizational policy can be defined as a course or
method of action selected, usually by an organization, institution, university,
society, etc. from among alternatives to guide and determine present and
future decisions and positions on matters of public interest or social concern.
Being a profitable business organization, the insurance company has its own
policies which is included in the software of insurance company. While
developing an application, there should be two-way communication between
the developer and administrator in which the administrator provides the
important policy and other information about the company then the
developer begins to develop the software according to the policy of an
organization. In the software of insurance company, I have included the
entire policy of the company according to the administrator of the company.
There low and policy in the software is exact as in the real life. The entire
information’s, laws and policies are properly documented in the software due
to which there is not any limitation.
3. Legacy systems
A legacy system, in the context of computing, refers to outdated computer
systems, programming languages or application software that are used
instead of available upgraded versions [ CITATION Leg19 \l 1033 ]. While
developing a software, we should make sure that it will run even in the old
system so that the software can be used by many people. The legacy system
of the insurance company software cannot be total replaced by the new
software of insurance company because some of function of such software
should not be update. Some types of information like information of clients,
financial data of clients, etc. are very critical data which should be stored
securely and should not be affected while upgrading or maintaining the
software. The legacy system us special used because some data which are

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

very critical might take years to get developed in a new system. The
advantages of legacy systems are given below:
i. It would not be problem while updating critical data in the legacy system.
ii. There would be less change of losing the important and critical
information.
iii. It has low maintenance cost.
iv. There would be no problem in data storing technique.

4. Hardware requirements

While developing an application, the hardware requirement is a constraint


because the framework will work easily, if the hardware requirements
support it. The smooth work of the framework depends upon the hard which
is used to help them. In the insurance company software too, there are some
hardware requirement to use the software which are given below:
For windows computers
 64-bit operating system is required.
 Compatible in Windows7, Windows 8, Windows 10 or so on.
 2GHz processor with Intel

 Hard Drive: Minimum 32 GB; Recommended 64 GB or more

 Minimum 4GB of RAM is required.

 Minimum 2GB of graphics card.

For Mac Computers


 Apple Mac OSX 10.5 “Leopard” or higher
 An Intel Core 2 Duo, Core i3, Core i5, Core i7, or Xeon processor.

 Hard Drive: Minimum 32 GB; Recommended 64 GB or more

 2GB of ram

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

3.2 Background information


A big insurance company which is going to offer its products and services to
many international countries in tis drive to grow and become a large
international company. This company is predominantly operating in United
Kingdom. The systems which has been using by this company to keep track of
customer enquiries about the information and buying of its products and
services, etc. will needed to be updated or a new system developed to reflect
the changes in the way it will operate. The company also will offer a much wider
range of products and services to accommodate the needs of the international
market. Customers will be using a range of currencies to purchase the products
and the insurance company will need to allow for the fluctuating currency
exchange rates in its new system. The updated system insurance company
should have facility of paying the premium from home, paying the advance
premium, clients can able to look the new policies and offers of the insurance
company form the system, clients should have facility of currency exchange in
the system, they can also evaluate their status in the company, etc. The old
system of an insurance company which were developed before couldn’t give the
full services to more customer at one time. So the new system that has been
updated can give more services to more customer at the same time.

Problem statements
There was a problem and complain of the clients that they are facing difficulties
to come in the insurance company for every purpose like knowing new offers
and policies, while paying the premium, etc. They have to stay in the long line
for hours and only get chance to pay the payment. Considering such problems
and complains of the users, we have developed the insurance company
software by which they can pay their premium easily, see the updated offers
and policy, advance payment of premium can be done and many more. Social,
economic, and political systems in such countries present are also serious
problems to insurance companies. Even now, many people do not know about
the insurance company and the benefits of doing insurance of them and their
entire family. Thus, the insurance company have only limited clients.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Data collection process


Data collection is the process of gathering and measuring data, information or
any variables of interest in a standardized and established manner that enables
the collector to answer or test hypothesis and evaluate outcomes of the
particular collection [ CITATION Dat19 \l 1033 ]. It is concerned with the accurate
acquisition of data, although methods may differ depending on the field, the
emphasis on ensuring accuracy remains the same. It is a component of research
in all fields of study including physical and social sciences, humanities and
business. The main goal of data collection is to capture quality evidence that
allows analysis to lead to the formulation of convincing and credible answers to
the questions that have been posed. Before developing insurance company
software, I have collected data properly which helped to complete the software
successfully. I have used difference process for collecting of data which are
given below:
i. Interview
An interview can be defined as a conservation between two or more people
where question is asked to a person to get the required responses or
answers. In an interview, the person asking questions is called as
interviewer and the person answering the questions is called as interviewee.
This is the most important and effective process of collection of data. While
developing a software of insurance company, firstly I have taken interview
with some selected clients, staff, manager and board of directors. I have
asked different question like what features they want in the software, the
requirements in the software, etc. I have collected lots of different and
unique requirements form board of directors, managers, staffs and clients
which helped me while developing a software effectively and successfully.

ii. Questionnaire

Questionnaire can be defined as a research instrument consisting of a series


of questions for the purpose of gathering information from respondents. The
biggest advantage of questionnaire over some other data collection process
is that they are cheap, do not requires as much effort as in the interview or

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

other process and it often have standardized answers that make it simple to
compile data. For collection of more data from rest of the staffs and clients, I
have made questionnaire with some important questions and send to staffs
and some clients so they I can know their view or their suggestions that can
be included in the software. After some days, most of the questionnaire were
returned after filling it properly. I have got some new features and
requirement which were not found in the interview and also I have included
that features in the software of insurance company.

iii. Observation

Observation can be defined as the act of noticing something or a judgement


or inference from something seen or experienced. A person can learn or
improve many things by observing other properly. After interview and
questionnaire, I began to observe the company for some day so that I can
add new features myself in the software. I used to go daily in the company
and also done my insurance so that I can think as a client of the company
and observe properly. After some days, I have got some new features which
was liked by manager and also board of directors too. Thus, observation
plays a vital role for collection of data and information.

Data flow diagram


Data flow diagram can be defined as a graphical representation of the flow of
data through an information system. It is used to show how information is input
to and output from the system, sources and destinations of that information and
where that information are stored. A data flow diagrams has not control flow,
there are no decision rules and also no loops. It is a part of the structured
analysis modelling tools. The data flow diagram can be divided into logical and
physical. The logical data flow diagram describes flow of data through a system
to perform certain functionality of business whereas the physical data flow
diagram describes the implementation of the logical data flow. I have made the
data flow diagram of my software up to level 2 which are given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

i. Data flow diagram Level 0


Level 0 data flow diagram which is also known as context diagram are the
most basic data flow diagrams which provide a broad view that is easily
digestible but offers little detail. It shows a single process node and its
connections to external entities. This is only one process in the system and
all the data flows either into or out of this process. While drawing level 0 data
flow diagram, firstly we have to identify the process, all the external entities
and all the data flows. We also have to state any assumptions we make about
the systems. It is very important to draw level 0 data flow diagram before
making rest of two levels of data flow diagram. The level 0 data flow diagram
of the software of insurance company is given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

ii. Data flow diagram Level 1


Level 1 data flow diagrams are still a general overview but they go into more
detail than a context diagram. The single process node from the level 1 data
flow diagram is broken down into sub processes in this data flow diagram. As
these processes are added, this level of data flow diagram needs additional
data flow and data stores to link them together. The main aims of this
diagram is to give an overview of the full system. While drawing a level 1
data flow diagram, firstly we have to start by examining the level 0 data flow
diagram. In this level too, all entities, data stores and processes must be
labelled properly. The level 1 data flow diagram of the software of insurance
company is given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

iii. Data flow diagram Level 2


Level 2 data flow diagram breaks processes down into more detailed sub
processes. It offers a more detailed look at the processes that make up an
information system than a level 1 data flow diagram does. A level 2 data flow
diagram can be used to plan or record the specific makeup of a system. It is
detailed enough that it doesn’t usually make sense to break them down
further. The level 2 data flow diagram of the software of insurance company
is given below:

Entity Relationship Diagram


An entity relationship diagram (ERD), also known as an entity relationship
model, is a graphical representation of an information system that depicts the
relationships among people, objects, places, concepts or events within that
system [ CITATION Rou182 \l 1033 ]. It gives a visual beginning for database

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

design which is used to determine information system necessities for an


organization. ER diagram has it’s three elements i.e. entities, relationships and
attributes. ER diagram is used as a high level logical data model which can be
used to develop a good design for database. It describes how to recognize
entities, attributes, relationships and cardinalities. It identifies the concepts and
entities which is included in the system and also identifies the relationship
between those entities. The main use of ER diagram is to sketch database
design and to communicate the logical structure of database to the users.
The entity relationship diagram of insurance company software is given below:

Entity Relationship Diagram of insurance company software

In the above figure, I have shown the entity relationship diagram of the
insurance company software. In diagram, rectangle type box is entity and the
circle type figure is attributes. According to the diagram, there are altogether six
entities i.e. CEO, clients, products, employee, accident and insurance company
whereas every entity have their own attributes. But, there but be one id
attributes in every entity which are always unique to each other. There is also
one diamond type figure on between two entities which is called action. It helps

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

to show the relationship between the two entity. Thus, this is the entity
relationship diagram of the software of insurance company.

Summary
Firstly, I have identified the stakeholder of the company and also requirements
of the clients are identified and also scopes like input, output, process and
process descriptor. The requirements of the clients are also gathered before
development of the software. I have explained the quality assurance of the
software with hardware requirements, problem statements, alternate solution
consideration and security consideration for the qualitative software. In the
same way, I have checked whether the applied models are feasible for the
software or not. Constraints like cost, hardware requirements, legacy system
and organizational policies were also identified. I have also made the data flow
diagram up to level 2 and entity relationship diagram to help user for viewing
the software.
3.2 Requirement tracing
Requirements tracing is the process of recording logical links between individual
requirements and other system elements [ CITATION How19 \l 1033 ]. In short,
requirement tracing is one of the processes in requirements management,
controlling, tracing, prioritizing, analyzing and also documenting. It is about
understanding how high-level requirements i.e. goals, aims, objectives,
expectations, needs, aspirations, etc. are transformed into low-level
requirements. The main motive of requirement tracing is to assure that the
requirements continue to meet the needs and expectations of its customers and
stakeholders. We can trace a single functional requirement backward to its
origin, such as a use case, product feature or business rule. Also, we can trace
that functional requirement forward into the bits of design, code and tests that
were created because of that requirement. The analyst must write requirements
in a fine-grained fashion and give every requirement a unique and stable
identifier in order to do requirements traceability. Most of the people starts
doing traceability by linking the functional requirements to an individual test
which verify the correct implementation of those requirements. The requirement
tracing is specially done for management of solution scope, quick evaluation of
potential changes, reduction of project risk, promoting consistency between

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

requirements, allowing monitoring and controlling across the lifecycle of


requirements, etc. The requirement tracing provides benefits in two key areas
which are given below:

1. It provides context for the development team. Also, it defines the


expectations of the testing team to help implementation and specification.
2. It helps to ensure that the team is not only for building the product rights,
but are also for building the right product.

The importance of the requirements tracing are given below:


1. It complies with established industry standards.
2. It ensures that final deliverables directly tie to initial business needs.
3. Done properly, it ensures that organizations do not waste time and
resources repeating research.
4. It also offers much easier impact analysis.

In the software of insurance company, we have done difference requirement


tracing too. Among them, there requirement tracing of login to the software is
given below:
While requirement testing, there should be need on business requirement
document and technical requirement document by which the testers starts
writing test cases. A business requirement document (BRD) details the business
solution for a project including the documentation of customer needs and
expectations whereas a technical specification document defines the
requirements for a project, product or systems. Now, let’s suppose, the following
table is the business requirement document for insurance company software:

Business Module Applicabl


Description
Requirement Name e Roles
B1 Login Manager, Customer: A customer can login using the
(Business Customer login page

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

requirement for Manager: A manager can login using the login


insurance company page of customer. Post login homepage will
software) show the different links based on role

In the above table, it is showing that the customer should be able to login to
insurance company software with the correct password and user_id whereas
manager should be able to login to the insurance company software through
customer login page. The technical requirement document of the insurance
company softwareLogin
is given below:

T92 => User_id must not be blank


T93 => Password must not be blank
T94 => If user_id and password are valid => Login

Now the requirement tracing of the insurance company software is given below:
Step 1: “Verify Login, when the correct user_id and Password is entered, it
should log in successfully”
S.N. Test Case Test Steps Test Data Expected Result
1. Verify Login 1. Go to login page User_id = Susan7872 Login Successful
2. Enter user_id Password =
3. Enter password Susan7878@
4. Click login
If the email and password is
correct, It should login
Step 2: Identify the technical requirement that this test case is verifying. For
the test case, the technical requirement is T94 is being verified.

T94 => If user_id and password are valid => Login

T94 is technical requirement that


That verifies successful login

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Step 3: Note technical requirement (T94) in the test case:


S.N TR Expected
Test Case Test Steps Test Data
. # Output
1. T94 Verify Login 1. Go to login page user_id = Susan7872 Login
2. Enter user_id Password = Susan7878@ Successful
3. Enter password
Note the technical 4. Click login
Requirement In
the test case
Step 4: Identify the business requirement for which this technical requirement
(T95) is defined
Business Module Applicabl
Description
Requirement Name e Roles
B1 Login Manager, Customer: A customer can login using the
(Business Customer login page
requirement for Manager: A manager can login using the login
insurance company page of customer. Post login homepage will
software) Identify the business show the different links based on role
Requirement for
Step 5: Note this business requirement in test case
which T04 is defined
S.N BR TR Expected
Test Case Test Steps Test Data
. # # Output
1. B1 T94 Verify 1. Go to login user_id = Susan7872 Login
Login page Password = Successful
2. Enter user_id Susan7878@
3. Enter password
4. Click login

Step 6: Do above for all test cases, later extract the first 3 columns from the
test suite.
Business Requirement # Technical Requirement # Test Case ID
B1 T94 1
B2 T95 3
B3 T96 3
B4 T97 4

Thus, these are the complete example of the requirement tracing which was
done for the login page of the insurance company software. It is the most
important to do the requirement tracing. It helps to highlights any requirements
missing or document inconsistencies. It also helps in analyzing or estimating the

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

impact on the GA team’s work with respect to revisiting or re-working on the


test cases and shows the overall defects or execution status with a focus in
business requirements.
3.3 Approaches to improve software quality
Many research has been done to identify the root cause of poor software quality.
There are many reasons found due to which the software has poor quality. While
developing a software, small mistakes can also lead big problem and also leads
to large financial losses. Due to this, we should be always careful while
developing a software and always should follow the best practices to improve
the software quality. There are also many approaches to improve the software
quality. Among them, the best two approaches to improve the software quality
are given below:
1. Employ test-oriented software development management
Implementation of test-oriented software development management is one
of the best approach to improve the software quality. We can achieve the test
oriented management by using an extreme programming. An extreme
programming can be defined as a software development methodology which
aims to produce higher quality software with the ability to adapt to changing
requirements. If we use extreme programming for implementing test-
oriented software development management then the quality of our software
would be highly improved. An entremets programming has main motive to
provide iterative and frequent small releases throughout the project by
allowing both team members and customers to examine and review the
project’s progress throughout the entire software development lifecycle. It is
intended to improve the quality of software and also responsiveness to
changing customer requirements. The extreme programming practices are
given below:
i. Test-driven development
Test driven development is a process of software development which
relies on the repetition of a very short development cycle i.e. firstly the
developer of software writes an automated test case which defines a
desired improvement or new function, after that the developer produces
the minimum amount of code to pass that test and finally refactors the

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

new code to acceptable standards. It is related to the test- first


programming evolved as part of extreme programming concepts. The
test-driven development process example is given below:

As seen in the figure, in the test driven development, firstly it adds a test.
After that there is a process of executing the test. If the execution of test
is passed, it returns to the first process i.e. add to test otherwise there
would be need of making changes to the code. After making changing in
the code, it executes the test. If the execution of test is successful, then
test driven development is successfully executed otherwise it returns to
the third process i.e. make changes to the code. Thus, this is the process
of test driven development.

Benefits of test driven development


There are many benefits of test driven development which are given
below:
a. There would be near zero defects from this process.
b. Tests become safety net.
c. Optimization of development costs.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

d. Positive effects on productivity.

ii. Pair programming


In the pair programming approach, it requires two engineers working in
tandem at a single computer in which one of them writes a code and
another watches and makes suggestions through the process. Such roles
can be swapped at any time in this approach. Ideally, the two engineer
would be equally skilled and would each have time at the keyboard. If
there is necessary, the two engineer brainstorm on any challenging
problem. They periodically switch roles and work together an equals to
develop a software. Pair programming plays a vital role for improving the
software quality. The following figure can describe the pair programming
more effectively:

Benefits of pair programming


There are many benefits of pair programming which are given below:
a. Better knowledge sharing among team members
b. People learn significantly more about thee system and about software
development.
c. The designs are better and code length shorter.
d. The projects end up with multiple people understanding each piece of
the system.
e. There would be high code quality.

2. Report bugs effectively

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

A bugs can be defined as a coding error or issue in an application. It can be


find out at any stage during software development lifecycle. Reporting of
bugs effectively also plays a vital role to improve software quality. A good
bug report will help while testing a software more effectively by clearly
identifying the problem and in this manner navigating the developer towards
solving it. If the bug report is bad the it can bring the serious
misunderstandings. There are some good guidelines for an effective bug
report which are given below:
i. Communication basis
A bug report should be cornerstone and an efficient form of
communication between a QA specialist and developer. If there is good
communication between a DA specialist and developer while making a
bug report, then there would not be any misunderstanding and the bugs
would be detecting very clearly from the application. Thus, it would be
very easy for a developer while solving a bugs from an application.
ii. Provide solutions if possible
While making the bugs reports, there should be clear explanation of bugs
detected in an application and also should provide solutions for them like
describing the needed behavior of the feature. It there is such thing in
the document, a developer can know easily the bugs in an application
and also a solution in case if he needed. Thus, it has to solve the bugs
effectively and improve the software quality.
iii. Reproduce a bug before reporting it
We should always make sure that bugs are reproducible before reporting
it. We should include a clear instruction of how to reproduce a bug step
by step without any confusion. We should always be sure that the context
is specified and also we should avoid the information that can be
interpreted differently. It also plays a vital role while improving the
software quality.
iv. Clarity
While making the bug reports, we should be sure that the report is clear
which can be understand by every person otherwise it would be useless
of making the bug report. It should be clear enough which can help

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

developers to understand the failure and also should include information


about what QAs see and a statement of what they expect to see instead
of bugs. There should be clear documentation of what went wrong in the
code of an application.

3.4 Function design paradigm


Function design paradigm can be defined as a paradigm which is used to
simplify the design of hardware and software devices such as computer software
and increasingly, 3D models. It assures that each modular part of a device has
only one responsible and performs that responsibility with the minimum of side
effects on other parts. The advantage of implementing the function design
paradigm is that if a software module has a single purpose, it will be simpler and
also easier to design and implement. It also helps to identify what its design
object is to do and is more concerned with what is to be done and less with how
it happens. The function design paradigm also makes the system easier to
understand and document which simplifies training. The result is that the
practical lifetime of a functional system is longer. In a system of programs, a
functional module will be easier to reuse because it is less likely to have side
effects that appear in other parts of the system.

Use of function design paradigm in the software development lifecycle


to improve software quality
The design and development of the software varies through the difference
phases like requirement analysis, functional design, detail design, unit and
system testing, documentation and implementation. The function design
paradigm defines the flow of the system, its input and output, its data
organization, applicable business and also processing rules. It can be used
either to describe a design solution, or as an approach to design problem
solving. Problem solving occurs through a process of abstraction and
characterization of design solutions with subsequent categorization into problem
solving types. The purpose of function design is to specify the system actions in
a form that allows developers, users, stakeholders and sponsors. Although
function system has its own advantages and it has helped this particular

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Insurance System to develop and helped to improve the software quality there
are limits and criticism to it. The quality of the software automatically improves
if we follow the functional design paradigm. When we choose the best mode
then the testing and requirement tracing is done properly and effectively due to
which the quality of the software goes on improving. It also helps to follow the
best programming practice which further let the software qualitative. A good
developer who have better knowledge of developing an application always
follows the function design paradigm while developing an application. The
function paradigm is main purpose of the software which must achieve the
client’s need and wants. Since the function design paradigm helps to identify
what its design object is to do and is more concerned with what is to be done
and less with how it happens due to which the quality of the software always
goes on improving.

While making the insurance company software too, I have chosen spiral mode
because I think this model is best for the development of software of insurance
company. Since the insurance company itself focus on the risk of the person or
their properties, using the spiral model meaning they are promoting their
company because the spiral model mostly focus on the risk management. One
forth part of the spiral model is focused on the risk management. The spiral
model has greater potential of identification of risk, mitigating of the possible
risk and strategy is finalized and also controlled. Due to the management of the
risk, it automatically increases the quality of the software and the system, which
give quality assurance of the software.

Also I have analyzed the software and system by using different techniques like
entity relationship diagram and data flow diagram. An entity relationship
diagram (ERD), also known as an entity relationship model, is a graphical
representation of an information system that depicts the relationships among
people, objects, places, concepts or events within that system whereas Data
flow diagram can be defined as a graphical representation of the flow of data
through an information system which is used to show how information is input
to and output from the system, sources and destinations of that information and
where that information are stored. In the entity relationship diagram, there were

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

altogether six entities i.e. CEO, clients, products, employee, accident and
insurance company whereas every entity had their own attributes. It depicts the
relationships between people, objects, places, concepts or events within the
system due to which the quality of the software goes on improving. Moreover, in
the data flow diagram we have different entities data, which are stored in the
datacenter and which show the process of moving thee data to different
entities. It helps to show about how information is inputted and output from the
system to the users or clients which helps to improve the quality of the
software.

Therefore, due to the proper designing of the software according to the scenario
i.e. Insurance company software, I think software quality has increased and it
will not have problem in future for developing the software and ensures the
quality of the software. The insurance company software would be useful for the
clients, admins and also agents for the long period of time because the software
can be update time to time due to which different new policies, offers and
features can be added in the software. Thus, in short, it is sure that use of
function design paradigm in the software development lifecycle can help
improve software quality. It helps in the development of an application
effectively and also helps to solve the problem which can be occurred in an
application.

Conclusion
In this part, I have firstly explained about stakeholders. It is a party that has an
interest in a company and can either affect or be affected by the business. Also I
have explained different stakeholders which includes BOD, clients, investors.
etc. After that I have wrote the different requirement of the clients in the
software of insurance company and describe the specification of scope. Project
scope can be defined as the part of project planning which involves determining
and documenting a list of specific project goals, features, tasks and ultimately
costs. Also I have described the input, output, process and process descriptor. In
the same way, I have explained consideration of alternative solution, security
consideration, use of quality assurance, identification of different constraints
which includes cost, organizational policy, legacy system and hardware

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

components, Background information and also problem statement. After that I


have explain the data collection process. It is the process of gathering and
measuring data, information or any variables of interest in a standardized and
established manner that enables the collector to answer or test hypothesis and
evaluate outcomes of the particular collection. The different types of data
collection process are interview, observation, questionnaire, etc. In the same
way, I have explained entity relationship diagram and data flow diagram
including the data flow diagram and entity relationship diagram of insurance
company software. Also I have written the summary where I have explained
everything have done until now. After that I have explain the requirement
tracing by showing the example of how requirement is traced in the login page
of insurance company software. I have also explained the two approach by
which we can improve the quality of the software and finally I have described
about how the use of the function design paradigm in the software development
lifecycle can improve the software quality.

Part: 4

1. Prepare a documentation that explains how user and software requirements


have been addressed. You may tabulate this task with the columns that has the
expected client requirements and the actual output of the product to be
developed after the appropriate analysis.

2. Discuss about the different software specification methods and suggest two
software behavioral specification methods and illustrate their use with an

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

example relevant to the project that needs to be constructed for the given
context. Some of the software specification techniques include flowcharts,
pseudo code and formal specification methods and so on.

3. Differentiate between a finite state machine (FSM) and an extended Finite


State providing an application for both.

4. Present justifications of how data driven software can improve the reliability
and effectiveness of the software.

Introduction
In this part, firstly we have to prepare a documentation that explains how user
and software requirements have been addressed. Also we have to tabulate with
the columns that has the expected client requirements and the actual output of
the product to be developed after the appropriate analysis. After that we have
to explain the different software specification methods and also suggest two
software behavioral specification methods and illustrate their use with an
example relevant to the project that needs to be constructed for the given
context. We should also include flowcharts, pseudo code and formal
specification methods. After that we should differentiate between a finite state
machine and an extended finite state providing an application for both. Finally,
we have to present a justification of how data driven software can improve the
reliability and effectiveness of the software.

4.1 Documentation of user and system requirements


As we know documentation can be defined as a set of documents provided on
paper, online, digital, digital or analog media such as audio tape, CDs etc. The
examples of documentation are user guides, on-line help, white papers, etc. It
can be distributed via websites, software products and also from other on-line
applications. While developing an application, we should carefully follow the
system and system requirements. We should be sure that every requirement of
users and system are successfully occupied. It plays a vital role to complete the
application successfully by making clients happy.

User requirement includes the detailed requirement about an application which


the client wants that are undertaken by the developer for developing an
application. A good and clear user requirement plays a vital role while

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

developing a successful application effectively without any bugs. If the


requirement of the users is not collected properly then a developer would
always become fail to develop a successful project. It must be understandable
to the clients and all the stakeholders, especially the people who support
financially to the develop to develop the software so that they can play smart by
telling developer what to do in case if they want to. It is addressed or collected
by the clients who ordered to develop the application and by some users of an
application. User requirements is also needed to be described in the business
domain and in also any format the stakeholders want to allow such mutual
understandings While making the users requirement, there should be use of
little technical terms as possible. In short, user requirement plays a vital role
while making a successful application effectively.

System requirements are specially made for the software development team
who need to understand how to practically meet a user requirements using
available technologies. It tells what system should have to be able to run the
program. They are more important to discipline the smart-ass team members so
everyone’s working on the same plan and to keep those arrogant head clear so
they know where they are. It also plays a vital role while developing an
application successfully and effectively. Without making an application, it is
most important to make a proper and clear system requirement so that a
software development team can develop an application without any difficulties.
In short, if we compare the user and system requirements with the example of
real life, user requirements are for grandma to read while system requirements
are for college mates in computer science classes to read.

Tabulation of the expected client requirements and the actual


output of the product
S.N. Expected client requirements Actual output
1. Easily access to the international market There is automatically conform and easy
access to the international market with the
collaboration and associated with the
international market.
Foreign currency exchange There is one special service for the user that
2. exchanging of the foreign currency can be
done all over the world.
3. Providing claims services Users can claim their share and property

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

through this software in an effective and


easy way.
Providing information of policies Every detailed policies of company such as
4. premium, compensations, advance payment,
etc. are properly explained.
Information in different languages Since customer could be from different
5. according to the client’s preferences countries, information are also provided in
the different languages.

In this above table, I have shown the expected client requirement and the actual
output in the software. Both the expected client requirement and actual output
is almost same because while developing an application, I have collected the
requirement from clients as well as users too. I have make this application
considering their every requirement and solve every bugs after the feedback
from the users and clients. There is every features and services which the users
and clients needed in the insurance company software like premium payment,
advance payment, enable to see the users’ current status, new policies and
offers, etc. Thus, this software is liked by every users and clients.

4.2 Software specification


A software specification can be defined as a comprehensive description of the
intended purpose and environment for software under development. It describes
what the software will do and how will be expected to perform. A software
specification helps to minimize the time and effort required by the developers to
achieve desired goals and also to minimize the development cost. It specially
defines how a software interacts with the system hardware. Other programs and
also with human users in a wide variety of real world situations. It lays out the
functional and also non-functional requirements and includes a set of use cases
which explains user’s interaction that the software should provide. It helps to
establish the basis for an agreement between the clients and contractors on
how the software product should function. The software specification document
lists sufficient and necessary requirements for the project development. A
software specification also leads benefits to client because if the development
cost is less, the developers will charge less amount to the clients. Some of the
most important benefits of the software specification are given below:

1. It helps to minimize the time and effort of developers

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

2. It helps to minimize the cost of development.


3. It helps to integrate with the development and test tools.
4. It helps to describe what the software will do and how will be expected to
perform.
5. It helps to generate documents automatically.

There are different software specification methods which are given below:
1. Flow chart
A flowchart is a diagram that depicts a process, system or computer
algorithm [ CITATION Wha18 \l 1033 ]. It is used in various fields to study,
record, improve and plan on some topic in clear and easy to understand
topic. It is also a powerful business tools. With the help of proper use of flow
chart, a businessman can increase their business. Flow chart can be useful
in business, marketing, engineer, students, manufacturing, etc. It has its
different types like document flowchart, system flowchart, data flowchart,
etc. The most common flowchart symbols which are used more in
comparative to other are as follows: -

Terminator

Process

Document

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Decision

Data

Database

Flow Arrow

Predefined process

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

On-page connector/
reference

Off-page connector/ reference

The flow chart of the insurance company software according to our scenario is
given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

In the above diagram, I have shown the flowchart of the insurance company
software. I have started this flowchart with start. After that I have the admin,
user or agent of the company should login into the software. Since there is
validation of data, if the email and password is entered correct then it goes to
the dashboard otherwise return to the login page. After that there is a selection
among admin, agent and user. A person using software should choose one
option among that three. After that there is different kinds of entities such as
policies, payments and exchanging the foreign currency which can be used by
user and maintains and control by the admin. Moreover, after that, a person
should use the software effectively. Also in the dashboard, there is an option
called ‘logout’ from which he can sign out from the software. If the person uses
software recently, then he has to create his account from the software which is
also shown in the above flowchart.

2. Pseudo code
Pseudocode (pronounced SOO-doh-kohd) is a detailed yet readable
description of what a computer program or algorithm must do, expressed in
a formally-styled natural language rather than in a programming
language[ CITATION Rou191 \l 1033 ]. It allows designers or lead
programmers to express the design in great detail and also provides
programmers a detailed template for the next step of writing code in a
specific programming language. It is also used in conjunction with computer
aided software engineering based methodologies. The main purpose of
using pseudocode is that it is easier for people to understand than
conventional programming language code and that it is an efficient and
environment-independent description of the key principles of an algorithm.
The pseudocode also helps to create an outline or a rough draft of a
program. It summarizes a program’s flow but excludes underlying details.
Also it is used in planning an algorithm with sketching out the structure of
the programs before the actual coding takes places. Some of the benefits of
pseudocode are given below:
i. It enables the programmers to concentrate only on the algorithm part of
the code development.
ii. It is understood by the programmers of all types.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

iii. It helps to create an outline or a rough draft of a programs.


iv. It helps to summarize a program’s flow.

The pseudo code for the insurance company software according to our
scenario is given below:

i. Pseudo code for login into the system


Begin
Valid_iuput_username = false;
Valid_input_password = false;
Logged_in = true;

While (Logged_in = false) do


Print (“please enter username: “);
readIn (inputted_username);
writeIn (“please enter password: “);
readIn(inputted_password);

if inputted_username is in Login_Dictionary then,


valid_input_username = true;
If inputted_password is in Login_Directory then,

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Valid_input_password = true;

[when username and password both matched]


Logged_in = true

[when username or password does not match]


Logged_in = false

If (Logged_in = true) {
writeIn (“you have been logged in successfully”);
}
Else {
writeIn (“sorry, you have not be logged in “);
}

end
ii. To claim the insurance policy

[when proper evidence is show]


Evidence = true;

[when proper evidence is not shown]


Evidence = false;

If (Evidence = true) {
writeIn (“your claim is rewarded”);
}
Else {
writeIn (“sorry, you claim is not rewarded”);
}

iii. For exchange of foreign currency

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

[If foreign currency is over its limit]


Over_limit = true;
[If foreign currency is over its limit]
Over_limit – false;

If (Over_limit = true) {
writeIn (“sorry, your currency is over limit”);
}
Else {
writeIn (“your currency is successfully exchanged”);
}

iv. For admin changing policy

[if want to change policy]


New_policy = true;
[if does not want to change policy]
New_policy = false;

If (New_policy = true) {
writeIn (“Policy changed successfully”);
}
Else {
writeIn (“Policy does not change”)
}

v. For Log out


[if log out button click]

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Logout = true;
[if log out button is not click]
Logout = false;

If (Logout = true) {
writeIn (“your account is being successfully logout”);
}
Else {
writeIn (“Welcome to dashboard”);
}

In the above, I have made the pseudo code of the insurance company software
according to our scenario. I have made pseudo code of login, log out, changing
policy, exchange currency and insurance claiming. I have shown the work flow
of software in the pseudo code when the user uses software of insurance
company. Without showing this, a user may feel confuse while using the
software. Thus, pseudo code is very important for the software.

4.3 Finite state machine (FSM)


A finite state machine (sometimes called a finite state automaton) is a
computation model that can be implemented with hardware or software and can
be used to simulate sequential logic and some computer programs [ CITATION
Moo19 \l 1033 ]. It can be used to model problems in many fields including
mathematics, artificial intelligence, games and linguistics. A computer is
basically a state machine and each machine instruction is input that changes
one or more states and may cause other actions to take place. A finite state
machine is one which has a limited number of possible states. It can be used
both i.e. as a development tool for approaching and solving problems and also
as a formal way of describing the solution for later developers and system
maintainers. It is basically simple, efficient and simply extensible. Every state of
finite state machine has a set of transitions and each transition is associated
with inputs and pointing to state. The finite state machine contains many

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

extension and can be coded straight as with the help of specialized languages
or GUI tools. They are of two types:
i. Deterministic finite automata
ii. Nondeterministic finite state machines

Deterministic finite automation


A deterministic finite automation can be defined as a finite state machine which
accepts or rejects strings of symbols and only produces a unique computation of
the automation for each input string. It is an abstract mathematical concept but
is often implemented in hardware and software for solving various specific
problems. A deterministic finite automaton (DFA) is represented by a five tuple
which are given below:

Q = a finite set of states

∑= a finite, nonempty input alphabet

∂ = a series of transition functions

q₀ = the starting state

F= the set of accepting states or final states

Nondeterministic finite automation


In nondeterministic finite automation, for each state there can be zero, one, two
or more transition corresponding to a particular symbol. It can also use null
transition, which are indicated by є. Null transitions allow the machine to jump
from one state to another without having to read a symbol. In this finite
automation, the exact state to which the machine moves cannot be determined.
The non-deterministic finite automation also can be represented by 5 tuples
which are given below:

Q = a finite set of states

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

∑= a finite set of symbols called the alphabets

∂ = a series of transition functions

q₀ = an initial state from where any input is processed

F= a set of final state

Applications of finite state machine


There are many applications of finite state machine which are given below:
i. Due to the simplicity of finite state machine, they are quick to design,
implement and also in execution.
ii. The finite state machine modeling reduces the hardware.
iii. With the implementation of FSM, it shows a developer as concise and
professional.
iv. Predictability in deterministic FSM given a set of inputs and a known current
state, the state transaction can be predicated, allowing for easy testing.
v. It is easy for inexperienced developers to implement with little to almost no
extra knowledge.

Extended finite state machine


In an extended finite state machine, the transition can be expresses by an ‘if
statement’ by consisting of a set of trigger conditions. If the trigger conditions
are all satisfied, the transition is fired, bringing the machine from the current
state to the next state and also performing the specified data operations. It is a
modelling approach and also used for wide range of systems. In the extended
finite state machine, number of state can be reduced by introducing the local
variables. They reduce number of states by hiding less important information.
Generally, the information which doesn’t have strong impact on behavior are
represented as a variable in the extended finite state machine. It is basically
need in the computer science and software engineering in the field of program
analysis and testing. It is basically denoted by the seven-element tuple M= (I, O,
S, D, F, U, T).

I = a set of input symbols

O = a set of output symbols

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

S = a set of symbolic states

D = an n-dimensional linear space

F = a set of enabling functions

U = a set of update functions

T = a transition relation

Application of extended finite state machine


i. It can be operated in various tools like metro passageway, alarm, home
garage, temperature controller, etc.
ii. It reduces number of states by hiding less important information.
iii. Since extended finite state machine is a modelling approach, it used for
wide range of systems.

4.4 Data driven software


Data driven is an adjective used to refer to a process or activity that is spurred
on by data, as opposed to being driven by mere intuition or personal experience
[ CITATION Dat191 \l 1033 ]. Data driven essentially means that data dictates
the actions taken by the ones that execute an event or process. It is the most
evident in the field of big data where data and information are the basis of all
actions and gathering and analyzing of data is the core motivator. In the data
driven software, the program statements describe the data to be matched and
the processing required rather than defining a sequences of steps to be taken. It
is typically applied to streams of structured data, for filtering, aggregating,
transforming or calling other programs. The data driven software frequently
have a default action i.e. if no condition matches, line oriented languages prints
the line or deliver a message. It is a new way of achieving the business
intelligence. It uses machine learning which act as an autonomously to carry out
the actions it owns finding recommend. It also integrates with our software as
service to analyze and draw strategic direction.

Some of the application of data driven software are given below:

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

i. It automatically generates the master data, models, schema and graphs as


the user searches and also collects data.
ii. It helps to making the information available within a single application.
iii. It operates on diverse data from many multichannel data sources.
iv. It depends on consumer class ease of use which requires little or no user
training as seen in Facebook and LinkedIn.

Improving the reliability and effectiveness of the software using data


driven software
While developing an application, we should have sure that the requirement of
entire users is going to fulfilled by this software. There should have maximum
change that the user is going to love this software after using this. There should
be use to different approach to develop the effective software and also we
should do improvement in the reliability and effectiveness of the software in
every update of the software. With the use of data driven software too, we can
improve the reliability and effectiveness of the software. As we know, data
driven is an adjective used to refer to a process or activity that is spurred on by
data, as opposed to being driven by mere intuition or personal experience. It
operates on diverse data from many multichannel data sources. When we use
data driven, the functions and interfaces of the software can be used on the all
objects with the same data fields due to which it would be very simple and easy
while developing an application and also to have effective software. The data
driven also prevent coupling of the data and functionality of the data driven
programs. It helps to making the information available within a single
application. The data driven also operates on diverse data from many
multichannel data sources. It uses machine learning which act as an
autonomously to carry out the actions it owns finding recommend and also
integrates with our software as service to analyze and draw strategic direction.
It would be very easy to find the problem in the software and also its solution
with the use of data driven. Also if we have been gathering data for a long time
and tracking the changes we make in the software, we will be able to make
more informed decision by using data driven. Thus, data driven software plays a
vital role to improve the reliability and effectiveness of the software.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Conclusion
In this task, I have firstly prepared documentation that explains how user and
software requirements have been addressed. Also I have tabulate with the
columns that has the expected client requirements and the actual output of the
product to be developed after the appropriate analysis. After that I have
explained the different software specification methods and also suggest two
software behavioral specification methods and illustrate their use with an
example relevant to the project that needs to be constructed for the given
context. I have also included flowcharts, pseudo code and formal specification
methods. After that I have differentiate between a finite state machine and an
extended finite state providing an application for both. Finally, I have present a
justification of how data driven software can improve the reliability and
effectiveness of the software.

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Bibliography
Anon., n.d. Automation. [Online]
Available at: https://www.techopedia.com/definition/32099/automation
[Accessed 23 12 2018].

Anon., n.d. Data collection. [Online]


Available at: https://www.techopedia.com/definition/30318/data-collection
[Accessed 20 01 2019].

Anon., n.d. Data driven. [Online]


Available at: https://www.techopedia.com/definition/18687/data-driven
[Accessed 29 01 2019].

Anon., n.d. Define management feasibility. [Online]


Available at: https://study.com/academy/answer/define-management-feasibility.html
[Accessed 30 12 2018].

Anon., n.d. How important is requirements traceability?. [Online]


Available at: https://searchsoftwarequality.techtarget.com/answer/How-important-is-requirements-
traceability
[Accessed 20 01 2019].

Anon., n.d. Legacy System. [Online]


Available at: https://www.techopedia.com/definition/635/legacy-system
[Accessed 19 01 2019].

Anon., n.d. Risk Control. [Online]


Available at: https://www.investopedia.com/terms/r/risk-control.asp
[Accessed 13 01 2019].

Downloaded by Rifas (rifashamid25@gmail.com)


lOMoARcPSD|32436628

Software Development Lifecycles 2018

Anon., n.d. What is a flowchart. [Online]


Available at: https://www.lucidchart.com/pages/what-is-a-flowchart-tutorial
[Accessed 03 05 2018].

chen, j., 2018. stakeholder. [Online]


Available at: https://www.investopedia.com/terms/s/stakeholder.asp
[Accessed 15 01 2019].

Kenton, W., 2018. Efficiency. [Online]


Available at: https://www.investopedia.com/terms/e/efficiency.asp
[Accessed 23 12 2018].

Moore, K., n.d. Finite State Machines. [Online]


Available at: https://brilliant.org/wiki/finite-state-machines/
[Accessed 28 01 2019].

Rouse, M., n.d. pseudocode. [Online]


Available at: https://whatis.techtarget.com/definition/pseudocode
[Accessed 30 01 2019].

Downloaded by Rifas (rifashamid25@gmail.com)

You might also like