Presentation is loading. Please wait.

Presentation is loading. Please wait.

Systems Analysis and Design in a Changing World, 6th Edition

Similar presentations


Presentation on theme: "Systems Analysis and Design in a Changing World, 6th Edition"— Presentation transcript:

1 Systems Analysis and Design in a Changing World, 6th Edition
INTRODUCTION TO SYSTEMS ANALYSIS AND DESIGN: AN AGILE, ITERATIVE APPROACH SATZINGER | JACKSON | BURD CHAPTER 13 Chapter 9 Systems Analysis and Design in a Changing World, 6th Edition

2 Making the System Operational
Chapter 13 Introduction to Systems Analysis and Design: An Agile, Iteractive Approach 6th Ed Satzinger, Jackson & Burd

3 Introduction to Systems Analysis and Design, 6th Edition
Chapter 13 Outline Testing Deployment Activities Planning and Managing Implementation, Testing, and Deployment Putting It All Together—RMO Revisited Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

4 Introduction to Systems Analysis and Design, 6th Edition
Learning Objectives Describe implementation and deployment activities Describe various types of software tests and explain how and why each is used Explain the importance of configuration management, change management, and source code control to the implementation, testing, and deployment of a system List various approaches to data conversion and system deployment and describe the advantages and disadvantages of each Describe training and user support requirements for new and operational systems Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

5 Introduction to Systems Analysis and Design, 6th Edition
Overview Up to this point, the text has covered the first four of the core development processes in the SDLC This chapter covers the last 2 processes—Implementation activities and Deployment activities Implementation includes programming and testing activities. Deployment includes system tests, converting data, training, setting up the production environment, and deploying the solution Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

6 Implementation and Deployment Activities
Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

7 Introduction to Systems Analysis and Design, 6th Edition
Test Types Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

8 Testing Concepts Testing – the process of examining a component, subsystem, or system to determine its operational characteristics and whether it contains any defects The developers can test software by reviewing its construction or by designing and building the software ,exercising its function, and examining the result Test case – a formal description of a starting state, one or more events to which the software must respond, and the expected response or ending state Defined based on well understood functional and non-functional requirements Must test all normal and exception situations Test data – a set of starting states and events used to test a module, group of modules, or entire system The data that will be used for a test case

9 Unit Testing Unit test – tests of an individual method, class, or component before it is integrated with other software The goal of unit test is to identify and fix as many errors as possible before modules are combined into larger software units such as programs and subsystems Driver – a method or class developed for unit testing that simulates the behavior of a method that sends a message to the method being tested Stub – a method or class developed for unit testing that simulates the behavior of a method invoked that hasn’t yet been written © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

10 Systems Analysis and Design in a Changing World, 6th Edition

11 Unit Testing Driver to test createCartItem method
Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

12 Unit Testing Some stub modules used by createCartItem
Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

13 Integration Testing Integration test – tests of the behavior of a group of methods, classes, or components The purpose of an integration test is to identify errors that couldn’t be detected by unit testing. Such errors may result from problems like: Interface incompatibility—For example, one method passes a parameter of the wrong data type to another method Parameter values—A method is passed or returns a value that was unexpected, such as a negative number for a price. Run-time exceptions—A method generates an error, such as “out of memory” or “file already in use,” due to conflicting resource needs Unexpected state interactions—The states of two or more objects interact to cause complex failures, as when an OnlineCart class method operates correctly for all possible Customer object states except one © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

14 Introduction to Systems Analysis and Design, 6th Edition
Integration Testing Integration testing of object-oriented software is very complex because an object-oriented program consists of a set of interacting objects Methods can be (and usually are) called by many other methods, and the calling methods may be distributed across many classes. Classes may inherit methods and state variables from other classes. The specific method to be called is dynamically determined at run time based on the number and type of message parameters. Objects can retain internal variable values (i.e., the object state) between calls. The response to two identical calls may be different due to state changes that result from the first call or occur between calls. Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

15 Introduction to Systems Analysis and Design, 6th Edition
Usability Testing Usability test – a test to determine whether a method, class, subsystem, or system meets user requirements Many usability tests are required because they involve many functional and non-functional requirements Users interact with the portion of the system to: Determine whether it functions as expected Determine whether the user-interface is easy to use Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

16 System, Performance, and Stress Testing
System test – an integration test of an entire system or independent subsystem integration testing is normally associated with the implementation System testing is normally associated with deployment In iterative projects, system testing is usually performed at the end of each iterative Build and smoke test – a system test that is performed daily or several times a week The system is completely compiled and linked (built), and a battery of tests is executed to see whether anything malfunctions in an obvious way (“smokes”) Automated testing tools are used. Catches any problems that may have come up since the last system test

