1 OpenUP Distilled Per Kroll Mgr. of Methods IBM Brian Lyons CTO Number Six Software

Slides:



Advertisements
Similar presentations
September 2008Mike Woodard Rational Unified Process Key Concepts Mike Woodard.
Advertisements

Armstrong Process Group, Inc. Copyright © , Armstrong Process Group, Inc., All rights reserved Armstrong Process Group,
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
The Business Analyst Role in Agile Projects
PRJ270: Essentials of Rational Unified Process
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Object-oriented Analysis and Design
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Iterative development and The Unified process
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
© 2005 Prentice Hall2-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 RUP Architecture.
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 3: Phase Management - Inception.
What is Business Analysis Planning & Monitoring?
© 2005 Prentice Hall14-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Principles of Object Technology Module 1: Principles of Modeling.
What is the Eclipse Process Framework. 2 Agenda What is Eclipse Process Framework (EPF) OpenUP Overview and Demo EPF Future Vision.
UML - Development Process 1 Software Development Process Using UML (2)
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
RUP Fundamentals - Instructor Notes
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Chapter 2 The process Process, Methods, and Tools
Ontologies Reasoning Components Agents Simulations The Eclipse Process Framework Breno Machado.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Testing Challenges in an Agile Environment Biraj Nakarja Sogeti UK 28 th October 2009.
Software Process Models.
Identify steps for understanding and solving the
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
CHECKPOINTS OF THE PROCESS Three sequences of project checkpoints are used to synchronize stakeholder expectations throughout the lifecycle: 1)Major milestones,
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Rational Unified Process Fundamentals Module 5: Implementing RUP.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Rational Unified Process Fundamentals Module 3: Disciplines I.
Rational Unified Process (RUP) Process Meta-model Inception Phase These notes adopted and slightly modified from “RUP Made Easy”, provided by the IBM Academic.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
PRJ566 Project Planning & Management Software Architecture.
Project Initiation at The Regence Group 12/19/2015John Garrigues1.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Rational Unified Process (RUP)
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Process Models.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 Rational Unified Process – Part 2 Original slides modified.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
The Latest In Agile Processes - OpenUP Per Kroll, Chief Architect IBM Rational Expertise Development & Innovation, IBM
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Iterative development and The Unified process
TK2023 Object-Oriented Software Engineering
Software Development.
Process 4 Hours.
Introduction to Eclipse Process Framework: EPF Composer and OpenUP
Unified Process Source & Courtesy: Jing Zou.
Introduction to Software Engineering
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Presentation transcript:

1 OpenUP Distilled Per Kroll Mgr. of Methods IBM Brian Lyons CTO Number Six Software

2 Per Kroll - Background Project lead – Eclipse Process Framework Development Manager – RUP / Rational Method Composer Process Technology Strategist – IBM Rational (Co-) Author of –The Rational Unified Process Made Easy – A Practitioner’s Guide to RUP –Agility and Discipline Made Easy – Practices from OpenUP and RUP

3 Brian Lyons - Background Content Lead, OpenUP/Basic Process; Committer, Eclipse Process Framework Chief Technology Officer – Number Six Software Co-Founder – Number Six Software (Co-) Author of –UML 2 Toolkit

4 Agenda What is OpenUP? Collaboration Intent Management Solutions Development Summary

5 Eclipse Process Framework (EPF) Project Provide an open and collaborative ecosystem for evolving software development processes Provide sample practices, process tooling and a metamodel, that can be used as the foundation for a large variety of processes to address IT needs Uses the Eclipse community to gain wide acceptance of the framework

6 EPF Ecosystem TOOLING (Authoring, Publishing) Free Process Content Plug-ins Free Process Content Plug-ins META MODEL (Unified Method Architecture) ECLIPSE Commercial Process Content Plug-ins Commercial Process Content Plug-ins Tool Extensions Tool Extensions Extensible, Customizable, Flexible Common Language & Vocabulary Open Source Development Inhouse Content Plug-ins Inhouse Content Plug-ins Basic Unified Process Adapted from RUP Basic Unified Process Adapted from RUP Scrum TOOLING (Authoring, Publishing) Free Process Content Plug-ins Free Process Content Plug-ins META MODEL (Unified Method Architecture) ECLIPSE Commercial Process Content Plug-ins Commercial Process Content Plug-ins Tool Extensions Tool Extensions Extensible, Customizable, Flexible Common Language & Vocabulary Open Source Development EXTENSIONS Project Mgmt. Oper. Mgmt. Systems Mgmt. EXTENSIONS Project Mgmt. Oper. Mgmt. Systems Mgmt. EXTENSIONS Project Mgmt. Oper. Mgmt. Systems Mgmt. EXTENSIONS Project Mgmt. Oper. Mgmt. Systems Mgmt. Inhouse Content Plug-ins Inhouse Content Plug-ins OpenUP/Basic Scrum Value-Based Software Eng. Model-Driven Architecture Open Unified Process (OpenUP) Consolidated Agile Framework XP Scrum Other agile processes DSDM AMDD

