Systems SupportProgram Library Systems Planning Project System Owners & Users Applications Development Project Ongoing Application Production Assisst System Users Central Repository Bu
Trang 1Systems Support
Introduction
The chapter will address the following questions:
reengineering, and design recovery?
Trang 2Systems Support What is Systems Support?
Introduction
Systems support is the on-going maintenance of a system(s) after
it has been placed into operation This includes program
maintenance and system improvements
typically performed in systems analysis, design, and
implementation
Trang 3Systems Support
Program Library
Systems Planning Project
System Owners
& Users
Applications Development Project
Ongoing Application Production
Assisst System Users
Central
Repository
Business Files and Databases
System Users
Project
Repository
Databases
Project Repository
Existing &
Revised Models &
Specifications
Check-out and Check-in
to New Structure Existing
Code New or
Revised Code
Data Retrievals
Information (outputs)
Data (inputs)
Problems and Enhancements
Existing Documenation
Existing and
Revised Models
Existing, New,
or Revised Programs
Program
to be Executed
Trang 4Systems Support What is Systems Support?
Introduction
Central repository This repository stores all system models
and detailed specifications
planning and development projects
implemented through various CASE tools
Program libraries Store the actual application programs that
have been placed into production
maintain a few previous versions of the software in case a problem arises with a new version
Trang 5Systems Support What is Systems Support?
Introduction
(continued)
Business databases Store the operational data created and
maintained by the production application programs
system builders in support of system users
Trang 6Systems Support
Program Library
Correct Errorrs
System Users
Recover the System
Adapt to New Requirements Assisst
System Users
System Users
Errors Encountered When Using the System System "Crash"
Existing Code
Improved Documentation Models and
Specifications
Additional Training
or Coaching
Trang 7Systems Support
Systems Maintenance - Correcting
Errors
Introduction
Regardless of how well designed, constructed, and tested a system or
application may be, errors or bugs will inevitably occur
The correcting of bugs is called system maintenance, or program
maintenance.
The fundamental objectives of system maintenance are:
To make predictable changes to existing programs to correct errors that were made during systems design and implementation
Consequently, we exclude enhancements and new requirements from this activity.
To preserve those aspects of the programs that were already correct Inversely, we try to avoid the possibility that ``fixes'' to programs cause other aspects of those programs to behave differently.
Trang 8Systems Support
Repository
Define
and Validate
Problems
System Users
Benchmark Programs and Application
Understand Application and Programs
Corrective Instructions
Edit and Test Programs
Benchmarked Programs
Validated Changes
Test Data and Current Performance
Application Changes
Past Test Data Validated Problems and Programs
Unvalidated Problem
Validated Change Request
Trang 9Systems Support
Systems Maintenance - Correcting
Errors
Define and Validate the Problems
The first task of the assigned team is to define and validate problems
This activity will be facilitated by the analyst and/or programmer, but
it should clearly involve the user(s)
The problem programs are retrieved from the program library.
Working with the user(s), the team should attempt to validate the
problem(s) by reproducing it
If the problem cannot be reproduced, the project should be
suspended until the problem reoccurs and the user can explain the circumstances under which it occurred
In some cases the bug arises from simple misunderstandings or
misuse, and corrective instructions can bring the entire project
to closure
Trang 10Systems Support
Systems Maintenance - Correcting
Errors
Benchmark the Programs and Application
into production in the first place
side effects that impact the programs or application's overall
functionality and performance
be executed and tested to establish a baseline against which the modified programs and applications can be measured
Trang 11Systems Support
Systems Maintenance - Correcting
Errors
Understand the Application and its Programs
Frequently, system maintenance is not performed by the same
persons who wrote the program
For this reason, we need to gain an understanding of the
application and the problematic programs
Application and program knowledge usually comes from studying
the source code from the benchmarked programs
Program understanding can take considerable time
This activity is slowed by some combination of the following limitations:
• Poor modular structure.
• Unstructured logic (from prestructured era code).
• Prior maintenance (quick fixes and poorly designed extensions).
Trang 12Systems Support
Systems Maintenance - Correcting
Errors
Understand the Application and its Programs
limitations: (continued)
leftovers from prior testing and debugging).
that is, how the programs fit into the total application and how they interact with other programs
Trang 13Systems Support
Systems Maintenance - Correcting
Errors
Understand the Application and its Programs
the program works and doesn't work
how they are used, and you need to determine the potential impact of changes throughout the program(s)
time and resources that will be required to fix the errors
Trang 14Systems Support
Systems Maintenance - Correcting
Errors
Edit and Test the Programs
changes, the programmer can now make changes to the programs
to be modified.
editing an existing program
through other parts of the program or, worse still, other programs
in the application
Unit testing (essential) ensures that the stand-alone program
fixes the bug without side effects
Trang 15Systems Support
Systems Maintenance - Correcting
Errors
Edit and Test the Programs
System testing (essential) ensures that the entire application,
of which the modified program was a part, still works
Regression testing (recommended) extrapolates the impact
of the changes on program and application throughput and
response time from the before-and-after results using the test
data and current performance.
Version control is a process whereby a librarian (usually
software-based) keeps track of changes made to programs
event that new versions cause unexpected problems
Trang 16Systems Support
Systems Maintenance - Correcting
Errors
failure to update application and program documentation
be modified in the repository and program library
systems analyst who supports that application
programmer who made the program changes
program library will help future programmers and analysts reduce application understanding time during future maintenance
Trang 17Systems Support
System Recovery - Overcoming the
“Crash”
Introduction
called an ``ABEND'' or ``crash'') and possible loss of data
intermediary between the users and those who can fix the system
recover the system
personnel to correct the problem
Trang 183 In some cases the analyst may have to call data administration
to recover lost or corrupted data files or databases
4 In some cases the analyst may have to call network administration to fix a local, wide, or internetworking problem
5 In some cases the analyst may have to call technicians or vendor service representatives to fix a hardware problem
6 In some cases the analyst will discover a 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
Trang 19Systems Support End-User Assistance
Introduction
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 to-day use of specific applications
day- The most typical activities 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.
Logging enhancement ideas and requests in the repository.
Trang 20 Adaptive maintenance forces an analyst to analyze the new
requirement and return to the appropriate phases of systems analysis, design, and implementation
Most adaptive maintenance is in response to new business problems, new information requirements, or new ideas for enhancement
It is reactionary in nature fix it when it breaks or when users
make a request This is called system enhancement.
• The objective of system enhancement is to modify or expand the
application system in response to constantly changing requirements
Trang 21 These systems might be adapted to reduce the costs of
maintenance This is classified as reengineering.
The objectives of reengineering are:
• To either adapt the system to a major change in technology
• Fix the system before it breaks
• Make the system easier to fix when it breaks or needs to be adapted
Trang 22Systems Support
Analyze Enhancement Request
System
Designers
or Builders
Write Sample New Programs
Analyze Program and Maintenance Costs
Restructure
Databases
Program Library
Reengineer and Test Programs
Technical Limitation
or Problem
New Technology
Existing Data, Process, and/or Network Models
Candidate Programs for Reengineering
All Programs
in the Library Existing
Program
Reengineered Program
New Program Revised
System Models
Current System Models
New Program Requirements
Enhancement Idea Business New
Requirement
New Technical Requirements
Trang 23Systems Support
Systems Enhancement and
Reengineering
Analyze Enhancement Request
The purpose of this activity is to determine the appropriate course
of action to either a new business problem or idea for
enhancement, technical limitation or problem, or enhancement idea (from other system support activities)
Trang 24Systems Support
Systems Enhancement and
Reengineering
Write Simple, New Programs
new programs.
existing data, and do not input new data (for purposes of storing that data)
• These programs generate new reports and answer new inquiries
minimal knowledge of a fourth-generation languages or a PC-to-host database retrieval language, but also becoming available in most PC database packages.
programs, but some shops question whether this is a valuable use of
Trang 25Systems Support
Systems Enhancement and
Reengineering
Restructure Files or Databases
Many of today's data stores are implemented with traditional file structures or early database structures
Today's database technology of choice is SQL-based relational
databases with object-oriented database technology gaining more and more popularity
Migrating data structures from one data storage technology to
another is a major endeavor which risks corrupting essential
business data and programs
The key player in database restructuring is the database analyst (or database administrator)
The systems analyst plays a role because of the potential impact
on existing applications
Trang 26Systems Support
Systems Enhancement and
Reengineering
Analyze Program Library and Maintenance Costs
corrective and adaptive maintenance
reengineered to reduce complexity and maintenance costs
program library and maintenance costs
performing the analysis
Trang 27Systems Support
Systems Enhancement and
Reengineering
Analyze Program Library and Maintenance Costs
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, in combination with cost accounting (on
maintenance efforts) can help identify those programs that would benefit from restructuring
Trang 28Systems Support
Systems Enhancement and
Reengineering
Reengineer and Test Programs
that program: code reorganization, code conversion, and code slicing
Code reorganization restructures the modular organization
and/or logic of the program
Code conversion translates the code from one language to
another
Code slicing cuts out a piece of a program to create a separate
program or subprogram
Trang 29Systems Support
The Year 2000 and Systems
Support
Introduction
The the year 2000 the potential of triggering widespread computer
application disasters across many corporations.
In the early 1960’s and 1970’s storage space was precious and Millions of applications were built with efforts to utilize as little storage space as
possible
In order to save two bytes of storage space, dates for this century were stored without the first two digits “19”
Many applications use these dates in arithmetic operations.
that it occurred earlier in time), than the number storing a January 1, 1996 date, implying that January 1, 2000 occurs prior to the January 1, 1996 date
been accurate
Trang 30Systems Support
Summary