Web Application Development Process



Similar documents
Web Application Development Processes: Requirements, Demands and Challenges

Web Application Architectures

Quality Assurance Software Development Processes

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Classical Software Life Cycle Models

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software Engineering

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Requirements Engineering for Web Applications

Agile Modeling: A Brief Overview

COMP 354 Introduction to Software Engineering

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

Software Life Cycles and Configuration Management

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

SOFTWARE PROCESS MODELS

The most suitable system methodology for the proposed system is drawn out.

EFFECTIVE SOFTWARE PROJECT MANAGEMENT

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

Agile Unified Process

Basic Unified Process: A Process for Small and Agile Projects

3C05: Unified Software Development Process

Basic Trends of Modern Software Development

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Agile Software Development Methodologies and Its Quality Assurance

Software Process and Models

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

SOFTWARE ENGINEERING CSC 423 B - MWF EXTREME PROGRAMMING

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Chapter 3. Technology review Introduction

Agile Techniques for Object Databases

CS4507 Advanced Software Engineering

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Agile So)ware Development

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

Large Scale Systems Design G52LSS

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Chapter 1 The Systems Development Environment

Project Management in the Rational Unified Process

Agile Projects 7. Agile Project Management 21

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Comparison between Agile and Traditional software development methodologies

A Review of an MVC Framework based Software Development

Increasing Development Knowledge with EPFC

Software Development Methodologies

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Introduction to Software Engineering: Project Management ( Highlights )

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Rapid Software Development

How To Adopt Rup In Your Project

How To Understand The Software Process

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Software Development with Agile Methods

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Development. Lecture 3

White Paper IT Methodology Overview & Context

Chap 1. Introduction to Software Architecture

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Software development processes Life-cycle Models

INF5120 Modellbasert Systemutvikling

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Software Development Methodologies

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Plan-Driven Methodologies

CSE 435 Software Engineering. Sept 16, 2015

The Rap on RUP : An Introduction to the Rational Unified Process

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Surveying and evaluating tools for managing processes for software intensive systems

AGILE vs. WATERFALL METHODOLOGIES

To introduce software process models To describe three generic process models and when they may be used

Software Development Life Cycle (SDLC)

Enhance visibility into and control over software projects IBM Rational change and release management software

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

A Comparative Analysis and Evaluation of Different Agile Software Development Methodologies

Redesigned Framework and Approach for IT Project Management

Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson

Alan Dennis, Barbara Haley Wixom, and Roberta Roth John Wiley & Sons, Inc. Slides by Candace S. Garrod Red Rocks Community College 3-1

Project estimation with Use Case Points using Enterprise Architect (EA)

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Agile Software Project Management Methodologies

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

An Approach for assessing the Quality of Software for small and medium sized firms

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes

TOGAF usage in outsourcing of software development

Extreme programming (XP) is an engineering methodology consisting of practices that ensure top-quality, focused code. XP begins with four values:

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

Transcription:

Web Engineering Web Application Development Process Copyright 2013 Ioan Toma & Srdjan Komazec 1 Where we are? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements Engineering for Web Applications 3 19 th March Web Application Modeling 4 9 th April Web Application Architectures 5 16 th April Developing Applications with WebML 6 23 rd April Testing and Usability of Web Applications 7 30 th April Maintenance and Performance of Web Applications 8 7 th May Web Technologies I 9 14 th May Web Technologies II 10 21 st May Web Application Development Process 11 28 th May Project Management for Web Applications 12 4 th June Web Application Security 13 11 th June Mobile Application Development I 14 18 th June Mobile Application Development II 14 25 th June Final Exam 2 1

Overview Introduction Definitions Requirements for a Web Application Development Process Rational Unified Process (RUP) Extreme Programming (XP) Meta-processes Wrap-up 3 INTRODUCTION 4 2

The Need for a Formal Process Many projects are done quick and dirty Pro: shorter development times Con: low quality, i.e. higher operation & maintenance costs Two solutions: Adapt existing conventional software process models Models often provide flexibility But are they always a good fit? Develop new Web application specific process models 5 Definitions: Model vs. Method Process Model Describes the development approach in the overall context When something should be done Falls under the organizational aspects Examples: RUP, XP Heavyweight vs. lightweight the degree of process formalization Method Describe the development approach in details How something should be done When it can be done Falls under content-specific aspects Example: a UML diagram 6 3

Definitions: Model vs. Method E.g. If the use of a specific UML diagram is recommended to achieve a specific goal, as practiced in RUP, then this is part of the methods, because the goal pursued here is content specific. If it s suggested to program in pairs, as practiced in XP, then this is also a methodological recommendation, since the benefits of such an approach are primarily an improvement in code quality. While the decision to use programming in pairs is part of the XP process. 7 Definitions: Iteration and Phases 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 Literature often erroneously speaks of phases to mean methodological activities, namely requirements definition, analysis, design, implementation, testing, and maintenance. This corresponds to an approach according to the traditional waterfall model, where methodological activities follow one another linearly. Risk handling postponed 8 4

