You are on page 1of 11

PROGRAM TITLE: ……………………………………………

UNIT TITLE: …………………………………………………….

ASSIGNMENT NUMBER: …………………………………

ASSIGNMENT NAME: …………………………………….

SUBMISSION DATE: ……………………………………….

DATE RECEIVED: …………………………………………….

TUTORIAL LECTURER: ……………………………………

WORD COUNT: ……………………………………………..

STUDENT NAME: …………………………………………

STUDENT ID: …………………………………………….

MOBILE NUMBER: ……………………………………


Summative Feedback:

Internal verification:
I. Introduction
1. Software Development Lifecycle
a. Definition
- The Software Development Life Cycle (SDLC) is a structured process that enables the
production of high-quality, low-cost software, in the shortest possible production time. The goal
of the SDLC is to produce superior software that meets and exceeds all customer expectations
and demands. The SDLC defines and outlines a detailed plan with stages, or phases, that each
encompass their own process and deliverables. Adherence to the SDLC enhances development
speed and minimizes project risks and costs associated with alternative methods of production.

b. Phases of SDLC
- Planning phase
o The planning phase encompasses all aspects of project and product management. This
typically includes resource allocation, capacity planning, project scheduling, cost estimation,
and provisioning.
o During the planning phase, the development team collects input from stakeholders involved
in the project; customers, sales, internal and external experts, and developers. This input is
synthesized into a detailed definition of the requirements for creating the desired software.
The team also determines what resources are required to satisfy the project requirements, and
then infers the associated cost.
o Expectations are clearly defined during this stage as well; the team determines not only what
is desired in the software, but also what is NOT. The tangible deliverables produced from this
phase include project plans, estimated costs, projected schedules, and procurement needs.
- Coding phase
o The coding phase includes system design in an integrated development environment. It also
includes static code analysis and code review for multiple types of devices.
- Building Phase
o The building phase takes the code requirements determined earlier and uses those to begin
actually building the software.
- Testing phase
o The phase entails the evaluation of the created software. The testing team evaluates the
developed product(s) in order to assess whether they meet the requirements specified in the
‘planning’ phase.
o Assessments entail the performance of functional testing: unit testing, code quality testing,
integration testing, system testing, security testing, performance testing and acceptance
testing, as well as non-functional testing. If a defect is identified, developers are notified.
Validated (actual) defects are resolved, and a new version of the software is produced.
o The best method for ensuring that all tests are run regularly and reliably, is to implement
automated testing. Continuous integration tools assist with this need.
- Release phase
o The release phase involves the team packaging, managing and deploying releases across
different environments.
- Deploy Phase
o In the deployment phase, the software is officially released into the production environment.
- Operate Phase
o The operate phase entails the use of the software in the production environment.
- Monitor Phase
o In the monitor phase, various elements of the software are monitored. These could include the
overall system performance, user experience, new security vulnerabilities, an analysis of bugs
or errors in the system.

c. What are the SDLC models/methodologies?


- Waterfall
o Waterfall represents the oldest, simplest, and most structured methodology. Each phase
depends on the outcome of the previous phase, and all phases run sequentially. This model
provides discipline and gives a tangible output at the end of each phase. However, this model
doesn’t work well when flexibility is a requirement. There is little room for change once a
phase is deemed complete, as changes can affect the cost, delivery time, and quality of the
software.
- Agile
o The agile methodology produces ongoing release cycles, each featuring small, incremental
changes from the previous release. At each iteration, the product is tested. The agile model
helps teams identify and address small issues in projects before they evolve into more
significant problems. Teams can also engage business stakeholders and get their feedback
throughout the development process.
- Lean
o The lean methodology for software development is inspired by lean manufacturing practices
and principles. The lean principles encourage creating better flow in work processes and
developing a continuous improvement culture. The seven lean principles are:
 Eliminate waste
 Amplify learning
 Make decisions as late as possible
 Deliver as fast as possible
 Empower your team
 Build integrity in
 Build holistically
