0% found this document useful (0 votes)
56 views106 pages

Unit 1 - Introduction To Software Engineering 14-09-2020

The document provides an overview of software engineering, defining software as a set of instructions and documents that fulfill user requirements. It discusses the classification of software into generic and customized types, attributes of good software, and various software development life cycle (SDLC) models including Waterfall, Incremental, and Rapid Application Development (RAD). Additionally, it emphasizes the importance of software engineering methods, processes, and tools in developing high-quality software efficiently.

Uploaded by

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

Unit 1 - Introduction To Software Engineering 14-09-2020

The document provides an overview of software engineering, defining software as a set of instructions and documents that fulfill user requirements. It discusses the classification of software into generic and customized types, attributes of good software, and various software development life cycle (SDLC) models including Waterfall, Incremental, and Rapid Application Development (RAD). Additionally, it emphasizes the importance of software engineering methods, processes, and tools in developing high-quality software efficiently.

Uploaded by

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

Introduction to

Software
Engineering
What is Software?

 Software is a set of instructions to acquire inputs and to


manipulate them to produce the desired output in terms of
functions and performance as determined by the user of
the software
 Also include a set of documents, such as the software
manual , meant for users to understand the software
system
Description of the Software
 A software is described by its capabilities. The capabilities relate
to the functions it executes, the features it provides and the facilities it
offers.
EXAMPLE
Software written for Sales-order processing would have
different functions to process different types of sales order from
different market segments .
 The features for example , would be to handle multi-currency
computing, updating product , sales and Tax status.
 The facilities could be printing of sales orders, email to customers
and reports to the store department to dispatch the goods.
Classes of Software

Software is classified into two classes:


 Generic Software:

is designed for broad customer market whose


requirements are very common, fairly stable and well understood by
the software engineer.
 Customized Software:
is developed for a customer where domain ,
environment and requirements are being unique to that customer and
cannot be satisfied by generic products.
What is Good Software?

 Software has number of attributes which decide whether it is a


good or bad .
 The definition of a good software changes with the person who
evaluates it.
 The software is required by the customer , used by the end users of an
organization and developed by software engineer .
 Each one will evaluate the different attributes differently in order to
decide whether the software is good.
What are the attributes of good
software?

The software should deliver the required functionality and performance to


the user and should be maintainable, dependable and usable.
• Maintainability
– Software must evolve to meet changing needs
 Dependability
– Software must be trustworthy
 Efficiency
– Software should not make wasteful use of system resources
 Usability
– Software must be usable by the users for which it was designed
Software - Characteristics

 Software has a dual role. It is a product, but also a vehicle for delivering a
product.

 Software is a logical rather than a physical system element.

 Software has characteristics that differ considerably from those of hardware.

 Software is developed or engineered, it is not manufactured in the


classical sense

 Software doesn’t “wear out”

 Most software is custom-built, rather than being assembled from


existing components.
Changing nature of
software(Types)
 System Software- A collection of programs written to service other
programs at system level.
For example, compiler, operating systems.

 Real-time Software- Programs that monitor/analyze/control real


world events as they occur.

 Business Software- Programs that access, analyze and process


business information.

 Engineering and Scientific Software - Software using “number


crunching” algorithms for different science and applications. System
simulation, computer-aided design.
Changing nature of
software(Types)
 Embedded Software-:
Embedded software resides in read-only memory and is used to
control products and systems for the consumer and industrial markets.
It has very limited and esoteric functions and control capability.

 Artificial Intelligence (AI) Software:


Programs make use of AI techniques and methods to solve complex
problems. Active areas are expert systems, pattern recognition, games

 Internet Software :
Programs that support internet accesses and applications. For example,
search engine, browser, e-commerce software, authoring tools.
Software Engineering

 “A systematic approach to the analysis, design, implementation and


maintenance of software.”
(The Free On-Line Dictionary of Computing)
 “ The systematic application of tools and techniques in the
