Contents - Previous - Next

This is the old United Nations University website. Visit the new site at

1. Part 1: UNU/IIST

1.1 The Mission

1.1.1 Motivation

The United Nations University, International Institute for Software Technology (UNU/IIST) is fundamentally concerned with the software technology needs of the developing world. It is the first international institute devoted to this subject. The Institute has been set up by the UNU at a time when, although the growth of computer usage in the developing nations is quite high, most of them urgently need the establishment or expansion of both basic and advanced training, as well as development and research facilities. Thus, there is at once a lack of available software professionals for industrial growth and a chronic shortage of educators and trainers of professionals of the future.

Moreover, most developing countries have few software companies and little experience in industrial software development. Local software development is essential in the developing world not only to establish and strengthen local industry but also to provide software in local languages and with cultural features adapted to the specific needs and conditions of each country.

Although the knowledge and competence gaps between the industrialized and developing nations may be substantial, the UNU/IIST can still help specialists reach state-of-the-art levels in software technology. The discipline is in its infancy.

1.1.2 Intellectual vs. Material Technology Transfer

The UNU conducted, during the period 1987-1989, two studies into the modalities and the need for an institute like the UNU/IIST.

The first, for which I prepared a personal report [1], basically established the subject areas in which the UNU/IIST, if need were found, could engage. The second, the feasibility study [7], successfully argued the need.

The UNU/IIST is deemed a stable body that can carry out the expectations raised in the feasibility study and that can persist in doing so. Since the identified need must be alleviated through international cooperation, and since a significant academic component is necessary, the UNU is strongly believed to be the appropriate institution.

When in the following I refer to technology transfer, I mean primarily the transfer of intellectual technology.

The UNU/IIST will exclusively focus on the transfer of knowledge, prototyped products, and awareness of software tools to support intellectual techniques and software.

The UNU/IIST is not concerned with the important issue of transfer of material technology. The UNU/IIST hopes to be able, with various funding and loan agencies of the UN System (UNDP, World Bank, UNIDO, ADB, IDB, etc.) as the primary agents, to assist, in a secondary role, in furthering material technology transfer where needed.

1.1.3 Foundation

The UNU/IIST is the most recently established Research and Training Centre (RTC) of the UNU. It formally came into being on 12 March 1991, with the signing in Macau of agreements between the UNU, the Governor of Macau, and the Governments of Portugal and the People's Republic of China. It is basically financed by an initial fund of US$20 million contributed to the UNU/IIST Endowment Fund, and it is pledged that this capital fund will be increased to US$30 million through contributions from other sources.

1.2 Aims and Objectives

The UNU/IIST aims at assisting the developing world in meeting needs and strengthening capabilities in five activity areas:

(1) usage of as sophisticated a variety of advanced software as reasonable,
(2) software technology management,
(3) development of its own and exportable software,
(4) university education curriculum development, and
(5) participation in international research.

The UNU/IIST will help bridge gaps between the industrial and developing worlds, theory and practice, university and industry, and consumer and producer.

The UNU/IIST will be a cradle for educating young university computing scientists and industry programmers and software engineers above postgraduate level. The UNU/IIST will be a showroom for demonstrating paradigmatic approaches to requirements engineering, programming, software engineering, and software project plus product management techniques and tools. The UNU/IIST will create a bridge for enhancing cooperation between the industrial and the developing world in the areas of software. The UNU/IIST will be a channel for bringing to international attention the achievements of developing countries.

The above five points define the main technology and application-independent, that is the methodology-dependent, components by means of which the UNU/IIST believes it can help to further improve the developing countries' access to information technology.

In parts 2 and 3 of this paper, I shall outline respectively "soft" applications and "hard" technology-specific components, which, if offered by the UNU/IIST, are believed to further improve access.

1.3 The UNU/IIST Constituency

The UNU/IIST, roughly covering the five areas mentioned above, targets the following audiences: public administrations and small businesses and industries in the least developed countries, budding software industry management, industry software developers, university lecturers, and research institute scientists.

