Defining an Alternative Model for Software ...

5 downloads 58361 Views 479KB Size Report
developing alternative educative models oriented to Software. Engineering and ... nine of the world's top 10 software companies have significant operations in ...
WSEAS Applied Computer Science

Learn from Practice: Defining an Alternative Model for Software Engineering Education in Mexican Universities for Reducing the breach between Industry and Academia Garcia, I., Pacheco, C.

Coronel, N.

Computer Science Faculty, Postgraduate Department Technological University of the Mixtec Region Oaxaca, Mexico [email protected]

Media Lab, Postgraduate Department Technological University of the Mixtec Region Oaxaca, Mexico [email protected] Tiechrow1, it would be more precise define this situation as: “a chronic affliction, something that endures or reappears frequently and continues in an undefined way”.

Abstract—Nowadays, advancements in education, research and software development are increasing in a considerable way, but each part is doing it independently. This problem generates that software enterprises spend a lot of money in the formation of young personnel, because Universities do not include in their curriculums topics related to Industry necessities. At this moment, there is an increasing interest at global level focused on developing alternative educative models oriented to Software Engineering and improving the acquisition of experiences and abilities within real projects. Brazil, India, United States of America, Japan, Australia and Thailand are creating initiatives in this context. The results of their research will enable them to find future solutions for fomenting and improving the software industry. This paper aims to show the basis of a dynamic model to align the objectives and necessities of Mexican software industry with the real offer from Universities who teach the discipline. This will make sure that industry gets the suitable talent (appropriate skills and capabilities) and students get suitable opportunities to work within the software industry.

But in fact, with crisis or without it, the software demand is increasing and has changed from being a single product or process to a whole industry. Most of the countries see the software production as an economic activity which is characterized for generating a high added value and contributing to the economy with essential products and services for its modernization. This industry is based on knowledge which develops abilities beyond manufacturing, and proposes that technological innovation generates well paid jobs; it does not contaminate, and requires relatively little capital to start. The software industry is part of the economic activities group which conform to Information Technologies (IT). The incorporation of IT in productive commercialization, services, education and public administration processes, is a key factor for improving the organization’ and countries’ competitiveness.

Keywords- dynamic model, software engineering education, software industry,

I.

But, the interesting point is the fact that one increasing proportion of the worldwide software production is performed in “developing countries”. India and Ireland represent two successful cases of creation and growing of national industries based on exportation. India, for example, has been developed software for the United States of America for 15 years. How it does it? According to [11], [1] and [13] India’s success is related to huge inversions (billions of dollars) in formation (training), certification, promotion and infrastructure. But, one of the key causes for the extraordinary growth of India’s software industry is that India has developed an effective method of training an advanced and functional software workforce and turned into a globally recognized model of such training, the NIIT model. On the other hand, Ireland specialized in developing customized applications and focused the development of its software industry to attract foreign enterprises. The Industrial Development Authority states that

INTRODUCTION

According to Jacobson [5], the Software Engineering area is defined as “a set of stages partially arranged with the aim to achieve an objective, in this case, to obtain a quality software product” and the software development process is “the process where user necessities are translated into software requirements, these requirements are transformed into a design, the design is codified, the obtained code is tested, documented and validated for operative use” Concretely, “this process defines who is doing what, when, and how to reach the objective” Historically, it is well known that Software Engineering arose as a way to avoid the software crisis identified in 1969, however such thing has not happened yet. In this context, the Webster dictionary defines the “crisis” term as: “a decisive point in the course of something; a crucial moment, stage or event” [16]. Nevertheless, in the passing of Software Engineering there was no crucial point, none decisive moment, only a slowed evolutionary change. According to Daniel

1

This terminology was suggested by Professor Daniel Tiechrow of the University of Michigan in a talk presented in Geneva, Switzerland, April 1989.

120

WSEAS Applied Computer Science

nine of the world’s top 10 software companies have significant operations in Ireland, making it the largest exporter of software in the world [20]. Explanations for this success are varied and contradictory, but most commentators would agree that the causes included major strategic decisions by the Irish government, changes in Irish society, and other government decisions. Among the major decisions were: “reassessing the economic role of education in viewing expenditure on education as an investment rather than as an expense” The rest of the paper is structured as follows: Section 2 is a description of the importance of a narrow relationship between Mexican software industry and Universities and Section 3 discusses related work. Section 4 describes the module of our alternative model to reduce the breach between industry and academia. Section 5 describes the initial results achieved. Finally, conclusions are shown in Section 6. II.

Figure 1. Association between components to improve software industry.

At the same time, new research has lead to new technologies and advancements in the industry which is demanding more from the Mexican Universities. This type of situation is creating the barrier between the software industry and academia and the efforts should be focused to reduce the gap.

