0% found this document useful (0 votes)
13 views54 pages

Unit 01 (B)

The document discusses the principles and methodologies of Agile software development, emphasizing the importance of adaptability, customer collaboration, and iterative delivery. It contrasts Agile with traditional methodologies like Waterfall, highlighting the benefits of early and continuous delivery of functional software. Various Agile frameworks such as Extreme Programming (XP), Scrum, and Feature Driven Development (FDD) are also outlined, each with its own processes and advantages.

Uploaded by

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

Unit 01 (B)

The document discusses the principles and methodologies of Agile software development, emphasizing the importance of adaptability, customer collaboration, and iterative delivery. It contrasts Agile with traditional methodologies like Waterfall, highlighting the benefits of early and continuous delivery of functional software. Various Agile frameworks such as Extreme Programming (XP), Scrum, and Feature Driven Development (FDD) are also outlined, each with its own processes and advantages.

Uploaded by

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

ASHA M TARSADIA INSTITUTE OF COMPUTER SCIENCE & TECNOLOGY

BE 2RD YEAR 3RD SEM

Unit 1 Introduction to Software


Engineering & Software
processes

Software Engineering(CE4013)
Agility
• Agility is ability to move quickly and easily.

• It is a property consisting of quickness, lightness & ease of movement;


• The ability to create and respond to change in order to profit in a turbulent
global business environment
• The ability to quickly reprioritize use of resources when requirements,
technology, and knowledge shift
• A very fast response to sudden market changes and emerging threats by
intensive customer interaction
• Use of evolutionary, incremental, and iterative delivery to converge on an
optimal customer solution
What is Agility?
Current Functionality
Effective
response
to change
Change Request

Organizing
a team Effective
so that it is communication
in control among all
to perform stakeholders
the work
What is Agility?
Software Development Team
Rapid and Incremental delivery of software

Customer
Drawing the
customer onto
the team

Eliminate the
“us and them”
attitude
• The customer becomes active in the development process, ensuring that their needs are met continuously
rather than only at the end.
"Not Like This...":
• The top right of the image represents a traditional, linear approach (like in the Waterfall model)
where each component is developed sequentially (e.g., wheels, axle, body) but cannot function or
provide value until the entire product is complete.
• Here, the customer is unhappy at each stage until the final product is delivered, as they have
received nothing usable throughout the process.
"Like This!":
• The bottom right of the image represents an iterative and incremental approach where each stage
delivers a functional product that adds value, even if it's not the final product.
• For instance:
• Step 1: A skateboard (basic, but usable)
• Step 2: A scooter (improved, still usable)
• Step 3: A bicycle (more advanced, still usable)
• Step 4: A motorcycle (even better, still usable)
• Step 5: A car (final product)
• The customer is happier at each stage because they receive a usable product early on, and it
continuously improves.
Methodology
Conventional Software Methodology
• As the software project makes the progress, the cost of the changes increases
non linearly.
• It is easy to accommodate changes during the requirement gathering stage.
At this stage to accommodate the changes –usage scenarios are modified,
list of function can be executed, or written specification be edited.
• As the progresses and if the customer suggest the changes during the testing
phase of the SDLC then to accommodate these changes, the architectural
design needs to be modified and ultimately these changes will affect other
phase of software development cycle. These changes are actually costly to
execute.
Methodology
Agile Software Methodology
• The agile method claim that if the software development is carried out using
the agile approach then it will allow the software team to accommodate
changes late in a software project without dramatic cost and time impact.
• In other words, if the incremental delivery is combined with agile practices
such as continuous unit testing and pair programming then the cost of
changes can be controlled.
Agile Process
• Agile processes are the light weight methods are people-based rather than
plan-based method.
• The agile process forces the development team to focus on software itself
rather than design and documentation.
• It is Iterative method.
• Agile software process addresses few assumptions

• Difficulty in predicting changes of requirements in advanced and similarly


the customer priority often get changed.
• It is difficult to predict how much design is necessary before the
implementation.
Agile Process
Characteristics of Agile process
• An agile process must be adaptable to technical and environmental changes
• An agile process must be Incremental

