CS 5150 1 CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Configuration management
Configuration management
Configuration Management
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
© Paradigm Publishing, Inc Chapter 10 Information Systems Chapter 10 Information Systems.
System Analysis and Design (SAD )
CS 5150 Software Engineering
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 25 Delivering the System Business Considerations.
© 2005 by Prentice Hall Chapter 4 System Testing & Implementation Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George Joseph.
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 21 Reliability 3.
CS CS 5150 Software Engineering Lecture 19 Acceptance and Delivery.
Software Project Transition Planning
CS 501: Software Engineering
Illinois Institute of Technology
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
7.2 System Development Life Cycle (SDLC)
Systems Analysis and Design in a Changing World, 6th Edition
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 26 Delivering the System.
Implementation. We we came from… Planning Analysis Design Implementation Identify Problem/Value. Feasibility Analysis. Project Management. Understand.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
VENDORS, CONSULTANTS AND USERS
Software System Integration
System Implementation
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
S/W Project Management
System Implementation. System Implementation and Seven major activities Coding Testing Installation Documentation Training Support Purpose To convert.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 3 Slide 1 Chapter 15 System Implementation.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
CS3500 Software Engineering How does a “program” differ from a “software system”? Program System Tens to hundreds of lines of code Thousands to millions.
INFORMATION SYSTEM APPLICATIONS System Development Life Cycle.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management greene.com 1 Applied Software.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Introduction to Interactive Media The Interactive Media Development Process.
Installation and Maintenance of Health IT Systems
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.
16 1 Installation  After development and testing, system must be put into operation  Important planning considerations Costs of operating both systems.
Moving into Implementation SYSTEMS ANALYSIS AND DESIGN, 6 TH EDITION DENNIS, WIXOM, AND ROTH © 2015 JOHN WILEY & SONS. ALL RIGHTS RESERVED.Roberta M. Roth.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 23 Reliability III.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Construction, Testing, Documentation, and Installation Chapters 15 and 16 Info 361: Systems Analysis and Design.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 24 Delivering the System.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
CS 360 Lecture 18.  Acceptance testing  The complete system, including documentation, training materials, installation scripts, etc. is tested against.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 26 Delivering the System.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS223: Software Engineering Lecture 16: The Agile Methodology.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Computer Technology: Your Need to Know Chapter 1 Slide 1.
Acceptance and Delivery
Chapter 18 Maintaining Information Systems
CS 5150 Software Engineering
Software Documentation
1.2 System Design Basics.
CS 501: Software Engineering
System Analysis and Design:
Presentation transcript:

CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery

CS Administration

CS Why Software Projects Fail There is a new article on this topic in IEEE Spectrum: software-fails

CS Acceptance Testing Acceptance testing The complete system, including documentation, training materials, installation scripts, etc. is tested against the requirements by the client, assisted by the developers. Each requirement is tested separately. Scenarios are used to compare the expected outcomes with what the system produces. Emphasis is placed on how the system handles problems, errors, restarts, and other difficulties. Is the system that we have built, the system that you wanted? Have we met your requirements?

CS Acceptance Testing in the Waterfall Model Requirements System design Testing Operation & maintenance Program design Implementation (coding) Acceptance & release Requirements Design Implementation Feasibility study

CS Acceptance Testing with Iterative Development Iterative development If the client is properly involved in the development cycle: The client will have tested many parts of the system, e.g., ->At the end of each iteration ->During user testing Problems and suggestions for improvement will have been incorporated into the system BUT: There must still be an acceptance test of the version to be released.

CS Acceptance Testing Closed box: by the client without knowledge of the internals The entire system is tested as a whole The emphasis is on whether the system meets the requirements The tests should use real data in realistic situations, with actual users, administrators, and operators The acceptance test must be successfully completed before the new system can go live or replace a legacy system. Completion of the acceptance test may be a contractual requirement before the system is paid for.

CS The Testing Process Acceptance Testing is a major part of a software project It requires time on the schedule It may require substantial investment in test data, equipment, and test software. Good testing requires good people! Documentation, including help systems and training materials, is an important part of acceptance testing.