Process Requirements for the Web Handling short development cycles Fast-cycle technology & marketing Handling changing requirements Many requirements emerge after development begins Restructuring of data Evolving technologies & standards Strong customer involvement Business level decisions impact on requirements for processes 9 Process Requirements for the Web Fixed Deadlines vs. Flexible Contents Disposable releases to demonstrate functionality Time is most critical (very short, e.g. 2-15 days) Parallel Development of Releases Small teams working on different versions of the application concurrently Largely a project management problem Emphasis on communication Handling quick reactive changes requires prototyping Release is defined by date not by feature anymore Requirements become flexible Such a technique is also supported by the fact that metrics for cost in web applications are hard to be used for long term plans 10 5

Process Requirements for the Web Reuse and Integration Coordination among the different projects that will reuse the component Modeling promotes reuse Push the problem towards integration and increase the risk of problem spread across different projects Adapting to Complexity Level Process should adapt as development becomes more complex The more complex an application, the more formalized the process should be Reuse pushed by short delivery times Integration is a bigger problem when having third parties involved 11 THE RATIONAL UNIFIED PROCESS 12 6

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 ) 13 4 RUP Phases 1. Inception Requirements, Scope, and initial Architecture 2. Elaboration Define architecture, platform, fixed price 3. Construction Finish analysis; design & coding 4. Transition Deliver application to customer 14 7

RUP Core Workflows 15 Key Principles Behind RUP Adapt the process Balance stakeholder priorities Collaboration across teams Demonstrate value iteratively Encourage abstraction Focus continuously on quality 16 8

RUP s Suitability for Web Apps Inception POOR Assumptions may change as the project progresses Elaboration POOR Developing suitable system outweighs measured price Internet largely defines system architecture Construction GOOD Transition GOOD In some cases easier because distribution is automatic Overkill (too heavyweight for web apps) Fine grained architecture: web technologies are changing fast; hard to have a methodology to couple with this 17 RUP & Process Requirements of Web apps Short development cycles: POOR Changing requirements: POOR Fixed deadlines, Flexible content: POOR Parallel development: FAIR Reuse and integration GOOD reuse POOR integration Adapting to flexibility level: GOOD 18 9

EXTREME PROGRAMMING 19 Extreme Programming (XP) XP is one of the most popular forms of agile processes Iterative, test-first More human-centric/feedback-oriented Created by Kent Beck during his work on the Chrysler Comprehensive Compensation System (C3) payroll project in 1996. Core Values Communication Simplicity Feedback Respect Courage 20 10

Simplicity We will do what is needed and asked for, but no more. This will maximize the value created for the investment made to date. We will take small simple steps towards our goal and mitigate failures as they happen. We will create something we are proud of and maintain it long term for reasonable costs. 21 Communication Everyone is part of the team and we communicate face to face daily. We will work together on everything from requirements to code. We will create the best solution to our problem that we can together. 22 11

Feedback We will take every iteration commitment seriously by delivering working software. We demonstrate our software early and often then listen carefully and make any changes needed. We will talk about the project and adapt our process to it, not the other way around. 23 Respect Everyone gives and feels the respect they deserve as a valued team member. Everyone contributes value even if it's simply enthusiasm. Developers respect the expertise of the customers and vice versa. Management respects our right to accept responsibility and receive authority over our own work. 24 12

Courage We will tell the truth about progress and estimates. We don't document excuses for failure because we plan to succeed. We don't fear anything because no one ever works alone. We will adapt to changes when ever they happen. 25 XP A Process Overview Rapid Successive Releases 26 13

XP An Iteration View 27 XP & Process Requirements Short development cycles: GOOD Changing requirements: GOOD Fixed deadlines, Flexible content: GOOD Parallel development: GOOD Reuse and integration: POOR Adapting to complexity level: POOR 28 14

The Meta-Process Alternative Agile processes are generally preferred for the Web, but have 2 main shortcomings: 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. 29 The Meta-Process Alternative 30 15

That s almost all for day WRAP-UP 31 Things to keep in mind (or summary) A good development process is important Reduce costs Allow to achieve goals Adapts to new problems Project Management is part of the meta-development process (process about the process) Minimize risks Enable development process monitoring Requires integration with the development process ( probe points) 32 16

Bibliography Mandatory reading Kappel, G., Proll, B. Reich, S. & Retschitzegger, W. (2006). Web Engineering, Wiley & Sons. 10 th Chapter Suggested IBM Rational Unified Process http://en.wikipedia.org/wiki/ibm_rational_unified_process Extreme Programming http://en.wikipedia.org/wiki/extreme_programming Meta-process modeling http://en.wikipedia.org/wiki/meta-process_modeling 33 Next Lecture # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements Engineering for Web Applications 3 19 th March Web Application Modeling 4 9 th April Web Application Architectures 5 16 th April Developing Applications with WebML 6 23 rd April Testing and Usability of Web Applications 7 30 th April Maintenance and Performance of Web Applications 8 7 th May Web Technologies I 9 14 th May Web Technologies II 10 21 st May Web Application Development Process 11 28 th May Project Management for Web Applications 12 4 th June Web Application Security 13 11 th June Mobile Application Development I 14 18 th June Mobile Application Development II 14 25 th June Final Exam 34 17

Questions? 35 18