Engineering of Computer-Based Systems

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

Engineering of Computer-Based Systems -

A Proposed Curriculum for a Degree Program at Master Level

Jonah Z. Lavi Bonnie E. Melhart Ian Pyle Miroslav Sveda


CBSE Associates, Israel Texas Christian Univ., USA Univ. of Wales, UK Tech. Univ. Brno, Czech.
[email protected] [email protected] [email protected] [email protected]

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. The proposed program

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.

2.2. Potential employers


Graduates of this program, having capabilities and skills necessary in the engineering of computer-based systems, will
be in increasing demand and are expected to find their place in an ever growing range of industrial, commercial and
governmental organizations. Organizations as diverse as telecommunication companies, automated manufacturing
industries, process control industries, transportation and entertainment industries, medical instruments manufacturers,

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.

2.3. Job descriptions


Tasks to be undertaken by CBS engineers in their subsequent employment will vary widely, covering the development
and management activities outlined below.
• Identify, analyze and bound the problem to be addressed by a CBS in the domain of the system of which it is a part.
• Develop alternative solutions to the problem and evaluate them.
• Develop conceptual models of CBSs.
• Elicit and formulate system requirements, analyze, reconcile, allocate and manage them and prepare the system
specification.
• Design, assess and select feasible CBSs and their architectures.
• Derive the requirements for the CBS hardware, software, communication and transducers.
• Analyze the CBSs, their behavior and performance, and prepare their specifications.
• Design the CBS subsystems (HW, SW, Communications) and their Human-Machine Interfaces (HMI).
• Develop integration environments, validation and test plans for CBSs, their hardware, software and communications
subsystems.
• Define the processes and technologies required for CBS development and implementation.
• Develop CBS project plans and manage the projects including their risks.
• Collaborate with engineers of other disciplines in the development of the system of which the CBS is a part, i.e. in
which it is embedded.
• Maintain and evolve installed CBSs including their legacy components.

2.4. Entrants to the MS program


Applicants to the MS program should have a first degree in an engineering discipline, physics or computer science.
They should have completed the following prerequisite courses: a full calculus sequence, discrete mathematics, probability
and statistics, physics, digital electronics, computer architectures, data structures, operating systems, and have a working
knowledge of programming.
They should have the potential to realize a system or Gestalt approach to system definition and implementation, the
ability to conceive the whole in its own right rather than just as the sum of its parts. The required attributes referred to
above include the ability to conceptualize, to "perceive the forest as well as the trees", to abstract from the detail and
comprehend the essence of a problem. Psychologists have developed tests for this trait. On the basis of the one of the
author's experience (Lavi), engineers who successfully passed such a test performed well as CBS engineers. Others who did
not pass such tests did not perform effectively.
It is preferable that the applicants have at least two years industrial experience in the development of computer-related
systems. Furthermore, applicants will be expected to have an adequate knowledge and practical experience in disciplined

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. The ECBS Master curriculum

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.

3.2. Program structure


Ten courses, five first tier basic courses and five core courses, and a number of elective courses and project work have
been identified to meet the educational objectives of the program. Each of the courses will require the solution of class
exercises and a mini-project relevant to the specific subject area.
The first tier consists of basic units covering constituent technologies necessary in the development of a CBS.
Participants in the program could have previous knowledge in these subjects, as they are being taught in various
engineering undergraduate programs. Participants in the Master program should demonstrate proficiency in these subjects
prior to their admission to the second tier of core courses.
The first tier (basic) courses are:

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.

3.3. Basic course descriptions

3.3.1. Hardware Architectures and Components.


This course deals with the distributed architectures of CBS, considering computing resources, hardware, firmware,
fault tolerance of loosely and tightly coupled structures, and the selection of the hardware and firmware components.
After completing the course, students will:
• Describe typical distributed computer-based hardware architectures.
• Describe current hardware components of CBSs.
• 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.

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.

3.3.2. Data Modeling and Database Design


This course deals with information modeling, and with the analysis, and design of databases. After completing the
course, students will:
• Develop a comprehensive conceptual information model.
• Be aware of the range of distributed database architectures.
• Map the information model to the database architecture.
• Understand a physical model of the database.
• Understand how the design model is mapped onto the physical model.
• Understand the issues of security, performance and allocation.
• Apply databases in a CBS context.

Topics to be covered in the course will include:


• Entity relationship modeling.
• Relational modeling (relational, algebra and the network model).
• Object-oriented modeling.
• Distributed Databases.
• Issues of file management related to database management.
• Performance modeling for databases.
• Query languages.
• Advanced topics, e.g. active databases.

3.3.3. Computer Communications and Interfacing


