Copyright  2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 1 Excellence in Software Engineering Repeatable Level Defined.

Slides:



Advertisements
Similar presentations
CS487 Software Engineering Omar Aldawud
Advertisements

Chapter 3 Process Models
CS3773 Software Engineering Lecture 01 Introduction.
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Ch 3 System Development Environment
PRJ270: Essentials of Rational Unified Process
Rational Unified Process
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
James Nowotarski 13 April 2004 IS 553 Advanced Systems Development Practices.
SE 470 Software Development Processes James Nowotarski 21 April 2003.
SE 470 Software Development Processes James Nowotarski 14 April 2003.
Copyright  Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Rational Worldwide Software Symposium
SE470 - Rational Unified Process Overview
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
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
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
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.
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
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,
1 CMPT 275 Software Engineering Software life cycle.
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.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 2 The process Process, Methods, and Tools
Chapter 1 The Systems Development Environment
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
RUP Implementation and Testing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Identify steps for understanding and solving the
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.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
The principles of an object oriented software development process Week 04 1.
The Systems Development Environment Systems Analysis and Design II.
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.
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.
Introduction to Software Engineering
Rational Worldwide Software Symposium
Rational Unified Process
Chapter 2 – Software Processes
Rational Worldwide Software Symposium
Software engineering -1
Rational Worldwide Software Symposium
Presentation transcript:

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level SE470 - Rational Unified Process Overview Excellence in Software Engineering Repeatable Level Defined Level Managed Level Initial Level Optimized Level Larry Dribin, Ph.D. - DePaul University Phone: (847) Fax: (847) Copyright  Larry Dribin, Ph.D. - v

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 2 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Our Goal is to fix the Root Causes through the use of Good Software Engineering Practices Definition of Software Engineering: “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.” Fritz Bauer Sound Engineering principles consist of:  Processes - Procedures and Life Cycles  Techniques - or Methods  Practices - Repeated performances of activities  Tools - to support Processes, Techniques and Practices

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 3 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Software Product 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 Software Development Team Processes, Techniques & Tools Performance Measures Software is developed in Teams:

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 4 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Why have a Software Development Process?  Provides a guideline for software development  Reduces risk and increases predictability  Basis for improvement  Captures and institutionalizes best practices

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 5 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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”

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 6 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 7 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 8 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational Unified Process

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 9 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 10 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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.

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 11 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Workers  A Worker is a role played by an individual or a team.  Example:  Stakeholder  Systems Analyst  Designer  Test Designer  Project Manager

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 12 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Artifacts (Work Products)  An artifact is a piece of information that is used, modified or produced 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 13 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level  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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 14 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Artifacts - Examples

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 15 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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  Activities are typically broken into steps of which there are three main Categories:  Thinking steps  Performing steps  Reviewing steps

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 16 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Activities  Example decomposition for Activity: “Find use cases and actors”  Find actors  Find use cases  Describe how actors and use cases interact  Package use cases and actors  Present the use-case model in use-case diagram  Develop a survey of the use-case model  Evaluate your results

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 17 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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 tuo use a specific software tool (Similary to wizards  Concepts - Separate material that describe some of the reasons and background on a specific topic

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 18 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 19 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level The Rational Unified Process  Basic phases  Inception  Elaboration  Construction  Transition  Core Workflows  Engineering Workflows – Business Modeling – Requirements Definition – Analysis and Design – Implementation – Test – Deployment  Supporting – Project Management – Configuration and change management – Environment  Iterations

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 20 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational Unified Process Lifecycle Phases  Inception - defines the scope of the project  Elaboration - plans the project, develops a baseline architecture and specifies features  Construction - builds the project  Transition - transitions the project into the end user community

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 21 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Workflows  A Workflow is a sequential description of the activities that produces a result of value  The Nine Core Workflows

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 22 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Workflow Details for Requirements Overview

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 23 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational Unified Process

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 24 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 25 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices  Use Iterative Development  Manage Requirements  Use Component Architectures  Model Visually  Continuously Verify Quality  Control Change

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 26 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Software Lifecycles  Fundamental process - the Development Lifecycle  Waterfall  Iterative – Spiral – Evolutionary – Rational Unified Process (RUP) - Unified Development Process – Extreme Programming  Define the software development process in detail  Often described at as a Methodology

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 27 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Waterfall model

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 28 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Issues with the Waterfall Life Cycle  Real projects do not appear to follow the Waterfall life cycle - they appear to iterate.  Requirements must be defined up front which causes problems due to:  Users often do not know what they want.  Most Analysis and Design Techniques do not provide a good clear representation of the solution for the user.  The customer must wait a long time for the first deliverable.  The “Large Specifications” produced are hard to use and hard to validate. The biggest drawback of the waterfall model is the difficulty of accommodating change after the process is underway

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 29 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Waterfall Advantages/Disadvantages Advantages  Well defined  Can easily review & revise  Easy to see status  Logical  Understandable  Easy to estimate  Used as a component of iterative life cycles Disadvantages  You can’t know everything initially and late discovery increase costs and risks  Rigid / Brittle for large projects  Difficult to handle changes in requirements  Lot of overhead  Must define complete problem at the start Waterfall life cycle best used for well defined problems and as a component of iterative life cycles.

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 30 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterative Models – the Spiral Life Cycle

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 31 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Phases of the Spiral Model  Objective setting Þ Specific objectives for the project phase are identified  Risk assessment and reduction Þ Key risks are identified, analyzed and information is sought to reduce these risks  Development and validation Þ An appropriate model is chosen for the next phase of development.  Planning Þ The project is reviewed and plans drawn up for the next round of the spiral

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 32 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterative - Evolutionary Life Cycle Iterative life cycle best used for problems that are not well understood.

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 33 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level The Rational Unified Process Iterations and Releases

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 34 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterations and Phases

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 35 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterative Development

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 36 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Each Iteration, follows a mini-Waterfall Selected Scenarios Product Release The Iteration Life Cycle is a mini-waterfall. AD - Analysis & Design RD - Requirements Definition IM - Implementation DE - Deployment BM - Business Modeling TE - Testing

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 37 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterative Advantages/Disadvantages Advantages  Resolves risks before making large investiments  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.

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 38 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices  Use Iterative Development  Manage Requirements  Use Component Architectures  Model Visually  Continuously Verify Quality  Control Change

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 39 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Manage Requirements A systematic approach to  eliciting  organizing  documenting  and managing the changing requirements of the software application

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 40 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level The System is a Model of the Real World Real World System InputsOutputs Computer System Model of Real World InputsOutputs Requirements Definition Goal: Discover, define and document the goals of the system model so that we can quickly develop computer software which accurately models the real world system. Requirements Definition Goal: Discover, define and document the goals of the system model so that we can quickly develop computer software which accurately models the real world system. However, real world systems are constantly changing and adapting to changes in other real world systems with which they interact. Therefore, systems which model the real world must constantly change, to accurately represent the real world system in real time. However, real world systems are constantly changing and adapting to changes in other real world systems with which they interact. Therefore, systems which model the real world must constantly change, to accurately represent the real world system in real time.

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 41 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Requirements Management (Engineering) Activities  Requirements Analysis  Discover System Requirements  Outline Requirements  Requirements Definition  Describe the system from the user’s point of view  Requirements Specification  Develop a detailed and precise description of the system requirements from the software developer and users point of view  This document often acts as a basis for a contract between the the software developer and the client  Describe the Acceptance Testing requirements for the system

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 42 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Requirements Management Engineering Activities Develop As Is Model: 1.Study Current System & its Functions 2.Develop Model of Current System 3.Document Current System - As Is Model Develop (Design) To Be Model : 4.Determine Problems to be Corrected and any New Requirements 5.Develop Model of Future System = Current System Function + Problems + New Features 6.Document Future System - To Be Model 7.Validate that “ To Be ” model solves problems identified in “ As Is ” Analysis

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 43 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Requirements Analysis Techniques  Variety of Techniques can be used to determine (capture) the requirements:  Individual Interviews  Group Interviews  Facilitated Workshops  Review Current System  DILO  Use Cases  Task and Work Flow Analysis  Observation  Storyboards  Brainstorming Sessions  JAD - Joint Applications Development (Formal Joint User / Developer Analysis & Design)  No Magic Solutions  No Magic Questions

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 44 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Managing Changing Requirements  Establish a Baseline  Evaluate changes and determine their impact  Track and document tradeoffs and decisions

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 45 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices  Use Iterative Development  Manage Requirements  Use Component Architectures  Model Visually  Continuously Verify Quality  Control Change

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 46 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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.

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 47 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 48 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Features of Component Architectures  Resilient  Meets current and future requirements  Improves extensibility  Enables reuse  Encapsulates system dependencies  Component based  Reuse or customize components  Select form Commercially-available components  Evolve existing software incrementally

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 49 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 50 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices  Use Iterative Development  Manage Requirements  Use Component Architectures  Model Visually  Continuously Verify Quality  Control Change

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 51 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 52 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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.

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 53 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level History of the UML

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 54 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 55 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices  Use Iterative Development  Manage Requirements  Use Component Architectures  Model Visually  Continuously Verify Quality  Control Change

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 56 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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).

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 57 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 58 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices  Use Iterative Development  Manage Requirements  Use Component Architectures  Model Visually  Continuously Verify Quality  Control Change

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 59 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 60 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Controlling Parallel Development  Multiple developers  Multiple teams  Multiple sites  Multiple iterations  Multiple releases  Multiple projects  Multiple platforms

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 61 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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

Copyright  Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 62 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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