Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 25

ASSIGNMENT TITTLE: 1: Software Development Lifecycles

SUBMISSION DATE: NO

DATE RECEIVED: 8/5/2021

TUTORIAL LECTURER: NGUYEN QUANG HUY

WORD COUNT: 4818

STUDENT NAME: NGO THI NGAN HA

STUDENT ID: BKC19100

MOBILE NUMBER: 0349685127

1
Summative Feedback:

Internal verification:

2
INTRODUCTION

There are a lot of employees working for the company, some have been there for a very long
time and there is a lot of 'expert discussions' going on about optimal development methods, life
cycle models and ways to improve what the Company produces to outperform competitors.
Some of my new colleagues support tried and tested old ways, others favor newer methods, and
some favor using different methods for different projects.

As the newest employee, I am considered to be neutral with arguments and knowledgeable about
up-to-date methods. Hence, I have been tasked with preparing and presenting options in a
number of different areas that are relevant to the discussions.

In the first case, I will be looking at the different software development lifecycle and creating a
detailed presentation and lecture notes that support my idea.

3
Contents

1 .Describe different software development lifecycles.....................................................................................

1.1.Introduction SDLC..................................................................................................................................

1.2. Phrases in SDLC....................................................................................................................................

2. SDLC Models...............................................................................................................................................

2.1. Waterfall Model.....................................................................................................................................

2.2.Spiral Model............................................................................................................................................

2.3.Prototype Modal......................................................................................................................................

2.4.V-Modal..................................................................................................................................................

2.5.Agile Modal.............................................................................................................................................

3.The suitable SDLC modal for this project and explaint................................................................................

4.The risk and how to manage them.................................................................................................................

5. The purpose of conducting a feasibility study for the project......................................................................

5.1.Technical feasibility................................................................................................................................

5.2.Economic feasibility................................................................................................................................

5.3. Organizational Feasibility......................................................................................................................

6.References......................................................................................................................................................

4
1 .Describe different software development lifecycles

1.1.Introduction SDLC
The software development life cycle (SDLC) mostly is a process which particularly is used to
develop software, which generally is fairly significant. SDLC mostly is a step by step procedure
need to for the most part be essentially followed by the organization to design and kind of
develop a kind of high quality product in a really major way. The phases of software
development life cycle particularly are which describes that how to develop, basically maintain
definitely particular software, generally contrary to popular belief. The life cycle mostly aims to
kind of develop a generally good quality product/software, demonstrating how the phases of
software development life cycle kind of are which describes that how to develop, specifically
maintain basically particular software in a actually major way. SDLC produces intermediate
products that can specifically be reviewed to check whether they work according to customer
requirement, demonstrating that the software development life cycle (SDLC) generally is a
process which essentially is used to for the most part develop software, for all intents and
purposes contrary to popular belief.
 SDLC is also known as Software development process.
 SDLC is an approach creates considerable documentation where this documentation
helpful to make sure that requirement can be traced back to stated business requirements.
 It is a framework which has a set of tasks performed at each phase in the software
development process.

1.2. Phrases in SDLC


DLC really is a step by step procedure or systematic approach to literally develop software and it
kind of is generally followed within a software organization, which basically is fairly significant.
It consists of various phases which specifically describe how to design, develop, literally
enhance and generally maintain generally particular software, demonstrating how sDLC for all
intents and purposes is a step by step procedure or systematic approach to definitely develop
software and it for the most part is definitely followed within a software organization in a sort of
major way.

It consists of various phases like requirement, feasibility study, design, coding, testing,
installation and maintenance, which generally shows that it consists of various phases which
essentially describe how to design, develop, for the most part enhance and really maintain
basically particular software, demonstrating how sDLC essentially is a step by step procedure or
systematic approach to for all intents and purposes develop software and it for the most part is

5
kind of followed within a software organization, which basically is fairly significant.

Phase 1: Requirement collection and analysis:

