CS 477 Lecture Notes
Week Five, Tuesday: Pre-Midterm Exam Review
Handout
"Migration of Legacy Software Systems from Unix to Windows NT," by Eugene J. Rose.
Systems that are successful become "legacy systems." As the computing environment
changes around these legacy systems, they must change to continue to survive. "Migration" is
the move of a legacy system from one environment to another. This paper
discusses the system migration experience of one software team at TRW.
Review Topics
The aim of software engineering is to maximize value to the software customer (by
delivering fault-free products on time and within budget).
Several aspects of software engineering are frequently neglected within
software production organizations. These aspects include maintenance, documentation,
verification, metrics, process definition and planning, and requirements acquisition.
Maintenance
Software production has two components, development and maintenance. Software
engineers must perform cost-benefit analysis to maximize value to their
customers. Maintenance costs comprise approximately two-thirds of total
software costs. Software production organizations neglect maintenance at
their peril. Maintenance can be enhanced by strengthening maintenance
organizations by enhancing salaries to recruit competent maintainers and
by considering maintenance issues in requirements, specification, and
design phases.
Documentation
It's a fact that most programmers and engineers dislike documentation
tasks. Thus, these tasks are often performed as after-thoughts (or not at all) in many
organizations, with software quality and maintainability suffering as
a result. Software engineers and managers must strive to incorporate
documentation processes into every phase of the software life-cycle.
Verification
Like documentation, verification processes should be integrated into
all phases of software production. Verify requirements, specifications,
etc. Faults caught in early phases are faults that do not impact later
phases. The later in the life-cycle that a fault is detected, the higher
is the fault detection and correction cost.
Metrics
Processes cannot be optimized if they aren't measured. The measured
process can be corrected.
Processes
If the process is good, so will be the product. While a good product
can occasionally arise from a bad process, having good (documented,
measured, verified) processes ensures repeatably good performance.
Focusing on processes isn't everything, but it's still one inportant aspect of software engineering.
Requirements
Providing value to the customer means satisfying the customer's needs. In order
to obtain requirements for a product that meets the customer's needs the
software engineering team must first understand the customer's business. That
means interviewing, observing, and analyzing the customer's business
processes. The customer cannot be expected to understand software engineering.
Requirements such as product extensibility and maintainability must be
originated by the development team.
This page established February 4, 1998; last updated February 4, 2000.