This course deals with the design of the computer communications in loosely and tightly coupled computer systems and
with methods of interfacing physical devices within the CBS.
After completing the course, students will :
• Understand the standardized network architectures and communications services and protocols.
• Specify computer communication links and networks.
• Specify hardware and software techniques and protocols for the interfacing of physical devices.
• Analyze the performance and tradeoffs of the communication systems and transducers.

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.

Topics to be covered in the course will include:


• The layered ISO and ODP (open distributed processing) models.
• Computer communications protocols and their analysis.
• Real time protocols.
• Design of the computer communications in loosely and tightly coupled systems for a particular CBS application.
• Methods of interfacing physical devices within CBS.
• Interface performance analysis.
• Interfacing with human operators (HCI).

3.3.4. Concurrent Systems


This course deals with the temporal relationships between executable units, and their implications.
After completing the course, students will:
• Be aware of the limitations of sequential execution.
• Understand communicating sequential processes (multi-programming).
• Be able to specify relationships between processes executing concurrently (parallel processing, including programmed
drivers and corresponding devices).

Topics to be covered in the course will include:


• Synchronization, mutual exclusion, critical sections and rendezvous.
• Organization of data for non-sequential programming.
• Implications for program correctness and debugging.

3.3.5. Software architectures and components


As the software of CBS grows in size, diversity, and complexity, its design problems extend beyond algorithms and
data structures to issues of structure and design. This area receives little or no attention in existing computer curricula
[GARL92, GARL94, ROSS96, SHAW96, SOFT95, GAMM95, BUSC96].
After completing the course, students will:
• Identify constituent elements of software architectures.
• Describe architectures of existing software systems.
• Describe a software architecture using current notations.
• Be aware of formal notations for precise definition of CBS properties and rigorous methods for working with them.
• Generate software architectural alternatives for a particular CBS family of applications.
• Analyze software architectures and evaluate them.
• Apply a software architecture in a CBS context.

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.

Topics to be covered in the course will include:


• Architecture description languages.
• Architecture reference models.
• Architectures of software systems.
• Modular decomposition issues.
• Data flow architectures.
• Communicating process architectures.
• Models of event systems.
• Blackboard systems.
• Client server architectures.
• Relevant standards (CORBA, OLE....).
• Development tools.
Note: the distinction between applications software and communications software is not sharp, and more and more
software combines both facets.

3.4. Core course descriptions


3.4.1. Systems Engineering Methods
This course deals with fundamental methods and techniques applicable in analysis and design of CBSs. The
applicability of these principles should be demonstrated throughout the course using one or two case studies.
After completing the course the student will:
• Be aware of the need to establish the value and need for the system.
• Be aware of the role of formality in ECBS and its limitations.
• Be aware of the kinds of behavior of a feedback-controlled plant.
• 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 CBSs and the process of engineering a CBS.
• Be able to argue logically about models and their referents.
• Be able to recognize flaws in a spurious argument concerning CBS models.

Topics to be covered in the course will include:


• Typical computer-based systems and their architectures.
• Factors for judging the value of a system.
• Systems theory as applied to ECBS model based development.
• Discrete event systems, including finite state machines.
• Feedback system theory and analysis.

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.

3.4.2. CBS modeling, requirements engineering and specification


This course deals with CBS modeling and requirements engineering as significant activities for the preparation of
system specifications.
After completing the course the student will:
• Develop a conceptual model of the structural and operational properties of a CBS, including tasks appropriate for the
human operator of a CBS.
• Develop operational scenarios with reference to the system's environment.
• Elicit and specify functional and non-functional requirements and quantify them.
• Understand the allocation of requirements to components of the conceptual model.
• Understand the tracking and requirements management needed during the system's life.
• Prepare the necessary specifications and requirements documentation.
• Understand the development rationale of the system in terms of a documented model.
• Identify those aspects of the requirements which most strongly determine the architecture and design of a CBS.
• Be aware of the significance of change and evolution in requirements.

Topics to be covered in the course will include:


• Problem and problem domain identification and the role of domain specific knowledge.
• Conceptual modeling of new and legacy systems including their temporal characteristics and other non- functional
characteristics.
• Extended object-oriented analysis
• Elicitation, analysis, formulation and allocation of requirements.
• System and requirements specification standards.
• Requirements management.
It is suggested that students be introduced to one consistent method covering all the basic concepts. Following the
comprehension of one method the students will be given a comparative review of other methods. The methods to be
introduced should be based on a model having precise semantics, capable of producing executable specifications, e.g.
statecharts, Petri nets, and queuing networks (for performance). This permits simulation of the system's dynamic behavior
and the testing of the static and dynamic aspects of the system.