• Requires customer feedback


Agility Principles
• Highest priority is to satisfy the customer through early & continuous delivery of
software
• Welcome changing requirements
• Deliver working software quite often. Within the shorter time span deliver the
working unit.
• Business people and developers must work together

• Build projects around motivated individuals

• Emphasize face-to-face conversation

• Working software is the measure of progress

• Continuous attention to technical excellence and good design


Where agile methodology not work?

Project plan & requirements Unclear understanding of Agile


are clear & unlikely to change Approach among Teams
This depicts a mismatch between the traditional "Waterfall"
approach (where all requirements are delivered at once
after a long period) and Agile, which emphasizes iterative
development, regular feedback, and continuous delivery.
Where agile methodology not work?

Big Enterprises where team collaboration


is tough
Agile Process Models
• Extreme Programming (XP)
• Adaptive Software Development (ASD)
• Dynamic Systems Development Method (DSDM)
• Scrum
• Feature Driven Development (FDD)
• Crystal
• Agile Modelling (AM)
Extreme Programming (XP)
• The most widely used approach to agile software development
• Extreme programming (XP) is one of the most important software development
framework of Agile models. It is used to improve software quality and
responsive to customer requirements.
• XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun
way to develop a software.
• Extreme Programming (XP) was conceived and developed to address the
specific needs of software development by small teams in the face of vague
(unclear) and rapid changing requirements.
• A variant of XP called Industrial XP (IXP) has been proposed to target process
for large organizations
XP Values
• Communication: To achieve effective communication, it emphasized close
& informal (verbal) collaboration between customers and developers to
convey important concepts and to get important feedback
• Simplicity: It restricts developers to design for immediate needs not for
future needs
• Feedback: It is derived from three sources the implemented software, the
customer and other software team members, it uses Unit testing as primary
testing
• Courage: It demands courage (discipline), there is often significant pressure
to design for future requirements, XP team must have the discipline
(courage) to design for today
The XP Process
It considers
four
framework
activities

1. Planning
2. Design
3. Coding
4. Testing
The XP Process
Planning User Stories
• Customers assigns value (priority)

• Developers assigns cost (number of development weeks)


Project velocity
• Computed at the end of first release
• Number of stories implemented in first release
Design
• Estimates for future release
Keep-it-Simple (Design of extra functionality is discouraged)

CRC card • Guard against


Preparation of CRCover-commit
card is workment
project
• CRC cards identify and organize object oriented classes
Spike Solutions
• Operational prototype intended to clear confusion
Refactoring: Reduce redundancy, Eliminate unused functionality,
Redesign
Example of story
Refactoring Example
The XP Process
Coding • Develops a series of Unit test for stories
included in current release
• Complete code perform unit-test to get
immediate feedback
• XP recommend pair-programming, “Two
heads are better than one”

• Integrate code with other team members, this “continuous


integration” helps to avoid compatibility & interfacing problems,
“smoke testing”(determine if a new software build is ready for
the next testing phase) environment to uncover errors early
Testing
• Unit test by developers & fix small
problems
• Acceptance tests - Specified by
customer
Extreme Programming (XP)
Advantages
• Fewer Documentation required
• Collaboration with customer
• Flexibility to developers
• Easy to manage
Disadvantages
• Depends heavily in customer interaction
• Transfer of technology to new team member may be quite
Scrum
• Scrum is an agile process model which is used for developing the
complex software systems.
• It is a lightweight process framework that can be used to manage
and control the development using iterative and incremental
approach.
• Lightweight means the overhead of the process is kept as small as
possible in order to maximize the productivity.
• This model is developed by Jeff Sutherland and Ken Schwaber in
1995
What is Scrum?

A scrum is a method of restarting play in rugby that


involves players packing closely together with their
heads down and attempting to gain possession of the
ball. ...
Scrum
Various Principles using which the SCRUM works are as given below:
• There are small working team on the software development projects. Due to
this there is maximum communication and minimum overhead.
• The tasks of people must be partitioned into small and clean packets or
partitions.
• The process must accommodate the technical or business changes if they
occur.
• The process should produce software increments. These increments must be
inspected, tested, documented and build on.
• During the product building the constant testing and documentation must be
conducted.
Scrum framework
Inputs from
Customers, Team,
Scrum
Managers Team Selects starting
Master
at top as much as it can Daily Scrum
commit to deliver by Meetings
end of sprint