- Software users: National and local government planners and administrators are faced with increased demands for computer-supported gathering and evaluation of socio-economic data. Local, national, and regional professionals in, for example, public health, agriculture, fisheries, and transport are expected to apply computers in forecasting, planning, and decision-making. Small business and industry management must increasingly apply computers in day-to-day operations: budgeting, accounting, forecasting, inventory control, order-processing, invoicing, product planning, monitoring and control, marketing, and sales. The UNU/IIST intends to offer such users 2-4 week training courses in software installation, operation, data preparation, and output interpretation. These training courses will typically be aimed at the least developed countries and are expected to be externally funded.

- Technology management: Large-scale software users, and software house, utility, and information technology management need to apply the latest techniques related to technology management. Users need to know techniques for tendering and procuring software, and for managing computing facilities. Developers need to know techniques for bidding for software development contracts, and for managing projects and products. The UNU/IIST intends to offer such managers 2-4 week awareness courses in applicable techniques.

- Software developers: The software industry is rapidly accelerating the sophistication of its production techniques and tools. To their providers of software, the most advanced of the industrial nations demand software qualities only attainable through the use of rather advanced development techniques. The UNU/IIST will offer to leading-edge developers, as well as to university lecturers, three-month education courses in software development techniques, and will offer them active participation in 9-15 month feasibility, demonstrator, and prototype-product-development projects.

- University lecturers: With the advent of modern techniques for software development, existing computation science and engineering courses are rapidly becoming obsolete. Universities of the developing world also need to revise their curricula. Through the three-month software development education courses mentioned above, and through special 2-3 week events, the UNU/IIST will offer the contents of a modern computing systems curriculum and conduct in-depth workshops analysing such curricula.

- Computing scientists: The research communities in the industrial countries are becoming increasingly internationalized. They generally have easy access to electronic networks, participate in internationally sponsored joint research projects, and have reasonable funds for journals, books, and equipment, including software tools. These researchers travel regularly, often three or four times annually, enabling participation in meetings of various kinds. The UNU/IIST will help towards globalizing the research of developing world scientists through joint research, through the Organic UNU/IIST Network, by conducting international workshops and seminars, and thus by communicating developing world research worldwide.

1.4 Programme Activities

The UNU/IIST Progamme Activities centre around the organization of projects, training, consultancies, research, dissemination, and events.

1.4.1 Projects

The UNU/IIST intends to engage in feasibility, demonstrator, and technology transfer projects. All projects develop software using advanced techniques and are expected to last from 9 to 15 months. The UNU/IIST staff, visiting experts, and project fellows will conduct these Macau-based projects, which are expected to be externally funded.

- Feasibility projects formally, but experimentally develop small but difficult subsets of innovative software applications- and may lead to follow-on demonstrator projects. These projects may be prompted by, or lead to, research done at the UNU/IIST or within the UNU/IIST Organic Network.
- Demonstrator projects rigorously apply scalable, state-of-the-art techniques to applications that can serve as the basis for software development education courses - and may lead to follow-on technology transfer projects.
- Technology transfer projects systematically develop core, prototype parts of planned products and shall lead to detailed plans and technical directions that are then transferred to a developing-world company for concluding full-scale development.

The software developed may apply to operational systems such as railway monitoring and control, river monitoring and flood control, or cargo and customs clearance, via analytic systems such as traffic or crop fertilization planning, disease monitoring, or disaster management, to conceptual systems such as expert or knowledge-based systems for decision support, or university administration and management information. The UNU/IIST expects to assist in the creation of a local software industry.

1.4.2 Training: Courses and Seminars

The UNU/IIST offers training through fellows participating in carefully supervised projects and through courses and seminars. The UNU/IIST will conduct three kinds of courses for training participants from the developing world.