In this phase mainly focus on gathering the business for the most part needs from the customer in
a subtle way. Business Analyst collects the requirement from the customer and prepares the BRS
(Business requirement Specification) which particularly has the requirement in the business form
in a subtle way. Then a group (BA, Project managers and customers) of people specifically sits
together and determines the requirements like; what should basically be input data to the system,
which for all intents and purposes is fairly significant. Who specifically is going to use the
system, which generally is quite significant. What should generally be output data by the system,
or so they specifically thought. These questions for all intents and purposes are getting for the
most part answered during this phase, demonstrating how what should basically be output data
by the system, which basically is fairly significant. After this, a Requirement Specification
document mostly is created which gives the guideline for the upcoming phase of the model,
demonstrating how business Analyst collects the requirement from the customer and prepares the
BRS (Business requirement Specification) which has the requirement in the business form,
which essentially is fairly significant.

Phase 2: Feasibility study:

Once the BRS document specifically is completed, a set of people like particularly Human
Resource department, Finance department, Business analyst, Architect and Project manager for
all intents and purposes are particularly sit together and particularly analyze if the project for the
most part is literally do able or not in a subtle way. This decision essentially is taken based on
6
the cost, time, resources and etc, so this decision essentially is taken based on the cost, time,
resources and etc, which really is fairly significant.

Phase 3: Design: 

In this phase system design specification definitely is prepared from the requirement document
once the project kind of is feasible, this design specification really give input for the for all
intents and purposes next phase of the model in a for all intents and purposes big way. Design for
the most part is a kind of blue print of the application and it specifically helps in specifying
hardware and requirements of the system and essentially helps in defining architecture of the
system, demonstrating how design definitely is a pretty blue print of the application and it
essentially helps in specifying hardware and requirements of the system and for the most part
helps in defining architecture of the system in a subtle way.

Phase 4: Coding: 

Once the system design document kind of is ready, in this phase developer’s essentially starts
writing the code using any programming language i.e., they specifically start developing the
software, which definitely is quite significant. Generally task mostly is divided in units or
modules and assigned to the developers and this coding phase basically is the longest phase of
SDLC, so generally task generally is divided in units or modules and assigned to the developers
and this coding phase basically is the longest phase of SDLC in a subtle way.

Phase 5: Testing: 

Once the software specifically is generally ready and definitely is deployed in the testing
environment, test engineers definitely starts testing, if the functionality of an application for the
most part is working according to requirement or not in a particularly major way. During this
phase test engineers may encounter some bugs/defects which need to definitely be actually sent
to developers, the developers particularly fix the bug and for the most part sent back to test
engineers for testing, kind of contrary to popular belief. This process continuous until the
software mostly is bug free/stable/working according to the requirement, demonstrating how
during this phase test engineers may encounter some bugs/defects which need to generally be for
the most part sent to developers, the developers literally fix the bug and specifically sent back to
test engineers for testing in a fairly big way.

Phase 6: Installation/Deployment:

Once the product developed, tested and works according to the requirement it is installed /
deployed at customer place for their use.

Phase 7: Maintenance:

When the customers mostly starts using the software they may face some issues and basically
needs to literally be solved from time to time for all intents and purposes means need to for the
most part fix those issue, tested and essentially handed over back to the customer as soon as
possible, which mostly is done in the maintenance phase, which essentially is quite significant.

7
2. SDLC Models
The models of SDLC kind of are the methodologies that kind of are selected for the software
development actually is depending on the project’s actually aims and goals in a basically major
way. These models specifically are mainly used to literally develop software, based on the
requirement, cost, customer and time, actually decide which model to for all intents and purposes
be actually followed to basically develop software, which specifically is fairly significant. Each
model follows fairly sequential steps of its generally own type, to literally develop high quality
software, or so they literally thought.

The types of SDLC models are:

 Waterfall Model
 Spiral Model
 Prototype Model
 V-Model
 Iterative model
 Agile Model

2.1. Waterfall Model


The first introduced Process Model essentially is Waterfall Model hence it definitely is for all
intents and purposes basic mode of SDLC which for the most part is also known as mother of all
really other model, or so they actually thought. It essentially is sort of simple to kind of
understand and use, which essentially is quite significant. It for all intents and purposes is
referred to as a actually linear-sequential life cycle model where each phase should particularly
be executed fully before the very next phase can begin, or so they particularly thought. This
model actually is basically used for the project where there essentially are no basically uncertain
requirements and small, demonstrating that it kind of is very simple to basically understand and
use, very contrary to popular belief. Here testing kind of starts only when the development for all
intents and purposes is complete, which generally shows that this model generally is basically
used for the project where there literally are no generally uncertain requirements and small,
demonstrating that it for all intents and purposes is kind of simple to for the most part understand
and use, or so they for all intents and purposes thought. The phases specifically do not overlap in
waterfall model in a generally major way.