Product Owner Sprint Review

Sprint Finished Work


Product Sprint Backlog
Backlog Planning
Meeting
Prioritized list of what is Sprint end date and team
required: features, bugs to deliverable do not change
fix...
Sprint Retrospective
Scrum framework
Roles
1. Product Owner
• It creates product backlog essentially a wish list of tasks that need to be prioritized in a
project.
• Decides release date and content.
• Prioritized features according to market value.

• Accepts and reject work results.


2. Scrum Master
• The Scrum master leads the meeting and analysis the responses of each team member.

• The potential problems are discussed and solved in the meeting with help of master.
• Responsible for project management.
3. Scrum Team
Development Activities
Backlog
• It is a prioritized list of project requirements or features that must be provided to
the customer.
• The items can be included in the backlog at any time.
• The product manager analyses this list and updates the priorities as per the
requirements.
Sprint
• These are the work units that are needed to achieve the requirements mentioned
in the backlogs.
• Typically the sprints have fixed duration or time box (of 2 to 4 weeks, 30 days).

• Change are not introduced during the sprint.


Development Activities
Scrum Meetings
• There are 15 minutes daily meetings to report the completed activities, obstacles
and plan for next activities.
• Following are three questions that are mainly discussed during the meetings.
• What are the tasks done since last meeting ?
• What are the issues that team is facing ?

• What are the next activities that are planned?

• Scrum meeting helps the team to uncover potential problems as early as possible

• It promotes “self-organizing team structure”


Demo
Scrum
DSDM

• The DSDM—80 percent of an application can be delivered in 20 percent of


the time it would take to deliver the complete (100 percent) application.
• DSDM is an iterative software process in which each iteration follows the 80
percent rule. Only enough work is required for each increment to facilitate
movement to the next increment.
DSDM
Dynamic Systems Development Methods (DSDM)
Various phases of this life cycle model
✔ Feasibility study

• By analyzing the business requirements and constraints the viability of the


application is determined
✔ Business study

• The functional and informational requirements are identified and then the business
value of the application is determined
✔ Functional model iteration
• The incremental approach is adopted for development

✔ Design and build iteration


Adaptive Software development (ASD)
• This is a technique for building complex software systems using iterative
approach.
• ASD focus on working in collaboration and team self-organization.
• This
ASD approach given by Jim Highsmith.
incorporates
three phases

1. Speculation
2. Collaboration
3. Learning
Speculation (ASD)
• The adaptive cycle planning is conducted.
• In this cycle planning mainly three types of information is used
✔ Customer’s mission statement
✔ Project constraints
• Delivery date, budgets, user description etc…
✔ Basic requirements of the project
Collaboration (ASD)
• In this, collaboration among the members of development team is a
key factor.
• For successful collaboration and coordination it is necessary to
have following qualities in every individual
✔ Assist each other without resentment (offense)
✔ Work hard

✔ Posses the required skill set


✔ Communicate problems and help each other to accomplish given task

✔ Criticize without any hate


Learning (ASD)
• Emphasize is on learning new skills and techniques.
• There are three ways by which the team members learn
✔ Focus groups
• The feedback from the end-users is obtained.

✔ Formal technical review


• This review is conducted for better quality.

✔ Postmortems
• Team analyses its own performance and makes appropriate
Feature Driven Development (FDD)
Feature Driven Development (FDD)
• It is practical process model for object oriented software
engineering.
• Suggested by Peter Coad.
• In FDD, the feature means client valued function.
• It is iterative and incremental software development process.
Feature Driven Development (FDD)
Various phases in the FDD life cycle
• Develop overall model
• The high-level walkthrough of scope and detailed domain
walkthrough are conducted to create overall models.
• Later on peer reviews and discussion are carried out on these
walkthroughs and domain area models are created . These domain
area models are then merged into the overall models.

