You are on page 1of 57

Part: 1

Introduction:

The large insurance company predominantly operating in United Kingdom is now offering its
products and services to many of the countries in its drive to grow and become a large
international company. The system that this company is using to keep track of its customer
enquiries about information and purchase of its products and services needs to be updated to
reflect the changes in the way it operates. So, to go towards the international market this
company needs to update its old system and replace it with new system, which provides other
various services. As the customers in other countries will be using wide range of currencies to
purchase the products and the insurance company need to allow for the fluctuating currency
exchange rates in its new system. For this software development task our business consultancy
company has won contract and I was hired as systems analyst to develop new system of
insurance company.

My Role as System Analyst


For the development of this project, I have to work with my colleagues as part of a development
team. In past the insurance company has small development team, which solely developed the
old system so while developing this new system in-house team will also work alongside us for
better understanding of their requirements. I am going to manage the project analysis and design
stage of new system. Firstly, I am going to update the in-house team on new methodologies of
system development used to analyze systems.

1. Description of predictive and adaptive software development models considering at least


two iterative and two sequential models.

Software Development Life Cycle:

The software development life cycle (SDLC) is an outline identifying tasks executed at each
stage in the software development procedure. SDLC is a design tracked by a development team
within the software organization.

It consists of a comprehensive plan describing how to develop, maintain and replace specific
software. The life cycle defines a methodology for improving the quality of software and the
overall development process.

The software development life cycle is also known as the software development process.
(Techopedia, 2019)
Stages of Software Development Life Cycle (SDLC):

Figure 1: SDLC Phase

1. Requirement Phase:

Requirement gathering and analysis is the most important phase in the software development
lifecycle. Business Analyst collects the requirement from the

