Reengineering Software Systems for Network-Centric Computing

An IRIS Phase 3 Vector Project

Funding agnecy:  Institute for Robotics and Intelligent Systems Phase 3, A Federal Network of Centres of Excellence
   with support from IBM Canada.

Principle Investigators:
 John Mylopoulos, Department of Computer Science, University of Toronto (Project Leader)
 Hausi Müller, Department of Computer Science, University of Victoria
 Kostas Kontogiannis, Dept. of Electrical and Computer Engineering, University of Waterloo
 Eric Yu, Faculty of Information Studies, University of Toronto
Duration: 4 years  (1998 - 2002)

“A major problem faced by industry is the integration of their heritage systems and legacy data into a network-centric environment. This is more than just connecting data and hardware to the Internet --  it requires the ability to make intelligent tradeoffs that extend the scope of, and harvest the investment in, these systems.”
John Henshaw
Development Manager
 Object Oriented Industry Solutions
 IBM Toronto Laboratory

“The impact on software engineering is interesting indeed: we are being forced, now more than ever, to identify and negotiate the requirements of a system before we get into any details of design and coding.  Requirements management has become a newly respected discipline, for the time pressures of a typical Internet project are so tight that the user runs out of time, money, and patience before we can implement all of the system requirements.  As a result, the notion of triage and good-enough software will increase in importance.  These were relevant concepts in earlier times, too, but they’ll be critical for success with Internet projects.”
Ed Yourdon
“Viewpoint: Java, the Internet will reshape software engineering”
IEEE Spectrum, January 1997

  Statement of the Problem

Mission Statement: “The project is to develop tools and methodologies for reengineering legacy software systems so that they can operate in and take full advantage of a network-centric computing environment.”

A technology for reengineering software systems critically depends on the reasons and rationale for the reengineering project (e.g., move to a client-server architecture, make a legacy system Year 2000 (Y2K) compliant, move to an object-oriented architecture). Looking ahead for major changes in computing  environments and platforms, we consider the emergence of Network-Centric Computing (NCC) as a major trend that will play a critical role in the evolution of many existing software systems. This reengineering task will be undertaken partly to meet new business requirements (e.g., new trends in computing platforms), and partly to take full advantage of new  technologies that are becoming available (e.g., high bandwidth networks, intranets, as well as the proliferation of World Wide Web (WWW) infrastructure).

In a nutshell, NCC promises to reverse the trend towards ever more powerful desktop computers  holding ever growing amounts of data and code. In its  place, NCC offers a distributed, network-based computing environment where code and data are downloaded from large servers on an as-needed basis.  This trend is expected to become a dominant computing paradigm because it promises to reduce the hidden costs and organizational burden for desktop  computer usage in a corporate environment. In particular, NCC promises  to reduce uncontrolled duplication of data and application code across an  organization. In addition, it is expected to facilitate the enforcement of standards on desktop usage, to improve the integration of desktop clients with centralized computing servers, and to allow better leverage of existing hardware/software, and reduction of user training costs.  Finally, it is anticipated that NCC will enable better control on key system functions such as backups, network security, network management,  performance management, and recovery.

Given the benefits of NCC, many organizations will need to adapt their existing software systems to take advantage of the emerging network-centric environments. However, adapting existing software to network-centric computing presents substantially different reengineering challenges.  Unlike familiar forms of reengineering such as Y2K conversions,  network-centric computing involves fundamental changes at many levels that amount to a substantial paradigm shift in computing including the following arguments:

Thus, current software reengineering techniques need to be extended substantially to deal with NCC: The more fundamental changes required in NCC reengineering suggest the need for a comprehensive framework to guide the reengineering and migration  process, with increased emphasis on the higher levels (requirements and  architecture), and linking them systematically to lower level reengineering  tasks.

While the advent of NCC is heralded widely in industry, academia, and government  [Hamilton96, Meleis96, Blumenthal97] there has been little mention of the reengineering challenge that is entailed.  This project will be at the forefront of developing this new technology, as our team consists of leading researchers in software reengineering and requirements engineering.

The University of Toronto team provides expertise in the area of software repositories, modeling techniques, and software requirements.  The University  of Victoria team has extensive experience with tools for software re-documentation,  visualization, parsers, and software migration.  Finally, the University of Waterloo team provides experience in design recovery, plan recognition, and software  migration.  The team will draw on the successful experience of industry collaboration in our NSERC CRD and CSER projects.  Two IRIS3 core thrust projects are expected to provide supporting foundation and emerging  technologies.

Keywords:  Software reengineering, requirements, architecture, network computing, software engineering, business modelling.