3.4.3. CBS design


This course deals with the architectural design of a CBS for a specific family of applications. It considers the
requirements, possible CBS hardware, software, communication and HMI architectures, and allocation of the requirements
to the system and subsystem components. It must also address the global issues of the tradeoffs, system performance and
economic considerations [MARI79, MARI83, MARI84]. Methods to be introduced should relate also to object-oriented
design, architecture adaptation and refinement, and pattern reuse.

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

Topics to be covered in the course will include:


• Systematic design of a CBS for a specific family of applications meeting the system requirements.
• Tradeoffs between possible CBS hardware, software, communication and HMI architectures.
• Allocation of the requirements to the system and subsystem components.
• System performance and economic considerations.
• Implementability and testability of the design (instrumentation).
• Available components and their properties (reuse and COTS).
• Exposure to Computer Aided Systems and Software Environment tools.

3.4.4. CBS integration and test


This course presents the theory and practice of integration, validation and testing of computer-based systems and their
components: hardware, software, communication and human machine interface subsystems.
After completing the course, students will:
• Analyze a CBS design to identify potential weaknesses (technical risks).
• Plan system integration, test and validation.
• Define the integration support facilities.
• Prepare necessary test documentation.
• Conduct system and subsystem inspections.
• Execute validation tests of the system and its subsystems (particularly with components combined from different
technologies).
• Analyze the test and validation results.

Topics to be covered in the course will include:


• Testing strategy.
• Theory and practice of integration.
• Validation and testing of computer-based systems.

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.

3.4.5. Computer-Based System - Project Management


This course deals with the management aspects of the development of CBSs and their software. It provides advanced
material on the CBS process, CBS project planning, monitoring and controlling mechanisms and techniques for leadership
and team building.
After completing the course, students will:
• Develop CBS project management plans including risk analysis and migration 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.
• Track the schedule and budget to both quality and productivity.
• Understand the relationships among quality assurance, configuration management, and project documentation.
• Understand system and software process assessment and improvement techniques.
• Describe relevant statutes (Data Protection, Safety, Copyright, etc.).
• Be aware of inter-group coordination and management.
• Be aware of techniques for leadership and team building.

Topics to be covered in the course will include:


• The ECBS process.
• Technical management of CBS projects.
• CBS project planning, monitoring and controlling mechanisms.
• Concurrent engineering issues considering the system, its integration environment and its instrumentation.
• Quality assurance and assessment.
• Risk management.
• Inter-group coordination and management.
• Conflict resolution techniques.
• Laws and the current standards in CBS development. e.g.
– IEEE 1220 - Standard for systems Engineering [IEEE1220]

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]

3.5. CBS Design Project.


Each group of students must undertake a project to design and implement a CBS incorporating several constituent
technologies. On completion of the project the students shall:
1. Demonstrate that the CBS satisfies the specified requirements.
2. Justify the design decisions by documentation and evidence.
A typical example of such a course is Carnegie Mellon's Software Development Studio [TOMA95]. The five core
courses are prerequisites to the project course. It may be desirable to run the project under supervision of the academic
institution but in cooperation with an industrial partner. Groups of 3 - 4 students are recommended.

3.6. Suggested Course Schedule


The ECBS Master program can be taught stand-alone as a full-time program or as a part-time program. Modules of the
program may be taught separately, or they might be incorporated in the final year of a 5-year Master of Engineering degree.
If taught as a full-time program, it is recommended that students complete the prerequisites and the first tier courses
before starting the core program, which should be scheduled for three semesters. Each of the core courses should be 3
credit hours2. Thus the total credit hours of the core courses should be 15. Elective courses should amount to another 15
credit hours and the project should be six credit hours. Thus the total number of credit hours for the Master program will be
thirty-six.
It is suggested that the five core courses will be taught during the first two semesters and that most of the elective
courses will be completed before starting the project. However some could be left as part of tier 3, for study in parallel with
the project.

4. ECBS Experience and Professional Accreditation

4.1. ECBS Experience


It is recognized that education alone does not make an engineer; it can only provide the necessary intellectual
foundation, sensitivity and insights. The responsible exercise of engineering judgment requires significant additional
qualities which cannot be taught formally but can be learned by doing engineering tasks and observing how others do them.
While a taught course can identify the nature of design tradeoffs and their relative merits, only experience can give the
proper feeling for the various parameters, and thus the ability to select an appropriate balance for a particular case. We
therefore expect students graduating from this program to spend a period of time learning by experience before they would
be fully qualified as CBS engineers, and even then to progress with experience in their ability to make judgments with

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.

4.2. Professional Accreditation

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.

5. ECBS Bachelor and training programs

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

You might also like