Unified Process and Testing with EasyAccept. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 22, 2007

Similar documents
Development Process Bennett, McRobb and Farmer 1

Sistemi ICT per il Business Networking

The Unified Software Development Process

The Top Thrill Dragster

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

System Sequence Diagrams. CSC 440: Software Engineering Slide #1

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Rational Unified Process

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Processes and Life- Cycles. Kristian Sandahl

Requirements Analysis. Overview

The software process

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Coverage Analysis and Improvement of the Role Definitions of the Bombardier Software Engineering Process

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Chapter 3 Software Process Model

An Oracle White Paper February Oracle Unified Method (OUM) Oracle s Full Lifecycle Method for Deploying Oracle-Based Business Solutions

MSO Lecture 2. Wouter Swierstra (adapted by HP) September 14, 2017

Software development activities

Object-Oriented & Classical Soft Engineering

03. Perspective Process Models

CMPT 275 Software Engineering

Requirements Analysis

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

Introduction to Software Engineering

Software Life Cycle. Main Topics. Introduction

PART II Inception. Chapter 4 Inception is Not the Requirements Phase. development cycle. phase. iteration. inc. elaboration construction transition

Software Lifecycle Models

Object-Oriented and Classical Software Engineering

SEI Architecture Techniques complementary to the RUP Stuart Kerrigan, Richard van Schelven Principal Engineers Data Networks

Object-Oriented Analysis and Design PART1: ANALYSIS

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Agility with the RUP. What Is the Rational Unified Process? by Philippe Kruchten Director of Process Development Rational Software

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

Unifying Systems and Software Teams: A Holistic Approach to Systems Development

Nigel Beacham Department of Computing Science L4 REQUIREMENTS DURING INCEPTION (CS5037 SYSTEMS ANALYSIS AND DESIGN)

Requirements Engineering and Agile Methodology

TOWARDS DEFINING SOFTWARE DEVELOPMENT PROCESSES IN DO-178B WITH OPENUP

Note 10: Software Process

Requirements Engineering and SCRUM. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 13, 2007

DRAFT. Effort = A * Size B * EM. (1) Effort in person-months A - calibrated constant B - scale factor EM - effort multiplier from cost factors

[Name] [ ID] [Contact Number]

The Macro Process Is the Micro Process

The Product Creation Process

Joined-up Requirements: Business Goals to System Tests

Software Reviews Since Acquisition Reform Architecture-Driven Considerations

Prof. Dr. Liggesmeyer, 1. Quality Management of Software and. Processes and QM. Systems. QMSS Processes and QM

Object-Oriented Analysis/Design and Use Cases Object Oriented Analysis and Design

Agile Architecture And Design

The Integrated Model Using Agile Practices to CBR

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Umeå University Department of Computing Science SE UMEÅ SWEDEN

RUP and XP Part II: Valuing Differences

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Role of Technical Complexity Factors in Test Effort Estimation Using Use Case Points

Inception. Describe the vision and business case for this project. Determine if the enterprise should build or buy the necessary system.

SDLC Models- A Survey

Quality Management of Software and Systems: Processes and QM

RESEARCHERS and practitioners have realized that

A New Divide & Conquer Software Process Model

Using the Rational Unified Process for Small Projects: Expanding Upon extreme Programming

Collaborative Development of Systems Architecting Design Rules

Core Issues Affecting Software Architecture in Enterprise Projects

Requirements Engineering

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Course Organization. Lecture 1/Part 1

INF5181: Process Improvement and Agile Methods in Systems Development

Passit4Sure.OG Questions. TOGAF 9 Combined Part 1 and Part 2

The Art of Agile Practice

Development Environment Definition

Chapter 1 Systems Development in an Organization Context

A Hybrid Approach Using RUP and Scrum as a Software Development Strategy

Analyze, Design, and Develop Applications

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

Expand application range with respect to consider the whole system. Consider state of the art and adapt actual regulations and standards

Applying the Incremental Commitment Model to Brownfield System Development

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

Build Your Project Using Feature Driven Development #4 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M.

Time Monitoring Tool Iteration Plan <Iteration 4> Version <1.0>

Introduction to Systems Analysis and Design

COCOMO II Demo and ARS Example

Mapping Service-Orientation to TOGAF 9 Part IV: Applying Service-Orientation to TOGAF s Service Contracts

Chapter 1 Software Process

Pertemuan 2. Software Engineering: The Process

Agile Project Management

Agile Tutorial for the Senior Project Class School of Computing and Information Sciences Florida International University

Chapter 2: The Project Management and Information Technology Context

CHAPTER 2 LITERATURE SURVEY

CIOReview SPARX SYSTEMS INTELLIGENTLY ARCHITECTING THE INFORMATION SILOS ENTERPRISE ARCHITECTURE SPECIAL