development of computer-based applications.”
(Sue Conger in The New Software Engineering)
 “ Software Engineering is about designing and developing high-
quality software.”
(Shari Lawrence Pfleeger in Software Engineering -- The Production
of Quality Software)
What is Software Engineering?
 Engineering: The Application of Science to the Solution of Practical Problems
 Software Engineering: The Application of CS to Building Practical Software
Systems
 Programming
– Individual Writes Complete Program
– One Person, One Computer
– Well-Defined Problem
– Programming-in-the-Small
 Software Engineering
– Individuals Write Program Components
– Team Assembles Complete Program
– Programming-in-the-Large
What is the difference between software engineering and
computer science?

Computer Science Software Engineering


is concerned with
 theory  the practicalities of developing
 fundamentals  delivering useful software

Computer science theories are currently insufficient to act as a complete


underpinning for software engineering, BUT it is a foundation for practica
aspects of software engineering
What is Software Engineering?

Although hundreds of authors have developed personal definitions of software


engineering, a definition proposed by Fritz Bauer[NAU69] provides a basis:

 “[Software engineering is] the establishment and use of sound


engineering principles in order to obtain economically software that is
reliable and works efficiently on real machines.”

The IEEE [IEE93] has developed a more comprehensive definition when it


states:

 “Software Engineering: (1) The application of a systematic, disciplined,


quantifiable approach to the development, operation, and maintenance
of software; that is, the application of engineering to software. (2) The
study of approaches as in (1).”
Software engineering is a layered
technology - Pressman’s view:

Software Engineering Layers


What is Software Engineering?

 Software methods:
 Software engineering methods provide the technical “how to’s” for
building software.

 Methods --> how to encompass a broad array of tasks:


- requirements analysis, design, coding, testing, and maintenance

 Software engineering methods rely on a set of basic principles.


What is Software Engineering?

 Software process:
Software engineering process is the glue that holds:
- technology together
- enables rational and timely development of computer
software.
Software engineering process is a framework of a set of key process
areas.
It forms a basis for:
- project management, budget and schedule control
- applications of technical methods
- product quality control
What is Software Engineering?

 Software tools:
- programs provide automated or semi-automated support for the
process and methods.
- programs support engineers to perform their tasks in a systematic
and/or automatic manner.
Why Software Engineering?

 Objectives:

- Identify new problems and solutions in software production.


- Study new systematic methods, principles, approaches for system
analysis,design, implementation, testing and maintenance.
- Provide new ways to control, manage, and monitor software process.
- Build new software tools and environment to support software
engineering.
Why Software Engineering?

Major Goals:
- To increase software productivity and quality.
- To effectively control software schedule and planning.
- To reduce the cost of software development.
- To meet the customers’ needs and requirements.
- To enhance the conduction of software engineering process.
- To improve the current software engineering practice.
- To support the engineers’ activities in a systematic and efficient
manner.
A Process Framework
Process Framework Activities

 Communication
 Planning
 Modeling
 Construction
 Deployment
Umbrella Activities

 Software project tracking & control


 Risk Management
 Formal Technical reviews
 Software configuration management
 Reusability management
PROCESS
MODELS
SDLC Process Model

SDLC – Software Development Life Cycle

Process model is a framework that describes


the activities,actions,tasks,milestones,and
work products performed at each stage of a
software development project that leads to a
high quality software
Life cycle models

 Waterfall
model
 Incremental process models
– Incremental model
– RAD model
 Evolutionary Process Models
– Prototyping model
– Spiral model
 Object oriented process model
WATERFALL MODEL
a.k.as Linear life cycle model or
COMMUNICATION
Project initiation
classic life cycle model
Req. gathering

PLANNING
Estimating
Scheduling
tracking

MODELLING
Analysis
design

CONSTRUCTION
Code
Test

DEPLOYMENT
Delivery
Support
feedback
WATERFALL MODEL

 Project initiation & requirement gathering


