SE 470 Software Development Processes James Nowotarski 14 April 2003.

Slides:



Advertisements
Similar presentations
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
Advertisements

CHAPTER TWO Object Oriented System Analysis and Design 1.
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
PRJ270: Essentials of Rational Unified Process
James Nowotarski 13 April 2004 IS 553 Advanced Systems Development Practices.
SE 470 Software Development Processes James Nowotarski 21 April 2003.
Rational Worldwide Software Symposium
SE470 - Rational Unified Process Overview
James Nowotarski 20 April 2004 IS 553 Advanced Systems Development Practices.
Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 1 Excellence in Software Engineering Repeatable Level Defined.
SwE 313 Introduction to Rational Unified Process (RUP)
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Iterative development and The Unified process
Copyright  Larry Dribin, Ph.D. SE470_Overview_v1.ppt SE470 OV - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Chapter 1 The Systems Development Environment
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 RUP Architecture.
Chapter 1 The Systems Development Environment
Principles of Object Technology Module 1: Principles of Modeling.
UML - Development Process 1 Software Development Process Using UML (2)
Rational Unified Process
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Unified Software Development Process (UP) Also known as software engineering process SEP describes how requirements are turned into software Defines who,
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.
Software Project Management Introduction to Project Management.
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM.
RUP Implementation and Testing
Rational Unified Process Fundamentals Module 4: Disciplines II.
Chapter 1: Introduction to Systems Analysis and Design
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Identify steps for understanding and solving the
Unified Modeling Language, Version 2.0
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
RUP Life Cycle Software Engineering Learning Programme Software Engineering Foundation.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
The Rational Unified Process 1 EECS810: Software Engineering.
The Systems Development Environment Systems Analysis and Design II.
1 Unified Modeling Language, Version 2.0 Chapter 2.
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 Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 Rational Unified Process – Part 2 Original slides modified.
Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 1 Practice 5: Verify Software Quality Control Changes Develop.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
1.Introduction to Rational Unified Process (RUP)
Introduction to Software Engineering
Rational Worldwide Software Symposium
Rational Unified Process
Rational Worldwide Software Symposium
Software engineering -1
Rational Worldwide Software Symposium
Presentation transcript:

SE 470 Software Development Processes James Nowotarski 14 April 2003

Course Map Overview. Introduction. History Content. Rational Unified Process. Extreme Programming Implementation. Tools, Training, Roles. CMM, Metrics. Selection & Evaluation Briefings (Term Papers) Assignments Quizzes Week Memorial Day

Understand the basics of the Rational Unified Process (RUP) –Structure –Content –Best practices In particular, understand how RUP enables iterative development Today’s Objectives

Topic Duration Quiz #140 minutes RUP Overview30 minutes *** Break10 minutes RUP Overview (cont.)45 minutes RUP and Iterative Development60 minutes Today’s agenda

Topic Duration Quiz #140 minutes RUP Overview30 minutes *** Break10 minutes RUP Overview (cont.)45 minutes RUP and Iterative Development60 minutes Today’s agenda

Topic Duration Quiz #140 minutes RUP Overview35 minutes *** Break10 minutes RUP Overview (cont.)30 minutes RUP and Iterative Development75 minutes Today’s agenda

Think to yourself how many of the projects you have worked were: On Time? On Budget? High Quality? The Bottom Line: Our Customers are upset with us.

The Result is Often Referred to as the Software Crisis Schedule Overruns Cost Estimate Overruns Software Quality Problems Software does not meet User Expectations Productivity of Software Developers has not been keeping up with demand

Why is This? Software is dynamic versus static Software is complex Software is difficult to conceptualize Software is difficult to represent Software is difficult to communicate Software is difficult to evaluate and measure Software developers have trouble learning what users want: –Users do not know what they want –Software developers misunderstand the problem There is a tremendous demand for software

Symptoms and Root Causes Some Symptoms: Requirements in flux Users needs not met Poor quality Schedule slips Projects cancelled Cost over runs Difficulty in maintaining software Software that work in pilot does not work in production Business changes faster than systems can keep up Staff turnover Some Root Causes: Insufficient and misunderstood requirement Ambiguous communication Lack of good software architectures Undetected inconsistencies Poor testing Overwhelming complexity Uncontrolled changes Manual practices Exponentially increasing cost of change

Best Practices “An organized and documented set of principles, methods and processes that increase quality and productivity of software development.” Source: Rational - “Principles of Managing Iterative Development v2.0”