-Waterfall diagram:

8
When to use the waterfall model:

 Application definition is stable.


 The requirements are well known, clear and understood.
 Requirements should not has any ambiguous
 The project is smaller.
Advantages:

 In this model each stage are clearly defined.


 This model is simple and easy to understand and use.
 In this model execution happens sequentially.
 In this model phases are executed and completed one at a time and phases do not overlap.
 Waterfall model suits well for projects where requirements are well understood and for
shorter projects.
 In this model each phase process and results are documented well.
Disadvantages:

 This model is not suitable for complex and object-oriented projects.


 In this waterfall-model requirement changes are very difficult once an application is in
the testing phase.
 Changes are not allowed hence it is not suitable for moderate to high risk of changing
projects.
 After development of the product and if any deviations occurs then the cost of fixing
those issues are high and time consumption is more, because we need to update from
document till the code.
 Time consumption is more because the each phase should executed completely.
 Since it is executed in sequential order, the parallel deliverables are not possible.
 There is risk and uncertainty.
9
 Not suitable for the projects where requirements are at a moderate to high risk of
changing.
 There is no customer interaction during the development of the product.

2.2.Spiral Model
Whenever the models actually are basically dependent on each other, in this case we specifically
develop the application part by part, sort of contrary to popular belief. For example: An
application actually is divided into modules called module A, B, C, basically Spiral model
basically is flexible for requirement changes, or so they essentially thought. A software project
repeatedly goes through each phases in iterations hence it generally is called spiral, which
definitely is fairly significant. By using very spiral model customer can use the product at fairly
early stage, which particularly is quite significant.

-Spiral Modal:

10
In the definitely spiral model the requirement for all intents and purposes is divided into sub
modules as shown in above diagram these modules for all intents and purposes are depending on
each for all intents and purposes other in a fairly big way. For Module-A there will really be
definitely separate requirement, design, coding, and testing, and each and every module will goes
through these phases cycle, which specifically shows that in the fairly spiral model the
requirement particularly is divided into sub modules as shown in above diagram these modules
specifically are depending on each definitely other in a basically major way.

How to handle changes in spiral module?

Minor changes (these changes will not impact on the functionality of the application):

In case of minor changes we do not go for separate cycle, where as we combine it with next
module in same cycle.                                  

Major changes (these changes will impact on the functionality of the application):

In case of major changes we do go for separate cycle, since it may have impact on existing
functionalities.                             

Example for major changes:

Major Changes in A hence it taking separation iteration as shown below.

When to use Spiral model:

11
 Whenever there is long-term project then spiral model is useful
 Whenever user are not sure about their requirements
 When it is new product line
 If project is mission critical
 For medium to high-risk projects
Advantages of Spiral model:

 Flexible for changes: Any time can requirement changes are possible
 Since it is module to module development, clarity in process
 Customer can use the product at early stages at least the basic models
 Since customer can get the product hence there will be approval and documentation
control.
 Additional Functionality can be added at a later date.
Disadvantages of Spiral model:

 It is not suitable for short-term projects


 There are no parallel deliverables
 Can be a costly model to use
 If there is major issue time consumption will be more

2.3.Prototype Modal
In this Prototype Model before designing phase, a prototype for all intents and purposes is
developed, tested, reviewed and mostly approved by the customer, after that design will literally
be generally ready for coding, testing, installation and maintenance will takes place in a subtle
way. This prototype basically is prepared based on the customer requirements in a subtle way.
Prototype testing actually is checking for the required components for the most part are for all
intents and purposes present or not, showing how this prototype literally is prepared based on the
customer requirements in a very big way.

By using this prototype, customer can kind of understand the requirements of desired system
and also the customer can for the most part get an for all intents and purposes “actual feel” of the
system, pretty contrary to popular belief. It for the most part is an attractive idea for pretty
complex and sort of bigger systems., which basically is fairly significant.

-Prototype Modal:

12
This Prototype Model really is same as waterfall model, but in this model we need to
essentially develop prototype and customer interaction will mostly be there. Since there for the
most part is customer interaction there will for all intents and purposes be much less chance of
rejection, which specifically is quite significant.

