University Progams in Engineering: a Survey

Li An

A Major Report

in

The Department

of

Computer Science

Presented in Partiai Fulfüment of the Requirements For the Degree of Master of Science at Concordia University Montreai, Quebec, Canada

September 200 1

@Li An, 200 1 National Library Withbque nationale du Canada uisiions and Acquisitions et "1-Bib iogaphic Senrices seMces bibliagraphiques 395 Wdüngm Street 385. me Wslhngcon WONKlAûN4 OitawaûN KlAûN4 CMPda Canede

The author has granted a non- L'auteur a accordé une licence non exciusive licence aliowing the exciusive permettant à la National LI- of Canada to Bibliothèque nationale du Canada de reproduce, loan, distri'bute or seiî reproduire, prêter, distribuer ou copies of this thesis in microform, vendre des copies de cette thèse sous paper or electronic formats. la forme de microfichelfilm, de reproduction sur papier ou sur fonnat électronique.

The author retains ownership of the L'antwr comme la propriété du copyright in this thesis. Neither the droit d'auteur qui protège cette thèse. thesis nor substantial extracts fiom it Ni Ia thèse ni des extraits substanîieis may be printed or othemise de celle-ci ne doivent êeimprimés reproduced without the author's ou au-ment reproduits sans son permission. autorisation. ABSTRACT

University Programs in Software En,oineering: a Survey

Software engineering as a field of study and practice is a relatively new

discipline. Some would argue that it is not even an engineering discipline; however, a more prevalent view is hat it is simply evolving and not yet

mature. Although there exist curriculum guides produced for various

computing curricula and some early work done to support software

engineering curriculum development, there is no existing document that

provides broad and comprehensive information and direction for the

development of programs in software en,@neering.

Seeing the gap between practice and acadernic study, some courses in

Software Engineering program from universities will be concentrated on and

some surnmaries will be conciuded for easy understanding. The main

purpose of this survey is to provide detaiied assistance to faculty in the

design and development of program in software en,@neering and other

related cumcula. The most important issue is after seeing this survey; it wiU

be quite clear how to compare the software enCoineering program in different

universities with respect to the prorm. ACKNOWLEDGEMENTS

1 would iike to thank sincerely my major professor, Dr. Grogono, for his amidance, support, encouragement and friendship throughout my post- graduate studies.

I would also iike to thank my other ,orduate committee member, Dr.

Fancon for his assistance in preparation of major report.