- Two to four week training courses, usually located away from the Institute, will instruct software users and computer centre operators to install and operate large-scale software systems, and to prepare data for and evaluate results of their computations.
- Two to four week awareness courses, usually offered away from the Institute, will expose management to the intricacies of software technology management in how to procure software, put out tender or bid for the development of software, and manage software development projects, software products, and computing facilities. Common aspects include quality assurance, risk analysis, resource estimation, planning, allocation and scheduling, process modelling, and simulation.
- Three-month education courses, based in Macau, will teach software developers to develop application-specific requirements, abstract and concrete programs, and the engineering of large-scale software systems, fit for use and purpose, correct, fault tolerant and safety critical, efficient, maintainable, and portable. Subset education courses may be given, normally away from Macau, as two-week seminars.

1.4.3 Consultancy

The UN system as well as governmental and non-governmental agencies today typically employ industrial world consultants to obtain in-depth studies of policy, usage, industry and technical issues of software technology. The UNU/IIST, with its experienced staff of software technologists, including visiting experts, offers to perform such studies - thereby bringing them "closer to home," while at the same time training a new generation of developing-world graduates to themselves perform such work in the future.

The UN system should look to the UNU/IIST, with its objective background in European, US, and Japanese practices, as its natural first, and independent consultants when it conducts its inquiries.

The UNU/IIST will typically link up with other UNU RTCs and Programmes when consulting on cross-disciplinary issues.

1.4.4 Research

Leading information technology countries and regions of the industrial world have long been and are still engaged in coordinated multi-billion dollar information technology research and pre-competitive projects involving sizable software technology components. Many years of research have brought these countries up to a very sophisticated level of software technology techniques that increasingly are being applied industrially under controlled supervision. The UNU/IIST will bring results of this research to scientists of the developing world through frequent research seminars, usually offered away from Macau. The UNU/IIST, will itself conduct research, this research being conducted by UNU/IIST staff, visiting experts, and research fellows. The UNU/IIST will also co-sponsor joint research collaboration elsewhere.

Young research fellows may thus consider their time at the UNU/IIST as an internship part of their Ph.D. studies.

1.4.5 Dissemination

To reach growing software technology segments of the developing world, the UNU/IIST plans to regularly issue a Software Technology Monitor free of cost to managers, programmers, and software engineers of the developing world. The monitor will track international public domain as well as commercial software products, events, and developments- in both the industrial and the developing world. Eventually it is planned to establish an electronically accessible Software Catalogue that gives technical details on prerequisites, functions and operating characteristics of software products of interest to the developing world. A low-cost UNU/IIST NewsLetter additionally will provide survey, technical, and research articles on software technology issues and otherwise inform of UN/IIIST and developing-world activities. Finally the UNU/IIST plans to publish low-cost case-study books that record actual development of advanced, application-specific software.

1.4.6 Events

In addition to projects, courses and seminars, consultancy, research, and physical and electronic document dissemination, the UNU/IIST will arrange or co-sponsor task forces, panels, workshops, and symposia. Task forces and workshops may explore such issues as university curricula, professional accreditation, and software product and process standards. Task forces will start out by identifying issues worthy of study at panel events, will work in decentralized fashion over extended periods, offer workshops at regular intervals, and will present their findings at final panel events. These events will involve middle to low-level management staff from the developing world, together with the UNU/IIST staff and visiting experts. Additionally, scientific and technical workshops, aimed at leading-edge scientists and developers from the developing world, will explore new research directions and software development techniques. IMaS2T - The International Macau Symposium on Software Technology - is to be held regularly. It will typically feature two days of tutorials, three days of keynote lectures by internationally renowned experts, by invited and contributed-paper presentations, poster sessions and tool exhibits, and demonstrations - all within the area of the software technology profession as outlined in 1.6.

1.5 Fellowship Programme

The main purpose of the UNU/IIST fellowship programme is intellectual and technological redistribution. The UNU/IIST will focus on the best and the brightest, seeking out new talent in young people.

The UNU/IIST will seek funding in order to offer three kinds of fellowships: 915 month projects, from 2 to 4 week to 3-month courses, and 69 month research fellowships. Fellows will come from the developing world to work with the UNU/IIST scientific and technical staff and visiting experts. Fellows shall return to their place of origin and be committed to the transfer of their experience to home-country affairs: software development, university teaching, and research. The UNU/IIST will monitor the effectiveness of this transfer and will assign priority in its cooperation accordingly.