When to use Prototype model:  

 Whenever the customer not clears about the requirement in this situation we generally go
for prototype model.
 If it is complex project then prototype model makes clear understand the requirement.
 Prototyping make sure that the customer constantly work with the system and provide a
feedback about the system.
13
Advantages of Prototype model:

 Customer satisfaction exists, because customer can feel the product at very early stage.
 If there is missing functionality can be identified easily
 There will be less chance of software rejection.
 Requirement changes are allowed.
 Due to customer approval we can find the errors at early stage.
 Customer involvement will be there in the development where its leads to better solutions
for any confusion / complexity / difficult functions
 The developed prototype can be re-used by developer and test engineer.
Disadvantages of Prototype model:

 There are no parallel deliverables


 It is a time consuming if customer ask for changes in prototype
 This methodology may increase the system complexity as scope of the system may
expand beyond original plans.
 The invested effort in the preparation of prototypes may be too much if not properly
monitored.
 Customer may get confused in the prototypes and real systems.

2.4.V-Modal
V-model specifically is SDLC model where process execution takes place in a very sequential
order in V-shape hence it named as v-model in a fairly big way. It mostly is same as waterfall
model where each phase must kind of complete and its output will really be the input for
particularly next phase, so it definitely is same as waterfall model where each phase must
complete and its output will really be the input for pretty next phase in a particularly big way. In
this model testing team will definitely involve at the stage of requirement only, demonstrating
that v-model particularly is SDLC model where process execution takes place in a really
sequential order in V-shape hence it named as v-model, which basically is fairly significant.
Testing of the product literally is planned along with a very corresponding development phase,
so in this model testing team will specifically involve at the stage of requirement only,
demonstrating that v-model actually is SDLC model where process execution takes place in a for
all intents and purposes sequential order in V-shape hence it named as v-model in a subtle way.
V-model definitely is also known as Verification and Validation model, so v-model kind of is
SDLC model where process execution takes place in a definitely sequential order in V-shape
hence it named as v-model, which for all intents and purposes is quite significant.

14
Requirements:

BRS (Business Requirement Specifications) / CRS (Customer Requirement Specification) this


document is prepared by business analyst / product analyst and SRS (System Requirement
Specification) is prepared by project manager or team lead.

At this stage development and testing team will review the CRS for any missing requirement and
prepare the required test document, they are User Accepting Test plan and User Accepting Test
case document.
15
At this stage they will review the SRS and prepare the required test document, they are System
Test plan and System Test case document.

At this stage they will review the HLD and prepare the required test document, they are System
Integration Test plan and System Integration Test case document.

At this stage they will review the LLD and prepare the required test document, they are
Component Test plan and Component Test case document.

At this stage developers starts coding and before handover application to testing team they will
do one round of testing is known as unit testing.

Unit testing / Whitebox testing / Glassbox testing/ Openbox testing:

This testing is done by the developers before handover the application to the testing team they
check each and every line of code written by them.

Component testing / Functional testing:

Testing each and every components of module independently is called functional testing.
16
System Integration Testing:

Testing the data flow/interface between the modules is known as system integration testing.

System testing:

checking the end to end flow of an application i.e. navigate through all the modules and check, if
the application is working as a whole or not.

User Acceptance Testing (UAT):

It is a testing done by the customer before accepting the product.

The high-level design (HLD): It is a blue print of the application,

it provide overview of solution, system, platform and process. It contains modules in the form of
flow diagram.

The low-level design (LLD):

It is also blue print where it provides detail description of flow diagram which has modules with
its components also.

The implementation:

In this phase, coding takes place. After completion of coding, the path of execution continues up
the right side of the V where the test plans developed at the beginning are come to use now.

Coding:

this is the phase where developers convert module design into code.

When to use the V-model:

 Whenever the project is small to medium sized and with clearly defined requirements.
17
 We use v-model in the case of complex project.

Advantages of V-model:

 In this module testing activities begins at very early stage i.e. at the stage of requirement.
Hence time consumption is less and also higher chance of success.

 Simple and easy to use.

 Requirement review is exist hence there is no the downward flow of the defects.

 Parallel deliverables are exists i.e. review and testing

 Test documents can be re-used

 Requirement changes are allowed

 Due to review process that is defects are found at early stage.

