CS 446 / ECE 452: Software Design and Architecture RUP and XP. Instructor: Krzysztof Czarnecki

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

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Development Methodologies

Quality Assurance Software Development Processes

3C05: Unified Software Development Process

Supporting Workflow Overview. CSC532 Fall06

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Software Engineering

SOFTWARE PROCESS MODELS

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

Agile with XP and Scrum

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

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

Basic Unified Process: A Process for Small and Agile Projects

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

RUP and XP, Part I: Finding Common Ground

Web Application Development Process

SOFTWARE ENGINEERING CSC 423 B - MWF EXTREME PROGRAMMING

Plan-Driven Methodologies

CSSE 372 Software Project Management: More Agile Project Management

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

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

Agile and Secure: Can We Be Both?

Chap 1. Introduction to Software Architecture

Software Process. Successful Software Production between Extreme Programming and Rational Unified Process Short Version

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

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

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

Applying Agile Methods in Rapidly Changing Environments

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

Family: Iterative Enhancement Origin: Ivar Jacobson, James Rumbaugh, Grady Booch, 1996 Defines process framework that is adaptable to

XP and Design. Paulo Caroli & Sudhindra Rao. ThoughtWorks

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

MANAGEMENT S ROLE 1/16/ Copyright 2001, Net Objectives

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

Laboratório de Desenvolvimento de Software

A Comprehensive Study of Commonly Practiced Heavy & Light Weight Software Methodologies

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

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

Classical Software Life Cycle Models

An Iterative and Agile Process Model for Teaching Software Engineering

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Software processes that are:

EPL603 Topics in Software Engineering

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Agile Techniques for Object Databases

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

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

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

Hamid Faridani March 2011

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

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

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

The Unified Software Development Process

ISO 9001:2000 Its Impact on Software

Agile Modeling: A Brief Overview

CSE 435 Software Engineering. Sept 16, 2015

AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

I219 Software Design Methodology

Software Life Cycles and Configuration Management

How To Understand The Software Process

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

Corso di Laurea Magistrale in Informatica, Università di Padova Tecnologie open-source, Anno accademico 2010/2011. Development Processes 1 / 51

Introduction to extreme Programming (XP)

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

Software Development Life Cycle (SDLC)

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Software Development Methodologies

Using Use Cases on Agile Projects

Information systems modelling UML and service description languages

Software Project Management using an Iterative Lifecycle Model

Implementation Workflow

Object Oriented Hybrid Software Engineering Process (SEP) model for Small Scale Software Development Firms

TOGAF usage in outsourcing of software development

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

Software Process and Models

Unit 1 Learning Objectives

INF5120 Modellbasert Systemutvikling

Agile Software Development Methodologies and Its Quality Assurance

An Introduction to Extreme Programming

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden

Planning a Project with the Rational Unified Process Author: David West

Abstract. Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Introduction to OpenUP (Open Unified Process)

Software Development Methodologies

CS4507 Advanced Software Engineering

Session-1: Business Enterprise Applications- Overview

Moving from a Plan Driven Culture to Agile Development

Evaluation of Commercial Web Engineering Processes

THESIS: MODERN SOFTWARE PROJECT MANAGEMENT

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

Extreme Programming and Rational Unified Process Contrasts or Synonyms?

What is a life cycle model?


Software Development Life Cycle

Integrating Requirements Engineering into Software Engineering Processes

Chapter 3. Technology review Introduction

Transcription:

CS 446 / ECE 452: Software Design and Architecture RUP and XP Instructor: Krzysztof Czarnecki 1

What Is a Software Engineering Process? A process defines Who is doing What, When and How in the development of a software system Roles and workflows Workproducts Milestones Guideline New or changed requirements Software Engineering Process New or changed system 2

Process vs. Product Participants playing roles Process model Template Automation Tools People Project Produces Deliverables/Workproducts Final product 3

An Effective Process... Provides guidelines for efficient development of quality software Reduces risk and increases predictability Captures and presents best practices Learn from other s experiences Mentor on your desktop Extension of training material Promotes common vision and culture Provides roadmap for applying tools Delivers information on-line, at your finger tips 4

Lightweight vs. Heavyweight Processes Heavyweight e.g., V-Process Customizable Framework e.g., Rational Unified Process (RUP) Agile (Lightweight) e.g., extreme Programming (XP) Document driven Elaborate workflow definitions Many different roles Many checkpoints High management overhead Highly bureaucratic Focus on working code rather than documentation Focus on direct communication (between developers and between developers and the customer) Low management overhead 5

Process choice Process used should depend on type of product which is being developed For large systems, management is usually the principal problem so you need a strictly managed process. For smaller systems, more informality is possible. High costs may be incurred if you force an inappropriate process on a development team 6 Ian Sommerville 1995 [modified]

Rational Unified Process Main Characteristics Iterative and incremental Use-case-driven Architecture-centric Uses UML as its modeling notation Process framework Comprehensive set of document templates, process workflow templates, and process guidelines Distributed by IBM/Rational on a CD 7

