Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Software Engineering Lecture 1.1.5

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

Agile software Development

Agile is a time-bound, iterative approach to software delivery that builds


software incrementally from the start of the project, instead of trying to
deliver all at once.
Why Agile?
Technology in this current era is progressing faster than ever, enforcing
the global software companies to work in a fast-paced changing
environment. Because these businesses are operating in an ever-
changing environment, it is impossible to gather a complete and
exhaustive set of software requirements. Without these requirements, it
becomes practically hard for any conventional software model to work.
The conventional software models such as Waterfall Model that depends
on completely specifying the requirements, designing, and testing the
system are not geared towards rapid software development. As a
consequence, a conventional software development model fails to
deliver the required product.
This is where the agile software development comes to the rescue. It was
specially designed to curate the needs of the rapidly changing
environment by embracing the idea of incremental development and
develop the actual final product.
Characteristics of Agile Model
1. Highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
2. It welcomes changing requirements, even late in development.
3. Deliver working software frequently, from a couple of weeks to a
couple of months, with a preference to the shortest timescale.
4. Build projects around motivated individuals. Give them the
environment and the support they need, and trust them to get the
job done.
5. Working software is the primary measure of progress.
6. Simplicity the art of maximizing the amount of work not done is
essential.
7. The most efficient and effective method of conveying information
to and within a development team is face-to-face conversation.

Development Process in Agile


 In Agile development, Design and Implementation are considered
to be the central activities in the software process.
 Design and Implementation phase also incorporate other activities
such as requirements elicitation and testing into it.
 In an agile approach, iteration occurs across activities. Therefore,
the requirements and the design are developed together, rather than
separately.
 The allocation of requirements and the design planning and
development as executed in a series of increments. In contrast with
the conventional model, where requirements gathering needs to be
completed in order to proceed to the design and development
phase, it gives Agile development an extra level of flexibility.
 An agile process focuses more on code development rather than
documentation.
Advantages:
 Deployment of software is quicker and thus helps in increasing the
trust of the customer.
 Can better adapt to rapidly changing requirements and respond
faster.
 Helps in getting immediate feedback which can be used to improve
the software in the next increment.
 People – Not Process. People and interactions are given a higher
priority rather than process and tools.
 Continuous attention to technical excellence and good design.
Disadvantages:
 In case of large software projects, it is difficult to assess the effort
required at the initial stages of the software development life cycle.
 The Agile Development is more code focused and produces less
documentation.
 Agile development is heavily depended on the inputs of the
customer. If the customer has ambiguity in his vision of the final
outcome, it is highly likely for the project to get off track.
 Face to Face communication is harder in large-scale organizations.
 Only senior programmers are capable of taking the kind of
decisions required during the development process. Hence it’s a
difficult situation for new programmers to adapt to the
environment.
V Model
The V-model is a type of SDLC model where process executes in a
sequential manner in V-shape. It is also known as Verification and
Validation model. It is based on the association of a testing phase for
each corresponding development stage. Development of each step
directly associated with the testing phase. The next phase starts only
after completion of the previous phase i.e. for each development activity,
there is a testing activity corresponding to it.

Verification: It involves static analysis technique (review) done without


executing code. It is the process of evaluation of the product
development phase to find whether specified requirements meet.
Validation: It involves dynamic analysis technique (functional, non-
functional), testing done by executing code. Validation is the process to
evaluate the software after the completion of the development phase to
determine whether software meets the customer expectations and
requirements.
So V-Model contains Verification phases on one side of the Validation
phases on the other side. Verification and Validation phases are joined
by coding phase in V-shape. Thus it is called V-Model.
Design Phase:
 Requirement Analysis: This phase contains detailed
communication with the customer to understand their requirements
and expectations. This stage is known as Requirement Gathering.
 System Design: This phase contains the system design and the
complete hardware and communication setup for developing
product.
 Architectural Design: System design is broken down further into
modules taking up different functionalities. The data transfer and
communication between the internal modules and with the outside
world (other systems) is clearly understood.
 Module Design: In this phase the system breaks dowm into small
modules. The detailed design of modules is specified, also known
as Low-Level Design (LLD).
Testing Phases:
 Unit Testing: Unit Test Plans are developed during module design
phase. These Unit Test Plans are executed to eliminate bugs at
code or unit level.
 Integration testing: After completion of unit testing Integration
testing is performed. In integration testing, the modules are
integrated and the system is tested. Integration testing is performed
on the Architecture design phase. This test verifies the
communication of modules among themselves.
 System Testing: System testing test the complete application with
its functionality, inter dependency, and communication. It tests the
functional and non-functional requirements of the developed
application.
 User Acceptance Testing (UAT): UAT is performed in a user
environment that resembles the production environment. UAT
verifies that the delivered system meets user’s requirement and
system is ready for use in real world.
Principles of V-Model:
 Large to Small: In V-Model, testing is done in a hierarchical
perspective, For example, requirements identified by the project
team, create High-Level Design, and Detailed Design phases of the
project. As each of these phases is completed the requirements,
they are defining become more and more refined and detailed.
 Data/Process Integrity: This principle states that the successful
design of any project requires the incorporation and cohesion of
both data and processes. Process elements must be identified at
each and every requirements.
 Scalability: This principle states that the V-Model concept has the
flexibility to accommodate any IT project irrespective of its size,
complexity or duration.
 Cross Referencing: Direct correlation between requirements and
corresponding testing activity is known as cross-referencing.
 Tangible Documentation: This principle states that every project
needs to create a document. This documentation is required and
applied by both the project development team and the support
team. Documentation is used to maintaining the application once it
is available in a production environment.
Why preferred?
 It is easy to manage due to the rigidity of the model. Each phase of
V-Model has specific deliverables and a review process.
 Proactive defect tracking – that is defects are found at early stage.
When to use?
 Where requirements are clearly defined and fixed.
 The V-Model is used when ample technical resources are available
with technical expertise.
Advantages:
 This is a highly disciplined model and Phases are completed one at
a time.
 V-Model is used for small projects where project requirements are
clear.
 Simple and easy to understand and use.
 This model focuses on verification and validation activities early in
the life cycle thereby enhancing the probability of building an
error-free and good quality product.
 It enables project management to track progress accurately.
Disadvantages:
 High risk and uncertainty.
 It is not a good for complex and object-oriented projects.
 It is not suitable for projects where requirements are not clear and
contains high risk of changing.
 This model does not support iteration of phases.
 It does not easily handle concurrent events.

You might also like