0% found this document useful (0 votes)
29 views18 pages

Practical 1 2

Uploaded by

Vrajkumar Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views18 pages

Practical 1 2

Uploaded by

Vrajkumar Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 18

SOFTWARE ENGINEERING

PRACTICAL : 01

Aim : Study of Software Development Life Cycle (SDLC) & analyzing


various activities Conducted at various phases.

Objective : To study the Software Development Life Cycle (SLDC) and study
of different SLDC models.

Description :
Software Development Life Cycle (SDLC):
Software Development Life Cycle (SDLC) is a framework that defines the steps involved in
the development of software at each phase. It covers the detailed plan for building, deploying
and maintaining the software.

SDLC defines the complete cycle of development i.e. all the tasks involved in planning,
creating, testing, and deploying a Software Product.

ENROLLMENT NUMBER : 2101201193 Page|1


SOFTWARE ENGINEERING

SDLC is a process that defines the various stages involved in the development of software for
delivering a high-quality product. SDLC stages cover the complete life cycle of a software
i.e. from inception to retirement of the product.

Adhering to the SDLC process leads to the development of the software in a systematic and
disciplined manner.

Purpose of SDLC is to deliver a high-quality product which is as per the customer’s


requirement.

Phases of SDLC Cycle :


 Requirement gathering and analysis
 Design
 Implementation or coding
 Testing
 Deployment
 Maintenance

1. Requirement Gathering and Analysis :


During this phase, all the relevant information is collected from the customer to develop a
product as per their expectation. Any ambiguities must be resolved in this phase only.

Business analyst and Project Manager set up a meeting with the customer to gather all the
information like what the customer wants to build, who will be the end-user, what is the
purpose of the product. Before building a product a core understanding or knowledge of
the product is very important.

ENROLLMENT NUMBER : 2101201193 Page|2


SOFTWARE ENGINEERING

For Example, A customer wants to have an application which involves money


transactions. In this case, the requirement has to be clear like what kind of transactions
will be done, how it will be done, in which currency it will be done, etc.

Once the requirement gathering is done, an analysis is done to check the feasibility of the
development of a product. In case of any ambiguity, a call is set up for further discussion.

Once the requirement is clearly understood, the SRS (Software Requirement


Specification) document is created. This document should be thoroughly understood by
the developers and also should be reviewed by the customer for future reference.

2. Design :
In this phase the system and software design is prepared from the requirement
specifications which were studied in the first phase. System Design helps in specifying
hardware and system requirements and also helps in defining overall system architecture.
The system design specifications serve as input for the next phase of the model.

In this phase the testers comes up with the Test strategy, where they mention what to test,
how to test.

3. Implementation or Coding :
On receiving system design documents, the work is divided in modules/units and actual
coding is started. Since, in this phase the code is produced so it is the main focus for the
developer. This is the longest phase of the software development life cycle.

4. Testing :
Testing starts once the coding is complete and the modules are released for testing. In this

ENROLLMENT NUMBER : 2101201193 Page|3


SOFTWARE ENGINEERING

phase, the developed software is tested thoroughly and any defects found are assigned to
developers to get them fixed.

Retesting, regression testing is done until the point at which the software is as per the
customer’s expectation. Testers refer SRS document to make sure that the software is as
per the customer’s standard.

5. Deployment :
After successful testing the product is delivered / deployed to the customer for their use.

As soon as the product is given to the customers they will first do the beta testing. If any
changes are required or if any bugs are caught, then they will report it to the engineering
team. Once those changes are made or the bugs are fixed then the final deployment will
happen.

6. Maintenance :
Once when the customers starts using the developed system then the actual problems
comes up and needs to be solved from time to time. This process where the care is taken
for the developed product is known as maintenance.

After the deployment of a product on the production environment, maintenance of the


product i.e. if any issue comes up and needs to be fixed or any enhancement is to be done
is taken care by the developers.

ENROLLMENT NUMBER : 2101201193 Page|4


SOFTWARE ENGINEERING

Software Development Life Cycle Models :


A software life cycle model is a descriptive representation of the software development cycle.
SDLC models might have a different approach but the basic phases and activity remain the
same for all the models. There are several SDLC Models listed below :

 Waterfall Model
 V – Shaped Model
 Prototype Model
 Spiral Model
 Iterative Incremented Model
 Big Bang Model
 Agile Model

 Waterfall Model :