Young students will be invited to spend part of their studies at the UNU/IIST in the form of Ph.D. internships, for example in the form of repeated three-month visits. The UNU/IIST is itself not a degree-awarding institute, but will endeavour to profile its research so as to become an internationally recognized centre. As such, the UNU/IIST will also be open to developing world post-doctoral research fellows and visiting experts.

1.6 The Profession

In this section I shall examine one technical approach to software development. Another approach - together with a comparative analysis - will be sketched in the interlude section, "Two Worlds of Computing," after section 1.10.

To develop software involves several disciplines: requirements development, programming, software engineering, management, and the support of resident computation scientists. Although the UNU/IIST is also engaged in other, non-developmental issues, the above disciplines will be a major focus.

The UNU/IIST is dedicated to the professionalization of software development.

A professional is a developer, a resident computation scientist, or a manager who is scientifically and technically interested in these fields; who knows whether a product can be developed in a trustworthy manner; who will develop software in such a manner, performing as a natural part of development calculations that reveal properties of requirements models, abstract functional and behavioural specifications, and of designs long before costly implementation has taken place; who is aware of the forefront of the field and is able to stay abreast; and is a person who is interested in further developing the science and techniques of these fields.

As is well established in other branches of engineering, the use of mathematical modelling and reasoning about contemplated designs is at the centre of any of the development activities that the UNU/IIST will propagate.

1.6.1 Requirements Development

In order to ensure that the customer, the user, gets software adapted to its intended purpose, a careful study must be made of the domain to which the software is to be applied. Thus, requirements development may involve the mathematical modelling of concepts and facilities of the problem domain, and of functional and behavioural characteristics; together these form the conceptual model. Additionally, the physical model involves modelling interfaces between components implementing the conceptual model, as well as safety criticality, dependability, performance, and human-computer interface facets. Finally, simulation models may allow experimental model executions before final requirements are captured - and in preparation for the programming and engineering of the software.

Requirements development may, depending on application characteristics, also, or instead, involve establishing knowledge-based models that allow system reasoning during execution.

1.6.2 Programming

In order to secure efficiency and correctness of implementations, the latter with respect to requirements, programming now traditionally employs the precise, logical techniques that allow objective validation and the controlled, carefully motivated design decision introduction of efficiency. Typically programming thus includes abstract functional and behavioural specifications, their stepwise design transformation into efficient implementation, followed eventually by the coding in some executable programming language. Proofs of properties of individual stages as well as correctness of stage transformations intersperse this somewhat simplified process picture.

The UNU/IIST will, in its projects and education courses, propagate programming techniques of the kind represented by the B. Estelle, Esterel, HP-SL, Larch, Lotos, RAISE, VDM and Z methods, will feature proof assistant and theorem proving systems of the kind represented by B. Boyer-Moore, Isabelle, Gypsy, mural and RAISE tools, and will otherwise rely on such programming languages as Modula-3, Oberon 11, occam, Prolog and Standard ML.

1.6.3 Software Engineering

In order to insure conformable, maintainable, and portable software systems, software engineering employs such subsidiary techniques as ongoing-in the field conformance testing; version control and configuration management; change request identification; monitoring and control; test-case generation and validation; requirements and design decision tracking; and hypermedia-supported documentation.

The UNU/IIST will feature, in its projects and its education courses, Computer Aided Software Development Environments that will assist the software engineer in carrying out the above tasks.

1.6.4 Computation Science

Software developments usually entail new application domains, new functions and behaviours, and new software designs - for which state-of-the-art development techniques only partially apply. A resident computation scientist is hence a person who can check the case-by-case validity of the techniques applied and, in cases, provide justification for the use of novel techniques. The UNU/IIST will exemplify, in its projects and its education courses, instances of such problems and examples of their remedy.

1.6.5 Management

In order to secure timely, economic, and manageable development projects, managers must apply resource planning: estimation, risk analysis, allocation and scheduling, resource monitoring and control techniques, and overall quality assurance: planning, monitoring, and control. The UNU/IIST will, in its projects and courses, propagate state-of-the-art management techniques.