THE IMPORTANCE BETWEEN INDUSTRY AND UNIVERSITY

Mexican software industry is very young to be compared with Ireland or India; however the government has paid attention to promote initiatives related to improve it. In 2006 the Mexican government, through the National Plan for Development, established the objectives to increase and extend the country’s competitiveness using the information and technology. One of the crucial issues to address was to “promote the IT industry development” Thus, the Economics Secretary and enterprise organisms designed the Software Industry Development Program (PROSOFT) to promote the software industry and extend the IT market in Mexico. As a consequence, a new model is proposed for Mexican industry, MoProSoft [14], which is developed taking into account the better practices of models as CMMI-SW [22], ISO 9000:2000 [19], PMBoK [17], among others. According to [15], the MoProSoft model provides a new process structure, new elements to document the process, a more precise relation among processes, and an explicit mechanism for Software Process Improvement. MoProSoft is conformed by the Software Industry Process-Assessment Method (EvalProSoft) which is based on ISO/IEC 15504 - Part 2 [10] recommendations. However, besides this effort, technology and education should be aligned to walk the same road. In [6] Watts Humphrey affirmed that the Mexican software industry has a big challenge for growing, basically “Mexico must integrate government-industry-academic support” “should establish modern curriculums to increase a body of highly qualified engineers” and “increase the courses related to knowledge and skill-based PSP formation and performance-based TSP training” Mexican Universities can add basic courses about PSP [7] and TSP [8], but without practice, the theory does not work.

III.

RELATED WORK

The reduction of the gap between software organizations and educational institutions has provoked an increase in many related works, which have initially, focused their effort on educational reform. In [18] Repenning et al. described their experiences using a component architecture to support work distribution across sites. Based on their large, geographically distributed testbed for publishing educational software applications, the authors outline a rapid production process using components suited for distributed development. This enables each site to take ownership of particular components and work on them independently without much need for intersite communication and coordination. In [4], for example, Gotel et al. explicitly addresses some of the difficulties in delivering a quality software product at the end of a typical semester-long course, in which Software Engineering is taught for the first time while a capstone project is concurrently undertaken. This initiative brings undergraduate, graduate and industry students together in a synergistic manner to capitalize upon individual learning needs and prior skill sets. Research by [2] proposes a pedagogical methodology based on Project Based Learning to face the market of constant changes and challenges that the IT industry is suffering. This methodology is based on the implementation of software factories, where students can work together to solve real problems, to improve the learning effectiveness in Software Engineering. Skandan and Sidhardhan [21] take a look at the Software Engineering education and evaluation model followed in the induction program for fresh engineering graduates at Tata Consultancy Services Ltd. Their work describes how the induction program fulfils the objective or bridging the gap between what academia supplies and what the industry demands. The proposed TCS evaluation model incorporates a blended approach using case studies and online exams. Research by Koolmanojwong and Boehm [12] exposes the results for teaching best Software Engineering practices and allowing students to apply the learned knowledge in developing real-client projects. A graduate Software Engineering class is used as an experimental

However, the most important part of education and research is understanding, innovation and stimulation for new ideas where as industry needs implementation experience. These three components are closely associated (see Figure 1). With the advancements in software engineering and research, much effort has gone into making software education more productive and interesting.

121

WSEAS Applied Computer Science

testbed to deploy various research tools and approaches for validation of new methods and tools. Their work reports how research and education are integrated via project experiments and how the results strengthen future educational experiences.

B. Process model module Traditional lifecycle methodologies for software development are far from being useful in the industry. Nowadays, business changes the requirements and demands solutions at the earliest possible and with a high level of quality. According to the Mexican software industry necessities, models as MoProSoft and TSP are crucial for promoting it. The process model module provides knowledge related to learning and practicing specific software process models, included CMMI. The alternative model is supported by tools developed to inculcate the effective practices for managing the whole software lifecycle. As part of this work and as a result of previous applications of this alternative model, students have developed specific tools for TSP and MoProSoft models (see Section VI for more information) according to the necessities of Regional software enterprises. Students have combined study and practice and their abilities have been qualified by real world practice. The education is based on the Model Centered Learning Architecture, or MCLA2, focusing on skill training and making it the final objective of such training. These students, once graduated, can play critical roles in the business and industry.

The Mexican software industry is still very young and it is important to establish the basis for an alternative educative model that considers the industry’s’ current tendency and develops it using real practice to understand the actual necessities of the software industry. IV.

AN ALTERNATIVE MODEL FOR MEXICAN UNIVERSITIES