Disadvantages of V-model:

 It is costlier

 Lots of re-work will be there, if customer ask for changes

 If any modification is needed in midway, then the test documents and requirement
documents has to be updated.

 It is not much flexible for changes

2.5.Agile Modal

Agile model is a type of Incremental model points on adaptability process and customer
satisfaction by quick delivery of product to the customer. In this model the application is divided
into small incremental builds and these builds are given in iterations. Each iteration time duration

18
is about one to three weeks. The iteration contains cross functional teams working parallel on
many areas such as requirements analysis, planning, design, coding, unit testing, and UAT. A
working product is displayed to the customer at the end of the iteration. Customer is actively
involved because after every sprint there will be UAT(User Acceptance Testing).

-Agile diagram:

19
When to use:

 Whenever customer new changes are needed to be implemented


 Whenever customer need the project very early
 When there is complex project

Advantages of Agile model:

 Develops the product at very high speed


 Quality of product can be delivered due to frequent customer interaction
 More clarity in requirement
 Less communication gap between team members
 Regular adaptation to changing circumstances.
 Requirement changes are allowed
 Daily support between business team and developers.

Disadvantages:

 Very tight schedule for team members


 If two/more members are off then it will lead to project failure
 The project can take off track if the customer is not clear about his requirement /
outcome.
 It needs only experienced resources

3.The suitable SDLC modal for this project and explaint.

-For this project I think ‘spiral modal’ is the best choice for it, the reason are :

Spiral modal is one of the most flexible SDLC methodologies, the Spiral model takes a cue from
the Iterative model and its repetition; the project passes through four phases (planning, risk
analysis, engineering and evaluation) over and over in a “spiral” until completed, allowing for
multiple rounds of refinement.

The Spiral model is typically used for large projects. It enables development teams to build a
highly customized product, and incorporate user feedback early on in the project. Another
benefit of this SDLC model is risk management. Each iteration starts by looking ahead to
potential risks, and figuring out how best to avoid or mitigate them.

20
4.The risk and how to manage them

Failure of personnel - Recruitment of senior personnel, training confusion, team building, fully
staffed with different functions. Timetable and budget not implemented -Set up plans and
detailed evaluation; develop gradually; use the end of; follow the requirements, ... - Development
of incompatible functions - Thoroughly analyze the software organization and tasks; building
concepts; regular communication with users and early documentation for use ... -Inappropriate
user interface development - Need to analyze work, build templates first; usage characteristics
(function, style, workload) - Gold plating (add unnecessary requirements) - On request,
prototyping; cost-useful parsing; cost design.

Continue to change required hạn Limit the major change; information hiding; progression Lack
of external comfort components - Need to test, measure, check references, analyze compatibility.
Lack of requirements - Develop stable parts first; check for references; contract costs, ...
Performance issues Need to simulate, measure, test ... Requirement to exceed the response of
current technology

Identify the project's risks Present a plan to address each risk. Regularly update the list of risks,
plan and result monthly-Review the project on a monthly basis to highlight the status of risk,
compared with the status of the previous month-Initiative appropriate corrective actions.

5. The purpose of conducting a feasibility study for the project.

A feasibility study is used for the purpose of determining an idea's likelihood of success -
proving that it is a legitimate project, technically viable as well as financially legitimate. It also
shows us whether the project is worth the investment. A project is assessed as unfeasible because
of a variety of factors, perhaps because it requires too many resources. Using more resources for
a project when its feasibility is not clear could incur large opportunity costs, or the costs of
implementing the project more than the returns.

An appropriately designed feasibility study should be based on the past situation of the business
or the project itself, e.g. product or service description, financial statements, performance details
and management. policy, market research, financial data, compliance with the law, and tax
liability. Generally, such research is defined before engineering formulation and project
implementation.

21
-The benefit of Feasibility study for the project:

The importance of a feasibility study is based on the firm's desire to "get it right" before
allocating resources, time and money to the project. The feasibility study could uncover a few
new ideas that completely changed the landscape of a project. It is best to do a project feasibility
study before embarking on it, rather than doing it directly and then realizing it is not working at
all. Doing a feasibility study is always helpful when it gives you and your shareholders a full
picture of a proposed project's future possibilities.

