IEEE TRANSACTIONS ON EDUCATION, VOL. 47, NO. 2, MAY 2004
247
Engineering of Computer-Based Systems—A Proposed Curriculum for a Degree Program at Bachelor Level Jonah Z. Lavi, Life Senior Member, IEEE, Darren Dalcher, Member, IEEE, Mike Mannion, Member, IEEE, and Reuven Gallant, Senior Member, IEEE
Abstract—This paper presents a curriculum proposal for an Engineering of Computer-Based Systems (ECBS) Bachelor program from the Working Group on Education and Training of the IEEE Computer Society ECBS Technical Committee. It explains the need for a formal undergraduate education of engineers in this discipline and describes courses required for such a program. Index Terms—Bachelor (CBSs), curriculum.
degree,
computer-based
systems
I. BACKGROUND
T
HE deployment of computers in modern society is pervasive. Technological advances permit us to connect computers to a wide range of artifacts and to embed them in many systems and devices [1]. Computer-based systems (CBSs) are systems whose behavior is often controlled by computers. Because microprocessor suppliers seek competitive edge through speed-to-market and product customization, the microprocessor business will continue to grow. With increasing numbers of microprocessors ($40 billion sales in 2001 [2]) and more software included on each microprocessor, CBSs will become significantly more complex by being larger, networked, geographically distributed, and dependent on human–computer interaction. They already encompass a wide range of applications, including mobile telephones, medical instruments, and chemical plant controllers. The design of CBSs requires a new breed of engineer, one who has considerable understanding of the integration of computer hardware, computer software, and human–computer interface solutions. The Engineering of Computer-Based Systems (ECBS) is a discipline concerned with the engineering of system solutions that integrate computer hardware, computer software, people, and social infrastructure. The estimated number of persons worldwide involved in ECBS in 1988 was
Manuscript received June 18, 2002; revised February 24, 2003. J. Z. Lavi is with the CBSE Associates, Ramat-gan 52302, Israel (e-mail:
[email protected]). D. Dalcher is with the School of Computing Science, Middlesex University, London N14 4YZ, U.K. (e-mail:
[email protected]). M. Mannion is with the School of Computing and Mathematical Sciences, Glasgow Caledonian University, Glasgow G4 0BA, U.K. (e-mail: m.a.g.mannion @gcal.ac.uk). R. Gallant is with the Jerusalem College of Technology, Jerusalem 91160, Israel (e-mail:
[email protected]). Digital Object Identifier 10.1109/TE.2004.825225
100 000–150 000, but recent reports [3] predict the number to be 10 million in 2004. This paper is a response to the urgent need to educate CBS engineers [4], [5]. To understand the role of a CBS engineer (CBSE), consider the development of a modern echocardiography instrument that detects the sound of a heartbeat and converts sound waves into a computer image. It consists of electrodes, a probe, sensors, and a computing system that controls all the instruments, converts ultrasound waves to images, stores the images, and generates a two-dimensional real-time video display of the heart. A systems engineer (SE) will have primary management responsibility for the specification, design, development, integration, and testing of the overall system within a context of changing market opportunities and available resources, e.g., funds, staff, raw materials, and manufacturing technologies. A CBSE will interpret those system-level requirements that relate to the computing system and decide which functions can be implemented in computer software and/or hardware. Making these decisions affects performance, maintainability, and dependability and relies on knowledge of the other components of the echocardiograph system and how the computing system interfaces with them. Hence, a CBSE requires knowledge of many disciplines, including computer hardware engineering, software engineering, communications engineering, and some principles of systems engineering. A software engineer will collaborate with a CBS engineer in the definition of the software requirements and in the development of the software architecture. The decision to launch a new undergraduate program often opens the debate about whether there is sufficient new material to justify a separate degree or whether the new material can be developed as a minor to an existing degree. Many universities offer specialist undergraduate degrees that are largely concerned with one perspective of CBS construction, e.g., a Computer Systems Engineering degree is concerned with the construction of the internal architecture of a single computer. Most of these degrees also offer opportunities to students to take courses from other disciplines, but they are often taught without much concern as to how they integrate with the special program. An ECBS undergraduate program will not only present treatments of a range of technical disciplines required for the construction of CBS applications, but will also include special CBS courses that will show how each discipline relates and supports one other. The duration of the program is needed to provide a sufficiently long period of time to develop in graduates a problem-solving
0018-9359/04$20.00 © 2004 IEEE
248
Fig. 1.
IEEE TRANSACTIONS ON EDUCATION, VOL. 47, NO. 2, MAY 2004
Bloom’s taxonomy of education objectives.
approach in which systems thinking, integration, and consultation become a natural part of their thinking when using other engineering methods and techniques. This paper presents a proposal from the Working Group on Education and Training of the IEEE Computer Society ECBS Technical Committee for an ECBS Bachelor’s program. It has evolved over many years through consultation with, and examination of the work of, many colleagues around the world [6]–[10] and continues work completed by the same committee on specifying a graduate enhancement program [10] and a Master’s program [11]. The proposal recommends topics to be studied but does not define course combinations that must be used to deliver these topics, since those decisions are best left to program providers. Section II of this paper describes the expected competences of an ECBS graduate. Section III describes the program syllabus. Section IV discusses the implications of the proposed program. II. ECBS BACHELOR’S PHILOSOPHY A. Aim The aim of an ECBS Bachelor’s program is to educate students about the characteristics and contribution to society of CBSs, their applications, and the challenges faced when constructing them. ECBS graduates must be able to define, develop, implement, test, and maintain evolving CBSs, using available theoretical and practical processes, methods, techniques, and tools, and adhering to present standards and codes of professional conduct. Instructors must focus on developing students’ capabilities to take a systems approach and function as integrators of concepts, methods, and technologies. B. Program Learning Outcomes There is a continuum in the development of cognitive attainment from the simple and concrete to the complex and abstract. Transitions between stages are iterative, and the number of iterations varies with subject matter and student. Bloom’s taxonomy [13] is a useful attempt to chart this continuum as a hierarchy of cognitive skills. Although attempts to validate this taxonomy have proved inconclusive, it is still widely used, most
recently by the IEEE Computer Society Software Engineering Coordinating Committee in its efforts to define a Software Engineering Body of Knowledge (see www.swebok.org). Fig. 1 shows Bloom’s Taxonomy and our labeling of this taxonomy to simplify program learning outcome definition. We identified three ECBS knowledge levels: [a] becomes aware, [u] understands, and [p] performs. On completing a four-year undergraduate program, an ECBS graduate will be able to perform the following: • identify, analyze, and bound potential applications addressed by a CBS [p]; • develop conceptual models and operational scenarios of CBS [p]; • elicit, formulate, analyze, reconcile, allocate, manage, validate, and record CBS requirements in precise, well-organized, and easily used documents [p]; • suggest feasible CBS top-level architectures and designs for new and legacy applications and evaluate and compare them by performing tradeoff analyses [p]; • design CBSs, determining which functions will be implemented in hardware or in software, and specify the subsystem requirements, selecting the basic hardware, software, communication and human–machine interfaces, and components, reusing, if possible, existing designs, subsystems, and components [p]; • analyze the behavior and performance of a proposed CBS design to ensure that the proposed system can meet the application’s requirements [p]; • explain the detailed design of CBS subsystems [u]; • specify the interfaces between the CBS subsystems [p]; • integrate small-scale CBSs and test them [p]; • be aware of integration environments for the development of large-scale CBSs [a]; • prepare validation and test plans for CBSs and their subsystems [p]; • describe and evaluate alternate processes, methods, technologies, and tools required for the CBS life cycle [a]; • develop CBS project plans, including risk management plans [p]; • understand the maintenance problems of CBSs [u];
LAVI et al.: ENGINEERING OF COMPUTER-BASED SYSTEMS—A PROPOSED DEGREE PROGRAM CURRICULUM
249
TABLE I TOPICS ON ECBS BACHELOR’S PROGRAM
• understand the production problems of CBSs [u]; • be aware of professional standards and ethics [a]; • recognize the need for, and have the ability to engage in, life-long learning of the rapidly evolving CBS technologies [p]; • work in multidisciplinary teams [p]. III. THE ECBS BACHELOR CURRICULUM CBSEs completing a four-year program must have substantial knowledge of a range of topics. Table I identifies a list of subjects and a list of topics within each subject that merit treatment within a Bachelor’s program. The authors have not defined course combinations that must be used to deliver these topics because those decisions are best left to program providers. Variations in course choice by program designers will arise for several reasons, including local market needs, skills of faculty staff, quality and quantity of available laboratory resources, and local university program regulations. For example, some providers may choose to have one course on modeling that covers the topics of CBS modeling, requirements engineering, and specification (in ECBS), systems simulation and modeling (in engineering), and software architectures and components (in
software engineering). Other providers may choose to deliver these topics in separate courses. The authors anticipate that most of the ECBS courses will be given in the third and fourth years of a program and that the shape of these courses will be formed by the underpinning courses chosen in the first and second years. Achieving the appropriate balance is difficult to prescribe. Experience shows that imparting too much systems knowledge early in a program is not appreciated by students, but some systems knowledge during elementary courses does cause them to be more sensitive to system-level issues. In the rest of this section, the assumption is that most universities offer courses in many of the subjects in Table I; therefore, the authors describe the detail of the ECBS topics only. A. Introduction to ECBS and CBS Applications This course explains available CBSs, their use in the operation of other systems, their significant features, and the considerations to be made when incorporating them in other systems. After completing this course, a student will be able to perform the following tasks: • identify, analyze, and bound a problem to be addressed by a CBS in the domain of the system of which the CBS is a part;
250
IEEE TRANSACTIONS ON EDUCATION, VOL. 47, NO. 2, MAY 2004
• be aware of significant features of CBS solutions and architectures applicable to the problem in specific application examples; • be aware of economic considerations in the development of CBS; • understand the maintainability issues of CBS; • understand the production problems of CBS. The course syllabus can include an introduction to ECBS, typical CBSs, their significant features and limitations, CBS production and maintenance production, CBS evaluation, and economic considerations. B. CBS Engineering Methods This course explains fundamental methods and techniques applicable in analysis and design of CBS [14]–[17]. After completing this course, a student will be able to perform the following tasks: • be aware of the importance of establishing the value and need for the system; • be aware of the role of formality in ECBS and its limitations; • be aware of the emergent properties of systems; • understand the roles and limitations of models of a CBS and its context; • understand system concepts applied to CBS and the CBS engineering process; • argue logically about CBS models. The course syllabus can include factors for judging the value of a system, systems theory as applied to CBS model-based development, simulation approaches in engineering, measurement, and workload analysis. C. CBS Modeling, Requirements Engineering, and Specification This course explains CBS modeling and requirements engineering as significant activities for the preparation of system specifications [18], [19]. After completing this course, a student will be able to perform the following tasks: • develop a conceptual model of the structural and operational properties of a CBS, including tasks appropriate for a human operator of a CBS; • develop operational scenarios with reference to the system’s environment; • elicit and specify functional and nonfunctional requirements and quantify them; • understand the allocation of requirements to the conceptual model components; • understand requirements management needed during a system’s life; • prepare the necessary specifications and requirements documentation; • identify those aspects of the requirements that most strongly determine the architecture and design of a CBS; • be aware of the significance of change and evolution in requirements.
The course syllabus can include problem-domain identification, the role of domain-specific knowledge, conceptual modeling of new and legacy systems, elicitation, formulation and allocation of requirements, analysis methods (e.g., structured analysis, object-based analysis, win–win analysis, viewpoint analysis, use–case analysis, and executable models), requirements specification standards, and requirements management. D. CBS Architectures and Components This course explains common CBS architectures and their evaluation. After completing this course, a student will be able to perform the following tasks: • describe typical distributed CBS hardware architectures; • describe current hardware components of CBS; • generate feasible hardware architectures for a specific family of applications; • analyze the relative merits of the possible solution; • select hardware components, such as computers and communications devices, based on the performance and dependability requirements of the system. The course syllabus can include hardware architecture representation techniques, distributed hardware architectures of CBS (loosely and tightly coupled topologies), fault-tolerant architectures, hardware, firmware and interconnection schemes, CBS architectures and the related software architectures, and comparison methods of CBS architectures and related software architectures. E. CBS Design and Performance Analysis This course explains the architectural design and performance of a CBS for a specific family of applications [20]–[23]. After completing the course, a student will be able to perform the following tasks: • design a CBS satisfying given requirements using a disciplined process; • analyze CBS behavior and performance; • select a feasible CBS solution using analytical approaches; • specify and select CBS hardware, software, and communications using existing products appropriately; • present the design rationale of the proposed CBS; • document the design and prepare the requirements specification for each of the component subsystems; • be aware of computer-aided systems and software environment tools; • understand the design management needed during the system’s life. The course syllabus can include the systematic design of a CBS for a specific family of applications meeting the system requirements, the properties of architectural assets, tradeoffs between possible CBS architectures, the allocation of requirements to the system architecture and subsystem components, factors affecting the performance of CBS and performance analysis methods, factors affecting the dependability of CBS and dependability analysis methods, design for change and maintenance, economic considerations affecting the design, the implementation and testing of the design, exposure to computer-aided systems and software tools and environments.
LAVI et al.: ENGINEERING OF COMPUTER-BASED SYSTEMS—A PROPOSED DEGREE PROGRAM CURRICULUM
F. CBS Integration, Verification and Validation This course explains the theory and practice of integration, verification, validation, and testing of CBSs and their components: hardware, software, communication, and human–machine interface subsystems. After completing the course, a student will be able to peform the following tasks: • be aware of system integration, test, and validation issues; • be aware of integration support facilities; • prepare necessary test documentation; • be aware of system and subsystem inspections; • be aware of validation tests of a system and its subsystems (particularly with components combined from different technologies); • be aware of methods for analysis of the test and validation results. The course syllabus can include testing strategies, test-case creation and management, theory and practice of integration, validation and testing of computer-based systems, testing methods and tools (e.g., logic analyzers, protocol analyzers, software testing techniques and methods, communication network testing methods, multilevel integration and testing of the system, document inspections and walkthroughs, failure mode and effects analysis, support environments for the integration and test process, test results analysis methods, configuration management support for integration and test). G. ECBS Evolution and Legacy Systems This course explains the theory and practice of the evolution and maintenance of computer-based legacy systems—one of the major activities of CBSEs. After completing the course, a student will be able to peform the following tasks: • be aware of the issues related to ECBS legacy systems; • understand the problems of maintenance; • derive maintenance plans for CBSs; • design for maintainability; • utilize support tools for maintenance, re-engineering, reverse engineering, program comprehension, restructuring, and documentation; • plan, control, and manage change and evolution; • understand and apply relevant standards. The course syllabus can include legacy systems, legacy problems, maintenance of CBSs, designing for maintainability, re-engineering, reverse engineering, and restructuring systems, program comprehension, planning, estimation and control of change, supporting tools, maintenance standards. H. CBS Project Management This course explains the management aspects of the development of CBSs and their software. After completing the course, a student will be able to perform the following tasks: • develop CBS project management plans, including risk analysis and migration and support plans; • identify monitoring and controlling mechanisms for CBS projects; • describe how to allocate and re-allocate project resources, both for the target system and the development organization;
251
• analyze a CBS design to identify potential weaknesses (technical risks); • track the schedule and budget to both quality and productivity targets; • understand the relationships among quality assurance, configuration management, and project documentation; • understand system and software process assessment and improvement techniques; • describe relevant statutes (e.g., security, safety, and copyright); • be aware of intergroup coordination and management; • be aware of techniques for leadership and team building. The course syllabus can include CBS process planning, CBS project planning, monitoring and controlling mechanisms, concurrent engineering issues considering the system, its integration environment and its instrumentation, quality management, configuration management, risk management, process assessment and improvement, inter-group coordination and management, subcontractor management, conflict resolution techniques, and business and organizational structures and practices. I. Processes, Standards, and Ethics This course explains the theory and practice of the application of various standards to be used in the development and maintenance of CBS and their software and the application of the relevant engineering codes of ethics [24], [25]. After completing the course, a student will be able to perform the following tasks: • apply various technical standards relevant to the development and maintenance projects, e.g., IEEE1220, ISO 12 207; • apply various professional engineering, e.g., IEEE Computer Society and the Association for Computing Machinery (ACM) Software Engineering Code of Ethics. J. Application Projects The purpose of Application Projects courses is to provide an opportunity to integrate various strands of engineering knowledge in the construction of a CBS application and addresses the ABET 2000 [26] criteria that emphasize “the learned abilities an engineer should possess upon entering into professional practice.” These courses can run throughout a Bachelor of Science program, and as students learn more about CBS construction technologies, the depth and complexity of what is required of students can increase. In the first, second, and third years, students should do small projects, preferably in groups, introducing them to ECBS applications. In the fourth year, a more substantial project should be undertaken. One suggestion is that each team handles a different facet of the development work, e.g., one team manages the project, another defines the requirements and develops the top-level system architecture, another produces the software, and another is responsible for the building and testing of the system [27]. After a set of application projects, a student will be able to perform the following tasks: • identify, analyze, bound, and describe a potential application to be addressed by a CBS;
252
IEEE TRANSACTIONS ON EDUCATION, VOL. 47, NO. 2, MAY 2004
• develop conceptual models and operational scenarios of the CBS; • elicit and formulate the system requirements, analyze, reconcile, allocate, manage, validate and record them in a precise, well-organized, and easily used document; • suggest preliminary, feasible, top-level system architectures and designs and evaluate and compare them; • design the CBS, determining which functions will be implemented in hardware or in software, and specify the subsystem requirements, selecting the basic hardware, software, communication, and human–machine interfaces components, reusing, if possible, existing designs, subsystems, and components; • analyze the behavior and performance of a proposed project system design (either analytically or by simulation) to make sure that the proposed system can meet the application’s requirements; • explain the detailed design of system and subsystems; • specify the interfaces between subsystems; • integrate the system and test it; • prepare test plans for the system and its subsystems; • develop project plans, including risk management; • describe the maintenance problems of the system; • function in multidisciplinary teams. K. Contemporary Technologies Seminar The purpose of a seminar program is to make students aware of up-to-date technical literature and newly developing technologies. After completing the seminar program, a student will be able to retrieve, read, understand, and evaluate new contemporary literature. The course syllabus can include effective literature search, effective World Wide Web search, and reading and understanding new technical papers and reports. It will equip the students with the requisite skills for lifelong learning and professional reflection. IV. DISCUSSION The role played by computers in the lives of many citizens in modern society is expanding. CBSs are becoming larger and more complex. The skills required to build these systems are also changing. A new breed of engineer is required that can straddle the divide between the theory and practice of computer science and a range of engineering disciplines. The authors have proposed a curriculum for a Bachelor’s program in ECBSs. These proposals are indicative rather than prescriptive since there will be local variations in how programs are constructed. ECBS Bachelor’s programs are most likely to emerge in universities that have computer and/or electrical engineering departments where there are likely to be suitably qualified and experienced faculty and a range of well-stocked laboratories. However, ECBS is a discipline that cuts across many academic disciplines, and the success of ECBS will depend on how well cross-disciplinary activities are encouraged and supported by university cultures and structures. ACKNOWLEDGMENT The authors would like to thank the following people for their contributions: R. M. Gonzales, New Mexico State University,
Las Cruces; B. Melhart, Texas Christian University, Ft. Worth; S. Koenig, Tadiran Telecommunications, Ltd., Holon, Israel; M. Sveda, Technical University of Brno, Brno, Czech Republic; and I. Pyle, University of Wales, Aberystwyth, U.K.
REFERENCES [1] B. Santo, “Embedded battle royale,” IEEE Spectrum, vol. 38, pp. 36–41, Sept. 2001. [2] J. M. Bass and M. C. Christensen, “The future of the microprocessor business,” IEEE Spectrum, pp. 34–39, Apr. 2002. [3] J. Hennessy, “The future of systems research,” IEEE Computer, vol. 32, pp. 27–33, Aug. 1999. [4] S. F. White, B. E. Melhart, and H. W. Lawson et al., “Engineering computer-based systems: Meeting the challenge,” IEEE Computer, vol. 34, pp. 39–43, Nov. 2001. [5] J. Z. Lavi, “A call for ECBS educational resources,” IEEE Computer, vol. 35, p. 8, Apr. 2002. [6] J. Z. Lavi et al., “Computer-based systems engineering workshop,” in Proc. SEI 1991 Conf. Software Engineering Education, Lecture Notes in Computer Science Pittsburgh, PA, Oct. 7–8, 1991, pp. 149–163. [7] R. J. A. Buhr, “Emergence of a discipline,” Commun. ACM, vol. 30, no. 3, pp. 198–202, Mar. 1987. [8] T. C. Lethbridge, “What knowledge is important to a software professional?,” IEEE Computer, pp. 44–50, May 2000. [9] D. L. Parnas and M. Soltys. (2002, Oct.) “Basic Science for Software Developers”. Dept. of Computing and Software, Faculty of Engineering, McMaster Univ., Hamilton, ON, Canada. [Online] Report No. 7, Available: http://www.cas.mcmaster.ca/sqrl/sqrl_reports.html [10] J. Z. Lavi, M. Mannion, B. E. Melhart, I. Pyle, and M. Svéda, “Engineering of computer-based systems—A proposed curriculum for a degree program at bachelor level,” in Proc. IEEE Computer Society ECBS 98—Int. Symp. Workshop. Jerusalem, Israel: Computer Society Press, Mar. 1998, pp. 377–384. [11] J. Z. Lavi, R. Gonzales, M. Mannion, and M. Sveda, “Engineering of computer based-systems enhancement courses—Proposed course outlines,” in Proc. IEEE Computer Society ECBS 99—Int. Symp. Workshop. Nashville, TN: IEEE Computer Society Press, Mar. 1999, pp. 336–345. [12] J. Z. Lavi, B. Melhart, and I. Pyle, “Engineering of computer-based systems—A proposed curriculum for a degree program at master level,” in Proc. IEEE Computer Society ECBS 97—Int. Symp. Workshop. Monterey, CA: Computer Society Press, Mar. 1997, pp. 54–64. [13] B. S. Bloom, Taxonomy of Educational Objectives. New York: David McKay Co., 1956. [14] H. Chestnut, Systems Engineering Tools. New York: Wiley, 1965. [15] , Systems Engineering Methods. New York: Wiley, 1967. [16] B. Thome, Systems Engineering, Principles and Practice of CBSE. New York: Wiley, 1993. [17] D. Oliver, T. P. Kelliher, and J. G. Keegan, Engineering Complex Systems With Models and Objects. New York: McGraw-Hill, 1997. [18] J. Z. Lavi and J. Kudish, Systems Modeling & Requirements Specification: The ECSAM Method for Computer-Based Systems Analysis and Modeling. New York: The Dorset House, 2003. [19] R. Stevens, P. Brook, K. Jackson, and S. Arnold, Systems Engineering—Coping With Complexity. Englewood Cliffs, NJ: Prentice-Hall, 1998. [20] C. Weitzman, Distributed Micro/Minicomputer System—Structure, Implementation & Application. Englewood Cliffs, NJ: Prentice-Hall, 1980. [21] D. P. Siewiorek and R. S. Swarz, Reliable Computer Systems: Design and Evaluation. Bedford, MA: Digital, 1992. [22] M. P. Mariani and D. F. Palmer, “Tutorial: Distributed System Design,” IEEE Computer Society Catalog No. EHO 151-1, 1979. [23] M. P. Mariani, Ed., Distributed Data Processing-Technology and Critical Issues. North Holland: Elsevier, 1984. [24] IEEE Trial-Use Standard for Application and Management of the Systems Engineering Process, IEEE Standard 1220-1994, Mar. 1995. [25] A Systems Engineering Capability Maturity Model. The Software Engineering Institute, Carnegie-Mellon Univ., Pittsburgh, PA. [Online] Available: http://www.sei.cmu.edu/cmmi/ [26] (2003, Feb.). [Online] Available: www.abet.org [27] J. Leaney, C. Peterson, and C. Drane, “Observations on an ECBS educational project,” in Proc. IEEE Computer Society ECBS 98—Int. Symp. Workshop. Jerusalem, Israel: Computer Society Press, Mar. 1998, pp. 313–317.
LAVI et al.: ENGINEERING OF COMPUTER-BASED SYSTEMS—A PROPOSED DEGREE PROGRAM CURRICULUM
Jonah Z. Lavi (M’58–SM’94–LSM’95) received the Ph.D. degree in the engineering of computer-based systems (ECBS) from Case Western Reserve University, Cleveland, OH, in 1965. He was a Research and Development Manager at Israel Aircraft Industries between 1978 and 1993 and was an author of ECSAM, a method for computer-based systems (CBSs) analysis and modeling. He currently consults for CBSE Associates, Ramat-gan, Israel, and teaches industrial and university CBS courses at Jerusalem College of Technology, Jerusalem, Israel. Dr. Lavi is the Founder and past Chair of the ECBS Technical Committee of the IEEE Computer Society. He currently is the Chair of the Working Group on Education and Training of the IEEE Computer Society ECBS Technical Committee. He received an outstanding contribution award from the IEEE Computer Society in 1995.
Darren Dalcher (S’88–M’92) received the Ph.D. degree in software engineering from King’s College, University of London, London, U.K. He is currently a Professor in the School of Computing Sciences, Middlesex University, London, U.K. Dr. Dalcher is a Member of the Association for Computing Machinery (ACM), the British Computer Society, the Project Management Institute (PMI), the Association for Project Management, and the IEEE Computer Society, where he is a Member of the Engineering of Computer Based Systems (ECBS) Technical Committee and chair of the Forensic ECBS Special Interest Group.
253
Mike Mannion (M’95) received the Ph.D. degree in artificial intelligence from Bristol University, Bristol, U.K. He worked as a Software Engineer for GEC Marconi Radar and Praxis Systems for six years, and he lectured at Napier University, Edinburgh, U.K., from 1992 to 2000. He is currently a Professor and Dean of School of Computing and Mathematical Sciences, Glasgow Caledonian University, Glasgow, U.K. Dr. Mannion is a Member of the Association for Computing Machinery (ACM) and the British Computer Society (BCS).
Reuven Gallant (SM’03) received the Ph.D. degree in religious studies from Yale University, New Haven, CT, and the B.S. and M.S. degrees in electrical engineering from the Massachusetts Institute of Technology (MIT), Cambridge, MA. He has worked in the U.S. and Israeli defense research industries and was a Software Engineering Institute-authorized lead assessor for capability maturity model (CMM)-based appraisals. He is currently the Vice-Chairman of the Department of Computer Science, Jerusalem College of Technology, Jerusalem, Israel. He also consults and lectures widely in the areas of methodology and process improvement. Dr. Gallant is a Senior Member of the IEEE Computer Society.