– What is the Problem to Solve?
– What Does Customer Need/Want?
– Interactions Between SE and Customer
– Identify and Document System Requirements
– Generate User Manuals and Test Plans
• Planning
– Prioritize the requirements
– Plan the process
WATERFALL MODEL
 Analysis and design
– How is the Problem to be Solved?
– High-Level Design
– Determine Components/Modules
– Transition to Detailed Design
– Detail Functionality of Components/Modules
 Coding and Testing
– Writing Code to Meet Component/Module Design Specifications
– Individual Test Modules in Isolation
– Integration of Components/Modules into Subsystems
– Integration of Subsystems into Final Program
WATERFALL MODEL

 Deployment
– System Delivered to Customer/Market
– Bug Fixes and Version Releases Over Time

Strengths
 Easy to understand, easy to use
 Provides structure to inexperienced staff
 Milestones are well understood
 Sets requirements stability
 Good for management control (plan, staff, track)
 Works well when quality is more important than cost or schedule
Waterfall Drawbacks

 All projects cannot follow linear process


 All requirements must be known upfront
 Few business systems have stable
requirements.
 The customer must have patience. A working
version of the program will not be available until
late in the project time-span
 Leads to ‘blocking states’
 Inappropriate to changes
When to use the Waterfall
Model
 Requirements are very well known
 Product definition is stable
 Technology is understood
 New version of an existing product
 Porting an existing product to a new platform.
Incremental SDLC Model
 Combines the elements of waterfall model in an iterative
fashion
 Construct a partial implementation of a total system
 Then slowly add increased functionality
 User requirements are prioritised and the highest priority
requirements are included in early increments.
 Each subsequent release of the system adds function to the
previous release, until all designed functionality has been
implemented.
Incremental Model Weaknesses

 Requires good planning and design


 Requires early definition of a complete and
fully functional system to allow for the
definition of increments
 Well-defined module interfaces are required
(some will be developed long before others)
 Total cost of the complete system is not
lower
When to use the Incremental
Model

 When staffing is not available by deadline


 Most of the requirements are known up-front but are
expected to evolve over time
 When the software can be broken into increments and
each increment represent a solution
 A need to get basic functionality to the market early
 On projects which have lengthy development schedules
 On a project with new technology
RAD MODEL
Rapid Application Development
Model

 An incremental process model that emphasizes short


development cycle
 “High-speed” adaptation of the waterfall model.
 RAD approach also maps into the generic framework
activities
What is RAD?
 Rapid application development is a software
development methodology that uses minimal
planning in favor of rapid prototyping. A prototype is
a working model that is functionally equivalent to a
component of the product.
 In the RAD model, the functional modules are
developed in parallel as prototypes and are
integrated to make the complete product for faster
product delivery. Since there is no detailed
preplanning, it makes it easier to incorporate the
changes within the development process.
 RAD projects follow iterative and incremental
model and have small teams comprising of
developers, domain experts, customer
representatives and other IT resources working
progressively on their component or prototype.
 The most important aspect for this model to be
successful is to make sure that the prototypes
developed are reusable
RAD Model Design
 RAD model distributes the analysis, design,
build and test phases into a series of short,
iterative development cycles. Following are
the various phases of the RAD Model −
1.Business Modeling
2.Data Modeling
3.Process Modeling
4.Application Generation
5.Testing and Turnover
 Business Modeling :
The business model for the product under
development is designed in terms of flow of
information and the distribution of information
between various business channels. A
complete business analysis is performed to
find the vital information for business, how it
can be obtained, how and when is the
information processed and what are the
factors driving successful flow of information
 Data Modeling
The information gathered in the Business
Modeling phase is reviewed and analyzed to form
sets of data objects vital for the business. The
attributes of all data sets is identified and defined.
The relation between these data objects are
established and defined in detail in relevance to the
business model.
 Process Modeling