7 What Is OpenUP/Basic? An iterative software development process that is minimal, complete, and extensible. Minimal - only fundamental content is included Complete - can be manifested as an entire process to build a system Extensible - can be used as a foundation on which process content can be added or tailored as needed

8 penUP Analyst Stakeholder Project Manager Architect Developer Tester

9 penUP Analyst Stakeholder Project Manager Architect Developer Tester

10 penUP Analyst Stakeholder Project Manager Architect Developer Tester

11 penUP Analyst Stakeholder Project Manager Architect Developer Tester

12 penUP Analyst Stakeholder Project Manager Architect Developer Tester

13 penUP Analyst Stakeholder Project Manager Architect Developer Tester

14 OpenUP is on a set of core principles: Collaborate to align interests and share understanding Evolve to continuously obtain feedback and improve Balance competing priorities to maximize stakeholder value Focus on articulating the architecture Principles

15 Demo

16 Agenda What is OpenUP? Collaboration Intent Management Solutions Development Summary

17 Collaboration: Some key practices Maintain a common understanding –Key artifacts: Vision, requirements, architecture, iteration plan Foster a high-trust environment –Manage by intent, tear down walls, understand the perspectives of others Share responsibility –Everybody owns the product, help each other Learn continuously –Develop technical and interpersonal skills, be a student and a teacher Organize around the architecture –As teams grow in size, have teams of small component teams

18 Agenda What is OpenUP? Collaboration Intent Management Solutions Development Summary

19 Forms of Requirements Vision defines stakeholder’s view of product Use Cases define user scenarios –Any scenario-based requirements would do Supporting Requirements cover technical and other non-usage issues Work Items reference requirement work products for more detail

20 Iterative Requirements Definition Vision defines product Use-case identification scopes release Use-case detail drives work in an iteration Supporting requirements are managed across the lifecycle

21 Test Cases as Intent Test Case –Aligned with requirements and bugs –Specifies the conditions to be validated –Outlines necessary data Contrasted with Test Script (from Solution sub-process) –Aligned with Test Cases –Explicit step-by-step instructions –Supplemented by test data –Best if automated Test Cases are a form of Test First Design (TFD)

22 Roles Relevant to Intent Analyst –Captures, organizes, and prioritizes requirements Stakeholder –Drives Intent; needs must be satisfied by the project Tester –Defines criteria for acceptance of solution The Project Manager will update the Work Items List with prioritized, grouped items The Architect and Developer will produce a solution that meets the intent

23 Agenda What is OpenUP? Collaboration Intent Management Solutions Development Summary

24 Stakeholder Satisfaction Space Project Starting Point Identify End Goal Your goal is to find a Path from Here to There

25 Stakeholder Satisfaction Space Divide One Big Problem into a Series of Smaller Problems Initial Project Plan Planned Completion Planned Path

26 Stakeholder Satisfaction Space Define When Key Management Can Be Achieved Do we understand the problem? Do we understand the solution? Feature complete? Release ready? Planned Completion Planned Path Inception Elaboration Construction Transition

27 Prioritize and Manage Work: Work Items List Work Item List High Priority Low Priority New work items can be added at any time Work items can be removed at any time Work items can be reprioritized at any time High-priority work items should be well-defined Low-priority work items can be vague Each iteration implements the highest-priority work items

28 Key Concepts: Agile Estimation Size (points): –For each work item, we estimate how big it is. We focus on relative size, so key is to be consistent within your work items list. Velocity –A measurement of how many points are delivered in each iteration Effort (days or hours): –Estimate of actual effort.

29 Plan Your Iteration Specify target velocity and outline iteration objectives in iteration plan Analyze top priority Work Item –Estimate effort in hours –If too big to fit within iteration, break down into smaller work items –Add to Iteration Plan –Analyze next work item in priority order until Iteration Plan is “full” Specify test and other assessment criteria Work Item List Iteration objectives Iteration Work Item List Measure / test results Estimate and add to iteration plan Iteration Plan