Waterfall model is the very first model that is used in SDLC. It is also known as the linear
sequential model.

In this model, the outcome of one phase is the input for the next phase. Development of
the next phase starts only when the previous phase is complete.

 First, Requirement gathering and analysis is done. Once the requirement is freeze then
only the System Design can start. Herein, the SRS document created is the output for
the Requirement phase and it acts as an input for the System Design.
 In System Design Software architecture and Design, documents which act as an input
for the next phase are created i.e. Implementation and coding.
 In the Implementation phase, coding is done and the software developed is the input
for the next phase i.e. testing.

ENROLLMENT NUMBER : 2101201193 Page|5


SOFTWARE ENGINEERING

 In the testing phase, the developed code is tested thoroughly to detect the defects in
the software. Defects are logged into the defect tracking tool and are retested once

fixed. Bug logging, Retest, Regression testing goes on until the time the software is in
go-live state.
 In the Deployment phase, the developed code is moved into production after the sign
off is given by the customer.
 Any issues in the production environment are resolved by the developers which come
under maintenance.

Advantages of Waterfall Model :


 Waterfall model is the simple model which can be easily understood and is the one in
which all the phases are done step by step.

ENROLLMENT NUMBER : 2101201193 Page|6


SOFTWARE ENGINEERING

 Deliverables of each phase are well defined, and this leads to no complexity and
makes the project easily manageable.

Disadvantages of Waterfall Model :


 Waterfall model is time-consuming & cannot be used in the short duration projects as
in this model a new phase cannot be started until the ongoing phase is completed.
 Waterfall model cannot be used for the projects which have uncertain requirement or
wherein the requirement keeps on changing as this model expects the requirement to
be clear in the requirement gathering and analysis phase itself and any change in the
later stages would lead to cost higher as the changes would be required in all the
phases.

 Prototype Model :
The prototype model is a model in which the prototype is developed prior to the actual
software.

Prototype models have limited functional capabilities and inefficient performance when
compared to the actual software. Dummy functions are used to create prototypes. This is a
valuable mechanism for understanding the customers’ needs.

Software prototypes are built prior to the actual software to get valuable feedback from the
customer. Feedbacks are implemented and the prototype is again reviewed by the customer
for any change. This process goes on until the model is accepted by the customer.

ENROLLMENT NUMBER : 2101201193 Page|7


SOFTWARE ENGINEERING

Once the requirement gathering is done, the quick design is created and the prototype
which is presented to the customer for evaluation is built.

Customer feedback and the refined requirement is used to modify the prototype and is
again presented to the customer for evaluation. Once the customer approves the prototype,

It is used as a requirement for building the actual software. The actual software is build
using the Waterfall model approach.

Advantages of Prototype Model :


 Prototype model reduces the cost and time of development as the defects are found
much earlier.
 Missing feature or functionality or a change in requirement can be identified in the
evaluation phase and can be implemented in the refined prototype.
 Involvement of a customer from the initial stage reduces any confusion in the
requirement or understanding of any functionality.

Disadvantages of Prototype Model :

ENROLLMENT NUMBER : 2101201193 Page|8


SOFTWARE ENGINEERING

 Since the customer is involved in every phase, the customer can change the
requirement of the end product which increases the complexity of the scope and may
increase the delivery time of the product.

 Spiral Model :
The Spiral Model includes iterative and prototype approach.

Spiral model phases are followed in the iterations. The loops in the model represent the
phase of the SDLC process i.e. the innermost loop is of requirement gathering & analysis
which follows the Planning, Risk analysis, development, and evaluation. Next loop is
Designing followed by Implementation & then testing.

Spiral Model has four phases:


 Planning
 Risk Analysis
 Engineering
 Evaluation

(i) Planning :

ENROLLMENT NUMBER : 2101201193 Page|9


SOFTWARE ENGINEERING

The planning phase includes requirement gathering wherein all the required
information is gathered from the customer and is documented. Software requirement
specification document is created for the next phase.

(ii) Risk Analysis :


In this phase, the best solution is selected for the risks involved and analysis is done by
building the prototype.