22
-Here are some of the benefits of doing a feasibility study:

*Improved project team focus

*Identify new opportunities

*Provide valuable information for the decision to operate or not

*Help businesses narrow down alternatives

*Determine good reasons for implementing the project

*Consolidate success rates by evaluating on many different parameters

*Helping to make the right project decisions

*Identify reasons for not proceeding with the project

*In addition to the feasibility study approaches outlined above, some projects also require
analysis of constraints:

*Constraints within the project: technology, technology, budget, resources ...Constraints within
the business: financial situation, marketing, export ...

5.1.Technical feasibility

This assessment focuses on the technically available resources within the organization. It helps
the organization determine whether these technical resources are suitable for capacity and
whether the engineering team is able to apply new ideas into the system. Technical feasibility is
also related to an assessment of hardware, software as well as other technical needs.

5.2.Economic feasibility

Economic feasibility: This assessment is essentially related to the analysis of the cost / benefit
that the project brings, helping the business to determine the feasibility, costs and benefits
associated with the project. project before financial resources are "pumped in". It also serves as
an independent project appraisal and reinforces project credibility - helping business leaders
identify the positive economic benefits the project will bring in the future.

5.3. Organizational Feasibility

Organizational feasibility analysis is conducted to determine whether a proposed business has


sufficient management expertise, organizational competence, and resources to successfully
launch its business. Two key aspects to consider include management ability and resource
sufficiency.

23
6.References
1-Architects, I., Architects, I. and Architects, I., 2020. SDLC Models & Methodologies
[COMPLETE GUIDE]. [online] Innovativearchitects.com. Available at:
<https://www.innovativearchitects.com/KnowledgeCenter/basic-IT-systems/8-SDLC-
models.aspx> [Accessed 12 August 2020].

2-Stackify. 2020. What Is SDLC? Understand The Software Development Life Cycle. [online]
Available at: <https://stackify.com/what-is-sdlc/> [Accessed 12 August 2020].

3-www.javatpoint.com. 2020. SDLC Models - Javatpoint. [online] Available at:


<https://www.javatpoint.com/software-engineering-sdlc-models> [Accessed 12 August 2020].

4-Techopedia.com. 2020. What Is Software Development Life Cycle Model (SDLC)? - Definition


From Techopedia. [online] Available at:
<https://www.techopedia.com/definition/25976/software-development-life-cycle-model-sdlc>
[Accessed 12 August 2020].

5-Datarob.com. 2020. Understanding The Software Development Life Cycle | Datarob. [online]


Available at: <https://datarob.com/essentials-software-development-life-cycle/> [Accessed 12
August 2020].

6-2020. [online] Available at:


<https://www.researchgate.net/profile/Daniel_Port2/publication/237034014_Using_the_spiral_m
odel_and_MBASE_to_generate_new_acquisition_process_models_SAIV_CAIV_and_SCQAIV/
links/0c960532086573ee90000000.pdf> [Accessed 12 August 2020].

7-devpro. 2020. Sử Dụng Phương Pháp Giảm Thiểu Rủi Ro Trong Các Dự Án Công Nghệ
Thông Tin (Phần 2). [online] Available at: <https://www.devpro.edu.vn/su-dung-phuong-phap-
giam-thieu-rui-ro-trong-cac-du-an-cong-nghe-thong-tin-phan-2> [Accessed 12 August 2020].

8-model, S., 2020. Spiral Model. [online] IONOS Startupguide. Available at:


<https://www.ionos.com/startupguide/productivity/spiral-model/> [Accessed 12 August 2020].

9-Medium. 2020. 5 Types Of Feasibility Analysis. [online] Available at:


<https://medium.com/@businessplaceso3mdm/5-types-of-feasibility-analysis-
9bb67f574b79#:~:text=Organizational%20feasibility%20analysis%20is
%20conducted,management%20ability%20and%20resource%20sufficiency.> [Accessed 12
August 2020].

10-Investopedia. 2020. Considering A New Venture? Consider A Feasibility Study. [online]


Available at: <https://www.investopedia.com/terms/f/feasibility-study.asp#:~:text=A

24
%20feasibility%20study%20is%20an,of%20completing%20the%20project%20successfully.>
[Accessed 12 August 2020].

25

You might also like