Rational Unified Process Is Use- Case-Driven Use cases are concise, simple, and understandable by a wide range of stakeholders End users, developers and acquirers understand functional requirements of the system Use cases drive numerous activities in the process: Creation and validation of the design model Definition of test cases and procedures of the test model Planning of iterations Creation of user documentation System deployment Use cases help synchronize the content of different models 8

Rational Unified Process Is Architecture-Centric Architecture is the focus of the elaboration phase Building, validating, and baselining the architecture constitute the primary objective of elaboration The Architectural Prototype validates the architecture and serves as the baseline for the rest of development The Software Architecture Description is the primary artifact that documents the architecture chosen Other artifacts derive from architecture: Design guidelines including use of patterns and idioms Product structure Team structure 9

Representing Architecture: The 4+1 View Model Analysts/ Designers Structure System Integrators Performance Scalability Throughput Logical View End-user Functionality Process View Use-Case View Implementation View Deployment View Programmers Software management System Engineering System topology Delivery, installation communication 10

Process Architecture - Lifecycle Phases Inception Elaboration Construction Transition time The Rational Unified Process has four phases: Inception - Define the scope of project Elaboration - Plan project, specify features, baseline architecture Construction - Build the product Transition - Transition the product into end user community 11

Phase Boundaries Mark Major Milestones Inception Elaboration Construction Transition time Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milestone Product Release 12

Iterations and Phases Inception Elaboration Construction Transition Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Transition Iteration Iteration Minor Milestones: Releases An iteration is a distinct sequence of activities with an established plan and evaluation criteria, resulting in an executable release (internal or external) 13

Major Workflows Produce Models Business Modeling Business Model supported by Requirements realized by Analysis & Design Use-Case Model Design Model implemented by Implementation verified by Test Implementation Model Test Model 14

Process Workflows RUP Overview Phases Inception Elaboration Construction Transition Business Modeling Requirements Architecture & Design Implementation Test Deployment Supporting Workflows In an iteration, you walk through all workflows Configuration Mgmt Workflows group activities logically Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iterations Iter. #n+2 Iter. #m Iter. #m+1 15

XP Overview Characteristics Release Planning Write tests Pair Programming + Refactoring Test Integration Every 2-3 weeks Min. daily Evolutionary development Collection of 12 Best Practices Focus on working code that implements customer needs (rather than documents) Testing is a crucial element of the process Focus on flexibility and efficiency of the process Designed for small teams (<10) 16

XP Practices (I) The planning game Stakeholder meeting to plan the next iteration Business people decide on business value of features Developers on the technical risk of features and predicted effort per feature Small releases Start with the smallest useful feature set; release early and often, adding a few features each time Metaphor Each project has an organizing metaphor, a providing easy to remember naming conventions 17

XP Practices (II) Simple Design Always use the simplest possible design that gets the job done (runs the tests and states intentions of the programmer) No speculative genericity Testing Test-first: write test, then implement it Programmers write unit tests and customers write acceptance tests Refactoring Refactoring is done continuously; the code is always kept clean 18

XP Practices (III) Pair programming All production code written by two programmers One programmer is thinking about implementing the current method, the other is thinking strategically about the whole system Pairs are put together dynamically http://www.cs.utah.edu/~lwilliam/papers/ieeesoftware.pdf Collective code ownership Any programmer that sees an opportunity to add value to any portion of the code is required to do so at any time Continuous integration Use of version and configuration management (e.g., CVS) All changes are integrated into the code-base at least daily The tests have to run 100% before and after the integration 19

XP Practices (IV) 40-h week Programmers go home on time Overtime is a symptom of a serious problem No errors by tired developers; better motivated developers On-site customer Development team has continuous access to a real life customer/user Coding standards Everyone codes to the same standards Ideally, you should not be able to tell by looking at it who has written a specific piece of code 20

XP Advantages Integrated, simple concept Low management overhead (no complicated procedures to follow, no documentation to maintain, direct communication, pair programming) Continuous risk management (early feedback from the customer) Continuous effort estimation Emphasis on testing; tests help in evolution and maintenance 21

XP Disadvantages Appropriate for small teams (up to 10 developers) only (does not scale) Large development groups may require more structures and documents If maintainers are not the people that developed the code, good documentation is necessary Generic design may be necessary to enable expected future development 22

Reading RUP Craig Larman, Applying UML and Patterns: An Introduction to Object- Oriented Analysis and Design and the Unified Process, Prentice-Hall, 2002 (2nd edition) Kendall Scott. The Unified Process Explained. Addison Wesley, 2001 Agile development Kent Beck, Extreme Programming: Explained, Addison-Wesley, 1999 R. Jeffries, C. Hendrikson, A. Anderson, Extreme Programming Installed, Addison-Wesley, 2001 http://member.netease.com/~wooce/tip/se/ Alistair Cockburn, Agile Software Development, Addison-Wesley 2002 Online-Ressourcen http://www.xprogramming.com http://www.xprogramming.org http://groups.yahoo.com/group/extremeprogramming http://c2.com 23