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:
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.