CS Techniques for Release The transition from the previous version of a production system to a new release is challenging. Alpha Testing: Clients operate the system in a realistic but non-production environment Beta Testing: Clients operate the system in a carefully monitored production environment Parallel Testing: Clients operate new system alongside old production system with same data and compare results

CS Release: Transition from a Legacy System Parallel Testing Parallel Testing For data processing systems, such as financial systems, payroll, etc., the old and the new systems are run together for several productions cycles to check that the new system replicates the functionality of the old. Requires two sets of everything (staff, equipment, etc.). Requires software to control changeover (e.g., do not mail two sets of payments). Requires automated scripts to compare results. Parallel testing may take several months. If possible, the new system will be brought into production incrementally.

CS Delivery: Summary A good delivery package results in: happy client happy users less expense in support or maintenance But many projects rush the packaging, help systems, and training materials, give them to the least experienced members of the team, do not test them properly, and generally neglect this part of the software process.

CS Delivering the System Different categories of software product need different packaging and delivery procedures. Packaging, support, maintenance, and major failures are expensive. Trade-offs must be made. Pressures to get products to market and in operation often lead to bad decisions. (In my experience, the pain of being late is often less than the pain of putting a bad system into operation.) Services, such as installation, training, configuration, etc. may be paid for separately.

CS Delivering the System The best is the enemy of the good No system is ever perfect. If you insist on perfection: -> you will never release anything -> you will still never reach perfection (because the ultimate test comes from the users) Learn what is essential to satisfy the client and focus on it.

CS Delivery of Software Shrink-Wrapped Package Installation scripts -- automatic -- varieties of hardware and operating systems -- uninstall, reinstall, etc. Support (very expensive when it requires staff) -- staff training -- documentation (user, system administrator, expert user) Maintenance -- client does not have source code -- no bug fixing except with new release

CS Delivery of Software Data Processing System Acceptance -- acceptance period may cover several months -- client should be comfortable with complete system Support -- client should be self-sufficient -- documentation and training for system administrators and operators -- well organized source code for maintenance -- maintenance and support contracts

CS Delivery of Software Embedded System Acceptance -- hardware and software developed together -- acceptance tests are a combination Maintenance -- bug fixes require servicing the hardware -- errors may be expensive or dangerous Support -- training for support personnel -- documentation and training for users

CS Training Time and money spent on training is usually well spent: one-on-one in-house training training courses distance education online tutorials Development team needs to provide training materials: users (perhaps several categories) system administrators system maintainers trainers

CS Training and Usability A well-designed system needs less training good conceptual model intuitive interfaces Different skill levels need different types of training skilled users work from the conceptual model less-skilled users prefer cookbook sets of instructions occasional users will forget complex details, but remember general structure

CS Help Systems Resources A good help system is a major sub-project (time-consuming, expensive) A good help system saves user time and support staff (time- saving, cost-saving) Help system design Users need many routes to find information (index by many terms, examples, mini-tutorials, etc.) Help systems need to be tested with real users

CS Documentation Online documentation Much cheaper than print Fewer restrictions on numbers of pages, colors, etc. Easy to update (e.g., over the Internet) but... Cannot be used if the user's system is down

CS Categories of Documentation Software development Requirements, design Source code, test plans and results User Introductory (various audiences) User manual Web site of known problems, FAQ, etc. System administrator and operator System manuals Business License, contract, etc.

CS Installation Tools Creating installation scripts may be a major sub-project Different scripts, tools and procedures for different categories of software Testing must be extensive with real users in their own environment

CS Delivery: Maintenance Most production programs are maintained by people other than the programmers who originally wrote them. (a) What factors make a program easy for somebody else to maintain? (b) What factors make a program hard for somebody else to maintain?

CS CS 5150: What Materials should you Deliver? When you leave, all that the client has is your software and your documentation. Imagine that you work for the client and are asked to take over this system. What would you want? Different projects will have different deliverables Materials can be in any format, need not be huge, but must be current. Place your materials on a project site web site.

CS Delivery: Check List for CS 5150 Projects Documentation Requirements, updated to reflect delivered system System & program design, updated to reflect delivered system Instructions for: users, administrators, operators Presentation slides, updated to reflect delivered system Business documentation, e.g., copyright license System Source code and matching binary for all programs Installation scripts, etc. Test scripts, test data, and test reports