For Example, the risk involved in accessing the data from a remote database can be that
the data access rate might be too slow. The risk can be resolved by building a prototype
of the data access subsystem.

(iii) Engineering :
Once the risk analysis is done, coding and testing are done.

(iv) Evaluation :
Customer evaluates the developed system and plans for the next iteration.

Advantages of Spiral Model:


 Risk Analysis is done extensively using the prototype models.
 Any enhancement or change in the functionality can be done in the next iteration.

Disadvantages of Spiral Model:


 The spiral model is best suited for large projects only.
 The cost can be high as it might take a large number of iterations which can lead to
high time to reach the final product.

ENROLLMENT NUMBER : 2101201193 Page|10


SOFTWARE ENGINEERING

PRACTICAL : 02

Aim : Compare and Contrast all the process model in tabular view.

Objective : To study and compare all the SDLC process models in a tabular
format.

Description :

Parameter ▼ Waterfall Incremental Prototype RAD


Process Model ► Model Model Model Model
Clear
Requirements Initial Level Initial Level Medium Level Initial Level
Specifications
Feedback from user No No Yes No
Speed to change Low High Medium No
Predictability Low Low High Low
Risk Identification At Initial Level No No No
Practically No Low Medium Low

ENROLLMENT NUMBER : 2101201193 Page|11


SOFTWARE ENGINEERING

Implementation
Systematic Iterative Priority on Use
Loom Sequence Sequence Customer Ready-made
Feedback Component
Any variation done Yes V-Model No No No
Understandability Simple Intermediate Intermediate Intermediate
Requirement Core Product Clear Idea Clean Idea
Precondition clearly should clearly of Quick of reused
defined defined design Component
Usability Basic Medium High Medium
Customer Priority Nil Nil Intermediate Nil
Industry Approach Basic Basic Medium Medium
Cost Low Low High Very High
Resource Yes Yes Yes Yes
Organization
Elasticity No No Yes Yes

Parameter ▼ Spiral Agile XP


Process Model ► Model Model Programming
Clear
Requirements Initial Level Change Incrementally Initial Level
Specifications
Feedback from user No No Yes
Speed to change High High High
Predictability Medium High High
Risk Identification Yes Yes Yes
Practically Medium High High
Implementation
Identification Highly customer Customer
Loom of risk at satisfaction and satisfaction and
each stage Incremental Incremental
development Development
Any variation done Yes No No
Understandability Hard Much Complex Intermediate
Precondition No No No
Usability Medium Most used now-a-days Medium
Customer Priority Intermediate High Intermediate
Industry Approach Medium High Medium
Cost Expensive Much Expensive High
Resource No No Yes
Organization

ENROLLMENT NUMBER : 2101201193 Page|12


SOFTWARE ENGINEERING

Elasticity No Very High Medium

PRACTICAL : 03

Aim : Decide Software Process Model for your own project. Brief about
process model and justify selection of process model for your project.

Objective : To study and justify the Agile Software Development Model.

Description :
Agile Software Development Model :
Agile SDLC model is a combination of iterative and incremental process models with focus
on process adaptability and customer satisfaction by rapid delivery of working software
product. Agile Methods break the product into small incremental builds. These builds are
provided in iterations. Each iteration typically lasts from about one to three weeks. Every
iteration involves cross functional teams working simultaneously on various areas like :

 Planning

ENROLLMENT NUMBER : 2101201193 Page|13


SOFTWARE ENGINEERING

 Requirements Analysis
 Design
 Coding
 Unit Testing and
 Acceptance Testing

At the end of the iteration, a working product is displayed to the customer and important
stakeholders.

Principles of Agile Model :

 Individuals and interactions : In Agile development, self-organization and motivation


are important, as are interactions like co-location and pair programming.
 Working software : Demo working software is considered the best means of
communication with the customers to understand their requirements, instead of just
depending on documentation.
 Customer collaboration : As the requirements cannot be gathered completely in the
beginning of the project due to various factors, continuous customer interaction is very
important to get proper product requirements.
 Responding to change : Agile Development is focused on quick responses to change
and continuous development.

Various Agile SDLC Models / Methods :

ENROLLMENT NUMBER : 2101201193 Page|14


SOFTWARE ENGINEERING

 Crystal : Crystal Agile methodology places a strong emphasis on fostering effective


