Industrial Research Chair in
Software Engineering
Background and Research

Sponsored by
Motorola, Computing Devices, ACTC, Northern Telecom, Government of Alberta, University of Calgary

Chairholder: Mildred L.G. Shaw

July 1996


1 Summary

The University of Calgary has established an Industrial Research Chair to undertake research in Software Engineering/Manufacturing, aimed at strengthening the software manufacturing capabilities of Alberta and Canada. The Chair is held in the Department of Computer Science, in the Faculty of Science, and will collaborate with the Department of Electrical and Computer Engineering, in the Faculty of Engineering.

The holder for the Chair is Dr. Mildred L. G. Shaw, Professor of Computer Science. Two new faculty positions will be established in the area of software engineering as replacement for Dr Shaw's previous post.

Funds and infrastructure support for the Chairs and related research costs (including additional personnel, student scholarships, and equipment) will be provided by Motorola Inc., Computing Devices Canada, ACTC Technologies Inc., Northern Telecom, the Alberta Provincial Government (Department of Economic Development and Tourism), and the University of Calgary.

Alberta has developed a major industry in software manufacturing, with some 1300 companies addressing worldwide software markets. Section 4 describes research programs to support the improvement of software manufacturing processes of major significance to Alberta industry. The chairholder and the associated replacement faculty and research staff form the nucleus of a group that fosters interaction between academia and industry in the area of software manufacturing.