- Iterative
o In the spiral development model, the development process is driven by the unique risk
patterns of a project. The development team evaluates the project and determines which
elements of the other process models to incorporate.
- V-Shaped
o In the V-shaped model, verification phases and validation phases are run in parallel. Each
verification phase is associated with a validation phase, and the model is run in a V-shape,
where each phase of development has an associated phase of testing.

2. Sequential SDLC Model


a. Model A (WATERFALL MODEL)
- Definition: Sequential models such as waterfall model depend on intensive periods of
collecting and refining the requirements for a product before design and development activity
which will take place. The products which are developed using these models are planned to
complete when released to customers. The waterfall model is the first process model to be
introduced. It is very simple and easy to understand and also to use. In this model each phase
will be completed fully before the next phase. This type of software model is used for small
projects and also which have doubtful or uncertain requirements.
- Stages of WATERFALL MODEL

o Requirements gathering, plan and Requirement Analysis: This is the first and most
important phase where requirements are collected by the business analyst and analysed by the
team. During this phase the requirements are documented and whatever the clarifications are
required, they are gathered.
o System design: The architect and the senior team members will start working on the design,
the high level and low-level designs for the project. The architect creates architecture
diagrams in high level and low-level design document.
o Implementation: The development team works on developing the code for the project. They
take the design and make sure that the solution follows the design chosen by the architect.
The application includes many security features and audit logging features.
o Testing: The team tests the complete application and tries to identify any defects. These
defects will be fixed by the developers and the testing team tests to makes sure that the defect
is fixed.
o Deployment: The team builds as well as installs the application in the servers. Some of the
high-level activities include installing OS in servers, security patches, installing web servers
and application servers and databases.
o Maintenance: During this phase, the team focuses on smoothly running of the application on
the servers without any downtime.
- Advantages and disadvantages:
o Advantages:
 This model is very simple to use and understand.
 It is very easy to manage because of its rigidity each phase has specific deliverables
and also review process
o Disadvantages:
 No working software is developed until late during the life cycle.
 It has high number of risks and uncertainty.

b. Model B (V-MODEL)
- Definition: V-model is considered as a highly disciplined SDLC model where there is a testing
phase corresponding to each development phase. It is called as an extension to waterfall model.
Here testing at each development stage is done through sequential way. It is called as
verification model. Consider an example, assume you are assigned a task to develop custom
software for the client. Apart from your technical background, what sequence of steps you
follow to achieve that task can be explained as:
- Stages of V-MODEL:
o Requirement gathering: we can collect much information and details about the specific
software.
o Design stage: we try to plan possible programming language and database language like
oracle suitable for the project and also some functions and architecture.
o Build stage: After design we start building the software or developing the software with
suitable codes.
o Test stage: we test the software and verify it for the defects and fix it.
o Deployment stage: Irrespective of the environment we deploy the application.
o Maintenance stage: Once the system is ready to use we may change the code as per the
customer request later.
- Advantages and disadvantages:
o Advantages:
 Simple to learn and use.
 Avoids the downward flow of the defects.
o Disadvantages:
 It is very rigid and not flexible.
 If any changes have to be done in the middle then documents and requirement
document need to be updated.

3. Iterative Model
- Definition: The iterative process model is a software development life cycle (SDLC) approach in which
the initial development work is conducted based on initial requirements that are clearly defined, and
subsequent features are added to this base software product through iterations until the final system
is completed.
a. Model A

- Stages of Iterative Model


