Web Engineering
Web Development
Processes
Muhammad Umair Naru
Overview
Chapter 10: Kappel et al.
Selecting a Process
Fundamentals
Requirements
Heavyweight methods – RUP
Lightweight methods – XP
Meta-processes
The Need for a Formal Process
Many projects are done ad hoc & practically
Pro: Shorter development times
Con: Operation & maintenance suffer
No process models yet exist solely for Web
applications.
Development teams adapt existing conventional
software process models
Models often provide flexibility
But are they always a good fit?
A Few Definitions
Process Model – summarizes the development
approach in the overall context.
Organizational aspects
Estimating resources; timing
Examples: RUP, XP
Method – a detailed approach to solving a
development problem.
Requirements and Technology-oriented
Content-specific aspects
Example: A UML diagram
A Few Definitions (continued)
Iteration – a set of distinct activities that results in
a software release.
Reuse accumulated knowledge
The same steps may occur several times
Experienced teams, new application domain
Phase – the span of time between 2 milestones
Goal-oriented
Risk-oriented
Heavyweight vs. lightweight – the degree of
process formalization.
Process Requirements for the Web
1. Handling short development cycles
Expected duration: 3-6 months
Fast-cycle technology & marketing
2. Handling changing requirements
Many requirements emerge after development
begins.
Restructuring of data.
Evolving technologies & standards.
Strong customer involvement.
Process Requirements for the Web
3. Fixed Deadlines, but Flexible Contents
“Disposable” releases simply to demonstrate
functionality to customers.
Time is most critical.
Metrics?
4. Parallel Development of Releases
Small teams working on different versions of the
application concurrently.
Largely a project management problem.
Emphasis on communication.
Process Requirements for the Web
5. Reuse and Integration
What components are being used in other Web
development projects?
Modeling promotes reuse.
Caveat: are we spreading problems around?
6. Adapting to Complexity Level
The entire process may adapt as development
becomes more complex
The more complex an application, the more
formalized the process should be.
Rational Unified Process (RUP)
RUP is a heavyweight process framework.
Phase-oriented
Incremental
Iterative
Designed for high-complexity, high-quality
applications.
RUP methods are grouped into core workflows
(or “disciplines”) – similar to the “phases”
described in Chapter 1.
RUP Phases
Inception: Requirements, Scope, and initial Architecture
Elaboration: Define architecture, platform, fixed price
Construction: Finish analysis; design & coding
Transition: Deliver application to customer
RUP Core Workflows
(Disciplines)
Key Principles Behind RUP
Adapt the process
Balance stakeholder priorities
Collaboration across teams
Demonstrate value iteratively
Encourage abstraction
Focus continuously on quality
RUP’s Suitability for Web Apps
Inception – POOR, because assumptions
may change as the project progresses.
Elaboration – POOR
Developing suitable system outweighs
measuring price.
Internet largely defines system architecture.
Construction - GOOD
Transition – GOOD; in some cases easier
because distribution is automatic.
RUP & Process Requirements
Short development cycles: POOR fit
Changing requirements: POOR fit
Fixed deadlines, Flexible content: POOR fit
Parallel development: FAIR fit
Reuse and integration: GOOD reuse; POOR
integration
Adapting to complexity level: GOOD fit for
some phases.
Extreme Programming (XP)
XP is one of the most popular forms of agile
processes.
Iterative, “test-first”
More human-centric/feedback-oriented
4 Core Values
Communication
Simplicity
Feedback
Courage
XP – A Process Overview
Rapid Successive Releases
XP – An Iteration View
XP & Process Requirements
Short development cycles: GOOD fit
Changing requirements: GOOD fit
Fixed deadlines, Flexible content: GOOD fit
Parallel development: FAIR fit
Reuse and integration: POOR fit
Adapting to complexity level: POOR fit
The Meta-Process Alternative
Agile processes are generally preferred for
the Web, but have 2 main obstacles:
Scalability & Complexity
High demands on team members
Handling scalability and complexity occurs
over the course of several projects.
A meta-process across software development
projects can help manage these changes.
The Meta-Process Alternative