A program of research has been developed in consultation with the industrial sponsors that addresses the highest priority issues foreseen for the software industry over the next decade. It focuses on the need for repeatable, defined, managed and optimized software manufacturing processes throughout the software manufacturing life cycle from requirements to replacement. The main objectives and activities of the Chair are:

  • To establish research and graduate training activities at the University of Calgary that will develop highly qualified personnel in industrial software manufacturing.
  • To establish an organizational infrastructure at the University of Calgary supporting a long-term program of university-industry collaborative research on software manufacturing.
  • To establish a centre of excellence at the University of Calgary in research and development concerned with the knowledge flows and processes underlying the software manufacturing life cycle.
  • To undertake fundamental research on requirements elicitation, specification and tracking methodologies in an industrial setting.
  • To undertake fundamental research on modeling and tracking software manufacturing processes in an industrial setting.
  • To develop knowledge-level workflow tools applicable to requirements engineering and software manufacturing processes.
  • To evaluate the methodologies and tools in industrial software organizations.

    2 Sponsors

    2.1 Industrial Sponsors

    Motorola Inc.
    8201 East McDowell Road, P.O. Box 1417
    Scottsdale, Arizona, U.S.A. 85252

    Computing Devices Canada
    1020 - 68th Avenue N.E.
    Calgary, Alberta T2E 8P2

    ACTC Technologies Inc.
    350, 6715 - 8th Street N.E.
    Calgary, Alberta T2E 7H7

    Northern Telecom Inc.
    2924 - 11th St. N.E
    Calgary, Alberta T2E 7L7

    2.2 Other Sponsors

    Government of Alberta

    University of Calgary

    3 The Establishment of the Chair

    3.1 Rationale for the establishment of the Chair

    Alberta is emerging as a centre for software development as evidenced by the number of small and medium-sized information technology companies engaged in this activity. Most of these companies are located in Calgary. The last detailed survey of the software industry in Alberta was carried out by the Alberta Bureau of Statistics in 1992 and shows 1,300 companies involved in software manufacturing with $590M in revenues for software products and employing 14,000 personnel. The industry generated $300M revenues in 1989 so that the growth rate is 30% a year and, since the 1989-92 period was one of recession, it is believed that this growth has been at least sustained since the 1992 survey making software manufacturing a very significant economic sector for Alberta.

    Much of the initial growth of a software industry in Alberta can be attributed to the impact of the petro-chemical industry outsourcing its information services. However, the strong home market has enabled companies to establish strengths that enable them to compete nationally and internationally, and in 1992 some $115M revenues were generated through export of software products outside Alberta.

    One of the advantages to the software industry in Alberta has been a steady supply of well-educated professionals from the Province's institutions of higher learning. This has resulted in the creation of a pool of talent well suited to what might best be described as traditional software development where the focus has been on programming.

    The trend in the software industry is towards a holistic approach to software manufacturing. Coding is but a small part of a much larger integrated task consisting of a series of activities ranging from requirement definition and specification through planning, structuring, coding, testing and maintenance. In all the manufacturing processes consideration has to be given to reliability, verification, documentation and maintenance, and the use of formal methods, performance analysis techniques and the explicit management of process improvement are playing increasingly important roles in software manufacturing.

    It is therefore becoming increasingly important to upgrade the skills of existing software developers and to train new personnel capable of executing the more demanding tasks of delivering quality software products. The skills required, including those mentioned above, are generally grouped under the sub-discipline of software engineering.

    The University of Calgary already conducts research and teaching in various aspects of software engineering. It is, however, recognized that the software engineering activity in Calgary needs to be strengthened, particularly in relation to industrial needs in software manufacturing.

    A unique opportunity has arisen because several of the more sophisticated companies now doing software development in Calgary have ties to the University and its spin-off companies. Computing Devices Canada (CDC) has been awarded a large contract to develop software for the Canadian Defense System. Subcontracts have been let to Motorola Inc., which in turn has subcontracted work to ACTC Technologies Inc. in Calgary. CDC itself has established a presence in Calgary to do the software development work.

    The increased activity in software manufacturing by these and other companies in Calgary makes it important for the University of Calgary to substantially increase its capabilities in software engineering and manufacturing. It is expected that the University of Calgary will contribute significantly to the development of software products for world markets, by doing research and providing graduates in the area of software manufacturing as it relates to management of software development, achieving higher SEI maturity indices, and satisfying ISO quality standards. The University can support and mediate needs for quality methods identified now by the leading companies which will be increasingly in demand in Calgary and in Canada's growing software-based industries.

    3.2 Positioning of the Chair Within the Academic Setting

    Department of Computer Science

    The Faculty of Science has 177 full-time academic staff with 23 of these employed in the Department of Computer Science together with 20 hardware, software, research and administrative staff. Undergraduate enrollment in Science is 1800 students out of which about 400 students are pursuing a B.Sc. in Computer Science. The graduate program has 22 students enrolled for the M.Sc. degree and 22 for the Ph.D. degree.

    In the Department of Computer Science there is significant research activity in the following areas relevant to the chairs:

  • artificial intelligence
  • knowledge support systems
  • human-computer interaction
  • computer supported cooperative work
  • computer-assisted learning
  • computer graphics
  • databases
  • software development
  • algorithm analysis and design
  • distributed algorithms and systems
  • computer communications
  • parallel computation

    As a result of this research activity, the department has founded several research groups and institutes that are particularly relevant to the present proposal. These include the following:

  • Software Research and Development Group
  • Knowledge Science Institute
  • Algorithms and Complexity Group
  • Collaborative Systems Laboratory
  • Graphicsland Animation Group
  • Formal Methods Group
  • WURCNet Inc

    Details of these activities are also provided in Appendix A.

    Department of Electrical and Computer Engineering

    The Faculty of Engineering employs about 85 full-time academic staff with 20 full-time academic staff in Electrical and Computer Engineering along with 14 support staff. Undergraduate enrollment in Engineering is 1500 students out of which approximately 250 are pursuing a B.Sc. degree in Electrical Engineering. Of these, approximately 90 are registered in the computer engineering specialization. The full-time graduate student enrollment in Electrical and Computer Engineering is currently in the 70-75 range with an additional 15-20 part-time students.

    In the Department of Electrical and Computer Engineering research involving software development is conducted in the following areas:

  • CAD tool development for VLSI systems
  • digital system design
  • analog and digital VLSI systems design
  • digital signal processing
  • digital communications
  • digital biomedical signal and image analysis
  • computer graphics and computer modeling
  • digital control
  • digital power system analysis and control

    In most of these areas, software tools are being developed as part of the research activities. The department has several major initiatives and collaborations that include:

  • MICRONET, the Federal Network of Centres of Excellence in Ultra Large Scale Integration
  • A formal affiliation with Telecommunications Research Laboratories, Wireless Communications Research Centre located in Calgary
  • The Canadian Microelectronics Corporation
  • The Alberta Microelectronic Centre

    Details of these activities are also provided in Appendix A.

    3.3 Research Facilities and Infrastructure

    Department of Computer Science

    The department occupies three full floors of the Mathematical Science building. One floor is dedicated to undergraduate facilities, one contains administrative and academic offices, and one has extensive laboratory space for graduate teaching and research as well as further academic offices. A large network of file servers connected via an FDDI ring and workstations provides excellent computing and communications facilities in the department for researchers and students starting at the second undergraduate year level. In addition the department has PC, Macintosh and graphics labs equipped with up-to-date machines. A powerful 16-processor SGI Challenge supercomputer was installed recently. Access to university and external computing facilities is maintained via local and Internet connections.

    The rapid evolution of the department during the past few years is mirrored by the growth in the depth and breadth of research funding. Faculty research is generously supported by NSERC and other funding agencies. Research grants received by faculty members within the department total well over $800,000 annually; in addition, the department receives almost $800,000 in industrial support.

    Department of Electrical and Computer Engineering

    The department occupies approximately 4500 square metres of space in the A and B wings of the Engineering Complex. Similar to Computer Science, one floor is dedicated to undergraduate facilities, one contains administrative and academic offices, and the remaining two floors have extensive laboratory space for graduate teaching and research as well as further academic offices. A large network of file servers, PC's and Sun workstations connected via ethernet provide excellent computing and communication facilities in the Department for researchers and students. PC laboratories are also in place, primarily for undergraduate teaching. Access to University and external computing facilities is maintained via local and Internet connections.

    The department has grown rapidly in the past decade, and is now the largest department in the Faculty of Engineering. Research grants received by faculty members within the department total well over $1.5M annually from NSERC and other funding sources. The department also receives about $1M in external support from organizations such as TR Labs, the Canadian Microelectronics Corporation, the Alberta Microelectronic Centre, and others. Donations of software from commercial firms exceeded $500,000 in 1995.

    3.4 Proposed Collaborations

    The following academic staff are engaged in software development at present:

    Department of Computer Science

  • Robin Cockett: Programming Language, Design and Implementation based on Categorical Principles
  • James Bradley: Database Systems
  • Anton Colijn: Information Systems
  • Wayne Eberly: Foundations of Software Engineering
  • Brian Gaines: Knowledge Management Systems
  • Saul Greenberg: Collaborative Systems Development
  • Lisa Higham: Foundations of Distributed Systems
  • Przemyslaw Prusinkiewicz: Computer Graphics
  • Brian Unger: Distributed Software Development
  • Brian Wyvill: Computer Graphics

    Department of Electrical and Computer Engineering

  • Jun Gu: Software Tools for VLSI
  • Laurence Turner: Development of Software Tools to Aid in the Automatic Implementation of Systems in FPGA Technology
  • Len Bruton: Software Development for Multidimensional Image Processing and Wireless Communications
  • Rangaraj Rangayyan, Development of Software for Image Processing Applications in Medicine
  • Mike Smith, Development of Software for Image Processing Applications in Medicine
  • Dick Stein: Development of Software for Image Processing Applications in Medicine
  • Ron Johnston: Wireless Communications

    In addition to collaborating with a number of academic staff in the two departments, the Chair will have ongoing interaction with the industrial sponsors through the Software Engineering Research Network (SERN). Through the SERN, the University researchers will provide the expertise in advanced software manufacturing techniques to the companies, while the companies will act as a test bed for new research ideas evaluated in relation to the development of their software products. A major component of the collaboration will be through graduate student placement in the companies in order to undertake their research projects, and through company employees participation in graduate courses and projects. While the Chair will nucleate and provide the major focus for such industrial collaboration, it is also intended that the joint projects and graduate student projects in industry will extend to other areas of both Departments.

    3.5 Organization

    An Industrial Advisory Council has been set up and has been operating for the past two years in establishing the Chair. All of the members of this council have enthusiastically embraced the concept of the Chair and have been very helpful in providing administrative, financial, and other support during the proposal phase. This group is committed to making the Chair a success.

    A Steering Committee has been established, composed of industrial sponsor representatives, to oversee and review the operations of the Chair. The heads of the Departments of Computer Science and Electrical and Computer Engineering will also be involved and the progress of the Chair will be reviewed annually. The University research group will be interacting in a very detailed way with the industrial sponsors, who will provide test beds for the research conducted by the Chair.

    3.6 Intellectual Property

    The University has a documented Intellectual Property Policy. It is intended that in general the results of the research undertaken will come under item 5.2.3, that it be placed in the public domain and be freely available for use. Specific confidentiality and non-disclosure agreements will be drawn up with industrial sponsors for projects involving access to confidential or commercially sensitive material, but the need for such access will be minimized.

    4 Chair Research Projects

    4.1 Summary

    Software manufacture is a growth industry world-wide that offers the possibility to develop a major new industrial sector in Canada. However, it is highly competitive internationally and other countries, such as India, have developed very effective software manufacturing industries that threaten existing Canadian companies. There is an urgent national need for innovation in software manufacturing that will result in competitive advantage. The overall objective of this proposal is to establish a joint industry-university research program that addresses the need to manage software engineering processes more effectively through all stages of the software manufacturing life cycle.

    The primary focus will be on the relationship between the human factors of software manufacturing and the technical aspects of software manufacturing processes and products. A "knowledge engineering" approach will be adopted that models the knowledge flows and processes throughout the software manufacturing life cycle. One application area will be the elicitation, development and tracking of requirements and their specification, refinement and use in system design. Another application area will be the modeling and tracking of the processes involved in particular software manufacturing organizations with a view to improving the repeatability, definition, management and optimization of these processes.

    Research in both these areas will involve the use and further development of existing methodologies and tools for conceptual and organizational modeling, and for the management of large volumes of linked heterogeneous materials. In particular, the tools will be integrated to address the needs of software manufacturing through the development of knowledge-level workflow systems that coordinate the knowledge processes of goal-directed teams.

    The research also involves close collaboration between university and industry through a Software Engineering Research Network that coordinates projects that are developed at the university and carried out at industrial sites using Basili's Software Engineering Laboratory model [1, 2]. SERN will operate as a networked organization providing associated university and industry staff and students with a virtual institution which manages joint projects. It will involve the Science, Engineering and Management Faculties at the University in order to provide the essential cross-disciplinary knowledge involved in modeling and supporting software manufacturing.

    4.2 Aim and Objectives

    The overall aim is to establish a joint industry-university research program that addresses the need to manage software manufacturing processes more effectively through all stages of the software life cycle. The specific objectives are:

    1. To establish research and graduate training activities at the University of Calgary that will develop highly qualified personnel in industrial software manufacturing.

    2. To establish an organizational infrastructure at the University of Calgary supporting a long-term program of university-industry collaborative research on software manufacturing.

    3. To establish a centre of excellence at the University of Calgary in research and development concerned with the knowledge flows and processes underlying the software manufacturing life cycle.

    4. To undertake fundamental research on requirements elicitation, specification and tracking methodologies in an industrial setting.

    5. To undertake fundamental research on modeling and tracking software manufacturing processes in an industrial setting.

    6. To develop knowledge-level workflow tools applicable to requirements engineering and software manufacturing processes.

    7. To evaluate the methodologies and tools in industrial software organizations.

    4.3 Structure of the Proposal

  • Section 5 covers the chairholder's relevant research progress over the last 20 years, showing the relevance of this to the current proposal.

  • Section 6 examines the state of the art in Software Engineering, especially with regard to enterprise process modeling, knowledge-level workflow tools, recent trends in Requirements Engineering and its relationship to Knowledge Engineering, and KADS, PCP and Soft Systems Modeling Methodologies. In particular, this section gives relevant details of the methodologies that will be used in the research program.

  • Section 7 describes how the interaction between the industrial partners and the research program will take place through the Software Engineering Research Network (SERN).

  • Section 8 describes the ways in which highly qualified personnel will be trained.

  • Section 9 describes the four major projects that constitute the research program: Requirements Elicitation; Modeling and Tracking; Software Manufacturing Process Modeling; Knowledge-Level Workflow Tools; and Industrial Evaluation.

  • Section 10 is the reference list of literature cited in earlier sections.

    5 Chairholder's Relevant Research Progress to Date

    My research activities throughout my career have been concerned with the human-technology interface and the development of methodologies and tools for modeling it through the elicitation of conceptual and organizational models. For my doctoral research I developed an operational cognitive modeling system based on the axiomatic structure of Kelly's personal construct psychology and implemented this in interactive computer programs that elicited and analyzed the conceptual structures of individuals and organizational groups [68-71, 91]. The evaluation of this system involved me in field studies with Imperial Chemical Industries (ICI) and with the manufacturers supplying Marks and Spencer in order to study problems of personnel selection and manufacturing quality control [71]. Over the years I have collaborated with many research groups internationally to port the tools I developed to operate on successive generations of computers, and to support their application in a wide range of applications from manufacturing and management to education and clinical psychology [72, 73, 75-85, 87].

    In the 1980s we proposed that these tools be used for knowledge engineering in the development of knowledge-based or "expert" systems [35], and demonstrated their use in knowledge elicitation for the development of accounting systems [76]. This proposal and demonstration aroused major industrial interest and resulted in a fruitful period of collaboration with Boeing Computer Services [5], Neuron Data [33, 34], and other industrial research groups [29, 90] in the late 1980s that generated a new family of knowledge modeling tools based on my original design [6-10, 37, 38, 84-86].

    Because of the demands of practical knowledge engineering we extended the methodologies and tools to support knowledge management at every stage of the modeling process: from hypermedia systems to handle a large and heterogeneous collection of knowledge sources in a range of media; through knowledge structuring using repertory grid and concept mapping techniques deriving from personal construct psychology; to knowledge formalization using semantic networks and terminological logics resulting in computational knowledge structures [37, 90]. Even though these methodologies and tools were originally targeted on knowledge-based system development, it was clear to me from my previous studies with industry that they could be used for organizational studies and knowledge management even when the target was not to build an artificial intelligence system [41, 92, 97].

    Meanwhile, in my teaching at the University of Calgary I was not only involved in cognitive science, human-computer interaction and artificial intelligence, but also became responsible for the required course on software engineering. Since the syllabus already encompassed the technicalities of algorithms, programming, and so on, the focus of this course is on the management of software manufacturing processes, the specification of requirements, the definition of a system satisfying these specifications, and the evaluation of the system against the requirements. It became clear to me that much of the research on knowledge engineering was directly applicable to problems of requirements elicitation and tracking [87], and to the modeling of software manufacturing processes, and I encouraged one of my masters students to investigate the use of knowledge modeling in software maintenance [49]. In my senior undergraduate course on advanced information systems I introduced students to the conceptual modeling tools and provided them for use in their own project specifications [74, 88]. Similarly, in my graduate teaching I tutored students in the use of the tools to frame their research requirements and to model the differential understanding of their research topics with students and faculty in their research groups [82]. I also undertook longitudinal studies of the knowledge processes involved in other technical research groups in the university [92].

    Much of my research was undertaken within the Knowledge Science Institute (KSI) which was established at the University of Calgary in 1985 with a mandate to study the knowledge economy and knowledge processes in science and engineering. My colleague in the KSI, Dr Brian Gaines, has close links with the Division of Manufacturing Engineering (DME) at the University of Calgary, and he collaborated with Dr Douglas Norrie of the DME in the application of the knowledge management methodologies and tools to the management of the research of an international project on Intelligent Manufacturing Systems (IMS) that involves 31 organizations in 14 different countries [30]. They have also applied the methodologies and tools to the management of the manufacturing life cycle [31], and we jointly have applied them to the management of knowledge flows in education [32, 89]. The outcome of these various studies indicate that knowledge-level workflow tools, as we now call them, are applicable to any goal-directed human activity involving the coordination of the knowledge processes of a goal-directed team. One of the partners in the IMS consortium was IBM France who modeled software engineering as a manufacturing process and whose studies encouraged my own development of a similar conceptual framework for the software manufacturing life cycle.

    My original research studies included group knowledge elicitation and modeling tools [71], and we have previously developed groupware versions of the knowledge modeling tools and applied them to the coordination of various knowledge engineering and manufacturing processes [80, 81, 84]. The international structure of the IMS project made it important that these tools be made available over the Internet, and much of our research in the past two years has been concerned with re-engineering them to operate in client-server mode over the World Wide Web [39, 40, 88]. There are security problems in operating through the web, and recently one of my graduate students has developed an administrative system for the Faculty of Kinesiology as part of his masters research that explicitly addresses the security issues [58]. Web servers and browsers now offer a highly cost-effective client-server technology which addresses security issues, and I propose to develop the knowledge-level workflow tools around this, reusing the existing methodologies and tools already developed and collaborating with colleagues in KSI to extend them. The main focus of research in the Software Engineering Research Network will be on the effective application of these tools to software manufacturing processes rather than on the development of the tools in their own right.

    6 State of the Art in Software Engineering

    6.1 Enterprise Process Models

    Enterprises world-wide have to operate in an environment of increasingly rapid change and increasingly strong competition. This is leading to major and continuing restructuring as the enterprises that survive adapt to change. Principled restructuring is based on defining the basic goals of the enterprise, identifying the processes currently supporting those goals, reengineering the processes to serve the goals more effectively, and maintaining the quality of those processes by a program of continuous process improvement. In the literature this approach may be seen as a combination of business process reengineering [47] and total quality management [20, 44].

    Basili and Caldiera [1] warn that the approaches for improving quality in conventional manufacturing do not work especially well for software manufacturing, and different models are required. The Department of Defense Software Engineering Institute (SEI) at Carnegie-Mellon University has been the major innovator in defining the processes involved in software manufacturing and in developing quality models for their management and improvement. Humphrey [51] discusses the problems in the software industry, and the myths that are widely believed. One myth is the widespread belief that some technologically advanced tool or method will provide a magic answer to the software crisis. This is not only wrong, but it is dangerous in Humphrey's opinion. Technology is vital for long-term improvement, but unthinking reliance on an undefined "silver bullet" will divert attention from the need for better process management. When asked to name their key problems, few software professionals even mention technology. Their major concerns are: open-ended requirements, uncontrolled change, arbitrary schedules, insufficient test time, inadequate training, and unmanaged system standards.

    The effective use of software technology is limited by several factors: an ill-defined process, inconsistent implementation, and poor process management. These problems must be addressed first [51].The SEI has developed a five-level software process maturity framework (Figure 1) which is based on the software experience of the SEI staff and industry, and has been found reasonably to represent the status and key problem areas of many software organizations.

    Figure 1: Five levels of SEI software process maturity framework

    (1) Initial

    Characteristics: Chaotic--unpredictable cost, schedule, and quality performance.

    Needed Actions: Planning (size and cost estimates and schedules), performance tracking, change control, commitment management, Quality Assurance.

    (2) Repeatable

    Characteristics: Intuitive--cost and quality highly variable, reasonable control of schedules, informal and ad hoc process methods and procedures.

    Needed Actions: Develop process standards and definitions, assign process resources, establish methods (requirements, design, inspection, and test).

    (3) Defined

    Characteristics: Qualitative--reliable costs and schedules, improving but unpredictable quality performance.

    Needed Actions: Establish process measurements and quantitative quality goals, plans, measurements, and tracking.

    (4) Managed

    Characteristics: Quantitative--reasonable statistical control over product quality.

    Needed Actions: Quantitative productivity plans and tracking, instrumented process environment, economically justified technology investments.

    (5) Optimizing

    Characteristics: Quantitative basis for continued capital investment in process automation and improvement.

    Needed Actions: Continued emphasis on process measurement and process methods for error prevention.

    In 1989 and 1990, the Software Engineering Institute (SEI) carried out assessments of software processes, involving 167 projects in the USA and 196 projects in Japan. The results of these assessments show that: 86% of the US organizations (98% in Japan) are at level 1 (initial) ; 13% (1% in Japan) are at level 2 (repeatable); 1% (0.5% in Japan) are at level 3 (defined); 0% (0% in Japan) are at level 4 (managed); 0% (0.5% in Japan) are at level 5 (optimizing). These assessments clearly point out the problematic state of most software development processes.

    In 1987 and 1990, the SEI conducted process assessments at the Software Engineering Division of Hughes Aircraft, which led to a concrete action plan (e.g. formation of a software engineering process group, implementation of quantitative process management, enhancing the training program, and standardizing an effective review process). Carrying out this action plan resulted in: the division's progress from level 2 (repeatable) to level 3 (defined); an estimated annual saving of about $2 million; successful control of the effects of changing software requirements; improvement in the quality of work life. Another example of the SEI approach to process improvement is that of Raytheon, which started its software engineering initiative in 1988. Over a period of 3-4 years: the average annual savings in cost of quality was $5.8 million, productivity gain was 29%, investment in process improvement was $1 million.

    6.2 Knowledge-Level Workflow Tools

    Process restructuring generally involves major changes in work practice. Existing processes have been largely determined by the technologies available to support them. Much of the business process reengineering literature is concerned with more effective processes that are predicated on new computer and communications facilities, and involve major changes in work practice to make effective use of them [18, 59]. Conversely, from a technological perspective, it is ineffective to introduce new technologies in the workplace unless work practice is reengineered at the same time. The workplace of the future is not that of today with the addition of advanced computer and communication technologies. It requires a fundamental reassessment of all aspects of the enterprises involved. However, principled restructuring of enterprises effectively requires empirical data derived from applications experience. It requires modeling tools to support the planning process. It requires workflow tools that package the functionality of the new technologies into humanly usable systems, and integrate that functionality with existing information systems. The models and the systems must be based on deep models of organizational cultures, discourse and coordination practice, and must be themselves supported through documentation and training that facilitates their deployment [28, 63].

    In terms of computer technology, research on shared ontologies and knowledge interchange formats is fundamental to modeling and supporting organizational knowledge flows [62]. Knowledge sharing formats [25] such as KIF [43] and Ontolingua [46], and agent protocols such as KQML [26], are already in use in DARPA-funded concurrent engineering projects such as SHADE/PACT [19]. The use of computer-based concept maps to manage knowledge processes has been studied in the context of hypertext systems and resulted in implementations and studies [12, 93].

    Mediator [31] is a layered system that utilizes these technologies to provide knowledge-level workflow tools to model and manage the manufacturing life cycle. It is an open architecture information and knowledge management system in which the sub-systems are geographically dispersed and involve different application packages, not necessarily designed to work together, multiple platforms, protocols and forms of user interface. The function of Mediator is to provide a knowledge support system for all those involved in the manufacturing process from requirements through design, engineering, production, to maintenance and recycling. It is designed to facilitate communication, compliance with constraints including physical restrictions and legal obligations, and to generally represent knowledge about any activity or sub-system relevant to the manufacturing process. The primary user interface to Mediator is through visual languages allowing the general representation of semantic systems through graphical symbols. The application layer uses particular instances of these visual languages with application-specific semantics and a visual appearance designed to be natural to use in the context of the specific application. The process layer supports agents as light-weight processes triggered by user interaction with the visual languages, and also triggered by other agents [19]. The communication layer supports object-oriented protocols for knowledge and data interchange such as STEP, Ontolingua and KQML [4]. A version of Mediator supporting synchronous collaboration is currently being developed in GroupKit [64], an open-architecture software system for the rapid development of groupware applications.

    6.3 Requirements Engineering

    There are many problems associated with requirements engineering, including problems in defining the system scope, problems in fostering understanding among the different communities affected by the development of a given system, and problems in dealing with the volatile nature of requirements. These problems may lead to poor requirements and the cancellation of system development, or else the development of a system that is later judged unsatisfactory, has high maintenance costs, or undergoes frequent changes. By improving requirements elicitation, the requirements engineering process can be improved, resulting in enhanced system requirements and potentially a much better system.

    Dobson and his colleagues [4, 22] argue that evolving requirements are now the norm, rather than the fixed requirements associated with the waterfall life cycle model used in the past. This approach recognizes problem uncertainty and proceeds by validating problem representations against stakeholders' perceptions rather than the older outdated method of verifying proposed solutions against a static problem statement. In May 1995, the Communications of the ACM published a special issue on requirements engineering. In the introductory article, Holtzblatt and Beyer [50] identify how to devise a successful requirements definition process, and conclude that requirements is about people talking effectively to each other.

    Requirements engineering can be decomposed into the activities of requirements elicitation, specification, and validation. Most of the requirements techniques and tools today focus on specification, i.e., the representation of the requirements. Christel and Kang [14] address elicitation concerns, those problems with requirements engineering that are not adequately addressed by specification techniques. An elicitation methodology is proposed to handle these concerns. This new elicitation methodology strives to incorporate the advantages of existing elicitation techniques while comprehensively addressing the activities performed during requirements elicitation. These activities include fact-finding, requirements gathering, evaluation and rationalization, prioritization, and integration. Taken by themselves, existing elicitation techniques are lacking in one or more of these areas.

    Requirements engineering is a key problem area in the development of complex, software-intensive systems:

    "The hardest single part of building a software system is deciding what to build. ...No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later." [11]

    Issues involved in this problem area include: achieving requirements completeness without unnecessarily constraining system design; analysis and validation difficulty; changing requirements over time [14]. A requirement is defined by IEEE:

    "(1) a condition or capability needed by a user to solve a problem or achieve an objective; (2) a condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed documents; (3) a documented representation of a condition or capability as in (1) or (2)." [52]

    The IEEE Standard Glossary of Software Engineering Terminology defines five other types of requirements in addition to functional requirements: performance requirements, interface requirements, design requirements, implementation requirements, and physical requirements [52]. Loucopoulos and Champion define requirements engineering as

    "the systematic process of developing requirements through an iterative process of analyzing a problem, documenting the resulting observations, and checking the accuracy of the understanding gained" [55]

    which is supported by Costello and Liu:

    "Requirements engineering is the process of conceptualizing, specifying, and validating the specification of the required behavior of the system." [17]

    Rzepka [65] decomposes the requirements engineering process into three activities:

    1. elicit requirements from various individual sources;

    2. insure that the needs of all users are consistent and feasible; and

    3. validate that the requirements so derived are an accurate reflection of user needs.

    This model implies a sequential ordering to the activities, with elicitation done once at the very beginning of the process though, actually, the process is iterative. Many of the current techniques used in knowledge engineering were designed to carry out exactly these types of processes.

    6.4 Knowledge Engineering and Requirements Engineering

    Early research on knowledge acquisition for knowledge-based systems emphasized the acquisition of the knowledge assumed to underlie human expertise in areas such as medical diagnosis, where conventional system analysis and software engineering had failed to provide computer emulation of the expertise. This led to the "expertise transfer" paradigm in which the primary function of knowledge engineering was seen to be the transfer of a human expert's knowledge to a computer system:

    "Knowledge acquisition is a bottleneck in the construction of expert systems. The knowledge engineer's job is to act as a go-between to help an expert build a system. Since the knowledge engineer has far less knowledge of the domain than the expert, however, communication problems impede the process of transferring expertise into a program. The vocabulary initially used by the expert to talk about the domain with a novice is often inadequate for problem-solving; thus the knowledge engineer and expert must work together to extend and refine it. One of the most difficult aspects of the knowledge engineer's task is helping the expert to structure the domain knowledge, to identify and formalize the domain concepts." [48]

    This discussion is still valuable today in characterizing the problems of eliciting knowledge from human experts. However, as numbers of knowledge-based systems were developed of increasing scope it became apparent that human experts were only one source from which knowledge was being acquired. Knowledge engineers are pragmatic in developing systems based on every available source of relevant information. It also became apparent that the status of the "knowledge" assumed to underlie human expertise was itself problematic:

    "Knowledge can be represented, but it cannot be exhaustively inventoried by statements of belief or scripts for behaving. Knowledge is a capacity to behave adaptively within an environment; it cannot be reduced to representations of behavior or the environment." [16]

    That is, the overt knowledge that we see in text, diagrams and computer data structures, and the invisible "knowledge" that we impute to human experts to account for their skilled behaviors are two distinct entities. It is simplistic and misleading to assume that the process that leads to the emulation of human expertise in a computer program is one of transferring knowledge--"expertise transfer" is an attractive metaphor but it leaves open the questions of what is expertise and how it may be transferred. A better metaphor might be one of modeling, that the emulation involves building a model of the expertise, where a "model" is according to Webster's dictionary:

    "a representation, generally in miniature, to show the construction or serve as a copy of something."

    There are clearly parallels between this account of knowledge engineering and similar phenomena in requirements engineering [45]. The software engineer would like to have those who are expert about the system requirements express them clearly, concisely and completely in terms permitting implementation--that is to make their "knowledge" of the requirements overt so that the requirements may be made operational. However, the supposed knowledge may be vague, incomplete and incorrect in its initial form, and the actual knowledge that informs the system design may only arise through a process of "elicitation" which is in fact better seen as one of modeling since what is elicited did not pre-exist but has come into being through the elicitation process.

    This emergent nature of requirements has led to the criticism of the "expertise transfer" notion in knowledge engineering being paralleled by similar criticism of the "requirements capture" notion in requirements engineering:

    "There is much talk of requirements capture, as if requirements were butterflies to be caught and pinned down in a specification cabinet. In reality, of course, this is not so; requirements are often much better thought of as being elicited through such techniques as ethnomethodological study, structured interviews, dramaturgical exercises, and so on. The shift of emphasis from the requirements process as being formalising the explicit to making explicit what is merely implicit is clearly correct, but does not go far enough in many cases of organisational requirement, where the problem is one of envisioning the future rather than understanding the present." [23]

    This quotation characterizes one significant aspect of both knowledge and requirements engineering--the way in which models emerge out of a process of anticipation. Another significant common aspect is the need for the `junk' which may also emerge to be removed--that the models should be minimal in expressing only requirements, not the scaffolding of past experience on which they may be based. McDermid has characterized a good requirements specification as one which:

    "says everything which the designer needs to know in order to produce a system which satisfies the customer/users--and nothing more" [57]

    6.5 Modeling Methodologies--KADS, PCP and Soft Systems Methodologies

    There have been two major modeling methodologies developed in knowledge engineering: the KADS methodology [66] focusing on the derivation of the formal representation; and the second, the PCP methodology [38], focusing on the derivation of the mediating representation. There are also basic modeling techniques in software engineering such as Checkland's [13] soft system methodology.

    6.5.1 KADS: a Structured Approach to System Development

    The KADS methodology is the outcome of a number of ESPRIT project activities centred at the University of Amsterdam but involving researchers and practitioners from many institutions, countries and disciplines. KADS is intrinsically a modeling approach with seven types of model distinguished [66]:

    An organizational model provides an analysis of the socio-organizational environment in which the knowledge-based system will have to function. It includes a description of the functions, tasks and bottlenecks in the organization. In addition it describes how the introduction of a knowledge-based system will influence the organization and the people working in it.

    An application model defines what problem the system should solve in the organization and what the function of the system will be in this organization. In addition to the function of the knowledge-based system and the problem that it is supposed to solve, the application model specifies the external constraints that are relevant for the development of the application.

    A task model specifies how the function of the system, as specified in the application model, is achieved by defining tasks that the system will perform. Establishing this relation between function and task is not always as straightforward as it may seem. Given a goal that a system should achieve, there may be several alternative ways in which that goal can be achieved. Which alternative is appropriate in a given application depends on the characteristics of that application, on the availability of knowledge and data, and on the requirements imposed by the user or by external factors.

    The model of cooperation contains a specification of the functionality of those sub-tasks in the task model that require a cooperative effort between the agents to whom the sub-tasks have been distributed. Some of the sub-tasks will be achieved by the system, others may be realized by the user. The result is a model of cooperative problem solving in which the user and the system together achieve a goal in a way that satisfies the various constraints posed by the task environment, the user and the state of the art of knowledge-based system technology.

    Building a model of expertise is a central activity in the process of knowledge-based system construction. It distinguishes knowledge-based system development from conventional system development. Its goal is to specify the problem solving expertise required to perform the problem-solving tasks assigned to the system. The KADS methodology focuses on expertise as the behavior that the system should display, and on the types of knowledge that are involved in generating such behavior, abstracting from the details of how the reasoning is actually realized in the implementation.

    Together, the model of expertise and the model of cooperation provide a specification of the behavior of the artifact to be built. The model that results from merging these two models is similar to what is called a conceptual model in database development. Conceptual models are abstract descriptions of the objects and operations that a system should know about, formulated in such a way that they capture the intuitions that humans have of this behavior. The language in which conceptual models are expressed is not the formal language of computational constructs and techniques, but is the language that relates real world phenomena to the cognitive framework of the observer. In this sense conceptual models are subjective.

    The description of the computational and representational techniques that the artifact should use to realize the specified behavior is not part of the conceptual model. These techniques are specified as separate design decisions in a design model. In building a design model, the knowledge engineer takes external requirements such as speed, hardware and software into account. Although there are dependencies between conceptual model specifications on the one hand and design decisions on the other hand, building a conceptual model without having to worry about system requirements makes life easier for the knowledge engineer.

    6.5.2 PCP: Personal Construct Psychology in Conceptual Modeling

    Several methodologies and tools that have been highly influential in knowledge acquisition research have been based on personal construct psychology (PCP), Kelly's formal, constructivist model of the epistemological processes whereby people acquire expertise [54]. In 1980, Shaw and Gaines suggested that the tools developed by Kelly for eliciting personal models, would provide a useful development technique for expert systems [35], and performed a validation study of the elicitation of the BIAIT methodology from accountants and accounting students using computer-based repertory grid elicitation [76]. Boose in an independent parallel study reported success in a wide range of industrial expert system developments using computer elicitation of repertory grids [5], and since then many knowledge acquisition systems have incorporated repertory grids as a major elicitation technique [8, 21, 27, 42, 78].

    The repertory grid is, however, only one technique for knowledge acquisition that may be derived from personal construct psychology. The formal model proposed by Kelly is highly general because of its system-theoretic derivation from the single primitive process of making dichotomous distinctions. Consideration of the recursive processes of making distinctions between distinctions leads to hierarchies of distinctions having both the generality and the complexity to encompass any model from the informality of human cognitive processes to the formality of mathematical, axiomatic systems [36]. Kelly presented his work as the foundations of a psychological system and emphasized the intensional basis of distinctions as personal constructs that could differ widely between individuals leading to very different personal models of the world. However, the same system is applicable to shared social constructs and impersonal formal constructs based on intensional definitions of distinctions in communal terms, or extensional definitions in concrete terms. Thus, the notion underlying personal construct psychology provide a universal foundation for modeling methodologies.

    Personal construct psychology may be analyzed in a way that leads naturally to the formal derivation of KL-ONE-like knowledge representation schema [85]. Many tools have been based on personal construct psychology, including later developments of the repertory grid and visual languages for semantic networks [10, 38].

    6.5.3 Checkland's Soft Systems Methodology

    Checkland [13] developed soft systems methodology in response to the failures of more conventional approaches to tackle problems that are hard to define, known as `soft' problems. Such `soft problems' are encountered frequently in organizations and cannot be solved by the same techniques that are used to solve `hard' problems. There is a fundamental difference between hard systems and soft systems thinking. Hard system methodologies assume that the `problem'(as they have defined it) has a definite solution and has a number of goals that can be satisfied. Therefore hard systems are concerned with answering how questions. (That is how to solve the problem.)

    Soft systems methodology deems the term `the problem' as inappropriate, as it is such a narrow view of the situation. Soft systems recognize that there is not a single problem, but many problems to be solved, so the term `problem situation' is used instead. Emphasis is placed on the what as well as the how. (For example, what is the problem?) Thus the goals of soft systems are much more complex than goals of hard systems which can be achieved and measured. The processes involved in the soft systems methodology are as follows. The analyst (referred to as the problem solver), with extensive help from the managers and users within the organization (referred to as problem owners), creates a rich picture of the problem situation. The rich picture is a subjective perception of the problem in a pictorial form. The rich picture will include the organization's system under review, the people within it and the tasks performed. The rich picture is used as a discussion aid with the problem owner. Problem themes are extracted from the rich picture by the problem solver. He will add conflicts between personnel or functions within the organization, communication problems and supply problems. The rich picture is used to identify problems and inform the problem owner of the situation, rather than develop possible solutions. The use of the rich picture is much better than traditional methods for stimulating managers and users--to reveal the "real" problems within the organization. Once a complete rich picture has been developed, the problem solver uses it to create a root definition. Checkland defines the root definition as:

    "... a concise, tightly constructed description of a human activity system which states what the system is. "

    Soft systems methodology is a framework for system analysis that provides very powerful techniques for the analysis of systems with human and social components, and has been widely applied to difficult problem areas [96]. There are seven stages of system analysis in soft systems methodology. The initial stages are concerned with system analysis and the later stages with system design.

    Checkland's methodology prescribes six essential components of a system that must be identified at the conceptual modeling stage. A system is defined through a transformation carried out by people who are the actors within it. The system affects beneficially or adversely other people who are its customers and there is some agency with power of existence over it who is its owner. The system has to exist within a outside constraints forming its environment and the whole activity of system definition takes place within an ethos or weltanschauung that affects our views of it. The methodology is essentially pluralistic in emphasizing that there will generally be multiple choices for most or all of these components, and the particular choices made will result in different system models.

    There are natural links between personal construct psychology and soft systems analysis, and repertory grid techniques have been applied to the computerization of the conceptual modeling processes involved. Shaw and Gaines have used grids to develop a soft systems requirements analysis for a citizen ID system [77]. For example, one set of grids elicited in this study was from citizens on "who to inform when I change address".

    ORDIT is a requirements engineering methodology that uses soft system analysis to implement Mumford's [60] socio-technical approach in which the system is viewed as a whole by placing it within the broad operational environment, with the user and computer as integral parts of the system [23]. The aim of the ORDIT project is to develop a methodology that will enable designers to reason about organizational goals, policies and structures, and the work roles of intended end users, and hence identify and support the requirements for the system.

    The problem of determining system boundaries in complex systems has shown up mistakes made in the original boundaries, and the ORDIT techniques have provided a rich environment for the representation of the organizational structure and the relationships between the roles of agents, information flows, and resource management [3]. The ORDIT approach uses enterprise modeling to provide a framework for reasoning about the system as a component of a wider environment where the organization has needs which are served by the model. Responsibilities and relationships are modeled rather than activities, and information is modeled from the point of view of the contracts involved. The process includes the identification of the requirements owners together with their positions and roles in the organization, and the identification of the user community, and others affected by the system together with their roles and responsibilities in the organization [22, 95].

    6.6 Trends in Requirements Engineering

    The NATURE project is a large ESPRIT initiative based in Aachen, Germany, investigating novel approaches to requirements engineering. They argue that such approaches are necessary because the environment in which requirements engineering has to operate has changed dramatically since the current methods were invented. The task of requirements engineering has moved from supporting the early phases of individual projects, to accompanying the whole life cycle of complex, long-lived human-machine systems in a rapidly changing organizational environment. The NATURE framework addresses these new demands by defining a novel framework based on the idea that requirements engineering is a continuous process of establishing visions of different stakeholders in a complex context. Around this framework, NATURE has developed three specific theories. The requirements domain theory gives advice on what context knowledge is relevant and how to organize it. The requirements process theory offers a unified process metamodel in which a small set of building blocks covers a larger spectrum of process guidance strategies with more flexibility than other software process or workflow models. The knowledge representation theory aims at defining what domain and process knowledge to capture, and how to manage this knowledge using an effective mix of informal, semi-formal and formal representations [53].

    One of the long-standing problems addressed by the NATURE project is that of non-functional requirements--how the goals of reliability, performance, accuracy, or security can be incorporated into the requirements and design process [53]. This issue is also addressed by Mylopoulos and colleagues [61] who present a process-oriented framework for non-functional requirements in terms of interrelated AND/OR goals. Jarke and Pohl [53] suggest the use of ethnographic techniques recommended by Sommerville [94].

    Sommerville and Rodden [94] recommend the integration of computer supported co-operative work (CSCW) with professional software where there are multiple end-users cooperating explicitly or implicitly. Ethnography is one way of revealing actual rather than formal organizational structures, which are the ones which must actually be supported, and he has devised methods for incorporating ethnographic techniques and existing methods of requirements analysis. Blyth and Chudge [3] also recommend the use of CSCW to support conversations which mediate cooperative work and support the mutual creation of, commitment to, and discharge of obligations as discussed in the ORDIT project.

    In 1991, the Software Engineering Institute held a workshop to investigate process-related problems in requirements engineering [67]. The overall recommendations and conclusions included:

  • adopting an evolutionary, incremental approach to requirements engineering
  • encouraging innovation in the acquisition process
  • adopting a multi-disciplinary team approach for requirements engineering
  • focusing on up-front requirements definition and validations using prototyping
  • separating user interface requirements from functional requirements
  • capturing major decisions and rationales

    Loucopoulos and Champion [56] have used concept maps and conceptual graphs to capture requirements specification. They encourage the development of informal models and use these to maintain many different views about the captured concepts which enable the tracing of decisions taken by analysts and assist the identification of candidate concepts for the system.

    Costello and Liu [17] describe the role of metrics in the software and systems engineering life cycle and process, focusing on the application of metrics to requirements engineering. Metrics can provide the objective information necessary for technical and managerial insight into, control and improvement of the development effort. Most of the current metrics do not address the need for integrated and consistent metrics for full life cycle coverage. The development of such metrics will permit the early identification of errors in requirements.

    Emam and Madhavji [24] describe a study in which they identify 32 indicators that point to the success of the requirements engineering process. This, they claim, is the first comprehensive research effort that has resulted in a requirements engineering success instrument which is critical to understanding the requirements engineering process. The instrument needs further testing and validation in settings other than the one in which it was developed.

    The AMORE project [15] is concerned with ways in which large amounts of multimedia information can be visualized, stored and retrieved. Raw requirements can arise in many formats, for example, informal technical notes, meeting notes, statements of work, interviews with customers or users, operating manuals, technical and graphical notations. AMORE is used to capture and organize such requirements in their original form, and provide the basic environment to facilitate navigation and browsing of large quantities of material.

    7 Industrial Partnerships through the Software Engineering Research Network (SERN)

    The first three objectives:

  • to establish research and graduate training activities at the University of Calgary that will develop highly qualified personnel in industrial software manufacturing;

  • to establish an organizational infrastructure at the University of Calgary supporting a long-term program of university-industry collaborative research on software manufacturing;

  • to establish a centre of excellence at the University of Calgary in research and development concerned with the knowledge flows and processes underlying the software manufacturing life cycle;

    will be addressed through establishing a Software Engineering Research Network that coordinates projects that are developed at the university and carried out at industrial sites using Basili's Software Engineering Laboratory model [1, 2]. The structure of SERN is shown in Figure 2, and involves cross-disciplinary laboratories at the University undertaking fundamental research, joint projects with the Industrial Partners, and maintaining a database of knowledge, experience, problems and issues that can be widely accessed and will be used to manage the activities of the network.

    Figure 2: Software Engineering Research Network

    SERN will operate as a networked organization providing associated university and industry personnel and students with a virtual institution which manages joint projects. There will be a two-way flow of knowledge and personnel in which the Industry Partners introduce new problems, the University researchers introduce new technologies, and the relation between the problems and technologies is investigated through joint projects. It is expected that graduate students and university personnel will work on the projects at the industry sites, and that industry personnel will be seconded to the University for varying periods of time. It is intended that the network be open to new partners and to the introduction of new technologies from elsewhere. In particular, active links with a range of other relevant institutions will be developed.

    8 Training Highly Qualified Personnel

    Objective 1 above recognizes that one of the most important products of the Chair activities for industry is generation of highly-qualified personnel who can be used to nucleate, develop and manage improved software manufacturing processes. The training will originate through many channels--through graduate-level advanced courses, through experience in innovation through advanced research, through experience in collaborative projects, and through opportunities to participate in cross-industry, cross-disciplinary studies and projects. Training activities will be an integral part of all SERN initiatives and both basic and applied research will be managed in such a way as to provide learning environments facilitating training highly qualified personnel.

    The Chair will build upon a number of existing initiatives:

  • Both departments have strong existing graduate programs at the MSc and PhD level, and already time-table courses to facilitate participation by those with full-time employment in industry. Faculty with applied research interests in both Departments are already willing to supervise students in joint projects with industry relating to software manufacturing, and the Chair will facilitate such activities by providing an organizational infrastructure that minimizes the effort required to coordinate such projects.

  • The Provincial Government has approved a joint proposal from the two departments for a new MSc program in Software Engineering targeted on industrial needs. The Provincial Government "Access" program will fund two new faculty who will be available to the Chair to support the teaching involved in the MSc program.

  • WestMOST is a consortium for industry-oriented graduate programs in Software Technology that has been established by the Universities of Manitoba, Regina, Saskatchewan, Calgary, Alberta, Simon Fraser, British Columbia and Victoria. It is intended that a Masters of Software Technology (MOST) degree program will be defined at each institution. University Consortium faculty or adjuncts will offer approved course modules for MOST degrees. Students will register in a MOST program at a particular institution, but may take approved modules leading to their degree at any of the participating universities and/or selected industrial sites. Communications technology will allow a module to be staged at one Consortium site and be simultaneously offered in a cost effective manner at the other sites, including industrial sites. University of Calgary membership in the WestMOST consortium will enable the Chair to provide training in Calgary based on expertise at sister Universities, and to offer courses based on local expertise across Western Canada.

  • The Software Engineering Management (SEM) certificate program was started at the University of Calgary in September 1994. It was set up as a partnership comprised of business, industry and academia to create the opportunity for continuing education to help meet the requirements of the software development process. The admission requirements include a degree or diploma in a technical discipline and a minimum of three years of industry experience in the analysis, design and development of software products. Motorola is a founding partner of this program, and is committed to supporting its development. The certificate focuses on an integrated approach to software whereby people, procedures, methods, constraints, hardware and software tools, and other forms of resources work together in an environment for the development of software systems. The SEM is now in its second year: the first year there were 15 full time and 9 part time students; and this year there are 20 full time and 19 part time students representing in all about 37 companies. The chairholder is on the SEM Advisory and Management Boards. The Chair will coordinate the relationships between graduate courses and the post-experience SEM course.

    The coordination of these four existing initiatives will enable the Chair to have a very rapid and major impact on the generation and development of personnel highly-qualified in the disciplines underlying software manufacturing.

    9 Research Program

    The scientific research program that is part of this proposal addresses items 4 through 7 in the list of objectives:

  • to undertake fundamental research on requirements elicitation, specification and tracking methodologies in an industrial setting;

  • to undertake fundamental research on modeling and tracking software manufacturing processes in an industrial setting;

  • to develop knowledge-level workflow tools applicable to requirements engineering and software manufacturing processes;

  • to evaluate the methodologies and tools in industrial software organizations.

    The methodology is the standard one of applied science: developing understanding of the fundamental issues underlying the practical problems; formulating models of the significant processes involved; developing methodologies and tools for data collection relevant to the models; assessing the models by determining their applicability to particular situations through data collection and model-building; formulating hypotheses about process improvement from the general and particular models; developing methodologies and tools to effect the improvement; fielding the methodologies and tools in realistic situations to gather further data with which to rebuild the models; using the new models to assess the impact of the attempt at process improvement; and iterating the entire process to improve the models, modeling techniques, data gathering, process improvement strategy, and so on.

    The prima facie assumptions based on discussions with the industry partners and the state-of-the-art survey are that the most critical areas of the software life cycle that should be addressed initially are requirements elicitation and tracking, and software manufacturing processes. It is expected that similar knowledge-level workflow tools can be used to elicit and track requirements and to model and monitor processes, and the initial research program is targeted on testing these assumptions in an industrial setting.

    9.1 Project 1: Requirements Elicitation, Modeling and Tracking

    Requirements elicitation will be treated as a knowledge acquisition problem in which existing system operators are `experts' to various extents, and the wide range of conceptual modeling methodologies and tools that have been developed in the knowledge acquisition research community will be applied to requirements elicitation. It is recognized that, as often occurs in knowledge-based system development, it is rare that exact replication of an existing system is required, and hence a process re-engineering stance as described in Section 6.1 will be adopted in which the emphasis in on the fundamental need for the system for which requirements are being defined.

    The primary methodology will be that of soft systems as described in Section 6.5.3 in which the system to be developed is modeled from several different perspectives defined in terms of different problem owners, actors and customers. This methodology will be used within a framework of joint application design in which those with these different perspectives come together to negotiate a requirements specification that reflects them all.

    Modeling techniques developed for knowledge acquisition based on personal construct psychology as described in Section 6.5.2 will be used to elicit, model and compare the differing perspectives. The KADS methodology as described in Section 6.5.3 will be used to organize and integrate the models and to make them operationally available.

    It is recognized that software manufacturing organizations have to deal with full or partial requirements specifications that are already established and over which they have little control, and one research focus will be the reverse engineering of such specifications to model them in a uniform and operational framework that supports their tracking.

    The links between requirements and analysis and design will be modeled so that it becomes possible to track the specific design decisions that relate to each requirement.

    The overall objective will be to develop a requirements engineering methodology that is psychologically and system-theoretically well-founded but which is also applicable because it is expressed in meaningful terms and has no unnecessary components or activities.

    This project will commence with an industry-based feasibility study in the first year in which the methodologies and tools described in Section 5 that I have already developed will be applied to some prototypical requirements elicitation tasks designated by the industry partners.

    From existing experience it is expected that the methodologies and tools will become further refined through the feasibility study and lead to a detailed requirements engineering methodology that can be issued for use by others.

    This issued methodology will then be used in some substantial monitored trials with industry partners in combination with conventional requirements engineering approaches. In these trials the emphasis will be on requirements tracking--on monitoring changing requirements, modeling them in structured documentation, and tracing the requirements through analysis, design, implementation, evaluation, application and maintenance.

    This will lead to further refinements and case studies resulting in a final deliverable of a detailed methodology, documented so that it can be used by others, with supporting tools, and a set of detailed case studies that can be used in training and to evaluate the applicability of the methodology and tools.

    9.2 Project 2: Software Manufacturing Process Modeling

    Software manufacturing process modeling will be treated as an enterprise modeling problem encompassing as much of the enterprise as is relevant to the software manufacturing, but with greatest emphasis on the modeling of the specific processes associated with the software life cycle.

    In the literature close links have already been established between enterprise modeling and knowledge acquisition, and as described in Section 6.5 methodologies and tools developed for knowledge acquisition purposes are being applied to enterprise modeling. Hence, it is expected that much of the research applicable to requirements elicitation and tracking can also be applied to software manufacturing process modeling. The initial approach will be to assume that, instead of eliciting and modeling customer requirements for products, one is eliciting and modeling enterprise requirements for its manufacturing processes.

    The initial phase of the research will be concerned with modeling software manufacturing as a series of processes similar to those of electrical and mechanical manufacturing, with a view to determining where the analogy is effective and where it breaks down. In particular, the workflow involved in software manufacturing will be modeled in detail to provide an operational description of the processes involved. This model will then be used to analyze and assess the possibilities for process improvement.

    Many attempts have been made to analyze software manufacturing as analogous to hardware manufacturing over the past 30 years, and the focus of the research will be on industry practice that satisfies the SEI level 2 requirement of repeatability as described in Section 6.1. It is hypothesized that lack of repeatability is not only a major problem for the management of software production but that it is also the reason for problems in establishing stable and meaningful models of the processes involved. A major initial objective will be to evaluate this hypothesis.

    This project will commence with an industry-based study in the first year in which the methodologies and tools described in Section 5 that I have already developed will be applied to develop a complete process model of some software manufacturing activity from requirements through analysis, design, implementation, evaluation, application and maintenance.

    Temporal, workload, skill level, knowledge level and quality parameters will be estimated for each process involved. These will initially be based on elicited subjective judgments and the overall resulting model will then itself be evaluated in terms of elicited subjective judgments of cost, likelihood of failures, and other performance parameters.

    This study will also be used to assess the feasibility of introducing workflow tools into the software manufacturing processes to support the people involved, to improve the repeatability of the processes, and to monitor the processes for repeatability.

    The interim deliverable will be a documented methodology for monitoring, supporting and modeling software manufacturing processes that can be issued for use by others.

    In the next phase this methodology will be introduced into some specific software manufacturing activities designated by the industrial partners and studies will be carried out of its industrial application.

    This will lead to further refinements and case studies resulting in a final deliverable of a detailed methodology, documented so that it can be used by others, with supporting tools, and a set of detailed case studies that can be used in training and to evaluate the applicability of the methodology and tools.

    9.3 Project 3: Knowledge-Level Workflow Tools

    Experience in knowledge acquisition in an industrial setting shows that it involves the gathering and management of large volumes of data from heterogeneous sources, and that this data gathering and management needs to become integrated with normal work processes if it is not to become such a burden as to undermine the knowledge acquisition activity. However, there is also growing industrial interest in workflow and knowledge management tools that support existing processes and, incidentally, provide much of the data required for knowledge engineering.

    It is proposed to conduct the industrially-based research by introducing knowledge-level workflow tools that are seen by their users as supporting their ongoing activities but which, at the same time, can be used as data gathering tools for requirements tracking and software manufacturing process monitoring.

    These tools will be based on the existing Mediator developments underway in the Knowledge Science Institute (KSI) and Division of Manufacturing Engineering (DME) as described in Section 6.2. Mediator was itself developed as part of the international Intelligent Manufacturing Systems (IMS) research program in the consortium concerned with knowledge systematization for manufacturing. Although the partners and projects primarily focused on electrical and mechanical manufacturing, it has one track led by IBM (France) that applies the same methodologies to software manufacturing.

    The KSI and DME involvement in Mediator development continues in the ongoing IMS program, and this project will involve collaboration with KSI, DME and in the IMS program to apply the same methodologies and tools to software engineering.

    In the first year a Knowledge-Level Workflow (KLWF) system will be developed to provide the basic framework in which all the other tools will operate. It will be designed as a multi-client, multi-server, networked architecture in which distributed client and server agents communicate over local or wide-area networks and provide user services through a uniform and simple interface.

    This architecture is a generic re-design of the Mediator prototype system for managing data and knowledge flows in manufacturing throughout the product life cycle as described in Section 6.2. The new implementation will use the TCL/TK implementation of GroupKit to provide an open-architecture collaborative system that is readily extended by ourselves and others, and integrates easily with other applications.

    In the next phase a KLWF system will be developed specifically for requirements elicitation, modeling and tracking, and this system will be tested in an industrial context as part of the studies documented in Section 9.1.

    In the next phase a KLWF system will be developed specifically for process monitoring and support, modeling and tracking, and this system will be tested in an industrial context as part of the studies documented in Section 9.2.

    The KLWF technology will be refined and redeveloped in the light of feedback from these trials and the final deliverable will be a documented system for use by the industrial partners and suitable for commercial issue and support.

    It is expected that the KLWF development will remain throughout a collaborative development involving a consortium consisting of the SERN, KSI and DME, and that other applications, for example to hardware manufacturing, will be proceeding in parallel and will add to the effort and experience available.

    9.4 Project 4: Industrial Evaluation

    Projects 1 through 3 all involve industrial collaboration in data gathering, modeling, application and evaluation. However, a separate industrial evaluation project is necessary to monitor the overall impact and direction of the research program and to ensure that it remains targeted on the most significant industrial needs.

    This project will involve an arms-length elicitation of the aspirations, intentions and expectations of both the researchers and industrial partners, and the development of a quality model for the research based on this assessment. This model will be used to track the research activities against the specific performance parameters identified, with a view to systematically accelerating the progress of the research program.

    The overt management of an evaluation project is vital to research in the area of software manufacturing because the field and industrial practice are themselves rapidly changing, and one of the major dangers for any research activity in this area is that its objectives, preconceptions and approaches may become out of date or irrelevant. Research in this area has to practice what it preaches and monitor its underlying requirements and processes.

    In the first year the industry partners will be interviewed to develop a concise assessment of their expectations of the SERN and the associated research program, and a model will be developed that matches the research program against this assessment.

    This model will be used for management, progress reporting and evaluation by the Board of SERN.

    In the second phase the model will be used to search and analyze systematically the relevant literature to developed a database of materials relevant to the needs of the industry partners and to those of the research program.

    In the third phase the model will be used to evaluate the achievements of SERN in terms of the industry needs and the defined research program.

    In the final phase the models of needs and programs will themselves be updated to provide the basis for planning a continuing research program.

    10 References

    [1] V. Basili and G. Caldiera, "Improving software quality by reusing knowledge and experience," Sloan Management Review, vol. , pp. 55-64, 1995.

    [2] V. Basili, G. Caldiera, F. McGarry, R. Pajerski, G. Page, and S. Waligora, "The software engineering laboratory--an operational software experience factory," in Proceedings of the 14th International Conference on Software Engineering. ACM: New York. p. 370-381, 1992.

    [3] A.J.C. Blyth and J. Chudge. The Role of Interaction Analysis in Requirements Engineering. in Proceedings of the IFIP WG 8.1 Conference on Information System Development Process. 1993. Como, Italy:

    [4] A.J.C. Blyth, J. Chudge, J.E. Dobson, and M.R. Strens. ORDIT: A new methodology to assist in the process of eliciting and modelling organisational requirements. in Proceedings on the Conference on Organisational Computing Systems. 1993. San Jose, California:

    [5] J.H. Boose, "Personal construct theory and the transfer of human expertise," in Proceedings AAAI-84. American Association for Artificial Intelligence: California. p. 27-33, 1984.

    [6] J.H. Boose, "Rapid acquisition and combination of knowledge from multiple experts in the same domain," Future Computing Systems, vol. 1, no. 2 pp. 191-216, 1986.

    [7] J.H. Boose, "A survey of knowledge acquisition techniques and tools," Knowledge Acquisition, vol. 1, no. 1 pp. 39-58, 1989.

    [8] J.H. Boose and J.M. Bradshaw, "Expertise transfer and complex problems: using AQUINAS as a knowledge acquisition workbench for knowledge-based systems," International Journal of Man-Machine Studies, vol. 26, pp. 3-28, 1987.

    [9] J.H. Boose, J.M. Bradshaw, J.L. Koszarek, and D.B. Shema, "Better group decisions: using knowledge acquisition techniques to build richer decision models," in Proceedings of the Twenty Fifth Annual Hawaii International Conference on System Sciences. 1992.

    [10] J.M. Bradshaw, K.M. Ford, J.R. Adams-Webber, and J.H. Boose, "Beyond the repertory grid: new approaches to constructivist knowledge acquisition tool development," International Journal of Intelligent Systems, vol. 8, no. 2 pp. 287-33, 1993.

    [11] F.P. Brooks, "No Silver Bullet: Essence and Accidents of Software Engineering," IEEE Computer, vol. April 1987, pp. 10-19, 1987.

    [12] V. Cavalli-Sforza, G. Gabrys, A.M. Lesgold, and A.W. Weiner, "Engaging students in scientific activity and scientific controversy," in AAAI-92 Workshop on Communicating Scientific and Technical Knowledge, K. Swaminathan, Editor. AAAI: Menlo Park, California. p. 99-114, 1992.

    [13] P. Checkland, Systems Thinking, Systems Practice, Chichester, UK: Wiley. 1981.

    [14] M.G. Christel and K.C. Kang, Issues in Requirements Elicitation. Software Engineering Institute. 1992.

    [15] M.G. Christel, D.P. Wood, and S.M. Stevens, AMORE: Advanced multimedia organizer for requirements elicitation. Pittsburgh: Software Engineering Institute, Carnegie-Mellon University. 1993.

    [16] W.J. Clancey, "Viewing knowledge bases as qualitative models," IEEE Expert, vol. 4, no. 2 pp. 9-23, 1989.

    [17] R.J. Costello and D.-B. Liu, "Metrics for Requirements Engineering," Journal of Systems Software, vol. 29, pp. 39-63, 1995.

    [18] C. Currid, Reengineering Toolkit, Rocklin, CA: Prima Publishing. 1994.

    [19] M. Cutkosky, R. Engelmore, T.G. R. Fikes, M. Genesereth, W. Mark, J. Tenenbaum, and J. Weber, "PACT: An experiment in integrating concurrent engineering systems," IEEE Computer, vol. , , 1993.

    [20] W.E. Deming, The New Economics: For Industry, Government, Education, Cambridge, Massachusetts: MIT Centre for Advanced Engineering Studies. 1993.

    [21] J. Diederich, I. Ruhmann, and M. May, "KRITON: A knowledge acquisition tool for expert systems," International Journal of Man-Machine Studies, vol. 26, no. 1 pp. 29-40, 1987.

    [22] J.E. Dobson, A.J.C. Blyth, J. Chudge, and M.R. Strens. The ORDIT Approach to Requirements Identification. in Proceedings of the 16th Annual International Computer Software and Applications Conference. 1992. Chicago, Illinois:

    [23] J.E. Dobson, A.J.C. Blyth, J. Chudge, and R. Strens, "The ORDIT approach to organisational requirements," in Requirements Engineering: Social and Technical Issues, M. Jirotka and J. Goguen, Editor. Academic Press: London. p. 87-106, 1994.

    [24] K.E. Emam and N.H. Madhavji. Measuring the Success of Requirements Engineering Processes. in Second IEEE international Symposium on Reuqirements Engineering. 1995. York, UK:

    [25] R. Fikes, M. Cutkosky, T. Gruber, and J.V. Baalen, Knowledge Sharing Technology Project Overview. 1991.

    [26] T. Finin, J. Weber, G. Wiederhold, M. Genesereth, R. Fritzson, D. McKay, J. McGuire, S. Shapiro, and C. Beck, Specification of the KQML Agent-Communication Language. The DARPA Knowledge Sharing Initiative External Interfaces Working Group. 1992.

    [27] K.M. Ford, A. Cañas, J. Jones, H. Stahl, J. Novak, and J. Adams-Webber, "ICONKAT: an integrated constructivist knowledge acquisition tool," Knowledge Acquisition, vol. 3, no. 2 pp. 215-236, 1990.

    [28] A. Furnham and B. Gunter, Corporate Assessment: Auditing a Company's Personality, London: Routledge. 1993.

    [29] B.R. Gaines, M. Linster, and M.L.G. Shaw, "An integrated knowledge support system," in Proceedings of FGCS'92: International Conference on Fifth Generation Computer Systems. ICOT: Tokyo. p. 1157-1164, 1992.

    [30] B.R. Gaines and D.H. Norrie, "Knowledge systematization in the international IMS research program," in Proceedings of 1995 IEEE International Conference on Systems, Man and Cybernetics. IEEE: New York. p. 958-963, 1995.

    [31] B.R. Gaines, D.H. Norrie, and A.Z. Lapsley, "Mediator: an Intelligent Information System Supporting the Virtual Manufacturing Enterprise," in Proceedings of 1995 IEEE International Conference on Systems, Man and Cybernetics. IEEE: New York. p. 964-969, 1995.

    [32] B.R. Gaines, D.H. Norrie, and M.L.G. Shaw, "Foundations for the learning web," in Proceedings of ED-MEDIA'96 : World Conference on Educational Multimedia and Hypermedia. Association for the Advancement of Computing in Education: Charlottesville, VA. p. to appear, 1996.

    [33] B.R. Gaines, A. Rappaport, and M.L.G. Shaw, "A heterogeneous knowledge support system," in Proceedings of the Fourth AAAI Knowledge Acquisition for Knowledge-Based Systems Workshop, J.H.&.G. Boose B.R., Editor. University of Calgary: Calgary, Canada. p. 13-1-13-20, 1989.

    [34] B.R. Gaines, A. Rappaport, and M.L.G. Shaw, "Combining paradigms in knowledge engineering," Data and Knowledge Engineering, vol. 9, pp. 1-18, 1992.

    [35] B.R. Gaines and M.L.G. Shaw, "New directions in the analysis and interactive elicitation of personal construct systems," International Journal Man-Machine Studies, vol. 13, pp. 81-116, 1980.

    [36] B.R. Gaines and M.L.G. Shaw, "Hierarchies of distinctions as generators of system theories," in Proceedings of the Society for General Systems Research International Conference, A.W. Smith, Editor. Society for General Systems Research: Louisville, Kentucky. p. 559-566, 1984.

    [37] B.R. Gaines and M.L.G. Shaw, "Integrated knowledge acquisition architectures," Journal for Intelligent Information Systems, vol. 1, no. 1 pp. 9-34, 1992.

    [38] B.R. Gaines and M.L.G. Shaw, "Basing knowledge acquisition tools in personal construct psychology," Knowledge Engineering Review, vol. 8, no. 1 pp. 49-85, 1993.

    [39] B.R. Gaines and M.L.G. Shaw, "Concept maps as hypermedia components," International Journal Human-Computer Studies, vol. 43, no. 3 pp. 323-361, 1995.

    [40] B.R. Gaines and M.L.G. Shaw, "WebMap: concept mapping on the web," World Wide Web Journal, vol. 1, no. 1 pp. 171-183, 1995.

    [41] B.R. Gaines, M.L.G. Shaw, and J.B. Woodward, "Modeling as a framework for knowledge acquisition methodologies and tools," International Journal of Intelligent Systems, vol. 8, no. 2 pp. 155-168, 1993.

    [42] C. Garg-Janardan and G. Salvendy, "A conceptual framework for knowledge elicitation," International Journal of Man-Machine Studies, vol. 26, no. 4 pp. 521-531, 1987.

    [43] M.R. Genesereth and R.E. Fikes, Knowledge Interchange Format, Version 3.0 Reference Manual. Computer Science Department, Stanford University. 1992.

    [44] H.S. Gitlow and S.J. Gitlow, Total Quality Management in Action, Englewood Cliffs, New Jersey: Prentice Hall. 1994.

    [45] S. Greenspan, J. Mylopoulos, and A. Borgida, "On formal requirements modeling languages: RML revisited," in Proceedings 16th International Conference on Software Engineering. IEEE Press: New York. p. 135-148, 1994.

    [46] T.R. Gruber, "A translation approach to portable ontology specifications," Knowledge Acquisition, vol. 5, no. 2 pp. 199-220, 1993.

    [47] M. Hammer and J. Champy, Reengineering the Corporation, New York: HarperCollins. 1993.

    [48] F. Hayes-Roth, D.A. Waterman, and D.B. Lenat, ed. Building Expert Systems. Addison-Wesley: Reading, Massachusetts. 1983.

    [49] S.L. Hoar, Maintenance Strategies in Software Design. University of Calgary. 1993.

    [50] K. Holtzblatt and H.R. Beyer, "Requirements Gathering: The Human Factor," Communications of the ACM, vol. 38, no. 5 pp. 30-32, 1995.

    [51] W.S. Humphrey, Managing the Software Process, Reading, Massachusetts: Addison-Wesley. 1989.

    [52] IEEE, IEEE Standard Glossary of Software Engineering Terminology. IEEE Standard 610.12-1990 (revision and redesignation of IEEE Std. 729-1983). Institute of Electrical and Electronics Engineers. 1990.

    [53] M. Jarke and K. Pohl, "Requirements Engineering in the Year 2001: On (Virtually) Managing a Changing Reality," Software Engineering Journal, vol. , , 1994.

    [54] G.A. Kelly, The Psychology of Personal Constructs, New York: Norton. 1955.

    [55] P. Loucopoulos and R.E.M. Champion, "Knowledge-Based Support for Requirements Engineering.," Information and Software Technology, vol. 31, no. 3 pp. 123-135, 1989.

    [56] P. Loucopoulos and R.E.M. Champion, "Concept Acquisition and Analysis for Requirements Specification," Software Engineering Journal, vol. 5, no. 2 pp. 116-124, 1990.

    [57] J.A. McDermid, "Requirements analysis: Orthodox, fundamentalism and heresy," in Requirements Engineering: Social and Technical Issues, M. Jirotka and J. Goguen, Editor. Academic Press: London. p. 17-40, 1994.

    [58] S. Morse, World Wide Web Based Work Place Support. University of Calgary. 1995.

    [59] M.S.S. Morton, ed. The Corporation of the 1990s: Information Technology and Organizational Transformation. Oxford University Press: New York. 1991.

    [60] E. Mumford, Designing Human Systems, Manchester, UK: Manchester Business School Publications. 1983.

    [61] J. Mylopoulos, A. Borgida, M. Jarke, and M. Koubarakis, "Representing Knowledge about Information Systems," ACM Transactions on Office Information Systems, vol. 8, no. 4 pp. 325, 1990.

    [62] R. Neches, R. Fikes, T. Finin, T. Gruber, R. Patil, T. Senator, and W.R. Swartout, "Enabling technology for knowledge sharing," AI Magazine, vol. 12, no. 3 pp. 36-56, 1991.

    [63] O. Nordhaug, Human Capital in Organizations: Competence, Training and Learning, Oslo: Scadinavian University Press. 1993.

    [64] M. Roseman and S. Greenberg, "GroupKit: a groupware toolkit for building real-time conferencing systems," in Proceedings of the Fourth Conference on Computer-Supported Cooperative Work. Association for Computing Machinery: New York. p. 43-50, 1992.

    [65] W.E.A. Rzepka. Requirements Engineering Testbed: Concept, Status, and First Results. in Twenty-Second Annual Hawaii International Conference on System Sciences. 1989. Hawaii, USA: IEEE Computer Society.

    [66] A.T. Schreiber, B.J. Wielinga, and J.A. Breuker, ed. KADS: A Principled Approach to Knowledge-based System Development. Academic Press: London. 1993.

    [67] SEI, Requirements Engineering and Analysis Workshop Proceedings. Software Engineering Institute. 1991.

    [68] M.L.G. Shaw, "Interactive computer programs for eliciting personal models of the world," in Personal Construct Psychology 1977, F. Fransella, Editor. Academic Press: London. p. 59-67, 1978.

    [69] M.L.G. Shaw, "Conversational heuristics for eliciting shared understanding," International Journal of Man-Machine Studies, vol. 11, pp. 621-634, 1979.

    [70] M.L.G. Shaw, "Conversational heuristics for enhancing personal understanding of the world," in General Systems Research: A Science, A Methodology, A Technology, B.R. Gaines, Editor. Society for General Systems Research: Louisville, Kentucky. p. 270-277, 1979.

    [71] M.L.G. Shaw, On Becoming A Personal Scientist: Interactive Computer Elicitation of Personal Models Of The World, London: Academic Press. 1980.

    [72] M.L.G. Shaw, ed. Recent Advances in Personal Construct Technology. Academic Press: London. 1981.

    [73] M.L.G. Shaw, "Communities of knowledge," in Anticipating Personal Construct Psychology, F. Epting and A.W. Landfield, Editor. University of Nebraska Press: Lincoln, Nebraska. p. 25-35, 1985.

    [74] M.L.G. Shaw, "Women, scholarship and information technology: A post-modern perspective," Transactions of the Royal Society of Canada, vol. 5, pp. 113-131, 1994.

    [75] M.L.G. Shaw and B.R. Gaines, "Tracking the creativity cycle with a microcomputer," International Journal of Man-Machine Studies, vol. 17, no. 1 pp. 75-85, 1982.

    [76] M.L.G. Shaw and B.R. Gaines, "A computer aid to knowledge engineering," in Proceedings of British Computer Society Conference on Expert Systems. British Computer Society: Cambridge. p. 263-271, 1983.

    [77] M.L.G. Shaw and B.R. Gaines, "Eliciting the real problem," in Adequate Modeling of Systems, H. Wedde, Editor. Springer: Berlin. p. 100-111, 1983.

    [78] M.L.G. Shaw and B.R. Gaines, "KITTEN: Knowledge initiation and transfer tools for experts and novices," International Journal of Man-Machine Studies, vol. 27, no. 3 pp. 251-280, 1987.

    [79] M.L.G. Shaw and B.R. Gaines, "A methodology for recognizing conflict, correspondence, consensus and contrast in a knowledge acquisition system," Knowledge Acquisition, vol. 1, no. 4 pp. 341-363, 1989.

    [80] M.L.G. Shaw and B.R. Gaines, "Extending electronic mail with conceptual modeling to provide group decision support," in COCS'91: Proceedings of Conference on Organizational Computing Systems. ACM Press: New York. p. 153-158, 1991.

    [81] M.L.G. Shaw and B.R. Gaines, "Supporting personal networking through computer networking," in Proceedings of CHI'91: Human Factors in Computing Systems. ACM Publications: New York. p. 437-438, 1991.

    [82] M.L.G. Shaw and B.R. Gaines, "Mapping creativity with knowledge support tools," in AAAI-91 Workshop on Creativity: Models, Methods and Tools. AAAI: Menlo Park, California. p. 32-45, 1992.

    [83] M.L.G. Shaw and B.R. Gaines, "On the relation between the repertory grid and term subsumption knowledge structures: theory, practice and tools," in Research and Development in Expert Systems IX. Proceedings of British Computer Society Expert Systems Conference, M.A. Bramer and R.W. Milne, Editor. Cambridge University Press: Cambridge, UK. p. 125-143, 1992.

    [84] M.L.G. Shaw and B.R. Gaines, "Group knowledge elicitation over networks," in Research and Development in Expert Systems X. Proceedings of British Computer Society Expert Systems Conference, M.A. Bramer and A.L. Macintosh, Editor. Cambridge University Press: Cambridge, UK. p. 43-62, 1993.

    [85] M.L.G. Shaw and B.R. Gaines, "Personal construct psychology foundations for knowledge acquisition and representation," in Proceedings of EKAW-93: Seventh European Workshop on Knowledge Acquisition for Knowledge-Based Systems, N. Aussenac, G. Boy, B. Gaines, M. Linster, J.G. Ganascia, andY. Kodratoff, Editor. p. 256-276, 1993.

    [86] M.L.G. Shaw and B.R. Gaines, "Active documents combining multimedia and expert systems," in Proceedings SIGDOC'94: ACM 12th Annual International Conference on Systems Documentation. ACM: New York. p. 166-175, 1994.

    [87] M.L.G. Shaw and B.R. Gaines, "Requirements acquisition," in Proceedings of Workshop on Requirements Elicitation for Software-Based Systems. University of Keele: Keele. 1994.

    [88] M.L.G. Shaw and B.R. Gaines, "Comparing constructions through the web," in Proceedings of CSCL95: Computer Support for Collaborative Learning, J.L. Schnase and E.L. Cunnius, Editor. Lawrence Erlbaum: Mahwah, New Jersey. p. 300-307, 1995.

    [89] M.L.G. Shaw and B.R. Gaines, "Experience with the learning web," in Proceedings of ED-MEDIA'96 : World Conference on Educational Multimedia and Hypermedia. Association for the Advancement of Computing in Education: Charlottesville, VA. p. to appear, 1996.

    [90] M.L.G. Shaw, B.R. Gaines, and M. Linster, "Supporting the knowledge engineering life cycle," in Research and Development in Expert Systems XI, M.A. Bramer and A.L. Macintosh, Editor. SGES Publications: Oxford. p. 73-86, 1994.

    [91] M.L.G. Shaw and C. McKnight, "ARGUS: a program to explore intra-personal personalities," International Journal of Man-Machine Studies, vol. 13, pp. 59-68, 1980.

    [92] M.L.G. Shaw and B. Woodward, "Mental models in the knowledge acquisition process," Knowledge Acquisition, vol. 2, no. 3 pp. 179-206, 1990.

    [93] P. Smolensky, B. Bell, B. Fox, R. King, and C. Lewis, "Constraint-based hypertext for argumentation," in Proceedings of Hypertext'87. ACM: New York. p. 215-245, 1987.

    [94] I. Sommerville and T. Rodden, Requirements Engineering for Cooperative Systems. University of Lancaster. 1994.

    [95] M.R. Strens and J.E. Dobson, "Responsibility Modelling as a Technique for Organisational Requirements Definition," Intelligent Systems Engineering, vol. 3, no. 1 pp. 20-26, 1994.

    [96] B. Wilson, Systems: Concepts, Methodologies, and Applications, Chichester, UK: Wiley. 1984.

    [97] J.B. Woodward and M.L.G. Shaw, "Cognition support tools for knowledge acquisition," in Proceedings of the Eighth AAAI Knowledge Acquisition for Knowledge-Based Systems Workshop, B.R. Gaines and M.A. Musen, Editor. p. 13-1-13-20, 1994.

    Appendix A Departmental Information

    Department of Computer Science

    The following departmental activities will interact with the chair position.

    The teaching, both at the undergraduate and graduate level, will benefit from the presence of a Chair in Software Engineering that will guide the development of the curriculum and facilities for software engineering. The Chair will monitor the trends and developments in the area and will be able to adjust to these with little delay. This also means that thesis development and research in the department in the Software Engineering area will be significantly strengthened.

    The following researchers and research groups in the department are expected to benefit from and contribute to the development of Software Engineering in connection with the Chair:

    James Bradley is an internationally recognized expert in large-scale databases. Since these are large software systems they benefit greatly from using the methodologies of Software Engineering in their design and implementation. It is expected that the Chair will provide significant support for this area.

    Robin Cockett researches programming language design and implementation based on categorical principles. His Charity system (implemented at Calgary) is used as an experimental language at some 20 academic institutions world-wide. Charity programs always terminate and the underlying theory provides proof principles (naturality, duality) making it a useful platform for verification. His experience in compilation techniques, programming methodology, and formal reasoning will support both chairs.

    Anton Colijn researches management information systems and distributed databases, both of which are examples of software systems where the design will benefit from the presence of experts in the area of Software Engineering.

    Wayne Eberly teaches Software Engineering and researches the foundations of algorithms and he is expected to provide further leading support in the Software Engineering area.

    Brian Gaines is an internationally known expert in the area of knowledge science and Director of the Knowledge Science Institute (KSI). This area depends on the availability of robust software for the acquisition, processing and dissemination of knowledge. The KSI has developed a wide range of knowledge management tools with which the chairholder is already associated and it is expected that these will be used in the research activities proposed. It is expected that the Chair in Software Engineering will interact strongly with this area.

    Saul Greenberg has established a collaborative systems laboratory that has developed GroupKit, a software library for implementing collaborative systems that is now widely used world-wide. Software engineering for human-computer interaction is a difficult area and will benefit from the activities around the Chair. GroupKit itself will be a valuable resource in developing the collaborative tools proposed in the Chair's research program.

    Lisa Higham researches the foundations of distributed systems and is concerned with the application of the theory to industrially significant applications. It is expected that the activities of the Chair will offer her the opportunity to interact more closely with industry.

    Brian Wyvill and Przemyslaw Prusinkiewicz both research aspects of computer graphics that are heavily software dependent. The methodologies and the implementation practices embodied in Software Engineering are expected to improve the speed of software development and the reliability of the software. The graphics tools and libraries already developed in the Department will be a valuable resource for the Chair research group.

    Brian Unger is involved in distributed software development, both in his academic capacity, as a director of the JADE spin-off company, and as the Director of WURCNet. The Chair will provide strong support both for his academic and industrial activities.

    Department of Electrical and Computer Engineering

    Departmental researchers are involved in research activities supported by the Alberta Microelectronics Centre, the Canadian Microelectronics Corporation, and NSERC via the national network of centres of excellence in microelectronics (MICRONET).

    Jun Gu and his research group are currently developing software tools to aid in the design of very large scale integrated circuits, both silicon and gallium arsenide. Gu's group has expertise in automatic search algorithms and these AI search techniques are being applied to silicon compilers, automatic place and route tools, multichip modules, and the like.

    Laurence Turner and his research group are developing software tools to aid in the automatic implementation of systems in field programmable gate array technology. This large group, in conjunction with the Alberta Microelectronic Centre is working towards the development of commercial software products which will allow systems designers to implement complex systems from high level specifications. The Canadian Microelectronics Corporation and other companies are becoming interested in this technology.

    Len Bruton, as principal investigator on the Calgary node of MICRONET, along with his research group, is developing software for multidimensional image processing. Bruton has a well known track record in the development of analog and digital filters for telecommunication industry, and the extension to multidimensional image processing is a natural one which is already receiving accolades in the scientific community. Additional image processing software is being developed by Rangaraj Rangayyan and his research group, in association with a number of medical faculties and hospitals in Canada, and similar activities are being carried out by Mike Smith and his research group, and by Dick Stein and his research group.

    An additional opportunity exists in the telecommunications area, related to an NSERC/AGT/ Telecommunications Research Labs Industrial Research Chair which is currently in the final planning stage. The Chair holder proposed for that position will be involved in the development of CAD tools for telecommunications applications and the telecommunications industry is becoming much more involved in software development than in the past. As a result, a unique opportunity exists for the Software Chair holder to interact with that group as well.

    SERN Page, 4-Sep-96