1fJ.- HEWLETT. Architecting for Large-Scale Systematic Component Reuse. Martin L. Griss Software Technology Laboratories HPL July, 1998

SE420 Software Quality Assurance

Babu Madhav Institute of Information Technology, UTU 2017

Agile Software Development

Requirements Engineering. Andreas Zeller Saarland University

NDIA th Annual Systems Engineering Conference. MBSE to Address Logical Text-Based Requirements Issues. Saulius Pavalkis, PhD, No Magic, Inc.

making money from customer use of kiosk attracting more customers to the store saving money if the kiosk replaces manual operations

Transcription:

Unified Process and Testing with EasyAccept Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 22, 2007

2 UP Unified Process, 1990 s Iterative, not agile Risk-driven development in early iterations focusing on creation of the core architecture and driving down the high risks 2-6 weeks iterations

3 History of UP Some of the roots in spiral model of Barry Boehm Core initial development around 1995-98 Large Canadian Air Traffic Control project as test bed Phillippe Kruchten chief architect of UP/RUP Rational Corporation had commercial product in mind (RUP) but also reached out to public domain (UP)

4 Unified Process (UP) Popular iterative process framework, especially its refinement: Rational Unified Process (RUP) Key practices and guidelines: Short time-boxed iterations Develop high-risk elements in early iterations Deliver value to customer Accommodate change early in project Work as one team

5 Unified Process

6 Classification of UP Average projects: iteration length of 2-6 weeks Very flexible in degree of ceremony, over 50 optional work products usable to increase ceremony if needed Yet encourages light touch

7 Characteristics of UP Iterative process framework, typically customized to be a process description for the organization All work products ( artifacts ) are optional and their order arbitrary. Work products serve as common vocabulary for the team. RUP is a process framework and licensed product (tool plus web pages) Artifacts are information abstractions, e.g. Vision or Risk List, organized in disciplines, e.g. Requirements Discipline

8 Disciplines within iterations Example disciplines: Requirements, Design, Project Management, Implementation Development Case of UP: UP tailored for each project, choose sets of practices and work products to create ( less is better ) Disciplines addressed in each iteration but to varying degree

9 Life cycle in four phases Inception Business case, vision, identify high risks & 10% of key reqs in detail, estimate elaboration effort Elaboration Core & architecturally significant parts coded/tested, key risks identified/mitigated, 80% of major reqs evolved/defined Construction Builds remaining system in short iterations, efficient and predictable due to solid elaboration Transition Exposes release candidate for review/feedback, then deployment

10 Some prominent work products Vision: summary of objectives, features, business case Software Architecture Document: Short learning aid to understand the system Test Plan: summary of goals and methods of testing Iteration Plan: detailed plan for the next iteration Change Request: uniform way to track all requests for work, e.g. defects

11 Workflows Notation/Technique Test Implementation Design Analysis Requirements Inception Elaboration Construction... State Diagrams Activity graphs CRC Cards Class Diagrams Use Cases Application Domain Navigation Presentation Products Transition Phases

12 Example roles in UP Stakeholder: customer, product manager, etc Software Architect: establishes and maintains architectural vision Process Engineer: leads definition and refinement of Development Case Graphic Artist: assists in user interface design, etc

13 Some UP Guidelines Attack risks early and continuously before they will attack you Stay focused on developing executable software in early iterations Prefer component-oriented architectures and reuse of existing components Baseline an executable architecture early

14 Six Best must Practices Time-boxed iterations Avoid attempting large, up-front requirements Strive for cohesive architecture and reuse existing components On large projects: reqs & core architecture developed by small co-located team; then early team members divide into sub-project leaders Continuously verify quality Test early, often, and realistically by integrating all software each iteration

15 Six Best must Practices (2) Visual modeling Prior to programming, do at least some visual modeling to explore creative design ideas Manage requirements Find, organize, and track requirements iteratively through skillful means. Use tools. Manage change Disciplined configuration management and version control, change request protocol, base-lined releases at the end of each iteration

16 How to fail with UP elaboration phase goal is to create a throwaway prototype iterations too long prototypes are acceptable in UP, e.g. during inception, but elaboration goal is creation of subset of final system iterations should typically be 2-6 weeks long not months team should do lots of modelling and UML diagrams, and use a CASE tool UP contains optional models with potential use of UML but UP also compatible with agile approach, e.g. whiteboard hand sketches etc

17 How to fail with UP (2) Not conforming to official UP work product or phase names common vocabulary vital within organization and across global UPconforming teams Development Case too complex, too many work products less is better, UP recommends adding work products that really add value Software Architecture Document finished before end of elaboration UP SAD is learning aid, so this would imply up-front design

18 Signs that your UP expert is not worth her money describes UP phases similar to waterfall phases suggests iteration lengths > 6 weeks recommends inception phase several weeks long does not stress importance of early programming near the start, defines believable plan specifying number of iterations, their duration, etc encourages more and more work product creation

