distributions. Open source tools for
wireless systems include NetStumbler
and AirSnort.
Fairleigh Dickenson’s network
labs run on virtual machines to limit
inadvertent damage and the need for
protection measures. We teach the
basic network utilities available on
Windows- and/or Posix-compliant
systems, including ping, netstat, arp,
tracert (traceroute), ipconfig (ifconfig
in Linux/Unix and iwconfig in Linux
wireless cards), and nslookup (dig in
Linux). With the proper options, netstat displays IP addresses, protocols,
and ports used by all open and listening connections, as well as by protocol
statistics and routing tables.
The Wireshark packet sniffer identifies control information at different
protocol layers. A TCP capture specification thus provides a tree of protocols,
with fields for frame header and trailer
(including MAC address), IP header
(including IP address), and TCP header (including port address). Students
compare the MAC and IP addresses
found through Wireshark with those
found through netstat and ipconfig.
They then change addresses and check
results by sniffing new packets, analyzing the arp packets that try to resolve
the altered addresses. Capture filters in
Wireshark support search through protocol and name resolution; Neville-Neil
stressed the importance of narrowing
one’s search but failed to mention the
related mechanisms. Students are also
able to make connections through (
un-encrypted) telnet and PuTTy, comparing password fields.
My favorite Wireshark assignment
involves viewing TCP handshakes via
statistics/flow/TCP flow, perhaps following an nmap SYN attack. The free
security scanner nmap runs with Wireshark and watch probes initiated by the
scan options provided. I always assign
a Christmas-tree scan (nmap –sX) that
sends packets with different combinations of flag bits. Capturing probe packets and a receiving station’s reactions
enables identification of flag settings
and the receiver’s response to them.
Operating systems react differently to illegal flag combinations, as students observe via their screen captures.
Network courses and network main-
tenance are thus strongly enhanced by
sniffers and other types of tools that yield
information concerning network traffic
and potential system vulnerabilities.
What Jack Doesn’t Know about
software maintenance
I agree that the community doesn’t
understand software maintenance, as
covered in the article “You Don’t Know
Jack about Software Maintenance” by
Paul Stachour and David Collier-Brown
(Nov. 2009), but much more can be
done to improve the general understanding of the important challenges.
The software-maintenance projects I’ve worked on have been difficult,
due to the fact that maintenance work
is so different from the kind of work
described in the article. The community does not fully understand that
maintenance involves much more
than just adding capabilities and fixing bugs. For instance, maintenance
teams on large projects spend almost
as much time providing facility, operations, product, and sustaining-en-gineering support as they do changing
code. 1 Moreover, the work tends to be
distributed differently. My colleagues
and I recently found maintenance
teams spending as much as 60% of
their effort testing code once the related changes are implemented.
Other misconceptions include:
The primary job in maintenance is facilitating changes. We found that support consumes almost as much effort
as changes and repairs;
Maintenance is aimed at addressing
new requirements. Because most jobs
are small, maintenance teams focus
on closing high-priority trouble reports
rather than making changes;
Funding maintenance is based on requirements. Most maintenance projects are funded level-of-effort; as such,
maintenance managers must determine what they can do with the resources they have rather than what needs to
be done;
Maintenance schedules are based on
user-need dates. Maintenance schedules are written in sand, so maintenance leaders must determine what
can be done within a limited time period;
Maintenance staff is junior. Average
experience for maintenance personnel
is 25 years during which they tend to
work on outdated equipment to fix soft-
ware written in aging languages; and
Maintenance involves much more
than Stachour and Collier-Brown indi-
cated. In light of the changing nature
of the work being done every day by
software maintenance teams, my col-
leagues and I urge Communications to
continue to cover the topic.
Maintenance is well tooled. We
found the opposite. Maintenance
tools are inferior, and development
tools and regression test suites do not
unfortunately support the work.
Reference
1. Reifer, D. Allen, J.-A., Fersch, b., Hitchings, b., Judy, J.,
and Rosa, W. Software maintenance: Debunking the
myths. In Proceedings of the International Society of
Parametric Analysis / Society of Cost Estimating and
Analysis Annual Conference and Training Workshop (San
Diego, CA, June 8-11). ISPA/SCEA, Vienna, VA, 2010.
Donald J. Reifer, Prescott, AZ
authors’ Response:
In our slightly tongue-in-cheek description
of software maintenance, we were
concentrating on the “add a highway”
side of the overall problem, rather than
“repair the railroad bridge.” We try to
avoid considering software maintenance
as a separate process done by a different
team. That’s a genuinely difficult problem,
as Reifer points out. We’ve seen it tried
a number of times, with generally
disappointing results.
A better question might be the one
asked by Drew Sullivan, president of the
Greater Toronto Area Linux User Group,
at a presentation we gave on the subject:
“Why aren’t you considering maintenance
as continuing development?” In fact
we were, describing the earlier Multics
norm of continuous maintenance without
stopping any running programs. We’re
pleased to see the continuous process
being independently reinvented by
practitioners of the various agile methods.
In addition, we’re impressed by their
refactoring and test-directed development.
These are genuinely worthwhile
improvements to the continuous approach,
and we hope the techniques we redescribed are valuable to that community.
Paul stachour, bloomington, Mn
David collier-Brown, toronto
Communications welcomes your opinion. To submit a
Letter to the Editor, please limit your comments to 500
words or less and send to letters@cacm.acm.org.