Unified Software Practices v 5.0 - D Copyright  1998 Rational Software, all rights reserved 1 Practice 5: Verify Software Quality Control Changes Develop.

Slides:



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

Configuration Management
Prescriptive Process models
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
Object-Oriented Software Development CS 3331 Fall 2009.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 4: Phase Management - Elaboration.
PRJ270: Essentials of Rational Unified Process
Rational Unified Process
SE 555 Software Requirements & Specification Requirements Validation.
Continuing Best Practices ► Slide information taken in large part from former Rational Corporation slides considerably modified and supplemented for classroom.
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.
Page 1 R Risk-Driven and Iterative Development. Page 2 R Copyright © 1997 by Rational Software Corporation What the Iterative Life Cycle Is Not It is.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
211 Continuing Best Practices ► Slide information taken in large part from former Rational Corporation slides. Considerably modified and supplemented for.
Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 1 Best Practices of Software Engineering.
Change Request Management
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Principles of Object Technology Module 1: Principles of Modeling.
UML - Development Process 1 Software Development Process Using UML (2)
Rational Unified Process
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
Software Testing and Reliability Software Test 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.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Rational Unified Process Fundamentals Module 4: Disciplines II.
Software Development Best Practices
Relating Testing to Quality –Timeliness of Testing –Quality Attributes Gauge by Testing –Roles Defining Test Discipline Activities Elaborating the Test.
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
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
1 SEG4910 – Projet génie logiciel en fin d’études / Software Engineering Capstone Project Review of Analysis and Iterative Development Timothy C. Lethbridge.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
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)
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Process Or how to make strength productive Tools Requirements Management Visual Modeling Test coverage and metrics Change Management Requirements.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Chapter 8 Workflows of the Process Taken from Walker Royce’s textbook – Software Project Management plus a number of Personal Comments.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
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.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
TK2023 Object-Oriented Software Engineering
Process 4 Hours.
Change Request Management
Unified Process Source & Courtesy: Jing Zou.
Rational Unified Process
Chapter 2 – Software Processes
Extreme Programming.
Presentation transcript:

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 1 Practice 5: Verify Software Quality Control Changes Develop Iteratively Use Component Architectures Manage Requirements VerifyQuality Quality, as used within Rational Unified Process, is defined as “The characteristic of having demonstrated the achievement of producing a product which meets or exceeds agreed upon requirements as measured by agreed upon measures and criteria And is produced by an agreed upon process. If done this way, the process can be repeated and managed In most organizations, testing accounts for 30-50% of development costs! Yet most people believe software is not adequately tested when delivered. Testing is difficult; complete testing is impossible; a good process and automated tools help!

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 2 Software problems are 100 to 1000 times more costly to find and repair after deployment Development Deployment Cost Practice 5: Verify Software Quality Test early and continuously! Test functionality, reliability; performance; Test architectural decisions early.

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 3 Iterative Development Permits Continuous Testing T I M E Test T C D R Iteration 1Iteration 2Iteration 3 T C D R T C D R Test Life Cycle Evaluate Plan Design Implement Execute Evaluate Plan Design Implement Execute Evaluate Plan Design Implement Execute

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 4 Iterative Development – and Continuous Testing (cont.)   Rather than test one time, spread testing out continuously.  Part of each iteration – BUT (see below)   Each iteration produces an executable release (not a product release…)  Don’t think of an ‘executable’ as just an.exe or.dll. The executables may be part of an architecture…..   Each iteration is tested and integrated into an evolving application.   Note: Each ‘phase’ has iteration(s), and each phase has milestones! (A phase may have zero or more iterations prior to arriving at the phase milestone!)   Be careful: The ‘degree’ of R, D, C, T depends on which phase the iteration is in!  See your drawings of the RUP (There are MANY). See pg. 66 in RUP, third edition, as one of many examples…) Keep this handy! Will be referencing this many times.

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 5 More…recall – talking about Verifying Quality   Cannot ‘engineer in’ quality; Must be threaded throughout development!   Notice: Continuous Testing and integration!  Distributes testing….   At end, entire system tested as a whole.   Many errors can be found early and fixed while repair costs are inexpensive   Architectural decisions (key decisions) tested early avoiding disastrous problems later.   These features greatly reduce risks and liability of delivering poor quality systems.   Early iterations are used to mitigate risk and address core functionalities (whether in elaboration, construction…)

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 6 Testing in an Iterative Environment Requirements Test Suite 1 Iteration 2 Iteration 3 Iteration 4 Test Suite 2 Test Suite 3 Test Suite 4 Iteration 1 Automated Tests Continuous integration!!! (one of the major problems of SDLC!) We will produce automated tests. As new requirements are added in iterations, new tests are generated and run. This means that some tests will be rerun – part of ‘Regression Testing.’

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 7 Automation Reduces Testing Time and Effort One Manual Test Cycle 13,000 Tests2 Weeks6 People 13,000 Tests 6 hours 1 Person 13,000 Tests 6 hours 1 Person One Manual Test Cycle 13,000 Tests2 Weeks6 People Test Automation Run More Tests More Often Manual preparation of tests is very expensive and usually results in missed ‘opportunities.’

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 8 Dimensions of Software Quality Functionality Reliability Application Performance System Performance Does my app do what’s required? Does my app leak memory? Does my app respond acceptably? Does my system perform under production load? Test cases for each scenario implemented Analysis tools and code instrumentation Check performance for each use-case/scenario implemented Test performance of all use- cases under authentic and worst-case load TypeWhy?How? For each iteration, do the ‘above’ software quality checks. Remember: tests are ‘driven’ by Use Cases and Supplementary Specifications!

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 9 Problems Addressed by Verifying Quality Testing provides objective project status assessment Objective assessment exposes inconsistencies early (continuous integration helps!) Testing and verification are focused on high risk areas Defects are found earlier and are less expensive to fix (because ‘testing’ is distributed… Automated testing tools provide testing for reliability, functionality, and performance Root Causes Solutions  Insufficient requirements  Ambiguous communications  Brittle architectures  Overwhelming complexity  Subjective assessment  Undetected inconsistencies  Poor testing  Waterfall development  Uncontrolled change  Insufficient automation

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 10 Practice 6: Control Changes to Software Control Changes Develop Iteratively Use Component Architectures Manage Requirements Verify Quality Must recognize that we CANNOT STOP CHANGE The only ‘constant’ is ‘change!’ But, we must be able to Manage Change! Must control How and When control is introduced and who introduces the changes. This DOES NOT MEAN that we absolutely accept ALL changes, But…(Discuss!) Want a process that can respond to change…(RUP) Must synchronize Change across development teams and locations too. (What impacts do proposed changes have on our architecture!)

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 11 Without explicit control, parallel development degrades to chaos!!!! Practice 6: Control Changes to Software  Multiple developers  Multiple teams  Multiple sites  Multiple iterations  Multiple releases  Multiple projects  Multiple platforms May have multiple developers organized into different teams at multiple sites all working together on multiple iterations, releases, products, and platforms (mostly based on the software architecture)

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 12 Three Major Aspects of a CM System Controlling Change involves a Change Management System and a Configuration Management System for version control releases, etc. (this is beyond where we will go in this course…) CR = change request (version control; evolving products…)

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 13 Concepts of Configuration & Change Management  Decompose the architecture into subsystems and assign responsibility for each subsystem to a team  Establish secure workspaces for each developer  Provide isolation from changes made in other workspaces  Control all software artifacts - models, code, docs, etc.  Establish an integration workspace  Establish an enforceable change control mechanism  Know which changes appear in which releases  Release a tested baseline at the completion of each iteration  Versioning; baselines; …

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 14 Change Control Supports All Other Best Practices  Develop iteratively  Manage requirements  Use component architectures  Model visually  Verify quality  Progress is incremental only if changes to artifacts are controlled  To avoid scope creep, assess the impact of all proposed changes before approval  Components must be reliable, i.e., the correct versions of all constituent parts found  To assure convergence, incrementally control models as designs stabilize  Tests are only meaningful if the versions of the items under test are known and the items protected from changes Italicized items – verbally discussed in class. Not necessarily more important than others…

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 15 Problems Addressed by Controlling Changes Requirements change workflow is defined and repeatable Change requests facilitate clear communications Isolated workspaces reduce interference from parallel work Change rate statistics are good metrics for objectively assessing project status Workspaces contain all artifacts, facilitating consistency Change propagation is controlled Changes maintained in a robust, customizable system Root Causes Solutions  Insufficient requirements  Ambiguous communications  Brittle architectures  Overwhelming complexity  Subjective assessment  Undetected inconsistencies  Poor testing  Waterfall development  Uncontrolled change  Insufficient automation

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 16 Best Practices Reinforce Each Other ControlChanges DevelopIteratively Use Component Architectures ModelVisually VerifyQuality Ensures users involved as requirements evolve Validates architectural decisions early on. Drives development, planning, change control. …. Addresses complexity of design/implementation incrementally Need tools/support environment! Measures quality early and often Continuous testing and integration Evolves baselines incrementally Architecture  teams  localizing changes; Need CMS, Conf Control… ManageRequirements Remember: these best practices yield the best results WHEN USED COLLECTIVELY!

Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 17 Summary: Best Practices of Software Engineering  The result is software that is  On Time  On Budget  Meets Users Needs Project Manager Performance Engineer Release Engineer Analyst Developer Tester Control Changes Develop Iteratively Use Component Architectures ManageRequirements ModelVisually VerifyQuality