Professional Documents
Culture Documents
OOSE UNIT 5 Current Trends in SE
OOSE UNIT 5 Current Trends in SE
3. Issues of evolution and lifecycle management when compared to more 'traditional' applications.
4. Web-based information systems and applications are pervasive and non-trivial. The prospect of
Web as a platform will continue to grow and it is worth being treated specifically.
Main topics of Web engineering include, but are not limited to, the following areas:
• Modeling disciplines[edit]
1. Business Processes for Applications on the Web
2. Process Modelling of Web applications
3. Requirements Engineering for Web applications
4. B2B applications
In business, ‘agile’ is used for describing ways of planning and doing work wherein it is
understood that making changes as needed is an important part of the job.
In software development, the term ‘agile’ is adapted to mean ‘the ability to respond to
changes − changes from Requirements, Technology and People.’
Agile Manifesto
• A team of software developers published the Agile Manifesto in 2001,
highlighting the importance of the development team, accommodating changing
requirements and customer involvement.
• That is, while there is value in the items on the right, we value the items on the
left more.
Characteristics of Agility
• Agility in Agile Software Development focuses on the culture of the whole team with multi-
discipline, cross-functional teams that are empowered and self organizing.
• Frequent and continuous deliveries ensure quick feedback that in in turn enable the team align to
the requirements.
• Coding, which is the heart of development is not given enough emphasis. The reasons being −
• Developers, who are responsible for the production, are usually not in constant communication with the
customers.
• Coding is viewed as a translation of design and the effective implementation in code is hardly ever looped
back into the design.
• Testing is considered to be the gateway to check for defects before delivery.
• Schedule overruns of the earlier stages of development are compensated by overlooking the test
requirements to ensure timely deliveries.
• This results in cost overruns fixing defects after delivery.
• Testers are made responsible and accountable for the product quality though they were not involved during
the entire course of development.
• Limiting resources (mainly team) to accommodate budget leads to −
• Resource over allocation
• Team burnout.
• Loss in effective utilization of team competencies.
• Attrition.
5.2. Agile Process
• An agile methodology is an iterative approach
to software development. Each iteration of
agile methodology takes a short time interval
of 1 to 4 weeks.
• They enable the close co-operation between all the roles and functions.
• They remove all the blocks which occur.
• They safeguard the team from any disturbances.
• They work with the organization to track the progress and processes of the company.
• They ensure that Agile Inspect & adapt processes are leveraged correctly which includes
• Planned meetings
• Daily stand-ups
• Demo
• Review
• Retrospective meetings, and
• Facilitate team meetings and decision-making process.
Roles in Agile
2. Product Owner
• The Product Owner is one who runs the product from a business
perspective.
Responsibilities of the Product Owner:
• He defines the requirements and prioritizes their values.
• He sets the release date and contents.
• He takes an active role in iteration and releasing planning meetings.
• He ensures that the team is working on the most valued requirement.
• He represents the voice of the customer.
• He accepts the user stories that meet the definition of done and defined
acceptance criteria.
Cross-functional team
• Every agile team contains self-
sufficient team with 5 to 9 team
members.
• The average experience of each
member ranges from 6 to 10 years.
The Agile team decides the meaning of task done. There may be different
criteria for it:
• When the entire task (development, testing) are completed.
• When all the acceptance tests are running and are passed.
• When no defects found.
• Product owner has accepted the requirement.
• When the software product is delivered to the end user.
• 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.
• The division of the entire project into smaller parts helps to minimize
the project risk and to reduce the overall project delivery time
requirements.
1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback
Phases of Agile Model:
1. Requirements gathering:
• Define the requirements.
• 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.
• 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:
• 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.
Phases of Agile Model:
4. Testing:
The Quality Assurance team examines the product's performance and
looks for the bug.
5. Deployment:
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/Agile Process Models:
:1. Scrum
2. Crystal
3. Dynamic Software Development Method(DSDM)
4. Feature Driven Development(FDD)
5. Lean Software Development
6. eXtreme Programming(XP)
When to use the Agile Model?
• The extreme programming model recommends taking the best practices that have worked well in
the past in program development projects to extreme levels.
• eXtreme Programming (XP) was conceived and developed to address the specific needs of
software development by small teams in the face of vague and changing requirements.
• It provides values and principles to guide the team behavior. The team is expected to self-
organize.
2. Starting with a simple design just enough to code the features at hand and redesigning when
required.
3. Programming in pairs (called pair programming), with two programmers at one screen, taking
turns to use the keyboard. While one of them is at the keyboard, the other constantly reviews
and provides inputs.
5. Putting a minimal working system into the production quickly and upgrading it whenever
required.
6. Keeping the customer involved all the time and obtaining constant feedback.
Iterating facilitates the accommodating changes as the software evolves with the changing
requirements.
Why is it called “Extreme?”
• Extreme Programming takes the effective principles
and practices to extreme levels.
• Rapid development.
• Immediate responsiveness to the customer’s changing requirements.
• Focus on low defect rates.
• System returning constant and consistent value to the customer.
• High customer satisfaction.
• Reduced costs.
• Team cohesion and employee satisfaction.
Extreme Programming Advantages
Extreme Programming solves the following problems often faced in the software development
projects −
• Lastly, The ability to adapt allows teams to align with organizational goals.
• Companies from New Zealand to Canada, for a wide range of project and product
types, have used adaptive Software Development.
The term plan :is too deterministic and indicates a reasonably high degree of certainty about the
desired result.
• The implicit and explicit goal of conformance to plan, restricts the manager's ability to steer the
project in innovative directions.
In Adaptive Software Development: the term plan is replaced by the term speculate.
• While speculating, the team does not abandon planning, but it acknowledges the reality of
uncertainty in complex problems.
• Speculate encourages exploration and experimentation. Iterations with short cycles are
encouraged.
• Collaborate
• Complex applications are not built, they evolve. Complex applications
require that a large volume of information be collected, analyzed, and
applied to the problem. Turbulent environments have high rates of
information flow. Hence, complex applications require that a large volume
of information be collected, analyzed, and applied to the problem. This
results in diverse Knowledge requirements that can only be handled by
team collaboration.
• Collaborate would require the ability to work jointly to produce results,
share knowledge or make decisions.
• In the context of project management, Collaboration portrays a balance
between managing with traditional management techniques and creating
and maintaining the collaborative environment needed for emergence.
Learn
The Learn part of the Lifecycle is vital for the success of the project. Team has to enhance their
knowledge constantly, using practices such as −
• Technical Reviews
• Project Retrospectives
• Customer Focus Groups
The iterations need to be short, so that the team can learn from small rather than large mistakes.
Speculate - Collaborate - Learn Cycle as a Whole
• The DSDM philosophy is borrowed from a modified version of the sociologist principle—
80 % of An application is often delivered in twenty percent of the time it’d desire deliver
the entire (100 percent) application.
• DSDM is An iterative code method within which every iteration follows the 80% rule that
simply enough work is needed for every increment to facilitate movement to the
following increment.
• The remaining detail is often completed later once a lot of business necessities are noted
or changes are requested and accommodated.
• Below diagram describe the DSDM life cycle:
• The DSDM tool (www.dsdm.org) could be a worldwide cluster of member
companies that put together tackle the role of “keeper” of the strategy.
• The pool has outlined AN Agile Development Model, known as the DSDM life
cycle that defines 3 different unvarying cycles, preceded by 2 further life cycle
activities:
• Feasibility Study:
It establishes the essential business necessities and constraints related to the
applying to be designed then assesses whether or not the application could be a
viable candidate for the DSDM method.
• Business Study:
It establishes the use and knowledge necessities that may permit the applying to
supply business value; additionally, it is the essential application design and
identifies the maintainability necessities for the applying.
• Functional Model Iteration:
It produces a collection of progressive prototypes that demonstrate practicality
for the client.
(Note: All DSDM prototypes are supposed to evolve into the deliverable
application.) The intent throughout this unvarying cycle is to collect further
necessities by eliciting feedback from users as they exercise the paradigm.
• Design and Build Iteration:
It revisits prototypes designed throughout useful model iteration to make
sure that everyone has been designed during a manner that may alter it to
supply operational business price for finish users. In some cases, useful
model iteration and style and build iteration occur at the same time.
• Implementation:
It places the newest code increment (an “operationalized” prototype) into
the operational surroundings. It ought to be noted that:
• (a) the increment might not 100% complete or,
• (b) changes are also requested because the increment is placed into place. In either
case, DSDM development work continues by returning to the useful model iteration
activity.
• DSDM is often combined with XP to supply a mixed approach that
defines a solid method model (the DSDM life cycle) with the barmy
and bolt practices (XP) that are needed to create code increments.
additionally, the ASD ideas of collaboration and self-organizing groups
are often tailored to a combined method model.
5.2.1.4. Scrum
• It encourages the team to learn through practice, self-organize while working on the problem.
• Scum is a work done through the framework and continuously shipping values to customers.
• The Scrum describes a set of tools, meetings, and roles that help the teams structure. It also
manages the work done by the team
The framework
• Scrum and agile are not the same thing because Scrum focused on continuous improvement,
which is a core foundation of agile.
• Scrum framework focuses on ongoing getting work done.
What are sprints?
• With scrum, a product is built in a series of repetition called sprints. It breaks down big complex
projects into bite-size pieces.
• It makes projects more manageable, allows teams to ship high quality, work faster, and more
frequently.
• Sprints are a short, time-boxed period for Scrum team that works to complete a set amount of
work.
• The sprint is a set of the period where all the work to be done. Before we
start the development, we have to set up the sprint.
• We need to describe how long time is required to achieve the sprint goal
and where we are going to start.
Factors affecting Sprint planning
• The What: The product owner describes the goal of the
sprint and the backlog items which contribute to achieve
that goal.
Scrum Framework
Let’s talk about each of these steps.
1. Product Backlog
A list of tasks that need to be completed to
achieve the stakeholders' goals is set up.
2. Sprint Planning
The team determines the tasks from the
product catalog they aim to work on during
the sprint.
3. Sprint Backlog
The tasks discussed during the sprint
planning process are added to the sprint
backlog.
4. Scrum Team
A team of 5 to 9 members work on the
tasks.
5. Daily Scrum
The team has daily scrum meetings of 15
minutes, where the team members
synchronize their activities and plan what
they plan to do for the next 24 hours.
6. Sprint Review
Once the sprint is complete, a sprint review
takes place. This review involves the scrum
master, product owner, and stakeholders.
During this meeting, the team shows off what
they accomplished during the sprint. During this
time, questions are asked, observations are
made, feedback and suggestions are also given.
7. Product Backlog (2)
The product owner presents the product
backlog to the stakeholders to get their
feedback for upcoming sprints and other related
product backlogs.
8. Sprint Retrospective
After the review is done, a meeting called sprint
retrospective takes place. During this meeting,
past mistakes, potential problems, and new
ways to handle issues are identified. Data from
here is incorporated into the new sprint.
9. Increment
A workable output is given to the stakeholders.
Scrum
Agile
It’s best suited for projects that involve It’s used in projects where the
Projects
a small team of experts requirements are changing constantly
The project head takes care of all There’s no leader. The Scrum master and
Leadership
tasks and is vital to the project the team addresses the issues
Flexibility Changes cannot be handled frequently Teams can react to changes quickly
The methodology provides frequent With each sprint, builds are delivered to
Delivery
delivery to the end-user other clients for feedback
• The crystal method is an agile framework that is considered a lightweight or agile methodology that focuses
on individuals and their interactions.
• A lightweight methodology is a software development method that has only a few rules and practices, or
only ones that are easy to follow.
• The methods are color-coded to significant risk to human life.
• It is mainly for short-term projects by a team of developers working out of a single workspace.
• Among a few Agile Software Development Life Cycle (SDLC) models crystal is considered as one of the Agile
SDLC models.
• Reflective Improvement- No matter how good you have done or how bad
you have done. Since there are always areas where the product can be
improved, so the teams can implement to improve their future practices.
• Osmotic Communication- Alistair stated that having the teams in the same
physical phase is very much important as it allows information to flow in
between members of a team as in osmosis.
• Focus- Each member of the team knows exactly what to do, which enables them to focus
their attention. This boosts team interaction and works towards the same goal.
• Easy access to expert users- It enhances team communication with users and gets
regular feedback from real users.
• Technical tooling- It contains very specific technical tools which to be used by the
software development team during testing, management, and configuration. These tools
make it enable the team to identify any error within less time.
• But on the other hand, the Crystal Method does not plan based on the
requirements of the projects.
5.2.1.6. Feature Driven Development (FDD)
• They are, rather, more akin to user stories in Scrum. In other words,
“complete the login process” might be considered a feature in the
Feature Driven Development (FDD) methodology.
History
• FDD was first applied in the year 1997 on a real-world application by Jeff
De Luca for large software development with specific needs of 15-month
and 50 persons and published as a discussion in book Java Modeling in
Color with UML in the year 1999.
• FDD Lifecycle
• Build overall model
• Build feature list
• Plan by feature
• Design by feature
• Build by feature
Characteristics of FDD
• Short iterative: FDD lifecycle works in simple and short iterations to efficiently finish the work on
time and gives good pace for large projects.
• Customer focused: This agile practice is totally based on inspection of each feature by client and
then pushed to main build code.
• Structured and feature focused: Initial activities in lifecycle builds the domain model and features
list in the beginning of timeline and more than 70% of efforts are given to last 2 activities.
• Frequent releases: Feature-driven development provides continuous releases of features in the
software and retaining continuous success of the project.
Advantages of FDD
• Reporting at all levels leads to easier progress tracking.
• FDD provides continuous success for larger size of teams and projects.
• Reduction in risks is observed as whole model and design is build in smaller segments.
• FDD provides greater accuracy in cost estimation of the project due to feature segmentation.
Disadvantages of FDD
• This agile practice is not good for smaller projects.
• There is high dependency on lead programmers, designers and mentors.
• There is lack of documentation which can create an issue afterwards.