o Requirement and Planning Stage: During this phase, the business requirements are
collected, and an analyst determines whether or not they will be met within the allocated
budget. It is used to layout the business needs in detail and the System information (hardware
or software) is gathered and evaluated for feasibility.
o Design Stage: In this phase, the project team gets the complete set of requirements to begin
their work in a particular direction. They use different figures like a data flow diagram, class
diagram, activity diagram, state transition diagram, etc to get a clear understanding of the
software design and help them proceed with the development. Developers come up with
many potential solutions based on their analysis. Additionally, the size and criticality of the
project is also an important factor in determining the level and complexity of design for the
project.
o Coding Stage: The actual construction of the system begins at this point in the project. This
stage will be guided by the analysis and design resulted from the Design Stage. All of the
requirements, planning, and design plans are executed and coded. The developer will
implement the chosen design using predetermined coding and metrics standards. During the
code development, they must implement a unit test at each level. This stage should aim to
achieve the goal of developing fully functional, testable system for that iteration. Depending
on the project, the complexity of efforts and time spent on this iteration will vary.
o Testing Stage: This step involves testing the current build iteration to a set of standards and
norms to see if it meets them. Performance testing, stress testing, security testing,
requirements testing, usability testing, multi-site testing, disaster recovery testing, and so on
are all examples of this type of testing. A developer or a tester has to ensure that fixing one
bug does not lead to emergence of additional bugs in the system. The tester can write new test
cases or reuse ones from earlier builds, but testing is a top priority because any errors would
affect the software’s specification thereby impacting the business. We can also check in with
the project stakeholders to run some tests and inquire about any feedback they may have.
o Evaluation Stage: This is the last stage of the iterative model. After all the processes are
complete, the system constructed up to this point is thoroughly evaluated. The system is
examined by the development team, stakeholders, and other teams responsible for developing
the project to see if the outcomes satisfy their expectations. A new requirement plan is
produced and implemented as part of the next iteration cycle based on this.
- Advantages and disadvantages:
o Advantages: Before using the Iterative model in the Software Development Life Cycle
(SDLC), it is critical to understand its benefits. The most significant benefit of this model is
that it is adopted early in the software development process, allowing developers and testers
to identify functional or design faults as early as possible, allowing them to take corrective
action on a restricted budget and mitigate risks. Other advantages or benefits of this model
include:
 In an iterative paradigm, less effort is spent documenting and more time is allocated to
design.
 It is easily adjustable and flexible to the projects and client’s changing requirements.
 In comparison to other process models, this paradigm is significantly less expensive to
change requirements as we work on developing the project iteratively once the
requirements are frozen.
 The end-user can swiftly provide input after each iteration, which can subsequently be
incorporated into the system thereby improving the experience of the application.
 Early in the software development life cycle, some working functionality can be
produced and released to the end users..
 It is possible to arrange parallel development since the iterations occurs
simultaneously.
 Risks are recognized and resolved as early as possible thereby making each iteration
readily controllable.
 Since this model has smaller iterations, it makes testing and debugging simpler.
 When showing sketches and blueprints of a product to end users for feedback, it is
possible to obtain trustworthy user feedback.
o Disadvantages: Although the iterative paradigm is extremely beneficial, it does have some
flaws and limitations. Furthermore, since every requirement is not collected at the start of the
entire project’s life cycle, questions about system structure or outline may arise at later stages.
Following is some of the disadvantages associated with the iterative model:
 Although the cost of change is lower, it is not well suited to constantly shifting needs.
 There is a need for proper management.
 If someone is looking to use this model for smaller projects then the iterative model is
not the correct choice as it may not be possible or realistic to break down small
projects into more smaller parts.
 This model requires highly skilled resources to work on the analysis part of the project
to avoid risk.
 Since all the requirements are not gathered well in advance, problems with the system
design may arise.
 The entire procedure is difficult to manage.
4. Risk Management in SDLC
- Risk is the potential harm that may arise from a current process or a future event. It is not
possible to reduce risk to zero, therefore every organization operates in a risk environment with
varying degrees of risk in different areas. Risk management is all about managing risks by
identifying and addressing them. It helps the organizations to perform a cost benefit analysis of
the cost to protect an asset vs. the cost when it gets compromised or is not available. A simple
example can be a car security system. If the cost to get the car security system is greater than the
value of the assets getting protected, then it is not worth a deal’s is a standard framework for
system development which includes various phases as illustrated in Figure 1 below
- Risk management means preventing and minimizing risk. First, you must define and plan. Then,
be ready to act when risks arise, drawing on the experience and knowledge of the entire team to
minimize the impact on the project.
- Risk management includes the following tasks:
o Identify risks and their drivers
o Classify and prioritize risks
o Plan to link each risk to mitigation
o Monitor risk factors in the project
o Take mitigating action if there is a risk
o Communicate risk status throughout the project

You might also like