[ieee comput. soc technology of object-oriented languages. tools 27 - beijing, china (22-25 sept....

5
Cláudia M.L. Werner Guilherme H. Travassos Ana Regina C. da Rocha O.O. Software Engineering Training, Academia-Industry Integration, Technology Transfer, Object-oriented Software Development. This paper presents an object-oriented software engineering training experience that involved the Engineering Graduate School (COPPE) at the Federal University of Rio de Janeiro (UFRJ), specifically the Computer Science Department, and a Brazilian governmental enterprise in the field of telecommunications. The main objective was to train a group of professionals from the enterprise on O.O. software engineering 1 . In order to provide a more effective training program involving an authentic technology transfer experience [1], a collaboration project was established. The goal was to provide an intensive training on the subject while developing a real O.O. system 2 . In this sense, whenever it was necessary to execute a certain task, or project phase, an initial course on the main specific subjects was previously given. The problems encountered in the daily development routine were used as concrete case studies where the trainees could actually understand the difficulties and rationale needed to solve them. The paper is organized as follows: section 2 describes the project and team characteristics, as well as the project follow-up; section 3 discusses about the benefits achieved in such training experience; and finally, section 4 concludes the paper by providing some insights about the lessons learned. 1 Although the term O.O. was first used to denote software that was built using an O.O. programming language, nowadays it encompasses a complete view of software engineering [2]. 2 Many authors argue that software engineering learning is more effective when it is practiced [3][4].

Upload: arc

Post on 05-Mar-2017

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: [IEEE Comput. Soc Technology of Object-Oriented Languages. TOOLS 27 - Beijing, China (22-25 Sept. 1998)] Proceedings Technology of Object-Oriented Languages. TOOLS 27 (Cat. No.98EX224)

$Q�2�2��6RIWZDUH�(QJLQHHULQJ�7UDLQLQJ�([SHULHQFH�ZLWKLQ�D&ROODERUDWLRQ�3URMHFW�EHWZHHQ�$FDGHPLD�DQG�,QGXVWU\

Cláudia M.L. Werner Guilherme H. Travassos Ana Regina C. da Rocha

&233(�8)5-���&RPSXWHU�6FLHQFH�'HSDUWPHQW)HGHUDO�8QLYHUVLW\�RI�5LR�GH�-DQHLUR&DL[D�3RVWDO���������&(3����������

5LR�GH�-DQHLUR���5-���%UD]LO3KRQH�)D[��������������������

HBPDLO��^ZHUQHU��JKW��GDURFKD`#FRV�XIUM�EU

$EVWUDFW

7KLV� SDSHU� GHVFULEHV� DQ� REMHFW�RULHQWHG� �2�2��� VRIWZDUH� HQJLQHHULQJ� WUDLQLQJH[SHULHQFH�� ZLWKLQ� D� FROODERUDWLRQ� SURMHFW� EHWZHHQ� DFDGHPLD� DQG� LQGXVWU\�� 7KLV� H[SHULHQFHLQYROYHV�WKH�DFDGHPLD�LQGXVWU\�H[FKDQJH�ERWK�IRU�WUDLQLQJ�DQG�WHFKQRORJ\�WUDQVIHU��7KH�SURMHFWDQG�WHDP�FKDUDFWHULVWLFV�DUH�GHVFULEHG��DV�ZHOO�DV�WKH�SHUIRUPHG�ZRUN�DQG�REWDLQHG�UHVXOWV�

.H\ZRUGV� O.O. Software Engineering Training, Academia-Industry Integration, TechnologyTransfer, Object-oriented Software Development.

���,QWURGXFWLRQ

This paper presents an object-oriented software engineering training experience thatinvolved the Engineering Graduate School (COPPE) at the Federal University of Rio de Janeiro(UFRJ), specifically the Computer Science Department, and a Brazilian governmentalenterprise in the field of telecommunications. The main objective was to train a group ofprofessionals from the enterprise on O.O. software engineering1.

In order to provide a more effective training program involving an authentic technologytransfer experience [1], a collaboration project was established. The goal was to provide anintensive training on the subject while developing a real O.O. system2. In this sense, whenever itwas necessary to execute a certain task, or project phase, an initial course on the main specificsubjects was previously given. The problems encountered in the daily development routine wereused as concrete case studies where the trainees could actually understand the difficulties andrationale needed to solve them.

The paper is organized as follows: section 2 describes the project and teamcharacteristics, as well as the project follow-up; section 3 discusses about the benefits achievedin such training experience; and finally, section 4 concludes the paper by providing someinsights about the lessons learned.

1 Although the term O.O. was first used to denote software that was built using an O.O. programminglanguage, nowadays it encompasses a complete view of software engineering [2].2 Many authors argue that software engineering learning is more effective when it is practiced [3][4].

Page 2: [IEEE Comput. Soc Technology of Object-Oriented Languages. TOOLS 27 - Beijing, China (22-25 Sept. 1998)] Proceedings Technology of Object-Oriented Languages. TOOLS 27 (Cat. No.98EX224)

��� $� 8QLYHUVLW\�(QWHUSULVH� &ROODERUDWLRQ� ([SHULHQFH� RQ� 2EMHFW�2ULHQWHG6RIWZDUH�'HYHORSPHQW

The experience here presented is a university-enterprise collaboration project for thedevelopment of a telecommunication planning system using the object-oriented technology.Initially, the idea was to develop a small pilot project to experience O.O. software engineeringtechniques. However, due to several reasons described in this section, the project took differentdirections and became a large-scale O.O. development experience. It started in 1994, and after 4years of intensive collaboration it can be cited as a successful training and technology transferexperience.

In the following sections, we describe the initial context and motivation for starting thedevelopment project, its characteristics, the development team characteristics, and the projectfollow-up.

�����,QLWLDO�6LWXDWLRQ�DQG�0RWLYDWLRQ

First, it was necessary to select a system that had medium complexity and that wasinteresting enough to be developed by the enterprise. At the same time it could not be anessential one, due to the objectives of a new technology training involved. The planning fieldwas selected to be exploited. At that time there was a planning system, constructed more than15 years ago, coded in APL programming language that consisted of a set of non integratedmodules. The system maintenance was very difficult due to the lack of design documents, thecomplexity of the programming language, and the lack of a specialist who understood all thedetails about the system functionality. The goal was to develop a new system, completelyintegrated, interactive, easy to maintain and that embodied some new, or not so well attended bythe existing system, functionality.

The collaboration project was to be developed in a high administration level, since itwas intended to serve as an object-oriented development example to the whole enterprise, wherethe first O.O. software engineers were to be formed.

�����'HYHORSPHQW�3URMHFW�&KDUDFWHULVWLFV

The system development process was planned in detail, based on ISO 9000-3 standardsand SEI’s CMM (&DSDELOLW\�0DWXULW\�0RGHO), including management, construction and qualityassurance activities. The used development method was Coad and Yourdon’s Object-OrientedAnalysis and Design Method, due to its simplicity and suitability for a learning experience. Atthe time the project started there were not many CASE tools available. However, the authors ofthe method provided a tool, named ObjectTool3, developed by them, which was chosen to beused in the project.

The initial development platform was the C++ programming language, a sharewareobject management system for persistence, and a graphical interface tool, named UIM, runningon IBM RISC 6000 workstations, under the AIX4 operating system. Later, the object managerwas replaced by the O2 object-oriented database system5.

3 Trademark ObjectInternational, Inc.4 Trademark IBM Corp.5 Trademark O2 Technology

Page 3: [IEEE Comput. Soc Technology of Object-Oriented Languages. TOOLS 27 - Beijing, China (22-25 Sept. 1998)] Proceedings Technology of Object-Oriented Languages. TOOLS 27 (Cat. No.98EX224)

�����'HYHORSPHQW�7HDP�&KDUDFWHULVWLFV

A team consisting of eight people, among enterprise professionals and universityresearchers, started the project. Its composition was: four system analysts, two from theuniversity (i.e., graduate students) and two from the enterprise; and four domain experts (i.e.,telecommunication engineers), all enterprise professionals and future users of the system. Thedevelopment team was under the management of a project coordinator from the enterprise (i.e.,a high administration manager) and another from the university (i.e., a software engineeringprofessor), accompanied by a technical coordination team consisting of two universityresearchers (also software engineering professors) and other two professionals from theenterprise. This team was expanded at design phase, incorporating five programmers, two fromthe university (also graduate students) and three from the enterprise.

�����3URMHFW�)ROORZ�XS

Many problems occurred during the project development, some for technical reasonsand others related to the enterprise internal politics. During the first year, there were problemsrelated to both hardware and software acquisitions by the enterprise. Since all acquisitions hadto be done by official procedures, the initial schedule was often delayed due to bureaucraticproblems. Then, when this was over, the winning software/hardware company had somedifficulties tuning the sold resources in terms of efficiency and accuracy.

In 1995, the enterprise suffered some political pressures that resulted in many strategicchanges, mainly concerning the planning procedures. This was directly reflected in our work.The project that was supposed to be a pilot project at this moment turned out to be a veryimportant enterprise project, since the maintenance difficulties of the APL existing systemprevented it from absorbing the necessary changes. Many of the already established classes hadto be reviewed and many others included. This served as an interesting practical situation, andour training objectives were kept.

In 1996, other changes occurred. This time the enterprise departmental structure wasmodified, and the collaboration project coordination was moved from the high administrationlevel to a specific planning department, reducing the project scope and modifying its initialgoal. At this time, the O.O. software engineering training was not so important but the resultingO.O. planning system above all.

Apart from all these problems, the first part of the planning system (i.e., thetransmission subsystems) was released in the beginning of 1997. The final users (i.e., thetelecommunication engineers) evaluated it in terms of its usability, interface facilities, andperformance. Then, it was put to operate in parallel to the previous system in order to comparetheir results. For the new system facilities an intensive testing within concrete situations wasundergone. At that moment, pressure existed for replacing the shareware object manager by anobject-oriented database management system (OODBMS), which was acquired by theenterprise, the O2 OODBMS. The other subsystem (i.e., the commutation subsystem) wasreleased by the middle of 1997 and it already used the O2 OODBMS. Soon, another version ofthe transmission subsystem was released. The final planning system involved about 159application domain classes and 298 support classes.

During the last years of the collaboration, the enterprise team proved to have obtainedthe necessary skills in order to deal with different kinds of situations and problems of variouslevels of complexity, and to be able to decide for the best solutions. The university goal wasfinally achieved, and the O.O. technology was successfully transferred.

Page 4: [IEEE Comput. Soc Technology of Object-Oriented Languages. TOOLS 27 - Beijing, China (22-25 Sept. 1998)] Proceedings Technology of Object-Oriented Languages. TOOLS 27 (Cat. No.98EX224)

���%HQHILWV�RI�WKH�([SHULHQFH

This kind of training experience within a collaboration project often provides twoexchange directions: from academia to industry and from industry to academia. With itstechniques and advanced knowledge, academia contribute to industry by adapting state-of-theart capabilities to real situations, training professionals, guiding and supervising developmentactivities. It is within the industry context that real software development problems occur. Thisis a unique opportunity to academia to refine existing techniques and knowledge, validatingthem in situations that are often difficult to experience within the academic scope, and at thesame time to identify new research topics. It is often possible to involve graduate students insuch collaboration projects so as to provide them with a practical software engineering trainingexperience in real projects that transcend the academic scale. In the following subsections wediscuss each of these issues separately.

�����(QWHUSULVH�3URIHVVLRQDOV�7UDLQLQJ�DQG�7HFKQRORJ\�7UDQVIHU

As mentioned before, a collaboration project provides an interesting opportunity forindustry to train professionals to use modern development techniques. As described in thispaper, it is possible to end up with a concrete system that is useful to the enterprise, providedthat both sides keep professionalism involved throughout the collaboration period. During ourexperience, it was also noticed that collaboration projects help industry professionals to betterunderstand university course works, destroying the myth that these are excessively theoretical,dealing with researches totally disconnected from reality. While participating in the describedproject, two system analysts from the enterprise joined COPPE/UFRJ and obtained theirgraduation on software engineering.

�����*UDGXDWH�+XPDQ�5HVRXUFH�(GXFDWLRQ

During the collaboration project, eight graduate students were able to participate in thedevelopment activities. This kind of participation proved to be very important for theireducation. By working on a project of such scale, students are able to validate in practiceconcepts studied and researched during graduation courses, allowing for a more accurateanalysis while elaborating their thesis. For some of these students, this project was the firstworking contact with industry. For those who desire to work for industry after graduation, this isan important experience since it represents a practical education and a convincing example thatit is possible to develop software within industry using software engineering techniques, andthat these are of paramount importance to large scale projects. For other students who desire todedicate themselves to academic life in future, this is also a valuable experience, in the sensethat they are able to become real software engineering professors, who understand theimportance of being a good software engineer in order to teach good software engineeringtechniques.

�����5HVHDUFK�YDOLGDWLRQ

The participation of COPPE researchers in the project was very active. They wereresponsible for the software development process definition, training, and product developmentsupervision. Within this project, many process models and development methods found inliterature were applied. This allowed the verification of their adequacy to real situations, as wellas the identification of deficiencies, and their necessary adaptations for an effective use. Morespecific O.O. researches were validated within this project, among others: quality attributes forO.O. requirements and design specifications [5], O.O. cost/effort estimation models [6], O.O.

Page 5: [IEEE Comput. Soc Technology of Object-Oriented Languages. TOOLS 27 - Beijing, China (22-25 Sept. 1998)] Proceedings Technology of Object-Oriented Languages. TOOLS 27 (Cat. No.98EX224)

structural complexity [7], and O.O. testing techniques [8].

�����,GHQWLILFDWLRQ�RI�1HZ�5HVHDUFK�7RSLFV

While participating in this project, it was identified the lack of an Integrated SoftwareEngineering Environment (ISEE) for supporting object-oriented development activities,including automated support for management, construction, quality assurance and reuseactivities. In this sense a research project for the development of an ISEE of this kind wasestablished in 1995, being approved as a research project financed by CNPq (7KH� %UD]LOLDQ&RXQFLO� IRU� 5HVHDUFK� 'HYHORSPHQW). This research project called the Memphis Project [9],involved research on topics such as: reuse-based development processes, componentsdocumentation [10], frameworks, process development patterns [11], and process automation.

���&RQFOXVLRQ

In this paper we described an academia-industry collaboration experience for trainingobject-oriented software engineers. This experience was based on the development of atelecommunication planning system within a Brazilian governmental enterprise. It involved theacademia-industry exchange both for training and technology transfer.

Apart from the mentioned benefits achieved by both partners during the 4 years ofrelationship, some lessons regarding the O.O. technology in particular were learned. Amongothers it is worth mentioning the suitability of O.O. concepts for the telecommunication field.Although the developed system was a planning system it dealt with concepts such as telephonenetwork, different kinds of equipment and traffic control procedures that were nicely modeledin the O.O. paradigm. Also, the adopted method proved to be adequate for introducing the basicO.O. concepts, due to its simplicity. However, techniques from other methods (such as theconcept of XVH�FDVHV and the use of interaction diagrams) had to be introduced in parallel inorder to get the job done. By doing this, the enterprise team had the chance of being smoothlyintroduced to more advanced O.O. concepts. Finally, it should be noted that the use of anOODBMS resulted in one hand the reduction of support classes but on the other hand theintroduction of performance problems.

5HIHUHQFHV

[1] Foley, J.; 7HFKQRORJ\�7UDQVIHU�IURP�8QLYHUVLW\�WR�,QGXVWU\; Comm. of ACM, vol.39, no.9, sep. 1996.[2] Pressman, R.; 6RIWZDUH�(QJLQHHULQJ��D�SUDFWLWLRQHU¶V�DSSURDFK, 4th ed., McGraw Hill, 1997.[3] Basili, V.; Empirical Software Engineering (editorial), Kluwer Academic Publisher, Boston, no.1;

1996.[4] Mead,N. et al.; 7KH� 6WDWH� RI� 6RIWZDUH� (QJLQHHULQJ� (GXFDWLRQ� DQG� 7UDLQLQJ; IEEE Software,

nov./dec.1997.[5] Clifton, E.; Werner, C.; Rocha, A.; +RZ�WR�(YDOXDWH�2EMHFW�RULHQWHG�6SHFLILFDWLRQV� 5th International

Conference on Software Quality, Ottawa, Canada, oct. 1996.[6] Cruz, C.; $�3URSRVDO�RI�DQ�2EMHFW�2ULHQWHG�'HYHORSPHQW�&RVW�0RGHO, FESMA 98, Antuérpia, Bélgica,

may 1998.[7] Andrade, R.; Travassos, G.; 6WDQGDUGV��*XLGHOLQHV�DQG�0HWULFV��WKHLU�UHODWLRQVKLS�DQG�DSSOLFDWLRQ� WR

UHGXFH�VWUXFWXUDO�FRPSOH[LW\�RI�REMHFW�RULHQWHG�GHVLJQ; FESMA 98, Antuérpia, Bélgica, may 1998.[8] Vieira, M.; Travassos, G.; $Q� $SSURDFK� WR� 3HUIRUP� %HKDYLRU� 7HVWLQJ� LQ� 2EMHFW�2ULHQWHG� 6\VWHPV,

ToolsAsia’98, Beijing, China, sep. 1998.[9] Werner, C. et al.; 0HPSKLV��$�5HXVH�%DVHG�2�2��6RIWZDUH�'HYHORSPHQW�(QYLURQPHQW, ToolsAsia’97,

Beijing, China, sep. 1997.[10] Silva, M.; Werner, C.; 3DFNDJLQJ� 5HXVDEOH� &RPSRQHQWV� XVLQJ� 3DWWHUQV� DQG� +\SHUPHGLD� 4th

International Conference on Software Reuse, Orlando, USA, apr. 1996.[11] Vasconcelos, F.; Werner, C.; 6RIWZDUH� 'HYHORSPHQW� 3URFHVV� 5HXVH� %DVHG� RQ� 3DWWHUQV; SEKE’97,

Madrid, Spain, jun. 1997.