The data object sets defined in the Data
Modeling phase are converted to establish the
business information flow needed to achieve
specific business objectives as per the
business model. The process model for any
changes or enhancements to the data object
sets is defined in this phase. Process
descriptions for adding, deleting, retrieving or
modifying a data object are given.
 ApplicationGeneration
The actual system is built and coding is
done by using automation tools to convert
process and data models into actual
prototypes
 Testing and Turnover
The overall testing time is reduced in the RAD
model as the prototypes are independently
tested during every iteration. However, the data
flow and the interfaces between all the
components need to be thoroughly tested with
complete test coverage. Since most of the
programming components have already been
tested, it reduces the risk of any major issues.
Drawbacks of RAD

 For large projects, RAD requires sufficient human


resources to create the right number of RAD teams.
 If developers & customers are not committed to rapid-fire
activities, RAD projects will fail.
 If the system cannot be properly modularized, building the
components will be problematic
 If high-performance is an issue, RAD may not work.
 RAD may be inappropriate when technical risks are high
When to use RAD

 Reasonably well-known requirements


 User involved throughout the life cycle
 Project can be time-boxed
 Functionality delivered in increments
 High performance not required
 Low technical risks
 System can be modularized
Advantages of RAD Model

 Changing requirements can be accommodated.


 Progress can be measured.
 Iteration time can be short with use of powerful RAD tools.
 Productivity with fewer people in a short time.
 Reduced development time.
 Increases reusability of components.
 Quick initial reviews occur.
 Encourages customer feedback.
 Integration from very beginning solves a lot of integration
issues.
Disadvantages of RAD Model
 Dependency on technically strong team members for identifying
business requirements.
 Only system that can be modularized can be built using RAD.
 Requires highly skilled developers/designers.
 High dependency on Modeling skills.
 Inapplicable to cheaper projects as cost of Modeling and automated
code generation is very high.
 Management complexity is more.
 Suitable for systems that are component based and scalable.
 Requires user involvement throughout the life cycle.
 Suitable for project requiring shorter development times.
EVOLUTIONARY PROCESS
MODEL

 These models produce an increasingly more


complete version of the software with each
iteration
 When to use
– Tight market deadlines
– Well defined system requirements
– No details about system definition
PROTOTYPING
L
 A prototype is a partially developed product that enables
customers and developers to examine some aspects of the
proposed system and decide if it is suitable or appropriate for
the finished product
– Start with what is known about requirements.
– Do a quick design.
– Build the prototype by focusing on what will be seen by
the user.
– Use the prototype to show the user and help refining
requirements
Phases of Prototype Model

1. Communication:
2. Quick Plan
3. Modeling Quick Design
4. Construction of prototype
5. Deployment Delivery & Feedback
Drawbacks of Prototyping Model

 Customer sees what appears to be a working


version of the software and presumes that it
is the final thing.
 The developer often makes implementation
compromises in order to get a prototype
working quickly
Advantage of Prototype Model

 Reduce the risk of incorrect user requirement


 Good where requirement are changing/uncommitted.
 Support early product marketing
 Reduce Maintenance cost.
 Errors can be detected much earlier as the system is
made side by side
Disadvantages of Prototype model

 An unstable/badly implemented prototype often becomes the final


product.
 Require extensive customer collaboration
– Costs customer money
– Needs committed customer
– Difficult to finish if customer withdraw.
 Difficult to know how long the project will last.
 Easy to fall back into the code and fix without proper requirement
analysis, design, customer evaluation, and feedback.
 Prototyping tools are expensive.
 Special tools & techniques are required to build a prototype.
 It is a time-consuming process.
SPIRAL MODEL

 It couples the iterative nature of prototyping with the


controlled and systematic aspects of the waterfall model
Process.
 Process is represented as a spiral rather than as a sequence
of activities with backtracking.
 Each loop in the spiral represents a phase in the process.
 No fixed phases such as specification or design - loops in
the spiral are chosen depending on what is required.
SPIRAL MODEL
Spiral Model Strengths

