Software Development Lifecycles: Subash Adhikari
Software Development Lifecycles: Subash Adhikari
Software Development Lifecycles: Subash Adhikari
Software Development
Lifecycles
Subash Adhikari
Contents
PART 1..................................................................................................................................................5
Stages of SDLC.................................................................................................................................6
Planning........................................................................................................................................6
Analysis.........................................................................................................................................7
Design............................................................................................................................................7
Development.................................................................................................................................7
Maintenance..................................................................................................................................8
What is SDLC...................................................................................................................................8
Why SDLC........................................................................................................................................8
SDLC Phases.....................................................................................................................................9
Phase 3: Design:..........................................................................................................................10
Phase 4: Coding:.........................................................................................................................11
Phase 5: Testing:.........................................................................................................................11
Phase 6: Installation/Deployment:............................................................................................11
Phase 7: Maintenance:.............................................................................................................12
SDLC MODELS.............................................................................................................................15
SDLC-ITERATIVE MODEL........................................................................................................23
PART 2................................................................................................................................................39
Introduction................................................................................................................................48
Purpose........................................................................................................................................48
Methodologies.............................................................................................................................49
Background history....................................................................................................................49
Document structure....................................................................................................................49
Intended audience......................................................................................................................49
Feasibility criteria......................................................................................................................50
Outcome......................................................................................................................................50
Evaluation criteria.....................................................................................................................51
Feasible solution.........................................................................................................................51
Part 3...................................................................................................................................................54
Current System...............................................................................................................................55
Identification of Requirements......................................................................................................55
Specification of scopes................................................................................................................57
Security considerations..............................................................................................................59
Problem statements....................................................................................................................62
Interview.....................................................................................................................................63
Questionnaire..............................................................................................................................63
Observation.................................................................................................................................64
Use appropriate software analysis tools/techniques to carry out a software investigation and
create supporting documentation..................................................................................................64
Introduction....................................................................................................................................64
Context Diagram............................................................................................................................67
Conclusion...................................................................................................................................71
M3 Analyze how software requirement can be traced throughout the software lifecycle.......72
Jira...................................................................................................................................................73
Trello................................................................................................................................................75
GitHub.............................................................................................................................................76
Advantages of GitHub....................................................................................................................77
Prototyping......................................................................................................................................77
1. Test-driven development.................................................................................................79
Pair programming......................................................................................................................80
i. Communication basis..........................................................................................................82
iv. Clarity...............................................................................................................................82
Part 4...................................................................................................................................................84
User Requirements.........................................................................................................................85
Functional Requirements...............................................................................................................85
Tabulation of the expected client requirements and the actual output of the product........86
M5 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.........................................................87
Software specification........................................................................................................................87
There are different software specification methods which are given below:............................87
Flow chart...................................................................................................................................87
Pseudo code.................................................................................................................................90
M6 Differentiate between a finite state machine (FSM) and an extended Finite State
providing an application for both.................................................................................................94
References...........................................................................................................................................99
Part 1
Contents
PART 1..................................................................................................................................................5
Stages of SDLC.................................................................................................................................6
Subash Adhikari (HND/ Second Semester Sec-B)
9
Software Development Lifecycles 2019
Planning........................................................................................................................................6
Analysis.........................................................................................................................................7
Design............................................................................................................................................7
Development.................................................................................................................................7
Maintenance..................................................................................................................................8
What is SDLC...................................................................................................................................8
Why SDLC........................................................................................................................................8
SDLC Phases.....................................................................................................................................9
Phase 3: Design:..........................................................................................................................10
Phase 4: Coding:.........................................................................................................................11
Phase 5: Testing:.........................................................................................................................11
Phase 6: Installation/Deployment:............................................................................................11
Phase 7: Maintenance:.............................................................................................................12
SDLC MODELS.............................................................................................................................15
SDLC-ITERATIVE MODEL........................................................................................................23
PART 1
Executive summary
This report describes the phased benefits of the software development life cycle and the
shortcomings and phases of the software development life cycle. Various models of the system
development life cycle were discussed and evaluated, and ultimately the SDLC model that best fits
the scenario for developing software for large insurance companies was selected. He also explained
why he chose a flexible development environment model, using software from an insurance
company as an example. Finally, we appreciate the essence of using the waterfall model for large
software development projects.
Introduction
The Software Development Lifecycle (SDLC), also known as the Application Development
Lifecycle, is a term used in systems engineering, information systems, and software engineering to
describe the process of planning, creating, testing, and deploying information systems.
According to Rouse (2015), the software development lifecycle is the foundation used in project
management, including several steps from project start to completion. By selecting and adhering to
the system development lifecycle model for each project that needs to be completed, the process
operates efficiently, meeting or exceeding customer expectations, improving quality, and reducing
production time. The To help you.
Although it may seem boring at first glance, you can save time by planning the project architecture
instead of going directly to the implementation phase (coding). Developers with many years of
experience do not have an attack plan, so they must destroy the entire project and start from scratch.
Therefore, it is important to understand and follow the system development lifecycle model. This
task describes and evaluates various models in the system development lifecycle, including waterfall
models (original SDLC methods), spirals, rapid application development (RAD), dynamic and
dynamic system development methods (DSDM).
Stages of SDLC
A SDLC comprises of various stages which is illustrated in following figure:
Planning
This is the first and first step of SDLC. This is done by a team working with customers. At this stage,
the SDLC team identifies and identifies issues that need to be addressed in a particular system,
determines the costs and resources to implement this particular project, calculates the time interval
between project completions, decide how to improve the product compared to competitive products
and will be available after the meeting. Other alternative solutions. With customers and suppliers
(Stickily, 2017). Finally, at this stage, a general overview of project requirements and scope is
performed.
Analysis
This phase is followed by the analysis phase. At this stage, a feasibility study is conducted to
determine whether the project is technically, economically, socially and technically feasible (Alwin,
2015). In addition, various alternative solutions were proposed during the planning phase, and the
best solution to meet customer requirements was selected. Finally, through a close dialogue with the
customer, a clear vision of the final product and its functionality is developed.
Design
After deeply understanding the customer's needs, investigating the feasibility of the project, and
finding the optimal design solution, you need to start the system development phase. Design systems
can be built using pens and pencils and laid out using a variety of software. In some cases, you can
use a prototype of the product you are building. At this stage, customers are offered a variety of
product design methods that are analyzed based on various parameters such as product reliability,
design modularity, time constraints, and optimal product design. Finally, the detailed and expanded
system design is produced.
Development
This is the actual stage of product development. This procedure is easy if you use best practices and
work with the developer to implement the design phase. If the product under development is
software, the actual code is written at this stage, and if the product under development is hardware, it
is in the setup and configuration phase. A properly designed system can have a significant impact on
testing and maintenance. Therefore, follow the latest guidelines when designing your system.
Maintenance
If not updated regularly, each system is out of date. Therefore, maintenance of the system after it has
been sold to the market is performed during the maintenance phase. This is the longest and most
important phase of the system development life cycle. As everyone knows, planning will never be
perfect when entering the market. Therefore, at this stage, various versions of the system are released
after receiving customer feedback on the latest technology changes, improvements, and the use of
advanced security.
What is SDLC
The software development lifecycle is a systematic software creation process that ensures the quality
and accuracy of the software being created. The SDLC process is designed to create high quality
software that meets customer expectations. Software development must be completed within the
planned time and cost. Different types of SDLC model involve waterfall model, V model, Iterative
model, spiral model, agile model and others. It is defined as a mechanism in the software industry to
develop, design and test the top-quality software. It involves different phases such as planning phase,
analysis phase, design phase, implementation phase and maintenance phase. SDLC includes a
detailed plan that describes how to plan, create, and maintain specific software. Each phase of the
SDLC lifecycle has its own processes and results and moves on to the next phase.
Why SDLC
Here, are prime reasons why SDLC is important for developing a software system.
• Improve visibility of project plans for all stakeholders in the development process.
SDLC Phases
During the collection phase the team needs to get detailed and accurate requirements. This will help
the company complete the deadline for completing this system.
• Schedule: Decide that the project can be completed within the given schedule or not.
Phase 3: Design:
In this third phase, document preparation systems and software design documents are standardized as
needed. This can help determine the overall architecture of the system.
This design stage serves as input to the next stage of the model.
• Interface details
Phase 4: Coding:
Once the system design phase is complete, the next step is coding. At this stage, the developer writes
code in the chosen programming language and begins building the entire system. In the coding
phase, tasks are divided into blocks or modules and assigned to different developers. This is the
longest phase of the software development life cycle. At this point, the developer must follow certain
predefined encoding rules. You must also use a programming tool such as a compiler, interpreter, or
debugger to generate and implement the code.
Phase 5: Testing:
After the software is complete and deployed in a test environment. The test team began testing the
functionality of the entire system. This is done to ensure that the entire application works according
to customer requirements.At this point, the QA and test team may find bugs / defects to report to
the developer. The development team corrected the error and sent it back to QA for retesting. This
process continues until the software runs stable and runs in line with the business needs of the
system.
Phase 6: Installation/Deployment:
When the software testing phase is complete and the system is error free, the final deployment
process begins. Based on feedback from the project manager, release the final software and check for
deployment issues.
Phase 7: Maintenance:
When you deploy the system and start using the customer-developed system, the following three
operations occur:
Adaptive SDLC (System Development Life Cycle) model has evolved from the practices of RAD.
Different aspects of the team were also added to these particular practices. This development
approach has been used by many countries for their projects to get effective results. The practices
related to adaptive software developed offers potential to accommodate change as well as are fully
adaptable in the confused environments with different products evolving with very little learning and
planning. Different phases of adaptive software development involve Speculate, collaborate and
learn. These given three phases reflect the dynamic nature regarding the adaptive software
development. The adaptive development unambiguously replaces the Determinism with the
Emergence.
Predictive SDLC (System Development Life Cycle) model is defined as an approach that assumes
the planning of the project initially before starting the project and that the new system which can be
established or developed as per planning is done initially. Different processes involve in traditional
predictive approaches are an initiation, project planning, analysis, design, implementation as well as
deployment.
When to use It is used only when the product is It is used when the project is not
understood appropriately. understood appropriately, rapidly
changing environments.
The most famous solutions regarding the project management being deployed these days are
predictive and adaptive. The adaptive is known as agile, and the predictive approach also referred to
as the traditional or waterfall model. Both the approaches have their benefits and limitations. Their
predictive approach is only considered as appropriate for the small projects and on the other hand;
the adaptive methodology can be useful for the small as well as large projects also. For the small
projects, the predictive approach can be very beneficial to get effective outcomes in the development
of the project.
To get detailed information regarding predictive SDLC approach and adaptive SDLC approach, you
can easily hire our online assignment help services through our website. To avail our services, you
have to place an order first then our online experts will help you in completing your assignments
with 100% original content and top-quality.
SDLC MODELS
Waterfall is a cascaded SDLC model, and the development process looks like a stream that goes
step by step through the analysis, design, implementation, test, implementation, and support phases.
The SDLC model includes a step-through for each step. This process is strictly documented and
predetermined by the expected functionality at each phase of the software development lifecycle
model. The cost of the project. System performance cannot be verified until encoding is complete.
Also, the number of documents will increase gradually.
ADVANTAGES DISADVANTAGES
Simple to use and understand The software is ready only after the last stage is over
Management simplicity thanks to its rigidity: every High risks and uncertainty
phase has a defined result and process review
Development stages go one by one Not the best choice for complex and object-oriented
projects
Perfect for the small or mid-sized projects where Inappropriate for the long-term projects
requirements are clear and not equivocal
Easy to determine the key points in the development The progress of the stage is hard to measure while it is still
cycle in the development
Easy to classify and prioritize tasks Integration is done at the very end, which does not give the
option of identifying the problem in advance
The iterative SDLC model does not require a complete list of requirements before the project
begins. The development process can start with functional component requirements and can be
extended later. Repeat this process so that you can create a new version of the product for each
loop. Each iteration (2-6 weeks) includes a separate component of the development system and
adds this component to the previously developed functionality. In mathematical terms, the iterative
model is an implementation of the successive approximation method, which means that it
approaches the planned form of the final product.
ADVANTAGES DISADVANTAGES
Some functions can be quickly developed at the Iterative model requires more resources than the waterfall model
beginning of the development lifecycle
The progress is easy measurable Issues with architecture or design may occur because not all the
requirements are foreseen during the short planning stage
The shorter iteration is - the easier testing and Bad choice for the small projects
debugging stages are
It is easier to control the risks as high-risk tasks The process is difficult to manage
are completed first
Problems and risks defined within one iteration The risks may not be completely determined even at the final stage
can be prevented in the next sprints of the project
ADVANTAGES DISADVANTAGES
Flexibility and readiness to the changes in the Risks analysis requires involvement of the highly-qualified
requirements specialists
The spiral model is an SDLC model that combines an architecture and a prototype in stages. This is a
combination of iterative and waterfall SDLC models with an emphasis on risk analysis. The main
problem with the spiral model is determining the right time to go to the next stage. We recommend
that you use a pre-set time frame as a solution to this problem. Even if the previous phase has not
been completed, the next phase of the migration will run as planned. The program was implemented
based on statistical data obtained from previous projects, based on the developer's personal
experience.
ADVANTAGES DISADVANTAGES
Lifecycle is divided into small parts, and if the risk concentration is Can be quite expensive
higher, the phase can be finished earlier to address the treats
The development process is precisely documented yet scalable to The risk control demands involvement of the
the changes highly-skilled professionals
The scalability allows to make changes and add new functionality Can be ineffective for the small projects
even at the relatively late stages
The earlier working prototype is done - sooner users can point out Big number of the intermediate stages
the flaws requires excessive documentation
The V-shaped SDLC model is an extension of the traditional waterfall model based on the
appropriate test phase of each development phase. This is a very rigorous model; the next phase
starts only after the previous phase. This is also called validation and validation models. Each step
has continuous process control to switch to the next step.
ADVANTAGES DISADVANTAGES
Every stage of V-shaped model has strict results so it’s easy to control Lack of the flexibility
Testing and verification take place in the early stages Bad choice for the small projects
Good for the small projects, where requirements are static and clear Relatively big risks
ADVANTAGES DISADVANTAGES
Corrections of functional requirements are implemented Difficulties with measuring the final cost because of
into the development process to provide the competitiveness permanent changes
Project is divided by short and transparent iterations The team should be highly professional and client-
oriented
Risks are minimized thanks to the flexible change process New requirements may conflict with the existing
architecture
Fast release of the first product version With all the corrections and changes there is
possibility that the project will exceed expected time
SDLC-ITERATIVE MODEL
The iterative model starts with a simple implementation of a small number of software requirements
and iteratively extends the development version until the entire system is implemented and ready for
deployment. The iterative lifecycle model does not try to start with a complete requirements
specification. Instead, development begins with identifying and implementing only one piece of
software and analyzing it to determine further requirements. The process is then repeated to create a
new software version at the end of each iteration of the model.
The iterative process starts with a simple implementation of a subset of software requirements and
iteratively extends the evolved version until a complete system is implemented. At each iteration,
design changes are made and new features are added. The main idea of this method is to use an
iterative loop (iteratively) and develop a system in smaller (gradually) parts at once.
Iterative and incremental development is a combination of iterative design or iterative methods and
an incremental assembly model for development. “The software development process allows
multiple iterations of the software development cycle to run simultaneously.” The process can be
described as an “evolutionary acquisition” or “incremental assembly” approach.
In this incremental model, the entire requirement is divided into different assemblies. At each
iteration, the development module goes through requirements, design, implementation, and testing
phases. Each subsequent version of the module adds functionality to the previous version. This
process continues until the entire system is ready as needed.The key to the proper use of an iterative
software development lifecycle is to fully validate the requirements and validate and test each
software release based on these requirements in each model cycle. As software evolves over
sequential cycles, it must be tested and extended to verify each version of the software.
As with other SDLC models, iterative and incremental development has several specific applications
in the software industry. This model is most commonly used in the following scenarios −
• When developing a project, the development team studies using new technologies.
• Resources with needed skill sets are not available and are planned to be used on
contract basis for specific iterations.
• There are some high-risk features and goals which may change in the future.
The advantage of this model is that there is an operational model of the system that assists with
search functionality or design flaws early in development. By finding problems early in
development, you can take corrective action within a limited budget.
The disadvantage of this SDLC model is that it is only suitable for large and cumbersome software
development projects. This is because it is difficult to split a small software system into additional
small health increments / modules.
The advantages of the Iterative and Incremental SDLC Model are as follows:
The disadvantages of the Iterative and Incremental SDLC Model are as follows:
As shown, the DSDM model has five lifecycle phases. The iterations of the various stages of the
system development process can be related to good teamwork or direct communication between
developers. First, the feasibility study application was completed and completed.
Also check whether the application is suitable for the RAD method. If these tests yield a positive
result, the project's business research creates additional business needs. The development process
uses a variety of quality management methods to support advanced applications and easily track the
incremental development process. The third phase is an iteration of the functional model, whose
main purpose is to create a functional prototype.
This phase is usually followed by design and assembly iterations that improve previously assembled
software components according to industry standards. The final assembly of the product is ready for
installation. At this stage, the system is deployed and deployed in a real-time production
environment. Users can also learn complex systems.
• Following the DSDM model is very helpful in providing early partial work solutions,
allowing customers to maintain continuous feedback and ensure product success. Customers
are actively participating in this model and customer satisfaction is high.
• This model is ideal for projects that need to be developed in a short period of time and cannot
be frozen at the start of the project.
• Requirements can change over time and project resources are fixed, but projects only apply
to teams with fixed resources, even as a last resort.
Rapid application development is a development model that facilitates rapid prototyping and rapid
feedback on long-term development and test cycles. Rapid application development allows developers to
quickly complete multiple iterations and software updates without having to run a development plan
from scratch each time. The system design phase, along with the technical and detailed design and
software architecture, leads to the test phase, software integration and ends with maintenance and
support. Rapid Application Development (RAD) is a solution for inflexible processes such as the
waterfall approach. Creating software applications in this “old fashion” way usually takes a lot of
time.Meanwhile, the requirements changed before the entire system was developed and delivered. This
can damage the application.
As shown in the diagram above, RAD starts with rapid analysis and minimal planning. Initially,
prototypes were built using advanced RAD tools and then tested by end users to provide feedback to
developers and designers. Unlike the prototype model, the first built prototype is not reset. Next,
complete the same prototype that was built previously and present it to the customer, again providing
the developer with feedback and necessary / additional requirements that need to be integrated into
the system. Repeat this process until the customer is satisfied. When the customer is satisfied with
the system, the testing phase begins. In this model, the testing phase is much simpler because each
prototype is tested individually in each phase. Finally, the development team transfers the
components to the deployment system's real-time operating environment. In addition, some software
usage training will be provided as needed.
• If you need to create a system that can be modularized within 2-3 months
• If the budget is high enough, designers can model the cost of automatic code generation tools
Advantages Disadvantages
• It is useful when you have to reduce the • Not all application is compatible with
overall project risk RAD
• Due to code generators and code reuse, • Reduced features due to time boxing,
there is a reduction of manual coding where features are pushed to a later
version to finish a release in short period
• Each phase in RAD delivers highest • Progress and problems accustomed are
priority functionality to client hard to track as such there is no
In all life cycle models, such as the waterfall model, there are many important steps or events in
software development. It cannot be modified, modified or sequenced, but there are three really
important ones:
Here, the life cycle in the spiral helps by ensuring that what we know is what we want to do and that
it can be done.
Initial operation: Prepare the transfer to the client for location and training
Firstly, risk management is divided into two parts which are given below:
1. Risk assessment
Risk assessment can be defined as identifying risk levels relevant to the situation, assessing,
assessing, comparing to standards, and determining acceptable risk levels. He studies risk and helps
development solve the risk. Risk assessment is further divided into the following three parts:
Risk identification
Risk identification is the first risk assessment process. You cannot find a better solution without
identifying the risks. You need to know what type of risk or type of risk will occur in the future so
that you can find the best solution to eliminate the risk.
Risk analysis
After identifying the risks, you need to analyze the identified risks. Deeper analysis is needed to
determine the main cause of the solution. Without analyzing the cause of the risk, you will not be
able to find the best solution to solve it. You must also analyze the problems that can occur in the
software if you do not resolve the risks, and the types of risks.
Risk prioritization
After risk analysis, risks should be prioritized based on importance, nature, or danger. Risks that are
very dangerous to the software or very important to the solution need to be resolved suddenly before
resolving another risk. Failure to prioritize risks can lead to major software problems in the future.
No future decision can be made unless it is resolved suddenly. Risk prioritization is therefore the
most important risk assessment process.
2. Risk control
Risk management is a way for companies to assess potential losses and take steps to mitigate or
eliminate such threats (Anon., N.d.). This is the most important part of risk management. Simply put,
risk is managed to control it. Without risk management, risk management is not used and other risks
occur regularly in the software. The different parts of risk management are listed below.
Planning
As we know, planning means thinking before doing anything. By managing risk, the first thing you
can do is plan. First, you need to plan how to manage or control risk. You need to plan your
development team appropriately and find the best solution to software risks.
Resolution
If the plan is successful, you need to proceed to the second stage decision. You need to advance your
risk management or risk management process and plan accordingly at this stage.
Monitoring
Finally, monitoring is the last important step in risk management. Must be tracked when resolving
risks. At this point, track and evaluate the risk level of the software. This is an ongoing risk
management process. After resolving the risk, you need to control it to resolve it properly.
Risks associated with each model and ways to mitigate / manage them in each model. As I described
different life cycle models with their advantages and disadvantages. We now list the different types
of risks included in each model and the related mitigation measures:
Software development is associated with uncertainty. The following measures must be taken to
mitigate the risks associated with the spiral model:
The two main sources of internal risk identified in the literature are the managers / project
management team. The customer is the main source of external risk.
Mitigating Measures:
Begin with an understanding of the project's objectives, context and context of risk, risk assessment
(identification of risk factors and appetite), risk adaptation (risk management integration). in an agile
process), risk management (identification, analysis, management and monitoring) of the resulting
risks. Optimized agile process.
Agile risk management is based on three principles: flow (ensuring that events do not hinder or delay
progress), balance (reward with less risk) and transparency (making all risky artifacts visible and
accessible).
Waterfall irisks iare imanaged ithrough itables. iThe iwaterfall irisk imaps iare idivided iinto ithree
iparts. iThe ifirst istarts iwhen ia irisk iis idetected iand iends iwhen ithe idevelopers istart ilooking
ifor ia isolution. iThe isecond iphase ilasts iuntil ia isolution iis ifound. iThe ithird iphase iis ithe irisk
ielimination iphase. iExpires iuntil ithe irisk iexpiry idate. iThis irisk imanagement imodel iallows
iWaterfall idevelopers ito iavoid imany ierrors iin itheir iproduction iand iimprove itheir iquality iand
iacceptance iof itheir icustomers.
While developing an application, we have to select the best model according to the demand of client
in the application. If the selection of model is best, then we can develop any application easily and
effectively. But the selection of model for development environment is not so easy. We should have
knowledge of every model and should know which model is best while developing an application. If
we are able to select the best model while developing an application then it helps to decrease
development time and price, manipulate vulnerability, restrict overhead and danger exposure and
also decorate quality in an application.
For the development environment, I would mostly select spiral model. It is an aggregate of a
waterfall version and iterative model. Each cycle of the spiral model is completed by a review
including plans for the next cycle. In the spiral lifecycle model, project monitoring is very easy and
effective. Spiral model has specially four phases i.e. Planning, risk analysis, engineering and
evaluation. While developing an application using spiral model, firstly we have to focus on the
planning. We have to gather the entire requirements from the client and also objects are identified,
elaborated and analyzed. After the successful gathering requirement, the planning is done where all
the features and facilities of an application are discussed. After planning, risk analysis which includes
identifying, estimating and monitoring the technical feasibility and management risks such as cost
overrun and schedule slippage are done. When the risk analysis done, the development stage begins
in which the features which are identified are developed and also verified through testing. Finally,
the evaluation stage is started. This is the last stage of spiral model in which maintenance and review
is also done. This type of model is specially used for big projects which involves continuous
enhancements. The vital evaluation among the spiral model and other models is its undeniable
acknowledgment of danger. A cycle of the spiral starts off evolved by means of explaining targets, as
an instance, execution and value. Spiral version is utilized for the most element in massive projects.
There is also many applicability of the spiral model over the development environment. Cost
estimation becomes easy in this model because the prototype building is done in small fragments.
Additional changes can be done at also later stage while using spiral model. When the requirement of
client in very complex then also the spiral model is very useful for developing the software
successfully including the complex requirement of the client. Thus, there are many applicability of
the spiral model over the development environment.
For example, in our scenario, there is one large insurance company while developing the software of
insurance company, we can use different model according to the features included in the software
and its nature. But according to me, spiral model is best for the development of insurance company
software. As we know, spiral mode is the It is an aggregate of a waterfall version and iterative model.
It has quality of both waterfall model and iterative model. Firstly, we have to gather the entire
information from the administrator of an insurance company like. After that we have to discuss and
plan among the team about the features and facilities include in the application like money payment,
news of insurance company, etc. After proper planning, we have to analyze the risk which could be
occurred in an application. We have to find out the different risk which could be occurred in an
application and also the best solution for the risk. After that we should more on towards the
engineering stage which we design and code for an application. Finally, we have to evaluate our
application from the clients. We can also take review from the administrator and user for the future
update. If we use this approach for the insurance company software development, then surely it
would be the best application for the entire insurance company. The spiral model would be the best
for the development environment than other model due to its many advantages.
Considering the application of spiral model and also the above example, there is many benefits of
using spiral model for the development environment. We give one fourth time for the risk analysis
due to which there is very less possibility or almost no possibility of risk or any types of error in an
application. Cost estimation also becomes easy in this model because the prototype building is done
in small fragments. Due to these reasons, I have selected spiral model for a development
environment.
Conclusion
In this task, we first described the software development lifecycle. Later, the iteration model was
described, along with two iteration models and their plots, benefits, and limitations. An iterative model is
a specific implementation of the software development lifecycle, focusing on the initial simplified
implementation, gradually becoming more complex and extending the scope of functionality until
the final system is complete. Similarly, the number, benefits, and limitations of the sequential model
and the two continuous models were discussed. Later, we explained how to manage risks with a
spiral model. He also explained why insurance company software was used as an example to select the
spiral model for the development environment. Finally, we appreciate the benefits of using the
waterfall model in large software projects.Each iteration adds functionality to the previous version. This
is done by a cross-functional team that applies all features such as requirements
analysis,design,implementation, and testing. The final assembly contains all the specifications that
the client needs.
PART 2
Background
According to Wolfe (2017), a study aimed at determining the success of a project, taking into
account factors that affect the project, such as technology, law, and economic factors, is called a
feasibility study. It is It helps to outline the issues that lead to positive and negative outcomes of the
project and should pass as an important control point before investing much time and money. In
other words, the feasibility study is the feasibility of this idea.
A feasibility study is a document that reviews the proposed solution and evaluates whether it is
feasible under certain restrictions. These restrictions are financial, social, practical, environmental,
technical, legal, or other restrictions that may make the implementation of the solution impossible or
inappropriate. For example, in promoting company production, the CEO wants to save company
money. But is this a good idea? This step can bring a lot of money to the company and reduce the
savings in new locations. There are also environmental issues. You can squeeze out wild animals.
There are also tax cuts that may vary from place to place.
Some of the purposes of carrying our Feasibility study are enumerated below:
There are different purposes of feasibility study which are given below: -
5. To explore the price of the project that the targeted audience is ready to pay
Another purpose of feasibility report is to explore the different markets and targets audience.
Feasibility reports also includes the demand of project in the markets by the clients or targeted
audience. If there is more demand of the projects in the market by the targeted audience, then the
project starts to complete as soon as possible. It includes different markets and targeted audience due
to which different market explores.
After feasibility study before doing any project, a person knows everything about the projects such
as budget, manpower, time-durable, demand by clients, etc. After that they prepare the document on
the basis of their research. Thus, feasibility report helps to prepare the final draft of the projects.
3. To explore the price of the project that the targeted audience is ready to pay
While doing some project, it is difficult to fix the price of the project. Sometimes the price could be
fixing more which the targets audience denied to pay and sometimes the price of the project is fixed
less due to which he could have bear loss. Due to such problem, it would be very difficult to fix the
price of the project. But feasibility study makes document of each and every detail like manpower,
expenses, budget, etc. due to which it explores the price of the projects that the targeted audience is
ready to pay.
With the help of the feasibility report, a person can know each and every detail information about the
project which is being going to start. Due to this, it would be very easy to assist the management in
implementing the desired system otherwise a person has to face a lot of project while managing the
project. He should keep result of everything which is done on the regular basis and manage it so that
the client should not face problem on it.
In addition, feasibility studies can help indicate another problem with where in the software occurs.
Explain all solutions to the problem and point out economic, operational and technical capabilities.
Economic feasibility is related to costs, including all costs such as hardware costs, labor costs, and
operational costs. Operational feasibility determines how the solution fits into existing operations
and how technical feasibility—the solution fits into existing structures. Examine the main focus of
business opportunities and the alternative paths that follow. Feasibility studies are the most important
document for developing effective and successful software.
• Technology-can you run using the latest technology? If your technology is outdated or
updated and does not support backward compatibility
• Operation-OK, the software works but can the user use it? How many users can use at the same time?
• Economy-Does revenue exceed costs? Do you have the amount or funds needed to start
project predictions?
Technical solution is all about planning, Analyzing, designing, Implementing, testing. Also, it
considers how you deploy and maintain the product.
Technical solution is basically done to develop, design and implement solutions according to the
requirements. It is very important to use technical solution for every problem so that it could be
easily solved. The technical solution process area is applicable at any level of the product
architecture and to every products and product related lifecycle process.
1. Budget
2. Performance
3. Efficiency
4. Automation
Budget
As you know, the budget is the amount required to successfully complete the application. Developers
can develop any type of application if the application development budget is large. The first thing
needed for software development is a budget. Everything you need for software development, such
as software developers, marketers, and technology purchases, needs money. It is also useful for
comparing technical solutions. For example, if you have a low developer budget when developing an
application, many problems will arise. He can't buy new technology, his friends and employees can
leave him, and if they aren't paid in time, he can't solve the problem correctly.
Performance
As everyone knows, productivity is the action or process that performs a task or function. This plays
an important role in comparative technology solutions. By analyzing performance, you can choose
the best solution from a variety of solutions. For example, an insurance company needs an
accountant. The company doesn't have a good accountant, so it faces big problems in financial
transactions. To solve this problem, they informed the insurance company about the possibility of
accounting employment. Many candidates can come to the interview, but they are always selected to
hold positions, their performance is higher than others, and each transaction can be tracked. In this
issue, performance plays an important role in solving technical problems.
Efficiency
Efficiency means productivity level and represents the use of a minimum amount of input to achieve
maximum output (Kenton, 2018). When solving a problem, you must consider the effectiveness of the
solution. For example, there was the problem of recording insurance company customer records in
newspapers. It is very difficult to store a record safely and determine if it is absolutely necessary. There
are several solutions to this problem, such as keeping more employees, keeping records by name, but the
best solution for insurance company effectiveness can be obtained every second as needed Is to install
digitally recorded customer software. Customer information. Efficiency is very important when
comparing technical solutions.
Automation
Automation is a technology that executes a process or process with minimal human assistance.
Automated or automated controls operate equipment such as machinery, factory processes, heat
treatment boilers and furnaces, the inclusion of telephone networks, management and stability of
ships, aircraft and other applications, and personnel minimization or reduction Refers to the use of
various control systems for. vehicle. intervention.
Other Examples
There are many things people need to code in advance; in early assemblers and programming
languages, all routines must be written. But over the years, standardized component libraries have
emerged. Some compilers can provide pre-implemented standard data structures. Engineers are
better at "designing" the final software than those that implement the final software linked list. That
is, focus on the final functionality of the software, not every line of code.
Legacy system upgrade is another important component by which technical solutions can be
compared. If we can upgrade the system from old to new by changing its parts, then it would be the
best options. We can save our lots of money by legacy systems upgrade. For example, we want a
new feature in the software of insurance company with new policy, offers, rules, etc. For this
purpose, if we upgrade the old software by upgrading the policy, offers, features, etc. rather than
developing the new software then it helps to save our lots of money as well as time. We can get a
better application in low budget and less time. Thus, legacy system upgrade is very important for
everyone.
Human error means that something has been done that was "not intended by the actor; not desired by
a set of rules or an external observer; or that led the task or system outside its acceptable limits".
2. Post completion error. The pattern of “post completion error” is that if the
ultimate goal is decomposed into several sub goals,
Executive Summary:
This report provides an overview of initial project data, which is a description of products and
services, and an overview of the content included in the feasibility study.
INTRODUCTION
According to Wolfe (2017), a study aimed at determining the success of a project, taking into
account factors that affect the project, such as technology, law, and economic factors, is called a
feasibility study. It is It helps to outline issues that identify potential positive and negative outcomes
of a project and serves as an important management point that must be passed before investing much
time and money. In other words, the feasibility study is the feasibility of this idea.
A good feasibility study can help you objectively determine whether a proposed project is feasible or
useful to continue. After studying many examples of feasibility studies on the Internet and learning
how to prepare for a better feasibility study, we decided to include these key points in the feasibility
study discuss below:
A feasibility study covers wide variety of topics that might have an impact on a new venture which
are also known as Feasibility criteria. There are different types of feasibility criteria that a feasibility
study examines which are described below:
There are many components of the feasibility reports which are given below: -
1. Introduction
2. Purpose
3. Methodologies
4. Background history
5. Document structure
6. Intended audience
7. Feasibility criteria
8. Outcome
9. Possible alternate solutions
10. Evaluation criteria
11. Feasible solution
Introduction
It is the first components of the feasibility reports. We should always include introduction of the
project of which we check feasibility and make feasibility report. In this stage, there should be
explanation about the project and criteria which are used to check their feasibility. For example, if we
want to check the feasibility of the software based on insurance company then firstly we have to give
some introduction about software and the facilities which are used in the software. It helps in
development of the software effectively.
Purpose
After the introduction, the purpose of doing the project should be clearly explained. It explains
developer about all the features to be included in the project. It also includes the main reason of
developing doing the project. For example, if we want to develop the software based on the
insurance company then we have to example the purpose of developing that software. We have to
explain all the necessity and facilities available in the software due to which it would be beneficial
for insurance company.
Methodologies
Methodologies is the third components of the feasibility report. After explaining the purpose of
project, we have to find out or explain the methodologies of doing project. There are different
methodologies of doing projects according to their nature. For example, while developing the
software for the insurance company, we can choose one method among different methodologies like
waterfall mode, spiral model, prototype methodology, etc. according to the nature of the application.
We have to choose any one of these according to the nature of the application which can bring best
output after using. It plays a vital role to develop a best as well as worst application. If we choose the
method suitable for the application, then it can make the application very effective. In the same way,
if we choose method which is not suitable for the application then it can make the useless
application. Thus. Methodologies plays a vital role for an effective development of an application.
Background history
Background history is the another very important components of a feasibility report. While
developing an application, we should collect the background history of the company so that it would
be easy to develop an application and we can include every features which is required in a software.
For example, before developing an application of insurance company, we should collect each and
every information including background history related to the insurance company so that we can
know what features are important for the software and what features are not important. We can also
include a note about company including establish date, board of directors, manager, etc. from
beginning to till date if we know the background history of the company. Thus, a developer must
collect the background history for the development of better and effective application successfully.
Document structure
As we know document structure describes the organization of a document into graphical constituents
like sections, paragraphs, sentences, bulleted lists and figures. It is the most important components of
feasibility report. While working on the project, we should always keep in mind to have well-
structured document. It helps to complete the project effectively in the given time. For example,
while developing the software for the insurance company, a well-structured document should be
made so that there would not be any problem while developing a software.
Intended audience
Intended audience can be defined as the group of people for whom a service or product is designed.
A project should be complete in such a way that give best service to the client and satisfy them. If the
project is done without the satisfaction of client, then it would be just useless project. For example,
while developing the insurance company software, we should know that needs and demands of the
client in the software. We should research their satisfaction so that we can provide best service to the
clients. After that we can develop the best software which holds the entire services needed to the
clients of insurance company.
Feasibility criteria
Feasibility criteria plays a vital role while develop any application. As we know, there are different
feasibility criteria like economic criteria, technical criteria, operational criteria and many more.
Economic feasibility is related to the cost which includes the entire expenses such as cost of
hardware, salary of man power, operating expenses, etc. The operational feasibility addresses how
solution would be fitted into the existing operation and the technical feasibility addresses how the
solution will be fitted into the existing structure. In short, it helps to find the problem in an
application and also helps to solve it. For example, while developing an application, we have to be
feasible from everywhere i.e. economic, technical and also operational. There should not be any
problem of money in the development of application, there should be high technical equipment and
man power and the operational of software should be always good. If there are these feasibility
criteria, then no one could stop us from developing the best application.
Outcome
When the project is finish, we should be aware about the outcome. There could be some errors and
faults in the completed project in many case. It could bring lots of problem for the developer if he
does not solve the problem immediately. For example, if there is error while depositing money from
bank to insurance company from the software then there may be loss of money due to that software.
If such problem occur, then there would be very negative impression of software in front of the
clients. Thus, a developer must be aware about the outcome of the project.
Evaluation criteria
Evaluation criteria can be defined as a standard measures established to evaluate the degree to which
an alternative solution, proposals, or individuals are able to meet expectations or objectives through
direct comparisons of their strength, weaknesses and trade-off. It is a benchmark or yardstick against
which accomplishment, conformance, performance and suitability of an individual, alternative,
product as well as risk reward ratio is measured. The evaluation criteria also play a vital role in a
development of an application. It helps to measure the risk or problem and bring the alternative
solutions of a problem and also helps to know the strength and weakness of the developing
application. Thus, evaluation criteria is one of the most important purpose of feasibility report.
Feasible solution
If there is some bugs or errors in the development of an application, then the developer always looks
for the feasible solution. The solutions for the problem should be always long lasting which do not
create any big problems in the future. In most of the case, developers solve problem for the
temporary period thinking that they will work on it later. But later it brings very big problem in an
application and the developer becomes unable to complete an application. To avoid such thing, we
should always look for the feasible solution which solves the problem completely and there would
not be any difficulties in the future.
Part 3
Part 3
Current System
Identification of Requirements
Specification of scopes
Security considerations
Problem statements
Interview
Questionnaire
Observation
Use appropriate software analysis tools/techniques to carry out a software investigation and
create supporting documentation.
Introduction
Context Diagram
Conclusion
M3 Analyze how software requirement can be traced throughout the software lifecycle.
Jira
Trello
GitHub
Advantages of GitHub
Prototyping
1. Test-driven development
Pair programming
i. Communication basis
iv. Clarity
Part 3
Executive summary
This section should discuss software research to meet business needs, use appropriate software
analysis tools / methods for software research, and create support documentation. You must also
determine constraints such as cost, organizational strategy, legacy systems, and hardware
requirements. We also discussed the appropriate software analysis tools / methods for conducting
software surveys and creating support documentation. At last I also discuss about the software
requirements that can be traced throughout the software lifecycle.
Introduction:
The insurer has a traditional system software that manages the financial records of customers and
members and currently the system deals with various documents issued while maintaining and
updating the official online requirements. And as mentioned in the scenario, we are forced to design
and develop a simple and intuitive system, a software designed to meet the needs of the company.
The purpose of the system review is to identify the problems and opportunities of the existing
system, determine the scope of the project by assessing the complexity of the problem and the efforts
required to solve it, increasing user confidence by calming the problem. User analyst, who fully
understands the nature of the problem. It also helps to identify the risks and associated responses if a
solution is feasible or not. Therefore, in this task, I will study the system based on this
scenario.System analysis is a way to solve problems, such as investigating a broader system,
isolating components and determining their function, identifying goals, and creating systems and
procedures that can help you achieve them effectively. In short, this is a systematic approach that
uses various tools to clarify the goals of existing systems and develop new system specifications that
are easy for users to understand.
Current System
They use the department's traditional information system. This only manages and stores the
recording. The system is not digital. All employees have their own roles and responsibilities. For
non-digital systems, additional staff is required. In order to digitize the entire system, they felt they
needed software that could handle it. In this scenario, they also use traditional system models such as
Waterfall, but want to call the company to update the software and create new software with a
flexible model. Flexible mode is more flexible than other models.
Identification of Requirements
Reading the scenario and using various survey techniques such as interviews, study of current
documentation, observation, etc., I tried to identify the requirements of the stakeholders and the
specifications of the system requirements which I will discuss further:
1. Investors
An investor is a person who commits capital with the hope of receiving financial returns. They
utilize their money in order to gain profits or to provide an income during the retirement like
within an annuity. They typically generate returns by developing capital as either equity or debt
investments. In the insurance company too, there could be some investors who invest their
money at beginning for the development of company in order to gain profit in the future.
2. Board of directors
A board of directors is a team of people who are elected by a corporation’s shareholders to
represent the shareholders’ interests and ensure that the company’s management acts on their
behalf. The head of the board of directors can be called as the chairman or chairperson of the
board. The main purpose of the board of directors is to ensure the company’s prosperity by
collectively directly the company’s affairs. They are appointed to act on behalf of the
shareholders to run the day to day affairs of the business.
3. Employees
Employees are the person who is hired to provide services to a company on a regular basis in
exchange for compensation and who does not provide these services as part of an independent
business. An employee can be part-time or full-times whose main aim is to provide service to a
company by taking the salary. In every organization, there is important roles of employees for its
development. If the employees are hard-working and energetic then they can increase the
efficiency of a company in the very short time whereas if the employees are lazy then they can
decease the efficiency of an organization. So, the CEO of a company should always keep their
employees happy in order to develop the company.
4. Clients
Clients are the person who takes services from the company by paying some amount of money.
Without clients, there would be useless of having a company. In the case of insurance company,
there could be many clients who comes to do their life as well as their property insurance. They
pay certain amount of money yearly for the fix period of time and get some total of money in
returns. They are the most important person for the development of a insurance company. The
insurance company is developed more when there is many clients in a company.
5. Suppliers
A suppliers are the party who supplies goods and services to the clients. They can be
distinguished from a contractor or subcontractor, who commonly adds specialized input to
deliverables. A supplier can also be called as vendors or agents. In the insurance, there are some
agents who brings clients for the insurance company and gets come percentage of commissions
from the company. They are also important person for the development of a company.
1. Clients should able to see the present status of the company and different offers given by the
company from the system.
2. Clients should be able to see their due amount and also should be able to pay the due or premium
amount from the system.
3. There should be also facility of advance payment from the system.
4. Clients should be able to see their insurance starting date and also left time to get money from the
company.
5. Clients should be able to see their own status from the system even by staying in home.
Specification of scopes
Project scope can be defined as the part of project planning which involves determining and
documenting a list of specific project goals, features, tasks and ultimately costs. It is very important
to pin down the scope early in a project’s life cycle as it can greatly impact the schedule or cost of
the project down the track. It also defines the boundaries of a project, what features will be included
and implemented within this scope, what is the delivery dates and milestones need to be delivered as
well the required budget to deliver that scope. The people should be able to know the information of
their policy, buy and how to premium insurance guidelines through the help of internet.
the way to the framework which users, admins or agents enter their username/email and password to
access to the internal arrangement of the project. Admins can input the policy, offers, documents, etc.
to the software and users or agents can see the output from the software. I have shown the input,
output, process and process descriptor of the insurance company software in the table which are
given below:
Many clients are illiterate due to which they would not understand the functions of the software or
they would not be able to use the software. There would be need of some amount of money yearly
for the maintenance of the software. Due to such problems, it would not be much effective to use
insurance company software. In the alternative of this, we can use websites. In the website, we can
include all the policies and systems which are included in the software. It is very cheap then
developing the software. Also it supports in all the devices such as mobile, desktop, tablet, etc. and
everybody can learn it in very short period of time. We can also update the policies, rules or anything
in the websites and also information the latest offers to the clients. Thus, I think the best alternative
solution would be use of websites instead of developing a software.
Security considerations
Security can be defined as the defense of digital information or IT assets against internal and
external, malicious and accidental threats. It is very critical for enterprises and organization of all
sizes and in all industries. If there is weak security in the company then it compromised systems or
data, either by a malicious threat actor or an unintentional internet threat. For the best security of
insurance company software, we should not rely on a single test. We should test our software time to
time while developing. We should use the best server for proving the security to our software. Also
we should enforce the use of consistent coding standards, use automated testing tools, build and
share libraries for common tasks such as validating user input, add security related requirements and
test cases from the very beginning of the process, etc.
1. Cost
As we know, cost is the most important things which be needed to be estimated while developing any
types of software either it is big or small. While developing the software of insurance company, there
was cost limitation of five lakhs. The software which we were going to develop was very big but it
had cost limitation of only five lakh rupees. Due to this, we have spent every money only after
planning and safely without wasting a single rupee and save some amount of money too. The cost
estimation while developing the software of insurance company is given below:
In the above cost estimation table, I have shown the detail cost which was spent while developing
a software. We have not done any expenses on unnecessary things. Our main motive was to
complete the development of insurance company software successfully with the budget of Rs.
4,50,000 and in just three months. We have worked day/night to complete this software and
finally developed a successful software by saving some amount of money too.
2. Organizational policies
As we know that an organizational policy can be defined as a course or method of action selected,
usually by an organization, institution, university, society, etc. from among alternatives to guide and
determine present and future decisions and positions on matters of public interest or social concern.
Being a profitable business organization, the insurance company has its own policies which is
included in the software of insurance company. While developing an application, there should be
two-way communication between the developer and administrator in which the administrator
provides the important policy and other information about the company then the developer begins to
develop the software according to the policy of an organization. In the software of insurance
company, I have included the entire policy of the company according to the administrator of the
company. There low and policy in the software is exact as in the real life. The entire information’s,
laws and policies are properly documented in the software due to which there is not any limitation.
3. Legacy systems
A legacy system, in the context of computing, refers to outdated computer systems, programming
languages or application software that are used instead of available upgraded versions [ CITATION
Leg19 \l 1033 ]. While developing a software, we should make sure that it will run even in the old
system so that the software can be used by many people. The legacy system of the insurance
company software cannot be total replaced by the new software of insurance company because
some of function of such software should not be update. Some types of information like information
of clients, financial data of clients, etc. are very critical data which should be stored securely and
should not be affected while upgrading or maintaining the software. The legacy system us special
used because some data which are very critical might take years to get developed in a new system.
The advantages of legacy systems are given below:
i. It would not be problem while updating critical data in the legacy system.
ii. There would be less change of losing the important and critical information.
iii. It has low maintenance cost.
iv. There would be no problem in data storing technique.
4. Hardware requirements
An Intel Core 2 Duo, Core i3, Core i5, Core i7, or Xeon processor.
2GB of ram
Background information
A big insurance company which is going to offer its products and services to many international
countries in tis drive to grow and become a large international company. This company is
predominantly operating in United Kingdom. The systems which has been using by this company to
keep track of customer enquiries about the information and buying of its products and services, etc.
will needed to be updated or a new system developed to reflect the changes in the way it will operate.
The company also will offer a much wider range of products and services to accommodate the needs
of the international market. Customers will be using a range of currencies to purchase the products
and the insurance company will need to allow for the fluctuating currency exchange rates in its new
system. The updated system insurance company should have facility of paying the premium from
home, paying the advance premium, clients can able to look the new policies and offers of the
insurance company form the system, clients should have facility of currency exchange in the system,
they can also evaluate their status in the company, etc. The old system of an insurance company
which were developed before couldn’t give the full services to more customer at one time. So the
new system that has been updated can give more services to more customer at the same time.
Problem statements
There was a problem and complain of the clients that they are facing difficulties to come in the
insurance company for every purpose like knowing new offers and policies, while paying the
premium, etc. They have to stay in the long line for hours and only get chance to pay the payment.
Considering such problems and complains of the users, we have developed the insurance company
software by which they can pay their premium easily, see the updated offers and policy, advance
payment of premium can be done and many more. Social, economic, and political systems in such
countries present are also serious problems to insurance companies. Even now, many people do not
know about the insurance company and the benefits of doing insurance of them and their entire
family. Thus, the insurance company have only limited clients.
Interview
An interview can be defined as a conservation between two or more people where question is asked
to a person to get the required responses or answers. In an interview, the person asking questions is
called as interviewer and the person answering the questions is called as interviewee. This is the most
important and effective process of collection of data. While developing a software of insurance
company, firstly I have taken interview with some selected clients, staff, manager and board of
directors. I have asked different question like what features they want in the software, the
requirements in the software, etc. I have collected lots of different and unique requirements form
board of directors, managers, staffs and clients which helped me while developing a software
effectively and successfully.
Questionnaire
Questionnaire can be defined as a research instrument consisting of a series of questions for the
purpose of gathering information from respondents. The biggest advantage of questionnaire over
some other data collection process is that they are cheap, do not requires as much effort as in the
interview or other process and it often have standardized answers that make it simple to compile
data. For collection of more data from rest of the staffs and clients, I have made questionnaire with
some important questions and send to staffs and some clients so they I can know their view or their
suggestions that can be included in the software. After some days, most of the questionnaire were
returned after filling it properly. I have got some new features and requirement which were not found
in the interview and also I have included that features in the software of insurance company.
Observation
Observation can be defined as the act of noticing something or a judgement or inference from
something seen or experienced. A person can learn or improve many things by observing other
properly. After interview and questionnaire, I began to observe the company for some day so that I
can add new features myself in the software. I used to go daily in the company and also done my
insurance so that I can think as a client of the company and observe properly. After some days, I have
got some new features which was liked by manager and also board of directors too. Thus,
observation plays a vital role for collection of data and information.
Introduction
System analysis is the problem-solving method that involves looking at the wider system, breaking
apart the parts and figuring out how it works in order to identify its goals and create systems and
procedures that will help to achieve those goals in an efficient way. In other words, it is a systematic
approach, which uses various tools to refine the objectives of an existing system and develop a new
system specification which can be easily understandable by the user.
It offers assistance to learn and use new systems, reduced by somebody else and also helps in
minimizing errors while problem solving.
In order to reduce risks or decrease the chances of a project being a failure while
implementing a new system, system analysis is crucial as it helps to give thorough knowledge
on how a system works and what procedures can be follow to bring more efficient output
from a system.
As we all know the better understanding of a system, the less likely we are to encounter any
unexpected problems. Thus, system analysis leads to fewer mistakes while developing a
solution for a problem.
System analysis can be done using various tools and techniques such as context diagram, use case
diagram, data flow diagram, entity relationship diagram, etc. In this task, I will use appropriate
system analysis tools and techniques to carry out the investigation of system of the company.
Process: A business activity or function where the manipulation and transformation of data takes
place.
External Entity: An external entity can represent a human, system or subsystem. It is where certain
data comes from or goes to.
Data Store: A data store represents the storage of persistent data required and/or produced by the
process.
Data Flow: A data flow represents the flow of the information. The arrows indicate the direction of
data flow from beginning to the ends.
have to state any assumptions we make about the systems. It is very important to draw level 0
data flow diagram before making rest of two levels of data flow diagram.
The insurance company system divides each visitor into three types. That is, unauthenticated users
who are not logged in, administrators, and regular users who are logged in but do not have
administrator privileges. Unauthenticated users can browse the system and view all published
content, such as webinars and blogs. If you need more features, such as creating your own blog or
commenting on other people's posts, you can log in to the system If you are an administrator, you
can manage and manage user and group data records and permissions. All information is stored in
the database and retrieved from the database after a database query.
The Data flow diagram which I have made of insurance company is illustrated in the figure shown
below:
Context Diagram
Context Diagram is a common tool that Business Analyst use which shows the boundary between the
systems, or part of a system demonstrating the entities that interact with it under consideration as a
single high process (Adams, 2015). Also, it shows how the system will receive and send data flows
to the external entities involved. A context diagram assists in understanding the entire system by one
data flow diagram which gives the overview of the system. Context Diagram were created for system
analysis and design but, like many other tools they have been leveraged for other multiple purposes.
Demonstrates the scopes and boundaries of the system on a quick peek comprising the other
system that interfaces with it.
Even with zero technical knowledge everybody can get the idea.
Different entities are administrators, staff writers, community users and normal non-authenticated
users who just come to see some stuffs or gather some info. Clients ask for info and as per requested
software system of company display the requested information. Staffs and administrators manages
data and other material for stakeholders and make changes every time they perform financial tasks.
connecting lines, etc. is used to portray the interconnectedness of entities, relationships among those
entities and their attributes.
The Entity Relationship Diagram which I have made of an insurance company is illustrated in
the figure shown below:
In above task, I had use various system analysis tools and techniques such as context diagram, use
case diagram, DFDs, process representation, etc. to carry out a system investigation. In this task, I
will evaluate, draw and justify the conclusions of the arguments or ideas presented.
As said earlier, system investigation is done in order to identify the problems and opportunities in the
existing system, determine the scope of the project by evaluating the complexity of the problem and
effort required to complete it, boost up user confidence by reassuring user analyst fully understands
the nature of the problem.
Often, the amount of information is so overwhelming that it’s difficult to make sense of it at all. Yes,
details are crucial and being extremely detailed-oriented helps to win the battles, but it may yet cause
system analyst to lose the war, by neglecting the important items. This is where system analysis tools
and techniques that I have used comes very handy and will save a project from very offensive
surprises. Ironically, all the tools and techniques that I have used can be done on very minimal
amount of time and money, yet they can prevent many hours of frustrating interactions that
inevitably follow the discovery of a large item that was neglected.
All those tools and techniques have been used to represent the traditional visual representation of the
system. As we all know, “A picture is worth a thousand words” and like all the best diagrams and
charts, diagrams used in system analysis tools and techniques can often visually say things that
would be hard to explain in words, and they work for both technical and nontechnical audience, from
developers to CEO.
DFDs have been used while analysis tools and techniques to carry out system investigation as it
shows how data flows occurs in a system but, doesn’t show when it occurs, under which
circumstances as DFD focuses only on a few important details. Context Diagram is a common tool
that Business Analyst use which shows the boundary between the systems, or part of a system
demonstrating the entities that interact with it under consideration as a single high process. Also, it
shows how the system will receive and send data flows to the external entities involved.
On the other hand, the Context Diagram shows the system under consideration as a single high-level
process and then shows the relationship that the system has with other external entities (systems,
organizational groups, external data stores, etc. Another name for a Context Diagram is a Context-
Level Data-Flow Diagram or a Level-0 Data Flow Diagram. Since a Context Diagram is a
specialized version of Data-Flow Diagram, understanding a bit about Data-Flow Diagrams can be
helpful. A context diagram assists in understanding the entire system by one data flow diagram which
gives the overview of the system.
Entity-Relationship diagrams (ERD) is used in structured analysis and conceptual modeling. While
carrying out system investigation, ERD is used to graphically illustrate different entities such as
people, objects and how they relate to each other.
Conclusion
Each diagram shows a different aspect of some complex system. Any system of sufficient complexity
can be derived from different diagrams. System Analyst must realize that to successfully analysis the
systems, they need to understand the main information they got from each diagramming tool. One
diagramming tool may not enough for analyzing the system and they may require using multiple
diagrams. Also, it is important to remember that diagrams are documentations. It is a means of
communication between groups of human beings and needs to be understandable to both senders and
receivers.
In conclusion, I have evaluated, drawn and justified the conclusions of the arguments or ideas
presented. Some or all of these techniques may be used in the investigation of the existing system or
to investigate a new system, and will result in a set of data flow diagrams representing the current
system, a logical data structure of the current system's data, and the initial problems/requirements list
for the project. These tools and techniques has assists me a lot to evaluate the whole system in very
easier way.
Excellent software quality will enable cost effectiveness and superior performance to deliver your
projects.
Finding ways to implement effective testing strategies at the earliest possible stage will help you
detect and solve defects. Solving problems at the earliest stage of project management creates a win-
win scenario. Increased efficiency results in better quality software and reduced costs. Conversely,
poor software quality exacerbates problems and can become a time-consuming and expensive
exercise.
The main motive of requirement tracing is to assure that the requirements continue to meet the needs
and expectations of its customers and stakeholders. We can trace a single functional requirement
backward to its origin, such as a use case, product feature or business rule. Also, we can trace that
functional requirement forward into the bits of design, code and tests that were created because of
that requirement. The analyst must write requirements in a fine-grained fashion and give every
requirement a unique and stable identifier in order to do requirements traceability. Most of the people
starts doing traceability by linking the functional requirements to an individual test which verify the
correct implementation of those requirements. The requirement tracing is specially done for
management of solution scope, quick evaluation of potential changes, reduction of project risk,
promoting consistency between requirements, allowing monitoring and controlling across the
lifecycle of requirements, etc. The requirement tracing provides benefits in two key areas which are
given below:
1. It provides context for the development team. Also, it defines the expectations of the testing
team to help implementation and specification.
2. It helps to ensure that the team is not only for building the product rights, but are also for
building the right product.
Establishing traceability correctly gives a timely view of the current state of the ‘Solution under
development’ and thereby helps Architect assess the stability of the Solution and help provide inputs
to the stakeholders of the Solution in terms of triple constraints viz., Resource, Schedule, and Scope.
One of the daily activities during the SDLC is to generate a report of the forward traceability and
backwards traceability of the Project. The adopted tool should support providing the report to
facilitate an understanding of the current state of the Project.
Jira
Jira is an issue-tracking tool that's mainly used by software developers to track, organize, and
prioritize bugs, new features, and improvements for certain software releases. Here at K15t
Software, we carefully organize the development process for every Scroll add-on. We have
multiple projects for each of our add-ons, and every project is sub-divided into 'issues'. These
issues can be of multiple types, for example:
New Feature
Improvement
Bug
Documentation tasks.
When the release date for a new piece of software draws near, our developers become
increasingly stressed as all remaining issues must be fixed before the specified date. It's the
same when it comes to documentation. As I work with a team of software developers, my life
also becomes extremely hectic as we approach the release date. Even when the big day is just
around the corner, the status of the documentation is often unclear, as it's hard to keep track
of everything.
We can define a specific due date, or deadline, for each documentation task. And of course,
we can configure Jira to give me notifications, to make sure we finish my work in good time.
This helps me meet deadlines for new product releases. No more waiting for documentation
to be finished – and no more releases without full documentation.
With this useful add-on, I can measure exactly how much time I needed for each new release.
Moreover, it lets me track how long I spent on every single documentation task. This is great
when checking and reporting my work internally, and extremely practical when working for a
customer who requires an exact breakdown of the time spent on each task
Trello is a task management app that gives you a visual overview of what is being worked on
and who is working on it. It used the Kanban system, which was developed in Toyota as a
system to keep production levels high and maintain flexibility. It is best represented as a
whiteboard filled our admin and management board is fairly straightforward. Each team
member has three lists. We can assign cards to ourselves or to each other as well as converse
about issues involved in any of those tasks.
It advantages are:
We can use trello on about any size of screen. Its interface is much more different
from other services. Trelllo looks like an App, not a site.
Real time updates is amazingly fast! Almost right away!
A board for a project and you can see all the items on one page.
Creating issues and assigned someone to those issues are simple and easy.
Adding new member is easy. You can not only add existing user to your board but
also invite new users by type in emails.
Trello likes to keep things simple and only maintain one internal board, so there is only
one place to keep track of things.
Incoming Bugs – The collect bug reports from twitter, email or something that
employees identify.
Bugs for this week – The top priority bugs move to this list to be fixed as quickly
as possible.
Planning – This list is for new features that need addition planning, research or
general figuring out how it will work.
Doing – Bugs or features devs are currently working on.
Waiting for test/review – Features and bugs awaiting code testing and QA.
Ready for merge – These are moved to a staging server and tested to see if it works
well live or causes problems elsewhere in the app.
Unshippable – If a new bug is discovered that makes the card unfit for release.
GitHub
GitHub, can be divided into the Git, and the Hub. The service includes access controls as well as a
number of collaboration features like tools for basic task management and for all projects you
handle. GitHub hosts your source code projects in a variety of different programming languages and
keeps track of the various changes made to every iteration. So, the “Git” implies the version control
system; a tool which allows developers to keep track of the constant revisions to their code. The
“Hub” is the community of like-minded individuals who participate. It is all about the collaborative
Subash Adhikari (HND/ Second Semester Sec-B)
81
Software Development Lifecycles 2019
effort of the community, in reviewing, improving, and deriving new ideas from the uploaded code.
It’s definitely something worth looking into!
Advantages of GitHub
2. Documentation
By using GitHub, you make it easier to get excellent documentation. Their help section and guides
have articles for nearly any topic related to git that you can think of.
Prototyping
Prototyping refers to the early stage of software development, the core of prototyping is to test the
product and usually used for demonstration, testing, communication and so on.
Stages of prototype
To performance the key functions of the software and the basic interaction process, what’s more, it’s
easy to modify, fast to prototype and the production costs are lower than other prototypes.
Medium fidelity prototype adds more details and the interaction is closer to the final product. In most
cases, medium fidelity prototype is enough for the user to fully experience the final product, you
can test the usability of the product and ensure that the major problems can’t be found in the
following development process.
It’s the prototype that most close to the final product. rich in detail, including all the features of the
product and interaction. Making high-fidelity prototypes can significantly reduce communication
costs. And prototyping is more accurate and exquisite. However, the high fidelity means that you
need to spend more time and development effort, and it will be more time-consuming when you need
to make some adjustments.
Advantages of prototype
Many research has been done to identify the root cause of poor software quality. There are
many reasons found due to which the software has poor quality. While developing a software,
small mistakes can also lead big problem and also leads to large financial losses. Due to this,
we should be always careful while developing a software and always should follow the best
practices to improve the software quality. There are also many approaches to improve the
software quality. Among them, the best two approaches to improve the software quality are
given below:
An entremets programming has main motive to provide iterative and frequent small releases
throughout the project by allowing both team members and customers to examine and review
the project’s progress throughout the entire software development lifecycle. It is intended to
improve the quality of software and also responsiveness to changing customer requirements.
The extreme programming practices are given below:
1. Test-driven development
Test driven development is a process of software development which relies on the repetition of
a very short development cycle i.e. firstly the developer of software writes an automated test
case which defines a desired improvement or new function, after that the developer produces
the minimum amount of code to pass that test and finally refactors the new code to acceptable
standards. It is related to the test- first programming evolved as part of extreme programming
concepts. The test-driven development process example is given below:
As seen in the figure, in the test driven development, firstly it adds a test. After that there
is a process of executing the test. If the execution of test is passed, it returns to the first
process i.e. add to test otherwise there would be need of making changes to the code.
After making changing in the code, it executes the test. If the execution of test is
successful, then test driven development is successfully executed otherwise it returns to
the third process i.e. make changes to the code. Thus, this is the process of test driven
development.
Pair programming
In the pair programming approach, it requires two engineers working in tandem at a single
computer in which one of them writes a code and another watches and makes suggestions
through the process. Such roles can be swapped at any time in this approach. Ideally, the two
engineer would be equally skilled and would each have time at the keyboard. If there is
necessary, the two engineer brainstorm on any challenging problem. They periodically switch
roles and work together an equals to develop a software. Pair programming plays a vital role for
improving the software quality. The following figure can describe the pair programming more
effectively:
b. People learn significantly more about the system and about software development.
d. The projects end up with multiple people understanding each piece of the system.
Communication basis
While making the bugs reports, there should be clear explanation of bugs detected in an
application and also should provide solutions for them like describing the needed behavior of
the feature. It there is such thing in the document, a developer can know easily the bugs in an
application and also a solution in case if he needed. Thus, it has to solve the bugs effectively
and improve the software quality.
We should always make sure that bugs are reproducible before reporting it. We should include a
clear instruction of how to reproduce a bug step by step without any confusion. We should
always be sure that the context is specified and also we should avoid the information that can
be interpreted differently. It also plays a vital role while improving the software quality.
Clarity
While making the bug reports, we should be sure that the report is clear which can be
understand by every person otherwise it would be useless of making the bug report. It should be
clear enough which can help developers to understand the failure and also should include
information about what QAs see and a statement of what they expect to see instead of bugs.
There should be clear documentation of what went wrong in the code of an application.
Conclusion
In this part, I have firstly explained about stakeholders. It is a party that has an interest in a company
and can either affect or be affected by the business. Also, I have explained different stakeholders
which includes BOD, clients, investors. etc. After that I have wrote the different requirement of the
clients in the software of insurance company and describe the specification of scope. Project scope
can be defined as the part of project planning which involves determining and documenting a list of
specific project goals, features, tasks and ultimately costs. Also, I have described the input, output,
process and process descriptor. In the same way, I have explained consideration of alternative
solution, security consideration, use of quality assurance, identification of different constraints which
includes cost, organizational policy, legacy system and hardware components, Background
information and also problem statement. After that I have explain the data collection process. It is the
process of gathering and measuring data, information or any variables of interest in a standardized
and established manner that enables the collector to answer or test hypothesis and evaluate outcomes
of the particular collection. The different types of data collection process are interview, observation,
questionnaire, etc. In the same way, I have explained entity relationship diagram and data flow
diagram including the data flow diagram and entity relationship diagram of insurance company
software. Also, I have written the summary where I have explained everything have done until now.
After that I have explain the requirement tracing by showing the example of how requirement is
traced in the login page of insurance company software. I have also explained the two approach by
which we can improve the quality of the software and finally I have described about how the use of
the function design paradigm in the software development lifecycle can improve the software
quality.The isystem ireview ialso ihelped ito iidentify ithe iproblems iand iopportunities iof ian
iexisting isystem, idetermining ithe iscope iof ia iproject iby iassessing ithe icomplexity iof ithe
iproblem iand ithe iefforts ineeded ito isolve iit, iimproving iuser iconfidence iby ireassuring iusers
ithat ithey iunderstand iit. ianalyst ihas ifully iunderstood ithe inature iof ithe iproblem. iHe ialso
ihelped iidentify ithe iassociated irisk iand iwhether ithe isolution iwas ifeasible ior inot. iSo, ias ia
iresult iof ithis iinvestigation, iI icame ito ithe iconclusion ithat ithis inew isystem iis, iin ithe icurrent
isituation, ia ivery ilarge ineed ifor ian iinsurance iorganization.
Part 4
Introduction
In this part, firstly we have to prepare a documentation that explains how user and software
requirements have been addressed. You should also create a table that contains the expected customer
requirements and actual results that show the products that will be developed after the appropriate
analysis. You will then need to explain the different ways to specify the software, suggest two ways
to specify the behavior of the software, and illustrate its use with examples related to projects that
need to be built in a particular context. We should also include flowcharts, pseudo code and formal
specification methods. After that we should differentiate between a finite state machine and an
extended finite state providing an application for both. Finally, we have to present a justification of
how data driven software can improve the reliability and effectiveness of the software.
I know that a document can be defined as a set of documents presented on paper, Internet, digital,
digital, or analog media (audio tape, CD, etc.). Examples of documentation include user manuals,
online help, technical documentation, and can be distributed through websites, software products,
and other online applications. When developing applications, you must carefully observe the system
and system requirements. You must make sure that all user and system requirements are implemented
correctly. It plays an important role in successfully completing applications and satisfying customers.
User Requirements
To achieve basic business needs, software projects should include tasks / activities that users must
complete. User requirements provide the scope and focus of this level project. In other words,
provide "what" to the software project. User requirements are related to the tasks that can be
completed and the expected results. For example, user requirements can determine the ability of
users to perform procurement process checks, record the results of these checks, send additional
validations or approvals, and generate reports based on metrics. User requirements may be
represented in many ways, depending on the software engineering methodologies employed and the
processes/tools used to capture, record and manage them. Among these representation frameworks
are use cases, user stories and event-response tables. A user story might be: “As a procurement
manager, I want to be able to “Approve” a procurement-process file review that has been referred to
me for a decision.” Software requirement management tools allow you to organize and group
requirements into documents to provide ready reference and use as a collaboration tool throughout
the life of the project.
Functional Requirements
The user-level experience may need to be described in terms of what the developer is supposed to
build. This task falls to functional requirements: they too provide the “what” information for the
software project, but in detailed terms relevant to a developer. For example, a functional
requirement might be: “The system shall require an approving manager to select one of three
approval decision options: Approve, Disapprove, Defer.” The primary audiences for functional
requirements are developers and testers. As a recommended good practice, each functional
requirement should be accompanied by a test case that can be used to unambiguously verify if
that requirement has been met.
Tabulation of the expected client requirements and the actual output of the product
1. Foreign currency exchange There is one special service for the user that
exchanging of the foreign currency can be
done all over the world.
2. Providing claims services Users can claim their share and property
through this software in an effective and easy
way.
The table above shows the expected customer needs and actual software results. As you develop your
application, you collect customer and user requirements, so the expected customer demand is almost
the same as the actual result. We created this app with all requirements in mind and fixed all bugs
after user and customer feedback. Users and customers need all the features and services of the
insurance company software, such as premiums, prepayment, ability to view current user status, new
policies and offers, and more. Therefore, all users and customers like this software.
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.
Software specification
Software requirements specification establishes the basis for an agreement between customers and
contractors or suppliers on how the software product should function (in a market-driven project,
these roles may be played by the marketing and development divisions). Software requirements
specification is a rigorous assessment of requirements before the more specific system design stages,
and its goal is to reduce later redesign. It should also provide a realistic basis for estimating product
costs, risks, and schedules. Used appropriately, software requirements specifications can help prevent
software project failure. The software specification document lists sufficient and necessary
requirements for the project development. A software specification also leads benefits to client
because if the development cost is less, the developers will charge less amount to the clients. Some
of the most important benefits of the software specification are given below:
• It helps to describe what the software will do and how will be expected to perform.
There are different software specification methods which are given below:
Flow chart
A flowchart shows a process, system, or computer algorithm (Anon., N.d.). Investigate, document,
improve, and plan topics in clear and easy-to-understand topics that are used in various areas. It is
also a powerful business tool. By using flowcharts correctly, merchants can develop their business.
This flowchart can be used for business, marketing, engineers, students, manufacturing, etc. It has its
different types like document flowchart, system flowchart, data flowchart, etc. The most common
flowchart symbols which are used more in comparative to other are as follows: -
Terminator
Process
Document
Decision
Data
Database
Flow Arrow
Predefined process
Example of flowchart
Pseudo code
Pseudocode is a detailed and readable description of what a computer program or algorithm should
do, expressed in a formal, stylized natural language (Rouse, n.d.) rather than a programming
language. This allows designers or key programmers to describe the design in detail and provide the
programmer with a detailed template for the next step of writing code in a specific programming
language. It is also used in combination with methods based on computer software development. The
main purpose of using pseudocode is to make it easier for people to understand than ordinary code in
programming languages, and to explain the key principles of algorithms in an efficient and
environmentally independent manner. Pseudocode is also useful for creating charts and draft
programs. Summarizes the planning process but does not include the main details. It is also used
when planning algorithms using sketches of the program structure before actual encoding takes
place. Some of the benefits of pseudocode are: It is understood by the programmers of all types.
The pseudo code for the insurance company software according to our scenario is given below:
Evidence = true;
Evidence = false;
If (Evidence = true) {
Else {
Else {
Else {
Logout = true;
Logout = false;
If (Logout = true) {
Else {
In the above, I have made the pseudo code of the insurance company software according to our
scenario. I have made pseudo code of login, log out, changing policy, exchange currency and
insurance claiming. I have shown the work flow of software in the pseudo code when the user uses
software of insurance company. Without showing this, a user may feel confuse while using the
software. Thus, pseudo code is very important for the software.
Differentiate between a finite state machine (FSM) and an extended Finite State
providing an application for both.
A state machine (sometimes called a state machine) is a computational model that can be
implemented using hardware or software and can be used to model sequential logic and some
computer programs (Moore, Nd). It can be used to simulate problems in many areas such as
mathematics, artificial intelligence, games, linguistics. A computer is essentially a state machine, and
each machine instruction is an input that can change one or more states and cause other actions. A
state machine is a state machine with a limited number of possible states It can be used as a
development tool for approach and problem solving and as a formal way to describe future
developers and accompanying system solutions. Basically simple, efficient and easy to expand. Each
state in the state machine has a series of transitions, each associated with an input and indicating a
state. The state machine includes a number of extensions that can be encoded directly using your
own language or GUI tools. They are of two types:
Deterministic limited automation can be defined as a finite state machine that accepts or rejects
strings and generates a unique automatic calculation for each input string. This is an abstract
mathematical concept, but is usually implemented in hardware and software to solve a variety of
specific problems.
With non-deterministic and limited automation, there may be zero, one, two, or more transitions for
each state corresponding to a particular symbol. You can also use the null conversion shown when
shown. Zero conversion allows the machine to switch from one state to another without reading
characters. This final automation cannot determine the exact state of machine movement.
There are many applications of finite state machine which are given below:
i. Due to the simplicity of finite state machine, they are quick to design, implement and also in
execution.
ii. With the implementation of FSM, it shows a developer as concise and professional.
iii. Predictability in deterministic FSM given a set of inputs and a known current state, the state
transaction can be predicated, allowing for easy testing.
iv. It is easy for inexperienced developers to implement with little to almost no extra knowledge.
i. It can be operated in various tools like metro passageway, alarm, home garage,
temperature controller, etc.
iii. Since extended finite state machine is a modelling approach, it used for wide range of
systems.
Data driven is an adjective that refers to a process or action driven by data, as well as intuition and
personal experience (Anon., N.d.). Basically, data-driven means that the data determines what action
the person performing the event or process takes. This is most notable in the field of big data, where
data and information are the basis for all actions, and data collection and analysis are the main
drivers. Data-driven software does not determine the order of steps to be performed, but rather
describes the data that the program operator matches and the processing that is required. Usually
applied to structured data streams to filter, aggregate, transform, and call other programs. Data-
driven software usually performs default operations. That is, if no match is found, the linear-oriented
language outputs a line or delivers a message. This is a new way to implement business intelligence.
He uses machine learning to act automatically and perform his actions. It is integrated with the
software as an analytical and strategic direction service.
It is the composition model that is implemented It is the composition of the model where the
with the hardware or software that is used to transaction of the system is expressed in the
simulated sequential logic and some computer if statement consisting the set of the
programs. conditions that trigger the action of the
system
They are used in the many fields like They are widely used in the computer
mathematics, artificial intelligence, games and science and software engineering especially
linguistics. in the field of the program analysis and
testing.
They are simply used in the cases where the According to the trigger of the condition,
particular simple inputs can cause to change the the transaction is fired and then bringing the
state from one to another. machine to the next state and perform the
operation.
E.g.: (door lock and unlock) E.g. : (simple flight safety)
i. It automatically generates the master data, models, schema and graphs as the user
searches and also collects data.
Conclusion
In this task, I have firstly prepared documentation that explains how user and software requirements
have been addressed. Also, I have tabulated with the columns that has the expected client
requirements and the actual output of the product to be developed after the appropriate analysis.
After that I have explained the different software specification methods and also suggest two
software behavioral specification methods and illustrate their use with an example relevant to the
project that needs to be constructed for the given context. I have also included flowcharts, pseudo
code and formal specification methods. After that I have differentiate between a finite state machine
and an extended finite state providing an application for both. Finally, I have presented a justification
of how data driven software can improve the reliability and effectiveness of the software.
References
Adams, C. (2015). What is a Context Diagram and what are the benefits of creating one? > Business
Analyst Community & Resources | Modern Analyst. [online] Modernanalyst.com. Available at:
http://www.modernanalyst.com/Careers/InterviewQuestions/tabid/128/ID/1433/What-is-a-Context-
Diagram-and-what-are-the-benefits-of-creating-one.aspx [Accessed 27 Nov. 2017].
Alwan, M. (2015). What is System Development Life Cycle?. [online] Airbrake Blog. Available at:
https://airbrake.io/blog/sdlc/what-is-system-development-life-cycle [Accessed 18 Nov. 2017].
Bucki, J. (2017). Learn About Quality Assurance — What It Is and Why It's Important. [online] The
Balance. Available at: https://www.thebalance.com/definition-of-quality-assurance-2533665
[Accessed 26 Nov. 2017].
Creately Blog. (2015). Use Case Diagram Tutorial ( Guide with Examples ) - Creately Blog. [online]
Available at: http://creately.com/blog/diagrams/use-case-diagram-tutorial/#extend [Accessed 27 Nov.
2017].
Creately Blog. (2017). ER Diagrams Tutorial | Complete Guide to ER Diagrams with Examples.
[online] Available at: http://creately.com/blog/diagrams/er-diagrams-tutorial/ [Accessed 27 Nov.
2017].
DeVault, G. (2017). Tame Your Focus Groups and Get Useful Insights. [online] The Balance.
Available at: https://www.thebalance.com/what-is-a-market-research-focus-group-2296907
[Accessed 30 Nov. 2017].
Freetutes.com. (n.d.). The Spiral Life Cycle Model. [online] Available at:
http://www.freetutes.com/systemanalysis/sa2-spiral-model.html [Accessed 20 Nov. 2017].
Fryrear, A. (2017). What is a Feasibility Study, and How Surveys Can Help. [online] SurveyGizmo.
Available at: https://www.surveygizmo.com/survey-blog/what-is-a-feasibility-study/ [Accessed 29
Nov. 2017].
Olshavsky, R. (2003). Six Tips for Improving Your Design Documentation. [online] Boxes and
Arrows. Available at: http://boxesandarrows.com/six-tips-for-improving-your-designdocumentation/
[Accessed 30 Nov. 2017].
Rouse, M. (2015). What is systems development life cycle (SDLC)? - Definition from WhatIs.com.
[online] SearchSoftwareQuality. Available at:
http://searchsoftwarequality.techtarget.com/definition/systems-development-life-cycle [Accessed 18
Nov. 2017].
Rouse, M. (2017). What is constraint (project constraint)? - Definition from WhatIs.com. [online]
WhatIs.com. Available at: http://whatis.techtarget.com/definition/constraint-project-constraint
[Accessed 26 Nov. 2017].
Stackify. (2017). What is SDLC? Understand the Software Development Life Cycle. [online]
Available at: https://stackify.com/what-is-sdlc/ [Accessed 18 Nov. 2017].
Study.com. (2017). Systems Analysis: Definition & Example - Video & Lesson Transcript |
Study.com. [online] Available at: https://study.com/academy/lesson/systems-analysis-definition-
example.html [Accessed 27 Nov. 2017].
Wolfe, L. (2017). What Is a Feasibility Study and Why Is It so Important?. [online] The Balance.
Available at: https://www.thebalance.com/what-is-a-feasibility-study-3514853 [Accessed 22 Nov.
2017].