17 System, Performance, and Stress Testing
Performance test or stress test – an integration and usability test that determines whether a system or subsystem can meet time-based performance criteria Response time – the desired or maximum allowable time limit for software response to a query or update Throughput – the desired or minimum number of queries and transactions that must be processed per minute or hour Corrective actions may include : Application software tuning or reimplementation Hardware, software, or network reconfiguration Upgrade or replacement of some components

18 User Acceptance Testing
User acceptance test – a system test performed to determine whether the system fulfills user requirements May be performed near the end of the project (or at end of later project iterations) A very formal activity in most development projects. Payments tied to passing tests Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

19 Introduction to Systems Analysis and Design, 6th Edition
Deployment Activities Note system tests, stress tests, and user acceptance tests are considered deployment Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

20 Converting and Initializing Data
An operational system requires a fully populated database to support ongoing processing Data needed at system startup can be obtained from these sources: Files or databases of a system being replaced Manual records Files or databases from other systems in the organization User feedback during normal system operation Reusing existing database © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

21 Converting and Initializing Data Reloading database
Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

22 Introduction to Systems Analysis and Design, 6th Edition
Training Users Training is needed for end users and system operators Training for end users must emphasize hands-on use for specific business processes or functions, such as order entry, inventory control, or accounting Self-paced training, not for complex systems Group training for large number of end users System operator training can be much less formal when the operators aren’t end users Experienced computer operators and administrators can learn most or all they need to know by self-study The small number of system operators makes one-to-one training feasible, if it is necessory Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

23 Training Users What is the best time to begin training?
In an ideal world ,training doesn’t begin until the interfaces are finalized and a test version has been installed Training material are normally developed as soon as the interfaces are reasonably stable, user training begins as soon as possible thereafter System documentation: descriptions of system requirments,architecture,and construction details Its purpose is to support development activities now and in the future It provides information to developers and other technical personnel who will build ,maintain,and upgrade the system Is generated throughout the SDLC

24 Modern application development tools have solved the system documentation dilemma of earlier times
A modern IDE provides automated tools to support all SDLC requirements and design models User documentation: descriptions of how to interact with and use the system Provides ongoing support for end users It describes routine operation of the system,including such function as data entry ,output generation, and periodic maintenance Is almost always electronic and is usually an integral part of the application Written or electronic documentation is easier to access and more permanent Developing good user documentation requires special skills and considerable time and resources

25 Configuring the Production Environment
Modern application are built from software components based on interaction standards such as : The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) that enables software components written in multiple computer languages and running on multiple computers to work together Simple Object Access Protocol SOAP, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks. It relies on XML Information Set for its message format, and usually relies on other Application Layer protocols, most notably Hypertext Transfer Protocol (HTTP) or Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission. Java platform enterprise edition Each standard defines specific ways in which components locate and communicate with one another Each standard also defines a set of supporting system software to provide needed services

26 Introduction to Systems Analysis and Design, 6th Edition
This figure shows atypical support infrastructure for an application deployed using Microsoft .NET Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

27 Planning and Managing Implementation, Testing and Deployment
Development Order Input, process, output (IPO) – a development order that implements input modules first, process modules next, and output modules last Is based on data flow The key issue to analyze is dependency Top-down development – a development order that implements top-level modules first Use stubs for testing Bottom-up development – a development order that implements low-level detailed modules first Use drivers for testing

28 Systems Analysis and Design in a Changing World, 6th Edition
1 2 3 1 3 Systems Analysis and Design in a Changing World, 6th Edition

29 Systems Analysis and Design in a Changing World, 6th Edition
The key issue is method dependency (which methods call which other methods) Method dependency can be examined in terms of navigation visibility Systems Analysis and Design in a Changing World, 6th Edition

30 Development order Advantage Disadvantage Input, process, output Simplifies testing Important user interfaces are developed early The late implementation of output Solution : using the query –processing or report capabilities of a DBMS Top-down There is always a working version of a program It doesn’t use programming personnel very efficiently at the beginning bottom-up Enables many programmers to be put to work immediately on classes that support a variety of use cases Writing a large number of driver methods to test, which adds additional complexity The entire system isn’t assembled until top classes are written

