Engineering of Computer-Based Systems-A Proposed Curriculum for ...

5 downloads 131205 Views 42KB Size Report
A Proposed Curriculum for a Degree Program at Master Level - Proceedings of the ECBS98 Conference and Workshop ... melhart@buck.cs.tcu.edu. Ian Pyle. University .... three year plus one graduate year as common in the UK) the graduate ...
Engineering of Computer-Based Systems A Proposed Curriculum for a Degree Program at Bachelor Level Jonah Z. Lavi

Mike Mannion

Bonnie Melhart

CBSE Associates, Israel

Napier University, Scotland

Texas Christian University, USA

[email protected]

[email protected]

[email protected]

Ian Pyle

Miroslav Sve'da

University of Wales, UK

Technical University of Brno, Czech Republic

[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 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 Bachelor program. The paper describes in detail the courses specific to the program, while other basic and conventional courses are listed but not described in detail. The paper also describes some of the problems encountered in the development of the courses. The proposed ECBS Bachelor curriculum is being developed by the Education and Training Working Group of the IEEE Computer Society ECBS Technical Committee. The current paper is prepared as working report to be presented at the ECBS98 conference and as a basis for the following discussions of the Working Group during the ECBS98 conference and workshop in Jerusalem. An updated version of the curriculum will be published following ECBS98 conference.

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, electronic banking systems; 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 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

A Proposed Curriculum for a Degree Program at Master Level - Proceedings of the ECBS98 Conference and Workshop IEEE Computer Society - March 1998 1

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 in various universities. Few will have a formal background as more ECBS programs are established. Typical examples are the existing and evolving programs in computer systems engineering at UMIST - the University of Manchester Institute of Technology and other schools in the UK, the program at the School of Electrical Engineering University of Technology in Sydney Australia, the programs at Carleton University, Canada, the Technical University at Brno, the Czech Republic and the program at the Jerusalem College of Technology. The current situation, where ECBS is taught as a discipline only in few schools, is an unsatisfactory situation. The increasing number of CBSs developed by the industry requires the early establishment of ECBS undergraduate and graduate education and industrial training programs. Moreover, introductory courses on ECBS should be included in existing undergraduate programs in various engineering disciplines [LAVI98], and computer science. 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. The current paper presents a proposed ECBS Bachelor program. It is being developed by the Working Group on Education and Training of the IEEE Computer Society ECBS Technical Committee. It is based on previous reports and papers [ALEX92, BUHR92, PARN90], on the ECBS Master program developed by the Working Group at its meetings during the ECBS96 and ECBS97 Conferences in Friedrichshafen, Germany and Monterey, California [LAVI97]. This paper will serve as white paper for the discussions of the Working Group at its meeting during ECBS98 Conference in Jerusalem. Following the meeting, an updated version of the Bachelors program will be published.

2. The proposed program 2.1. Objective The objective of the proposed ECBS Bachelor 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 graduates are expected to be able to define, develop, implement, and maintain an evolving computer-based system, using available theoretical and practical methods, techniques, and tools, adhering to present standards. The program will focus on developing the students' capabilities to function as integrators of concepts, methods, and technologies, taking a systems approach. The program does not compete with more specialized, detailed curricula in each of the sub-domains encompassed within ECBS, such as software engineering, electrical engineering, or communications. Graduates of the proposed program will rely on more specialized experts to treat the sub-domains in detail.

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, 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 - Proceedings of the ECBS98 Conference and Workshop IEEE Computer Society - March 1998 2

2.3. Job descriptions Tasks to be undertaken by ECBS engineers in their subsequent employment will vary widely, covering the development and management activities outlined below. Their complexity and size will increase with time as the graduate of the program gains experience in the industry. The examples and scope of problems and projects handled during the undergraduate program have naturally to match the scope and complexities which can be handled effectively in an undergraduate program. Completing a four years undergraduate program (or three year plus one graduate year as common in the UK) the graduate will be able to form the following tasks for small scale CBS: • Identify potential applications of CBS and describe them. • Identify, analyze and bound the problem to be addressed by a CBS in the application area of the system of which it is a part. • Develop alternate CBS designs solving the identified problem and evaluate them. • Develop conceptual models of CBS. • Elicit and formulate system requirements, analyze, reconcile, allocate and manage them and prepare the system specification. • Design, assess and select feasible CBS and their architectures for new and legacy systems. • Derive the requirements for the CBS hardware, software, communication and other subsystems. • Analyze the design, behavior and performance of CBS. • Design the CBS subsystems (HW, SW, Communications) and their Human-Machine Interfaces (HMI). • Be aware of integration environments needed in the development of CBS. • Prepare validation and test plans for CBS, their hardware, software and communications subsystems. • Describe possible processes and technologies required for CBS development and implementation. • Develop CBS project plans and describe their risks. • Understand the maintenance problems of CBS. • Collaborate with engineers of other disciplines in the development of the project of which the CBS is a part of.

3. The ECBS Bachelor curriculum 3.1. Introduction Engineers completing the program have to have substantial knowledge in courses mandatory in most electrical engineering programs, such as mathematics,

sciences and engineering topics. Further they have to study basic topics in computing followed by topics in the engineering of CBS. These topics should be augmented by basic management topics and project work. In the current paper we outline the list of topics which should be studied by the students during the course of the four year engineering program. We assorted the topics into eleven basic groups. We list (and don’t describe) those topics which are common in various engineering programs and schools and specify in detail only those courses which we feel are unique or new in the ECBS program. As the current paper is a working paper to be discussed in the Working Group on Education and Training of the ECBS IEEE CS ECBS TC, during the ECBS98 Conference and Workshop in Jerusalem, we feel it is to early to specify the breakdown of the suggested courses into semesters and years. Such a division could be suggested following the approval of the basic structure and the content of the curriculum by the WG. The program as outlined currently can be used, however also now, as a basis for the development of programs in engineering schools and universities willing now to initiate and teach this newly developing and exciting discipline. In the development of this program we relied on the previous work of the WG in the development of the ECBS Master program [LAVI97], on the paper by D. Parnas on the education of computing professionals [PARN90], on the program currently provided by UMIST - University of Manchester Institute of Technology in the UK [UMIST95], and the newly developing program at JCT - Jerusalem College of Technology. 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 We divided the topics to be taken during the ECBS undergraduate program into the following eleven groups: • Mathematics • Sciences • Engineering • Computing • Networking • Software engineering • Computer-Based Systems engineering

A Proposed Curriculum for a Degree Program at Master Level - Proceedings of the ECBS98 Conference and Workshop IEEE Computer Society - March 1998 3

• • • •

Production and design Engineering management Electives Applications and Projects

The following topics should be covered in the suggested groups: Mathematics: • Calculus • Discrete mathematics • Logic • Linear algebra • Graph theory • Differential equations • Probability and applied statistics • Numerical analysis Sciences: Two topics of the following group: • Physics • Chemistry • Biology •

Engineering Topics: • Mechanics • Electrical engineering introduction • Electronic circuits • Digital systems principles/logic design • Fundamentals of control and instrumentation • Information theory • Signal processing • Simulations; discrete and continuous • Engineering measurements and sensors (their usage in systems) Computing • Systematic high level language programming • Design and analysis of algorithms • Data structures • Computer hardware architectures and components • Operating systems • Parallel and distributed systems • Databases • Embedded systems • Real time systems Networking • Digital communications systems • Computer Networks Software Engineering: • Software architectures and components • Software methodologies, development methods • Software implementation techniques and languages (including CASE tools)



Software testing



Computer Systems Engineering: • Introduction to computer systems engineering • Systems engineering methods • CBS modeling, requirements engineering and specification • CBS architectures and CBS components • CBS design • CBS Testing and integration • ECBS Applications Production and Design • Communications skills • Team work • Documentation • Quality assurance • Product design Engineering Management • CBS Project management • Engineering management Electives • Advanced databases • Compiling techniques • Computer graphics • Formal methods • Highly parallel systems • Image processing • Local area networks technologies • Man machine interfacing • Metrics/measurement • Neural and fuzzy computations • Object-oriented techniques • Reliability • Robotics and automation • Rule based systems • Safety critical systems • VLSI design • Wide area network technologies Applications and Projects

3.3. Description of available courses Description of the required courses, common in most electrical engineering and computing programs, will make the paper to extensive and won’t let the readers concentrate on the courses which are unique to the ECBS BS program. We assume that most universities teach those courses and have their typical specifications. Brief description of some of those courses are provided by Parnas [PARN90]. As a course on software architectures and components is not available currently in some of the universities. We refer the readers to recent papers and books covering this evolving subject in software engineering [GARL92,

A Proposed Curriculum for a Degree Program at Master Level - Proceedings of the ECBS98 Conference and Workshop IEEE Computer Society - March 1998 4

GARL94, ROSS96, BUSC96].

SHAW96,

SOFT95,

GAMM95,

3.4. Description of ECBS courses •

The following courses are the main courses which are unique to ECBS. Their study in conjunction with the project work will prepare the graduates of this program to act as CBS Engineers.

• • • •

Topics to be covered in the course will include: Factors for judging the value of a system. Systems theory as applied to CBS model based development. Discrete event systems, including finite state machines. Functional transforms. Predicate logic. Proofs and proof obligations.

3.4.1. Introduction to ECBS



This course will introduce the student to available, CBS 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 the course the student will: • 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. • 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.

3.4.3. CBS modeling, requirements engineering and specification

• • • • •

Topics to be covered in the course will include: Introduction to ECBS Typical Computer-Based Systems Significant features and limitations of CBS solutions and their evaluation System performance and economic considerations Maintainability issues of CBS

3.4.2. CBS 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 [CHES65, CHES67, THOM93, OLIV97]. • • • • • •

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

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 nonfunctional 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



A Proposed Curriculum for a Degree Program at Master Level - Proceedings of the ECBS98 Conference and Workshop IEEE Computer Society - March 1998 5

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.4. CBS 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: • Understand typical distributed computer-based hardware architectures. • Understand current hardware components of CBSs. • Suggest 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. • • • • •

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.4.5. 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 reuse. 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. Be aware of 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.6. 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). • Be aware of system integration, test and validation issues. • Be familiar with the integration support facilities. • Prepare necessary test documentation. • Be familiar with system and subsystem inspections. • Be familiar with validation tests of the system and its subsystems (particularly with components combined from different technologies). • Be aware of methods for the analysis of 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. • 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 - Proceedings of the ECBS98 Conference and Workshop IEEE Computer Society - March 1998 6