• Focuses attention on reuse options.


• Focuses attention on early error elimination.
• Puts quality objectives up front.
• Integrates development and maintenance.
• Provides a framework for hardware/software
Development.
Drawbacks of the Spiral Model

 Risk is not meeting Schedule or Budjet.


 Documentation is more as it has intermediate
Phases.
 It is not Advised for Smaller Project it might
cost them a lot.
When to use Spiral Model
 When creation of a prototype is appropriate
 When costs and risk evaluation is important
 For medium to high-risk projects
 Long-term project commitment unwise because
of potential changes to economic priorities
 Users are unsure of their needs
 Requirements are complex
 When release are requried to be frequent.
 Significant changes are expected
The Unified Process

 It is an iterative and incremental development


framework.
 Unified process(UP) is an architecture –centre,use
case driven,iterative and incremental development
process that leverages modeling language.
 Risk Focused
Unified Process Model
A Brief History :

 During the 1980s and into early 1990s, object-


oriented (OO) methods and programming languages
gained a widespread audience throughout the
software engineering community. A wide variety of
object- oriented analysis (OOA) and design (OOD)
methods were proposed during the same time
period.
 During the early 1990s James Rumbaugh, Grady
Booch, and Ival Jacobsom began working on a
“Unified method” that would combine the best
features of each of OOD & OOA
 By 1997, UML became an industry standard for
object-oriented software development
Phases of the unified process:
 Inception
 Elaboration
 Construction
 Transition
 Production
Inception

 The inception phase of the UP encompasses


both customer communication and planning
activities.
 By collaborating with the customer and end-
users, business requirements for the software
are identified, a rough architecture for the
system is proposed and a plan for the iterative,
incremental nature of the ensuing project is
developed.
Elaboration

 The elaboration phase encompasses the


customer communication and modeling activities
of the generic process model.
 Elaboration refines and expands the preliminary
use-cases that were developed as part of the
inception phase and expands the architectural
representation.
 include five different views of the software- the
use-case model, the analysis model, the design
model, the implementation model, and the
deployment model.
Construction

 The construction phase of the UP is identical to


the construction activity defined for the generic
software process.
 Using the architectural model as input, the
construction phase develops or acquires the
software components that will make each use-
case operational for end-users.
 To accomplish this, analysis and design models
that were started during the elaboration phase
are completed to reflect the final version of the
software increment
Transition

 The transition phase of the UP encompasses the


latter stages of the generic construction activity
and the first part of the generic deployment
activity.
• Software given to end-users for beta testing, and
user feedback reports both defects and
necessary changes .
Production

 The production phase of the UP coincides with


the deployment activity of the generic process.
 During this phase, the on-going use of the
software is monitored,
 support for the operating environment is
provided, and defect reports and requests for
changes are submitted and evaluated.
Unified Process Work Products
V-model
 The V-model is an SDLC model where execution of
processes happens in a sequential manner in a V-
shape. It is also known as Verification and
Validation model.
 The V-Model is an extension of the waterfall model
and is based on the association of a testing phase
for each corresponding development stage.
 This means that for every single phase in the
development cycle, there is a directly associated
testing phase. This is a highly-disciplined model and
the next phase starts only after completion of the
previous phase
V-Model - Design
 Under the V-Model, the corresponding
testing phase of the development phase is
planned in parallel. So, there are Verification
phases on one side of the ‘V’ and Validation
phases on the other side. The Coding Phase
joins the two sides of the V-Model.
Different phases in a V-Model of the
SDLC.
Business Requirement Analysis
 This is the first phase in the development cycle
where the product requirements are understood from
the customer’s perspective. This phase involves
detailed communication with the customer to
understand his expectations and exact requirement.
 This is a very important activity and needs to be
managed well, as most of the customers are not
sure about what exactly they need. The acceptance
test design planning is done at this stage as
business requirements can be used as an input for
acceptance testing.
System Design
 Once you have the clear and detailed