30 Planned Path Use Iteration Assessments to Change Direction Actual Path Updated Project Plan Planned Completion Stakeholder Satisfaction Space

31 Agenda What is OpenUP? Collaboration Intent Management Solutions Development Summary

32 The Role of Architecture Provides context to design and implementation Provides risk mitigation Improves predictability of plan Setup early, improve and evolve

33 Architecture and the Principles Collaborate –Maintain a common technical understanding with architecture Balance –The decisions of architecture are part of balancing to achieve maximum stakeholder benefits within constraints Focus –Emphasize essential technical decisions via architecture Evolve –Early evolutions ensure product feasibility and attack risk

34 We are going to use the Chain of Responsibility Pattern to blah We have selected Oracle because it will meet the performance requirements and the customer already has licenses and trained DBAs We are going to apply a network architecture like this. We are applying these J2EE Blueprints We are going to distribute the components across the layers this way. Representing Architecture No thick document required Much of the architecture can be –Selected instead of designed –Referenced instead of described

35 Designing Steps –Understand requirements, identify a scenario –Identify elements –Determine how elements collaborate –Refine decisions, design internals –Communicate Do an analysis pass? If appropriate. Visually design? If appropriate. Use a design tool? If appropriate. Long-lived design? If appropriate.

36 Creating a Solution for a Work Item Select a work item assigned to the current iteration Collaborate with team if it needs breakdown Identify requirements closure –Attachments: use case, supporting requirement, bug information, test case –Gather additional information Repeat until complete –Build a small solution verified with developer tests Verify completion with system tests

37 Test-first Design Design solution –Defines interface to be tested Create test for solution –Completed test should run and fail Implement solution –Test should run and pass In as small of increments as possible

38 Inserting Test-first Design Developer testing straddles the implementation of the solution The tight back-looping is not shown here Refine the Architecture Design the Solution Implement Developer Tests Implement the Solution Run Developer Tests

39 Roles Relevant to Solution Developer –Designs and implements solution Architect –Makes key technical decisions and structures the solution Tester –Implements and conducts tests to verify solution The Project Manager monitors the development The Stakeholder participates in verification of solution The Analyst provides additional information

40 Agenda What is OpenUP? Collaboration Intent Management Solutions Development Summary

41 Adopting the Process To browse –Download published process from eclipse To configure and customize –Download source library and EPF Composer tool Use EPF Composer tool to author extensions –Replace existing templates –Add guidelines on specific techniques –Add tool mentors for usage of your tools –Extend or add roles, tasks, work products, examples, etc. Publish your custom configuration

42 Questions? ? ? ? ? ? ? ? ?

43

44 Example: Iterations in Practice Let’s assume ~6 week iteration length: –1 wk planning, analysis & design – 3-4 wks design and coding –1-2 weeks testing/shutdown Many team members may do design and coding also the first week Weekly Integration builds used to prove progress; nightly builds used to inject discipline and repeatability High level themes and target artifacts for each iterations decided by Dev Leads based on business and use case scenarios Detailed iteration plans provided by component teams (linking line items to use cases and scenarios) Iteration builds get assessed against use cases and are published for broader visibility Content matters - inject cool stuff into each planned iteration to ensure adoption of, and progression through each iteration build Dates matter – revisit following each iteration delivery. Iterations are timeboxed. (Phases are not.) This, and next two slides borrows content from development leads for IBM Rational Software Architect / Julian Jones

45 Practical Lessons It is easy, even tempting to slip function from iteration to iteration; this inevitably results in a crunch as one nears release Taking shortcuts on the 1-2 week shutdown period will lead to poor stability Adoption rate is significantly affected by the stability of the iteration and by ease of download There’s a tendency not to properly document new functions going into each iteration; this makes it difficult to establish what is new and exciting To grow a community of adopters it’s essential to have good iterations early on which are exciting so that people jump on them and provide active feedback; only with attractive iterations can one get more than one feedback cycle per release In order to foster direct interactions with early adopters one needs open source style communication channels. Tech support firewalls are a bane The iteration assessment planning needs to be done carefully to allow proper scaffolding of code to prevent gridlock As function falls out of the release (not that this every happens), product teams need to be re-engaged so that schedule slippage is dealt with realistically