Customer/Client as per the client’s business needs and documents the requirements in the
Business Requirement Specification (document name varies depends upon the Organization.
Some examples are Customer Requirement Specification (CRS), Business Specification (BS),
etc., and provides the same to Development Team.
2. Analysis Phase:

Once the requirement gathering and analysis is done the next step is to define and document the
product requirements and get them approved by the customer. This is done through the SRS
(Software Requirement Specification) document. SRS consists of all the product requirements to
be designed and developed during the project life cycle. Key people involved in this phase are
Project Manager, Business Analyst and Senior members of the Team. The outcome of this phase
is the Software Requirement Specification.

3. Design Phase:

It has two steps:

HLD – High-Level Design – It gives the architecture of the software product to be developed and
is done by architects and senior developers

LLD – Low-Level Design – It is done by senior developers. It describes how each and every
feature in the product should work and how every component should work. Here, only the design
will be there and not the code

The outcome from this phase is High-Level Document and Low-Level Document which works
as an input to the next phase

4. Development Phase:

Developers of all levels (seniors, juniors, freshers) involved in this phase. This is the phase
where we start building the software and start writing the code for the product. The outcome
from this phase is Source Code Document (SCD) and the developed product.

5. Testing and Integration:

When the software is ready, it is sent to the testing department where Test team tests it
thoroughly for different defects. They either test the software manually or using automated
testing tools depends on the process defined in STLC (Software Testing Life Cycle) and ensure
that each and every component of the software works fine. Once the QA makes sure that the
software is error-free, it goes to the next stage, which is

Implementation. The outcome of this phase is the Quality Product and the Testing Artifacts.
After the successful test of the application we need to integrate the various modules like login,
signup, upload, claim, services.

6. Deployment & Maintenance Phase:


After successful testing, the product is delivered/deployed to the customer for their use.
Deployment is done by the Deployment/Implementation engineers. Once when the customers
start using the developed system then the actual problems will come up and needs to be solved
from time to time. Fixing the issues found by the customer comes in the maintenance phase.
100% testing is not possible – because, the way testers test the product is different from the way
customers use the product. Maintenance should be done as per SLA (Service Level Agreement)

(Rajkumar, August 10, 2019)

P1 Describe two iterative and two sequential software lifecycle models.

Iterative Models:

The iterative models are particular implementation of a software development lifecycle that
focuses on an initial, simplified implementation, which then progressively gains more
complexity and a broader feature set until the final system is complete. In this type of model’s
enhancements can be recognized quickly with implementation throughout each iteration. The
two iterative models which I am going to describe are prototype and agile models.

Agile model Please add sprint, scum. Standup meeting, client’s feedback, backlog, sprint
backlog. Please include the manifesto of agile.

“Agile SDLC model is a combination of iterative and incremental process models with focus on
process adaptability and customer satisfaction by rapid delivery of working software product.
Agile Methods break the product into small incremental builds. These builds are provided in
iterations.” (n.d, 2018) In this model every project is handled differently and existing methods
are tailored to best suit requirements of project. All tasks are divided in small time frames for
delivering specific features in release. It gives priorities to working software and customer
collaboration over comprehensive documentation and contract negotiation. This model also
allows proper response to change than following the project plan and every iteration includes
cross functional team working simultaneously.

Agile model is iterative and team-based way to development. This model gives importance in
rapid delivery of system in complete functional components. All time is time boxed in phases
known as sprints rather than creating tasks and schedules for system development. While starting
each sprint has defined duration although time may vary according to project and also the
running list of deliveries. Sometime if planned work for sprint cannot be completed then work is
reprioritized again and information is used for further sprint planning. When the work is
completed then it is reviewed and evaluated by team and customers. This model relies in high
level of customer involvement throughout development process and it is more especially during
reviewing the system.

There are various phases in agile model which are illustrated below:
-

 Requirements: The initial step in this model is to gather the system requirements. As this
model doesn’t need the full documentation to rather software requirements meeting is
held and all decision are implemented.
 Design: In this stage with the help of various software designing tools the design of
software is prepared. It can be prepared as the demo version and other important features

can be added further while continuing project. Here also the clients provide their feedback to
system and system is altered according to their need.

 Development: Here the designed demo version is brought into implementation for the
user feedback and in end of this phase system will almost be ready. Customer
collaboration and feedback plays important role in this stage.
 Testing and feedback: In this ending phase the overall system wrapping is done with all
the testing required. After the customer is satisfied with the developed system it is handed
to client.

Advantages Disadvantages
It is very easy, realistic approach that provides
There will be high individual dependency as
flexibility to developers. And promotes
minimum documentation is generated.
teamwork and cross training.
It provides continuous attention to technical As there are strict delivery management
excellence and good design. adjustments can be dictated to meet deadlines.
It is very difficult to implement this model
Minimum rules and documentation can be
without overall plan, an agile leader and agile
easily employed.
project manager.
It is best suitable for environment where If customer representative is not clear about the
requirements may change during development outcome of project then team can easily get off
process. the track.
During the development transfer or recruiting of
Resource requirements are minimum and only
new member in project will be quite challenging
little planning is required.
due to lack of documentation.

Sequential models:

In this type of model developer have to follow some rules, regulations and defined orders for
completing the project. Here I am going to describe two sequential model of software
development which are waterfall model and V model.

Waterfall:
The waterfall model is one of the most traditional and commonly used software development
methodologies for software development. This life cycle model is often considered as the classic
style of software development. This model clarifies the software development process in a linear
sequential flow that means that any phase in the development process begins only if the earlier
phase is completed. This development approach does not define the process to go back to the
previous phase to handle changes in requirements.

As shown in the above figure there are various sequential phases involved in waterfall model
which are explained below: -

 Requirement Gathering and analysis: All the requirements of the system which needs to
be developed are collected and then documented in specification document. Specification
of final product are marked and studied here.
 System Design: Here requirement specification gathered from first phase are studied and
then system design is prepared. Thus prepared system design helps developer while
specifying the hardware and system requirements and also helps while defining
architecture of overall system.
 Implementation: By the input from system design system is developed in small units that
are summed up in next phase. Each developed unit are tested for functionality which is
also known as unit testing.
 Integration and Testing: The units developed in previous phase are integrated into system
after each unit testing. The entire system is tested for any faults and failures so that client
does not face error while installing and running the software further.
 Deployment of System: After completion of functional and non-functional testing
product is deployed in customer environment or market release as required.
 Maintenance: Even after the system deployment there may come issues in client
environment so to fix such issues patches are released. For further enhancement in
product further versions are released in maintenance phase. This phase is done for the
entire life of software till its death.

Advantages Disadvantages
Waterfall model is very simple and easy
to understand and use a method that is This model can only be used when very precise up-
why it is really beneficial for the front requirements are available
beginner or novice developer
It is easy to manage, because of the
rigidity of the model. Moreover, each This model is not applicable for maintenance type of
phase has specific deliverables and projects
individual review process
In this model phases are processed and The main drawback of this method is that once an
completed are at once in a time thus it application is in the testing stage, it is not possible to
saves a significant amount of time go back and edit something
This type of development model works
more effectively in the smaller projects There is no possibility to produce any working
where requirements are very well software until it reaches the last stage of the cycle
understood
In this model, there is no option to know the end result
of the entire project
This model is good for a small project but not ideally
The testing is easier as it can be done by
suitable for long and ongoing projects Not ideal for the
reference to the scenarios defined in the
projects where requirements are very moderates, and
earlier functional specification
there is great scope for modification

Application of Waterfall Model

This is the earliest model of software development and is only applicable when the requirements
are very well known, clear and fixed. If there is no proper documentation for user requirements
then it can’t be used. This model further can be used when the product definition is stable and
technology is understood. Only after proper evaluation and reviewing each stage developer
should move to the next step so proper documentation of user requirement should be done. It is
also applicable where there is no chance of customer collaboration in the project and whole task
is done in contract negotiation. This model can be used in projects where there are no ambiguous
requirements. Waterfall model is also suitable for projects that transfer from one platform to
another platform i.e. all the requirements remain the same and there is only change in system
environment or the programming language. This is best suited for the small projects rather than
complex large projects which take more time.

RAD model

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.

Risks in Software Development Life Cycle

“Risk is an expectation of loss, a potential problem that may or may not occur in the future. It is
generally caused due to lack of information, control or time. A possibility of suffering from loss
in software development process is called a software risk. Loss can be anything, increase in
production cost, development of poor-quality software, not being able to complete the project on
time.” (Hilson, 2011) Those types of risks exist on our project or developing system as the future
is uncertain and there are many already unknown and known facts which we cannot incorporate
in project plan. While developing system those risks can be of two types first one is internal risks
which can be controlled by the project manager and second one is external risks which are
beyond the control of project manager. While we use various models for developing software
there are also different risks attached with those specific models. Below I have provided those
various models with risks involved in them while developing our software: -

 Risks involved in Prototype Model

Although using prototyping model decreases the probability of software development project
failure apart from rewards this model has its own risks. The biggest risk is that anyone who is
interested in the project after facing a working prototype will decide that the final product is
almost ready or not. Another risk involved using prototype model is that after seeing the early
prototype end users demand delivery of actual system and even if he is unsatisfied with the initial
built prototype, he may lose interest in the project. While using this model in software
development process, without proper management iterative process of prototype refinement can
take long durations and while developer hurry to build prototype it may end up to sub-optimal
solutions. Practically, using this model might increase the complexity of the system as scope of
the system may expand beyond the initial plans on software development. Various risks can be
encountered as this model leads to implementing and then repairing the way of creating
software.

 Risks involved in Agile Model

There are various risks involved in the agile model and while developing the software we have to
be aware about those risks before starting our project. Among those various risks the very first
common risk is lacking details in task descriptions. We have to make sure that all details are
present and clear for the team so they know exactly what they are creating and the best way to
write these out are in the form of user stories or technical requirements. Another risk usually
encountered while going through agile model is priorities or directions change. Sometimes the
priorities of the project changes and thus features that were not originally planned take top
priority over the others.

When this happens, it’s important to make sure the clients know about the effect of those
changes on the developing system and even also the timeline and budget of project as mentioned
in earlier meetings. Another risk which many companies faces while adapting agile model in
their software development process is lack of documentation which leads to misunderstanding
among the developers. Because of poor documentation in this model when the current
programmer or any other member of development team leaves then it will be very difficult for
the new recruiters to get adapted with development scenario as there will be less documentation
and he won’t be able to grab the speed with other members. If the customer representative isn’t
clear about the outcome of project then team can easily get off the track so this risk should not be
underestimated while developing team and client representative should be well known about the
features that clients wants to get in system. So, there would be both Advantage and
Disadvantage of The Agile Method.
 Risks involved in Waterfall model

As there is very less customer interactions involved in software development and product can
only be demoed once it is ready therefore once the software is developed and if any failure once
then cost of fixing such issues are very high and we have to update everywhere from document
till the logic. Another risk is that if the documentation of software development isn’t done well
then there is high chance of getting off the track while developing software. There is always lack
of project suitability using this model where requirements are at a moderate to high risk of
changing. There is high chance of project failure if we use this model for complex and object-
oriented projects.

 Risks involved in V-model

As, it is too simple to accurately reflect the software development process, and can lead
managers into a false sense of security. The V-Model reflects a project management view of
software development and fits the needs of project managers, accountants and lawyers rather
than software developers or users. Although it is easily understood by novices, that early
understanding is useful only if the novice goes on to acquire a

deeper understanding of the development process and how the V-Model must be adapted and
extended in practice. If practitioners persist with their naive view of the VModel they will have
great difficulty applying it successfully. It is inflexible and encourages a rigid and linear view of
software development and has no inherent ability to respond to change.

(Anon., n.d.)

Explain how risk is managed in the Spiral lifecycle model.

Spiral model was proposed as a risk driven software development process model by Boehm in
1988 wherein the development process is guided by involved risks. This model aims to identify
and evaluate the software project risks and also helps to reduce those risks. In this model the
major sources of risk despite of its risk driven nature is due to high reliance on human factor and
detailed risk management process. According to Boehm, almost the 25% time in this model is
taken in risk analysis and it is mostly designed to known risk in the project. It doesn’t only
provide the flexibility in project but also helps us to know about the upcoming risks.
Spiral development supports risk management in software projects in several ways
summarized in the following:

 The initial risk analysis that acts as a look-ahead step and aims at:
o Identifying most risks threaten the project.
o Classifying risks into user interface risks and development risks
o Evaluate these risks to decide upon the risks to handle through each cycle.
Moreover, this classification helps developers in implementing risk resolution
techniques such as prototyping and benchmarking.
 The evolutionary prototyping spirals that aim at resolving performance and user interface
related risks. These spirals help in reducing major risks before proceeding into the
development process.
 The risk analysis stage at each cycle that precedes each phase of the waterfall phases in
purpose of:
o Resolving program development and interface control risks inherent from the start
of the project.
o Evaluating and resolving the new risks that might arise after changing any of the
objectives, alternatives, or constraints at the beginning of the cycle.
 The iterative feature of the spiral which allows the development process to go back to the
first quadrant at any point in progress which allows:
o Objectives, alternatives and constraints to change as more attractive alternatives
exist.
o New technology to be incorporated easily during the development process.
o The maximum optimization of project resources usage.
o To deal with poorly done activities in the earlier phases.
 The review conducted at the end of each cycle with main stakeholders as a decision point
to avoid the lack of commitment risks during the next cycle.
 Time and cost overrun risks are best managed using spiral development due to the risk
analysis stage conducted at each cycle. In this stage, the cost and time required for each
cycle are analyzed in advance to give a clear picture about the critical state of the project.

This helps the project manager and the developers get more control over these risks.

 Risks related to the increased complexity of the project are also managed using spiral.

This is achieved by the partitioning activity conducted at the planning phase.


o Decomposing the project into portions to be developed in parallel spirals
obviously reduces time contention related risks, since more work could be
achieved during the same interval.

Major Sources of Risk in the Spiral Model Despite its risk driven nature, spiral has its own
sources of risks which are summarized in the following:

 High reliance on the human factor


o All the activities related to identifying, analyzing, and resolving risks rely on the
experience of developers and their abilities in identifying and managing risks. If
these abilities are unavailable, major risks might remain hidden for several
lifecycles and discovered late when it matured into real problems. At that time,
the cost of rework to recover from these risks becomes very high.
 Detailed risk management process
o Cost and schedule risks might increase using spiral due to its iterative feature,
especially for low risk projects wherein risk assessment is not required to be at
this level of granularity.

Once you have prepared the report you are required to produce documentation that

M1 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 particularsoftware
development model over the development environment.
Copy from above

Adaptive model

Client’s continuous feedback

Iterative model

Continuous testing

Less documentation

Manifesto of Agile

Daily Standup meeting, Sprint board.

Agile
It is obvious that the task of choosing the best Software Development Life Cycle (SDLC)
methodology is very challenging task to every organizations and project managers. Each model
isn’t universal and based on the scenario requirement we have to choose the best suitable model.
Every project manager has to be aware about their technical capability, technology constraints,
scenario requirements and features, pros and cons of chosen model for project. We can use
different model relating different scenario and criteria like; RAD model for fast and rapid
software development, we can choose waterfall model based on the requirements, being based on
the risk and mitigating them we can choose spiral model and so on. In the scenario I was given
the task of creating an application for a large insurance company where with various features in
it. First it was very difficult for me to choose best model as every model has their pros and cons
but after analyzing the given scenario and client requirement, I preferred agile model above
others.

Definition

“Agile SDLC model is a combination of iterative and incremental process models with focus on
process adaptability and customer satisfaction by rapid delivery of working software product.
Agile Methods break the product into small incremental builds. These builds are provided in
iterations.” (n.d, 2018) In this model every project is handled differently and existing methods
are tailored to best suit requirements of project. All tasks are divided in small time frames for
delivering specific features in release. It gives priorities to working software and customer
collaboration over comprehensive documentation and contract negotiation. This model also
allows proper response to change than following the project plan and every iteration includes
cross functional team working simultaneously. Each of the iteration need cross functional team
which works simultaneously on areas like: -

 Planning
 Requirement Analysis
 Design
 Coding
 Unit testing
 Acceptance testing

Justification for Selection:

According to my given scenario I was hired to develop insurance company application which
will have various features like storing all clients’ information, sending important notices to
clients and other

company members when required, generating documentation, guidance and counselling from
expert agent and so on. Therefore, being based on such criteria I selected agile model for
software development. There are various reasons for choosing this model rather than other
models like RAD, Spiral, Waterfall, Prototype and so on. Company management gave me the
clarity on the features that they needed in application therefore there was no detail planning
required. Our developer team were in same geographical location usually we used to work in our
office so it was also very easy for me to monitor the work. Software can be developed faster
using this model as we were also bounded by time given by company.

Using agile model helped us to get feedback from real customers. There was never chance of
such situation that we could take all our time to develop such application which client didn’t
wanted so with this model administration could give us a feedback on the work which help us to
be on track. This model provides us the feature of incremental delivery which helped us to build
software in the way client wanted. Whenever the company wanted to know about the ongoing
project then we could deliver them in smaller increments which gave them the opportunity to see
emerging product and they could even respond to it. So, this model could help us and the client
to converge on best possible outcome. Another reason of choosing agile model was because of
early risk reduction, by delivering software early to company and getting feedback we could
reduce the risk of building wrong software. By continuously integrating and developing bug free
software we could reduce risk of building wrong software before delivering final product to
client. This model also helped us to fix cost, time and quality while giving us the tools for
varying business and technical scope. So, as we developed our software and handed it to
company at last, we were sure that we delivered what they needed. This way also agile helped us
for delivering better quality software. Along with those reasons another reason for selecting agile
model was its principle which focuses on the customer satisfaction with the product we
delivered. Implementing this model will help us to build better relationship with customers by
updating the software in regular time intervals and adding new features based on their feedback.
Creating better relationship with such big company administration would help us in various
ways. In this today’s competitive world winning their trust by satisfying them could help us to
get our future projects from them. Last reason for choosing this model was also because it is
trending in today’s software development time. Mostly of the organizations use this model
nowadays because of its suitable features to all the scenarios.

D1 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.

Using Waterfall Model in Large Projects This is the first SDLC approach that was used for
software development. It is very simple and easy to use and understand. This works in the basis
that each phase must be entirely completed before next phase of development begin and also
there is no overlapping in phases. In this approach the entire software development process is
divided into separate phases from top-bottom approach and output of one phase acts as input for
next phase sequentially. Any phase in development process begins only if it is known that
previous phase is completed. Although this model is not used nowadays in large software
development project in this task, I am going to describe the merits of applying waterfall lifecycle
model to such large projects.

Waterfall model probably was the most popular SDLC methodology. All the teams and
company’s all over world used this model to manage their projects. After the introduction of new
models like agile, prototype, RAD etc. it was strongly criticized and slowly agile model replaced
this model because of its various drawbacks. Though it has drawbacks and is replaced still it can
be used in software organizations for large software development because of its peculiar
features.
1.Predictive model and already fixed the requirement.

2.Budget has been fixed already.

3.Output of one module will be the input for next module.

Before the development of other models there were always large projects which the water fall
model managed. This model provides developer the various advantages in development process.
In development phase it prioritizes the task in well-defined and clear steps which makes the task
easier to do. This model follows the simple step of development like requirement gathering with
proper documentation, system design, implementation, testing, deployment and maintenance. In
large projects there are involved various steps and using this model help us to complete each step
of development effectively. As this model follows linear sequential way in development we

don’t have to look back after we complete previous stage. This will remove the tension of
coming back to the same previous stage and altering the code and design.
Another merits waterfall model provides us is that the requirement is already documented on the
project beginning. Therefore, we don’t have to adjust with the changing environment as we can
work on specific environment during development. In the beginning of the project all the
requirement of customer is gathered and proper documentation of project is prepared. Thus, in
such long running projects documentation provides us the better reporting and clear goal can be
set rather than changing mind in midway of project. This prepared documentation will also be
useful for the future use.

This model prefers initial documentation rather than customer collaboration which also provides
benefits to organization. If there was any customer involvement in large project then a lot of time
can be spent for understanding between developer and clients. This waste of time would be not
once but in regular time intervals so low customer involvement in large projects provides
developer their own environment without any scheduled disturbance from customer. In large
projects of software development where the time is 1 to 2 years if any of the developer gets
transfer this will not disturb the development process. With the proper documentation any of the
recruiter can use it for ongoing project works and can cover up the development process
quickly.

In large software projects there are many features to be built in software which creates various
errors. In such stage developer can use the verification and this way no feature will be missed
from software. Moreover, in this model team works together in every step which makes it easier
for them to find bugs and errors in system and resolve them. All those efforts from team and
developer will lastly help to create a standard flawless software. It is very applicable in large
project in term of cost efficient and convenient.

This model allows the project manager and team leader to monitor and handle project easily.
After the well understanding of project between team members it can be divided reasonably
among the team.

As this model follows linear sequential structure while waiting for their turn they can do their
own tasks. For example, in development process coding comes in the last so while waiting for
his time programmer can engage in his own work and after his turn comes in he can complete his
work. This will also help the team to get their result in structured time and also huge
development project can be completed in set out time. In this way using this model various
features we can still use it in large projects.

Conclusion:
The SDLC process provides us the purpose to adhere client order in effective and structured
manner while ensuring the better time of delivery and efficiency. It also includes plan for how to
produce, modify, maintain and replace software system. Spiral model provides us the various
steps through which we can eliminate the present and possible risks and complete development
process successfully. It provides us the feature like risk assessment which helps in risk
identification, analyzing the consequences and effects and prioritizing risk to eliminate them.
Another feature was risk control with which we can plan and develop various strategies to
resolve the risk and gain our complete control over system. Although agile model has some
drawbacks, I preferred to choose this model above all others model. I was given some criteria to
develop the software so being based on different criteria like technical capability, technology
constraints, and scenario requirements I selected this model. Agile model helped us in various
ways like building software faster, getting feedback from customers, better quality, providing
satisfaction to customer and so on. Therefore, it is essential to choose model wisely knowing
their features, along with its pros and cons so that we don’t get stocked into problem later.
Though waterfall model is old model and is replaced by new popular models but still it has some
peculiar features which other model don’t have. This model helps to develop a complete client
required software in simple and easy way. This model has some very beneficial features for both
developer and clients like; preparing the proper documentation and addressing user requirement
in initial stage, reducing cost and effort by making change in design phase which overall helps to
develop a standard and functional software. So, we have concluded how Systems Analysis and
Design are important to analyze.

Part: 2

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

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.

Report on Feasibility Study

Introduction:

“A feasibility study is an analysis used in measuring the ability and likelihood to complete a
project successfully including all relevant factors. It must account for factors that affect it such as
economic, technological, legal and scheduling factors. The feasibility study helps to “frame” and
“flesh-out” specific business scenarios so they can be studied in-depth. Project managers use
feasibility studies to determine potential positive and negative outcomes of a project before
investing a considerable amount of time and money into it.” (Don Hofstrand, October, 2009) It
tests the viability of opinion, a project or even new business. It is the preliminary study
undertaken before the real work of project starts to ascertain the likelihood of the project’s
success. The main purpose of feasibility study is to emphasize the problems which could occur if
one pursues project and determines if, after considering all significant factors, the project is a
good idea. For example, if we are going to develop a web application for our business then we
might be looking to perform feasibility study to determine if it should follow through,
considering material and budget, opinion from stakeholders and laws that might get affected
from it.

A feasibility report is a document that assesses potential solutions to business problem or


opportunity and determines which of these are viable for further analysis. The main benefits it
provides is that it helps to present the project parameters and define the potential outcomes to the
defined problem, need or opportunity. The report is an analysis of possible solutions to a
problem and a recommendation on the best solution to use and it contains extensive data related
to financial and operational impact including advantages and disadvantages of both the current
situation and the proposed plan. The report generated after doing the feasibility study outlines
and analyzes several alternatives or ways of achieving success in that project. It helps to narrow
the scope of project to identify best scenario while completing it. We have to perform the
feasibility study in the planning phase of any project and after the report is generated then it
helps to know if the project is worth doing or not. It helps for our confident buildup and it can
also be costly sometimes but it is better to know if project will be successful or not by doing
feasibility study before. Feasibility report allows companies to determine and organize all the
details to make business work. It helps in identifying logistical and business problems and also
their solutions. It can also lead to the development of various strategies so that we can invest our
time and money in right project.

Purpose of Feasibility Study:

Please write these things in bullets.

The significance of feasibility study is based on organizational desire to “get it right” before
implementing resources, budget and time in project. It might uncover new ideas that could
completely change a project’s scope. It is always beneficial to make those determinations before
rather to jump in and starting the project that won’t work. The outcome of feasibility study gives
us and our stakeholders a clear picture of the proposed project and is always beneficial. While
doing some project or creating software feasibility study is the second document that is created
following business case and this report helps us to determine the factors that will make the
business opportunity which was presented in project success.

Another purpose for feasibility report is to explore the different markets where a target audience
might be located. For example, if we want to create the online payment system then doing
feasibility study helps us to find out where this system can be implemented. It provides us
guidance to launch our system in such places where number of our audience is high such as big
cities. We can analyze existing competitors to see if our new product will be able to break into
the market. If our feasibility study reveal that our company doesn’t have resources to compete
then we can focus our mind on other products. In this case feasibility report stops us from
making costly mistake and cripple our product before it become establish. It provides us the best
response so that we can create the right product for the right customers. Along with the target
audience other purpose of feasibility report is to investigate how acceptable the product is to the
target audience. While doing the feasibility study we have to be based on certain criteria such as
technical, social, law, economical etc. So, the main purpose of feasibility report is to find if our
product fits in those criteria. If the outcome of our research doesn’t fit in any of those criteria
then there is high chance of encountering problems in future so feasibility report provides us the
valuable information for go/no-go decision. It helps us to find out the success or failure chance
of any idea. If the feasibility report shows a likely failure then we can save our budget and time
for another better opportunity instead of wasting it in developing projects that never had chance
of success. A feasibility study is designed to provide an overview of the primary issues related to
business idea. The purpose is to identify any "make or break" issues that would prevent your
business from being successful in the marketplace. In other words, a feasibility study determines
whether the idea makes sense. A thorough feasibility analysis provides a lot of information
necessary for project plan.

Recommendation:
In this way doing feasibility study always helps us while doing the project. The main purpose of
feasibility report is to find our if it is worth doing and if the report shows negative result then it
offers one chance to get it right before we invest our time and money in project. It provides us
the various potential risks in that project so that we can mitigate them in initial before they turn
into huge problem. Not only it tells us to remove the project ideas but also identifies the reasons
not to proceed project so that in future we can be aware about those reasons before. While
creating insurance company software it helped our group decide to expand existing services,
build or remodel facilities, change methods of operation, add new products etc. In this way using
the feasibility study while doing our project for insurance company we are able to understand
about our project so I also recommend others to use this while starting their project.

P4 Comparison of Technical Solutions


Technical solutions assess the current resources such as efficiency, performance, legacy system
and technology which are required to accomplish user requirements in the system within the
allocated time and budget. Similar to the feasibility study of the project the implementation of
the technical solution in the project can be wither before the project is started or after the project
is been started. Technical solution can be compared with the feasibility study because feasibility
study is done for the better decision and technical solution is the solution with the good decision
that can make the business/project profitable. We can compare the technical solutions based on
such criteria like elimination of human errors, performance, budget, legacy system, performance,
efficiency etc. Designing and implementing the solution of the technical problems like financial
problem, machinery problems etc. during the lifecycle of the project means Technical solution.
I am going to show the technical solution of cell phone and landlines and compared with the
following key drives:

 Performance and efficiency


 Legacy systems upgrade
 Automation
 Elimination of human errors
 Budget/ economic

Performance and efficiency:

Cell phones are mobile which means portable and can be taken from one place to another and are
operational anywhere the user can get a signal from a wireless network whereas landline phones
are not mobile and customers can only use it in a single location where there is a presence of
wired connection to telephone network. A cell phone can be very useful during the emergency
that arise when you’re away from home. Cell phones have the capacity and advanced
technology. Cell phones can also give you a chance to take live pictures or videos camera
whereas landline cannot. Cell phones are more fashionable and comfortable than landline.

Legacy system upgrade


One of the clearest benefits you will see is an immediate drop in both service charges as well as
call costs. It helps in the business continuity and employees still have access to core
communication systems like phones, sending and receiving messages, video-clips conversation
etc. it also make able to add features to your lines for easier conferencing and communication.

Automation
The both system typically play a message, then ask the caller to either press a button or speak a
response. Depending on the caller’s input the automated phone system may play some
information, route the caller to another prompt or connect the caller with a human operator.

Elimination of human errors


Human error is an imbalance between what the situations requires, what the person interacts and
what he/she does. It happens when people plan to do the right thing but with the wrong outcome.

Cell phone have GPS technology that can find your exact location or where you trying to go.

Budget / economic
The similarity of landline and cell phone is the fact that they are both used for communication.
The most common reason to choose a cell phone is that in most areas, the cost of a cell phone
plan is lower than the cost of a landline, especially when you count the cost of a long distance
calling plan. Nowadays, we see many people on the streets with their cell phones, as many
people know that it’s easier and cheaper.

Components of Feasibility Report:

A feasibility report is a document that assesses potential solutions to business problem or


opportunity and determines which of these are viable for further analysis. The main benefits it
provides is that it helps to present the project parameters and define the potential outcomes to the
defined problem, need or opportunity. The report generated after doing the feasibility study
outlines and analyzes several alternatives or ways of achieving success in that project. It helps to
narrow the scope of project to identify best scenario while completing it. It is the preliminary
study undertaken before the real work of project starts to ascertain the likelihood of the project’s
success. The report is an analysis of possible solutions to a problem and a recommendation on
the best solution to use and it contains extensive data related to financial and operational impact
including advantages and disadvantages of both the current situation and the proposed plan. We
have to perform the feasibility study in the planning phase of any project and after the report is
generated then it helps to know if the project is worth doing or not.

A feasibility study evaluates the potential success of project so perceived objectives are
important factors in credibility of study for potential investors or other clients. While doing the
feasibility study there are various criteria based on which we have to perform the task. Below I
have described those components of feasibility study:

1. Introduction

Background information of the proposed business or proposed project will be described such as
the proposed name and purpose of the business. It also includes the skills and experience of the
business investors. When we thought of doing feasibility study we have to whom the results of
the analysis, research and evaluation of a proposed project and determine if this project is
technically feasible, cost effective and profitable. In the introduction part of the feasibility study
we have to show the general overview of the report which we are going to publish. When I
performed feasibility study for insurance company in its report, we have to show the background
information company, what are its features, in which country it operates etc.

2. Business or Project Description

Information about the business or project as well as the nature of industry or nature of the project
is discussed in this section. In this part we have to give the overall overview of project and how
we are going to undertake the feasibility study for certain project.

3. Purpose

It is the main component of feasibility study, first of all the researcher should understand the
purpose of doing feasibility study to achieve the desired result. The main purpose for the
feasibility study can be based on organizational desire to “get it right” before any organization
implements resources, budget and time in project. In the purpose of feasibility report it can
uncover new ideas which could completely change a project’s scope.

4. Methodologies

Methodologies give the way of performing or conducting feasibility study in a proper manner. It
helps to select appropriate method for the data collection, organizing data and way of doing the
project. For doing the feasibility study we have to be based on various methods to finds data and
facts about the project. The various methodologies for feasibility study can be questionnaire,
interview, surveys, meetings with people. By interacting with the people, we can know more
about the scope of project in certain location and for certain audience.

5. Background History

Background history is also considered as the component of feasibility study. Gathering


background information of any project will leads the project in the successful way. These
components of feasibility study show us the background of project what was the need for
performing the feasibility study in this project.

6. Intended Audience

These components refer to the audience which will be using the software once it is developed.
For that we have to perform feasibility study on them and find out whether the audience needs
such type of software or not. If the developed software helps the intended audience to make their
task easy then the success rate of software launch will be high.

7. Feasibility Criteria

The feasibility criteria are the points based upon which we have to perform feasibility study. The
feasibility criteria include technical, social, legal, operational, economic, schedule etc. While we
perform the feasibility study in targeted audience, we have to do research based on those criteria.
For example, in schedule criteria we have to find out whether the proposed project will be
completed in time or not, and in economic criteria we have to find out whether the allocated
budget will be enough for software completion.

8. Outcome

This component is also called the final result of the feasibility study. After we perform the
feasibility study in the targeted audience then the report published needs to be analyzed. After
the report is analyzed by the system analyst, we can finally come to the conclusion of whether
the project should be started or not. These components provide us the final output of feasibility
and evaluating this we can decide whether to start project or not.

9. Conclusion and Recommendation


After the outcome of feasibility study is published then system analyst and other project
stakeholders have to interact with each other and come to the final conclusion. These
components provide overview to the other individuals about the project and feasibility study.
After the conclusion is drawn from the report then we also have to recommend it to other
projects. We have to recommend it to project managers so that again in another project we get
chance to get it right before we start any project.

10. Evaluation Criteria


11. Review

We must remember that a feasibility study is a way of thinking rather than a bureaucratic
process. For example, what I just described is basically the same process that we all use when
buying a car or a house. As the scope of the project grows, it becomes important to document the
feasibility study, especially if it involves large sums of money and/or how important delivery is.

The feasibility study should contain not only sufficient details to continue the next phase of the
project, but should also be used to conduct a comparative analysis when preparing a final project
review that analyzes what has been delivered against what was proposed in a feasibility study.

Feasibility studies represent a general approach to planning. Frankly, it's just a good job to
implement. However, I have read that some people in the field of information technology, such
as proponents of the "agile" methodology, consider that feasibility studies are a huge waste of
time. If that's true, got to have a good used car I want to sell.

About feasibility study in Insurance Company

“A feasibility study is an analysis used in measuring the ability and likelihood to complete a
project successfully including all relevant factors. It must account for factors that affect it such as
economic, technological, legal and scheduling factors. The feasibility study helps to “frame” and
“flesh-out” specific business scenarios so they can be studied in-depth. Project managers use
feasibility studies to determine potential positive and negative outcomes of a project before
investing a considerable amount of time and money into it.” (Don Hofstrand, October, 2009)It
tests the viability of opinion, a project or even new system which insurance company is planning
to do. It is the preliminary study undertaken before the real work of project starts to ascertain the
likelihood of the project’s success. The main purpose of doing feasibility study in insurance
company new system is to emphasize the problems which could occur if we pursue project and
determines if, after considering all significant factors, the project is a good idea. A feasibility
study evaluates the potential success of our new system so perceived objectives are important
factors in credibility of study for insurance company potential investors or other clients of
company. There is special purpose of doing feasibility study in insurance company new system
as we have to know if the new proposed system will be worth doing or we have to reconsider
some of its functions which might affect us further.

Problem Statement of Old System


From the very few years the insurance company was running a system which has less features as
compared to the today’s technology so to go through latest system functions company has
decided to update it to latest versions. In the previous version there was the system which was
only used to keep track of customer enquiries about information and purchase of its products and
services and making claims. Previously the system was only being used in United Kingdom thus
there weren’t used the range of currencies to purchase the products so there was no need to allow
for fluctuating currency exchange rates. In the previous versions customer were only able to read
the facts and not allowed to make desired change in the system. Customers weren’t able to
communicate to company through online customer care service through email or any other
messages. Previously, there was only the documentation of customer information and proper
security wasn’t provided to the system as related to today’s technology.

My Feasibility Study’s report for given project

After the project was given to our company and before signing the final agreement document my
company told me to do feasibility study in this project. So, based on the various criteria of
feasibility study I began my research and reached to final conclusion of project work. While
doing the work my feasibility research was based on different criteria which were related to
company’s environment such as technical, economic, social, legal, operational, schedule etc.
Below I have provided the documentation of my research work on the given scenario project.

Technical Criteria

The technical criteria of feasibility study focus on the available technical resources in the
organization. It helps the company to determine whether the technical resources available in
organization meet capacity and whether their technical team will be able to convert ideas into the
working system. It also involves the evaluation of software, hardware and other various
technological requirements for proposed system. This criterion explores if the project feasibility
is within the limits of current technology and if it is available with given resource constraints.

While conducting feasibility study here I find out what type of hardware and software’s we will
need for making such large software. We have to use high performance server and another
device for managing network traffic. If all those features can be provided by us then we can
move forward otherwise we have created some solutions to these criteria for moving forward.

Software Requirements Hardware Requirements


IDE (Java, JavaScript) with Intel i5 or i7 processor, 4th generation or newer (Virtualization
MVC and must be supported)

Hibernate Pattern
Implementation Components Windows 7 or newer operating system and if used Ubuntu version
(JDK) must be higher than 14
Tool for drawing diagrams
1TB or more disk storage, Performance HDD with 32 – 64 MB
Cache or SSD recommended
Configuration Builder Minimum of 1600x900 screen resolution
Word processor for
Minimum 8GB of RAM (16 -32GB RAM recommended)
documentation
Windows Server 2008, Server 2012(PC or Mac computers using
Tool for drawing diagrams
Boot Camp).

Requirement for Clients Requirements of Manpower


Operating system (i.e. Windows, or Mac OS

X 10.3.8, Ubuntu)
One Project Manager

Min processor speed (i.e. Pentium 4, 3.2 GHz or Power PC G5, 2.0
One System Analyst
GHz)

Memory i.e. RAM (i.e. min 512 MB)


Five Programmer
Programmer-5
Graphics Card (i.e. ATI Radeon 9800 w/ 256
Two Designer
MB video memory)

I/O Ports (i.e. USB, Fire wire, Serial, Parallel,

SCSI, VGA, DVI ports)

Impact on Software Investigation


The above given facts are only planned while doing the feasibility study and for such large
projects if somewhere there is need of extra technical requirements like extra computers, extra
features and need of other manpower then such requirements can be added as required. All the
above given technical requirements can be fulfilled by our company current manpower and
requirements so we can use and manage those technologies which is positive impact for system
development.

Alternative Solutions for Problems


While developing the system we can encounter problems anywhere like in the designing phase,
development, testing etc. therefore we need to have some alternative solutions if the problems
arise during development. If the problem arise for the manpower of the development team then
quickly new members will be recruited and development process will go on. If we encounter the
problem related to hardware and software then for the hardware backup files will be sent to
another computer and if software crashed or any other problem arise then we will renew those
software’s.

Legal Criteria
The legal criteria investigate whether any aspect of proposed system conflicts with the legal
requirements like zoning laws, data protection acts or social media laws. We have to check our
system comply with all the legal requirements like data processing system must comply with
local data protection acts etc. Our project might face legal issues after completion if these criteria
isn’t considered at this stage and performing these criteria, we can save considerable time and
effort by learning that project wasn’t feasible right from the beginning. While doing the research
on our insurance company system feasibility we find out if the planned project will affect with
some country’s legal act or not. If our project affects any country laws and acts then we have to
find out some alternate solutions for those laws. We find out that our proposed system doesn’t
affect any country cyber laws or Data Protection Acts so we can move to next step and we are
going to follow rules and regulations for each country where company has branch and the
proposed system will be implemented which is positive impact on the system investigation.

Economic Criteria
The bottom line for many projects is economic criteria. It involves cost/benefit analysis of
project and helps us to determine viability, cost and benefits analysis of project before the
financial resources are allocated. In this criteria cost of hardware, software and user training are
considered and we also need to determine the budget of the project in advance after analyzing the
requirements. We can also use economic analysis for evaluating the effectiveness of the
proposed system. As soon as the specific requirements and solutions are identified then the
project analyst can find the costs and benefits of each alternative by performing cost-benefit
analysis. While conducting feasibility study I figured out if the given budget will be sufficient for
the system development or not. The given budget for the system development is 30 lacs so for
each phase of software development we have to divide budget as required. Below I have divided
the total budget provided by company for various stages of system development.

Impact on System Investigation

In the above table I have provided the budget separation for the system development. I have
separated the budget for each phase of system development life cycle with feasibility study,
hardware and software. If we make software for budget of 30 lacs the in return the insurance
company can get benefits from Nepal, United Kingdom and from other international market then
it will provide us the positive impact. In the above table I have only provided the budget figure
of 26 lacs so that in case of emergency we can use another 4 lacs.

Alternative Solutions for Problems

While developing the system we can encounter problems anywhere like in the designing phase,
development, testing etc. therefore we need to have some alternative solutions for budget if the
problems arise during development or any other stages. While doing the feasibility study I have
figured the total budget of 26 lacs while the given budget is 30 lacs so that we can use another
four lacs in emergency case. Also, for the remaining 4 lacs we can use it for adding programmers
or backup hardware and software if we have to finish work quickly or if we encounter problems
for hardware and software.

Social Criteria
This criterion determines whether the proposed project will be satisfactory for the people or not.
In this stage we have to examine the probability that the system would be accepted by the group
of people that are directly affected by the proposed system. If the proposed system affects the
people then either we have to solve those issues or if we start project without solving those issues
it might create huge problems in future. In this criterion we also determined what skills the target
population need to learn on the job and how to learn them if the jobs will meet their needs. It
incorporates a participation strategy for involving a wide range of stakeholders and accesses
whether the organization is likely to succeed in making the social changes.

We found out that the proposed insurance company system doesn’t affect the people and there
was high probability of system being accepted by the society as they are the one directly affected
by the proposed system which is positive impact. If somehow, we encountered the problems in
society regarding the system then first, we will find out the reasons which are affecting then we
will try our best to mitigate those problems.

Schedule Criteria
This criterion is the most important for project success after all a project will fail if not
completed on time and organization estimates how much time the project will take to complete.
We also have to determine if the project deadlines are reasonable whether constraints place on
the project schedule can be reasonably met. Some projects are initiated with specific deadlines
and we have to determine whether the deadline of project development are mandatory or
desirable and if it is preferable to deliver a properly functioning information system two months
late than to deliver error prone useless information system on time. Although the missed
schedules are bad but inadequate system are much worse in today’s competitive world. The
given time for creating system is five months so we checked through schedule criteria of
feasibility study if the given time will be sufficient for or not.

Stage of System Development Time Taken


Planning 20 days
Feasibility Study 10 days
Designing 30 days
Development 70 days
Testing 10 days
Maintenance & Support N.A(Agreement of maintenance for 1yr)
Total 4month & 20days

In the above table

I have provided the time schedule for the system development. I have separated the time for each
phase of system development life cycle with feasibility study, design and development etc. In the
above table I have only provided the time figure of four months and twenty days so that in case
of emergency we can use another ten days fixing those errors and complete project within time.
As we create this table in feasibility study we can properly use and manage the scheduled time
while developing our system which is positive impact on system investigation.

Alternative Solutions for Problems

While developing the system we can encounter some problems anywhere like in designing
phase, development, testing etc. therefore we need to have some alternative solutions for
schedule if problems arise during development or any other stages. While doing the feasibility
study I have only provided the time figure of four months and twenty days so that in case of
emergency we can use another ten days fixing those errors and complete project within time.

Also, we are going to negotiate to the company if in given time our task isn’t completed as we
believe in delivering quality product to our clients and for this time shouldn’t create any
problems.

Operational Criteria
This criterion involves undertaking a study to analyses and determine how well the company
need can be met by project completion. It also defines the urgency of problem and acceptability
of any solution and also shows if the system is made then how it will be used. This criterion also
analyses how system plan satisfy the user requirements identified in the early stage of
requirement analysis of system development. The operational criteria include the people oriented
and internal issues such as manpower problems. We checked how the designed product i.e.
system of insurance company performs in real operational environment and how operation
should provide the adequate throughput and response time. In this criterion we can check if there
will be resistance from uses that affects the possible application benefits or not and it also
provide us the cost-effective information services to the business which is the positive impact for
the system investigation.
In this way I have provided the documentation of my feasibility study as per my research work
when we were developing system for insurance company. In the above documentation I have
also assessed the impact of different feasibility criteria on the software investigation.

Conclusion:
In this part of my assignment I have provided the documentation that explains the purpose of
feasibility report and describes how technical solutions can be compared. I have explained how
the main purpose of feasibility study is to emphasize the problems which could occur if one
pursues project and determines if, after considering all significant factors, the project is a good
idea. The feasibility report is an analysis of possible solutions to a problem and a
recommendation on the best solution to use and it contains extensive data related to financial and
operational impact including advantages and disadvantages of both the current situation and the
proposed plan. I have also explained how the technical solutions can be compared based on
different criteria such as efficiency, performance, legacy system, elimination of human errors. A
feasibility study evaluates the potential success of project so perceived objectives are important
factors in credibility of study for potential investors or other clients. While doing the feasibility
study there are various criteria based on which we have to perform the task such as economic,
technical, schedule, legal, social etc. After the project was given to our company and before
signing the final agreement document my company told me to do feasibility study in this project.
So, based on the various criteria of feasibility study I began my research and reached to final
conclusion of project work. I have also provided the documentation of my feasibility research
which was based on different criteria which were related to company’s environment such as
technical, economic, social, legal, operational, schedule etc.

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
Introduction:
While I am working as the system analyst in the ongoing project identifying the stakeholder and
to know the client requirements from the project is important task for me. In this part of my
assignment I am going to undertake software investigation to meet the business need using
appropriate software analysis tools to carry out a software investigation and create supporting
documentation. I am also going to identify the stakeholders, identify the requirements of clients,
specify the scopes like inputs, outputs, processes and the process descriptors, consideration of
alternative solutions and quality assurance applied.

Identify Stakeholders:

A stakeholder is either an individual, group or organization who is impacted by the outcome of a


project. They have an interest in the success of the project and can be within or outside the
organization that is sponsoring the project. A stakeholder is a person, like any other member of
the project, and some will be easier to manage than others. There are a lot of people involved in
getting a project from inception to successful completion. We are going to have to know how to
manage each and everyone one of them, even those who don’t work directly under us. One such
person is the project stakeholder. Stakeholder and Community Engagement can have a positive
or negative influence on the project.

It is very important to identify the stakeholders of our project as the success of project depends
upon it. We have to meet up with the requirements of project stakeholders and we have to figure
this out as soon as our project starts. We can identify our stakeholders by reviewing our project
charter which are the reason for the project and appoints the project manager. We can also
discern the stakeholders among the information about objects, budget, assumptions and
constraints, project sponsor and top management schedule. In the table below I have provided the
stakeholders of our project.

Project Leader Consultants to Project Line managers


Clients Project team members Senior management
Project User Group Group impacted after completion Group impacted in progress
Resource Managers Subcontractors to project Product testers
Identify Client Requirements:

Clients have certain needs and requirements for the system and they need to establish the
relationship between the organization and the clients. We can’t forward the project without
knowing the requirements of clients and project success depends only when the requirements of
clients are met so it is very important to know the client’s requirements and fulfill them. Each of
the clients might have different requirements for the software they want and identifying the
requirements of the client helps us to accomplish the development of the software.

Client Requirements Software Functions


Separate login for administrator and normal
User Friendly
users
Fast in data storage Stores client information
Retrieval Proper guidance to new clients
Windows, Mac OS X, or Linux operating
Online service of organization
system
Sun Microsystem’s Java, Runtime edition Direct connection with client’s bank
Proper designing/Attractive 24/7 customer service
Web browser supportive such as Chrome,
Online service of Insurance Renew
Safari, Firefox, Internet Explorer
Software Scope:

“Software scope is a well-defined boundary, which encompasses all the activities that are done to
develop and deliver the software product. The software scope clearly defines all functionalities
and artifacts to be delivered as a part of the software. The scope identifies what the product will
do and what it will not do, what the end product will contain and what it will not contain.”
(Bhatia, 2017) It describes the functions and features which are meant to be delivered to end
users and this is where we have to list out the tasks which needs to be done given the project
goals and estimate how much time will be required to do them. The software which we develop
will be used by the insurance company to save data about their clients, stakeholders, employees
and it will make their work easier. We have defined the input, process and output of the software
which is given in table below: -

Input Process Output


Verify if Username and
Login Module Show the home page
Password is valid
Search Look for searched name in database List out clients’ detail
User’s Profile Search for user name Show the user profile details
Data entry Connect to database Save data in database
Records
Verify if user name is in the system Show the details made by user
Module
Contact us Look for details in database Provide company contact details
Verify if user’s transaction is recorded in
Reports Module Show the report
system
Look if company customer care is Connect to company customer care
Customer Care
currently available employee

Process Descriptors:

Our system has various functionality and activities which are performed in the software and it
works on many processes. The system which we developed for the company has many features
which was developed according to our client’s requirements. When we instruct some input to the
system then it shows some specific outcomes of the activity as input are processed and then
output is shown. While the user tries to login to the system then first the login panel will appear
where user have to provide username and password then system will verify those login
credentials and only then user get access to the main page of system. Also, when the user tries to
search the client details in the search box then system looks for the searched name in database
then only it lists out the client details. Whenever the new user tries to save its details in system
then first it will get connected to the database then only the data are stored. When the user tries to
generate report of his details the first system has to verify if user’s transaction is recorded in
system then only the report is shown to user. We have also provided the feature of customer care
and contacting directly to company and for this process first system will look if company’s
customer care is currently available and if yes then user can contact to the customer care
services.

Consideration of Alternative Solution:

Due to competitiveness in the software industry and also because of today’s online market it is
always better to have alternative solution for any software. Creating software for such huge
insurance company with all required features isn’t an easy task and it is necessary that it is
computationally supported since everyday projects are larger and these should be developed in
shortest time and within given budget. Although the insurance company told us to create
software but while considering the alternative solution, we can also use web application. Web
application also helps the company to work securely and prevents from uncertain and sudden
problems for such large company such as system failure, crash of software, system hang due to
load; so, in such case web application can be alternative solution. Also, In the current scenario
many companies prefer to build web application then software as it is little cheap then creating
software, easy and nowadays most of those large company clients are moving to online market.

Software Security:

“Software security is about building secure software: designing software to be secure, making
sure that software is secure and educating software developers, architects and users about how to
build secure things. On the other hand, application security is about protecting software and the
systems that software runs in a post facto way, after development is complete. Issues critical to
this subfield include sandboxing code (as the Java virtual machine does), protecting against
malicious code, obfuscating code, locking down executables, monitoring programs as they run
(especially their input), enforcing the software use policy with technology and dealing with
extensible systems.” (gary, 2011) We have to provide integrity, authentication, availability and
accountability to the system to protect it fromattacks like buffer overflow, command injection
and SQL injections. We can prevent our software from these type of attacks by following good
programming techniques while creating the software and then after we can provide the system
level security using firewalls, intrusion detection and prevention which might help us in stopping
attackers from easy access to our software. Moreover we have also tried to make user password
strong, unique and hard to guess by using password policy.

System Quality Assurance

“Software quality assurance (SQA) systematically finds patterns and the actions needed to
improve development cycles. Finding and fixing coding errors can carry unintended
consequences; it is possible to fix one thing, yet break other features and functionality at the
same time. SQA has become important for developers as a means of avoiding errors before they
occur, saving development time and expenses. Even with SQA processes in place, an update to
software can break other features and cause defects commonly known as bugs.” (Rouse, 2015)
For implementing the quality assurance system first we have to set goals for the standard and
then we have to consider the advantages and trade-offs of each approach. We can do this by
maximizing efficiency, reducing cost or minimizing errors and for this management must be
willing to implement process changes and work together to support quality assurance and
establish standards for quality. System quality assurance is organized into goals, commitments,
measurements, verifications and abilities. For example for the quality assurance of our software
we hired highly skilled developers, and skilled testing team so that we can find out bugs in
testing phase and it might not create problems further. Testing was done in each phase to ensure
that nothing is missed in the development of the software. Proper documentation was done
before the developing process where we enlisted everything like things needed to be done in
each phase, requirements, etc. We have made sure that the quality of our developed software will
meet the requirement of the clients.

Constraints

The constraints in system development are anything that restricts the action of development team
which can cover a lot of territory. The main constraints for project or software development are
time, resources and quality and most of the projects in IT industry are driven by those triple
constraints i.e. time, resources and quality. All the projects are carried out under the certain
constraints and it is the budget or cost available to be used toward the development of system.
Constraints have direct impact on how the system development is planned and tracked and what
can be developed by a specific point in time. Below I have identified the constraints for our
project like costs, organizational policies, legacy systems, hardware requirements etc.

Cost: This is the estimation of the amount of money that will be required to complete the
project. Cost itself encompasses various things, such as: resources, labor rates for contractors,
risk estimates, bills of materials etc. All aspects of the project that have a monetary component
are made part of the overall cost structure. We were given the total budget of 30 lacs while
developing system and below I have provided my feasibility report which shows total of 26 lacs
and remaining 4 lacs we are going to use in case of emergency.

Organizational Policy:

“An organizational policy is a set of guidelines and best practices put in place to protect the
company, employees, and customers. Organizational policies may cover employment practices,
employee conduct, disciplinary procedures, Internet and e-mail use. Customer policies provide
guidelines on working with customers and outline what customers can expect from the
organization. In general, organizational policies define what is or is not permitted within the
organization. By doing this, they establish expectations and limitations related to behavior.”
(Dawson, 2013) The main purpose for our organizational policy is to provide clear definition or
boundaries within which to work, define what is acceptable and unacceptable behavior and
provide guidelines and set customer expectations. There shouldn’t be inclusion of any other
external policy while developing system. Also, while developing the system we are going to pay
attention to different countries rules and regulations.

Legacy System:

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. There might an outdated system which could still be working well. So, the developed
software will be made compatible with old system. Older system may require added
compatibility layers to facilitate device functionality in incompatible environments. In our
development team we have also hired the developers of insurance company development team so
that they can tell us about old system and we can make new system compatible with old system.

Hardware Requirements

The system was developed for the hardware like Personal Computers, Laptop, MacBook and
Mobile. It can be used in mobile like android, IOS and windows phone. Software can be used in
computers. Various hardware was required in building the system Personal computers, Laptop,
MacBook, storage disks, etc. Below I have provided the hardware requirements for software.

Hardware Requirement for Clients


Operating system (i.e. Windows, or Mac OS X 10.3.8, Ubuntu)
Min processor speed (i.e. Pentium 4, 3.2 GHz or Power PC G5, 2.0 GHz)
Memory i.e. RAM (i.e. min 512 MB)
Graphics Card (i.e. ATI Radeon 9800 w/ 256 MB video memory)
Hard Disk Space (i.e. 80 GB available)
I/O Ports (i.e. USB, Fire wire, Serial, Parallel, SCSI, VGA, DVI ports)

Background Information:

A large insurance company which is predominantly operating in United Kingdom is going to be


offering its products and services to many international countries in its drive to grow and become
a large international company. The company has been using a system to keep track of customer
enquiries about information and purchase of its products and services and making claims etc.
which needs to be updated. As company will be going globally, customers from various
countries will be purchasing the products with much wider range of currencies. So, the new
system that insurance company needed is according to the currency exchange rate. There should
be this system in the newly developed system for the insurance company.

Problem Statement:

From the past few years the system of insurance company was providing user the application
facility through general features only like Creating account, Updating the details and Deleting
the details. As the technology is slowly directing towards the online the company wants to
upgrade old system into new version with all the required functions. Previously, the company
was using system only to track its customer enquiries, purchase of its products, services and
claims etc. As now the company is going to extend its branch globally and become a leading
insurance company it needs to upgrade its old system into new with today’s required features.
There will be customers from different countries, different currencies will be given by the
customer in order to purchase the products so there should be feature of fluctuating currency
exchange rates in system and also Speed, Accuracy and Flexibility should be provided to the
application using right technologies which wasn’t available in old system. Therefore to
overcome those previous problems company hired us to develop new system which will function
properly in all countries with new popular features in online market.

Data Collection Process:

It is the way of gathering and measuring information on variables of interest, in an established


systematic process that enables one to answer stated research questions and evaluate outcomes.
The data collection component of research is common to all fields of study including physical
and social sciences, humanities, business, etc. Before starting to develop a new system for
company there were other important things to do like collecting the data about company and its
facilities. For the data collection process, we took an interview from the IT team of company and
what they want from new system. We also provided the questionnaire to clients and read about
the previous system review so that we can find out what they were expecting from the new
system. We also identified the stakeholders for the system and distributed questionnaires to know
their expectations from the system and organized workshop to provide certain information to
group members on the working phases and techniques to be used while developing a new system
for insurance company. By this process we were able to know various things about the client’s
and user expectations from us and what additional features we can add to system so that it will be
easy for new users.

Software Analysis Tools:

For software analysis, we used various tools such as Data flow diagram (DFD) and entity
relationship diagram (ERD). The software analysis tools are discussed briefly below:

Data Flow Diagram (DFD)

“A data flow diagram (DFD) maps out the flow of information for any process or system. It uses
defined symbols like rectangles, circles and arrows, plus short text labels, to show data inputs,
outputs, storage points and the routes between each destination. Data flowcharts can range from
simple, even hand-drawn process overviews, to in-depth, multi-level DFDs that dig progressively
deeper into how the data is handled. They can be used to analyze an existing system or model a
new one.” (Bhagnani, 2017) This diagram shows how the data is processed by a system in terms
of inputs and outputs and as its name illustrates DFD mainly focus on the information flow in
system, where data comes from, where it goes and how it gets stored in the database. Apart from
the data flow in system there is also shown the information flow which is represented by various
symbols like rectangle, arrow sign and circle. Although there are various levels in Data Flow
Diagram below, I have provided the diagram of level second. In the second level data flow
diagram information is extracted and figured out than the previous levels one and zero.
Sometimes it becomes complex to design the clear second level data flow diagram but when
designed by the skilled person it provides us the clear picture of system data flow and provides a
lot of information.

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. An ERD is a data modeling technique that
can help define business processes and be used as the foundation for a relational database.”
(Rouse, 2017) This diagram helps us in the representation of the relationship among the entity
and the attributes and helps us in representing how the entity is directly related to the attributes
and how they relate with the system. This process is used for the system and project development
as it helps us in the identification of the elements and relationship among them. The elements
that are used to draw the ER diagram are attribute, entity and relationship among them.
Summary:
Developing the new system for such large company with inclusion of all its features is very
difficult project to do. When the project was first given to our company then first of all we
decided to perform the feasibility study on this new system development and when the report of
study was good then we dived into the software development process. To develop any system
first we need to choose the best system development model and be clear about the reasons for
choosing that specific model in this project. We analyzed the various system development
models like Waterfall, Agile, Prototype, Spiral etc. After knowing the pros and cons of each
model we gathered the overview from all the project members and decided to go with Agile
model in this project. Then for the initial planning phase we went through the feasibility study
report and hired the new required developers, technologies, software etc. As in the agile model
we don’t have to do documentation and we can add new requirements from clients whenever we
have to so after the proper planning of project, we moved toward the next step which is
designing phase. We designed the Data Flow Diagram and ER-Diagram for the system which
helped the developer and any other project member to get overview of whole system and how it
will work once it is completed. We hired the top designer from our country to design the system
layout using various technologies and after the completion of this step we moved toward the
development phase. In the development phase we used top technologies and popular language
for proper coding to make the software fast, reliable and accurate. We also used various
technologies to provide security for the software using firewall and popular web hosting
company. Different constraints were listed out such as costs and organizational policy. We also
find out the reason behind developing a new system and problem that insurance company had in
their old system. We went through a data collection process where we held workshop, formed
groups, took an interview and asked questions to the head of the insurance company. We tried
our best for the quality assurance of system and for this we used highly skilled developer, testing
in each phase, proper documentation although it is not highly required in agile model. We also
arranged face to face client interaction so that we can show them the ongoing process in system
development and get quick feedback which helped us to increase the software quality.

Software Requirements:

The software requirements are description of features and functionalities of the target system.
Requirements convey the expectations of users from the software product. The requirements can
be obvious or hidden, known or unknown, expected or unexpected from client’s point of view.
They are descriptions of the services that a software system must provide and the constraints
under which it must operate. Requirements can range from high-level abstract statements of
services or system constraints to detailed mathematical functional specifications. We should try
to understand what sort of requirements may arise in the requirement phase and what kinds of
requirements are expected from the software system.

Although every development model says that we have to state the software requirements in the
initial stage of development stage but we can also trace the software requirements throughout the
software lifecycle. In software development models like Agile, Prototype there is no proper
client requirements documentation required so we can easily add new requirements whenever we
want. After finding out the software requirements we can prioritize those requirements based
upon their needs and making work easier by implementing them on system. High prioritized
requirements can be done first and then according to the priority of requirements we can
implement them on system. After doing this user can easily surf on the system and find out the
features which he needed to perform in system. We can also develop the prototype to meet the
system requirements. Prototyping is building the user interface without the detail functionality
for user to interpret the functions of intended software products. It will help us giving better idea
of requirements and if user isn’t aware of its own requirements then we can create the prototype
based on the mentioned requirements. Then prototype can be shown to client and feedback can
be noted and software requirements can be found out using prototype.

The model used in the software development process also helps us to find requirements. As we
were using agile software development model it made us easy to get requirements in each phase
of the development process. The lifecycle of software starts from planning phase and ends in
maintenance after it no longer requires update and new version replaces it. Therefore, we can
trace the software requirements throughout the software lifecycle from the initial planning phase
to the last maintenance phase when the system is replaced by new software. The first step of
software lifecycle produces high level overview of project relating requirements and scope of
software. It is very important for software requirements in software development process. In the
next phase of software lifecycle i.e. analysis the development team visits the user and studies
their system. They investigate the need for development in the given system. By the end of the
feasibility study, the team furnishes a document that holds the different specific
recommendations for the candidate system. It also includes the personnel assignments, costs,
project schedule and target dates. The requirements-gathering process is intensified and focuses
specifically on software. To understand the nature of the programs to be built, the system
developer must understand the information area for the software, as well as required function, its
behavior, performance and other systems it interfaces with.

The next step in software lifecycle is design phase where we can figure out how the application
will function to meet both the needs of the business and the needs of its users. Software design
can take on many forms. There may be wireframes that sketch out the web or mobile app
screens. There may be a higher fidelity design or prototype where you get to see or use a mockup
of the system complete with great graphics, fonts, and images. There may even be very technical
specifications that detail logic, workflow, or the data of the system. All of these documents help
describe on paper how the system should look and work. We can add new software requirements
for the design of software in this phase. In the implementation part of software development
requirements can be prioritized. According to level of prioritization, software developments
things will be done. High priorities things will be done in the first place of development phase of
software. While implementing, we can add more requirements if needed for the software. Used
models can also help us to find out the more requirements in this phase.

In the testing phase of software lifecycle requirements testing is done to clarify whether the
software requirements are feasible or not in terms of time, resources and budget. This procedure
helps improve requirements quality and reduce the number of tests necessary to meet these
requirements. When testing the system, we can also find out the new additional requirements
which we can add to the system. The maintenance phase is the longest period of software
lifecycle and majority of the software requirements are added in this phase. After the new system
is launched in the market then after certain period of time, we have to add new features to the
system by updating it and we this way we can trace those new software requirements. The used
model for system development also helps us to find out the requirements.

In this way we can trace software requirements throughout the software lifecycle and in each
phase. We can prioritize our requirements then high prioritized task can be performed first and
also we can develop prototype to meet requirements. The used model for development process
can also help us to find requirements as agile model helped us to add requirements later after
completing one step.

Software Quality

Software quality is the method of assuring if the requirement of the business context and the
customers are meet or not. It is the totality of functionality and features of a software product that
bear on its ability to satisfy stated or implied needs. The software quality maintenance at the
organization is the process of checking if the software is produced in the correct format or not
and if it can compete with the similar software in the market or not. Maintaining the quality of

the software is a necessary factor because with this the actual work of the system and the facility
to the customers will be provided. Measuring the quality of the software checks the risk, cost and
all the factors that can affect on the development of the project. The quality assurance process of
the software is the continuous and the ongoing process that is still not completed until the end of
the software. Assuring the quality of the software is the set of the things that is necessary to be
done for the quality of the products. The software quality approach helps in checking the
weaknesses of the project and then with the identification of the weaknesses correcting those
weaknesses continually to improve the quality of the software.

The way to provide high-quality software is to implement effective QA management that


provides tools and methodologies for building bug-free products. Software quality
management is an umbrella term covering three core aspects: quality assurance, quality control,
and testing.

Software underpins nearly every business process. Therefore, it’s essential to lower the cost of
testing and improve the quality of your software.

Below I have provided some approaches which helps us to improve software quality and
improve testing efficiency.

1. Communication

To improve software quality, it is important that all parties to the project have full information
through fluid communication channels. The important aspect of fluid communication is that all
parties have the opportunity to provide feedback to the team to ensure that all expectations are
being met. It is also important to keep all stakeholders in the loop and not isolate team members
from the vendors or end user of the software. Isolation can mean that the project is delayed or
may not deliver on the goals expected by senior management.

2. Review, revise, and remember

Producing software quality is not a coincidence. This is why we must always do the following
three things which are review – Testing often is a pillar of ensuring software quality. It ensures
that standards are continuously met and bugs, errors and distractions can be fixed before they
spiral out of control. Revise shows what has worked throughout the software process. Utilize
what is working and see if innovation can transcend our software quality even further.
Remember When we deliver quality remember what worked well and did not work well. We
have to keep an updated record of both the positives and negatives of any given project and turn
to it frequently when we start the next project from scratch.

3. Extensive Unit Testing


Unit testing is the closest we can come to having peace of mind after deploying new code into
our production environment. Unit tests should be written first and then used to ensure that our
code satisfies the insurance company requirements, rather than vice versa. This is sometimes
difficult for teams that have not worked with unit tests before to grasp, but it is a very important
step.

Below I have discussed the two approaches that can be applied to our scenario to improve
software quality.

1. Know the requirements

While developing the system for insurance company our software development team needs to be
provided with a definition of what a quality outcome looks like and how it fits into the time,
resource and budget constraints. If our development knows the requirements then carefully
defining each phase of software development will lead to an overall improvement in the ability
of the team by not over taxing the various resources with unrealistic expectations. As the system
analyst I have to understand the importance and need of providing clear and concise business
requirements so that our development team can execute those goals. Although it is difficult for us
to go into too much detail here but giving developers poor outline of what’s required and
expecting them to fill those gaps will push software development over the deadline and this
might result in unhappy users and poor-quality software. As we are using Agile model for
software development, we don’t have to do the proper documentation for knowing client’s
requirements. We can always have the face to face interaction with clients and show them the
ongoing work in development and take the quick feedback from them and change the features
according to their requirements.

2. Implement quality controls & encourage innovations from beginning

If we wish to deliver the quality software then we have to start implementing the quality controls
from the beginning which is an ongoing process throughout the deliver. Our team testers can
monitor quality controls and create awareness in partnership with developers to ensure standards
are continuously being met. If there is a good relationship between testers and developers then it
can help the project software strategy develop effectively. Also, while developing software a
systematic methodology in quality control can ensure that the coding errors and bugs are dealt
with effectively, following a structured process. Although it is important in our software
development to place testing structures and quality measures in their place, however we should
also provide room for innovation. We can place innovation by automating testing where possible
to minimize time spent on controls. Innovations are important because they can lead to
improvements in software quality that have the capability to transform how projects are
delivered also while developing software for insurance company research and development
should be encouraged for such large projects. We can also empower teams to explore,
experiment and investigate continuously and we can also ensure that advancements in innovation
are duly rewarded. The team member have capacity to transcend ongoing software quality and
deliver projects with a competitive advantage over today’s IT industry competition.
In this way we can improve the software quality by using above mentioned various approaches.
If we are able to follow those approach effectively then surely we can deliver quality system to
our clients. Software underpins nearly every business process. Therefore, it’s essential to lower
the cost of testing and improve the quality of your software.

Function Design Paradigm

“Functional Design paradigm is a paradigm used to simplify the design of hardware and software
devices such as computer software and increasingly, 3D models. A functional design assures that
each modular part of a device has only one responsibility and performs that responsibility with
the minimum of side effects on other parts. Functionally designed modules tend to have low
coupling.” (Smith, 2018) Systems with functionally designed parts are easier to modify because
each part does only what it claims to do. Since maintenance is more than 3/4 of a successful
system's life, this feature is a crucial advantage. It 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.

It is the method that is been used to simplify the design of hardware and software devices such as
computer software and graphic designing. It is also known as the formal documentation that is
been created so as to describe in details about the software developers connecting the developers
and the user interactions. Proper environment of the project along with the setup goals of the
organization in an analytic phase of the each iteration, it helps in redefining and improves the
characteristic that helps in the development of the quality software.

Previously I have stated how the software quality depends on various factors like reliability,
usability, efficiency, security etc. Likewise those different factors software quality can also be
increased by the functional design paradigms as it apply to the quality improvement process in
the iterative manners. By using the functional design paradigm we were able to use effective
methods, process and techniques to develop a quality software which is best suited for the
current working environment of insurance company. It helped us to implement the best
methodologies from the early stages to prevent the development from bugs and defects in system
providing framework to the software. It also helped us to clearly understand the nature of
company by examining the previous working system. For example while we were creating the
new software for company the working environment of company’s previous system was
examined and requirements of company were gathered which helped us in designing new
software while maintaining quality and standard. While using functional design paradigm it was
also easier to acknowledge the goals of the insurance company which helped us to associate with
the reasons for creating quality software which fulfills objectives of the company. The function
design paradigm also makes the sound execution of design, methods and techniques possible. It
simplify the design of software and assures that each modular part perform their respective task
and have low coupling.

The function design paradigm helps us to analyze the result generated from the execution of the
designed modules and frameworks. We were able to examine whether the outcomes generated
satisfy the needs of insurance company or not and we also evaluated the performance, stability,
robustness and some other features of software that maintain the standard of software developed
which resulted in development of quality software which our client required. Then after the
evaluation of factors which determine quality of software we were also able to generate feedback
where modification and improvements were needed. For the improvements in the software we
removed all the defects, bugs and weakness to improve the software quality and make it robust.

Recommendation:
In this way we used the function design paradigm while developing the system for insurance
company and the outcome was good. Using the function design paradigm in software
development lifecycle we were able to improve the software quality. I even also recommend
other software development companies and individuals to use this paradigm while developing
system. It provides us various benefits like robustness, stability and overall it improves software
quality which is ultimate goal of every software company.

Conclusion:

In this way to complete this part of assignment I undertake out the software investigation to meet
the business need using appropriate software analysis techniques to carry out a software
investigation and created a supporting documentation for this. I identified the stakeholders
involved in the development of software and client’s requirements that needed to be addressed in
the software. Also, described about the scope of the software and process descriptors on how
software will work in output, input and process. Consideration of alternative solutions were
developed in case of any emergency. Security and quality of the software defines the success of
the software. So, I have described about the security that how we planned the security in the
software and quality assurance that are made in the software for the betterment of the software.
For the software analysis I developed the data flow diagram upto second level and also created
entity relationship diagram which helped us for the clear understanding of the software. Different
constraints were listed out such as costs and organizational policy. I also find out the reason
behind developing a new system and problem that insurance company had in their old system. I
went through a data collection process where me and my team members held workshop, formed
groups, took an interview and asked questions to the head of the insurance company. Then I have
discussed various approaches to improve the software quality and briefly discussed two
approaches which can be applied to the given scenario.

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.

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 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.

Introduction:
“User requirements, often referred to as user needs, describe what the user does with the system,
such as what activities that users must be able to perform. User requirements are generally
documented in a User Requirements Document (URD) using narrative text. User requirements
are generally signed off by the user and used as the primary input for creating system
requirements. System requirements are the building blocks developers use to build the system.
These are the traditional “shall” statements that describe what the system “shall do.” System
requirements are classified as either functional or supplemental requirements. A functional
requirement specifies something that a user needs to perform their work.” (Parker, 2012) In our
project of developing software for insurance company it was very important for us to address
user and software requirements. Without the user and software requirements it was impossible
for us to develop the required software for insurance company. The best way to know the user
requirements was documentation. As we were using the agile model for software development
rather than documentation at first, we arranged face to face interaction and meeting with clients
to know their requirements which helped us to include their all requirements and develop quality
software.

Developing the new system for such large company with inclusion of all its features and user
requirements is very difficult project to do. When the project was first given to our company then
first of all we decided to perform the feasibility study on this new system development and when
the report of study was good then we dived into the software development process. To develop
any system first we need to choose the best system development model and be clear about the
reasons for choosing that specific model in this project. We analyzed the various system
development models like Waterfall, Agile, Prototype, Spiral etc. After knowing the pros and
cons of each model we gathered the overview from all the project members and decided to go
with Agile model in this project. Then for the initial planning phase we went through the
feasibility study report and hired the new required developers, technologies, software etc. As in
the agile model we don’t have to do documentation and we can add new requirements from
clients whenever we have to so after the proper planning of project, we moved toward the next
step which is designing phase.

We designed the Data Flow Diagram and ER-Diagram for the system which helped the
developer and any other project member to get overview of whole system and how it will work
once it is completed and what are the user requirements from this system. We hired the top
designer from our country to design the system layout using various technologies and after the
completion of this step we moved toward the development phase. In the development phase we
used top technologies and popular language for proper coding to make the software fast, reliable
and accurate. We also used various technologies to provide security for the software using
firewall and popular web hosting company. Different constraints were listed out such as costs
and organizational policy. We also find out the reason behind developing a new system and
problem that insurance company had in their old system. We went through a data collection
process where we held workshop, formed groups, took an interview and asked questions to the
head of the insurance company. We tried our best for the quality assurance of system and for this
we used highly skilled developer, testing in each phase, proper documentation although it is not
highly required in agile model. We also arranged face to face client interaction so that we can
show them the ongoing process in system development and get quick feedback which helped us
to increase the software quality.

After that for knowing the software requirements we prioritize the tasks and according to priority
high prioritize tasks were done first and low prioritize later which helped us to trace software
requirements. Although every development model says that we have to state the software
requirements in the initial stage of development stage but we can also trace the software
requirements throughout the software lifecycle. In software development models like Agile there
is no proper client requirements documentation required so we can easily add new requirements
whenever we want. Used model also helped us to find requirements as in agile model we can add
requirements whenever clients ask for new requirements in software. Moreover, below I have
tabulated this task with columns with the expected client requirement and actual output of the
product: -

Expected Client Requirements Actual Output


Made system requirements adaptable with today’s technology
i.e. 50 GB available space & Min processor speed (i.e.
Memory Constraints adaptable
Pentium
with customer’s environment
4, 3.2 GHz or Power PC G5, 2.0 GHz)
Backup & Recovery of Clients All client’s data will be stored in center server and they can
data backup when necessary.
Separate accounts according to System available with 3 administrator account & various
individual level normal account for company customer.
Agreement for updating system in 6 months and regular
Update & Maintenance
monitor for proper system functioning
Supports Operating system (i.e. Windows version higher than
Supported in any latest OS
Windows XP, or Mac
OS X 10.3.8, Ubuntu version higher than

14)
High Security Implemented strong coding methods, proper firewalls
Can contact to company through online messages and
Online Service
customer service

Software Behavior Specification:

“A technique for software system behavior specification appropriate for use in designing systems
with concurrency is presented. The technique is based upon a generalized ability to define
events, or significant occurrences in a software system, and then indicate whatever constraints
the designer might wish to see imposed upon the ordering or simultaneity of those events. The
relationship of this technique to other behavior specification techniques is also discussed in
software behavior specification. “Any piece of computer software, coded in some programming
language, implicitly specifies the behavior which it will produce when run on a given computing
system with a given set of input data. Such a program defined behavior specification.” (Wileden,
2015) It is the comprehensive description of the purpose and the environment of the software
under the development phases. The software specification helps in meeting the requirement of
the clients and makes the project better. The main purpose of software specification is to
minimize the time and effort that is required by the developers to achieve the desired goals and
also minimizes the cost of the development.
Importance of Software Behavior Specification In SDLC:

A software behavior specification is literally the conversation of a specific point. It's difficult in
this instance to avoid the circular reference. A project's specifications consist of the body of
information that should guide the project developers, engineers, and designers through the work
of creating the software. A software behavior specification document describes how something is
supposed to be done and describes the step by step working process of the software. A
specifications document may list out all of the possible error states for a certain form, along with
all of the error messages that should be displayed. The specifications may also describe the steps
of any functional interaction, and the order in which they should be followed by the user. A
requirements document, on the other hand, would state that the software must handle error states
reasonably and effectively, and provide explicit feedback to the users. The specifications show
how to meet this requirement. Specifications may take several forms. They can be a
straightforward listing of functional attributes, they can be diagrams or schematics of functional
relationships or flow logic, or they can occupy some middle ground. Software requirements
specifications can also be in the form of prototypes, mockups, and models. Project specifications
are much more important for determining the quality of the product. Every rule and functional
relationship provide a test point. A disparity between the program and its specification is an error
in the program if and only if the software requirement specification exists and is correct. A
program that follows a terrible specification perfectly is terrible, not perfect. This is how
software behavior specification is important and plays a vital role in the development of the
software. Below I have provided two different software specifications methods: -

Flowchart
“A flowchart is a formalized graphic representation of a logic sequence, work or manufacturing
process, organization chart, or similar formalized structure. The purpose of a flow chart is to
provide people with a common language or reference point when dealing with a project or
process. . Each step in the process is represented by a different symbol and contains a short
description of the process step.” (nicholas, 2015) They are the methodology used to analyze,
improve, document and manage a process or program. Flowcharts are helpful for collecting data
about particular process, helping with decision making, measuring the performance of a process,
tracking the process flow, highlighting important steps and elimination the unnecessary steps etc.

Flowcharts are commonly used in developing business plans, designing algorithms and
determining troubleshooting steps. Many software programs are available to design flowcharts.
There are various benefits of using flowcharts in software development. While developing our
software for insurance company also we created flowcharts for the better way of communicating
the logic of system to all concerned or involved. For example flowchart made the
communication easier to all the people involved in system development as compared to actual
program code because all of them like project managers, other staff weren’t aware of all
programming techniques and languages. It helped us in effective analysis, with the help of
flowchart problem can be analyse in more effective way therefore it reduces cost and wastage of
time. It helped us in proper documentation as the program flowcharts serve as good program
documentation which is needed for various purposes, making things more efficient. It also
helped our development team for efficient coding & debugging. The flowchart acted as a guide
while we were doing system analysis and program development and also in debugging process.
While we have to do the maintenance in future it becomes easy with the help of flowchart and
helps programmer to put efforts more efficiently on that part.

Pseudocode:
Pseudocode is an informal way of programming description that does not require any strict
programming language syntax or underlying technology considerations. It is used for creating an
outline or a rough draft of a program. Pseudocode summarizes a program’s flow, but excludes
underlying details. System designers write pseudocode to ensure that programmers understand a
software project's requirements and align code accordingly. Pseudocode makes creating
programs easier. Programs can be complex and long; preparation is the key. For years,
flowcharts were used to map out programs before writing one line of code in a language.
However, they were difficult to modify and with the advancement of programming languages, it
was difficult to display all parts of a program with a flowchart. It is challenging to find a mistake
without understanding the complete flow of a program. That is where pseudocode becomes more
appealing.

Pseudocode is not an actual programming language. So it cannot be compiled into an executable


program. It uses short terms or simple English language syntaxes to write code for programs
before it is actually converted into a specific programming language. This is done to identify top
level flow errors, and understand the programming data flows that the final program is going to
use. This definitely helps save time during actual programming as conceptual errors have been
already corrected. Firstly, program description and functionality is gathered and then pseudocode
is used to create statements to achieve the required results for a program. Detailed pseudocode is
inspected and verified by the designer’s team or programmers to match design specifications.
Catching errors or wrong program flow at the pseudocode stage is beneficial for development as
it is less costly than catching them later. Once the pseudocode is accepted by the team, it is
rewritten using the vocabulary and syntax of a programming language. The purpose of using
pseudocode is an efficient key principle of an algorithm. It is used in planning an algorithm with
sketching out the structure of the program before the actual coding takes place.

Advantages of Pseudocode

 Pseudocode is understood by the programmers of all types.


 It enables the programmer to concentrate only on the algorithm part of the code
development.
 It cannot be compiled into an executable program. Example, Java code: if (i < 10) { i

++; } pseudocode :if i is less than 10, increment i by 1.

Below I have provided the pseudocode for the Insurance Company Software: -

Fill in forms

• Pay insurance fee
• Client buys insurance from company
Insurance company accepts

•  Issue the receipt


 Issue the insurance policy

• The insured object suffers loss


• The insured claims insurance
• The insurance company investigates

 Not covered
 The insurance company refuse to compensate

• The insurance company pays compensation



Renew Insurance

Finite State Machine:

“In general, a state machine is any device that stores the status of something at a given time and
can operate on input to change the status and/or cause an action or output to take place for any
given change. 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. Each computer's data
register stores a state. The read-only memory from which a boot program is loaded stores a state
(the boot program itself is an initial state).” (Rouse, 2018) The operating system is itself a state
and each application that runs begins with some initial state that may change as it begins to
handle input. Thus, at any moment in time, a computer system can be seen as a very complex set
of states and each program in it as a state machine. In practice, however, state machines are used
to develop and describe specific device or program interactions.

A deterministic finite automaton (DFA) is described by a five-element tuple 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


Advantages of Finite State Machine

The advantages of Finite State Machine include the following.

 Finite state machines are flexible


 Easy to move from a significant abstract to a code execution
 Low processor overhead
 Easy determination of reachability of a state

Disadvantages of Finite State Machine

The disadvantages of the finite state machine include the following

 The expected character of deterministic finite state machines can be not needed in some
areas like computer games
 The implementation of huge systems using FSM is hard for managing without any idea of
design.
 Not applicable for all domains
 The orders of state conversions are inflexible.

(Anon., n.d.)

Extended Finite State Machine:

“In an extended finite state machine (EFSM) model, the transition can be expressed by an “if
statement” consisting of a set of trigger conditions. If trigger conditions are all satisfied, the
transition is fired, bringing the machine from the current state to the next state and performing
the specified data operations.” (Vyatkin, 2015) Extended Finite State Machines provide a
powerful model for the derivation of functional tests for software systems and protocols. Many
EFSM based testing problems, such as mutation testing, fault diagnosis, and test derivation
involve the derivation of input sequences that distinguish configurations of a given EFSM
specification. a method is proposed for the derivation of a distinguishing sequence for two
explicitly given or symbolically represented, possibly infinite, sets of EFSM configurations using
a corresponding FSM abstraction that is derived based on finite sets of predicates and
parameterized inputs. An abstraction function that maps configurations and transitions of the
EFSM specification to corresponding abstract states and transitions of the abstraction FSM is
proposed. Properties of the abstraction are established along with a discussion on a proper
selection of the sets of predicates and parameterized inputs used while deriving an FSM
abstraction. If no distinguishing sequence is found for the current FSM abstraction, then a refined
abstraction is constructed by extending the sets of predicates and parameterized inputs.

The cycle behavior of an EFSM can be divided into three steps:

 In E-block, evaluate all trigger conditions.


 In FSM-block, compute the next state & the signals controlling A-block.
 In A-block, perform the necessary data operations and data movements.

An EFSM is defined as a 7-tuple where:

 S is a set of symbolic states


 I is a set of input symbols
 O is a set of output symbols
 D is an n-dimensional linear space D1 *…. * Dn
 F is a set of enabling functions Fi: D = {0, 1}
 U is a set of update functions ui: D=D
 T is a transition relation, T: S * F * I =S * U * O
Differentiate between a finite state machine (FSM) and an extended Finite State providing
an application for both.

Extended Finite State Machine


Finite state machine (FSM)
(EFSM)
It is the composition model that is
It is the composition of the model where the
implemented with the hardware or
transaction of the system is expressed in the if
software that is used to simulated
statement consisting the set of the
sequential logic and some
conditions that trigger the action of the system. computer programs.
They are widely used in the computer science and They are used in the many fields like
software engineering especially in the field of the mathematics, artificial intelligence,
program analysis and testing. games and linguistics.
According to the trigger of the condition, the They are simply used in the cases where
transaction is fired and then bringing the machine to the particular simple inputs can cause to
the next state and perform the operation. change the state from one to another.
It is used in various devices and tool such as heater FSM can be used in a digital circuit that
system, metro passageway, alarm, home garage, fax is built using logic device, logic
system, air conditioning system and temperature controller and logic gates. They are used
controller. in video games and AI.
In software development, an EFSM can be deployed to It can also be used to create the software
model an object at a high level of abstraction such as applications like automated-based
the entire system, or a use case, or at a low level of program, event drive FSM, state design
abstraction, such as a software object pattern, etc.

Data Driven Software


In computer programming, data-driven programming is a programming paradigm in which the
program statements describe the data to be matched and the processing required rather than
defining a sequence of steps to be taken. Data driven software is one that automates process,
problems and opportunities. In data driven software, data is the centric part of the architecture
and all the remaining parts are designed around this (Norm, 2012) The application that is been
created by the data driven approach are more user friendly, communicative and allows users to
perform various of the tasks. The main application of the data driven software is it helps in the
exploring of the data relationships, exporting or importing of the files, browsing and filtering
large sets of data and interacting with other systems. The data driven software helps to establish
patterns between operational and business activities. The decisions made by the data driven
software is suitable and productive. Data driven application are the applications where
application flow is governed by data it processes. Input data set can change the behavior of your
application. Programming logic will remain same but it will be coded in such a way that input
changes the way application behaves. These applications require lots of testing as it produces
error when data issues are encountered.

Nowadays the use of data driven software is increasing as this type of software provides us the
result based upon the provided facts. Along with the objectoriented design the data driven design
has argued to lead to bad object-oriented design especially when dealing with the more abstract
data. It is quite easy because the functionality in the data driven simply required to know the
abstract data type of the variables it is working with. The traditional software of the insurance
company is going to be replaced by the new system that contains a lot of the facilities along with
the capturing With the use of data driven software all the difficulties and issues present due to
the old traditional system can be eliminated completely and help to make reliable and rational
decisions. Similarly, the availability of data driven testing help to enhance the reliability and
effectiveness of the software. The data driven testing test methods, describes increased capability
in identifying bugs, and can effectively ensure product quality with legitimate inputs that further
assures thriving deployment. The data driven software automates processes, problems and
opportunities and allows end to end optimization for the software where in necessary steps and
process can be eliminated to optimize the performance and efficiency in any process. It also
helps in the logistics storage and distribution that excel the performance of the software and
ultimately enhance its effectiveness. It operates on diverse data from many multichannel data
sources and seamlessly combines operational and analytic capabilities.

We can find out the statistics using the data driven software. For example, if we want to know
about the IT industry scope in our country then we can use data driven software for finding
results in this. This software relies upon the data and finds out the desired results for us based
upon the available data. Another example of data driven software is telecom. When we call
someone and talk to him for 1 hour then based upon the talk time data the result i.e. the bill is
published. The data driven software only works when there is proper data available if not then
this software doesn’t function properly. For the software to be reliable and effective it should
always provide us the right decision if any software displays the wrong decisions or wrong
message then that software can’t be called reliable. The data driven software relies upon the data
and provides us the right decision only so in this way data driven software can improve the
reliability and effectiveness of the software.

Conclusion
In this way I have completed the final part of my assignment by preparing the documentation
which explains how user and software requirements have been addressed. In our project of
developing software for insurance company it was very important for us to address user and
software requirements. Without the user and software requirements it was impossible for us to
develop the required software for insurance company. The best way to know the user
requirements was documentation. Then I discussed about the software specification methods and
recommended two software specification methods. A software behavior specification document
describes how something is supposed to be done and describes the step by step working process
of the software. A specifications document may list out all of the possible error states for a
certain form, along with all of the error messages that should be displayed. Project Management
Information System,then I differentiated about finite state machine and extended finite state
machine and at last I provided justifications with example on how data driven software can
improve the reliability and effectiveness of the software.

You might also like