Software Engineering - Unit 2 - PPT
Software Engineering - Unit 2 - PPT
Unit - II
UNIT- II
• Agility: Cost of Change- Agile Process- Extreme Programming-
Other Agile Process Models: Scrum- Dynamic Systems
Development Method- Agile Modeling- Agile Unified Process-
Tool Set for the Agile Process
• The time and cost required to ensure that the change is made
without unintended side effects is nontrivial.
4. Business people and developers must work together daily throughout the project
5. Build Projects around motivated individuals. Give them environment and support they
need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a
development team is Face-to-face conversation daily cooperation between business
people and developers
Agility Principles
7. Working software is the primary measure of progress.
9. Continuous attention to technical excellence and good design enhances the agility.
10. Simplicity – the art of maximizing the amount of work not done – is essential.
11. The best architectures, requirements, and designs emerge from Self-organizing
teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes
and adjusts its behavior accordingly.
Human Factors
Agile development focuses on the talents and skills of individuals,
molding the process to specific people and teams. Key traits must
exist among the people on effective software team
XP Values
• “Beck” defines a set of five values that establish a foundation for all work
performed as part of XP—communication, simplicity, feedback, courage, and
respect.
• Each of these values is used as a driver for specific XP activities, actions, and
tasks.
XP Values
• Effective communication between software engineers and other stakeholders,
XP emphasizes close, yet informal collaboration between customers and
developers, the establishment of effective metaphors3 for communicating
important concepts, continuous feedback, and the avoidance of voluminous
documentation as a communication medium.
• Feedback is derived from three sources: the implemented software itself, the
customer, and other software team members. By designing and implementing
an effective testing strategy the software provides the agile team with
feedback. XP makes use of the unit test as its primary testing tactic.
XP Values
• Agile XP team must have the discipline (courage) to design for today,
recognizing that future requirements may change dramatically,
demanding substantial rework of the design and implemented code.
• Coding :- After stories are developed and preliminary design work is done, the team does
not move to code, but rather develops a series of unit tests that will exercise each of the
stories that is to be included in the current release.
Once the code is complete, it can be unit-tested immediately, thereby providing
instantaneous feedback to the developers.
A key concept during the coding activity is pair programming. XP recommends that two
people work together at one computer workstation to create code for a story.
This provides a mechanism for real time problem solving (two heads are often better than
one) and real-time quality assurance.
The XP Process [Cont..]
Testing:-
• The creation of unit tests before coding commences is a key element of the XP
approach.
• The unit tests that are created enables to be automated. This encourages a
regression testing strategy whenever code is modified. As the individual unit
tests are organized into a “universal testing suite” integration and validation
testing of the system can occur on a daily basis.
Wells states: “Fixing small problems every few hours takes less time than fixing
huge problems just before the deadline.”
XP acceptance tests - called customer tests, are specified by the customer and
focus on overall system features and functionality that are visible and reviewable
by the customer.
XP Industrial Process
Joshua Kerievsky describes Industrial Extreme Programming (IXP) in the
following manner:
IXP incorporates six new practices that are designed to help ensure that an XP
project works successfully for significant projects within a large organization.
XP Industrial Process - Six new practices
Readiness assessment
(1) An appropriate development environment exists to support IXP
(2) Team will be populated by the proper set of stakeholders,
(3) Organization has a distinct quality program & supports continuous
improvement,
(4) Organizational culture will support the new values of an agile team
(5) Broader project community will be populated appropriately.
Project community.
• ClassicXP suggests that the right people be used to populate the agile team to
ensure success.
•
• Team must be well- trained, adaptable and skilled, and have the proper
temperament to contribute to a self-organizing team.
• When XP is to be applied for a significant project in a large organization, the
concept of the “team” should morph into that of a community.
XP Industrial Process - Six new practices
Project chartering
• Chartering also examines the context of the project to determine how it
complements, extends, or replaces existing systems or processes.
Test-driven management
• An IXP project requires measurable criteria for assessing the state of the project and
the progress that has been made to date. Test-driven management establishes a series
of measurable “destinations” and then defines mechanisms for determining whether
or not these destinations have been reached.
Retrospectives
• An IXP team conducts a specialized technical review after a software increment is
delivered. Called a retrospective, the review examines “issues, events, and
lessons-learned” across a software increment and/or the entire software release. The
intent is to improve the IXP process.
Continuous learning
Because learning is a vital part of continuous process improvement, members of the XP
team are encouraged (and possibly, incented) to learn new methods and techniques that
can lead to a higher quality product.
Other Agile Process Models
• Adaptive Software Development (ASD)
• Scrum
• Dynamic Systems Development Method (DSDM)
• Crystal
• Feature Drive Development (FDD)
• Lean Software Development (LSD)
• Agile Modeling (AM)
• Agile Unified Process (AUP)
Scrum
• Jeff Sutherland - 1990s.
Scrum principles are
consistent with the agile
• Requirements, analysis,
design, evolution, and
delivery - Within each
framework activity, work
tasks occur within a process
pattern called a sprint.
• The work conducted within a
sprint is adapted to the
problem at hand and is
defined and often modified in
real time by the Scrum team.
Scrum
• Scrum emphasizes the use of a set of software process patterns that have proven
effective for projects with tight timelines, changing requirements, and business
criticality.
• Model with a purpose. A developer who uses AM should have a specific goal
in mind before creating the model. Once the goal for the model is identified, the
type of notation to be used and level of detail required will be more obvious.
• Use multiple models. There are many different models and notations that can
be used to describe software. Only a small subset is essential for most projects.
AM suggests that to provide needed insight, each model should present a
different aspect of the system and only those models that provide value to their
intended audience should be used.
Agile Modeling
• Travel light. As software engineering work proceeds, keep only those models that
will provide long-term value and jettison the rest. Every work product that is kept
must be maintained as changes occur. This represents work that slows the team down.
Ambler notes that “Every time you decide to keep a model you trade-off agility for the
convenience of having that information available to your team in an abstract manner
• Know the models and the tools you use to create them. Understand the strengths and
weaknesses of each model and the tools that are used to create it.
• Adapt locally. The modeling approach should be adapted to the needs of the agile
team.
Agile Unified Process (AUP)
• The Agile Unified Process (AUP) adopts a “serial in the large” and “iterative in
the small” philosophy for building computer-based systems.
• Modeling. UML representations of the business and problem domains are created.
Agile Unified Process (AUP)
• Implementation. Models are translated into source code.
• Testing. Like XP, the team designs and executes a series of tests to uncover
errors and ensure that the source code meets its requirements.
• Deployment. Like the generic process activity deployment in this context
focuses on the delivery of a software increment and the acquisition of
feedback from end users.
• Configuration and project management. In the context of AUP, configuration
management addresses change management, risk management, and the
control of any persistent work products that are produced by the team.
Project management tracks and controls the progress of the team and
coordinates team activities.
Environment management. Environment management coordinates a process
infrastructure that includes standards, tools, and other support technology
available to the team.