SDLC Assignment
SDLC Assignment
Part: 1..........................................................................................................................................................2
Introduction.................................................................................................................................................3
SDLC model............................................................................................................................................3
Iterative model.........................................................................................................................................4
Steps in Iterative methods........................................................................................................................5
Spiral model............................................................................................................................................6
Steps of Spiral model...............................................................................................................................6
Pros of Spiral model.................................................................................................................................7
Cons of Spiral model................................................................................................................................7
Management of risk in spiral model........................................................................................................7
Agile model.............................................................................................................................................7
Steps in Agile model................................................................................................................................8
Pros of Agile model.................................................................................................................................8
Cons of Agile model................................................................................................................................9
Sequential model.....................................................................................................................................9
Steps of sequential model........................................................................................................................9
Waterfall model.....................................................................................................................................10
Steps of Waterfall model........................................................................................................................10
Pros of Waterfall model.........................................................................................................................11
Cons of waterfall model........................................................................................................................11
V-model.................................................................................................................................................11
Steps of V-model....................................................................................................................................12
Selection of a model for the development environment.........................................................................14
Merits of applying Waterfall lifecycle model to a large software development project.........................14
Conclusion.................................................................................................................................................16
Part: 2........................................................................................................................................................17
Introduction...............................................................................................................................................17
Feasibility report....................................................................................................................................17
Part: 1
As a part of your responsibility you are required to prepare a report that describes different
software
development cycles. Your report must include the following:
1. Description of predictive and adaptive software development models considering at least two
iterative and two sequential models.
2. The risks involved in each of the models and how the risk can be mitigated /managed in each
model by taking a reference of the spiral model.
Once you have prepared the report you are required to produce documentation that
3. Describe with an example why a particular lifecycle model is selected for a development
environment. You may consider a different development environment with different business
logics, platform, etc., and the applicability of the particular software development model over the
development environment.
4. Assess the merits of applying the waterfall model to a large software development project with
appropriate evidenced researched work with reference to the current context.
Introduction
In this first part of my SDLC assignment, I am going to explain about the software development
lifecycles. Here, I am going to describe some iterative and sequential lifecycle models along with
its definition, steps, diagram, pros and cons. Also, I am going to write about spiral model along
with its definition and management of its risks. Similarly, I am going to select a particular
lifecycle model for a development environment and describe why I chose that particular lifecycle
model. Then, I am going to assess the merits of using waterfall model in a large software
development.
SDLC model
Software Development Lifecycle (SDLC) can be defined as a framework which describes the
activities performed at each stage of a software development project. SDLC is a splitting of a
software development work into distinct phases or stages containing activities with the intent of
better planning and management. SDLC aims to produce a high quality software that meets or
exceeds customer expectations, reaches completion within time and cost effective. Every SDLC
models have various phases which should be followed from the time of initiation to end of the
project. Some of the models are: waterfall model, agile model, spiral model etc. Such models are
beneficial and important to develop an effective software.
There are the two types of the SDLC models:
1. Predictive
Predictive Software Development Lifecycle includes the following models of the
software development:
Waterfall model
Prototyping model
Rapid Application Development (RAD) model
2. Adaptive
Adaptive Software Development Lifecycle includes the following models of the software
development:
Spiral model
Agile model
Dynamic System Development Method (DSDM)
Iterative model
Iterative model is a particular implementation of software development life cycle that focuses on
the initial and simplified implementation which after that progressively gains more complexity
and a boarder feature set until the final system is complete. Such style of model does not attempt
to start with a full specification of requirements.
Fig: Iterative model
Steps in Iterative methods
The steps involved in iterative methods usually are as follows:
In any development project, initial planning is the first step to find any hardware or software
requirements, specification document and prepare for next stages of cycle.
Analysis and design
After planning is done, analysis of the project is done to point out appropriate logics, database
models and so on which will be needed at this stage in project. Similarly, design stage also falls
here. The design is made after analysis of the requirements are done which would help other to
study the structure of the software. Technical requirements will be utilized to meet the needs of
analysis stage and customer in this stage.
Implementation
Actual implementation along with coding processes are done after completing planning and
analysis. Every planning, specification and design formed till here are coded and implemented
into this initial iteration of project.
Testing
After the iteration is coded and implemented, next step is testing where a various test is
performed in order to identify and find any possible bugs present in the project.
Evaluation
Evaluation is performed thoroughly, once all stages are completed. It allows whole team, clients
and other parties to examine the project so that the necessary changes can be made to improve
the whole development project to meet customers need.
The process can be repeated again if needed
Spiral model
Spiral model is the combination of iterative development model and sequential linear
development model with a high emphasis on risk handling. In simple word, it is a model that
works on combined approach of iterative and waterfall model. It is also known as risk driven
software development process model. It is more suitable and effective for large projects rather
than smaller ones as it can undergo infinite iterations and requires more cost along with need of
complex requirements.
Identification
Requirements are gathered from the clients in the baseline spiral. In this phase, identification of
the system, sub-system and unit requirements are done. This includes understanding the system
requirements by continuous communication between the customer and the system analyst.
Design
After identifying the requirements, design is done. It helps other to study the structure of the
software. This phase starts with the conceptual design in the baseline spiral and involves
architectural design, logical design of modules, physical product design and the final design in
the subsequent spirals.
Construct or build
Construct phase starts right after accomplishment of identification and design phase. In this
phase, production of actual software product is done at every spiral. In the baseline spiral, when
the product is just thought of and the design is being developed a, POC (Proof of Concept) is
developed in this phase to get customer feedback. This helps to provides a better and clear idea
on requirements and designs. After this, in subsequent models, a product model known as build
is developed with the version number. Then these are sent to obtain feedbacks from the
customers.
Evaluation and risk analysis
In this phase, technical feasibility and risks are identified, monitored and estimated like cost
overrun and schedule slippage. At the end of the first iteration after testing the build, customer
evaluates the software to give a feedback.
Pros of Spiral model
High and better risk analysis as it helps to avoid any risks.
It can be used for critical and larger projects.
Additional functionality could be added later.
Software is developed at an early stage of lifecycle.
As in any project, planning is firstly done in this model. Goal of this stage is to find the detailed
definition of the system requirements. Every members of the team needs to have a clear idea
about every tasks and requirements that are required to be implemented as per the needs of users.
Similarly, preparation for the upcoming stages are done in this stage.
Design
After the gathering of the requirements, designing phase is initiated by the developers where the
layout of the software is developed which would help others to understand the structure of the
software. Until and unless the proper design of the software is made, further tasks are not
performed.
Development/ Building
This stage starts right after designing the software successfully. Coding are performed in this
stage while keeping previously defined requirements in the mind. By adjusting the software
environment, user interface of program is developed to interact with users.
Testing
After the completion of the development stage, testing is carried out to find any possible bugs or
errors present in the software so that the developers can improve or enhance the software and
available the product in the markets.
Pros of Agile model
This model is easy to manage and promotes teamwork.
It is a very realistic approach to software development.
Required resources are minimum and useful for environments which change steadily.
Functionality could be developed easily and provides flexibility to the developers.
Sequential model
In this model, one stage must be finished completely in order to move onto next stage. The
phases are performed sequentially i.e. single (one by one) phase at a time. There is no going
backward to previous stage after finishing that stage as the output of one phase acts as the input
for another or next phase sequentially.
Requirement analysis
In this first stage, every requirement for the software development are analyzed and gathered. So,
this involves what needs to be designed along with its function, purpose and son on.
Specifications of input and final product are studied and marked.
System design
System design is made after studying the requirement specifications from the previous phase. It
helps to specify hardware and software requirements so that the system architecture can be
defined as a whole. Coding to be implemented in next phase are created here.
Implementation
By the help of inputs from system design, the system is divided into small programs known as
units that are integrated to next phase. Each units are developed and tested for its functionality
which is known as unit testing.
Integration and testing
After testing of every unit, all units of implementation phase are integrated into the system. The
designed software is tested to check or find bugs or errors present in the software.
Deployment
After completing the tests, the product is deployed in the customer environment and made
available in the different markets.
Maintenance
In this phase, required modifications are made to the system in order to improve the
performance. Such modifications are performed due to various reasons like requests from
customers, defects found while using the system etc.
Waterfall model
Waterfall model is the earliest and most widely known SDLC approach used for software
development and it is simple to understand as well as use. In this model, development process
moves step by step through different phases like analysis, testing, implementation and so on like
a downward flow of water. Any phase in the development process of this model initiates only if
the previous phase is completed. This model is also known as Linear sequential lifecycle model
because it shows the software development process in a linear sequential flow.
Fig: Diagram of Waterfall model
Steps of Waterfall model
The steps involved in waterfall model are as follows:
Requirement analysis
In this first stage of waterfall model, every requirement needed for the software development are
analyzed and gathered. So, this involves what needs to be designed along with its function,
purpose and son on. Specifications of input and final product are studied and marked.
System design
System design is made after studying the requirement specifications from the previous phase
which helps to specify hardware and software requirements so that the system architecture could
be defined as a whole. Codes to be implemented in next phase are created here usually.
Implementation
By the help of inputs from system design, the system is divided into small programs known as
units that are integrated to next phase. Each units are developed and tested for its functionality
which is known as unit testing.
Integration and testing
After testing of every unit, all units of implementation phase are integrated into the system. The
designed software is tested to check or find bugs or errors present in the software.
Deployment
In this phase, the product is deployed in the customer environment and made available in the
different markets after completing tests.
Maintenance
In this phase, required modifications are made to the system in order to fix issues and improve
the performance. Such modifications are performed due to various reasons like requests from
customers, defects found while using the system etc.
Pros of Waterfall model
It is simple and easy to understand.
Stages and activities in this model are well-defined.
This model is easy to explain to users.
Phases are processed and completed one at a time so that they would not overlap.
V-model
V-model is a SDLC model in which process is executed in a sequential manner in V-shape. It is
also called as Verification and Validation model. It has a testing phase for every corresponding
development stage. So, each step directly linked with testing phase. As it is a sequential model,
the next phase would not be initiated until the previous phase is completed. It is an extension of
waterfall model where there is a corresponding testing phase for all development phases unlike
in waterfall model.
Cons of V-model
Conclusion
In this current part, I have explained software development lifecycle in detail along with iterative model
and sequential model where I have illustrated diagram of every model in order to have a clear
understanding of its structures. Similarly, I have mentioned pros and cons of each models that I have
discussed. For the development environment, I have selected agile model and explained why I have
chosen that particular model along with example. At last, I have pointed out and explained the merits of
applying the waterfall model to the large projects. With this, I have concluded my first part of my
assignment.
Part: 2
1. You are required to produce a documentation that explains the purpose of the feasibility report
3. Carry out the feasibility study as per the best of your previous research work against the solution
to be developed for the given problem and assess the impact of different feasibility criteria on the
software investigation.
Introduction
In this second part, I am going to explain the feasibility report along with its purpose. After this, I am
going to describe and compare the technical solutions related to the report. The different components of
feasibility report will also be discussed briefly. Then, I am going to assess the impacts of various
feasibility criteria on a software investigation.
Budget
Budget is something which carries great importance in any kind of development project. A project is
expected to be completed within the estimated budget. To buy every hardware components and
requirements, manpower requires enough amount of money. If the required amount exceeds the
expected or estimated or allocated amount, various problems are more likely to arise related to it i.e.
there would be insufficient money to invest in the development of project which can cause a major
failure of the project. Therefore, if the budget is allocated properly then the project can run smoothly
without any budget issues.
Performance
Mostly people with the ability to perform well practically are more successful in the real fields. Such
people are given more priority as they can outperform others with less practical knowledge and these
sorts of employees can handle technical issues. As we know, most of the industries announce the
vacancy if they need to recruit the members followed by interviews where the participants are tested
logically and practically in some cases. From such events, participants with better performance skills are
selected and employed so it is safe to say that the performance is important to solve technical problems.
Efficiency
Efficiency means an ability to perform something with minimum amount of the effort. It helps to save
extra effort and time.
Automation means the use of electronics and computer-controlled devices to control process. It boosts
the reliability and efficiency. Similarly, automation also improves the productivity as well as quality a
task. So rather than performing time consuming tasks manually, performing those tasks automatically
would be better and it can reduce the chance of errors although such machines can be costly but it
would be worth it to save extra time and give that time to other works which must be done manually.
Therefore, automation can be a better technical solution in comparison.
Legacy system
Technical solutions can be compared by upgrading the previous systems rather than buying or
developing a new system for the same purpose which could cost more as it is the new version of the
same system. So instead of doing that, upgrading that same system would be easier and convenient and
it would not cost high and save the time. Therefore, such legacy system upgrading is necessary to
compare technical solutions.
Components of feasibility report
The various components of feasibility report are discussed below:
Introduction
In the first part of the feasibility report, clear explanation of the project is written so that the one
who reads the report can have a clear understanding of the whole project in detail. Through this
component, people can be aware about the things that are going to be included in the
development of the project. Suppose, someone important person from a college wants to check
feasibility report of a particular software then the first thing that they notice is introduction from
where the concept of the project can be clear.
Purpose
In this second part of feasibility report, main purpose or the reasons to make the particular
software should be mentioned with clear concept. Suppose, a college management system, it is
made to enter and keep records of the information and data of the students, manage the
courses, classes, library, extra curriculum activities, other departments and so on.
Methodologies
In this part of the report, different methods which are used during the project development are
mentioned and how those methods are carried out during the development time are explained.
Suppose, a college management system, to initiate this project firstly out of all the software
development model, a model needs to be chosen that would be the most suitable one for the
system among. Similarly, there can be other different methodologies applied in the system.
These all the methods are explained clearly in this part of report.
Background history
In this part of the report, information about the organization is collected before moving into the
development phase. With the help of this a developer can know the history of the organization
which would assist to make the application according to the needs of the organization and make
it more effective. Suppose, to an effective college management system, a developer may
require the information related to college members and students, initiation of the college,
different available departments of the college and so on.
Document structure
This part of the report holds important documents related to the project and college
management system. So, the documentation should be well maintained and handled well. Such
documents can help to illustrate where the flow of project development is moving towards.
Feasibility criteria
This part of the report includes the various criteria related to the project development. Some are
economic feasibility, technical feasibility criteria and so on. This part mentions whether the
criteria are met or not according to the needs and requirements. Suppose, a college
management system, before developing a software for the college a legal document may be
required to move the project ahead where the software developing party and college would
come to a mutual agreement related to cost to develop the software, time to accomplish the
software and son on.
Outcome
Here, in this part of the report, result of the project are included so that the result can be
compared to the expected outcome of the project. This helps to find whether the outcome of the
project is satisfactory or beyond it. If the result is not satisfactory, improvements can be done by
reviewing the system again.
Potential and feasible solution
This part of the report includes every possible and alternate solution to the errors and problems
that may arise before and after the development of project. This helps to save the time because
in case if there occurs any problem in the project, a solution can be implemented frequently to
solve it before it turns into major problem in the project. Such solutions should be sustainable
and feasible so that the same problems would not occur time to time in a long run.
Evaluation
This part of the project includes the estimation and evaluation of the project. Whether the project
meets the expectations and criteria of it are checked thoroughly here. Each criteria of the project
are evaluated so that the software development can be more efficient.
Suggestion and Conclusion
This is the last part of the feasibility report where recommendations are suggested and
concluded. Suggestions are provided to make and improve the project more. It is like a
feedback which says the system could have been more effective with less errors if this feature
was applied in the system. Finally, the conclusion of the report is done by acknowledging the
whole project.