1.7 Organic Network

An Organic Network will be linked to the UNU/IIST. It will be an expanding circle of affiliated, cooperating software technology development centres, university computation science and engineering departments and research institutes. The network will focus on the developing world, but industrial world centres are expected to help secure the objectives of the network.

Aims of the network are to strengthen identity, stability, quality, and productivity in developing-world centres, with respect to development projects, university education, and research in the areas covered by the UNU/IIST.

Emphasis within the cooperation areas will be put on formulation of professional accreditation criteria, including university curriculum development, affinity of software to its intended use - thereby helping to close the gap between consumer and producer- and correctness of software with respect to requirements definitions - thereby aiding the developing world in competitively producing highest quality software.

Cooperation means are based on the UNU/IIST fellowship programme, rotation of scholars, joint projects, joint courses and seminars, joint events, joint publications, and extensive, timely circulation of the planned Software Technology Monitor, the UNU/IIST NewsLetter, and other, low-cost or free UNU/IIST publications.

The UNU/IIST will assist affiliated centres in becoming connected to an electronic mail service. This electronic aspect of the Organic Network shall eventually include ability for general file transfer, log-in to remote computers, and general access to international academic and technological (commercial) e-mail networks. This form of on-line connection will form the backbone of the UNU/IIST Organic Network. The UNU/IIST will endeavour to secure uniform electronic network access so as to avoid a degradation into "first" and "second"-class affiliates.

1.7.1 Network Projects

In 1.4.1, I briefly outlined project classes and project topics. In 1.6, I briefly outlined components of professional project development methods.

Organic Network institutions are expected to be involved in projects in two ways: by 9-15-month secondment of project fellows from affiliated software development centres to Macau, and by some of these centres eventually technology transferring prototyped products for final completion. Only by actual hands-on experience under careful supervision can newest methodologies and technologies be efficiently transferred into industry.

1.7.2 Professional Accreditation

The UNU/IIST assumes a heretofore unprecedented high level of professionalism to be achieved in its projects, to be conveyed in its courses, to be applied in its consultancy, and to otherwise be further developed in its research. In cooperation, typically with professional (computer science and information technology) societies - also affiliated with the Organic Network the UNU/IIST wishes to develop criteria and standards for industry-oriented professional accreditation.

1.7.3 Curriculum Development

The UNU/IIST is introducing the latest, but proven "didactics" and techniques in its course programme and projects. In cooperation with Organic Network-affiliated national and regional universities, the UNU/IIST wishes to help these upgrade local computation science and engineering course curricula.

1.7.4 Network Research

The UNU/IIST software development model represents a rich, multifaceted picture - for which not all aspects are yet in a state where matured courses can be taught or techniques applied using conventional management principles. The UNU/IIST projects will illuminate specific methodological and technological facets in need of further research. The UNU/IIST intends to cooperate with Organic Network-affiliated research centres in pursuing this research - thereby bringing many of the positive aspects encountered in advanced university-industry projects (within for example the European ESPRIT programme) to bear also on universities and industries of the developing world.

The UNU/IIST offers advice to information technology agencies of regions of the developing world with respect to possible multilateral research and pre-competitive development programmes.

1.8 The UNU/IIST: Novel Facets

The UNU/IIST will approach its task by novel compositions of actual, live feasibility, demonstrator, and prototype product technology transfer projects with on-the-job training in the form of advanced education courses. The UNU/IIST is to be geared explicitly to narrowing gaps between theory and practice, and thus between universities and industries. The UNU/IIST will thus differ substantially from most conventional university, educational, and research systems, including those in the industrial world.

The UNU/IIST personnel - administrative and technical/scientific, and staff, visiting experts, and fellows - will likewise present novel aspects of cooperation. Over the build-up, initial years of the UNU/IIST, staff and visiting experts will gradually shift from coming from the industrial to representing the developing world.

1.9 Funding and Donation