• Build feature list


• List of features is created and expressed in the following form
Feature Driven Development (FDD)
• Plan by feature
• After completing the feature list the development plan is created. The
features are assigned as classes and chief programmer or the class
owner is assigned with appropriate classes.

• Design by feature
• For each feature the sequence diagram is created

• Build by feature
• Finally the class owner develop the actual code for their classes
Crystal
• The primary goal of this method is to deliver useful and working
software.
• In this model, a set of methodologies are defined which contains
the core elements that are common to all.
• According to its founder, Alistair Cockburn, “Crystal is a family of
software development methodologies, which works with the power
invested by people, and is extremely light and stretch-to-fit”.
• Basically,Cockburn believes that the talent and the way team
members interact brings benefits for the whole project.
Crystal
• This is a family of Agile methodologies which includes variants
such as Crystal Clear (up to an 8-person team), Crystal Yellow (up
to a 10 to 20-person team), Crystal Orange (up to a 20 to 50-person
team) and Crystal Red (for big teams with 50 to 1000 people).
• Crystal focuses on principles such as People, Interactions,
Community, Skills, Talent and Communication, aiming to deliver
the best possible software development process.
Crystal
Advantages:
• it ensures frequent deliveries, in order to identify eventual
problems in every stage.
• There is always space to improve characteristics, taking some time
from software development and allowing for a discussion about
how to perfect processes.
• Allows for a closer communication and promotes interaction and
sharing of knowledge between team members.
Crystal
Disadvantages:
• The fact that there are variants in the methodology family means
that the principles might vary with the size of the team and the size
of the project, resulting in projects that might not be so
straightforward.
Agile Process Model
Agile Process Model
• Ability to move quickly and respond to changes.
• 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.
• Every iteration involves cross functional teams working
simultaneously on various areas like planning, requirements
analysis, design, coding, unit testing, and acceptance testing.
Agile Process Model
• Advantages
• Customer satisfaction by rapid, continuous delivery of useful
software.
• Customers, developers and testers constantly interact with each
other.
• Daily cooperation between business people and developers.
• Continuous attention to technical excellence (quality) and good
design.
Agile Process Model
• Disadvantages
• In case of some software, it is difficult to estimate the effort
required at the beginning of the software development life cycle.
• The project can easily get “off track” if the customer representative
is not clear about final outcome, that they want.
• Only senior programmers are capable of taking the kind of
decisions required during the development process.
The Unique nature of WebApps
• Network intensiveness –
• A WebApp resides on a network and must serve the needs of a diverse
community of clients.
• The network may enable worldwide access and communication (i.e., the
Internet) or more limited access and communication (e.g., a corporate
Intranet)

• Concurrency
• A large number of users may access the WebApp at one time.

• In many cases, the patterns of usage among end users will vary greatly
The Unique nature of WebApps
• Performance
• If a WebApp user must wait too long (for access, for serverside processing,
for client-side formatting and display), he or she may decide to go elsewhere

• Availability
• Although expectation of 100 percent availability is unreasonable, users of
popular WebApps often demand access on a 24/7/365 basis.
• Users in Australia or Asia might demand access during times when
traditional domestic software applications in North America might be taken
off-line for maintenance.
The Unique nature of WebApps
•Data driven
• The primary function of many WebApps is to use hypermedia to present text,
graphics, audio, and video content to the end user.
• WebApps are commonly used to access information that exists on databases
that are not an integral part of the Web-based environment (e.g.,e-commerce or
financial applications).

• Content sensitive
• The quality and aesthetic nature of content remains an important determinant of
the quality of a WebApp.

• Continuous evolution
The Unique nature of WebApps
• Immediacy
• Although immediacy—the compelling need to get software to market
quickly—is a characteristic of many application domains, WebApps often
exhibit a time- to-market that can be a matter of a few days or weeks.

• Security
• Because WebApps are available via network access, it is difficult, if not
impossible, to limit the population of end users who may access the application.
In order to protect sensitive content and provide secure modes

• Aesthetics
• An undeniable part of the appeal of a WebApp is its look and feel. When an
Thank you

You might also like