31 Other development order considerations
Use case –driven development In most projects, developers choose a set of related use cases for a single iteration and complete analysis, design, implementation, and deployment activities Use cases with uncertain requirements or high technical risks are typically addressed in early iterations User feedback ,training, and documentation all depend heavily on the user interfaces of the systems Early implementation of user interfaces enables user training and the development of user documentation to begin early. It also gathers early feedback Testing is also an important consideration Identify portion of the software where errors can pos serious problems that affect the system as a whole, this portion must be built and tested early

32 Source code control Source code control system :An automated tool for tracking source code files and controlling changes to those files A programmer checks out a file in read-only mode when he or she wants to examine the code without making changes (e.g., to examine a module’s interfaces to other modules) When a programmer needs to make changes to a file, he or she checks out the file in read/write mode The SCCS allows only one programmer at a time to check out a file in read/write mode. The SCCS is an absolute necessity when programs are developed by multiple programmer. It prevents inconsistent changes and automates coordination among programmers

33 Source Code Control System (SCCS)
Repository Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

34 Packaging, installing, and deploying components
Issues to consider when planning Incurring costs of operating both systems in parallel Detecting and correcting errors in the new system Potentially disrupting the company and its IS operations Training personnel and familiarizing customers with new procedures Different approaches Direct deployment Parallel deployment Phased deployment Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

35 Introduction to Systems Analysis and Design, 6th Edition
Direct deployment – a deployment method that installs a new system, quickly makes it operational, and immediately turns off any overlapping systems Both systems are concurrently operated for only a brief time(few days or weeks)while the new system is being installed and tested Advantage :simplicity Disadvantage :high risk Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

36 Introduction to Systems Analysis and Design, 6th Edition
Parallel deployment – a deployment method that operates the old and the new systems for an extended time period(weeks or months) The old system continues to operate until the new system has been thoroughly tested and determined to be error-free and ready to operate independently Advantage : Low risk Disadvantage : high cost Parallel operation is best when the consequences of a system failure are severe When full parallel operation isn’t possible or feasible ,a partial parallel operation may be employed instead Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

37 Phased deployment – a deployment method that installs a new system and makes it operational in a series of steps or phases Each phase adds components or functions to the operational system Phased deployment can be combined with parallel deployment when the new system will take over the operation of multiple existing systems Advantage : Low risk Disadvantage : Complexity If the entire system is too big or complex to install at one time Direct Parallel

38 Change and version control
Change and Version Control – tools and processes handle the complexity associated with testing and supporting a system through multiple versions Complex system are developed ,installed, and maintained in a series of versions (test versions) Alpha version – a test version that is incomplete but ready for some level of rigorous integration or usability testing Beta version – a test version that is stable enough to be tested by end users over an extended period of time Production version, release version, or production release – a system version that is formally distributed to users or made operational for long-term use Maintenance release – a system update that provides bug fixes and small changes to existing features © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

39 Change and version control
Controlling multiple versions of the same system requires sophisticated version control software, which is often built into development tools or can be obtained through a separate source code Submitting Error Reports and Change Requests Implementing a Change

40 Introduction to Systems Analysis and Design, 6th Edition
Summary Implementation and deployment are complex processes because they consist of so many interdependent activities Implementation activities include program the software, unit tests, building test cases, and integrate and test components Deployment activities include perform system and stress tests, perform acceptance tests, convert existing data, build training materials/conduct training, configure and set up the production environment, and deploy the solution Testing is a key activity of implementation and deployment and includes unit tests, integration tests, usability tests, system/performance/stress tests, and acceptance tests Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

41 Introduction to Systems Analysis and Design, 6th Edition
Summary (continued) A program development plan is a trade-off among available resources, available time, and the desire to detect and correct errors prior to system deployment Configuration and change management activities track changes to models and software through multiple system versions, which enables developers to test and deploy a system in stages Versioning also improves post deployment support by enabling developers to track problem support to specific system versions Source code control systems enable development teams to coordinate their work Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.

42 Introduction to Systems Analysis and Design, 6th Edition
Summary (continued) Three options for deployment include direct deployment, parallel deployment and phased deployment Direct deployment is riskier but less expensive. Parallel deployment is less risky but more expensive For moderate to large projects, a phase deployment approach makes sense to get key parts of the system operational earlier Introduction to Systems Analysis and Design, 6th Edition © 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S. Edition. May not be scanned, copied, duplicated, or posted to a publicly accessible website, in whole or in part.


Download ppt "Systems Analysis and Design in a Changing World, 6th Edition"

Similar presentations


Ads by Google