Unit-5.2 LM-2
Unit-5.2 LM-2
Unit-5.2 LM-2
SOFTWARE DEVELOPMENT
Phases of application lifecycle management - Software Development
Methodologies - Web Page development.
1. Waterfall Model
Waterfall model is an example of a Sequential model. In this model, the software
development activity is divided into different phases and each phase consists of a series of tasks
and has different objectives.
Waterfall model was the first model which was widely used in the software industry. It is
divided into phases and the output of one phase becomes the input of the next phase. It is
mandatory for a phase to be completed before the next phase starts. In short, there is no
overlapping in the Waterfall model.
Phases & Activities:
S.No Phase Activities Performed Deliverables
1 Requirement 1. Capture all the requirements. ● RUD (Requirements
Analysis 2. Do brainstorming and walkthrough Understanding
to understand the requirements. Document)
3. Do the requirements feasibility test
to ensure that the requirements are
testable or not.
2 System Design 1. As per the requirements, create the ● HLD (High Level
design Design document)
2. Capture the hardware / software ● LLD (Low level
requirements. design document)
3. Document the designs
3 Implementation 1. As per the design create the ● Programs
programmes / code ● Unit test cases and
2. Integrate the codes for the next results
phase.
3. Unit testing of the code
4 System Testing 1. Integrate the unit tested code and ● Test cases
test it to make sure if it works as ● Test reports
expected. 2. Perform all the testing ● Defect reports
activities (Functional and ● Updated matrices.
nonfunctional) to make sure that the
system meets the requirements.
3. In case of any anomaly, report it.
4. Track your progress on testing
through tools like traceability metrics,
ALM
5. Report your testing activities.
5 System Deployment 1. Make sure that the environment is ● User Manual
up
2. Make sure that there are no defects
open. ● Environment definition/
3. Make sure that the test exit criteria Specification
are met.
4. Deploy the application in the
respective environment.
5. Perform a sanity check in the
environment after the application is
deployed to ensure the application
does not break.
6 System maintenance 1. Make sure that the application is ● User Manual
up and running in the respective ● List of production tickets
environment. ● List of new features
2. Incase user encounters and defect, implemented.
make sure to note and fix the issues
faced.
3. In case any issue is fixed; the
updated code is deployed in the
environment.
4.The application is always enhanced
to incorporate more features, update
the environment with the latest
features
Advantages
● Simple and easy to understand and use.
● For smaller projects, the waterfall model works well and yields the appropriate results.
● Since the phases are rigid and precise, one phase is done one at a time, it is easy to
maintain.
● The entry and exit criteria are well defined, so it is easy and systematic to proceed with
quality.
● Results are well documented.
Disadvantages
● Cannot adopt the changes in requirements
● It becomes very difficult to move back to the phase. For example, if the application has
now moved to the testing stage and there is a change in requirement, It becomes difficult
to go back and change it.
● Delivery of the final product is late as there is no prototype that is demonstrated
immediately.
● For bigger and more complex projects, this model is not good as the risk factor is higher.
● Not suitable for projects where requirements are changed frequently.
● Does not work for long and ongoing projects.
● Since the testing is done at a later stage, it does not allow identifying the challenges and
risks in the earlier phase so the risk mitigation strategy is difficult to prepare.
2. Incremental Model
Incremental Model is a process of software development where requirements are broken
down into multiple standalone modules of software development cycle.
Incremental development is done in steps from analysis design, implementation,
testing/verification, maintenance.
Each iteration passes through the requirements, design, coding and testing phases. And
each subsequent release of the system adds function to the previous release until all designed
functionality has been implemented.
The system is put into production when the first increment is delivered.
The first increment is often a core product where the basic requirements are addressed,
and supplementary features are added in the next increments.
Once the core product is analyzed by the client, there is plan development for the next
increment.
Advantages:
● The software will be generated quickly during the software life cycle
● It is flexible and less expensive to change requirements and scope
● Throughout the development stages changes can be done
● This model is less costly compared to others
● A customer can respond to each building
● Errors are easy to be identified
Disadvantages:
● It requires a good planning designing
● Problems might cause due to system architecture as such not all requirements collected up
front for the entire software lifecycle
● Each iteration phase is rigid and does not overlap each other
● Rectifying a problem in one unit requires correction in all the units and consumes a lot of
time
3. Spiral Model
The spiral model combines the idea of iterative development with the systematic, controlled
aspects of the waterfall model.
It is a combination of iterative development process model and sequential linear
development model i.e. the waterfall model with a very high emphasis on risk analysis.
Advantages:
It allows incremental releases of the product or incremental refinement through each
iteration around the spiral.
4. Agile Model
Advantages:
● Customer satisfaction by rapid, continuous delivery of useful software.
● People and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.
● Working software is delivered frequently (weeks rather than months).
● Face-to-face conversation is the best form of communication.
● Close, daily cooperation between business people and developers.
● Continuous attention to technical excellence and good design.
● Regular adaptation to changing circumstances.
● Even late changes in requirements are welcomed
Disadvantages:
● In case of some software deliverables, especially the large ones, it is difficult to assess the
effort required at the beginning of the software development life cycle.
● There is lack of emphasis on necessary designing and documentation.
● The project can easily get taken off track if the customer representative is not clear what
final outcome that they want.
● Only senior programmers are capable of taking the kind of decisions required during the
development process. Hence it has no place for newbie programmers, unless combined
with experienced resources.