3.4.7.CBS - project management

4. References

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.

Following is an initial list of reference material which can be used in the development of the courses.

• • • • • • • • •

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 P1220 - Standard for systems Engineering [IEEE1220] • MIL-STD-498 (or its successor) - Software Development and Documentation • Systems Engineering Capability Maturity Model [SECMM]

ALEX92

BUHR92

BUSC96

CHES65 CHES67 GAMM95

GARL92

GARL94

HOPC87

IEEE1220

3.4.8. Projects and laboratories

LAVI91

Two projects should be done one in the third year and one in the fourth year. The projects should cover different CBS application areas, e.g. Manufacturing, Aeronautical, Control. Lab work and project work should be done throughout the program. In early years, in classes, then individually, then in groups preferably with links to an industrial setting.

LAVI97

Alexander, P., Holtzman, J., "Working Group on ECBS Education Report", IEEE ECBS TF London Workshop, December 1992 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. Buschmann et al, "Pattern-Oriented Software Architecture -- a System of Patterns," Wiley, 1996 Chestnut, H., "Systems Engineering Tools", Wiley 1965. Chestnut, H., "Systems Engineering Methods", Wiley 1967. Gamma et al, "Design Patterns -- Elements of Reusable Object-Oriented Software," Addison-Wesley, 1995. Garlan, D., at al, "Experience With a Course on Architectures for Software Systems, Part I; Course Description", Report # CMU-CS92-176, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, August , 1992. Garlan, D., at al, "Experience With a Course on Architectures for Software Systems, Part II; Educational Materials", Report # CMUCS-94-178, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, August , 1994. 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. "IEEE Standard P1220 - Standard for Systems Engineering", Preliminary, 1993, IEEE Inc., NY, NY. 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. 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

