jss99 2
jss99 2
$EVWUDFW
7KLV SDSHU SUHVHQWV D FROOHFWLRQ RIH[SHULHQFHVUHODWHGWRVXFFHVVIDFWRUVLQJUDGXDWH
DQGSRVWJUDGXDWHHGXFDWLRQ7KHH[SHULHQFHVDUHPDLQO\FRQFHUQHGZLWKKRZWRPDNHWKH
HGXFDWLRQ UHOHYDQW IURP DQ LQGXVWULDO YLHZSRLQW 7KLV LV HPSKDVL]HG DV D NH\ LVVXH LQ
VRIWZDUHHQJLQHHULQJHGXFDWLRQDQGUHVHDUFKDVWKHPDLQREMHFWLYHLVWRJLYHWKHVWXGHQWV
D JRRG EDVLV IRU ODUJHVFDOH VRIWZDUH GHYHORSPHQW LQ DQ LQGXVWULDO HQYLURQPHQW 7KH
SUHVHQWDWLRQ LV GLYLGHG LQWR H[SHULHQFHV DW WKH JUDGXDWH DQG SRVWJUDGXDWH OHYHOV
UHVSHFWLYHO\ )RU HDFK OHYHO D QXPEHU RI VWUDWHJLHV WR DFKLHYH LQGXVWULDO UHOHYDQFH DUH
SUHVHQWHG 2Q WKH JUDGXDWH OHYHO D FRXUVH LQ ODUJHVFDOH VRIWZDUH GHYHORSPHQW LV
GHVFULEHG WR H[HPSOLI\ KRZ LQGXVWULDO UHOHYDQFH FDQ EH DFKLHYHG RQ WKH JUDGXDWH OHYHO
7KH VWUDWHJLHV RQ WKH SRVWJUDGXDWH OHYHO KDYH EHHQ VXFFHVVIXO EXW LW LV FRQFOXGHG WKDW
PRUH FDQ EH GRQH UHJDUGLQJ LQGXVWULDO FROODERUDWLRQ LQ WKH SODQQLQJ DQG FRQGXFWLRQ RI
H[SHULPHQWV DQG FDVH VWXGLHV $QRWKHU LQWHUHVWLQJ VWUDWHJ\ IRU WKH IXWXUH LV D VSHFLDO
SRVWJUDGXDWHSURJUDPIRUSHRSOHHPSOR\HGLQLQGXVWU\
,QWURGXFWLRQ
A key issue in university software engineering education is to achieve industrial
relevance. With industrial relevance we mean that the education prepares students so that
they are ready to cope with large-scale software development. It is also important that
students are aware of the challenges and proven techniques related to industrial
development of software. This is crucial as software engineering implies large-scale
software development, which means that the focus is primarily on engineering aspects
rather than on a specific design method. Specific methods are needed, but they should be
viewed from a larger perspective when they are applied. Thus, we must have a
comprehensive view of software development, instead of looking for silver bullets (Brooks
1987). We would like to embrace the definition of software engineering according to IEEE
(IEEE 1990), that is “software engineering means application of a systematic, disciplined,
quantifiable approach to development, operation and maintenance of software”. In
particular, this means that software engineering education is not only about software
design methods and programming languages. We must be able to teach aspects such as
requirements engineering, process improvement, software testing and software quality just
to name a few important areas. This is a challenge as the areas are rather difficult to learn
solely through reading software engineering literature. Thus, ways are needed that allow
us to emphasize the industrial relevance, and in particular the application of sound
engineering principles to the development of real software.
The industrial relevance is important both at the undergraduate, graduate and
postgraduate education. In the Swedish system, undergraduate refers to a Bachelor degree,
the graduate education results in a Master’s degree, and the postgraduate education
includes a Licentiate degree and a Ph.D. degree. The differences are further discussed in
Section 2, where a background to the Swedish system is provided to explain the context of
the experiences presented.
This paper highlights some opportunities and experiences of software engineering
education. The objective is to present and inspire educators to consider different
alternative ways of performing education in software engineering. Most of the ideas are
applicable to other areas as well, but the experiences are from software engineering.
The focus is primarily on approaches that we have applied to make both the graduate
and postgraduate education relevant from an industrial perspective. In the graduate
education, the education is primarily provided in large classes with 30-150 students taking
the courses. This gives some specific problems, as it is not feasible to provide a personal
education for each individual. This is, however, possible at the postgraduate level, where
the students are employed at the Department and participate in research projects. Thus,
different ways to achieve industrial relevance and stress the need for engineering of
software have to be found. The objective here is to present our experiences of some
different approaches we have identified. Experiences from both graduate and postgraduate
education are presented.
The paper is organized as follows. In Section 2, the background of the students entering
the graduate and postgraduate education is given to provide a context of the experiences
presented. Important aspects and some tested strategies to obtain industrial relevance in
the education for both postgraduate and graduate education are presented in Section 3. The
presentation starts with the postgraduate level as it provides some essential information for
the graduate level. In Section 4, a course is presented briefly to show an example of how
industrial relevance has been included in the graduate education. Finally, in Section 5,
some of the experiences are highlighted and some future possible directions to further
improve the education are discussed.
%DFNJURXQG
The software engineering courses are optional in both the Master's Program in
Computer Science & Engineering, and for the students in Electrical Engineering who have
chosen to specialize in telecommunications. The courses are normally taken in the fourth
or even fifth year, with a few students taking them in their third year. This means that the
students are very familiar with computers, programming and mathematics. They have
completed a number of courses in mathematics, statistics, physics and electronics, which,
of course, are combined with a number of courses on computers and computer science.
The computer science courses, which are of particular interest, include programming with
different paradigms, compiler technology and object-oriented design. The students have
worked in software development projects, but normally only with design and programming
issues. A number of the students taking the software engineering courses normally pursue
their Master's thesis work at the Department.
The students entering the postgraduate education are normally recruited from the
students having a Master in either Electrical Engineering or Computer Science &
Engineering, and they have typically focused on the courses provided by the Department
and also performed their Master's thesis at the Department. The Department normally
employs the postgraduate students, unless they are industrial postgraduate students. This is
further discussed in Section 3. The postgraduate students are thus viewed as part of the
staff at the Department, and they participate normally in a research project, which usually
provides some funding. Some postgraduate positions are, however, provided by the
university and no other funding is required, but for most postgraduate positions external
funding is required. The external funding implies that the actual research is determined by
the projects for which we manage to get external funding. Government agencies or
companies fund the external projects.
The postgraduate program includes two degrees, Licentiate and Ph.D. The Licentiate
degree consists of one year full time courses and one year of research work, which are
presented in a thesis. A Ph.D. degree is received after another half year of courses and an
additional one and a half year of research work. The Licentiate work is included in the
Ph.D. degree (The Licentiate degree can be viewed as “mid-term exam” corresponding to “half”
Ph.D., all the doctoral students graduated at the Department also have a licentiate degree.). Thus, a
Ph.D. degree means that you have taken one and a half year of courses after your Master’s
degree, together with two and a half years of research work which are presented in a
dissertation, and defended at a seminar. The actual division between courses and research
studies may differ slightly between different departments. But, in general, it means that a
Licentiate degree equals two years work and a Ph.D. degree is four years of full time
studies. The average time to finish a degree is, however, normally longer as the
postgraduate students are expected to contribute in the work at the Department, for
example, as teachers in courses at the graduate level.
A professor or associate professor supervises the postgraduate students during their
research studies. The professor is normally responsible for formulating the research
questions and applying for funding of the research projects.
,PSRUWDQWDVSHFWVDQGWHVWHGVWUDWHJLHV
In our work to achieve industrial relevance in our software engineering education, we
have identified a number of important aspects to address. We have also tested a number of
strategies in our teaching work, which we have found successful. The important aspects
and the tested strategies are summarized in Figure 1 below. The aspects and strategies are
divided between the graduate (Master) program and the postgraduate (Licentiate and
Ph.D.) programs.
,PSRUWDQWDVSHFWV 7HVWHGVWUDWHJLHV
'RPDLQVSHFLILFUHVHDUFK 3DUWWLPHRIIIURPFRPSDQ\
TXHVWLRQV (QUROOSHRSOHLQLQGXVWU\
5HVHDUFKPHWKRGV
3K' &DVHVWXGLHVZLWKHFRQRPLFDO
3DUWQHUVKLSZLWKLQGXVWU\ /LFHQWLDWH IXQGLQJ
7HFKQRORJ\WUDQVIHU 3URJUDPV &DVHVWXGLHVZLWKUHVRXUFHV
)HHGEDFNWR0DVWHUSURJUDP -RLQWSURMHFWV
7HFKQRORJ\WUDQVIHUSURMHFWV
5HVHDUFKDQGHGXFDWLRQ
&XUULFXOD FRPELQHG
7HDFKLQJPHWKRGV 0DVWHU 3K'VWXGHQWVDVWHDFKHUV
,QGXVWULDOLQYROYHPHQW 3URJUDP 3URMHFWFRXUVHV
0DVWHU VWKHVHVLQLQGXVWU\
,QGXVWULDOO\H[SHULHQFHG
WHDFKHUV
*XHVWOHFWXUHUV
FIGURE 1. Some important aspects and tested strategies for industrial relevance in
software engineering education
There are a number of important aspects that we consider when trying to achieve
industrial relevance in software engineering at the Master level. These aspects include:
&XUULFXOD: It is of course important to carefully select the topics that we teach, so that
they reflect what industry needs. Later in this section, a list of our other courses in
software engineering is provided, and in Section 4 we briefly describe our project
course devoted to large-scale software development. It is described to exemplify how
industrial relevance can be integrated in the graduate education.
7HDFKLQJ PHWKRGV: We think it is vital to address the ways we teach, especially in
software engineering. A problem-based teaching method with realistic scenarios of
software development that mimic industrial best practice is an important element to
achieve deeper understanding. We do not believe that a traditional "lectures from a
book"-method alone will achieve the educational goals. This is illustrated through the
course description in Section 4.
,QGXVWULDOLQYROYHPHQW: The credibility of education is increased as the students see that
people in industry struggles with the problems and solutions that we teach. If it is
possible to have some degree of industrial involvement in the courses, e.g. through
guest lecturers from industry (see strategy 6 below), we believe that this is very
positive. Other forms of industrial collaboration in education are reported in (Kornecki,
Hirmanpour, Towhidnajad, Boyd, Ghiorzi and Margolis 1997) and (Harrison 1997).
We have tested a number of strategies in our software engineering courses. These
strategies are first described and then the software engineering courses at the Department
are briefly described to provide the context in which the strategies are implemented.
5HVHDUFK DQG HGXFDWLRQ FRPELQHG: It has been found essential to involve the same
people in both research and education. This includes both the academic staff and the
postgraduate students. We are of the opinion that this way of working provides
important feedback to the research in the same time as it ensures that the latest findings
in software engineering are included in the courses. If some people just work with
teaching, there is a risk that they will become isolated from new developments and
from contacts with industry.
3K'VWXGHQWVDVWHDFKHUV: The involvement of postgraduate students in the graduate
courses is important as it helps their research. It is also beneficial in terms of making it
easier for the graduate students to relate to the lecturers, as they have quite recently
taken the courses themselves. The postgraduate students are often highly motivated as
teachers since they would like to make others interested in their area of research studies
(if nobody is interested then what is the value of the research studies?). Furthermore,
the presence of postgraduate students in the graduate courses facilitates recruiting of
new Ph.D. students.
3URMHFW FRXUVHV: Software engineering is about working in large projects developing
software systems, hence projects in the education are an important ingredient. This
includes both software development projects and projects more relating to investigating
different issues in the area of software engineering. In particular, it is important to
teach aspects of software development, which normally arise when scaling up and to
relate science to engineering (Shaw 1990). The importance of project courses for
industrial relevance in the graduate education is one of the reasons why our large-scale
software development course is viewed as crucial for the software engineering
education at the Department. This course is described briefly in Section 4.
0DVWHU VWKHVHVLQLQGXVWU\: The Master’s thesis work is often made in cooperation with
industry. Industry provides the thesis questions and the students are supervised both by
an industrial representative and one person from the Department. The actual topic of
the thesis and questions to be investigated are formulated in cooperation between
industry and the university. This type of Master’s work ensures the industrial relevance,
and provides an excellent basis for graduation and entering the industry after
examination. It is up to the supervisor at the university to ensure that the educational
objectives of the project are maintained when the work is performed in industry. The
academic supervisor is also the person responsible for actually approving the Master’s
thesis, the industrial representatives have no voice in this decision.
,QGXVWULDOO\H[SHULHQFHGWHDFKHUV: The objective of the software engineering courses is
to teach an engineering approach to software development, imitating and teaching
aspects that are crucial for large-scale industrial software development. Thus, it is
beneficial if some of the lecturers, including the postgraduate students, have industrial
experience from software development.
*XHVW OHFWXUHUV IURP LQGXVWU\: To further emphasize the industrial aspect, we usually
try to invite guest lecturers from industry, who can pinpoint and highlight some of the
important aspects of software engineering based on industrial experience. These
lecturers are mostly viewed as informative and stimulating by the students, as it
highlights that the issues taught in the courses actually are needed and used in industry.
The above items are implemented into three courses at the Department. For example,
the researchers and postgraduate students are teaching in the courses below. We try to
bring in industrial guest lecturers and people with industrial experience to all three
courses. The master theses are formulated within areas, which are taught in the courses
below in cooperation with industry as indicated above. The three courses provided in
software engineering at the Department are:
/DUJHVFDOH6RIWZDUH'HYHORSPHQW (5 credit points)This course is the flagship among
our software engineering courses. The course is by the students rated as one of the best
courses within the Master program, and it is described in some more detail in Section 4.
6RIWZDUH (QJLQHHULQg (Sommerville 1996) (4 credit points): This course provides an
overview of software engineering, and also includes a project in which the students are
faced with a problem in software engineering.
7KH3HUVRQDO6RIWZDUH3URFHVV 363 (Humphrey 1995) (6 credit points): The PSP was
taught for the first time in the autumn of 1996. The objective is that the students should
learn how to develop software systematically, and base their work on processes,
process improvement and measurement.
Above, several positive aspects have been reported with close industrial contacts in
software engineering education. It is our opinion that it is positive to involve industry in
education, but it should be pointed out that there are also risks with having a close
collaboration with industry. This includes both graduate and postgraduate education. Some
of the risks, which should be evaluated for every specific case, are:
6KRUWWHUPHGXFDWLRQ: There is always a risk that the education becomes too short-term,
in other words that the courses contain mostly material which the industry needs today
or that the research questions are aimed at the problems of today. It is important that
courses in software engineering include both sustainable knowledge and some of the
methods and techniques, which will become valuable. The same goes for the research
within the postgraduate education. Industrial collaboration must not mean that the
current problems are solved. The university research must aim for investigating new
solutions in identified problem areas, and the perspective should be more long-term
than for the research departments within industrial companies.
,QWHJULW\DQGGHSHQGHQFH: The lectures and researchers must be independent from the
collaborative companies. This is important to be trustworthy in front of the students.
Furthermore, it is important to be able to address relevant research issues to enable the
researchers to come up with new ideas and not be governed by the current directions at
one specific collaborative partner.
It is important to be aware of these risks and address them properly.
/DUJHVFDOHVRIWZDUHGHYHORSPHQWSURMHFWFRXUVH
4.1 Introduction
The large-scale software development course emerged during the late 1980´s, with the
objective of providing a course which, based on a standardized process model and design
language, imitated a real software project as closely as possible, given the limitations of a
university environment.
The Department views a realistic software development course as one of the
cornerstones of software engineering education. The students need hands-on experience,
where they have to work together in a large project using industrial tools and can actually
execute their software on a real piece of hardware, in this case a telephone exchange. At
the end of the course, the students are able to use their own software by phoning each
other over the exchange.
It has not been possible to find any good generally available literature as the course is
based on combining a target machine, a development tool, language and a process model
from different sources. Therefore, the material provided for the students has been
developed at the Department for this particular course (MD110 1998). This material is
normally complemented with some general software engineering articles, for example
(Rook 1986), and slides from the guest lecturers.
125-150 students take the course normally each year.
The development environment has briefly been mentioned above, it is, however, one of
the unique features of this course and we would like to point out some of the building
blocks in some more detail. The environment can be divided into seven building blocks.
'HYHORSPHQW 7DUJHWHQYLURQPHQW
(QYLURQPHQW
3KRQH
:6
([FKDQJH «
3KRQHQ
:6
«
,QWHUIDFH 7HOHSKRQHV
:6
:RUNVWDWLRQZLWK
([FKDQJH VRIWZDUH
GHYHORSPHQWSODQ 'RFXPHQWV
• 6RIWZDUH • 6RIWZDUHWRS
'RFXPHQWV
UHTXLUHPHQWV OHYHOGHVLJQ
• 6RIWZDUH
'RFXPHQWV
VSHFLILFDWLRQ GRFXPHQW
GHWDLOHGGHVLJQ
• 6RIWZDUH
• 6RIWZDUHWRSOHYHO • 6RIWZDUH GRFXPHQW
VSHFLILFDWLRQ
GHVLJQGRFXPHQW YHULILFDWLRQ GRFXPHQW
1RWH7KH&FRGH
SUHOLPLQDU\ YDOLGDWLRQSODQ ZDVJHQHUDWHG • 6RIWZDUH
• 6RIWZDUH
DXWRPDWLFDOO\ YHULILFDWLRQ
YHULILFDWLRQ YDOLGDWLRQUHSRUW
IURPWKH6'/
YDOLGDWLRQSODQ
GHVFULSWLRQV • )LQDOSURMHFW
SUHOLPLQDU\ UHSRUW
4.3 Project
The background to the project and some basic knowledge of the process model, SDL
and SDT are provided through a series of lectures. The students perform most of the, work
in their project groups. The groups consist of 14-19 students, which are divided into 7-8
subgroups. One subgroup acts as project leaders, one subgroup is a system group
responsible for keeping the system together, three or four subgroups are development
groups, where each group develops one service, and finally two subgroups are test groups
testing two services each, and with joint responsibility for the system test.
The roles of the subgroups are combined with roles played by Department personnel.
Staff from the Department plays the roles of customer, external quality assurance
personnel and, of course, technical experts, who can help the students when they run into
difficulties. The customer reviews the material produced twice during the project and also
performs an acceptance test at the end of the project. It should, however, be noted that
executing the process correctly is viewed as equally important as the final product.
The first two weeks are quite hectic, with a number of lectures providing the students
with an introduction to the development environment and the project. The students are
allowed to form groups on their own, and the project leader subgroup is appointed. This
subgroup is then responsible for the division into the other subgroups. This should be
settled after the first week, and they should familiarize themselves with their work in the
forthcoming weeks.
The requirement analysis documents should be written during the second week, and
should be ready for customer review during the third week of the project. The requirement
specification should form a baseline after the review. In the fourth and fifth weeks of the
project, the students mainly work on the top-level design document. This document is
reviewed in the fifth week, which means that the customer can check that the project is
heading in the right direction.
Work during the latter part of week fifth and into week eight is focused on the detailed
design document and testing, and the product should be delivered at the middle of the
ninth week. A project report should be delivered together with the product. This report
should contain information about the work, and in particular metrics should be reported
concerning time expenditure and faults found during inspection and testing. The delivered
product is acceptance tested in the ninth and tenth weeks, and the students are given
feedback on their performance.
4.5 Summary of experiences
One conclusion is that the application approach, with actually having an exchange and
the opportunity to run the students’ software on the exchange, is very important. This
makes the projects more realistic for the students, and the lecturer can also exemplify how
the software is actually developed and installed in a real switch. Some of the people
teaching the course have an industrial background from the telecommunications field, and
the guest lectures often emphasize the issues stressed in the course. Therefore, it is
concluded that the closeness to an application is an important asset, when trying to teach
software engineering realistically.
An important issue in relation to research is to let the course evolve with the research
being conducted at the Department. This means two things. First, the introduction of an
experience factory concept in the course provides a basis for research related to learning
organizations. Secondly, the changes in the course related to the experience factory form a
basis for experimental research. Experimentation in software engineering is, by many for
example (Basili et. al. 1986) viewed as one important research method to better understand
software development. Thus, experiments are used as a means in research, and the course
provides a good opportunity for trying out new ideas and carrying out experiments. It is,
however, important to stress that the experimentation should always be carried out so that
the students gain from it.
In the future the course will likely be complemented with roles related to software
quality assurance, which could be played by the students. The quality assurance personnel
will be responsible for evaluating process conformance and follow up on project data as
part of the course.
)XWXUHGLUHFWLRQV
The issues discussed concerning graduate and postgraduate education are, from our
point of view, important factors for successful software engineering education. They
provide a good basis for educating software engineers, which meet the requirements of
industry. This does, however, not mean that the education cannot be further improved. In
particular, we have a number of ideas of how to improve the postgraduate education.
The ideas concerning improvement of the postgraduate education include the following
strategies that we plan to test in the future:
&DVHVWXGLHVDQGH[SHULPHQWDWLRQ: We view empirical software engineering research as
essential, and the objective is to increase our research into experimentation and case
studies.
6RIWZDUHHQJLQHHULQJVKRS (primarily experimentation shop): To further emphasize the
experimental approach to software engineering, and at the same time increase the
interaction with industry, a software engineering shop is discussed. The objective of the
shop is to allow companies to come with their questions, which can form the basis for
stating hypotheses, which can be evaluated using experiments.
,QGXVWULDO/LFHQWLDWHSURJUDPV: The Licentiate exam is by industry often viewed as a
good degree, since it in 2 years provides deepened insight into the area without
spending very long time on academic specialization. The Licentiate students learn
research methods, which then can be successfully employed in an industrial context.
Thus, it is often possible to encourage industry to enroll some interested individual in a
Licentiate program.
The graduate education has been improved recently; two of the courses described
briefly above have been introduced into the graduate programs during the latest three
years. Thus, there is primarily a need to stabilize and make minor adjustments and
improvements of the courses.
In our long-term plan for improving and extending the curricula at the graduate level,
we have identified the following idea to be further pursued:
9LUWXDO VRIWZDUH HQWHUSULVH: In (Mayr 1997), experiences from teaching through real
projects in a “virtual software enterprise” are described. We are currently working on a
plan for introducing an extension of this idea in a 6 semester course, corresponding to
12 credit points, that will “employ” selected students for 3 years in a “company” that
will deal with real software product development and maintenance. The first year is
devoted to development work, the second year will focus on project management
issues, and the final year will focus on strategic product planning and software
enterprise management issues on an executive level.
Finally, it should be noted that the results from the Department are not only research
results, but also a number of well-educated people in software engineering. Sometimes the
emphasis is too much on research results, but the greatest impact on industry is probably
through a good educational program. This is one of the main reasons why we feel it is
essential to have a close relationship between graduate education, postgraduate education
and research.
$FNQRZOHGJHPHQWV
The author would like to thank the companies, and the people at those companies, who
over the years have contributed to the software engineering courses at the Department, in
particular: Ellemtel AB, Ericsson Telecom AB, Q-Labs AB, Telelogic AB, Telia AB,
Telia Engineering AB and Telub AB. Moreover, we would like to thank all the students
during the years that have participated in our large-scale software development course, and
also contributed to the improvement of the course through valuable comments on the
content and conduction of the course.
We would also like to thank the personnel at the Department of Communication
Systems, Lund University and the Department of Computer and Information Science,
Linköping University for providing challenging environments for education and research.
This work was partly funded by The Swedish National Board for Industrial and
Technical Development (NUTEK) grants 1K1P-97-09673 and 97-09690.
5HIHUHQFHV
Basili, V., Selby, R. W. & Hutchens, D. H. (1986), ’Experimentation in Software
Engineering’, IEEE Transactions on Software Engineering 12(7), 733-743.
Belina, F., Hogrefe, D. and Sarma, A. (1991), ’SDL with Applications from Protocol
Specifications’, Prentice-Hall, London, UK.
Brooks, F., (1987), ’No Silver Bullet: Essence and Accidents of Software Engineering’,
IEEE Computer 20(4), 10-19.
DoD (1988), ’DoD-STD-2167A, Defense System Software Development’.
Harrison, J. V. (1997), ’Enhancing Software Development Project Courses Via Industry
Participation’, Proceedings Conference on Software Engineering Education &
Training, IEEE Computer Press, 192-203.
Humphrey, W. (1995), ’A Discipline of Software Engineering’, Addison-Wesley.
IEEE (1990), ’IEEE Standard Glossary of Software Engineering Terminology’,
ANSI/IEEE Standard 610.12, New York, USA.
ITU (1988), ’ITU Recommendation Z.100: Specification and Description Language
(SDL)’, Blue book, Volume X.1.
Kitchenham, B., Pickard, L. M. and Pfleeger, S. L. (1995), ’Case Studies for Method and
Tool Evaluation’, IEEE Software 12( 4), 52-62.
Kornecki, A. J., Hirmanpour, I., Towhidnajad, M., Boyd, R., Ghiorzi, T. and Margolis, L.
(1997), ’Strengthening Software Engineering Education through Academic Industry
Collaboration’, Proceedings Conference on Software Engineering Education &
Training, IEEE Computer Press, 204-211.
Mayr, H. (1997), ’Teaching Software Engineering by Means of a Virtual Enterprise’,
Proceedings Conference on Software Engineering Education & Training, IEEE
Computer Press, 176-184.
MD110 (1998), ’MD110-project’, Dept. of Communication Systems, Lund University,
Lund, Sweden, (in Swedish).
Rook, P. (1986), ’Controlling Software Projects’, Software Engineering Journal 1(1), 7-16.
Shaw, M. (1990), ’Prospects for an Engineering Discipline of Software’, IEEE Software
7(6), 15-24.
Sommerville, I. (1996), ’Software Engineering’, Addison-Wesley.