You are on page 1of 30

Unit VI

Current Trends in Software


Engineering
Dr. Kavita Khobragade,
Head and Associate Professor,
Computer Science Department,
Fergusson College (Autonomous), Pune
E-mail – kavitanand@gmail.com,
kavita.khobragade@fergusson.edu
Introduction to Web Engineering

Agile Process

Agile Process Models

Agile Process Models


1. Extreme Programming (XP)
2. Adaptive Software Development
3. Dynamic System Development Method
4. Scrum
5. Crystal Feature Driven Development
Introduction to Web Engineering
 Definition - The application of systematic and quantifiable, approaches to cost-effective analysis,
design, implementation, testing, operation, and maintenance of high-quality Web applications.
[Kappel et al.]
 Extends Software Engineering to Web applications, but with Web-centric approaches.
 WebE is the process used to create high quality Web-based applications
 (WebApps)WebE draws heavily on the principles and management activities found in software
engineering processes
 There are things that make WebE a unique endeavor
 Formulation of the problem
 Planning
 WebApp requirements analysis
 Architectural, navigational, and interface design
 System implementation using specialized languages and tools associated with the Web
 Configuration management, quality control, and maintenance mechanisms are established early
Cont…

 A Web application is a system that utilizes W3C


standards technologies to deliver Web-specific
resources to clients (typically) through a
browser.
 A strict definition that ensures software and UI
aspects of the Web are examined carefully
 Technology interaction.
 Web site with no software components?
 Web services?

The Case for Web Engineering
 Application development on the Web remains largely ad hoc.
 Spontaneous, one-time events
 Individual experience
 Little or no documentation for code/design
 Short-term savings lead to long-term problems in operation, maintenance, usability, etc.
 Because Web apps are so interdependent, the problem is compounded.
 Root Causes of poor design
 Development as an authoring activity
 Development is easy
 Techniques that should not be used are misapplied, particularly alarming given
 Most projects are now Web-based
 More mission-critical apps moving to the Web
 Clearly defined goals objectives
 Systematic, phased development and Careful planning
 Iterative continuous auditing of the entire process
Categories of Web Applications customized
services delivered
via multiple
devices

Information on the
Web should be
readable to
machines, as well
as humans., Using
metadata and
ontologies to
facilitate
Generic Architecture of Web Applications
Document-Centric Web sites
 Precursors to Web applications
 Static HTML documents
 Manual updates
 Pros
 Simple, stable, short response times
 Cons
 High management costs for frequent updates
large collections
 More prone to inconsistent/redundant info
 Example static home pages
Introduction to Agile View Process
 The Agile thought process had started early in the software development and started
becoming popular with time due to its flexibility and adaptability.
 The most popular Agile methods include Rational Unified Process (1994), Scrum (1995),
Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature
Driven Development, and Dynamic Systems Development Method (DSDM) (1995).
 These are now collectively referred to as Agile Methodologies, after the Agile Manifesto
was published in 2001.
 It promotes disciplined project management. It talks about frequent inspection and
leadership philosophy.
 It allows to provide high quality software.
 It needs minimum planning, minimize overall risks and adapt changes quickly.
 Agile means dynamic, content specific and growth oriented systems.
 Customer satisfaction is rapid.
 Changes in the requirements are welcomed and considered at any point of time of
project development.
Image source- google.com
Agile process 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.
Agile Process Model
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.
What is Scrum?
 Scrum is a subset of Agile.
 It is a lightweight process framework for agile development, and the most widely-used one.
 A “process framework” is a particular set of practices that must be followed in order for a
process to be consistent with the framework.
 (For example, the Scrum process framework requires the use of development cycles called
Sprints, the XP framework requires pair programming, and so forth.)
 “Lightweight” means that the overhead of the process is kept as small as possible, to
maximize the amount of productive time available for getting useful work done.
 A Scrum process is distinguished from other agile processes by specific concepts and
practices, divided into the three categories of Roles, Artifacts, and Time Boxes.
 Scrum is most often used to manage complex software and product development, using
iterative and incremental practices.
 Scrum significantly increases productivity and reduces time to benefits relative to classic
“waterfall” processes.
 Scrum processes enable organizations to adjust smoothly to rapidly-
changing requirements, and produce a product that meets evolving
business goals. An agile Scrum process benefits the organization by
helping it to
 Increase the quality of the deliverables
 Cope better with change (and expect the changes)
 Provide better estimates while spending less time creating them
 Be more in control of the project schedule and state
eXtreme Programming(XP)
 Extreme Programming (XP) is an agile software development framework that aims to produce
higher quality software, and higher quality of life for the development team. XP is the most specific
of the agile frameworks regarding appropriate engineering practices for software development.
 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.
 When Applicable
 The general characteristics where XP is appropriate were described by Don Wells
on www.extremeprogramming.org:
 Dynamically changing software requirements
 Risks caused by fixed time projects using new technology
 Small, co-located extended development team
 The technology you are using allows for automated unit and functional tests
 Due to XP’s specificity when it comes to it’s full set of software engineering practices, there are
several situations where you may not want to fully practice XP. The post When is XP Not
Appropriate on the C2 Wiki is probably a good place to start to find examples where you may not
want to use XP.
 While you can’t use the entire XP framework in many situations, that shouldn’t stop you from using
as many of the practices as possible given your context.
Adaptive Software Development (ASD)
 Adaptive Software Development is a method to build complex software and system. ASD focuses
on human collaboration and self-organization. ASD “life cycle” incorporates three phases namely:
 1. Speculation:
During this phase project is initiated and planning is conducted. The project plan uses project
initiation information like project requirements, user needs, customer mission statement, etc, to
define set of release cycles that the project wants.
 2. Collaboration:
It is the difficult part of ASD as it needs the workers to be motivated. It collaborates communication
and teamwork but emphasizes individualism as individual creativity plays a major role in creative
thinking. People working together must trust each others to
 Criticize without animosity,
 Assist without resentment,
 Work as hard as possible,
 Possession of skill set,
 Communicate problems to find effective solution.
Adaptive Software Development (ASD)

 3. Learning:
The workers may have a overestimate of their own understanding of the
technology which may not lead to the desired result. Learning helps the
workers to increase their level of understanding over the project.
Learning process is of 3 ways:
 Focus groups
 Technical reviews
 Project postmortem
 ASD’s overall emphasis on the dynamics of self-organizing teams,
interpersonal collaboration, and individual and team learning yield
software project teams that have a much higher likelihood of success.
Dynamic Software Development Method(DSDM):
 The Dynamic Systems Development technique (DSDM) is an associate degree agile code
development approach that provides a framework for building and maintaining systems. 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.
 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
 Prototyping
 The DSDM project contains seven stages:
 Pre-project
 Feasibility Study
 Business Study
 Functional Model Iteration
 Design and build Iteration
 Implementation
 Post-project
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.
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.
What are the benefits of Agile?
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.

References:

 https://www.cprime.com/resources/what-is-agile-what-is-scrum/
 https://www.javatpoint.com/software-engineering-agile-model
 https://www.geeksforgeeks.org/dynamic-systems-development-method-
dsdm/
 Kappel, G., Proll, B. Reich, S. Retschitzegger,
W. (2006). Web Engineering, 1st ed. Hoboken, NJ
Wiley Sons. ISBN 04700-1554-3.
 http//www.sis.pitt.edu/jgrady/
For Queries and suggestions

Dr. Kavita Anandrao Khobragade


Head and Associate Professor,
Computer Science Department,
Fergusson College (Autonomous), Pune.

Email:-
kavita.khobragade@fergusson.edu
kavitanand@gmail.com

You might also like