A Proposed Curriculum for a Degree Program at Master Level - Proceedings of the ECBS98 Conference and Workshop IEEE Computer Society - March 1998 7

LAVI98

LEHM85

LEHM91

MARI79

MARI83

MARI84

MIL498

OLIV97

PARN90

ROSS96

SECMM

SHAW96

SOF2000

the IEEE Computer Society ECBS 97 International Symposium and Workshop, Monterey, California, Computer Society Press, March 1997. (Updated version submitted to Computer for publication) Lavi, J.Z., et al, “Engineering of Computer Based-Systems Enhancement Courses Proposed Course Outlines”, in Proceedings of the IEEE Computer Society ECBS 98 International Symposium and Workshop, Jerusalem, Israel, Computer Society Press, March 1998. Lehman, M. M., Belady, L. A., "Program Evolution - Processes of Software Change", Academic Press, London, 1985. 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. Mariani, M.P. Palmer, D. F., "Distributed System Design", IEEE Computer Society Catalog No. EHO 151-1, 1979. Mariani, M.P. "A revised Baseline Design Approach for Distributed Processing Architectures", TRW internal report, 1983. Marinai, M.P. Editor "Distributed Data Processing - Technology and Critical Issues", North Holland , 1984. "Military Standard - Software Development and Documentation", MIL- STD-498, 5 December 1994. (Standard and Data Item Descriptions). Oliver, D., et al, “Engineering Complex Systems with Models and Objects”, McGrawHill, 1997. Parnas, D.L., “ Education for Computing Professionals”, Computer, January 90, pp. 17 - 22. Rossak, W., et al, "A Generic Model for Software Architectures", to appear in Software January or March 1996. "A Systems Engineering Capability Maturity Model", Version 1.0, The Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pa., 1994. Shaw, M., et al, "Software Architecture: Perspectives on an Emerging Discipline", Prentice Hall, 1996. "Software 2000 - a View of Future Workshop", Sponsored by ESPRIT and ICL, ICL Executive Training Center, UK, April 1994.

SOFT95

TOME93 UMIST95

WHIT93

WHIT95

Boasson, M., Editor, "Software Architecture" Special issue of IEEE Computer Society Software Journal, November 1995, pp. 13 70. Thome, B., "Systems Engineering, Principles and Practice of CBSE", Wiley, 1993. “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. White, S., et al, "Systems Engineering of Computer-Based Systems", IEEE Computer, Nov. 1993, pp. 54-65. 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 - Proceedings of the ECBS98 Conference and Workshop IEEE Computer Society - March 1998 8

Suggest Documents