Rational’s View of Best Practices

The Rational Unified Process Developed through the combined efforts of: –Grady Booch –Ivar Jacobson –James Rumbaugh Features –Based on the Unified Modeling Language –Iterative –Architecture-centric –Use-case driven –Risk driven

Rational Unified Process

Rational Objectory Process 4.1 Rational Approach Rational Unified Process 5.5 Rational Unified Process 5.0 Rational Objectory Process 4.1 Rational Unified Process 2000 Objectory Process 3.8 The History of the Rational Unified Process UML v1.0 UML v1.1 UML v1.3

RUP Model Notation A role played by an individual or a team. A unit of work that a worker may perform. A piece of information that is produced, modified or used by a process.

Workers A Worker is a role played by an individual or a team. Example: –Stakeholder –Systems Analyst –Designer –Test Designer –Project Manager

 A piece of information that is produced, modified or used by a process.  Artifacts are the intangible products of the project  Examples:  A use-case model  A document such as a business case  Source Code  Executable code Artifacts

Artifacts - Examples

Activities An Activity is a unit of work that a worker may perform. Examples: –Plan an interaction performed by Project Manager –Find use cases and actors –Review the design –Execute a performance test

Additional Process Elements Guidelines - are rules, recommendations, or heuristics that support activities and steps. Templates - are models or prototypes of artifacts –Ex. Word template for Vision Document Tool mentors - are a means of providing guidance by showing you how to use a specific software tool (Similar to wizards) Concepts - Separate material that describe some of the reasons and background on a specific topic

Software Product Rational’s Nomenclature of the Software Engineering Process Requirements User Team (Suppliers) Expectations Features Cost Benefit Delivery Dates Quality Users Team (Customer) Perceptions Features Cost Benefit Delivery Dates Quality Software Engineering Process (Workflows) Software Development Team Processes, Techniques & Tools Performance Measures (Activities) Software is developed in Teams: Workers Artifacts Activities

Rational’s View of Best Practices Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Iterative Advantages/Disadvantages Advantages Resolves risks before making large investments Enables early user feedback Makes testing and integration continuous Focuses project on short- term objectives Makes partial deployments possible Disadvantages Waterfall life cycle is more familiar since it is similar to hardware life cycle Iterative Life Cycles difficult to estimate and manage. Only recently used on real projects - therefore little track record Iterative life cycle best used for problems that are not well understood.

Rational’s View of Best Practices Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Manage Requirements A systematic approach to –eliciting –organizing –documenting –and managing the changing requirements of the software application

What’s the Difference? Requirements Analysis Requirements Definition Requirements Specification Requirements Management

Managing Changing Requirements Establish a Baseline Evaluate changes and determine their impact Track and document tradeoffs and decisions

Rational’s View of Best Practices Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Software Components Definition: A software component can be defined as a nontrivial piece of software, a module, a package, or a subsystem, that fulfills a clear function, has a clear boundary and can be integrated in a well-defined architecture. It is the physical realization of an abstraction in your design. Definition: A software component can be defined as a nontrivial piece of software, a module, a package, or a subsystem, that fulfills a clear function, has a clear boundary and can be integrated in a well-defined architecture. It is the physical realization of an abstraction in your design.

Components Airplane Private Data Object Operations Airplane Private Data Object Operations Engines Private Data Object Operations Engines Private Data Object Operations Wings Private Data Object Operations Wings Private Data Object Operations Fuselage Private Data Object Operations Fuselage Private Data Object Operations Tail Private Data Object Operations Tail Private Data Object Operations COMPONENTS - Are objects that are combined into new objects without the use of inheritance

Benefits of Component Architectures Resilient –Meets current and future requirements –Improves extensibility –Enables reuse –Encapsulates system dependencies Reuse proven solution elements –Reuse or customize components –Select from Commercially-available components –Evolve existing software incrementally

Benefits of Architecture Intellectual control –Manage complexity –Maintain integrity Basis for reuse –Component reuse –Architecture reuse (patterns) Basis for project management –Focus on early iterations –Planning –Staffing

Rational’s View of Best Practices Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Model Visually - Use the UML Capture the structure and behavior of architectures and components Show how the elements of the system fit together Maintain consistency between a design and its implementation Promote unambiguous communication