product requirements, it is time to design the
complete system. The system design will
have the understanding and detailing the
complete hardware and communication
setup for the product under development.
 The system test plan is developed based on
the system design. Doing this at an earlier
stage leaves more time for the actual test
execution later.
Architectural Design
 Architectural specifications are understood
and designed in this phase.
 The system design is broken down further
into modules taking up different functionality.
This is also referred to as High Level
Design (HLD).
 The data transfer and communication
between the internal modules and with the
outside world (other systems) is clearly
understood and defined in this stage. With
this information, integration tests can be
designed and documented during this stage.
Module Design
 In this phase, the detailed internal design for
all the system modules is specified, referred
to as Low Level Design (LLD). It is
important that the design is compatible with
the other modules in the system architecture
and the other external systems.
 The unit tests are an essential part of any
development process and helps eliminate the
maximum faults and errors at a very early
stage. These unit tests can be designed at
this stage based on the internal module
designs.
Coding Phase
 The actual coding of the system modules
designed in the design phase is taken up in
the Coding phase. The best suitable
programming language is decided based on
the system and architectural requirements.
 The coding is performed based on the coding
guidelines and standards. The code goes
through numerous code reviews and is
optimized for best performance before the
final build is checked into the repository.
Validation Phases in a V-Model
Unit Testing
 Unit tests designed in the module design phase are
executed on the code during this validation phase.
Unit testing is the testing at code level and helps
eliminate bugs at an early stage, though all defects
cannot be uncovered by unit testing.

Integration Testing
 Integration testing is associated with the architectural
design phase. Integration tests are performed to test
the coexistence and communication of the internal
modules within the system.
System Testing

 System testing is directly associated with the


system design phase.
 System tests check the entire system
functionality and the communication of the
system under development with external
systems.
 Most of the software and hardware
compatibility issues can be uncovered during
this system test execution.
Acceptance Testing

 Acceptance testing is associated with the


business requirement analysis phase and
involves testing the product in user
environment.
 Acceptance tests uncover the compatibility
issues with the other systems available in the
user environment. It also discovers the non-
functional issues such as load and
performance defects in the actual user
environment.
V- Model ─ Application

 V- Model application is almost the same as


the waterfall model, as both the models are
of sequential type.
 Requirements have to be very clear before
the project starts, because it is usually
expensive to go back and make changes.
This model is used in the medical
development field, as it is strictly a
disciplined domain.
suitable scenarios to use the V-
Model application.
 Requirements are well defined, clearly
documented and fixed.
 Product definition is stable.
 Technology is not dynamic and is well
understood by the project team.
 There are no ambiguous or undefined
requirements.
 The project is short.
The advantages of the V-Model
method are as follows

 This is a highly-disciplined model and


Phases are completed one at a time.
 Works well for smaller projects where
requirements are very well understood.
 Simple and easy to understand and use.
 Easy to manage due to the rigidity of the
model. Each phase has specific deliverables
and a review process.
Disadvantages of the V-Model
 High risk and uncertainty.
 Not a good model for complex and object-
oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where
requirements are at a moderate to high risk
of changing.
 Once an application is in the testing stage, it
is difficult to go back and change a
functionality.
 No working software is produced until late
during the life cycle.
Agile Model
 The meaning of Agile is swift or
versatile."Agile process model" refers to a
software development approach based on
iterative development. Agile methods break
tasks into smaller iterations, or parts do not
directly involve long term planning. The
project scope and requirements are laid
down at the beginning of the development
process.
 Plans regarding the number of iterations, the duration and the
scope of each iteration are clearly defined in advance.
 Each iteration is considered as a short time "frame" in the Agile
process model, which typically lasts from one to four weeks. The
division of the entire project into smaller parts helps to minimize
the project risk and to reduce the overall project delivery time
requirements. Each iteration involves a team working through a
full software development life cycle including planning,
requirements analysis, design, coding, and testing before a
working product is demonstrated to the client.

