Whitten−Bentley: Systems Analysis and Design Methods, Seventh
Transcription
Whitten−Bentley: Systems Analysis and Design Methods, Seventh
Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design © The McGraw−Hill Companies, 2007 20. Systems Operations and Support Strategic Enterprise Plan Strategic Information Systems Plan Goal: Improve Business PROCESSES Goal: Improve Business KNOWLEDGE Goal: Improve Business COMMUNICATIONS SYSTEM OWNERS SYSTEM OWNERS SYSTEM USERS LOGICAL PROCESS MODELS LOGICAL INTERFACE MODELS SYSTEM PROPOSAL (or REQUEST FOR SYSTEM PROPOSALS) ARCHITECTURAL MODEL BUSINESS PROCESS DESIGN PHYSICAL DATABASE DESIGN SPECIFICATIONS PHYSICAL SOFTWARE DESIGN SPECIFICATIONS COMMERCIAL SOFTWARE PACKAGES O P E R AT I O N A L S Y S T E M Constraint: APPROVED DATABASE TECHNOLOGIES USER INTERFACE SOLUTIONS SYSTEM INTERFACE SOLUTIONS P O S T- A U D I T R E V I E W Constraint: APPROVED PROCESS TECHNOLOGIES Constraint: APPROVED INTERFACE TECHNOLOGIES Constraint: APPROVED NETWORK TECHNOLOGIES Strategic Enterprise Information Technology Architecture INSTALLATION & DELIVERY CUSTOM-BUILT APPLICATION SOFTWARE MIDDLEWARE MIDDLEWARE T R A I N I N G M AT E R I A L S CONSTRUCTION & TESTING FUNCTIONAL SYSTEM DATABASE SOLUTION PHYSICAL USER & SYSTEM INTERFACE DESIGN SPECIFICATIONS PHYSICAL DESIGN SYSTEM DESIGNERS DESIGN PROTOTYPES SYSTEM BUILDERS SYSTEMS ANALYSTS LOGICAL DATA MODELS FEASIBILITY ANALYSIS and RISK MANAGEMENT and BUSINESS & SYSTEM INTERFACE REQUIREMENTS DECISION ANALYSIS PROJECT MANAGERS BUSINESS PROCESS REQUIREMENTS LOGICAL DESIGN BUSINESS DATA REQUIREMENTS REQUIREMENTS ANALYSIS B U S I N E S S R E Q U I R E M E N T S S TAT E M E N T PROJECT and PROCESS MANAGEMENT SYSTEM IMPROVEMENT OBJECTIVES (using the PIECES framework) PROBLEM ANALYSIS COMMUNICATIONS SCOPE & VISION FUNCTIONAL SCOPE & VISION INFORMATION SCOPE & VISION SCOPE DEFINITION S TAT E M E N T O F W O R K P R O B L E M S TAT E M E N T ( u s i n g t h e P I E C E S f r a m e w o r k ) Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design 20. Systems Operations and Support 20 © The McGraw−Hill Companies, 2007 Systems Operations and Support Chapter Preview and Objectives Once a system has been implemented, it enters operations and support. Systems operation is the ongoing function in which the system operates until it is replaced. Systems support involves servicing, maintaining, and improving a functional information system through its lifetime. Systems operation and support occur in parallel. In this chapter, you will learn more about systems operation and support. In particular, it is useful to understand the different types of systems support provided for a production system. You will know that you understand the process of systems support when you can: ❚ Define systems operations and support. ❚ Describe the relative roles of a repository, program library, and database in systems operations and support. ❚ Differentiate between maintenance, recovery, technical support, and enhancement as system support activities. ❚ Describe the tasks required to maintain programs in response to bugs. ❚ Describe the role of benchmarking in system maintenance. ❚ Describe the systems analyst’s role in system recovery. ❚ Describe forms of technical support provided by a systems analyst for the user community. ❚ Describe the tasks that should be and may be performed in system enhancement and the relationship between the enhancement and the original systems development process. ❚ Describe the role of reengineering in system enhancement. Describe three types of reengineering. Although some of the techniques of systems support are introduced in this chapter, the chapter does not teach these techniques. This chapter teaches only the process of systems support as it relates to the development processes you have been studying throughout this book. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition 702 Part Four IV. Beyond Systems Analysis and Design 20. Systems Operations and Support © The McGraw−Hill Companies, 2007 Beyond Systems Analysis and Design Introduction It has been one week since SoundStage converted to the new Member Services system. Bob Martinez has been working on a few minor program bugs. As each bug has cropped up, Bob has worked with the users to validate and document the problem. He then passed that information to the programmers, who fixed the problem, tested the revised program, and documented their changes. Finally Bob updated the version control system with information about the fix. All in all the conversion has gone very well, and Bob was starting to think he was seeing the last of the Member Services system. Then his boss, Sandra, came to him with a list of additional requirements. Most of them were lower-priority use cases that had been intentionally left out of the first iteration. Others were requests that came up during the analysis, design, and implementation phases. There were even requests suggested by users now that they are actually working the system. So Bob is starting back in the requirements analysis phase for iteration two. But now that he is hearing from users how helpful the new system is, Bob is excited to make it even better. The Context of Systems Operation and Support Systems support was introduced in Chapter 3. Systems support is the ongoing technical support for users, as well as the maintenance required to fix any errors, omissions, or new requirements that may arise. Before an information system can be supported, it must first be in operation. Systems operation is the day-to-day, week-toweek, month-to-month, and year-to-year execution of an information system’s businesses processes and application programs. An operational system (not to be confused with an operating system) is frequently called a production system. Systems operation and support are often ignored in systems analysis and design textbooks. Young analysts are often surprised to learn that half of their duties (or more) are associated with supporting production systems. In the chapter home page, you can see that systems operation and support use all the information system building blocks since the information system is operational. All the system knowledge and working components of the system are important to its ongoing operation and support. This is reinforced in Figure 20-1, which demonstrates that systems operations and support often require developers to revisit the activities, and hence the building blocks, that were developed during systems analysis, design, construction, and implementation. Figure 20-2 illustrates systems development, systems operations, and systems support as separate processes. Until this chapter, the entire book has focused on systems development. Systems development responds to problems, opportunities, and directives by developing improved business solutions. To repeat: that process has been the focus of this book. During systems development, we accumulated considerable system knowledge and constructed programs and databases.The figure illustrates these three data stores: • The repository is a data store(s) of accumulated system knowledge—system models, detailed specifications, and any other documentation that has been accumulated during the system’s development. This knowledge is reusable and critical to the production system’s ongoing support. The repository is implemented with various automated tools, and it is often centralized as an enterprise business and IT resource. • The program library is a data store of all application programs. The source code for these programs must be maintained for the life of the system. Almost always, the software-based librarian will control access (via check-in and Operational System Post-audit Review 8 Functional System Training Materials INSTALLATION & DELIVERY Statement of Work SYSTEM OWNERS AND USERS Design Prototypes Redesigned Business Processes Documentation PHYSICAL DESIGN & INTEGRATION 6 Documentation Documentation PROBLEM ANALYSIS 2 System Proposal Application Architecture Documentation 5 DECISION ANALYSIS Documentation Documentation 3 REQUIREMENTS ANALYSIS System Improvement Objectives Logical Design LOGICAL DESIGN 4 Business Requirements Statement 20. Systems Operations and Support Physical Design Specifications CONSTRUCTION & TESTING 7 Scope & Vision Documentation Documentation SCOPE DEFINITION 1 Problem Statement START: Problems, Opportunities, Directives, Constraints, and Vision IV. Beyond Systems Analysis and Design F I G U R E 2 0 - 1 The Context of Systems Operation and Support SYSTEM OPERATION & MAINTENANCE Life Cycle Stage FINISH: Working Business Solution BUSINESS COMMUNITY Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition © The McGraw−Hill Companies, 2007 703 Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition 704 Part Four IV. Beyond Systems Analysis and Design © The McGraw−Hill Companies, 2007 20. Systems Operations and Support Beyond Systems Analysis and Design FIGURE 20-2 THE BUSINESS COMMUNITY System Development, Operations, and Support Functions Problems, Opportunities, and Directives 1-7 Systems Development Improved Business Solution SYSTEM OWNERS AND USERS System Knowledge Metadata and Data Application Software Enterprise Repository Program Library System Knowledge Application Software (existing & revised) Business Data Program to Be Executed 8B as needed Data Access & Updates Operational System 8A ongoing Updated Operational System Systems Support Systems Operation Technical Feedback Updated Business Solution Problem, Opportunity, or Directive Problem, Opportunity, or Directive User Feedback TECHNICAL SUPPORT THE USER COMMUNITY THE USER COMMUNITY SYSTEM OWNERS AND USERS Business Solution SYSTEM MANAGERS AND SUPPORT STAFF SYSTEM OWNERS AND USERS checkout) to the stored programs as well as track changes and maintain several previous versions of the programs in case a problem in a new version forces a temporary use of a prior version. Examples of such software configuration tools are Serena’s ChangeMan Professional, IBM’s CAA Source Code Manager, and Microsoft’s Visual SourceSafe. • The business data includes all the actual business data created and maintained by the production application programs. This includes conventional files, relational databases, data warehouses, and any object databases. This data is under the administrative control of the data administrator, who is charged with backup, recovery, security, performance, and the like. Unlike systems analysis, design, and implementation, systems support cannot sensibly be decomposed into actual phases that a support project must perform. Rather, systems support consists of four ongoing activities. Each activity is a type of support project that is triggered by a particular problem, event, or opportunity encountered with the implemented system. Figure 20-3 is an activity diagram that illustrates the four types of support activities: • Program maintenance—Unfortunately, most systems suffer from software defects, or bugs—errors that slipped through the testing of software. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design © The McGraw−Hill Companies, 2007 20. Systems Operations and Support Systems Operations and Support BUSINESS COMMUNITY Systems Support Activities SYSTEM OWNERS AND USERS 8.1 8.2 System Recovery Corrected Programs Restored Program System Knowledge Enterprise Repository Restored Data Program Library Business Data Revised or Restructured Programs System Knowledge Restructured Database System Knowledge THE BUSINESS COMMUNITY 8.3 Technical Support Operational Problem Operational Solution SYSTEM OWNERS AND USERS 705 FIGURE 20-3 System Failure Bug Program Maintenance Chapter Twenty New Business Requirement New Business Problem 8.4 System Enhancement Design Flaw or Requirement TECHNICAL COMMUNITY New Technology Directive IT STAFF • System recovery—From time to time, a system failure may result in a program “crash” and/or loss of data. Human error or a hardware or software failure may have caused this. The systems analyst or technical support specialists may then be called on to recover the system—that is, to restore a system’s files and databases and to restart the system. • Technical support—Regardless of how well the users have been trained and how good the end-user documentation is, users will eventually require additional assistance—unanticipated situations arise, new users are added, and so forth. • System enhancement—New requirements may include new business problems, new business requirements, new technical problems, or new technology requirements. This chapter examines each of these support activities in various levels of detail, but it abandons the approach used in previous systems analysis, design, and implementation overview chapters. Not all activities will be decomposed into tasks because some of these activities are fairly routine. Also, in some cases, an activity will involve returning to the system development activities that were discussed in earlier chapters. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition 706 Part Four IV. Beyond Systems Analysis and Design 20. Systems Operations and Support © The McGraw−Hill Companies, 2007 Beyond Systems Analysis and Design System Maintenance Regardless of how well designed, constructed, and tested a system or application may be, errors or bugs will inevitably occur. Bugs can be caused by any of the following: • • • • • Poorly validated requirements. Poorly communicated requirements. Misinterpreted requirements. Incorrectly implemented requirements or designs. Simple misuse of the programs. The fundamental objectives of system maintenance are: • To make predictable changes to existing programs to correct errors that were made during systems design or implementation. • To preserve those aspects of the programs that were correct and to avoid the possibility that “fixes” to programs cause other aspects of those programs to behave differently. • To avoid, as much as possible, degradation of system performance. Poor system maintenance can gradually erode system throughput and response time. • To complete the task as quickly as possible without sacrificing quality and reliability. Few operational information systems can afford to be down for any extended period. Even a few hours can cost millions of dollars. To achieve these objectives, you need an appropriate understanding of the programs you are fixing and of the applications in which those programs participate. Lack of this understanding is often the downfall of systems maintenance! How does system maintenance map to your information system building blocks? • KNOWLEDGE/DATA—System maintenance may improve input data editing or correct a structural problem in the database. • PROCESSES—Most system maintenance is program maintenance. • COMMUNICATION—System maintenance may involve correcting problems related to how the application interfaces with the users or another system. Figure 20-4 illustrates typical system maintenance tasks. Let’s examine these tasks. > Task 8.1.1—Validate the Problem System maintenance miniprojects are triggered by the identification of the problem, usually called a bug. Most such bugs are identified by users when they discover some aspect of the system that does not appear to be working as it should. The first task of the systems analyst or programmer is to validate the problem. Working with the users, the team should attempt to validate the problem by reproducing it. If the problem cannot be reproduced, the project should be suspended until the problem recurs and the user can explain the circumstances under which it occurred. The “as is” program is executed, as closely as possible approximating the circumstances and the data that were present when the problem was first encountered. In most cases, the user who encountered the problem should be the one who re-creates it. One possible output is an unsubstantiated bug. In this scenario, the user (even with help from the analyst) could not re-create the error. To maintain a productive relationship with the user, the analyst should never make the user feel that it was his or her fault. Instead, the analyst should respect the possibility that the bug is still real and that it will eventually be validated. Should the error recur, the user should be coached to immediately document the exact sequence of events in detail or to call the analyst. Most importantly, the user should be instructed not to perform any subsequent action, if possible, that may prevent the error from being validated. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design © The McGraw−Hill Companies, 2007 20. Systems Operations and Support Systems Operations and Support BUSINESS COMMUNITY System Maintenance Tasks Corrective Instructions SYSTEM OWNERS AND USERS 8.1.2 Unsubstantiated Bug Validate the Problem Copy of Program with Substantiated Bug Benchmark Program System Knowledge Test Data Set and Benchmarks "As-Is" Program Program Library Enterprise Repository Bug-Fix Requirements Test Database System Knowledge 8.1.3 Study and Debug the Program (problem fixed) Test Data Outcomes Copy of Problem Program Corrected Version of Program 707 FIGURE 20-4 Bug 8.1.1 Chapter Twenty Benchmark Data 8.1.4 Candidate Release Test the Program Failed Candidate New Version of the Production Program In some cases the analyst confirms the error but recognizes it as a simple misuse or mistaken use of the program. In such cases, the appropriate output is corrective instructions to the user. The third possibility is that the bug is real.The analyst should do two things. First, the context of the bug should be examined by studying all relevant documentation (system knowledge) in the repository. In other words, don’t try to fix what you don’t understand. Second, all subsequent maintenance should be performed on a copy of the program. The original program remains in the program library and can be used in production systems until it is fixed. > Task 8.1.2—Benchmark Program Given a copy of the program with a substantiated bug, the analyst should benchmark the program. System maintenance can result in unpredictable and undesirable side effects that impact the program’s or application’s overall functionality and performance. In other words, the solution can cause unexpected side effects. For this reason, before any changes are made to programs, the programs should be executed and tested to establish a baseline against which the modified programs and applications can later be measured. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition 708 Part Four IV. Beyond Systems Analysis and Design 20. Systems Operations and Support © The McGraw−Hill Companies, 2007 Beyond Systems Analysis and Design This task can be performed by the systems analyst and/or programmer. Users should also participate to ensure the test is conducted under circumstances that simulate as closely as possible a normal working environment. Test cases can be defined in either of two ways. First, past test data may exist in the repository as a form of system knowledge. If so, that data should be reexecuted to establish or verify the benchmark. Usually, the test data should also be analyzed for completeness and, if necessary, revised. New test scenarios may have been identified since the system went into operation. Any revised test data should be recorded in the repository for subsequent maintenance projects. Alternatively, test data can be automatically captured using a software-testing tool. As users enter test data, that data is recorded in a special type of repository as a test script. Later the analyst and user can document each test case in the same repository. Ultimately, the test script is executed against the program to test that the program executes properly and also to measure the program’s response time and/or throughput. As shown in Figure 20-4, the test data and benchmarks are stored in a test database (not the production database) for the next task. The analyst or programmer needs to have good testing skills (usually taught in programming courses) and may require training in test tools. Neither is explicitly taught in this textbook. > Task 8.1.3—Study and Debug the Program The primary task in system maintenance is to make the required changes to the programs.This task, performed by the application programmer, is not dissimilar from that described in the previous chapter on systems implementation. Essentially, the programmer responds to “bug-fix” requirements that establish the expectation for fixing the problem. The programmer debugs (edits) a copy of the problem program. Changes are not made to the production program. The result is a corrected version of the program. This is a candidate release, meaning a candidate to become the next production version of the program. Usually, the original programmer is not making these changes. In fact, several programmers may have written parts of any given program that is now being debugged. Those programmers may no longer be available for clarification. Even if they are available, their memory of the application may not be sufficient or accurate. For this reason, the effective maintenance programmer requires system knowledge. Ideally, this knowledge comes from the repository, but that assumes that the knowledge has been properly maintained throughout the system’s lifetime. Too often this is not true, especially for older systems. The programmer may need to seek out this knowledge or, in some cases, reconstruct the knowledge through analysis of the program. Application and program knowledge usually comes from studying the source code. Program understanding can take considerable time. This activity is slowed by some combination of the following limitations: • Poor program structure—examples include COBOL programs written with nonstructured techniques and Visual Basic or C programs written with nonobject-oriented techniques. • Unstructured logic (from pre–structured era coding styles). • Prior maintenance (quick fixes and poorly designed extensions). • Dead code (instructions that cannot be reached or executed—often leftovers from prior testing and debugging). • Poor or inadequate documentation. The purpose of application understanding is to see the big picture—that is, how the programs fit into the total application and how they interact with other programs. The purpose of program understanding is to gain insight into how the program works and doesn’t work. You need to understand the fields (variables) and where and how they are used, and you need to determine the potential impact of changes throughout Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design 20. Systems Operations and Support Systems Operations and Support © The McGraw−Hill Companies, 2007 Chapter Twenty 709 the program. Program understanding can also lead to better estimates of the time and resources that will be required to fix the errors. > Task 8.1.4—Test the Program There is a big difference between editing a new program and editing an existing program. As the designer and creator of a new program, you are probably intimately familiar with the structure and logic of the program. By contrast, as the editor of the existing program, you are not nearly as familiar (or current) with that program. Changes that you make may have an undesirable ripple effect through other parts of the program or, worse still, other programs in the application and information system. A candidate release of the program must be tested before it can be placed into operation as the next new version of the production program. The following tests are essential or recommended: • Unit testing (essential) ensures that the stand-alone program fixes the bug without undesirable side effects to the program. The test data and current performance that you recovered, created, edited, or generated when the programs were benchmarked are used here. • System testing (essential) ensures that the entire application, of which the modified program was a part, still works. Again, the test data and current performance are used here. • Regression testing (recommended) extrapolates the impact of the changes on program and application throughput and response time from the beforeand-after results using the test data and current performance. Failed candidates are returned for additional debugging. Successful candidates are released for production. Older versions of the program are retained in the program library for version control. Version control is a process whereby a librarian (usually softwarebased) keeps track of changes made to programs.This allows recovery of prior versions of the programs if new versions cause unexpected problems. In other words, version control allows users to return to a previously accepted version of the system. The high cost of system maintenance is largely due to failure to update system knowledge (in the repository) and program source code documentation (in the program library). Application documentation is usually the responsibility of the systems analyst who supports the application. Program documentation is usually the responsibility of the programmer who made the program changes. System Recovery From time to time a system failure is inevitable. It generally results in an aborted, or “hung,” program (also called an ABEND or “crash”) and may be accompanied by loss of transactions or stored business data. The systems analyst often fixes the system or acts as intermediary between the users and those who can fix the system.This section summarizes the analyst’s role in system recovery. System recovery activities can be summarized as follows: 1. In many cases the analyst can sit at the user’s terminal and recover the system. It may be something as simple as pressing a specific key or rebooting the user’s personal computer. The systems analyst may need to provide users with corrective instructions to prevent the crash from recurring. In some cases the analyst may arrange to observe the user during the next use of the program or application. 2. In some cases the analyst must contact systems operations personnel to correct the problem. This is commonly required when servers are involved. An appropriate network administrator, database administrator, or Webmaster usually oversees such servers. version control the tracking of changes made to a program. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition 710 Part Four IV. Beyond Systems Analysis and Design 20. Systems Operations and Support © The McGraw−Hill Companies, 2007 Beyond Systems Analysis and Design 3. In some cases the analyst may have to call data administration to recover lost or corrupted data files or databases. In the recovery of business data, it is not only the database that must be restored. a. Any transactions that occurred between the last backup and the database’s recovery must be reprocessed. This is sometimes called a roll forward. b. If the crash occurred during a transaction, and that transaction was partially completed, then any transactional updates to the database that occurred before the crash must be undone before reprocessing the complete transaction. This is sometimes called a roll back. Database management systems and transaction monitors provide facilities for transaction roll forward and roll back. These data backup and recovery techniques are beyond the scope of this book and are deferred to database courses and textbooks. 4. In some cases the analyst may have to call network administration to fix a local, wide, or internetworking problem. Network professionals can usually log out an account and reinitialize programs. 5. In some cases the analyst may have to call technicians or vendor service representatives to fix hardware problems. 6. In some cases the analyst will discover that a possible software bug caused the crash. The analyst attempts to quickly isolate the bug and trap it (automatically or by coaching users to manually avoid it) so that it can’t cause another crash. Bugs are then handled as described in the previous section of this chapter. Technical Support Another relatively routine ongoing activity of systems support is technical support. No matter how well users have been trained or how well documentation has been written, users will require additional assistance. The systems analyst is generally on call to assist users with the day-to-day use of specific applications. In mission-critical applications, the analyst must be on call day and night. The most typical tasks include: • • • • • Routinely observing the use of the system. Conducting user-satisfaction surveys and meetings. Changing business procedures for clarification (written and in the repository). Providing additional training as necessary. Logging enhancement ideas and requests in the repository. System Enhancement Adapting an existing system to new requirements is the norm for all information systems. Business is change! The pace of change in today’s economy is accelerated, and rapid response is the expectation. System enhancement requires that the systems analyst evaluate a new requirement to either effect change or direct the change request through an appropriate subset of the original systems development process. In some cases, the analyst may need to recover the system’s existing physical structure as a preface to directing the change through systems redevelopment. In this section we will examine two types of adaptive maintenance—system enhancement and systems reengineering. System enhancement is an adaptive process. Most such enhancement is in response to one of the following events, as shown in Figure 20-5: • New business problems—A new or anticipated business problem will make a portion of the current system unusable or ineffective. • New business requirements—A new business requirement (e.g., new report, transaction, policy, or event) is needed to sustain the value of the current system. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design © The McGraw−Hill Companies, 2007 20. Systems Operations and Support Systems Operations and Support BUSINESS COMMUNITY business problem New Business Problem New Business Requirement business requirement New Technology Requirement 8.4.1 Approved Change Request Analyze Enhancement Request Quick Fix Requirement System Knowledge (including change management) technology requirement 8.4.2 Make the Quick Fix Updated System Knowledge Enterprise Repository Simple, New Program design requirement Test Data Program Library Mini Problem Analysis GO TO Mini Requirements Analysis GO TO Mini Decision Analysis GO TO Mini System Design Business Database Exisiting and/or Restructured Programs 8.4.3 Updated System Knowledge Recover Existing Physical System 711 GO TO SYSTEM OWNERS AND USERS New Design Requirement Chapter Twenty Updated and/or Restructured Database • New technology requirements—A decision to consider or use a new technology (e.g., new software or version, or different type of hardware) in an existing system needs to be made. • New design requirements—An element of the existing system needs to be redesigned against the same business requirements (e.g., add new database tables or fields, add or change to a new user interface). Systems enhancement is reactive in nature—fix it when it breaks or when users or managers request change. System enhancement extends the useful life of an existing system by adapting it to inevitable change. This objective can be linked to your information system building blocks as follows: • KNOWLEDGE/DATA—Many system enhancements are requests for new information (reports or screens) that can be derived from existing stored data. But some data enhancements call for the restructuring of stored data. • PROCESSES—Most system enhancements require the modification of existing programs or the creation of new programs to extend the overall application system. But some enhancement requests can be accomplished through careful redesign of existing business processes. • COMMUNICATION—Many enhancements require modifications to how the users interface with the system and how the system interfaces with other systems. Figure 20-5 expands on the activities of system enhancement. In this section, we briefly describe each activity, participants and roles, inputs and outputs, and techniques. FIGURE 20-5 System Enhancement Tasks Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition 712 Part Four IV. Beyond Systems Analysis and Design 20. Systems Operations and Support © The McGraw−Hill Companies, 2007 Beyond Systems Analysis and Design > Task 8.4.1—Analyze Enhancement Request This activity determines the appropriate course of action for achieving a system enhancement requirement. The initial task is to analyze the request against all other outstanding change requests to determine priority. The system knowledge in the repository is invaluable here, especially if it is current. At a minimum, the importance of the requirement must be assessed against the time and cost of a solution. Requests for change almost always outnumber resources needed to facilitate change. Change management systems formally capture all change requests in the repository so that change can be prioritized. Changes may be batched so that they can be implemented at optimal times. If immediate change is needed, the approved change request(s) must be directed to solutions according to the type(s) of change required: • New business problems must be directed to a downsized version of the problem analysis phase. From there, the enhancement will be directed through appropriately downsized versions of requirements analysis, decision analysis, design, construction, and implementation. • New business requirements must be directed to downsized requirements analysis, decision analysis, design, construction, and implementation. • New technical requirements must usually be directed to a decision analysis before design, construction, and implementation. The decision analysis determines if the proposed technology will be feasible in the new system. This is exceedingly important because radical technical change may be costly and complex. • New design requirements must obviously be directed to design, construction, and implementation. To prioritize and plan enhancement projects, the systems analyst should be skilled in project management (Chapter 4) and feasibility techniques (Chapter 11). > Task 8.4.2—Make the Quick Fix Some system enhancements can be accomplished quickly by writing new simple programs or making very simple changes to existing programs. Simple programs and changes are those that can be made without restructuring stored data (changing the database structure), without updating stored data, and without inputting new data (for purposes of storing that data). In other words, these programs generate new (or revise existing) reports and outputs. New program requirements represent many of today’s enhancement requests. NOTE: It is our belief that any new program requirements that exceed our definition of simple should be treated as new business requirements and subjected to systems analysis and design to more fully consider implications within the complete application system’s structure. Most such programs can be easily written with 4GLs or report-writing tools such as SAS, Brio, or Crystal Reports. With these tools, programs can be completed within hours. Since they generally do not enter or update data stores, testing requirements are not nearly as stringent. The quick fix might also be as simple as changing business processes so that they can work with existing information system processes. For example, the analyst may suggest ways in which existing reports can be manually adapted to support different needs. In Figure 20-5, we see that quick fix requirements are identified and studied. The analysts or programmers use existing business data as test data to write simple, new programs that may or may not be added to the program library. Of course, updated system knowledge should be added to the repository. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design 20. Systems Operations and Support Systems Operations and Support © The McGraw−Hill Companies, 2007 Chapter Twenty 713 > Task 8.4.3—Recover Existing Physical System Sometimes the repository does contain up-to-date or accurate system knowledge. But documentation is frequently out of date. And in some cases, systems were developed without rigorous development processes or enforced documentation standards. In still other cases, systems were purchased; purchased systems are notorious for poor and inadequate documentation. In all of these instances, the analyst may be asked to recover the existing physical structure of a system as a preface to subsequent system enhancement. In some cases, reengineering technology exists to physically restructure and improve system components without altering their functionality. Let’s briefly examine some recovery and restructuring possibilities. Database Recovery and Restructuring Sometimes systems analysts help in the reengineering of files and databases. Many of today’s data stores are still implemented with traditional file structures (such as VSAM) or early database structures (such as hierarchical IMS structures). Today’s database technology of choice is SQL-based relational databases. Tomorrow, object database technology may present yet another paradigm shift. A more common requirement is the changing of versions in an existing database structure (such as Oracle 9i to Oracle 10g). A migrating of data structures from one data storage technology or version to another is a major endeavor, filled with opportunities to corrupt essential, existing business data and programs. Thus, reengineering file and database structures has become an important task. Database reengineering is usually covered more extensively in data and database management courses and textbooks; however, a brief explanation is in order here.The key player in database restructuring is the database administrator. The systems analyst plays a role because of the potential impact on existing applications. Network analysts may also be involved if databases are (to be) distributed across computer networks. All databases store metadata about their structure. This metadata can be read and transformed into a physical data model. This data model can be stored in the repository (as system knowledge) to assist analysts in the redesign or use of the database. In some cases, an updated and/or restructured database can be generated, but great care must be taken because many programs use the existing database structure. While database technology theoretically separates data structure from program structure, significant restructuring of databases can still cripple programs. If the database requires such restructuring, it might be better to identify the change in the repository as another new design requirement that should be directed through an appropriate system redevelopment to determine and react to the impact the new structure may have on existing programs. Program Analysis, Recovery, and Restructuring Many businesses are questioning the return on investment in corrective and adaptive maintenance of software. If complex and high-cost software can be identified, it might be reengineered to reduce complexity and maintenance costs. One possibility is to analyze program library and maintenance costs. This task almost always requires software capable of performing the analysis. Software tools such as ASG’s ASG-Recap measure your software library using a variety of widely accepted software metrics. Software metrics are mathematically proven measurements of software quality and productivity. Examples of software metrics applicable to maintenance include: • Control flow knots—the number of times logic paths cross one another. Ideally, a program should have zero control flow knots. (We have seen knot counts in the thousands on some older, poorly structured programs.) • Cycle complexity—the number of unique paths through a program. Ideally, the fewer, the better. software metrics mathematically proven measurements of software quality and developer productivity. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition 714 Part Four IV. Beyond Systems Analysis and Design 20. Systems Operations and Support © The McGraw−Hill Companies, 2007 Beyond Systems Analysis and Design Software metrics, in combination with cost accounting (on maintenance efforts), can help identify the programs that would benefit from restructuring. The input to program analysis is existing programs in the program library. The software may generate restructured programs or merely add system knowledge about the programs to be used later for either restructuring or enhancement. Program analysis was a critical first step in solving the year 2000 software problem. Businesses had to analyze programs to determine where dates were used and what impact changes might have as the programs were enhanced to accommodate the millennium rollover. Program recovery is similar to program analysis. Existing program code is read from the library. It is then transformed into some sort of physical model appropriate to the software. For example, many CASE tools can reverse engineer a COBOL program into a structure chart for that program or reverse engineer a Visual Basic program into an object model. These models are added to the repository as new system knowledge to assist with enhancement of the system. Be very careful not to misuse recovery technology. With purchased software applications, the software license usually prohibits reverse engineering. At best, reverse engineering of purchased software may be unethical. In the worst case, reverse engineering of such software may be illegal and a violation of copyright law and trade secrets. Finally, some reengineering tools actually support the restructuring of programs. There are three distinct types of program restructuring: • Code reorganization restructures the modular organization and/or logic of the program. Logic may be restructured to eliminate control flow knots and reduce cycle complexity. • Code conversion translates the code from one language to another. Typically, this translation is from one language version to another. There is a debate on the usefulness of translators between different languages. If the languages are sufficiently different, the translation may be very difficult. If the translation is easy, the question is, “Why change?” • Code slicing is the most intriguing program-reengineering option. Many programs contain components that could be factored out as subprograms. If factored out, they would be easier to maintain. More importantly, if factored out, they would be reusable. Code slicing cuts out a piece of a program to create a separate program or subprogram. This may sound easy, but it is not! Consider your average COBOL program. The code you want to slice out may be located in many paragraphs and have dependent logic in many other paragraphs. Furthermore, you would have to simultaneously slice out a subset of the data division for the new program or subprogram. The candidate program for restructuring is copied from the program library. It is reengineered using one or more of the preceding methods, it is thoroughly tested (as described earlier in the chapter), and the reengineered program is returned to the program library where it is available for production. Any new data, process, and/or network models are updated in the repository. System Obsolescence At some point, it will not be cost-effective to support and maintain an information system. All systems degrade over time. And when support and maintenance become costineffective, a new systems development project must be started to replace the system. At this time we come full circle to Chapters 3–19 of this book. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design © The McGraw−Hill Companies, 2007 20. Systems Operations and Support Learning Roadmap This chapter provided a detailed overview of the systems support phase of systems development.You learned about the different types of systems support: maintenance, enhancement, reengineering, and design recovery. If you have been covering the chapters in order, you are now prepared to do systems development. Otherwise, you may wish to return to previous chapters to learn more about the tools and techniques used in systems development. Completion of this book does not guarantee your future success in systems development. Systems development approaches, tools, and techniques continue to evolve. Thus, your learning will be an ongoing process. Chapter Review 1. Systems support is the ongoing maintenance of a system after it has been placed into operation. This includes program maintenance and system improvements. 2. Systems support involves solving different types of problems. There are several types of systems support: system maintenance, system recovery, end-user assistance, system enhancement, and reengineering. 3. Regardless of how well designed, constructed, and tested a system or application may be, errors or bugs will occur. The corrective action that must be taken is called system maintenance. 4. From time to time a system failure is inevitable. It generally results in an aborted, or “hung,” program (also called an ABEND or crash) and possible loss of data. The systems analyst often fixes the system or acts as intermediary between the users and those who can fix the system; this is referred to as system recovery. 5. Another relatively routine ongoing activity of systems support is end-user assistance. No matter how well users have been trained or how well documentation has been written, users will require additional assistance. The systems analyst is generally on call to assist users with the day-to-day use of specific applications. In mission-critical applications, the analyst must be on call day and night. 6. Most adaptive maintenance is in response to new business problems, new information requirements, or new ideas for enhancement. It is reactive in nature—fix it when it breaks or when users make a request. We call this system enhancement. The objective of system enhancement is to modify or expand the application system in response to constantly changing requirements. Another type of reactive maintenance deals with changing technology. Information system staffs have become increasingly reluctant to wait until systems break. Instead, they choose to analyze their program libraries to determine which applications and programs are costing the most to maintain or which ones are the most difficult to maintain. These systems might be adapted to reduce the costs of maintenance. The preceding examples of adaptive maintenance are classified as reengineering. 1 2 1. What is system support? 2. What are the three areas of systems development knowledge suggested in the textbook that are important to system support? Review Questions 3. What are the four major support activities suggested in the textbook? 4. Why is system maintenance necessary? 5. What are the tasks needed for system maintenance? 715 Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition 716 Part Four IV. Beyond Systems Analysis and Design 20. Systems Operations and Support © The McGraw−Hill Companies, 2007 Beyond Systems Analysis and Design 6. What does the term unsubstantiated bug mean? What should analysts do when an unsubstantiated bug is found? 7. What should analysts do when they have validated that there are bugs in the program? 8. How are test scripts used in the benchmarking of the program? 9. Why is relying on system knowledge important in debugging of the program? 10. Why is the cost of system maintenance high? 11. What are some of the tasks suggested in technical support? 12. Why will system enhancement occur? 13. What are the tasks needed to conduct system enhancement? 14. Why is it necessary to recover the existing physical system in system enhancement? 15. What are the reengineering tools suggested in the textbook? Problems and Exercises 1. Your company has grown rapidly in the past several years, and its organizational structure has lagged behind. The CIO has asked you to reorganize the systems operation and support section of the IT shop. As you are reorganizing it, what are the four major support activities you need to be aware of, and what is a critical requirement for each of these activities regarding the staff who will be performing them? 2. What are control flow knots, and why should they be avoided? 3. Answer true or false to the following statements: a. Microsoft’s SourceSafe is an example of a software-based librarian. b. In a typical IT shop, analysts spend at most about 20 percent of their time on systems operation and support. c. A simple program change is one that does not require a change to the database schema or to the data itself. d. IT shops no longer need technical IT staff who have expertise in VSAM or IMS because these file and database structures are almost never found in organizations anymore. e. The repository is where archival data generated by the application program is stored. 4. All systems eventually grow old and become obsolete. What is the rule of thumb as to when a system should be replaced? 5. Match the terms in the first column with the definitions or examples in the second column: 1. Version control 2. Program library A. Code translation to higher version or different language B. Software quality and developer productivity measurements 3. Control flow knots C. Baseline against which modified program can be measured 4. Cycle complexity D. Application source code data store 5. Roll forward E. Unique path count in a program 6. Code slicing F. Intersecting logic path count 7. Code G. Program change reorganization tracking, usually software based 8. Code conversion H. Transaction reprocessing as part of recovery process 9. VIA/Recap I. Transaction removal as part of recovery process 10. Benchmark the J. Repository for test program data and test instructions 11. Roll back K. Code removal to create new program or subprogram 12. Test script L. Software metric tool 13. Software metrics M. Restructuring of program’s logic or modular organization 6. One of the common support activities occurs when a software manufacturer, such as Oracle or Microsoft, releases an updated version of one of their software packages. Often the effort to upgrade is significant, while the changes to the software appear minor. This raises the question, why upgrade? Please discuss. 7. Fill in the blanks. a. There is usually __________ staff to handle all the __________ requests that are submitted; therefore, they must be __________. Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design © The McGraw−Hill Companies, 2007 20. Systems Operations and Support Systems Operations and Support b. If a program contains excessive cycle __________ or an excessive number of __________, a program __________ technique called code __________ can be used. c. To __________ programs would benefit from __________, reengineering, or __________, software __________ can be used together with __________ techniques. d. The __________ is responsible for __________ data __________ and maintained by the production application programs. 8. “Quick fixes” can be a very effective way to make simple changes to a system with a minimum amount of time and cost. On the other hand, what is the danger or downside of quick fixes? 9. Explain the concept of adaptive maintenance. 10. Congratulations—you’ve reached the final chapter in the textbook. Now it is time to reflect on the chapters that you read. Part One covered the context of a systems development project. Reread the introduction at the beginning of Part One regarding the objectives for that part; then for each chapter in Part One, list at least one thing that stuck with you. For example, did Chapter 1 help you to focus on the big picture, and was the Chapter Twenty 717 concept of information system building blocks, presented in Chapter 2, something that helped you throughout the textbook and that could be a useful tool in your professional career? 11. In Part Two, you covered a wide range of systems analysis methods in seven chapters. Again, reread the introduction at the beginning of Part Two; then list what resonated the most for you in each chapter on systems analysis methods. 12. Please do the same for Part Three as in the preceding two parts. 13. Part Four of the textbook takes you into the final phase of the project, then into ongoing operations and support. Follow the same process as for the preceding parts, but in addition, please take a moment and think about the entire textbook. Where do you feel it is of the greatest value to you in your studies and professional career, and where do you think it can be strengthened? Also, for how long do you think books on systems analysis and systems design principles and methods can be used before they need to be updated or become obsolete? What are the implications of this for your career as a systems analyst or designer? Projects and Research 1. Requests from users for system enhancements or changes are one of the more challenging aspects of systems support, as described in the textbook. Research this issue on the Web, and discuss it with several IT support staff in local organizations. Find out how their organization approaches it. Then: a. Write a set of procedures or instructions for your organization to use regarding submitting system enhancement change requests. The procedures should include criteria for determining whether a simple, or “quick fix,” program change is appropriate, and the guidelines and processes to be followed when the enhancement doesn’t fall under the “quick fix” category. Note: The procedures should be written for the nontechnical business user and should include a sample change request form. b. “Pilot” the instructions and form with your fellow students and/or co-workers. Have them evaluate and critique the instructions and form. c. Use their feedback to refine your instructions and form. Report the process until there are no further suggestions for improvement. d. How many iterations did you go through? 2. At the time that most projects are initiated, an estimate is made of the expected life span of the new system as a part of a cost-benefit evaluation. However, on an anecdotal basis, it appears that most systems remain in production far longer than their original planned life span. Research this topic on the Web and/or in your school library. In addition, conduct an informal survey of system administrators in several local public and private sector agencies. a. Describe the articles that you found and their viewpoints on this subject. b. Describe the informal survey you conducted, including the nature of organizations that were included in the survey and the types of systems they use. c. What was the average difference you found, if any, between expected life span and actual life span of systems? d. To what do you attribute the tendency to keep systems in production beyond their expected life span? e. What was the oldest system you found still in production? (It is not uncommon to find systems dating back to the 1970s, depending upon Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition 718 Part Four IV. Beyond Systems Analysis and Design 20. Systems Operations and Support © The McGraw−Hill Companies, 2007 Beyond Systems Analysis and Design the nature of the organization. Finding a system originally implemented in the 1960s would be rare, although some are known to still exist!) 3. The objective of software metrics is to provide a mathematically valid method for measuring software quality and productivity. Research articles on the Web and/or in your school library regarding software metrics, as well as the Web sites of some manufacturers of software metrics tools. If they offer any free trial copies, download them and try them out. In addition, ask the IT staff in several local organizations if they use software metrics tools, and, if so, which one and what their opinion is of it. a. Describe the research that you conducted. b. What are some of the different schools of thought and/or controversies regarding the use of software metrics tools? c. What were the responses from IT staff? Do they use software metric tools? If they do, what are the ones they use and/or prefer? What are the different uses for which the tools are employed? If the IT staff doesn’t use software metrics tools, what are the reasons why not? d. On the basis of your research and perhaps hands-on experience, compare and contrast the different software metrics tools that are available. Which one(s) did you prefer and why? e. Overall, do you consider the benefits of software metrics tools to be sufficient to justify their cost of purchase and their learning curve? 4. Systems operations and support generally consume an enormous amount of the resources available in the typical IT shop of an organization. Many CIOs are avidly interested in systems support software that may reduce the amount of human effort required. Research the Web and trade journals for information on some of the newly emerging applications, not discussed in the textbook, that are or soon will be available. a. Describe the research you conducted. b. What are some of the new types of systems support applications that you found? c. Compare and contrast their features. d. If you were the systems support manager in your organization and you could choose only one of these applications, which one would you choose? Or would you choose any? Explain your answer. 5. Technical support to users is one of the cornerstones of systems support which can consume a tremendous amount of time and staff resources. Research this topic in trade journals and in forums on the Web. Interview support staff in the IT shops of several local organizations regarding the issues they face in providing support. In addition, interview some users in the same organizations regarding their perspective on technical support. a. Describe the research you conducted. b. What was the range of responses you received regarding technical support? c. Did the IT staff in the different organizations have the same issues in common? d. What about the IT staff and the users—what perspectives did they have in common, and where did they differ? e. Using your research, write a one-page bulleted list of guidelines for providing technical support. 6. Have computers become sophisticated enough to be powerful extensions of how humans think and communicate? Or do computers and humans capture and process data and transform it into information in fundamentally different ways? Explain your answer. Minicases 1. Create a final exam for this class. Post an electronic copy to the class Web site, as well as a hard copy to your professor. Include solutions to the questions, per your professor’s direction. 2. Compile the work you have done throughout this class for the department of the government that you chose. Create two deliverables: one for your contact at the department, and one for your professor. The deliverable to your professor will include ALL of the work you have done: interviews, research, diagrams, testing and design reports and counter reports, business discussion, manual, and final prototype on CD. The deliverable for your contact in the government will include: diagrams, business discussion, manual, and final prototype on CD. Remember, the manual will be bound separately for both deliverables. 3. Create a portfolio of the work you have done in this class. Include major deliverables that showcase your capabilities as a systems analyst and designer, any letters of team recognition for good teamwork from your group, a description of the Whitten−Bentley: Systems Analysis and Design Methods, Seventh Edition IV. Beyond Systems Analysis and Design © The McGraw−Hill Companies, 2007 20. Systems Operations and Support Systems Operations and Support topics you covered in class, and the like. Make sure that this portfolio has a professional appearance and is bound. This is for you to keep as you job-search. 4. Follow up with the contact at the government department. Did they have any questions? Any Chapter Twenty 719 comments on your work? Does the prototype do everything they wanted and needed? Does it work on their network correctly and without problems? Was the manual clear and easy to follow? Consider this your final system acceptance. Team and Individual Exercises 1. Individual: If you are graduating, write a “thank you” letter to the professor, teacher, secretary, librarian, or whoever has helped you, influenced you, or otherwise had the largest positive impact on you in your college career. 2. Individual: Whether you are job-hunting or not, make a list of people and ask them if they would be willing to act as a reference when you jobhunt. Remember, you will want to have workrelated references, school-related references, and character references! 3. Individual: Blank exercise. You make it up, you do it. Have fun, be creative, and look outside the norm. Suggested Readings Arnold, Robert. Software Reengineering. Los Alamitos, CA: IEEE Computer Society Press, 1993. This is a reference book and research compilation on the subject of business process, database, and software reengineering. Hammer, M., and J. Champy. Reengineering the Corporation. New York: Harper Business, 1993. Mike Hammer is widely regarded as the father of business process reengineering. Martin, E. W.; D. W. DeHayes; J. A. Hoffer; and W. C. Perkins. Managing Information Technology: What Managers Need to Know. New York: Macmillan, 1994.