The Unified Modeling Language Developed through the combined efforts of: –Grady Booch –Ivar Jacobson –James Rumbaugh Is a language for: –Visualizing –Specifying –Constructing –Documenting the artifacts of a software-intensive system.

History of the UML

UML Components Multiple Views Precise Syntax and semantics Include –Use-Case Diagrams –Class Diagrams –Object Diagrams –Component Diagrams –Deployment Diagrams –Activity Diagrams –State Chart Diagrams –Collaboration Diagrams –Sequence Diagrams

Rational’s View of Best Practices Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Continuously Verify Quality In the Rational Unified Process, quality is defined as: "The characteristic identified by the following: –satisfies or exceeds an agreed upon set of requirements, and –assessed using agreed upon measures and criteria, and –produced using an agreed upon process." Therefore, achieving quality is not simply "meeting requirements" or producing a product that meets user needs, or expectations, etc. Quality also includes identifying the measures and criteria to demonstrate the achievement of quality, and the implementation of a process to ensure that the product created by the process, has achieved the desired degree of quality (and can be repeated and managed).

Test Each Iteration Start testing early Continuously test Test each iteration for functionality and performance Iterative development makes regression testing necessary Use automated tests whenever possible

Rational’s View of Best Practices Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Control Changes You must control, track and monitor changes to enable iterative development Control changes for all software artifacts: –Models –Documents –Source code –Project plans Establish secure workspaces fore each developer Automated integration and build management

Controlling Parallel Development Multiple developers Multiple teams Multiple sites Multiple iterations Multiple releases Multiple projects Multiple platforms

Configuration Management Configuration Management is the process which controls the changes made to a software system and manages the different versions and releases of the evolving software products –Librarian like function –Manages the version number for each software product –Changes made are controlled by a Change Control Process –Can be managed manually or through the use of a configuration management tool (Difficult to do manually, but it can be done.) Check In Check Out Read only for others

Change Control Process Create Initial Sections Create/Modify Draft Review Draft (V&V) Create Changes to Incorporate Changes Needed In Document Document Approved CreateReviewReviseReview Approved Time... Document in Production and Under Formal Change Control Document Under Development and User Change Control

Topic Duration Quiz #140 minutes RUP Overview30 minutes *** Break10 minutes RUP Overview (cont.)45 minutes RUP and Iterative Development60 minutes Today’s agenda

Core Concepts Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases ADI Version 1 ADI Version 2 ADI Version 3

Anatomy of Terminology Product Development Cycle PhaseIterationActivity

Core Concepts Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases Version 1 Development CycleVersion 2 Development Cycle Version 3 Development Cycle Initial Evolution Product delivered to users

Core Concepts InceptionElaborationConstructionTransition

Core Concepts Iteration n Iteration n+1

Core Concepts Development Cycle Phase Iteration n+1 Iteration n R D C T R D C T

Core Concepts Each iteration is a mini-waterfall R D C T R D C T R D C T

Importance of activities across one development cycle One development cycle

Core Concepts Milestones Exit criteria Decide to proceed, abort, or change course Measure progress, e.g., –use cases completed –features completed –performance requirements satisfied –risks eliminated –test cases passed

For each phase, one group fills out: Key Question:Deliverables/Outcomes ActivitiesExit Criteria

Guidelines Key Question:Deliverables/Outcomes ActivitiesExit Criteria Look at the objectives and distill into one key question that needs to be answered by this phase What are the major artifacts produced? Outcomes achieved? What are the essential activities? Predefined standards that must be met before exiting one development phase and entering another. A team handing work off to another part of the project must fully satisfy their exit criteria, while the receiving team verifies that the work meets their standard entry criteria.

Kruchten, Chapters 3, 7, 17 Quiz (end of class): –Kruchten –RUP Topics for April 21

Extra Slides

Summary Timeline Tech era Mainframe Decentralized Distributed Internet Life cycle model Stage wise Waterfall Iterative/Incremental Meth approach Structured Analysis/Design Information Engineering Object-Oriented A/D Agile Content Updates Data mgmt UI design Bus process reengineering Data/process distribution CASE tools JAD Prototyping Multimedia content mgmt Network design/mgmt Quality Security OLTP

Protracted integration and late breakage Conventional application of the waterfall model typically results in late integration and performance showstoppers Development progress (% coded) 100% Late design breakage Original target date Source: Royce, W. Software Project Management: A Unified Framework. Addison-Wesley (1998). Integration begins