Engineering of Computer-Based Systems
Engineering of Computer-Based Systems
Engineering of Computer-Based Systems
Abstract
This paper describes characteristics of Engineering of Computer-Based Systems (ECBS), a newly recognized
discipline, and the need for formal undergraduate and graduate level education of engineers in this discipline. The tasks to
be undertaken by CBS engineers are outlined. They form the requirements for the preparation of the ECBS Master
program. The paper describes in detail the suggested courses required in such a program and some of the problems
encountered in their development. The suggested courses, in a tailored version, can be incorporated in undergraduate
ECBS programs and industrial training programs.
The proposed ECBS Master program is being developed by the Education and Training Working Group of the IEEE
Computer Society ECBS Technical Committee.
1. Background
Computer-Based Systems (CBS) are systems whose behavior is, to a substantial degree, determined or controlled by
computers. Typically they consist of many networked, geographically distributed subsystems. Each subsystem may be or
may contain a multi-computer system. They are intensively dependent on software, and frequently depend on data
communication networks, human-computer interaction, and special hardware.
CBSs span a wide range of applications. Examples include commercial management information systems such as
airline reservations, payroll information, stock control, and electronic banking systems; and real-time embedded computer
systems such as process control and computer integrated manufacturing systems, space systems, telephone and
communications systems, transportation systems (automotive control, train control, ship control, traffic control), medical
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
1
instruments, avionics systems, missile control systems, microcomputer controlled domestic appliances and point of sale
systems.
The development of such systems requires a special engineering discipline that has been termed the Engineering of
Computer-Based Systems (ECBS). It applies the principles of systems engineering to computer-based systems, integrating
elements of electrical engineering, computer engineering, software engineering, communications engineering, and human
factors [LAVI91].
To illustrate the responsibilities of the CBS engineer and the differences between his responsibilities and those of the
system and the software engineers, we describe how they might work together during the development of a sophisticated
medical system such as a modern echocardiography "instrument". The systems engineer (SE) has primary responsibility
for identifying the role and the functionality of the overall system, deriving the requirements it must satisfy and preparing a
preliminary specification in the context of business and market opportunities.
The CBS engineer works with the system engineer, from the start of the project, interpreting system level requirements
that relate to the distributed computing system which will control the echocardiography system. The systems engineer, the
CBS engineer and other specialists make joint decisions concerning the system and subsystem boundaries and their
functional and non-functional properties. These will include, for example, decisions regarding those system functions
which should be automated and those which should be performed by operators. They propose an initial architecture and
specify design constraints. During this activity, many assumptions will be made regarding the application domain, the
identified application and the system that is to be implemented.
To design the control computing system, the CBS engineer must understand the global functions of the specific medical
equipment and how it will be used. The SE and CBS engineer select the various computing components and perform the
necessary tradeoffs.
CBS engineers design the computing system architecture and determine which of its functions are to be implemented in
software, hardware or firmware. These decisions affect performance and maintainability, as hardware is relatively
inflexible but software may be changed and adapted. [LEHM85, LEHM91]. They must also make decisions with respect to
the computing resources and their allocation. These decisions determine the types of processors, communication links and
storage devices that are needed. Based on dependability needs, the CBS engineer chooses fault tolerance features such as
dual buses, standby processors, fault tolerant operating systems, and software recovery blocks. The CBS engineer also
optimizes the number of standard CBS parts, to exploit commercially available software and hardware parts and interfaces.
The software engineers work with the CBS engineers in the definition of the software requirements and their allocation to
the processing resources and in the development of the software architecture [WHIT95].
The state of practice in ECBS is described in a paper by White, et al [WHIT93]. The paper estimates that the number of
persons involved in ECBS in 1988 was between 100,000 and 150,000. An independent report [SOF2000] estimated the
number of persons worldwide working on embedded software to be 2 M in 1994, increasing to 10M in 2004. Most of them
will be developing CBSs.
Most people working in ECBS roles will have had an educational background in electronic engineering or computer
science. Some will have had a background in software engineering as more programs in this specialty have been launched
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
2
in various universities. Few will have a formal background in ECBS [LAVI94]. Even now only very few programs exist
that specialize in the education of ECBS, although many deal with parts of the subject.1 This is clearly an unsatisfactory
situation. The increasing number of CBSs developed by the industry requires the early establishment of ECBS graduate and
undergraduate education and industrial training programs. Moreover, introductory courses on ECBS should be included in
existing undergraduate programs in engineering and computer science.
It is generally easier to develop programs for new engineering disciplines at the graduate level. Therefore, we suggest
this ECBS program first at the Master level. However, farsighted universities should consider now the development of
ECBS undergraduate programs. In so doing, they will be able to meet the increasing industrial needs for such engineers.
Industry will also develop ECBS training programs meeting their internal needs for CBS engineers.
The current paper presents a proposed ECBS Master program. It was developed by the Working Group on Education
and Training of the IEEE Computer Society ECBS Technical Committee. It is based on previous reports [BUHR92,
ALEX92, LAVI96,LAVI97], on the ECBS Master program being developed by the Jerusalem College of Technology
[FRIE95] and on the discussions of the Working Group at its meetings during the ECBS96 and ECBS97 Conferences in
Friedrichshafen, Germany and Monterey, California.
2.1. Objective
The objective of the proposed ECBS Master program is to educate and train its students giving them a good
understanding of the nature and challenges of the engineering of computer-based systems and solution approaches.
The program will focus on developing the student’s capability to function as integrators of concepts, methods and
technologies, taking a systems approach. The graduates will be prepared to rely on more specialized experts to treat in
detail the sub-domains encompassed within ECBS. Therefore it does not compete with more specialized, and more detailed
curricula in each of the sub-domains encompassed within ECBS, such as software engineering, electrical engineering, or
communications.
The graduates are expected to be capable of defining, developing, implementing, maintaining and evolving a computer-
based system, using available theoretical and practical methods, techniques, tools and standards.
1 Some outstanding examples are; Carleton University's program in Computer Systems [CARL94] University of
Manchester Institute of Technology program in Computer Systems Engineering [UMIST95].
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
3
banks and other financial institutions, and defense industries represent just a sample of the increasing exploitation of CBSs
in their many forms.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
4
program development. It might be necessary to arrange some augmenting courses in computer science subjects for those
who lack it, either in a course preceding the formal studies or during the course of study.
3.1. Introduction
The proposed ECBS Master program is intended to meet the increasing need for highly skilled CBS engineers.
Therefore, it is overtly a professional degree program, rather than research oriented. Master degree programs may be
research oriented requiring a thesis for successful completion or yield a professional degree with significant emphasis on a
project and practical experience in industry. The later should produce a practitioner who can rapidly assume a position of
substantial responsibility. The Carnegie Mellon University masters degree in software engineering is a good example of a
professional degree in an area closely related to ECBS [FORD89, GARL93, SEI93]. This should not, however, prevent
qualified graduates from continuing their studies towards a doctoral degree in ECBS.
The ECBS discipline is extremely wide, and many of the current initial intakes will not have an adequate undergraduate
education in the discipline. This situation will change once ECBS undergraduate programs are established. To
accommodate the current situation, a three tier program is currently being suggested. The first tier, the basic tier, covers
basic necessary courses. The second tier is the core of the program; it covers the essential material required in the systems
engineering of CBSs. The second tier also includes a list of suggested elective courses. The third tier, the practice tier of
the program, is devoted to the final project.
The range of CBS applications is very wide and only a limited selection can be discussed during the program. Students’
exposure to specific application areas will therefore be limited to the systems discussed as examples in the various courses
and in the project work.
In developing a curriculum for a new discipline, one faces the problem that adequate and clear material will not always
be available for some of the courses. But people who believe in the future of a subject and who sense its importance will
invest in the subject long before they can delineate it [HOPC86]. In designing this program we have accepted that some
material will have to be developed over a period of years. A typical example of a core course that is not covered by an up-
to-date textbook is CBS Design, which is specified later.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
5
• Hardware architectures and components
• Data modeling and database design
• Computer communications and interfacing
• Concurrent Systems - principles of sequential, concurrent and parallel execution
• Software architectures and components
The second tier makes the essential step of integrating the constituent technologies in various ways, dealing with
specific engineering aspects of a CBS and a range of elective topics. This material provides the essence of the CBS
technology which the graduates must have mastered on completion of their studies. The five core courses are:
• System engineering methods
• CBS modeling, requirements engineering and specification
• CBS Design
• CBS integration testing and validation
• CBS project management
The first core course, system engineering methods, deals with general principles of systems engineering, such as
methods for the evaluation of systems, typical kinds of behavior and systems concepts [CHES65, CHES67, THOM93]. The
second core course, CBS modeling, requirements engineering and specification, deals with the identification of the
problem, creation of conceptual models, requirements elicitation, allocation and management and preparation of systems
specifications. The third core course, CBS design, deals with the design of the entire computer-based system as a structured
entity. Having specified the requirements for a particular application, one has to choose the preferred system
decomposition, architecture and components, the software architecture and the communication architecture and protocols,
analyze the system as a complete entity, and allocate the requirements to its component subsystems. Finally, the last two
core courses, CBS integration testing and validation, and system project management, provide the skills needed for
integration and validation of the system and management of the projects.
Additional knowledge in different, relevant areas will be provided in the second tier elective courses. The following list
is a collection of typical courses. These courses will allow the students to augment and diversify their knowledge and
specialize in the kinds of CBSs used in particular application areas, e.g. data processing systems and real-time embedded
systems.
Suggested second tier elective courses are:
• Advanced computer science courses
• Critical systems dependability: safety, security, reliability
• Expert systems
• Feedback control systems analysis
• Formal methods and their uses
• Human machine interfacing
• Local area networks technologies
• Machine vision and image processing
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
6
• Network management
• Neural nets
• Object oriented software design and programming
• Operating Systems
• OSI Architectures
• Real time system design
• Reuse in CBS development
• Signal processing
• Simulation techniques
• System maintenance issues
• Telecommunications
• VLSI design
• Wide area network technologies
• Parallel and distributed systems
The top level description of the various first and second tier courses is outlined in the following paragraphs. Some of the
up-to-date courses required in the program will be related to those given in other current MS in software engineering
programs [GARL93]. It is suggested to use such material as a starting point for the definition of courses and to modify
them to fit the needs of the proposed ECBS MS program. Others are standard courses taught in various engineering
programs. At least one new course, CBS design, has to be developed for the program. No example of an up-to-date course
of this type has been identified. Basic material which can be used in the development of this course are books and a report
published by Mariani [MARI79, MARI83, MARI84] and a somewhat dated book by Weitzman [WEIT80]. Efforts are
being made to solicit up-to-date texts covering this subject.
The third tier is the practice tier of the program; this is a project to construct a real CBS, working in a team. The
knowledge and understanding of the students will be reinforced through the final project.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
7
Topics to be covered in the course will include:
• Hardware architecture representation techniques (e.g. VHDL, Petri Nets).
• Distributed hardware architectures of CBSs (loosely and tightly coupled topologies).
• Performance characterization of computing resources.
• Hardware, firmware and interconnection schemes.
• Fault tolerant architectures and common mode failures.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
8
• Choose communication media, methods, networks.
• Understand the principal kinds of human-computer interactions, problems and common solutions, their advantages
and disadvantages.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
9
• Use existing definitions and development tools to expedite such tasks.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
10
• Functional transforms.
• Predicate logic.
• Proofs and proof obligations.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
11
After completing the course, students will:
• Design a computer-based system satisfying given requirements using a disciplined process.
• Analyze its behavior and performance.
• Select a feasible CBS solution using analytical approaches.
• Specify and select its hardware, software, communications, with appropriate use of existing products (components and
subsystems).
• Present the design rationale of the proposed CBS.
• Document the design and prepare the requirements specification for each of the component subsystems.
• Use Computer Aided Systems and Software Environment tools.
• Understand the tracking and design management needed during the system’s life (i.e., evolution or maintenance).
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
12
• 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 walk-throughs.
• Failure mode analysis.
• Support environments for the integration and test process.
• Test results analysis methods.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
13
– MIL-STD-498 (or its successor) - Software Development and Documentation
– Systems Engineering Capability Maturity Model [SECMM]
2 A credit hour is a unit of measure for academic credit purposes. One credit hour corresponds to one 50 minute lecture
per week for approximately 16 weeks (one semester), or 3 contact hours in a laboratory for the same period, or an
equivalent time for a shorter term.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
14
greater financial or social implications. Associated with this process should be continuing education to inform practicing
engineers of advances in theoretical understanding, new methods, tools and standards, changes in legislation or other
external factors that bear on their professional activities.
Technical responsibility for the development of computer-based systems should be carried by professional/chartered
engineers. This program can be appropriate for the educational preparation of such people. The particular ways of
recognizing or registering engineers differ from country to country, and each may use this proposed curriculum as a basis
for discussion about educational criteria for professional registration. For example, in the UK, where the Engineering
Council recognizes Chartered Engineers on the basis of education plus experience, this curriculum may form a possible
starting point for examination and accreditation of courses. It may also be the basis for harmonization and mutual
recognition of professional vocational qualifications among member states of the European Union. In the USA, the
curriculum may be the basis for an accredited engineering masters program. Such an accredited degree is considered as
part of the evidence of productivity after achieving the foundations of engineering examination required for professional
engineers.
It is highly recommended that ECBS undergraduate programs be developed as soon as possible. People might argue that
it is impossible to teach ECBS at the undergraduate level as it is too complex. On the contrary, experience shows that other
system disciplines are taught very successfully at the undergraduate level. Typical examples are chemical engineering,
aeronautical and marine engineering and architecture. Teaching ECBS at the undergraduate level requires the
incorporation of the first and second tier ten course topics in the last two years of the bachelors program. The master's
program can be extended to include more advances courses after ECBS undergraduate programs have been developed.
This is a very important next step for advancing the discipline.
As the number of engineers developing CBSs is increasing steadily, it is highly recommended that industry will start
sponsoring in-house ECBS training programs. Such programs can be based on the ten outlined courses. Training courses
will be tailored to the specific environment of an industrial training program.
6. Concluding Remarks
The outlined curriculum presents a program for an ECBS Master program. The program was prepared and reviewed by
leading academicians in the field. The program was discussed in detail by the IEEE CS ECBS TC Working Group (WG)
on Education and Training during its annual conferences and workshops in Germany and California in March of 1996 and
1997. The WG believes that an ECBS Master program is essential to support the needs of industry. The Technical
University of Brno, Czech Republic, has applied these guidelines to establish their ECBS master level program.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
15
7. Working Group Members
The following members of the ECBS TC WG on Education and Training contributed actively in the development of the
program outlined in this paper: Ashok Agrawala - University of Maryland, USA, Andrei Borshchev - St. Petersburg Tech.
University, Russia, Raymond Buhr - Carleton University, Canada, Darren Dalcher - South Bank University, UK, Jonah
Lavi - CBSE Associate, Israel, Mike Mannion - Napier University, Scotland, Bonnie Melhart -Texas Christian University,
USA, Ian Pyle -University of Wales, UK, Hans Rischel - Tech. University of Denmark, Denmark, Wilhelm Rossak - New
Jersey Institute of Technology, USA, Gerhard Schweizer - Universitat Karlsruhe, Germany , Miroslav Svéde - Technical
University of Brno, Czech Republic, Janos Sztipanovitz - Vanderbilt University, USA, Bernhard Thome - Siemens AG,
Germany.
8. Acknowledgments
The work was partially supported financially by the Jerusalem College of Technology .and by the University of Wales.
9. References
ALEX92 Alexander, P., Holtzman, J., "Working Group on ECBS Education Report", IEEE ECBS TF London
Workshop, December 1992.
BUHR92 Buhr, R.J.A., et al, "Towards a Curriculum in Computer-Based System Engineering", Proceedings of the
Maryland CBSE Task Force Workshop, University of Maryland, March 1992.
BUSC96 Buschmann et al, "Pattern-Oriented Software Architecture -- a System of Patterns," Wiley, 1996
CARL94 Carleton University Graduate program, Carleton University, 1125 By Drive, Ottawa, Canada, 1994.
CHES65 Chestnut, H., "Systems Engineering Tools", Wiley 1965.
CHES67 Chestnut, H., "Systems Engineering Methods", Wiley 1967.
FORD89 Ford, G., Gibbs, N.E., "A Master of Software Engineering Curriculum - Recommendations from the
Software Engineering Institute", Computer, September 1989, pp. 59 - 71.
FRIE95 Friedman, Y., Lavi, J.Z., Lehman, M.M. " An ECBS MS Program- Proposed Outline and
Considerations", Jerusalem College of Technology, September 1995.
GAMM95 Gamma et al, "Design Patterns -- Elements of Reusable Object-Oriented Software," Addison-Wesley,
1995.
GARL92 Garlan, D., at al, "Experience With a Course on Architectures for Software Systems, Part I; Course
Description", Report # CMU-CS-92-176, School of Computer Science, Carnegie Mellon University,
Pittsburgh, PA, August , 1992.
GARL93 Garlan, D., et al, "The CMU Master of Software Engineering Core Curriculum", Report # CMU-CS-93-
180, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, August 16, 1993.
GARL94 Garlan, D., at al, "Experience With a Course on Architectures for Software Systems, Part II; Educational
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
16
Materials", Report # CMU-CS-94-178, School of Computer Science, Carnegie Mellon University,
Pittsburgh, PA, August , 1994.
HOPC87 Hopcroft, J.E., "Computer Science: The emergence of a discipline", Comm. ACM, Vol. 30, No. 3, Mar.
1987. pp. 198 - 202. Transactions of the 1986 ACM Turing Award Lecture.
IEEE1220 "IEEE Standard P1220 - Standard for Systems Engineering", Preliminary, 1993, IEEE Inc., NY, NY.
LAVI91 Lavi, J.Z., et al, "Computer-Based Systems Engineering Workshop", Proceedings of SEI 1991
Conference on Software Engineering Education, Lecture Notes in Computer Science, Number 536,
Springer, 1991.
LAVI94 Lavi, J. Z., " Engineering of Computer-Based Systems - Some Fundamental Issues ", in Proceedings of
the IEEE Computer Society ECBS Task Force Workshop, Stockholm, Computer Society Press, May
1994.
LAVI96 Lavi, J.Z., "Engineering of Computer-Based Systems - A Proposed Master Curriculum", in Proceedings
of the IEEE Computer Society ECBS 96 - International Symposium and Workshop, Friedrichshafen,
Germany, Computer Society Press, March 1996, pp. 404 - 411.
LAVI97 Lavi, J.Z., Melhart, B., Pyle, I., “Engineering of Computer-Based Systems - A Proposed Curriculum for
a Degree Program at Master Level”, in Proceedings of the IEEE Computer Society ECBS 97 -
International Symposium and Workshop, Monterey, California, Computer Society Press, March 1997.
LEHM85 Lehman, M. M., Belady, L. A., "Program Evolution - Processes of Software Change", Academic Press,
London, 1985.
LEHM91 Lehman M M, Software Engineering, the Software Process and Their Support, IEE Softw. Eng. J. Spec.
Iss. on Software Environments and Factories, Sept. 1991, v. 6, n. 5, pp. 243 - 258.
MARI79 Mariani, M.P. Palmer, D. F., "Distributed System Design", IEEE Computer Society Catalog No. EHO
151-1, 1979.
MARI83 Mariani, M.P. "A revised Baseline Design Approach for Distributed Processing Architectures", TRW
internal report, 1983.
MARI84 Marinai, M.P. Editor "Distributed Data Processing - Technology and Critical Issues", North Holland ,
1984.
MIL498 "Military Standard - Software Development and Documentation", MIL- STD-498, 5 December 1994.
(Standard and Data Item Descriptions).
ROSS96 Rossak, W., et al, "A Generic Model for Software Architectures", to appear in Software January or
March 1996.
SECMM "A Systems Engineering Capability Maturity Model", Version 1.0, The Software Engineering Institute,
Carnegie Mellon University, Pittsburgh, Pa., 1994.
SEI93 "Master of Software Engineering at Carnegie Mellon University - 1993-1994 program description",
Carnegie Mellon University School of Computer Science, Pittsburgh, Pa.
SHAW96 Shaw, M., et al, "Software Architecture: Perspectives on an Emerging Discipline", Prentice Hall, 1996.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
17
SOF2000 "Software 2000 - a View of Future Workshop", Sponsored by ESPRIT and ICL, ICL Executive Training
Center, UK, April 1994.
SOFT95 Boasson, M., Editor, "Software Architecture" Special issue of IEEE Computer Society Software Journal,
November 1995, pp. 13 - 70.
TOMA95 Tomayko, J.E., " Carnegie Mellon's Software development Studio: A Five Year Retrospective", School of
Computing Science, Carnegie Mellon University, September 1995.
TOME93 Thome, B., "Systems Engineering, Principles and Practice of CBSE", Wiley, 1993.
UMIST95 “Manchester University Institute of Technology , BEng and MEng Courses in Computer Systems
Engineering, Course Curricula”, Department of Computation and Electrical Engineering and
Electronics, UMIST, P.O. Box 88, Manchester M60 1QD, United Kingdom, November 1995.
WEIT80 Weitzman, C., "Distributed Micro/Minicomputer Systems - Structure, Implementation, and Application",
Prentice Hall, 1980.
WHIT93 White, S., et al, "Systems Engineering of Computer-Based Systems", IEEE Computer, Nov. 1993, pp. 54-
65.
WHIT95 White, S., "Engineering of Computer based Systems" in McGraw Hill Yearbook on Science and
Technology, to appear 1995.
A Proposed Curriculum for a Degree Program at Master Level - Updated Version following the ECBS97 Workshop - July 1997
IEEE Computer Society - ECBC TC Working Group on Education and Training
18