The introduction of a Mexican software model, MoProSoft, in the software industry has to change the way that Universities educate young engineers. Models as CMMI v1.2, ISO 9000:2000, ISO/IEC 12207 [9], and ISO/IEC 15504 has been used in the Mexican software industry; standing out CMMI v1.2 with a considerable number of certificated large enterprises. However, a great percentage of the software enterprises in Mexico are small enterprises in-which the adoption of this model is an unaffordable task. MoProSoft was built to cover the necessities and expectations of small software companies and these are waiting for skilled young engineers.

C. Software architecture module The software architecture module provides knowledge related to software architectural styles. It is well known that as the business demands increase, architecture needs to be the center point for the many business solutions. Figure 3 shows that students learn that several factor affect architecture. This module includes process oriented architecture style to message oriented, object oriented to service oriented, domain specific architecture to Enterprise Architecture, which are being followed in the industry for further business needs.

We designed an alternative model that is focused on five modules which help academics to provide the necessary knowledge within the reality of the Mexican software industry. Figure 2 shows that these modules are in high level areas and there is a need for continuous over viewing at granular level. Modules work as communicative tools, use data points and encourage a wide extensive thinking process. Just like the NIIT Indian model, combining education with development practice as the key to the success of our model.

Figure 2. An alternative model for reducing the breach between industry and academia.

In the following subsections we provide a briefly description for each module:

Figure 3. The architecture model and its relation with environment.

D. Data repositories module Any data that will help business in decision making and support the students’ skills is part of the data repository module. This module provides the trends for business and

A. Business environment module Business environment module provides knowledge related to the implementation of IT solutions in a given business domain. In any business domain, the most important factors are business rules, business processes, performance and security. Because of this, the most distinguishing feature of this module is the combination of class education and business cooperation.

2

MCLA is a model created by the National Institute of Information Technology (NIIT). It is base on case study and real problem solving approaches. MCLA is considered the keystone of NIIT software training model.

122

WSEAS Applied Computer Science

academia operations using data storage, reports and analysis and performance management. All the references, texts and teaching materials are uploaded into the module and are created by business development needs and technology trends, and they are updated with the progress in technology and development in Mexican industry. E. Programming and application knowledge module This module is reflected in every course that includes practical technology and every topic follows the footprint of daily technological usage. The module can be categorized into two groups: software fundamental courses; and software development and programming courses according to the changes of Mexican software industry demands. Table 1 shows a curriculum system and how these courses are integrated together. TABLE I.

Figure 5. Students teams solving real problems within Technological Park.

Finally, as a result of the application of our educative model, some innovative tools have been developed by students and are being used for software enterprises related to MoProSoft and models as TSP. Figure 6 shows an example of this, the SelfVation tool for implementing Software Process Improvement initiatives based on MoProSoft [3] that is focused on small software enterprises.

AN EXAMPLE OF CURRICULUM AND COURSE INTERACTIONS

Period3

Applications based on .NET

Applications based on J2EE

MoProSoft

Period2

.NET

J2EE

UML; XML; SQL

Period1

C/C++

Java

TSP/PSP

The programming and application knowledge module combines education with practical development to improve the student skills. Those who are in the computer and IT training practice can easily tell from this table that the curriculum is directed to the target and practical. V.

ADAPTING THE MODEL INTO THE PRACTICE

To support the idea to improve the students’ abilities through a combination of theory and practice, and focused on industry’s necessities, the model is being implemented in the Technological University of the Mixtec Region (UTM). The first phase was to build a Technological Park where students could interact in four-member groups and resolve real problems with Regional software enterprises (see Figures 4 and 5).

Figure 6. An example of software tool developed using the alternative model.

VI.

CONCLUSIONS

Due to the rapid changes in the Mexican software industry, software education has the challenge to change, to be more dynamic and advance according to the technology evolution and requirements. With “learning form practice”, software industry needs could be fulfilled by the close association with Universities under the collaborated education model. We can conclude, that the keystone of this model is the combination of employment oriented learning, and developing a combined curriculum, a project centered case driven teaching method. However, keeping in mind the idea of training students to meet the needs of the IT market is not an easy task. IT is a fast growing and ever changing industry. So it is critical to solve important questions such as: how to train students to be put on the software business frontline and make sure they can keep up with the growth and change of the industry? We advocate for reforming the Mexican teaching method and planning courses that closely follow the training objects and the labor that the market indicates.

Figure 4. Creation of a Technological Park integrated with real project environments.

123