communication and collaboration among team members, as well as taking into account
the human elements that are crucial for a successful development process. This
methodology is particularly beneficial for projects with a high degree of uncertainty,
where requirements tend to change frequently.

 Atern : This methodology is tailored for projects with moderate to high uncertainty
where requirements are prone to change frequently. Its clear-cut roles and responsibilities
focus on delivering working software in short time frames. Governance practices set it
apart and make it an effective approach for teams and projects.

 Feature-driven development : This approach is implemented by utilizing a series of


techniques, like creating feature lists, conducting model evaluations, and implementing a
design-by-feature method, to meet its goal. This methodology is particularly effective in
ensuring that the end product is delivered on time and that it aligns with the requirements
of the customer.

 Scrum : This methodology serves as a framework for tackling complex projects and
ensuring their successful completion. It is led by a Scrum Master, who oversees the
process, and a Product Owner, who establishes the priorities. The Development Team,
accountable for delivering the software, is another key player.

 Extreme programming (XP) : It uses specific practices like pair programming,
continuous integration, and test-driven development to achieve these goals. Extreme
programming is ideal for projects that have high levels of uncertainty and require
frequent changes, as it allows for quick adaptation to new requirements and feedback.

ENROLLMENT NUMBER : 2101201193 Page|15


SOFTWARE ENGINEERING

 Lean development : It is rooted in the principles of lean manufacturing and aims to
streamline the process by identifying and removing unnecessary steps and activities. This
is achieved through practices such as continuous improvement, visual management, and
value stream mapping, which helps in identifying areas of improvement and
implementing changes accordingly. 

 Unified Process : Unified Process is a methodology that can be tailored to the specific
needs of any given project. It combines elements of both waterfall and Agile
methodologies, allowing for an iterative and incremental approach to development. This
means that the UP is characterized by a series of iterations, each of which results in a
working product increment, allowing for continuous improvement and the delivery of
value to the customer.

Characteristics of Agile Model :

1. Agile processes must be adaptable to technical and environmental changes. That means if
any technological changes occur, then the agile process must accommodate it.
2. The development of agile processes must be incremental. That means, in each
development, the increment should contain some functionality that can be tested and
verified by the customer.
3. The customer feedback must be used to create the next increment of the process.
4. The software increment must be delivered in a short span of time.
5. It must be iterative so that each increment can be evaluated regularly.

When to use Agile Model :

 When frequent modifications need to be made, this method is implemented.


 When high qualified and experienced team is available.

ENROLLMENT NUMBER : 2101201193 Page|16


SOFTWARE ENGINEERING

 When customer is ready to have a meeting with team all the time.
 When the project needs to be delivered quickly.
 Projects with few regulatory requirements or not certain requirements.
 Projects utilizing a less-than-strict current methodology
 Those undertakings where the product proprietor is easily reachable
 Flexible project schedules and budgets.

Advantages of Agile Model :

 Flexibility : Agile software development is highly flexible and can easily adapt to
changes in requirements, design, and scope.

 Customer Involvement : Agile software development encourages frequent customer


involvement, which can result in a final product that better meets their needs.
 Continuous Delivery : Agile software development typically includes continuous
delivery, which means that working software is delivered to the customer on a regular
basis.
 Collaboration : Agile software development emphasizes collaboration between team
members, which can lead to better communication and problem-solving.
 Early and Frequent Testing : Agile software development includes early and frequent
testing, which can help to catch issues and bugs early in the development process.

Disadvantages of Agile Model :

 Lack of Predictability: Agile software development can be less predictable than


traditional methods, with less certainty about the final product and its delivery schedule.

ENROLLMENT NUMBER : 2101201193 Page|17


SOFTWARE ENGINEERING

 Limited Documentation: Agile software development often relies less on


documentation, which can make it difficult to track changes and understand the system
architecture.
 Time and Resource Constraints: Agile software development requires a significant
commitment of time and resources from all team members.
 Less Emphasis on Planning: Agile software development often places less emphasis on
detailed planning, which can result in scope creep and delays.
 Resistance to Change: Agile software development requires a significant cultural shift
and may be difficult for some team members and organizations to adopt.

ENROLLMENT NUMBER : 2101201193 Page|18

You might also like