19 UP in The Real World Large: Canadian Air Traffic Control System Ten years, Ada and C++, test bed for practices RUP, previous failed waterfall attempt 11 years & $ 2.6 billion USD Medium: Ogre Nextgen Economic Modeling System 2 years, Java technologies, decision support system for oil/gas asset holders Small: QUICKcheck point-of-sale, 1 year, six people, Java technologies, selfcheckout system for grocery stores (main developer: Kyrus)

Originally developed by Rational An iterative process framework Key Ideas and Practices Project lifecycle phases Identifies workers, activities, artifacts Promotes certain practices: Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software Analyst Peter Dolog, SOE, Unified Process & TestwithEasyTest 20

21 Rational Unified Process(RUP) Evolved from Unified Process developed by the the three Amigos Booch, Rumbaugh and Jacobson. Philippe Krutchen made a detailed refinement on UP and hence came RUP Main focus on Iterative and Incremental Development

22 Is RUP agile? RUP can be used in a very traditional waterfall style or in an agile manner. You can use RUP as a agile process, or as a heavyweight process - it all depends on how you tailor it in your environment. Martin Fowler Craig Larman is a strong proponent of using the RUP in an agile manner

23 Rational Unified Process Wide spread methodology championed by Rational Corporation Combines water-fall and evolutionary development Plan a little, design a little, code a little. Aims to minimizes risk of failure Breaks system into mini-projects, focusing on riskier elements first Other (claimed) advantages Does it work? Encourages all participants, including testers, integrators, and documenters to be involved earlier on Mini-waterfalls centered around UML, a particular OO-methodology CASE-TOOL support (of course, from Rational) Many positive case studies although benefits difficult to quantify

24 Rational Unified Process (RUP) Philippe Kruchten Ivar Jacobson Grady Booch James Rumbaugh ISBN: 0-201-70710-1

25 RUP - overview Artifacts Analysis model Process Workflows Business Modelling Requirements Analysis & Design Faser Inception Elaboration Construction Transition Design model Implementation model Test Test model RUP - philisophy - Iterations / Increments - Use case driven - Architecture centered - Visual (UML) - Configurable process - Risk driven Deployment model Use case model Software Architecture Document Risk list 1. Xxx xxx 2. Xx xx xxx 3. Xx xxxxxxx RUP - key elements - Phases - Iterations - Workflows - Activities - Roles - Artifacts Architect User Iteration plan Project Manager Role Contents of a workflow Activity Implementation Test Deployment Supporting Workflows Configuration Mgmt. Project Management Environment Artifact Artifact Artifact Prelimenary iterations I-1 I-2 I-3 I-4 I-5 I-6 I-7 I-8 I-9 Iterations Risk & iterations $ Architecture & system I1 I2... Domain knowledge

Rational Unified Process (a form of controlled iteration) Process Workflows Inception Elaboration Phases Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Workflows Configuration Mgmt Management Environment Preliminary Iteration(s) Peter Dolog, SOE, Unified Process & TestwithEasyTest Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iterations within phases Iter. #m+1 26

27 Larman s Design Process Sample UP Artifact Relationships Domain Model Business Modeling date... Sale 1 1..* Sales... LineItem... quantity Use-Case Model Process Sale inspiration for names of some software domain objects Requirements starting events to design for, and detailed postcondition to satisfy Cashier Process Sale Use Case Diagram Operation: enteritem( ) Post-conditions: -... Operation Contracts ideas for the postconditions use case names system operations : Register : Cashier 1. Customer arrives... 2.... 3. Cashier enters item identifier. Use Case Text system events make NewSale() enteritem (id, quantity) : System System Sequence Diagrams Design Model functional requirements that must be realized by the objects : ProductCatalog Glossary Supplementary Specification item details, formats, validation non-functional requirements domain rules : Sale Design enteritem (itemid, quantity) d = getproductdescription(itemid) addlineitem( d, quantity )... Register makenewsale() enteritem(...)... * 1... ProductCatalog getproductdescription(...)...

28 Acceptance Testing with EasyAccept Story Test-Driven Driven Development Test Driven Development by Example Client Verifiable Artifacts

29 Benefits Precise and effective communication between client and developer Executable artefacts for tests Readable by clients Quality agreements All parties know the state of the art of the features

30

31 Commands expect used to express an expected result of a command. Example: expect 5/10/1972 getbirthdate name=john expecterror used in situations where a command should result in an error. Example: expect "There is no such customer" getbirthdate name=mary equalfiles used to check if two files are equal; this is useful for massive textual or non-textual testing. Example: equalfiles result.txt template.txt expecttable used to do tabular input/output testing. Example: expecttable jewelname getjewelcolor ruby red emerald green sapphire blue

32

33

34

35 Process