WSEAS Applied Computer Science [12] Koolmanojwong, S. and Boehm, B. “Using Software Project Courses to Integrate Education and Research: An Experience Report” Proc. of the 22nd Conference on Software Engineering Education and Training (CSEET 09), IEEE Computer Society, pp. 26-33. 2009. [13] Li, L., Wu, S. and Luo, J. “Learning from Practicing: Adaptation of NIIT(India) Model for Software Developer Training to Chinese Higher Vocational and Technical Colleges” Proc. of the 9th International Conference for Young Computer Scientists, IEEE Computer Society, pp. 2454-2458, 2008. [14] Oktaba, H. “MoProSoft: A Software Process Model for Small Enterprises”. Proc. of the First International Research Workshop for Process Improvement in Small Settings, Software Engineering Institute, Carnegie Mellon University. Special Report CMU/SEI-2006-SR-001, pp. 93-101, 2006. [15] Oktaba, H., Garcia, F., Piattini, M., Ruiz, F., Pino, F. and Alquicira, C. “Software Process Improvement: The Competisoft Project” Computer, 40(10): 21-28. 2007. [16] Pressman, R. Software Engineering: a practitioner’s approach. 7th Edition. McGraw-Hill Science/Engineering. 2009. [17] Project Management Institute. A Guide to the Project Management Body of Knowledge (PMBoK Guide). Project Management Institute. 2004. [18] Repenning, A., Ioannidou, A., Payton, M., Ye, W. and Roschelle, J. “Using components for Rapid Distributed Software Development” IEEE Software, 18(2): 38-45. March/April 2001. [19] Russell, S. “ISO 9000:2000 and the EFQM Excellence Model: competition or cooperation?” Total Quality Management, vol. 11, no. 4/5&6, pp. 657-665, 2000. [20] Ryan, K. “Engineering the Irish Software Tiger” Computer, 41(6):66-71, June 2008. [21] Skandan, S. and Sidhardhan, M. “Software Engineering Education at TCS Introduction –An Experience Report” Proc. of the 22nd Conference on Software Engineering Education and Training (CSEET 09), IEEE Computer Society, pp. 16-19. 2009. [22] Software Engineering Institute. CMMI for Systems Engineering, Software Engineering, Integrated Product and Process Development, and Supplier Sourcing (CMMI-SE/SW/IPPD/SS, V1.1). Continuous Representation. CMU/SEI-2002-TR-011. 2002.

REFERENCES [1]

Deshpande, S. and Richardson, I. “Management at the Outsourcing Destination –Global Software Development in India” Proc. of the Fourth IEEE International Conference on Global Software Engineering, IEEE Computer Society, pp. 217-225, 2009. [2] Dos Santos, S., Moraes Batista, M., Cavalcanti, A., Albuquerque, J. and Meira, S. “Applying PBL in Software Engineering Education” Proc. of the 22nd Conference on Software Engineering Education and Training (CSEET 09), IEEE Computer Society, pp. 182-189. 2009. [3] Garcia, I. and Cruz, D. “Adopting a RIA-based tool for Supporting Assessment, Implementation and Learning in Software Process Improvement under the NMX-I-059/02-NYCE- 2005 Standard in Small Software Enterprises” To be published in Proc. of the 2010 International Conference on Software Engineering Research, Management and Applications (SERA 2010), IEEE Computer Society. Montreal, Canada. [4] Gotel, O., Kulkarni, V., Say, M., Scharff, C. and Sunetnanta, T. “A Global and Competition-based Model for Fostering Technical and Soft Skills in Software Engineering Education” Proc. of the 22nd Conference on Software Engineering Education and Training (CSEET 09), IEEE Computer Society, pp. 271-278. 2009. [5] Jacobson, I., Christerson, M., Jonsson, P. and Overgaard, G. ObjectOriented Software Engineering, a use case driven approach. Reading. MA Addison-Wesley. 1992. [6] Humphrey, W. “Software: The Competitive Edge” Carnegie Mellon University. Software Engineering Institute. Mexico 2005. [7] Humphrey, W. PSP: A Self-improvement Process for Software Engineers. The SEI Series in Software Engineering. Addison-Wesley Professional. 2005. [8] Humphrey, W. TSP Leading a Development Team. The SEI Series in Software Engineering. Addison-Wesley Professional. 2005. [9] ISO/IEC 12207:2002/FDAM 2: Information Technology – Software Life Cycle Processes. International Organization for Standardization: Geneva. 2004. [10] ISO/IEC 15504-2:2003/Cor.1:2004(E): Information Technology – Process Assessment – Part 2: Performing an Assessment. International Organization for Standardization: Geneva. 2004. [11] Khan, N., Currie, W., Weerakkody, V. and Desai, B. “Evaluating Offshore IT Outsourcing in India: Supplier and Customer Scenarios” Proc. of the 36th Hawaii International Conference on Systems Sciencies (HICSS’03), IEEE Computer Society, pp. 239-249, 2003.

124