Most gracious thanks are given to my parents, rny parents in law, my brother Qi An, rny sisters in law, Yanjun Cang, Wei Weng and Jian Weng, my brothers in law, Liyan Wang and Rongqin; Hui, and aii my friends, [or their support and encouragement during the pst severd years.

Last but the most, 1 thank my dearest husband Jie Weng, without whom 1 may not have been able to reach this goal. 1 love you, darling! 3 . BACKGROUND ...... --...... ----.. 6 3.1 OmNE OFSO~ME ENGINEERING ...... l...... l...... --.. 6 3.1.1 Sobre Engineering vs . Traditional Engineering ...... 6 3.1.2 ~ofnc.areEngineering vs . Compter Science ...... *...... , ...... 7 3.1.3 The Pracrice of Sofivure Engineering ...... ~...... +...... 8 3.2 GENERALFWTURE OF AN UNDERGRWUAE PRO(~RA~M...... 9 3.3 RELATED WORK...... 10 3.R I PeferJ .DennU~g's Vierv ...... 10 3.3.2 David L Parna's View ...... w...... 12 3.3.3 7imorhy C. Lethbridge f Survey ...... 14 4. SOFTWARE PROGRAM ..,...... ,..... C..C.C..C.CCC.CCCU...... - .II...... I.-. ..17

4.1 UNNERS~~~ES~NCLUDED ...... 17 4.2 UNNERS~~IESEXCLUDED ...... -18 3.3 DETA~LSFOR bCHUNIVERSCrY OFFERING SO~ARE~GMERNG PRCIGRAM ...... '0 43.1 Carnegie hlrllon Unii*ersiv...... -...... 70 JJ.2 Universiy of British tM~mbUr...... 21 4.3.3 Concudia Universiry ...... -...... -...... 22 4.3.4 University of Waterh...... 13 3.3.5 Seutrle Univeniq...... -24 4.3.6 University ofTe.ws ut Ausrin ...... ,...... 25 3.3.7 Universiy of Newcastle ...... 26 4.3.8 Universi@of Colorucio ...... -...... 27 43.9 George Mason Univer* -...... ,.-...... _...... -...... 28 4.3. IO University of ikstern Ontario...... 19 4.3.1 I University of Howon-Cleur Luke ...... -...... 30 4.3.12 CorrGETE...... 31 43.13 University of Calgaty...... 32 4.3.14 Carleton uni ver si^ (CeilÏjïcaie ofSufiare)...... -33 4.3-15 CarIeton Universi'; (&chelor of Engincerit@ ...... -....-...... -...... 33 4.3.16 Queen's ClnivErsit)...... 36 4.117 McCill Unive- ...... --...... 37 4-3-18 University of Vieruria- ...... -.-...... -.-..-...... -....-...... -..38

5.1 SUMMARY TABLES...... -...... -...... -...... -.-...-....-...... 40 5.1.1 ~VcimberofUt~iversities for Each Course ...... UI 5.12 Number of Sofnvure Engineering Courses@ Each Univenie ...... -...... 42 57 Dm...... -...... 43 5.2 1 Course Induded in Mosr Pmgmmr ...... 43 5.22 Courses Included in Fmcst Pmgromr ...... 44 5-23 Core CoursesforSo@arr Engineering ...... -.. W 5.3 Issm ...... -...... -...... 46 5.3.1 Sofnvare Engineering Lr Parr of Compurer Science ...... 47 5-3.2 Pmjecrs and Teamwork are Common ...... #8 5.3.3 Design Course Is Pupular But Nor Enaugh ...... 49 5.3.4 Mathematics LF Imponant ...... -...... 50 5.3.5 Types ofSojiware Engineering Ptvgram ...... 50 5.3.6 Managemenr is the Kt?,Pohr ...... 51 5.3.7 Quality Assurance Course Necessaiy ...... 52 6. CONCLUSION ...... -.-...... 54 Software engineering as a field of study and practice is a relatively new discipline.

Some would argue that it is not even an engineering discipline; however, a more prevalent view is that it is simply evolving and not yet mature. In November 1997, the

Working Group on Software Engineering Education and Training (WGSEET)met in

Pittsburgh and discussed the need for a set of guidelines to support the design and implementation of software engineering courses and curricula. Although there exist cumculum guides produced for various computing curricula and sorne early work done to support software engineering cumcuIurn development, there is no existing document that provides broad and cornprehensive information and direction for the development of pro_gnms in software engineering [il.

In ment years. software plays an increasingly important and central mle in al1 aspects of daily life. The numkr. size, complexity, and application domains of procerams king developed wilI _ww dramaticaily. Unfomnately, there are serious pmblems in the cos& tirneliness, and quality of developrnent of many software pmducts. The code in consumer products is doubling every two years; it is aimost the nom for software projects to overrun their planned cost and schedule. Many large-scale development projects are never completed, and many of those completed do not meet the user requirements and are of poor quality. These have placed an increasing demand for software deveIopers who rire equipped not only to deal with the scientific and technical aspects of computing, but for those who have professionai education and prepantion for the pmtice of software engineering. This includes practice related to use of software processes, measurement and analysis, front-end development methods, quality engineering, software maintenance, testing, and working as part of a tearn [II.

The core area of software engineering includes the following components that define the essence of software engineering [l]:

1. Software requirements

ïhis one inciudes knowIedge concerned wiih establishing a common understanding of the requiternents to be addressed by a software project, It includes rnethods, techniques, and associated with the collection, anaiysis, specification, and review of software requirements.

2.

This one includes knowledge about principles. methods and techniques for describing how a software product will be implemented such that its requirements are satisfied. It includes methods, techniques, and tools associated with the various types of design activities; architecturai design. component design, interface design, data design, and aigorithm design.

3. Software construction

This one includes issues related to codinz style and standards, intemal documentation. code prototyping, code rerrse, anaiysis, knowledge of fangrrage syntax, choice of

implementation tools, and implementation strategies in the use of various language paradigms-

4. Software project management

This one includes issues of the creation, development, and maintenance of software

projects. It dso includes project management, risk analysis, project planning, project adminisurition, and configuration management.

5. Software evoiution

This one includes the knowledge and techniques necessriry to understand, rnhünce,

and modify software ovcr rime. It also includes the issues of software maintenance,

extcnsibility, software adapmbility to different cnvironments, and software

teengineering.

Ail of the above wiIl be discussed and illustrated in this survey. in view of the gap

between practice and academic study. some courses in Software Engineering prognm

t'rom universities wilt lx cmphasized and some summaries will be concluded for msy

understanding. The main purpose of this survey is to provide detailed assistance to

faculty in the design and development of programs in Softwar~Engineering and other

relrited curricula The most important issue is that this survey. will gïve a clear

cornparison of the Software Engineering prorerams in different universiaes- 2. OBJECTIVES

The specific objectives of this survey are as the following:

List the related courses for software engineering program from different

universities.

Stritistics of the related courses offered of software engineering program in

different universities:

Frequency of the course most included in different universities;

Frequency of the course Ieast included in different universities;

Commonaiity of the project courses;

Importance of mathematicai courses;

importance of genenl engineering courses;

Percentage of pure computer science courses or.

Total number of courses for quaiity control;

Importance of management courses;

importance of team work for software engineering;

Cornparison between computer science prognm and software engineering

PWrn-

Discussion of the breadth or depth for software engineering progriun from

different universities.

List the omission of software engineering pro_ms in some significant

universities.

4 > Summarize the current state of software engineering program education and give

assistance to the developrnent of software engineering prognms. 3. BACKGROUND

3.1 Outline of Software Engineering

Since 1967, when a pup of people from different disciplines met to discuss

"Software Engineering'' at NATO confetence in Germany, computer scientists discussed software engineering as if it were a sub field of cornputer science. Within a computer science deparment, people specialize in automata theory, Ianguage design, operacing systems, theorem proving, software engineering, and many other areas [2].

3.1.1 Software Engineering vs. Traditional Engineering

An Engineering approach cm be adopted in the regdation of the Cornputer and

Saftware disciplines. LI planning for a comprehensive and credible professiond

regimc, we mut examine the sirnilxities and differences between Software and other traditional engineering disciplines, e.g. Mechanicai, Civil, Electricai, etc.

Like those in the traditionai branches of engineering Computer and Software

Engineers apply theory as well as procedurd knowledge in a disciplined manner CO

produce reiiable and usefd systerns to end custorners.

Unlike the traditional branches of engineering, there is currently littIe in the way

of formally defined, universdiy accepted standards for professional practice in

Computer and Software Engineering, and littie in the area of comrnercially accepted

product quaiicy strindmk. Due to the advent of increasingiy sophisticated technoloa and readily available tools, the state of the art is advancing quickly. Tools permit the production of software by even relatively inexperienced and unvained individuals.

Public and commercial expectations rise rapidly when technologicd advances are introduced, and incorponted into various systems, but econornic and technid risks rise as weIl. The application of sound engineering principles and discipline in the development of these systerns therefore becornes incteuingly important. Software and Computer Engineering disciplines also differ from the traditional engineering disciplines in the extent to which their end products are regulated. ~Manyother

Engineering disciplines have greater end-product regdatory requirements [3].

3.1.2 Software Engineering vs. Computer Science

Software Engineering requires certain theoretical underpinnings. As with traditionai

Engineering disciplines, Software Engineering and Computer Engineering ded with the application of science and theory in a ngorous disciplined mannrr, to rnsure that the .soals of the pmducing reliable and usefui systems are achieved.

Computer Science is vaiued for development of rheory and new fundamentat knowledge. A significant amount of that knowledge mut form part of the knowledge base of the Software / Computer Engineering- in addition to Cornputer Science theory, however. the Software and Computer Engineering knowledse base must incorporate mathematics. staustics. and theory hmoher domains such as Electrical Engineering.

As with dl branches of Engineering, Software / Computer Enginsering mut incorponte the application of science in soiving design pmblems, and in building red

7 3.1.3 The Practice of Software Engineering

An Engineer is not only one who produces the products associated with the various disciplines (Computer Systerns, Elecmcal Systerns. Automobiles. etc). Engineers are distinguished by the professionai pnctice, the mristery of elements of that professional practice, and the activities in which they are engage4 narnely those activities requiring the application of sound Engineering principles. such as:

Anaiysis of Requirements;

AIlocation of Requirements and Design at various levels;

Modeling and Andysis of Design;

Implementation and System Construction;

Testing. and System Anaiysis;

Performance and Behavior Anaiysis & Modeling;

Quality Assurance;

Figure I iilusuates the reiationship between the foundacion, the complete body of

knowledge and the acnial practice of Software Engineering These relanonships are

important because they must aii be monitored by the Computer and Software

Engineering Division, in order to fulfill the mandate of enhancing the qudifications of Endneers in the Cornputer and Software fiefris. A professional pmctice cannot exist without a body of knowledge. which in turn cannot exist without foundations [3].

Foundations/Academic Science Electronin Disciplines a n 11 Software Engineering Sofivare Engineering Body of Knowledge

O Methods, Techniques Professional Activities Software Engineering O Toois and Professional Developrnent & Professionai ilctice 4 Technicd Standards Training E~hics

Figure 1: Relation between disciplines

3.2 General Feature of an Undergraduate Program

In undergraduate prognms. engineers in al1 disciplines follow a largely common set of courses, in order to become well versed in fundamentais - tùndamentai underpinnings are required for cornputer and software engineering as well.

The Software Engineering pro_gnms were accredited in June 2001 which includes the following universities: Ottawa University, University of Western Ontario. and

MacPvIaster University. The Canadian Engineering Qualification Board (CEQB), which. with Canadian Engineering Accreditation Board (CEAB) sets the qualifications for entry into the profession of engineering in Canads has defined a

Syllabus for applicmts proceeding by direct examination. The Syllabus has three parts:

Softwm Engineering, Basic Studies and Complemenmy Studies, The Iast two are common to al1 areas of engineering.

Most university Computer Science departments now offer some courses in

Software Engineering and in a few cases these are organized as an "Option",

"Specialization" or the similar. Few Electrical EngineeringKornputer Engineering departments offer more than a few isolated courses on Software Engineering [4].

3.3 Related Work

3.3.1 Peter J. Denning's View

In '"Computer Science and Software Engineering: Filing for Divorce" [A, Denning's principal point in the paper is that software engineers and computer scientists should not "separate" or "divorce". They must communicate and work together to make progress and bridge a communication Sap in which computer scientists validate new design principal and software engineers vaiidate new programming theories. But the fields have not yet matured enough to permit them to follow separate paths successfuII y.

The difficulties have aiways existed for the uneasy tension between software engineers and computer xientists. For engineers, they believe that certification is necessary and valuable, while for scientists most of them do not think that the cenification is inevitable. iMany computer scientists think that the certification will lock in minimal standards in a changing field of rising standards. Sreing the rnaniage such as chemicaI engineering and chemisuy [n, a number of software engineers wish to separate from computer science and form their own department.

It is more important today than ever to krep the lines open of communication between software engineers and computer scientists. But these two fields are not matured enough to permit the two sides to follow separate paths successfully. Even in the traditional technologies such as CPU, memory, and etc seerns to double nearly 18 months while cost decline. Each doubling opens new fields that fonn at interdisciplinary boundaries and some examples mentioned by Denning are as the following [7]:

2 New computing paradigms with biology and physics including DNA, anaiog

silicon, nano-devices, orgmic devices, and quantum devices

;i Intemet computations mobilizing hundreds of thousands of cornputers

2 Neuroscience. cognitive science, psychology, and bnin models

3. Large scale computational models for cosmic structure, ocean movements.

dobal climate, long-range weather, materials properties, flying aircraft,

stnrctural andysis. and economics

S New theories of physical phenomena by "mining" panems from very large

(multiple) datasets

Denning also notes that software engineers and computer scientists need to communicate even when they have different views and they could work together from a common interest in innovation, pro-pss, and solution of major pmblems in which the practices of experimentation are crucial. FmaHy, even we know that in some disciplines, sepdon benveen tbe theory and engineering succeeded, we should dso note that it has succeeded because they have

matured to sorne "point" in which they communicate wetl enough among their

engineering, science, and applications branches. For computer science, it is not quite

possible yet since it would have caused the communication berween software

enginers and computer scientists IO stop. As Rofessor Dinning mentions,

"'communication, not divorce, is the answer".

3.3.2 David L. Parnas's View

In "Software Engineering, an Iinconsummated Marriagew 161, Parnas's principal point

is chat Software Engineering education differs significantly from that of Cornputer

Science and that, even as currently offered within Engineering facuities, the

curriculum is often lacking and misguided. He cornrnents upon the need For a strong

professional grounding to iead to a (sorely needed) strong professional practice. He

enumented some of the requirernents for Software Engineering education. and how

these differ from the Cornputer Science educational approach.

At the risk of oversimplifying Parnas's point, he supports the developtnent of

rigor within the SoAwxe Engineering profession, and proposed appropriate elernents

of Software Engrirering education to handIe various elernents of pmfessional pnctice

currenrty lacking in many "professionals7 [q.

In Parnas's priper 161, he @es some examples to illususite that many

prognmmen are not educated quite weIl for the job they do. For example, the year-2000 problem shows that most pro_gnmrners have never learned the basic principles of software design and verification. Lots of programmers ignore well accepted design principles.

Parnas mentions that communication between engineers and programmers who concentrated on software has not ben effective. Engineers see programming as a trivial task and many of thern refer to prognmming as just a skill denying that engineering principles must be applied. Many engineers do not appreciate the complexity of programrning and the need for a mathematics approach, whereas rnany computer scientists do not appreciate the need for engineering discipline in software development [6].

He discussed the successes of chemicai engineering which has been merged from chemisy with traditional engineering. Software engineering is usuaily treated as a branch of computer science and should wed a subset of computer science which is similar to regard chemicd engineering as a branch of chemistry. Software engineers are engineers while computer scientist are scientists.

Professor concludes that software engineering is quite different from computer science. Knowing how to program is not enough to be a good software engincet-

Software engineers should be professional for producing pmducts that are fit to u% which requires better understanding of the envitonment. Software engineers should be responsible for the usability, safety, and reliability of the products and they wiII be able to apply basic science and mathematics to assure the system will perfonn

properly to the customer [a. 3.3.3 Tiiothy C. Lethbridge's Survey in "The Relevance of Education to Software Practitioners: Data from the 1998

Survey" 181, Professor Lethbridge presents the complete results of a survey of sofhvare practitioners conducted during the summer and autumn of 1998. He wrote the survey to discover what knowledge is important to the participants, and to better understand their educational and training needs.

Lethbridge's survey shows that during the interaction with software practitioners and managers, it is clear that the knowledge they learned in the formai rducation did not match the knowledge they needed in the daily work.

In his survey, Lethbridge gets a lot of information from the software practitioners and mangers and shows us that in the daily work they spend a lot of time performing tasks related to software requirements analysis. designing pro-mming, and testing.

Much more time has ken used for them on-the-job training about software process issues in addition to the specific software architectures which they did not lem from the previous formal education. But the practitioners and managers did not make pat use of some materials they learned from universities like mathematics. This kind of imbdmce means that the cumcula of the university should be improved to serve the needs of snidents better.

As Lethbndge concludes, in North America. it is now a ame to study software practice and cumcula because a significmt msition is occurring as traditiond pmEorams in computer science and computer engineering are king joined by prograrns specializing in software engïneenns. It is important for software engineers,

14 designers and the people who accredit the program about what the profession needs.

Lethbridge summarized his results as follows [8]:

'r Practicing programmers recognize that software development is not just a matter

of pmgramming. When asked which topics were most important and which topics

they knew most about they gave prograrnming languages and data structures as

the most important topics.

i Behind prograrnming in the "amount-known" and "importmce" questions come a

cluster of topics that have to do with software design and a variety of topics that

have to do with other activities like requirements, user interface design and

testing as well as design and operating systems.

+ Matbematics, rspecidly caIcuIus, is rxtensively raught in computing progrrims

but relativety linle mathematics mrns out to be important for software engineers

in pnctice and it tends to be forgotten. It is needed be justified by communicating

with engineers and other scientists who indeed require it

'r Giving presentations, technical writing, as well as cthics and professiondism

were given prominent ranking and therefore educators should increase their

emphasis to these topics.

S Engineering educators should boost the computing content in engineering

cumcula while corponte trainers might rarger their en@neering new-hires for

additional computing training because there is considerable difference arnong

engineering students and computing students in temis of the amount of

computing knowkdge- > Both univecsities and corporate training departmerits could improve theu

offerings by adding more material for software design, mhitecture, user interface

and project management in addition to giving presentations to an audience and

technical writing. From Lethbridge's Survey, it is cleu that the courses in universities are related to the working experience but only to a certain extent [8]. A question could be asked: what kind of Software Engineering program do we have right now? It is tnie that there are some standards to follow for the program provider. But do they redly folfow it or not?

The following information provides sorne general ideas ahout the Software

Engineering program in different universities and in different option.

The information was obtained from the and was taken carefulty in order to ensure validity. Some modification has been done according to the relation of each course. For example, some courses have the same contents even thou& they have such different course names.

4.1 Universities Included

In this survey. about thirty universities have ken taken into account. These universities are mainly in United State or Canada Universities in other counuies were not examined but they could be concluded in a future survey.

The following table gives the list of the universities involved in this survey. Table 1 University Nmes for Software Engineering Prognm r I 1 I I University Names €or Software Engineering Survey

westeriiumyetsity York Unimsity Tomato University X~Y

) 18 1 University of Victoria 1

4.2 Universities Excluded

Some populx universities have been searched when the survey was done but they do not provide a Software Engineering program according to the data found from the internet

It should be noted that even some very famous universities do not have a

Software Engineering program. Instead they provide some proMginlih Cornputer

IS Engineering prognm or Electronic Engineering program.

In addition, some French universities have been included but, because of the

Ianguage, it is hard CO fmd and date the courses they offer to the English university courses.

On the other hand, some very smaIIer, and less known universities have Software

Engineering prognm in which there are a Lot of popular and usefui software engineering courses.

The following table lists universities that do not provide Software Engineering program but are ncvertheless considered in this survey. Table 2 University Names not hviding Software Engineering Program I I I University Names not Roviding Software Engineering Rognm I

for Each University offering Software Pro gram

The foHowing tables for each universities Iist the core courses for Software

Engineering pro_enrn. There are some other courses optionid for the pro_m chat may

not be included hm-

4.3.1 Carnegie Meiion University

The Master of Software Engineering cumcuIum is designed to prepare the students to

40 excel as a sofokrare engineer and as a projeci leader. At the hem of the program are

€ive core courses, which provide the foundation for the hands-on Studio experience.

in this progtam, 408 of it is canied out in the Software Development Studio. The

Studio provides students with a laboritory for direct application of concepts lemed in coursework. Tt has produced a variety of software products. There are 308 Core

Courses to be finished as listed in the following tabIe. There are also quite a lot of elective courses that wilf not be iisted bere.

Carnegie Mellon Universiîy :Core Courses podels of Software System 'Methods of Software Development panaging Software Development l~rchitsmr*ifor Software Systems 1

4.3.2 University of British Columbia

The UBC Certificate in Software Engineering is deiivered in a series of intensive, face-to-face courses on specific topics in software engineering. Courses employ a range of learning modes including lectures. seminm. demonstntions, participant exercises, assignments and group projeces.

The cuniculum consists of 102 hours of required courses, giving a solid foundation in the methods of software enginee~g,and 38 hours of electives, which dlows students to specialize in specific face& of software engineering. University British Columbia: Corn Courses

poftware Pmjec t Management

4.3.3 Concordia University

Software Engineering is concerned with theories, methods, and tools required creating reliable, efficient and econornicai software for the needs of the information society. Software engineers design software using the principles ad pnctices of engineering. They apply the theory and mathematics arising hm cornputer science and the cmerging areas of software development to the specification. design, implementation, and maintenance of large software projects. Concordia University: Core Courses

bannent ~ocessing Information Systems S-ty Introduction to Theoretical Cornpater Science ktrïcs and Mcaraumient in Software Development 1

pta Structures aad Mgonthms %'ides and User Interface Design ISoftware Project Management pgineering Emnomics and Management Riociples l~oftwareEngineering Design Roject

4.3.4 University of Waterloo

The Software Engineering program curriculum encompasses the technical and

professional background needed to engineer large complex software systems, The curriculum is project-intensive, where students leam by example and by pnctice. The

average Software Engineering student is expected to spend 50-60 hours per week on

readings, projects, &pupmeeting, and attending lectures. pncticum, and Iabs. University of Waterloo: Core Courses iaear AIgebra for Enmg 1

ïntrodoctioa to Methods of Software Engineering DiteMathematics (for Engineers) Developiag Programming Rinciples l~incip1esof ~ompumScience I

Pmgetial and Engineering Economics 1

fsoltwareRequirernents Spccifica~oaand Analysis 1

[~oftwareDesign and Architectures 1 Icom~uter~etworks and Secarity 1

[softwareT~O~ and QuaiityAssuraM:e

4.3.5 Seattle University

The Master of Software Engineering program at Seattle University is designed for

working professionaIs. The pro-enm builds on the computing experience of its

students by providing course work in a raqe of software engineering and cornputer

science topics, with an emphasis on teamwork and a disciplined approach to problem solving. It offers a balanced core currïcu1um of technical and managerial courses, and a variet. of elective streams to address areas of personal interest. The principles and techniques learned throughout the course-work are integrated into a year-long software project as the capstone experience.

Seattle University: Core Courses bata Stmcmres and Algorithms Mathematical Foundations stem Softftrare and Architechue bnical Commmiicaiion

Software QuaIÏty AsSmance Requirements Audysis Software Design

4.3.6 University of Texas at Austin

The prognm curriculum ofiers the required information and skills needed to rernain on the cornpetitive tdge of software engineering, Essentiai topics such as dornain specific software, data smccures, embedded systems, cornputer networks, data mining and project management are among the many courses offered in the prognm.

Stiidents enrolled in the Executive Software Engineering (ESE) Program take a total of eight courses during the two-year pro_mrn. Classes are held once a rnonth as a

Friday and Saturday combination. Students are required to take a total of 33 credit

hours and cornplete a Master's Report during the Iast semester enrolled. The following are the core courses as weU as the optiond courses, which are offered in the €SE

Pro_gnm. University of Texas at Austin: Core Courses

Inimduc tion CO SOMEngineering Experimental SoffwareEngïneerhg Domain: Specifi:~SOftwareArchi-&tares Einpkicai Smdies in Software Engheering pystem Engineering RDgram Management and Evahntion

4.3 -7 University of Newcastle

Software Engineering graduates from Newcastle are trained with dl aspects of

building large, complex software systems for applications in most areas of society

including industry, commerce, engineering. govemment and research.

Emphasis in the course is for a professionai software engineer to be able to

understand application areas and software requirements: understand and use

state-of-the-art software technology; architect, design and produce highquatity

software systems; and communicate ideas to customers and other software

engineers.

Management and ethics dso form an important part of the degree since project

management, team building, project tracking and cost estimation are important skitls

required for a successful software engineering career. University of Newcastle: Core Courses htrodnction to SoftwareEngiaeerhg 1 Matheda t f 1 ViteMathematics ~troduction Engineering Piactice

bntroduction to Software En&eering 2 hddEngineering t bftware ~nal~sisand Verification

lobject-Oriented Software Engineering btmdoction to Telecommanications

4.3 -8 University of Colorado

This ceniticate program provides speciaiized knowledge and experience in selected

areas of software development and maintenance. Emphasizing both technical and

managerial aspects of building large, cornplex software-intensive systems, the

propm bas two PurPoses: (1) it provides employees of local cornpanies with an oppormnity CO enhance their software engineering skills and theü chances for career

advancement. and (2) it provides students currently enrolled in the Masters of Science in Cornputer Science (MSCS) with more indepth knowledge in software engineering to enhance ernployabitity and career advancement. Students enrolled in the MSCS program must satisfy dl the requirernents for the MSCS degree and the above

Cenificate in Software Engineering. They receive their Masters depe and Software

Engineering Certificate sirnultaneously.

University of Colorado: Corn Courses

Engineering and Pmject Management SoftwareArcbitectpre Software Engineering Roject ~echnoIogyand Hmnan Values

4.3.9 George Mason University

The Gnduate Cenifime Prognm in Software Engineering provides knowledge, tools, and techniques to those who are working in, or plan to work in. the field of software engineering, but do not want to cornplete al1 of the requirernents for a Mastar's degree in Software Engineering. The Cenitkate in Software Engineering rnay be pursued concurrently with any of the graduate prograns in the School of Information

Technology and Engineering.

George Mason University: Core Courses Software Consanction Software Requirements and Prototyping 4.3.10 University of Western Ontario

This program is offered the Department of Electncal and Computer Engineering. The

Facutty of Engineering Science has received accreditation of the Software

Engineering program in June 2001. Software Engineering is the newest branch of

Engineering. The Software Engineering curriculum deds with the components of the software process and the technicd skills necessiuy to apply that process in a systematic, disciplined and quantifiable manner. Students also acquire the

management skills needed to Iead a ceam that can engineer software and meet appropriate quaiity standards within specified cost and time schedules. in addition to a

nurnber of specialized topics in software engineering, the program also indudes courses on fundamental topics in EIectrical and Computer Engineering, and Computer

Science. University of Western Onbrio: Core Courses

Software Engineering Design SoItware Engineering SoftHrare Engineering Design Taois Human-Cornputer Tnteraction ,operatiag srse= Cornputer Networks ~oundaiiomof Corn poter Science 1 Analysis of Algorithos Business ~tionfor Engineers

4.3. i 1 University of Houston-Clear Lake

Software engineering addresses critical issues acmss the life cycle of software intensive systems. The life cycle of such a systern begins with the proposal to deveiop an application requiring the use of computing resources and continues through its development, testing, operation and maintenance until its retirement.

The Software Engineering mast ter's pcognm, offered in the Schooi of Naturd and

Applied Sciences at UHCL, is designed to give students understanding of the latest technologies and tools developed to address these issues- The program provides a cateful balance between theory and pmctice.

The program in Software Engineering leads CO a Master of Science (MS) degree.

Studies address the foundacions, methodotogies and tools used in the development and evotution of software intensive systems. By providing a carehit baiance between theory and practice, the program prepares studenn for key mies in industry, govemment agencies and other agencies and other institutions where software is important and provides a bais for an academic cmer related to software engineering.

University of Houston-Clear Lake: Core Courses

Software Architecitue Software Engineering Process

4.3.12 ConGESE

According to ConGESE, Software engineering is a collection of pnnciples. models,

rnethods, and techniques for the development. maintenance, evolution, rind muse of

software that meets the functional, performance, and quaiity requirements in an economic and cornpetitive rnanner.

The collaborative prop in Software Engineering is offered as part of the

Consortium for Gmduate Education in Software Engineering (ConGESE).

ConGESE is a coopentive effort becween ten depments in seven Ontario

Universities (Carleton, Ottawa, Queen's. Toronto, Waterloo, Western. and York) and

31 several industry partners, The two collaborating departments at the University of

Toronto are Electrïcal and Computer Engineering (ECE) and Cornputer Science

(CSC). This part-tirne collaborative program is specially stmctured for software professionals currrntly working in the field. The courses are commoniy offered on-site with coopenting industrial sponsors and are designed to fit into the working schedule of professionals who rnight otherwise find it difficult to attend regular, on-campus courses.

ConGESE: Core Courses boftware~eauirements and SPecification 1 Isoftware ~rchitectmeand ~esign I

Isofmrare Project Management 1

4.3.1 3 University of Calgary

The MSc degree with a specialization in Software Engineering is offered jointly through the Deparunent of Computer Science and the Deparunent of Elecuical and

Cornputer Engineering, with funding provided by the Province of Alberta through the

Access Fund.

The Learning objectives of the Software Engineering specialization are to enable students to: become familiar with research and methodologies in indusuially relevant areas of software engineering; cany out an applied research project in software engineering. University of Calgary: Core Courses

nts En~~ug anaghgthe SoftwaileMècycIe Softwace Process Management Sofham QgaEEyManagernent Tm& in So€hme Engineering

4.3.14 Carleton University (Certificate of Software)

This program is designed prirnarily for Science and Engineering _duates (either recent graduates or graduates with professional experience) who intend to re-bain in the softwm fieid and obtain employment as a computer programmer.

Carleton University (Cermcate of SoFtware): Core Courses

Ptroduction to Systems ~ogaming 1 'Progratnming in ctt Software Engineering - patabase Management Systems

4.3.15 Carleton University (Bachelor of Engineering)

Software Engineering is the driving force behind the new technoiogÎes that are uansfoming the way we live and work: disrributed computing and the internet. multimedia applications. new telecommunication systems. etc. The phenorneral wwth in compüting and the reiated information technolog industry has resuIted in a b uemendous demand for qualified people who can deveIop diable, economical. highquaiity software systems. Carleton University has responded with the new B.Eng in Software Engineering offered through the Department of Systerns and Computer

Engineering.

Software Engineering is much more than cornputer prognmrning. Correcmess. security, reliability, tirneliness of responses, presentation in an understandable format, and meeting the me needs of the end user are al1 concerns of the software engineer.

Languages and design notations to capture the needs and the solutions are part of the subject. Rapid design with sufficient flexibility for reusability and for future changes are additional concerns, as due regard for safety, economy, and effkiency and speed of execution.

As offered in the Faculty of Engineering, the Software Engineering program dso provides a broad foundation in basic mathematics, physid science, the engineering sciences and technology, and communications. as well as fundamental computing theory and practice, processes, methods, and toots for developing software systems, and regdatory and social issues. Emphasis is placed on developing expertise in object-onented and real-time computer systems. A CO-opoption gives students access to rd-world experience at one of Carleton's industry panners right at the centre of

Canada's hi&-tech capitaI. Carleton University (Bacbelor of Engineering): Core Coursos

trodoctioa to Compuihg Commnmcation SMs for gineering Students . par for ~ngineeringstridents ,D€tject-Orien@ Software Development Fonndatiom of Systems bgramdng rentiaï EqnacrnaCronsand Infinite Series.for Engheerin

~litivariable~atcu~ns hrEngineering Students

'Foondations ofcompter Systems Aigorithm and Data S~nictmes Chcuits and Simals

Chemisûy fm Engineering Students üoductïmto Real-Tme Svstems bject-Oriented Programming and Design Laboratory tems Analysis and Design bwbase Management Syscems 1

ftware Validation, Venncatioq an

Deparunent of EIectricai and Cornputer Engineering offers Computer Engineering

Program with Cornputer Engineenng Option and Software Engineenng Option,

Electrical Engineering Program with EIectricai Engineering Option and

Communications Engineering Option. The discipline of Cornputer Engineering includes Cornputer Architectures, Cornputer Networks. Digital Sysrems and VLSI,

Micmprocessor Applications, and Software Engineering. Computer Engineering provides a basis for entering a variety of interesting and challenging careers. The shonage of skilled cornputer engineers is holding back Canada's high technology cornpanies. Software Engineers rnostly do applications design (muitimedia, user interface), panIlel and distnbuted systems (internet, databases), real-time and embedded systems (roboucs, medical), CAD tools (VLSU.

The "Software Engineering" option focuses on the creation of well-engineered software. The fall term of the second year is the same for the two options. It is recommrnded chat snidents entering Computer Engineering have a 60% average in first year (MATH, PHYS and CISC). The Cornputer Engineering program is chailenging and requires a considenble arnount of hard work Queen's University: Core Courses

Software Specifïcatiom Database Management Systems Operathg Systems Communications Systems Engineering Mathematics & Logic H Software ArchitectPre Algoriuuns I Probabiiity for ECE's Fjst ~anagementand Economics 1 ISofh~areEngineering Rojst

4.3.17 McGill University iModern engineering graduates increasingiy find themselves working on design projects in which software play a primary role. Software fin& use both as an integrai component of products and as an intepi part of the design process. Neither

traditionai computer science nor engineering cumcula adequately teach engineering

principles of software design, There is a need for the training of a new breed of

engineer, in ail engineering disciplines. that is capable of applying engineering design pnctices to the development of software-based products.

37 Through this Minor an engineering student can get an in-depth and cornprehensive education in software engineering. It will provide a solid foundation in both basic computer science, , and software engineering pnctice. This minor wil1 prepare engineers for careers in software-oriented engineering enterprises. The minor requires some basic courses in computer science in order to ensure that the students have a firm grounding in computer science and cornputer programming skills. The students will develop engineering software design skills through the two required courses in software engineering.

McGill University: Core Courses

~~uctionto Cornputer Science 1

traduction to Computer Engineering II tmduction to Software Enginee~g l~oftwareEngineering htice

4.3.18 University of Victoria

In Septernber 1998, the Faculty of Engineering at the University of Victoria introduced new de-me options in Software Engineering. It wil1 be offering:

B-Eng. Computer Engineering (Software Engineering Speciaiization)

B-Sc. Cornputer Science (Software Engineering Opaon)

B.Sc. Computer Science with an Area of Emphasis in Software Engineering University of Victoria: Core Courses htcadnctimt~~ofbvare ~ng~ree&~ Hmnan Compter Zntemctioon Object OrientecLSoftware Development SortwareDeveiopment Comptes and Society Media Appiications Ergonomies Software Evohtion

System ReïÏabiIity Object Oriented Design Embedded Systems Nehvork-centnc Computing Distn'buied Systems and the Intemet Advanced Software DeveIopment Management OF Software Devebpment S0~are.frocess hopics in Software Engineering irected Studies 5. ANALYSIS

in this section, the nw data illusuated above will be discussed in more detail. Sorne usehl hints and concIusion will be dnwn according to the processed data. After this discussion, the current strite of Software Engineering program should be clear and it will help the university administrators to improve their program in the future.

5.1 Summary Tables

5.1.1 Number of Universities for Each Course

The foIIowing table shows the number of universities for offering that particular

course. As mentioned early, some courses have ken combined according CO the

contents they have such that it makes the analysis clearer.

TabIe3 Number of Universities for Each Course

DigiiaI SystemslLogic Engheering 3 Discreie F&u!m&n/ Simulation and Amücations Stnicnrres 7

1 2 &smns~naiysisand Design 3 1 1 I 1 Theory of Logic and Compuwioa 2 User Interface Desien and TechaDmoes 1 4

5.1.2 Number of Software Engineering Courses for Each University

The following table shows the number of courses offered by each university. As mentioned erirly, some courses have been deIeted and combined according to the contents they have such that it makes the analysis clemr.

Table4 Nurnber of Course for hchUniversity Total Number of University Names SE courses !I I Carnegie MeIIon University 1 6 University ofBritish Colmnbia 5 iConcortlia Universiw 22 ------University of Wateroo 23 semie Umversitv I 9 bniversitu of Cotoracio I 4 I

Universityof Calgary 6 Carleton Universigr (CertitScate O SoAware) 1 Carleton University (Backbr of 23 Engineering) Queen's University 19 McCiîï University 4 University of Victoria 16 Frorn the previous section, it becornes clear that not every course has the sarne

frequency in Software Engineering program and similarly not every Software

Engineering program has the sarne courses.

5.2.1 Course Included in Most Progams

Arnong the courses in Software Engineering program, some of the courses have the

higher frequency than others. The top eighteen courses are Iisted in the following

table. Table5 Top Seventeen Courses Offered in Software Engineering Prognm I Software Engineering Courses / Ptd No. 1 t~lgorithmsand Data Structures 171 Atchitecmre of Cornputer systems 5 Patabase Management 6

fectronic Materiais, Cits,Devices, Media, and Magnetism 1 5 introduction to Computing S Mathematicai Foundatïoas I Dierenriai Equations and Infinite Series 5 Pmject Management ia SoRware Engineering 8 Software Architecarre and Design 7 Software kign 8 Software Engin=-ng 9 Software Engineering Project I 8 Software Pnmss I Maintenance & Evolution 1 7 'software nwiuct Management 7 Sohare Quaiity Engineering S Software Requïrements 9 Sofbare Specification, Venfcation, Valdacion andTesting 6 5.2.2 Courses Included in Fewest Progams

Among the courses in Softwm Engineering propm. sorne of the courses have the lowest frequency tban others. The last thirty-one courses are listed in the following table.

Table6 Last Twenty-Two Courses Offered in Software Engineering Rognm Software Engineering Courses 1 Tnil No. 1

aies and Measurement in Software Developmeot 1 Models ofSoRware Sysiems 1 Nemorkcenhic Cornputhg 1 Object-Oriented Systenrs f Siiftoccssiog 1 Solid State Devices 1 Suwey of Software Design MelhodslTmis t Systern mwace 1 Tec[uPology anci Human Vdues 1

5.2.3 Core Courses for Software Engineering

Softwm Engineering requires certain theoretical underpinnings. As with traditional

Engineering disciplines, Software Engineering deds with the application of science and theory in a rigomus disciplined mimer, to ensure that the pals of producing diable and useful systems are achieved [31. As stated More, the Software

Engineering program should therefore contain the following core courses:

Analysis of Requirements;

Allocation of Requirernents and Design at various levels;

ModeIing and Andysis of Design;

Impfernentation and Systern Construction;

Testing, and Systern Analysis;

Performance and Behavior Analysis & Modeling;

Quality Assurance.

From the survey we did, sorne courses are offered in most Software Engineering programs. These are shown in the table beIow.

Sofhvare Engineering Courses Total No.

-- horithms and Dam Stnichnes Pr7 1

-- biecthilanagernent in software ~nnineerinp; F81

. Software Engineering Project 1 8 Software Procas / Maintenance & EvoIution 7 Sobare Product Management t 7 Soffware Requirements 9

It is clear hmthe table above that some of the core functiondity courses in Software

45 Engineering are included in most pmgrams. For example, the courses for software requirements, software design, software management, and software maintenance tevolution and software implementation have been included in most Software

Engineering programs. But at the same tirne, some core functiondity courses have not been included in most programs. For exmple, software validation~verilication,and software quality conwl have not been incfuded in most Software Engineering progms.

Meanwhile, some foundation courses have been offered in most Software

Engineering program such as mathematics. data stnrcture and aigorithm.

5.3 Issues

Cornputer and Software Engineering are reIaciveIy new disciplines that have gained much recognition in ment years. They encompass a broad spectrum of mas including software devetopment, hardware implementation. systerns integration and infnsvucture design, etc. They address the enhancernent a€ existing systerns. the deveiopment of new technoiogies, and the automation of rnanud processing using cornputer technologies 191.

As Parnas points out. the profession of Engîneering already has a well-es~blished scheme and structure for self-governance. one that addressed the educrition of its members, the proper practice of their profession. and the duties of the members to empioyers and society rit large. Such a structure would be well suited to uckie the challenges of esablishing and upholding professional standards in the domain of Software and Computer Engineering [3].

In the following sections, some issues will be discussed in the light of our survey.

After this, it will be a little clearer as to which courses should be included as the core courses for Software Engineering program. Suggestions of a mode1 curriculum for

Software Engineering program could be developed to the development of Software

Engineering education programs.

5.3.1 Software Engineering is Part of Computer Science

We can assume that Software Engineering is part of Computer Science but they m not equai. To say it more theoretically, Software Engineering is a kind of intersection between Computer Science and Engineering.

Fmm the survey we di4 it cm be seen that rnost current Software Engineering programs contain sorne Computer Science courses such as mathematics. programming languages. databases. data structures. and etc. But at the same tirne, there are rnany topics in Computer Science that are interesting and chailenging, but have not yet found practical application. It maybe me that one cm build sound software systerns without any knowledge of this field. in conuast, similar remarks could be made about neud computation. many parts of "artificial intelligence", and some aspects of computability and automata theory. Some discussion of those topics must be included

in Computer Science prognms while a _mduate of an Software Engineering pro_m should understand aspects of communication, control theory, and maintenance that are

rarely seen in Computer Science pro_ms. There are many advanced courses in Cornputer Science where the most important thing leamed by the students is how to invent new algorithms or design new tools.

Many of these will not be as important in the Software Engineering prognm where the smss will be on selecting fmrn known algorithms and applying tools and technology that were developed by others [2].

5.3.2 Projects and Teamwork are Common

There are about 8 universities arnongst those that we have studied that provide the course of doing Software Engineering pmject. It should be noted that the tearnwork and individual contribution to the team are both the key point for one project to succeed.

Like in Computer Science prognm, some courses are provided for the students to

practice what they learnt fmm class and most importantly, to [et the snidents work as a team (group). Why is it so necessary'? Everyone who has sone through the forma1 education could answer it directly. As we know that in the beginning of study, it is good to study and do some research yourself. When the tirne goes on, at a certain

point gmup working is needed e.g. a project which is too big for only one student to

finish. At that time, individuai efforts towards the team are counted on. Everyone

knows that even sorne students are so good to do the work but they maybe not good

tem workers. In that case. a project rnay be delayed due to the friiled organization of

the team.

That is why many Software Engineering programs inciude the course for project or team pmject. Strident could gain the knowledge and experience of team working when they work with othes. While Software Engineering programs must reflect the fact chat their pâuates will specialize in software design, they must also equip their graduates with enough knowledge about other areas of engineering that they know when to caIl for help from other engineers and can work weIl in a team with other types of engineers.

5.3.3 Design Course 1s Popular But Not Enough

There are about 8 universities frorn our survey providing Software Engineering pmgram that include the design course.

Engineers are professiunais whose education prepares them to use mathematics, science, and the technology of the day to build products rhat are important to the safety and weIl king of the public.

Over the pat three deciides, it has become increasingly common to tind that software is a major component of a wide variety of products - inctuding many tndirional engineering producrs. Further more, software is used by engineers whey designing others, non-computerized products; the correctness of their designs depends

in part on the correctness of the software they use [3].

The increasing importance of software, combined with ow inc~açedknowledge about how to build it, has resulred in a need for students who Iike other engïneers

have received an educauon that facuses on how to design and manufacture reliable

products, but specidize in designing. building, testing, and maintaining software products.

Software Engineers are not just good programmers. An engineer is a professional who is held responsible for pcoducing products that are fit for use. To be sure that pmduct is fit for use, requires an understanding of the environment in which it is used,

Consequently, those Software Engineers nred to know many things that are not part of

Computer Science,

5.3.4 Mathematics is Important

From our survey, there are about 7 universities which provide a Software Engineering program including mathematics courses.

It should be clear that mathematics is a fascinating topic and obviously important in Software Engineering prognms. It is essentiai to emphasize the use of logic to describe propenies of systems and propenies of States. [t is also necessary to emphasize the role of logic in checking specifications and pro-pms for completeness and consistency. Deduction or proof would be discussed, and students would be given opportunity to use theorem-proving software, but rhe difference between types of logic would not get much tirne.

5.3 -5 Types of Software Engineering Program

in our survey, many types of Software Engineering programs have been covered.

Among that there are Master of Software Engineering pro_giiim, Certificate of

Software Engineering program and Bacheior of Software Engineering prokgm. Certificate of Software Engineering proam takes hi$ percentage in the entire

Software Engineering prognm.

It makes sense that if the person already got a depe More in Computer Science or whatever major, it is better for himher to finish fewer courses to graduate for the

Software Engineering pro-enm which the Certificate prognm provides. Similar to the

Master of Sofiware Engineering program. fewer courses are only needed to pduate.

Bachelor of Software Engineering pro- is not as popular as the other cwo because a lot of traditional universities provide some related but not the exactly same program such as Computer Engineering program or Electrical Engineering program. ûf course, these programs are not the one we discussed here but they occupy many university programs and will be there in future.

At some institutions. the debate about Software Engineering was treated as a jurisdictional dispute between the Computer Science and EIecuical /Cornputer

Engineering department. The dispute is sometimes resolved by including some courses from each department in a new program. But it is not pdsince this type of compromise will produce _mduates that are neither scientists nor cngineers.

5.3.6 Management is the Key Point

About 8 universities in Our survey provide a course for project management Products containing software and products designed by software are so imponant to the safety and well king of the public that we must have some assumce that those pncticing software engineering have -gnduated from a pro_- in which the most important basic material has been covered.

5.3.7 Quality Assurance Course Necessary

Among the universities in our survey, only about 5 of thern include quality assurance engineering course in the Software Engineering program. As we know, hfonnation processing is probably the most significant industry in the world economy today and in the foreseeable future. It has expanded and continues to expand at rapid rate and this in part related to the increase in cost-effectiveness of cornputer hardware [IO].

Cost-effectiveness has increased by a factor of about 1000 every decade and, as long as this rate of change continues, the range of tasks that can be handled most cconomically by computing is likely to grow rapidly. Since software is the major part of most computer systems, the field of software engineering cm expect similar npid pwth.

Most information system customers are businesses. The increasing IeveI of business cornpetition that hey face makes thern acutely aware of their needs in regard to software products. Since there is also more competition among software producers, software customers are more aware of the products and services available to them.

These customers, once relatively naïve and dependent on their suppliers, have becorne increasingly sophisticated and demanding. Software producers rnust understand their needs thoroughly and precisely and three of the rnost significant needs are Ievel of quality required time of delivery, and cost.

With the cost and schedule pressures discussed, it is becoming impossible to mate a software product that is "generous" in the sense of simultaneously providing high quality and low expense. The management of information system development has become more complex as the size and cornplexity of the systerns have increased.

Many systems are now divided into components that are developed by different companies. A definite need exists for the dear identification of the chmctenstics of the system and its components and for indicams of progress during development.

Quantitative melisures exist for cost and schedule, but the quantification of quality has been more difficult, Kowever, because the absence of a concrete measure for software quality generaily means that quality will suffer when it cornpetes for attention against cost and schedule.

Therefore, the course of software engineering quality is much needed to makt the producc good enough for the customers. If it is absenc it wili be the main principle

Rason for the existence of quality problems in many software producu. 6. CONCLUSION

Every educational program is a compromise. Any topic that is essential in one of these programs would be of potentid interest to the students in the other prognms.

However, the limited length of university propms will force us to make choices based on priorities. In the Software Engineering program, the priority will be uselülness and applicability: for the Computer Science program it is important to give priority to intelIecnial interest, to future deveIopments in the field, and to teaching the scientific methods that are used in studying cornputers and software development [2].

A question couid be asked about what the current state of Software Engineering tducation? From the previous discussion and illustration of the data we obtained. it is clear that the current state of Software Engineering prognm is not entirely satisfactory.

There are some reasons for this:

Many famous universities/instimces do not provide Software Engineering pro-mm,

instead, they offer other kind of pro,ms such as Cornputer Engineering program,

which are not the same as Software Engineering program.

Sorne universities providc Software Engineering proberam but the courses are not

standard. As we mentioned before, some core courses are need like the course

software requirements, software design, software implementation, software

management. software quaiity conml. software venfication and vaiidation, and so

on. As is seen fiom the table created, the courses in different universities rnaybe have

different course nmes but the same contents and vice versa. It should have some

genenl course names for the core courses.

The size of Software Engineering programs is variable, depending on the kind of

prognms. For example, certificate or diploma prognms for Software Engineering

have such distinct courses compared with bachelor programs.

The goals for Software Engineering pmgams also vary between universities.

While it is me that the need for software engineers continued to increase, the

bmduates maybe have different skills even they were enrollcd in Software

Engineering prognm.

We mainly focused on North Amencan universities but the reason for the choice

in that, when sufing the Internet, it is really hard to find related information for

other counuies. Software Engineering prognms should be provided as the

international level in the future.

As a conclusion, it could be stated chat the Software Engineering pro_enms still need much more impmvement as the information technology changes faster and faster.

Software Engineers will be needed more and more as a new kind of position compared with the traditional Computer Scientists and Engineers.

Software Engineers will need to know not onIy the engineering stuff but dso the cornputer theory and pm_mming to better suit for the changd positions in the market. According to this, the formai education for Software Engineering wilI be necessary and cornpuIsory. Standard cumculurns and course names/contents shou[d be provided. Bagert, Donald J., Thomas B. Hilbum, Grey Hislop, Michael Lutz, Michael

McCncken, and Susan Mengel, "Giiidelines for Sofnvare Engineering

Ediicarion Version 1.0". Technicd Report, CMUISEI-99-TR-32.

ESC-TR-99-002, October 1999.

LJRL: http://facuLtv.enu.edulhiLbudse-educ/99tr032.~df

Pmas. David Lorge, "Sofrwore Engineering Programs are nor Compiirer

Science Programs", Annals of Software Engineering, 19-37. June 1998.

Boman. Pieter, "Rsion Doctimenr - Regidarion of the Sofnvare Engineering

Discipline, Draff ", 17' June 1999,

URL: htt~91www.aoce. - bc.cdcse/vision.~df

Calven. Dnft T.. "Comprrrer und Sojbvare Engineering Task Forcé.. White

Paper; Acudemic Overvierv ". 16' March 1999.

~J~ULhttp:/lwww.a~s.bc.ca/cse/academic.pdf

Botman, Pieter, "Brief Sirmmary of Sofnvare Engineering Regiilution in

Other Jlirisdicrions (Te-rus.Cd. Ont.) ", 1'' Fe bntary 1999.

URL: htt~://www.apee.bc.ca/cse/cse ovcrview.htm.

Parnas, David Lorge. "Sofnvare Engineering: An Uncons~tmmurd

Marriage", Communication of the ACM. September I997NoI.40. No.9. m: http:/lwww.acm.ot..J~ubs/articIes/ioumals/cacmll997-.U29/~128-parnadp 12

>7 8-~arnas.vdf

[ Denning, Peter J.. "Comptrrer Science and Sofnvare Engineering: Fihg for

Divorce", Communication of the ACM, August 1998Nol.40. No.8.

[8] Lethbridge, Tirnothy C., "The Relevance of Educarion ro Sufivare

Practitioners: Data fiom the 1998 Sicrvey ", University of Ottawa Cornputer

Science Technical Report TR-99-06, July 1999.

[9j Ng, Claudia "Erperience Qicalijkarion Grcidelines for Regisrration rhrough

rhe Cornputer and Sofnvare Engineering Disciplines. Dra$". ~9~ March

1999.

URL: htt~://www.a~ee.bc.cdcse/ex~erience.~df

[IO] bIusa, John D.. Anthony lannino, Kazuhira Okumoto, "Sofnvare Reliability:

Mrcrsiiremrnr. Predicrion. Applicurion ", McGraw Hill, 1987. 8. APENDaSES

See attached file.

syuntpa~ ar!tripl pue suo!innbg ~n~iua.rajj!a A A / suognpuno,t ~nqnuiailmw amqjosJO ~uatuaânuoty stuatsAg aw!A-paa 01 tto!impo.~ru[ A aaua!3s Su!lnduro3 01 uo!13npo~iu1 Ai!~n;iassuralsrCs uo!putmju[ sitrn.18o.id~n!itranbas JO suo!inpunod sa8nn8unl 8u~tutun.C?o.i~JO suo!inpunq stuaisAs .rainduto3 JO suo!tnpunod stualsAs pappaqutg ppppp- tits!iau%ty pun 'iupaw 's~!A~u A A 'si!nm3 'sln!sainl,q iyuo~imlg A A 3ri!~aau!%ugppi3a1q Su !ssaao~dluaumou 0b.ject-Orieiited Systeiiis Operating Sysiems V V Probtibility und Siuiistics V ppppp- Progriiiiiiniiig Liing uuges Progi'uiiiiiiing Met hodology Project Munugoment in Safi wure v Engineering v

Saftwure Engineering Projeci V V V Softwure Process / Muintenunce & Evoluiian v v Soliwure Produçt Munugeriient V V Soliwure Quiility Eiigirieeririg V Soliwure Requirenients V V V V Softwiire Specificuiion, Veritïçuiion, Viilidrition iiiid Tcsiing v v Solid Siiiie Devices Survey of Software Design Methods / Tools v Systeiii Hurdwiire Sysieni Reliiibility

Sysienis Anülysis und Design - Technology rind Huinan Values V Teleconiniunicutions Nctworks V Thcory oî' Logic und Coiiiputuiion V Uscr Inrerfuce Design und Techniques V Total No. 20 1 3 2 1 5 6 L A

Carleton Carleton University of University Universily Queen's McCill University O Soflwure Engineering Courses Calgray (certitlcatc of (bsichelor of University University Victoria Software) engineering) 1 Algoriihins iind Duiu Struciures v v Analysis of Sofiwurc Ariiïiicis 4rc hiieciure of Coriipu~ersysieiiis v Business Organimtion Ziilculiis / Lineiir Alaebrii v

2oinniunicuiions Network Muntigement -Zoii-ipiiler Coniriiuniculions Zoinpiiter Engineering 2oiii~iiterNeiworks Daiiihiise Mununenieni Design & Analysis of Algoriihiiis