Phases of Agile Model
 Requirements gathering
 Design the requirements
 Construction/ iteration
 Testing/ Quality assurance
 Deployment
 Feedback
 1. Requirements gathering: In this phase, you
must define the requirements. You should explain
business opportunities and plan the time and effort
needed to build the project. Based on this
information, you can evaluate technical and
economic feasibility.
 2. Design the requirements: When you have
identified the project, work with stakeholders to
define requirements. You can use the user flow
diagram or the high-level UML diagram to show the
work of new features and show how it will apply to
your existing system.
 3. Construction/ iteration: When the team
defines the requirements, the work begins.
Designers and developers start working on their
project, which aims to deploy a working product. The
product will undergo various stages of improvement,
so it includes simple, minimal functionality.
 4. Testing: In this phase, the Quality Assurance
team examines the product's performance and looks
for the bug.
 5. Deployment: In this phase, the team issues a
product for the user's work environment.
 6. Feedback: After releasing the product, the
last step is feedback. In this, the team
receives feedback about the product and
works through the feedback.
Agile Testing Methods:
 Scrum
 Crystal
 Dynamic Software Development
Method(DSDM)
 Feature Driven Development(FDD)
 Lean Software Development
 eXtreme Programming(XP)
SCRUM
SCRUM is an agile development process focused
primarily on ways to manage tasks in team-based
development conditions.
 There are three roles in it, and their responsibilities
are:
 Scrum Master: The scrum can set up the master
team, arrange the meeting and remove obstacles for
the process
 Product owner: The product owner makes the
product backlog, prioritizes the delay and is
responsible for the distribution of functionality on
each repetition.
 Scrum Team: The team manages its work and
organizes the work to complete the sprint or cycle.
eXtreme Programming(XP)
 This type of methodology is used when
customers are constantly changing demands
or requirements, or when they are not sure
about the system's performance.
Crystal:
 There are three concepts of this method-
 Chartering: Multi activities are involved in this phase such as
making a development team, performing feasibility analysis,
developing plans, etc.
 Cyclic delivery: under this, two more cycles consist, these are:
– Team updates the release plan.
– Integrated product delivers to the users.
 Wrap up: According to the user environment, this phase
performs deployment, post-deployment.
DSDM is a rapid application development strategy for
software development and gives an agile project
distribution structure. The essential features of
DSDM are that users must be actively connected,
and teams have been given the right to make
decisions. The techniques used in DSDM are:
 Time Boxing
 MoSCoW Rules
 Prototypin
The DSDM project contains seven
stages
• Pre-project
 Feasibility Study
 Business Study
 Functional Model Iteration
 Design and build Iteration
 Implementation
 Post-project
Feature Driven Development(FDD):
 This method focuses on "Designing and
Building" features. In contrast to other smart
methods, FDD describes the small steps of the
work that should be obtained separately per
function.
Lean Software Development:
 Lean software development methodology follows the
principle "just in time production." The lean method indicates
the increasing speed of software development and reducing
costs. Lean development can be summarized in seven
phases.
 Eliminating Waste
 Amplifying learning
 Defer commitment (deciding as late as possible)
 Early delivery
 Empowering the team
 Building Integrity
 Optimize the whole
When to use the Agile Model?
 When frequent changes are required.
 When a highly qualified and experienced
team is available.
 When a customer is ready to have a meeting
with a software team all the time.
 When project size is small.
Advantage(Pros) of Agile Method:
 Frequent Delivery
 Face-to-Face Communication with clients.
 Efficient design and fulfils the business
requirement.
 Anytime changes are acceptable.
 It reduces total development time.
Disadvantages(Cons) of Agile Model:

 Due to the shortage of formal documents, it creates


confusion and crucial decisions taken throughout
various phases can be misinterpreted at any time by
different team members.
 Due to the lack of proper documentation, once the
project completes and the developers allotted to
another project, maintenance of the finished project
can become a difficulty.

You might also like