The UNU/IIST depends, in carrying out a majority of its programme activities (notably projects and courses), on funding primarily from the UN system: the UNDP, Unesco, UNIDO, World Bank (WB), and regional banks such as the Asian, African, and Inter-American Development Banks. All such funding requests will be coordinated by the UNU Centre in Tokyo, Japan.

The UNU/IIST expects external funding for the production and low-cost, or even free, distribution of UNU/IIST publications, including the Software Technology Monitor and the UNU/IIST NewsLetter.

The UNU/IIST shall additionally seek operational donations thereby making endowment income available for fellowships. Donations will thus be sought to cover such day-to-day base facets as library, soft and hard computing, and networking. Finally the UNU/IIST invites private companies to establish Distinguished UNU/IIST Research Chairs in their names.

1.10 UNU/IIST Interfaces

The diagram attempts to illustrate operational interfaces between components of the UNU/IIST and the Organic Network.


Operational interfaces between components of the UNU/IIST and the Organic Network

Two Worlds of Computing

In preparation for parts 2 and 3 of this paper, I discuss issues relating to so-called "intelligent access" - mentioned in the Announcement of this Kyoto Symposium.

Part 2 assumes some familiarity with the field of computing science. It is introduced in order to make reasonably qualified statements on one of the roles that the UNU/IIST might play. This role relates to those topics of the Kyoto Symposium that are based on advances in Computer-Human Interfaces (CHI), Cognition, and Natural Language Interfaces (Computational Linguistics). (These terms were found in the Symposium Announcement.)

In section 1.6, I have outlined one approach to software development. For technical problems and facets, see [5, 6, 2, 3]. That approach is currently the predominant one, but perhaps not the best. The approach outlined in section 1.6 can, with a few terminological changes, be brought to cover also the next one.

This at times and in certain circles somewhat controversial approach is represented by so-called Knowledge-based Systems (KBS) Engineering (KE). Derivative terms are: Artificial Intelligence (AI), Heuristic or Expert System (ES) approaches.

Novel applications, as we shall see, are often "advertised" as being of the latter kind (KBS, AI, ES).

Algorithmics and KBS

The "classical" approach more or less assumed in section 1.6 is based on the Fortran, Algol 60, Pascal, and C tradition of programming. In this style of programming, one transforms some abstraction of the problem domain, in several stages of development, into compiled, execution time, and storage efficient machine code.

The KBS/AI/ES approach, briefly characterized here, is based on the Lisp and Prolog tradition of programming. In this style of programming, one attempts to represent knowledge about the problem domain in such a way that it is this representation that forms the basis for execution time interpretation.

Algorithmic vs. KBS Development

We call the "classical" programming style "algorithmic" (and by ALG we mean Algorithmic Software Development), while the other style is referred to as "knowledge engineered" (and by KBS we mean Knowledge-based Systems Development). The choice of terms is not quite pragmatic - as will be argued below.

Let us contrast the two styles of programming and programs in order better to identify differences and complementarities.

A.a. In ALG program computations, all reasoning has been deeply "compiled" (away) into efficient, but not very general, not very adaptable, code.
K.a. In KBS programs, computations take the form of reasoning based on generally adaptable knowledge representations.
A.b. In ALG specification, we use logic at the specification level, K.b. versus as an object language in KBS.
A.c. In ALG development, we refine by steps,
K.c. versus remaining faithful to the problem domain in KBS. A.d. In ALG, we aim at efficiency through specialization.
K.d versus through general methods in KBS.
A.e. In ALG, our units of specification are functions in extenso, K.e. versus rules or facts in KBS.
A.f. The composition principle in ALG is functional composition,
K.f. versus catenation of assertions and object classification with multiple inheritance - however including non-monotonicity - in KBS.
A.g. In ALG, we speak of computation,
K.g. while in KBS we speak of deduction, induction, and abduction. A.h. In ALG, we operate with partial evaluation,
K.h. versus partial deduction in KBS.
A.i. We speak of compilation in ALG,
K.i. versus intelligent backtracking in KBS.

For a more thorough analysis, see [4].

Contents - Previous - Next