Memorias 2015 - LASES - Latin American Software Engineering
Transcripción
Memorias 2015 - LASES - Latin American Software Engineering
Proceedings of the Latin American Software Engineering Symposium, Año 2015 1 Proceedings of the Latin American Software Engineering Symposium, Año 2015 Proceedings of the Latin American Software Engineering Symposium - LASES Bogotá DC - 2015 Copyright © 2015 Cidenet Sello Editorial Except where otherwise noted, content in this publication is licensed under the Creative Commons Attribution, NonCommercial, ShareAlike 3.0 Unported License, available at http://creativecommons.org/licenses/by-sa/3.0 As for readers, this license allows users to download, copy and build upon published chapters even for commercial purposes, as long as the author and publisher are properly credited, which ensures maximum dissemination and a wider impact of our publications. Notice Statements and opinions expressed in the papers are these of the individual contributors and not necessarily those of the editors or publisher. No responsibility is accepted for the accuracy of information contained in the published papers. The publisher assumes no responsibility for any damage or injury to persons or property arising out of the use of any materials, instructions, methods or ideas contained in the book. A free online edition of this book is available at www.lases.cidenet.org Edition, November 2015 ISSN 2500-5014 Latin American Software Engineering Symposium lases.cidenet.org [email protected] Bogotá DC – Colombia 2 Proceedings of the Latin American Software Engineering Symposium, Año 2015 Scientific Committee Organizing Committee Shihong Huang, Ph.D. Florida Atlantic University Administrative and Financial Director Wiliam Arévalo Camacho, M.Sc. Corporación Centro de Investigación y Desarrollo de Nuevas Tecnologías CIDENET. Hanna Oktaba, Ph.D. María Guadalupe Ibargüengoita, M.Sc. Universidad Nacional Autónoma de México Scientific Director Carlos Mario Zapata Jaramillo, Ph.D. Universidad Nacional de Colombia. José Antonio Pow Sang Portillo, Ph.D. Universidad Caólica del Perú Jonás Montilva, Ph.D. Universidad de los Andes Venezuela Logistic Director Gastón Mejía, Msc. Universidad Central Edison Spina, Ph.D. Universidade de São Paulo Edited by Carlos Mario Zapata Jaramillo, Ph.D. Universidad Nacional de Colombia. Jovani Alberto Jimenez Builes, Ph.D. Jairo Hernan Aponte Melo, Ph.D. Universidad Nacional de Colombia Design and Layout Wiliam Arévalo Camacho, M.Sc. Corporación Centro de Investigación y Desarrollo de Nuevas Tecnologías CIDENET. Francisco Gómez, PHD. Amparo Olaya, Msc. Gastón Mejía, Msc. Universidad Central 3 Proceedings of the Latin American Software Engineering Symposium, Año 2015 Indice Página 1 2 Título Prefacio Parte I: Métodos y prácticas KUALI-BEH: Software project common concepts for authoring Software Engineering practices 3 Analyzing the conceptual correspondence between Blue WATCH´s basics and SEMAT´s essentials Parte II: El núcleo de SEMAT y la calidad de software 9 16 Identificación de criterios para relacionar la Usabilidad con el alfa Sistema de Software del núcleo de Semat. La gestión de las pruebas de software representadas con SEMAT Métricas de la norma ISO 9126: una representación basada en el núcleo de SEMAT 17 23 28 Representación en el núcleo de Semat de la Interoperabilidad para el Método de Desarrollo de Software del IGAC Parte III: Aspectos humanos en el núcleo de SEMAT 34 40 Representación en el núcleo de Semat de las competencias de Ingeniería Social necesarias para mejorar la Seguridad Informática 41 Una extensión del núcleo de SEMAT para la representación de prácticas de enseñanza de sistemas embebidos 47 Retos en la enseñanza del Núcleo SEMAT a estudiantes de ciclos propedéuticos de Ingeniería de Sistemas en Colombia Ethics: extending human aspects in Way-of-Working Parte IV: Agilismo 53 59 64 Guía para la Integración de Métodos Formales de Ingeniería de Requerimientos en Procesos de Desarrollo Ágil Metodologías ágiles como estrategias de enseñanza de desarrollo de software Incorporando SEMAT en un una metodología Ágil, para equipos distribuidos. 65 72 78 4 Prefacio C.M. Zapata Universidad Nacional de Colombia W.A. Arévalo Corporación CIDENET Nuestro Simposio Latinoamericano de Ingeniería de Software (LASES, por sus siglas en inglés) alcanza en este 2015 su cuarto año de realización. Durante varias ediciones, SEMAT se consolidó como el hilo conductor de nuestro simposio, dado que el núcleo de la Esencia, el nuevo estándar del OMG, posibilita la expresión de cualquier tema de ingeniería de software. En esta edición SEMAT y el agilismo son los dos temas centrales y nos permitirán develar temas de mucha actualidad relativa a la realidad de la ingeniería de software en nuestro medio y en el mundo. Cuatro grandes tópicos caracterizan esta nueva edición de LASES, todos ellos igualmente importantes e interrelacionados, si bien se exponen en el marco de la Teoría y Métodos de la Ingeniería de Software. En la primera parte se compendian trabajos relacionados con métodos y prácticas, donde se incluyen la visión de los métodos KUALI-BEH y Blue WATCH, correspondientes a dos prestigiosos grupos de investigación latinoamericanos. En la segunda parte se abordan varios artículos que permiten establecer la relación entre SEMAT y la calidad de software; allí, las características de calidad, como la usabilidad y la interoperabilidad, las métricas y la gestión de pruebas se emplean como tema de las representaciones en el núcleo de SEMAT. En la tercera parte se tratan los aspectos humanos en el núcleo de SEMAT, donde las competencias y la enseñanza de diferentes temas complementan la forma de trabajo en SEMAT. Finalmente, en la cuarta parte se tratan los temas de agilismo, en este caso dos artículos relacionados con los procesos de desarrollo ágil y la incorporación del agilismo en la enseñanza. Como en las anteriores ediciones de LASES, confiamos en que estos temas de actualidad se combinen y magnifiquen con la presencia de prestigiosos representantes de SEMAT, encabezados por Paul McMahon, uno de los autores del libro de la Esencia de la Ingeniería de Software donde se describe el núcleo de SEMAT, y otros miembros connotados de la ingeniería de software que nos acompañarán por videoconferencia, como es el caso de Ken Schwaber, padre de Scrum, Philippe Kruchten, autor del libro inicial del Proceso Unificado Racional y actualmente uno de los militantes del agilismo, y Scott Ambler, uno de los signatarios del Manifiesto Ágil. Bogotá recibe, entonces, esta pléyade de investigadores latinoamericanos y mundiales para hacer de esta nueva edición de LASES 2015 una nueva oportunidad para recalcar los fundamentos de nuestra disciplina, que a pasos agigantados se está proyectando hacia una real ingeniería, con los fundamentos teóricos necesarios, pero sin descuidar la práctica industrial que tendencias como el agilismo están entregando a los diferentes practicantes de la ingeniería de software. LASES es un espacio dedicado a difundir esta realidad y a confrontar los retos que nos entrega el futuro. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 1 , ISSN 2500-5014 Métodos y prácticas Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 2, ISSN 2500-5014 KUALI-BEH: Software project common concepts for authoring Software Engineering practices M. Morales-Trujillo & H. Oktaba KUALI-KAANS Research Group, National Autonomous University of Mexico, Mexico City, Mexico Introduction Overview This paper presents a summary of a PhD thesis named Identification and Formalization of Software Project Common Concepts (Morales-Trujillo & Oktaba, 2015). This thesis is the result of a research project developed as a response to Software Engineering Method and Theory (SEMAT) Call for Action (Jacobson et al., 2009) and Object Management Group (OMG) FACESEM Request for Proposals (OMG, 2011). Both initiatives were launched in order to refound Software Engineering, motivated in the need to transform it and to build theories around it, to understand it, and more importantly, generate proven knowledge (Jacobson et al., 2012). Motivation Software Engineering is one of the most knowledge intensive disciplines (Edwards, 2003; Bjørnson & Dingsøyr, 2008). However, this field contains proposals or theories that have no theoretical rigorousness and have not been adequately validated in practice. Theories are not subject to serious academic discussion; they are not evaluated or compared as regards traditional criteria of theoretical quality (Johnson et al., 2012). Therefore, Software Engineering actual behavior is currently controlled and guided by the practices used in industry and technological innovations (Wang, 2007), while its theory and foundations, which are essential in supporting its practices, are left aside (Johnson et al., 2012). The many differences between individual software projects make comparison difficult (Basili et al., 1986), besides it is afflicted by a lack of credible experimental evaluation and validation (Jacobson et al., 2012). These concerns in the discipline have motivated the creation and putting forward of various proposals (meta-models, frameworks, standards, etc.) in order to concentrate and collect knowledge and best practices. Nevertheless, those efforts represent a top-down approach, which means that when an organization decides to apply any of those proposals, it results in a new way of working, causing that the tacit knowledge that the practitioners of the organizations already acquired is ignored or abandoned in favor of the new one. At this point it is important to recognize that the tacit knowledge constitutes a valuable asset for the organization and it is not desirable to disappear. Based on that, this research project proposes a bottom-up approach that begins with the identification of the practitioners’ tacit Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 3 – 8, ISSN 2500-5014 knowledge, mainly reflected in their actual ways of working, with the purpose to transform it into explicit knowledge. Once the knowledge became explicit, more complex processes can be applied on it, allowing practitioners to share, compare and improve their ways of working with the intention to consolidate a set of practices applicable to their organization based on their own knowledge. Generalities Hypothesis and research objective The research hypothesis of this PhD thesis is: It is possible to support and improve the representation, adaptation, sharing, comparison and execution of the practitioners’ ways of working through a kernel of common concepts. The objective of the research is therefore: To define a kernel of common concepts/framework that supports the expression of practitioners’ ways of working carried out during software projects. Proposed solution This PhD thesis proposes KUALI-BEH: A bottom-up framework for software engineering practitioners working in small organizations. With KUALI-BEH they can formulate, progress, adapt and improve their ways of working in the form of practices and methods. Methodology The research followed the phases of Identification, Validation and Formalization. The identification phase consisted in defining each of the common concepts to be part of the kernel. The validation process consisted of a collaborative workshop, three case studies and a full standardization cycle in the OMG context. Finally, the formalization resided in the transformation of the kernel into a set of axioms, rules and notation. Along the three phases the partial results were presented at conferences and other forums in order to obtain feedback. KUALI-BEH Research Project According to (Harrison et al., 1999) Software Engineering needs strong foundations as a scientific and engineering discipline; theoretical and empirical research to support its foundations; sufficiently mature validation to support its advances (Belady & Lehman, 1976); and always involve scaling up to practice (Wieringa, 2014). Taking into account these premises and what is beneficial for our research, we turned to the methods of Technical-Action-Research (TAR) (Wieringa & Morali, 2012) and Case Studies (CS) (Runeson et al., 2012). Applied research strategy TAR is based on engineering cycles, which allowed us to valuable feedback on KUALI-BEH, and release improved versions for next cycles. Case studies are used to validate a theory or method by means of empirical tests, which means that KUALI-BEH was introduced in the real context and interacted with software engineers. Our research strategy was an integration of TAR and CS methods. TAR method was applied as a framework in which the evaluation during engineering cycles was carried out by applying the CS method and is described in more detail in the next subsections. The full description of the method can be accessed at (Morales-Trujillo et al., 2015a). Identification The goal was to identify a set of common concepts that are involved in software projects, and to organize them in order to express and structure Software Engineering methods. This first step is presented graphically in Figure 1. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 4 – 8, ISSN 2500-5014 The workshop provided feedback on several aspects of KUALI-BEH: some definitions were enhanced, additional operations were included and rules of the framework were improved. Family of case studies Figure 1. Steps developed during the first step of the research. The state-of-the-art review, identification, definition and modeling of common concepts were developed under an iterative approach together with a theoretical verification of the results. Figure 2 shows the 20 common concepts defined in KUALI-BEH. The next step of validation included three case studies developed in three different organizations. We guided the research by the question: Is KUALI-BEH suitable as regards defining practitioners’ ways of working during software projects? And the following objectives were identified as appropriate: 1. 2. 3. To demonstrate the sufficiency of the KUALI-BEH elements in describing practitioners’ ways of working. To measure the feasibility of using the concept of Practice to express practitioners’ tacit practices. To identify the value obtained by the organization as a consequence of defining its own method composed of its own practices. CASE STUDY 1 took place at InfoBLOCK, a Mexican organization dealing with hardware construction and software development. 2 general managers and 2 programmers were involved and the following objectives were pursued by the organization: To define the actual software development process of the organization. To be aware of what is being done by the work team at a particular moment during the development process. Figure 2. Mind map of the identified software project common concepts. Collaborative workshop The result of the Identification Phase was the artifact KUALI-BEH 1.0, which was subjected to discussion during a collaborative workshop. The workshop was attended by active practitioners from industry and academy and consisted of 8 on-site and online sessions, during which the participants were involved in Q&A runs, activities, surveys and homework. After its first immersion into a real context KUALI-BEH 1.1 was adjusted according to the case study results and evolved into KUALI-BEH 1.2. This version of the artifact participated in CASE STUDY 2 that took place at Entia, a Mexican IT company with 20 employees. This organization uses a game-centered workshop to elicit and prioritize software product requirements, which was undocumented. Their particular objective was to document each step of the game-centered workshop which allows the organization to carry out the inception phase of its projects. During this case study the artifact’s usefulness was Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 5 – 8, ISSN 2500-5014 demonstrated; besides it operated inside a context in which software development was not the main purpose. The complete version is presented in (Morales-Trujillo et al., 2014). During CASE STUDY 3 we worked with KUALI-BEH Extension at a Tech Institute, specifically at a software development entity in a business incubator program. Their objectives were: to document their software development process; and to train new work team members using the defined process, which were fully achieved. The extended version is found in (Arroyo-López et al., 2015). As a whole, the real context immersion proved that our proposal is suitable for defining practitioners’ ways of working, has real value for practitioners and is easy to understand. The integration of TAR and CS turned out to be a valuable research method for the purposes of this research: its iterative approach allowed to obtain continuous feedback, it benefited the organizations involved in this research, we applies theories in practice and solve real problems by solving real problems. OMG standardization process As mentioned in the Overview subsection, the KUALI-BEH project was initiated as a response to the FACESEM RFP. Therefore our research group (KUALI-KAANS) had to become an OMG active member and follow the standardization process of the consortium. Other organizations also responded to the call-for-action, and their proposals were published internally for OMG members. After OMG task force assessed how well the submissions meet the requirements stated in the RFP, only two proposals continued participating, and were invited to merge into one proposal. For this task to be a success, the SEMAT Latin America chapter was involved; it analyzed the proposals, presented a mapping of common concepts and suggested an integration strategy. Later on, the OMG boards and committees voted for adoption, thus KUALI-BEH became a normative annex of the standard ESSENCE – Kernel and Language for Software Engineering Methods (OMG, 2014). The complete narration of this experience can be found in (Morales-Trujillo et al., 2015b). Formalization This phase of our research addresses theoretical concerns and is mostly method engineers oriented. We presented the knowledge in the form of an ontology, an algebra based on Situational Method Engineering and Description Logics. The Ontology helped us to clarify the knowledge structure, to reduce conceptual and terminological ambiguity, and to allow the sharing of knowledge. Theories behind the Situational Method Engineering provided KUALI-BEH with axioms, predicates and functions, which, in its turn, gives means for theorizing and algebraic sustain. As for Description Logics, it contributed to the formal knowledge representation, allowed for reasoning and inferring knowledge. Related to the above presented, we find in this thesis: KB-O: the language. A common representation of knowledge as a set of concepts, attributes and relationships of a domain in the form of ontology KB-A: the algebra. A set of predicates, functions and operations in order to represent the common concepts, properties and operations. And, KB-K: the knowledge. The knowledge representation as a set of logical statements. Research Contributions As far as research contributions are concerned, they fall into four categories. First, this work contributes to the Theoretical Software Engineering by having identified the universals of software projects from Method Engineering, Situational Method Engineering, Process Reference Models, Process Metamodels and related Standards. Our research confirmed that Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 6 – 8, ISSN 2500-5014 the knowledge collected in these corpus depends on a top-down approach which needs to be acquired by organizations, and does not allow the organization practitioners to express their own practices. In contrast, the KUALI-BEH bottom-up approach implies the expression of practitioners’ tacit knowledge in order to build up the organization’s way of working. It allows practitioners to express, adapt and share their ways of working as a collection of methods and practices. As a result it contributes to the enrichment of Software Engineering theory by collecting the practitioners’ knowledge. Second, we contribute to the Practical Software Engineering. After validating KUALI-BEH through a collaborative workshop and three case studies, we conclude that it is a valuable alternative for practitioners and small organizations, since it offers to make a first step to bridge the gap between Software Engineering theory and practice. KUALI-BEH permits small organizations to create an organizational method repository comprising their knowledge, and to gradually introduce them to the adoption of standards and reference models. KUALI-BEH enabled three entities to undertake an authoring project that led them to a software process improvement. In consequence, with their ways of working expressed, a deeper reasoning about it was possible, allowing practitioners to adapt, share and compare it in order to improve it. As a whole, the combination of these factors derived in valuable results for the organizations that applied KUALI-BEH, becoming a solution within reach for practitioners and effectively achieving the organization’s needs in the industrial context. Third, efforts related to Standardization should be mentioned. We responded to the request as a submitter by creating the KUALI-BEH proposal, thus joining the standardization effort from the beginning. Three years later, the active contribution to the OMG standardization process generated valuable lessons learned, which concern the wide variety of IT standards and their lack of aligned definitions, the importance and necessity of standardization efforts despite their not being appreciated by the academic community, and the advantages and beneficial results of industrial-academic synergy. Finally, throughout the OMG standardization process, KUALI-BEH is making an active contribution to the identification of both the theoretical and practical universal elements. Its fusion with the ESSENCE proposal and its eventual appearance as a useful and applicable standard completed the standardization effort. Fourth, we shall mention contributions to Education in Software Engineering. The Software Engineering undergraduate course for the Bachelor’s degree in Computer Science at the Science Faculty of the UNAM, has been redesigned using the KUALI-BEH approach, bringing Software Engineering theory and practice closer to bachelor degree students. The theoretical part of the course is presented and supported with a set of practices that expresses distinct ways of working in real life. The practical part of the course is based on the practice instance execution and method enactment, following those defined in the KUALI-BEH operational view and supported by the boards defined as an alternative in managing the project developed by the students. Conclusions Analyzing the additional research goals set for this project, we find that: The universals of software projects were identified by carrying out an in-depth study. A kernel of common concepts that facilitates the transformation of practitioners’ tacit knowledge into explicit knowledge was established. A description of methods as a composition of practices using the defined language was achieved. A conceptual framework that supports understanding between concepts, terms and relations around software projects was established. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 7 – 8, ISSN 2500-5014 The framework was validated in real organizations, and was applied by software engineering practitioners to their everyday efforts. Therefore, we conclude that the main objective of this research was fully achieved. Future lines of research can be outlined as follows: to enhance the robustness of KUALI-BEH, to develop a set of KUALI-BEH profiles, to develop and release a fully functional technological environment, and to create a global infrastructure of methods and practices. References Arroyo-López, E., Ríos-Silva, T., Morales-Trujillo, M., Rico-Martínez, A., Oktaba, H. (2015). Expresando Nuestra Manera de Trabajo con KUALI-BEH: Lecciones Aprendidas por Tic-Tac-S. In Proceedings of the CONISOFT’15, pages 25–32. Basili, V., Selby, R., and Hutchens, D. Experimentation in software engineering. IEEE Trans. Softw. Eng., 12(7):733–743, July 1986. ISSN 0098-5589. Belady, L. and Lehman, M. (1976). A model of large program development. IBM Syst. J., 15(3):225–252. Bjørnson, F. O. and Dingsøyr, T. (2008). Knowledge management in software engineering: A systematic review of studied concepts, findings and research methods used. Inform. Software Tech., 50(11):1055 – 1068. Edwards, J. S. (2003). Managing software engineers and their knowledge. In Managing software engineering knowledge, pages 5–27. Springer. Harrison, R., Badoo, N., Barry, E., Biffl, S., Parra, A., Winter, B., and Wst, J. (1999). Directions and methodologies for empirical software engineering research. Empirical Software Engineering, 4(4):405–410. Jacobson, I., Meyer, B., and Soley, R. (2009). The SEMAT initiative: A call for action, December 2009. Johnson, P., Ekstedt, M., and Jacobson, I. (2012). Where’s the theory for software engineering? IEEE Softw., 29(5):96. KUALI-KAANS Research Group. http://kualikaans.fciencias.unam.mx/ Morales-Trujillo, M. and Oktaba, H. (2015). Identification and Formalization of Software Project Common Concepts. PhD thesis, National Autonomous University of Mexico. Morales-Trujillo, M., Oktaba, H., and González, J. (2014). Improving software projects inception phase using games: ActiveAction workshop. In Proceedings of the ENASE’14, pages 180–187. Morales-Trujillo, M., Oktaba, H., and Piattini, M. (2015a). Using Technical-Action-Research to Validate a Framework for Authoring Software Engineering Methods. In Proceedings of the ICEIS'15, pages 15–27. Morales-Trujillo, M., Oktaba, H., and Piattini, M. (2015b). The making-of an OMG standard. Computer Standards & Interfaces.42, November: 84–94. OMG. Object Management Group. http://www.omg.org/ OMG. (2011). A foundation for the agile creation and enactment of software engineering methods (FACESEM) RFP. Technical report, Object Management Group, Needham, MA, USA. OMG. (2014). ESSENCE - Kernel and Language for Software Engineering Methods. Technical report, Object Management Group, Needham, MA, USA. Runeson, P., Host, M., Rainer, A., and Regnell, B. (2012). Case Study Research in Software Engineering: Guidelines and Examples. Wiley. SEMAT. Software Engineering Method and Theory. http://www.semat.org/ Wang, Y. (2007). Software Engineering Foundations: A Software Science Perspective. Auerbach Publications, Boston, MA, USA, 1st edition. Wieringa, R. (2014). Empirical research methods for technology validation: Scaling up to practice. J. Syst. Softw., 95:19–31. Wieringa, R. and Moralı, A. (2012). Technical action research as a validation method in information systems design science. In Proceedings of the DESRIST’12, pages 220–238. Springer-Verlag. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 8 – 8, ISSN 2500-5014 Analyzing the conceptual correspondence between Blue WATCH´s basics and SEMAT´s essentials Judith Barrios A. & Jonás Montilva C. University of Los Andes, Faculty of Engineering, School of Systems Engineering, Computer Science Department, GIDyC, Mérida, Venezuela Introduction Software development is a complex process that requires not only programming languages knowledge and experience, support tool capabilities and software product domain understanding. It also demands work planning and organization, in order to understand and develop the customer requirements that the final software product must satisfy. Consequently, software developers require domain knowledge, tools competences, guidelines and practices for organizing, controlling, performing, validating and visualizing the progress of the development work. In the literature, we found a lot of methodological proposals, methods, techniques, languages and notations that aim to support a great variety of these software development activities. Most of these proposals are just adaptations and/or extensions of the activities associated to the traditional software life cycle. Generally, these interrelated activities are grouped into phases and arranged in order to meet particular project characteristics, such as: software type, required software functionalities and resources, time and budget restrictions, management and technical procedures, practices, skills, and team project experience, as the most frequent criteria for selecting and grouping these activities. However, how the project will be finally executed depends also on particular context situations which come directly from client`s organization, current project conditions (i.e., organizational domain and culture, technological infrastructure, human and financial resources, time to market, etc.), and from the project leader`s domain experience and knowledge. With the intention of generalizing main concepts involved in any software development project and reduce the time and effort that the project leader needs to define how to develop a particular product, we defined a suite of methods called WATCH, which is oriented to support software development projects. WATCH is a set of method variants that are defined over the same set of common concepts and their particular extensions (Barrios & Montilva, 2011a). This suite of methods has been conceived for supporting Venezuelan and Latin-American software industry, as well as to help software engineering teaching at Spanish spoken universities. WATCH conceptual models are represented at three levels of abstractions. The highest level of abstraction generalize those software development concepts mostly involved in any software development project, named core concepts; medium abstraction level models are specializations or extensions of those core concepts according to software product domain, organizational and work team size, context and experience. At this level we characterize method variants by representing basic concepts through three complementary sub-models: product model, process model and actor model. The lowest level of abstraction is created by instantiating the medium abstraction level sub-models to use a Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 9 – 15, ISSN 20500-5014 method variant for developing a particular software product. The more significant contribution of these three levels representation is the possibility of adapting, extending and enacting software development process according to software project context and domain. The WATCH initial version was published by Montilva and Barrios in 2003. A few years later, in 2009, an original initiative searching to define a theory supporting software engineering work, called SEMAT (Software Engineering Methods and Theory), wrote a call for action and a vision statement that aimed to tie experience and research effort for reducing the gap existent between the developers and academic software communities (http://semat.org). The call for action and the vision statements concerned the main problems found in the exercise of software engineering discipline by practitioners. Among the most relevant of these statements are: immature practices, many software development methods and variants, lack of experimental evaluation and validation, and the divergent courses of research and practice in software engineering. The first result of this initiative was a kernel of the common concepts always involved in the software development work. The concepts were grouped into two set of essentials: “things we always work with” and “things we always do” when developing software systems. This core of fundamental elements implicated in software development was structured into three areas: customer area, solution area and endeavor area. The kernel was conceived as a common ground independent of domain. It is based on a set of alphas (Abstract Level Progress Health Attribute) and their states for controlling the progress of the software development work. The set of alphas can be extended with new practices or work products; the obsolete ones may be eliminated (OMG, 2013). In both initiatives, the essential or basic elements were abstracted from project implementation and consulting experiences, as well as from adapted and repeated ways of working followed for developing different kinds of software products. The purpose of this work is to model the existing correspondence between these two set of software development fundamental concepts: the SEMAT kernel and the WATCH conceptual models. Considering that both initiatives searched to establish a small set of common elements implicated in the process of developing a software product, this article aims to highlight similarities and differences among them. We observed that, even when both approaches use different point of view, specification languages and techniques for representing fundamental concepts, there is a closed conceptual relationship between WATCH and SEMAT. As a result, we are able to corroborate that the core of concepts of the WATCH suite of methods is valid, applicable, and well founded. The rest of the paper is structured as follows. Section 2 introduces the WATCH meta-model and the basic concepts of one of its variant: the Blue_WATCH method. Section 3 presents briefly the SEMAT initiative and its kernel or essential concepts for software development. Section 4 contains the correspondence analysis between WATCH basic concepts and SEMAT essentials already described in section 2 and 3, respectively. The analysis leads us to highlight similarities and differences between these two set of fundamental concepts, which are discussed in the concluding section. WATCH basic concepts WATCH is a methodological framework supported by a set of basic software development concepts that can be assembled and extended to compose specific methods (Barrios & Montilva, 2011a), (Barrios & Montilva, 2013). A basic concept may be ab common and invariant element that is always involved in the process of building high quality software products, an element that represents a characteristic or state of the software product being built or an extension of some other core concept. As a consequence, a basic concept is used by most software development methods, frameworks and methodological propositions. Therefore, its value and relevance in the process Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 10 -15, ISSN 2500-5014 of software product development has been recognized; for instance, concepts like artifact, activity, user or stakeholder are present in well-known methods, such as RUP, SCRUM, XP and many others. Generally, these basic elements are tied to the software development cycle and are related to common software engineering techniques and practices for producing software products. Furthermore, these elements were also abstracted from the day to day software development practice and successful software project experiences. In order to represent the most common elements involved in the development process, we identified what is done most of the time, what sorts of practices are applied, under which conditions and project types they are applied, and what was the most frequent context of their usage. A similar approach was implemented for identifying common artifacts, intermediate and final software products involved in the development process. We set these common elements as the core of the WATCH meta-model which aims to serve as a methodological framework for defining method variants. Figure 1 shows the main concepts and relationships that compose our meta-model. The basic concepts are placed within two boundaries according to their organizational or project context of use. and/or specializations of basic concepts for handling some software project particularities such as project type, team size and experience, product characteristics or domain problems. In (Barrios & Montilva, 2011a) and (Barrios et al., 2011), we describe, in detail, the relation between WATCH meta-model and its adaptations for defining method variants. Initially, the WATCH method suite was composed by six variants; but just three of them are the most used in Venezuelan context: the Gray-WATCH (Montilva & Barrios, 2003), the White-WATCH and the Blue-WATCH (Montilva et al, 2011). The later one is the balanced version of the suite and contains, among others, practices associated with the agile software development approach. For the purpose of this paper, we chose the conceptual model of the Blue WATCH variant, because it extends the initial basic meta-model with agile concepts. This variant is divided into three complementary sub-models according to method engineering recommendations: product model, process model and, actor model. Figures 2 and 3 show two of the three Blue-WATCH conceptual models. For space reasons, the actor model is not shown. The product model classifies the software development products in two categories: intermediate and delivery products. The process model is also divided in two categories: technical and support process, according to the software development value chain. The actor model is a typical classifications of actors according to the roles they play in a software development project. The conceptual relationships between the three models can be derived from Fig. 1. Figure 1. The WATCH meta-model WATCH is a method suite built over this set of software development basic concepts. A method variant is the result of instantiations, extensions Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 11 -15, ISSN 2500-5014 of concerns: (1) a set of basic elements, called alphas, the essential things that developers always produce or work with, (2) the activities spaces that represent the essential things to do, and (3) the key competences that are required to do software engineering. In order to express kernel areas of concern in a representation comparable to WATCH conceptual models, we elaborate the class diagrams of figures 4 and 5 that represent the alphas and the activities spaces, respectively. Figure 2. Blue-WATCH product model Figure 4. The Kernel Alphas Figure 3. Blue-WATCH process model SEMAT Kernel of essentials SEMAT is an initiative founded in 2009 by Ivar Jacobson, Bertrand Meyer and Richard Soley. Their idea was working towards a new and simple relationship between software engineering research and practice. SEMAT aims to support processes for redefining software engineering based on a solid theory, proven principles, and best practices. A kernel of the essential elements of software engineering is their first contribution to the software development community. One of its main intended uses is in helping practitioners compare methods and make better decisions about their practices (OMG, 2013). At a glance, this kernel is composed by three areas Figure 5. The Kernel Activity Spaces As shown in figure 3, the kernel alphas are arranged according to three levels of concern: Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 12 -15, ISSN 2500-5014 Customer, Solution and Endeavour. The area of Customer defines alphas related to software product customer and he/her organizational context. It includes problems or opportunities, exigencies and information about the SW system to be elaborated. The Solution area groups the alphas concerned with the SW product to be elaborated. The Endeavour area concerns all management elements needed for building the software solution according to customer requirements. Figure 4 shows the core activities or “things to do” organized by the three areas of concerns: customer, solution and endeavor. Comparing WATCH conceptual models and SEMAT essentials In order to make a more fair comparison, we rearrange Blue_WATCH basic concepts into two groups according to SEMAT “things to work with” and “things to do”. Consequently, the analysis is made between Blue_WATCH product and actors models with SEMAT “things to work with” and, Blue_WATCH technical process model with “things to do” of SEMAT initiative. Another perspective considered for the comparison analysis is the separation of SEMAT “things to do” into three areas: Customer Area, Solution Area and, Endeavour Area. Therefore, the Solution Area corresponds to the WATCH set of technical processes; the Endeavour Area corresponds to the Project Management process, and Customer Area corresponds to some technical and project management processes already included in the technical and support WATCH process models. The diagram shown in figure 6 establishes the correspondence between both groups of conceptual models. By analyzing the global models of WATCH and SEMAT showed in figures 1 and 4, respectively, we observe that there is almost a complete correspondence among the fundamental concepts defined for both approaches, except for the concept of resources linked to a software development project in WATCH, which it is not explicitly considered in the SEMAT model. This concept of resource implicated in a software project is only considered by SEMAT kernel at a more detailed view of “things to do”; but, just under the perspective of humans and tools required for performing software development work. With regard to the product model of Blue_WATCH, we observe that the concepts of software product, and its classification into technical and support processes, are not present in the kernel, neither the concept of intermediate product. The kernel only considers the software system, which is a final or delivery product of any software development project. At the software project management level or area, the kernel includes explicitly the progress cards as a support element for tracking progress of work according to changes in alphas´ states. In the analysis for the endeavor area, we noticed that the kernel activities for preparation of work suggest a work plan, but it is not included as an essential element. Blue_WATCH models define a project plan as a basic element to support the progress of a software project. This is one the most relevant differences between both conceptual models. Figure 6 provides a global view of Blue_WATCH and SEMAT Kernel correspondence; i.e. the general WATCH concepts of Product, Process, Actor and resources with the “things to do” and “things to work with” of the kernel. Besides, the diagram of this figure makes explicit the relationships between the technical and support processes and the Customer, Solution and Endeavour areas of concern. WATCH models consider that an intermediate or final software product must be produced by the execution of technical, support or management activities of a software project. The quality of a product is linked to the quality of the process performed to produce it; thus, in a software development project, actors perform not only technical processes but also managerial and support processes, such as: Project Management, Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 13 -15, ISSN 2500-5014 Product Validation and Verification, Software Configuration Management, Quality Assurance, and Project Risk Management. These technical and support processes are well detailed in (Montilva et al., 2011). In SEMAT kernel, the activity space has its correspondence with Blue_WATCH process model for some technical and support activities involved in software development; but, in regard to the support process, the kernel only includes some project management activities into the alphas´ states at the solution area, as well as the activities of the Endeavour area concerned with prepare, coordinate and track the work. group of activities. Other support activities required to develop a high quality software product like quality assurance, software configuration management, validation and verification are not explicitly included in the kernel. Taking into account the high level motivation of the kernel definition, we understand that these elements may be added as extensions of the concepts already included under the responsibility of practitioners. Considering the defined set of alphas, we observe that Blue_WATCH product model does not explicitly contain a state for tracking and, in consequence controlling progress of a development process; nor a similar concept to assess the states of alphas or other software products. However, Blue_WATCH process model incorporate equivalent activities, and their support products, in the project management process included as one of the Support Processes group (see figure 3). Conclusions Figure 6. SEMAT Kernel and WATCH Conceptual Models correspondence at a high level of abstraction In this sense, we observe that SEMAT essentials are mostly concentrated on the technical elements of software product development rather than the associated technical development activities; except for the inclusion of some management elements which are linked to the project of software development at the endeavor In this paper, we have presented a correspondence analysis between Blue_WATCH conceptual models and the essentials of the SEMAT kernel. We focused the analysis on comparing mostly Blue_WATCH product and process models with kernel essentials. The concept of actor is taken into account just from a general point of view as the personal that is on charge of developing software products by executing software process´ activities. As a result of the correspondence analysis, we are able to confirm the validity and applicability of the WATCH method suite for guiding software development projects; i.e. taking into account that the kernel proposed by SEMAT aims to support creation, use and improvement of software engineering methods, and confirming the fact that most of WATCH basic concepts are, in some way, considered by the kernel, we can corroborate the validity and applicability of WATCH method suite for supporting a software development project. It is important to remind that Blue_WATCH is a Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 14 -15, ISSN 2500-5014 method variant that needs to be adapted for being applied in a particular software project, hence its level of detail is larger than that of the SEMAT kernel. Due to space restrictions, we did not present all Blue_WATCH model elements. Our goal was to evaluate if the basic concepts upon which we built the method variant were included into the kernel essentials. A comparison of other elements, such as actor´s competencies, agile practices and modeling languages were left for future work. The kernel essentials are really fundamentals and key for any software development work. Nevertheless, we consider that the kernel of essential might add some more elements “things to work with” related to the area of endeavor activities because the quality of a software product is strong related to the activities that support technical work. Conference on Enterprise Information Systems. Proc. of ICEIS´2003. Angers, France: 23-26, April. Montilva, J., Montilva, W., & Barrios. J. 2011. Blue WATCH: Un marco metodológico balanceado para el desarrollo de software en pequeñas empresas. Ninth Latin-American and Caribbean Conference, Engineering for a Smart Planet, Innovation, Information Technology and Computational Tools for Sustainable Development, Proc of LACEEI 2011. Medellin, Colombia. Agosto. OMG. 2013. Essence – Kernel and Language for Software Engineering Methods. OMG Document Number ptc/2013-06-08. Object Management Group. Acknowledgements This work is part of the results obtained from Projects 2005000165 and 2012001090 sponsored by the Venezuelan National Found of Science, Innovation and Technology (FONACIT). REFERENCES Barrios, J. & Montilva, J. 2011a. Watch: a suite of methods for facilitating software development process adaptability. In Carlos M. Zapata, et al (eds), Software Engineering: Methods, Modeling and Teaching: 55-68. Medellin: Sello Editorial. Barrios, J. & Montilva, J. 2011b. A balanced and adaptable method for software development in very small enterprises: the blue watch variant. In Carlos M. Zapata, et al (eds), Software Engineering: Methods, Modeling and Teaching: 39-54. Medellin: Sello Editorial. Barrios, J. & Montilva, J. 2013. Integrating the Methodological Frameworks WATCH and SCRUM. A Method Engineering Approach. Conferencia Latinoamericana en Informática. Actas del CLEI 2013. Caracas, Venezuela Octubre. Barrios, J., Montilva, J. & Rivero, D. 2011. The WATCH Method Suite in Practice: two complementary perspectives of use. Actas de la Conferencia Latinoamericana en Informática. CLEI 2011. Quito Ecuador. Octubre. Krutchen, Ph. 2000. The Rational Unified Process, Second Edition. Addison-Wesley. Montilva, J. & Barrios, J. 2003. A Component-Based Method for Developing Web Applications. 5th International Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp.15 – 15, ISSN 20500-5014 El núcleo de SEMAT y la Calidad de Software Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 16 , ISSN 2500-5014 Identificación de criterios para relacionar la Usabilidad con el alfa Sistema de Software del núcleo de SEMAT W. Perdomo Universidad de San Buenaventura, Medellín, Colombia C. M. Zapata Universidad Nacional, Medellín, Colombia Resumen Una de las áreas más importantes para Semat (iniciativa para los métodos y teorías de la ingeniería de software) es la calidad de software. Algunos de los criterios que se evalúan dentro de la norma ISO/IEC 9126 son las características y subcaracterísticas de medición de la calidad mediante métricas internas, externas y de calidad en uso. En este artículo se realiza un contexto de Semat y de la norma ISO/IEC 9126. Adicionalmente, se muestra una revisión de literatura disponible sobre modelos de medición de la calidad en productos de software, con el fin de identificar algunos criterios, para definir la relación entre la característica de usabilidad de la métrica externa de la norma, con el alfa sistema de software y sus estados del núcleo de Semat. PALABRAS CLAVE: ISO/IEC 9126, Semat, calidad de software, métricas, alfas, estados. Introducción La medición del software es una herramienta que permite el desarrollo de software de calidad para todo su ciclo de vida. Para la medición del software se utilizan métricas, que permiten obtener un valor numérico de las características de calidad de un producto de software [1]. Para representar, caracterizar y medir la calidad de software existen la norma ISO/IEC 9126 como un estándar internacional para la evaluación de la calidad, que se divide en cuatro etapas: modelo de calidad, métricas externas, métricas internas y la calidad en el uso de métricas [2]. En cuanto a la ingeniería de software, en 2009 nace una nueva iniciativa para los métodos y teoría de la Ingeniería de Software (Semat), la cual se puso en marcha con el objetivo de refundar la ingeniería de software como una disciplina rigurosa que se base en una teoría sólida, principios probados, y las mejores prácticas [3]. Semat sugiere que un método es una composición de las prácticas que se describen en términos de los elementos esenciales del núcleo. Además, sugiere un lenguaje de dominio específico que se utiliza en la definición de los elementos del núcleo y su uso [4]. En este artículo se presenta una revisión de literatura disponible sobre los modelos de medición de la calidad en productos de software, con el fin de identificar algunos criterios para definir la relación entre la característica de usabilidad de la métrica externa de la norma, con el alfa sistema de software y sus estados del núcleo de Semat. Marco Conceptual Modelos de evaluación de la calidad de software La revisión y las pruebas del software son procesos orientados a la detección de defectos en el producto. McCall [7] y Boehm [8], Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 17 –22, ISSN 2500-5014 descomponen el concepto de calidad en propiedades más sencillas de medir y de evaluar. El modelo de McCall se basa en la descomposición del concepto de calidad en tres usos importantes de un producto de software, desde el punto de vista del usuario: operación, revisión y transición del producto [7]. Cada propiedad se descompone en una serie de factores a saber: facilidad de uso, integridad, fiabilidad, corrección, flexibilidad, facilidad de prueba, facilidad de mantenimiento, transportabilidad, reusabilidad e interoperabilidad. Este modelo fue el primero en proponer la evaluación de la calidad del software por medio de métodos automáticos y cuantitativos [8]. Otros modelos [9] proponen el paradigma GQM, (objetivo-pregunta-métrica) para evaluar la calidad de cada proyecto. En 1991, la Organización Internacional de Estándares (ISO) en conjunto con la Comisión Electrotécnica Internacional (IEC) propusieron un estándar para la evaluación de la calidad del software, denominado ISO/IEC 9126 [10]. El estándar ISO/IEC 9126 consta de cuatro partes: modelo de calidad [11], métricas externas [12], métricas internas [13] y métricas para la calidad en uso [14]. Así, se propone un modelo de calidad categorizando los atributos de software en seis características (funcionalidad, fiabilidad, usabilidad, eficiencia, mantenibilidad y portabilidad), las cuales se subdividen en subcaracterísticas (véase la Fig. 1). SEMAT En 2009, nace una nueva iniciativa para los métodos y teorías de la Ingeniería de Software (Semat), la cual se puso en marcha con el objetivo de refundar la ingeniería de software como una disciplina rigurosa que se base en una teoría sólida, principios probados y las mejores prácticas [3]. Los espacios de actividad de la esencia del núcleo de Semat se enfocan en tres áreas de interés, a saber [5]: Esfuerzo: prepararse para hacer el trabajo, coordinar actividades, apoyar el equipo, rastrear el progreso y detener el trabajo. Solución: comprender los requisitos, darle forma al sistema, implementar el sistema, probar el sistema, desplegar el sistema y operar el sistema. Cliente: explorar posibilidades, comprender las necesidades del interesado, asegurar la satisfacción del interesado y usar el sistema. También, se identificaron siete elementos necesarios del núcleo o "Alfas" [3], que son [5] [6]: oportunidad, interesados, requisitos, sistema de software, trabajo, equipo y forma de trabajo. Los alfas se caracterizan por un simple conjunto de estados que representan su progreso y salud. Esos estados hacen que el núcleo sea accionable y lo habilitan para guiar el comportamiento de los equipos de desarrollo de software (véase la Fig.2). Revisión de Literatura Figura 1. Características de calidad ISO 9126. Fuente: tomado de [11] La norma ISO/IEC 9126 [15] se evalúa la calidad de las aplicaciones B2B con un modelo personalizado de acuerdo con las características especiales de aplicaciones B2B. La personalización se realizó mediante la extracción de los factores de calidad de las aplicaciones Web y aplicaciones de comercio electrónico, ponderando estos factores desde los puntos de vista de los desarrolladores y los usuarios finales. En una empresa del sector hidrocarburífero [16] se evalúa la calidad del software de producción, para lo cual se determinan las métricas que Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 18 – 22, ISSN 2500-5014 permiten medir la calidad de un producto de software. Se parte de la comparación de parámetros de calidad de un proyecto con estimaciones realizadas mediante el uso de estándares internacionales y datos que aportan la experiencia en otros proyectos. El cumplimiento de las diferentes características y subcaracterísticas se puede apreciar en la Tabla 1. Este análisis permite calcular la probabilidad de certificación de la empresa en cuestión a la luz de la norma. Figura 2. Los alfas y sus estados en el núcleo de Semat. Fuente: tomado de [5] Tabla 1. Cumplimiento de características de calidad. SUB-CARACTERÍSTICA Cumple No Cumple No Requerida Total Funcionalidad Característica 3 1 1 5 Confiabilidad 3 0 1 4 Facilidad uso 3 1 1 5 Eficiencia Facilidad mantenimiento 2 3 1 6 3 1 1 5 Portabilidad 2 1 1 4 Totales 16 7 6 29 ello, sólo se evaluaron características que son susceptibles de aplicar al modelo conceptual, como funcionalidad, usabilidad y mantenibilidad. Identificación de criterios para relacionar la usabilidad con el alfa sistema de software y sus estados La métrica de usabilidad, mide el grado en que el software se puede comprender, aprender, operar y relacionar con las normas de usabilidad [12]. Los usuarios prueban muchas métricas de usabilidad externas, al intentar utilizar una función. Las capacidades de los usuarios y las características del sistema de acogida influyen en los resultados. Esto no invalida las medidas, ya que el software evaluado se ejecuta en condiciones especificadas explícitamente con una muestra de usuarios que son representativos de un grupo identificado. Entre las características de la métrica, se tienen las siguientes sub-características: comprensibilidad, facilidad de aprendizaje, operabilidad y atracción. Con lo anterior, y como resultado del análisis y la relación entre la característica de la métrica y los estados del alfa sistema de software, se tiene: demostrable, usable, listo y operacional, se muestra en la Figura 3 el esquema de relación de la característica usabilidad con los estados del alfa. Fuente: tomado de [16] Otros autores [17] utilizan la ISO/IEC 9126-3 para evaluar los criterios de calidad del modelo conceptual, dentro del ciclo de vida de las bases de datos. Para esta evaluación se aplican métricas internas y se identifican criterios que no se evalúan, como, por ejemplo, la portabilidad, debido a que es un criterio que requiere una implementación física del modelo de datos; por Figura 3. Esquema de relación usabilidad, estados del alfa sistema de software. Fuente: elaboración propia En la Figura 3 se observa que existe una relación directa de cuatro de los seis estados del alfa sistema de software con cada una de las Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 19 – 22, ISSN 2500-5014 subcaracterísticas de la característica usabilidad, dejando por fuera de este esquema los estados “con arquitectura seleccionada” y “retirado”, cada uno relacionado con las características funcionalidad y portabilidad respectivamente, que es tema de otro estudio. El objetivo del esquema de la Figura 3 es identificar los criterios de la relación de estados del alfa sistema de software y la característica de usabilidad, encaminados al cumplimiento efectivo de las métricas establecidas en la norma ISO/IEC 9126:2, sin descuidar el significado de cada uno de los estados del alfa. Como se observa en la Tabla 2, se establecen las métricas externas que permiten relacionar el estado del alfa con la característica y sus subcaracterísticas. Como se observa en la tabla, se identifican las relaciones entre la característica de usabilidad, los estados del alfa sistema de software y las métricas de la norma ISO/IEC 9126:2, que se relacionan directamente con cada una de las definiciones de los estados del alfa y de la subcaracterística. Algunas de las métricas se relacionan directamente y las que no aplican (NA) se especifican en la tabla. Así, la subcaracterística de comprensibilidad se articula con el estado del alfa demostrable y a éste se le deben aplicar las métricas establecidas en la norma, para validar la calidad del producto de software en términos del uso previsto, identificando si es adecuado y verificando la forma en que se puede utilizar para tareas particulares. Tabla 2. Relación de métricas de la característica usabilidad con los estados del alfa Subcaracterísticas Usabilidad Estados del Alfa Sistema de Software Usable Integridad de la descripción (arquitectura de software). Demostración efectiva. Función evidente. Función comprensibilidad. Entrada y salida comprensible. NA Listo NA Operacional NA Demostrable NA Facilidad de aprendizaje para realizar una tarea en uso. Demostrable Comprensibilidad Facilidad de aprender Métricas externas por aplicar Norma ISO/IEC 9126:2 Usable Subcaracterísticas Usabilidad Estados del Alfa Sistema de Software Listo Operacional Demostrable Usable Listo Operabilidad Operacional Demostrable Usable Atracción Listo Operacional Métricas externas por aplicar Norma ISO/IEC 9126:2 Efectividad de la documentación del usuario y / o sistema de ayuda. Facilidad de la función de aprendizaje. Ayuda y accesibilidad. NA Personalización. La accesibilidad física. NA Coherencia operacional en uso. La corrección de errores en uso. Corrección de errores. Disponibilidad de valor por defecto en uso. Comprensibilidad de mensajes en uso. Recuperabilidad de error operativo en uso. Tiempo entre operaciones del error humano en uso. Reducción del procedimiento de operación. NA Personalización apariencia de interfaz. Interacción atractiva. Personalización apariencia de interfaz. Fuente: elaboración propia En el caso de la subcaracterística facilidad de aprender, sólo se articula con los estados usable, listo y operacional, teniendo en cuenta que su propósito es el de evaluar cómo los usuarios a lo largo de la utilización del producto tardan en aprender a utilizar determinadas funciones, y la eficacia que tienen los sistemas de ayuda y documentación. La sub-característica operabilidad, se relaciona directamente con los estados usable y operacional, teniendo mayor articulación con éste último debido a que, mediante la métrica, es posible evaluar la capacidad de los usuarios para operar y controlar el producto de software. Finalmente, la sub-característica atraccción muestra una fuerte relación con los estados usable, listo y operacional, ya que se enfoca en la capacidad de evaluar el aspecto del software, influenciado por factores como el diseño y el color, enmarcados en la métrica de personalización del producto. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 20 – 22, ISSN 2500-5014 Conclusiones Las mediciones de la calidad de software constituyen una de las actividades más importantes y criticas del ciclo de vida de desarrollo del software, ya que garantizan la calidad del producto e influyen directamente en el costo de desarrollo y el éxito de su implementación. La relación identificada de cada una de las sub-características de la usabilidad como característica de las métricas externas de la norma ISO/IEC 9126:2, con los estados del alfa sistema de software, evidencia la necesidad de integrar los conceptos y la funcionalidad de los estados del alfa con las métricas definidas para evaluar los productos de software. En este artículo se hizo una revisión de literatura acerca de la aplicación de las mediciones de la norma ISO/IEC 9126, en el desarrollo de productos de software y se logró evidenciar la no existencia de este procedimiento en el núcleo Semat como marco de trabajo de la ingeniería de software. Como trabajo futuro se plantea analizar las características de funcionalidad y portabilidad para relacionar los estados del alfa sistema de software: con arquitectura seleccionada y retirado respectivamente. Además, se pretende realizar un caso de estudio para validar la relación propuesta en el presente artículo y la efectiva medición de la calidad en los estados del alfa. Referencias [1] Núñez, A, Pérez, H. G., Cuevas J. C. and Soubervielle C. (2013). A Methodology for Obtaining Universal Software Code Metrics. Journal Procedia Technology, 7(1), pp. 336-343. [2] Ordóñez M. J. and Haddad H. M. (2008). The State of Metrics in Software Industry. Fifth International Conference on Information Technology: New Generations. Journal IEEE, pp. 453-458. [3] Jacobson, I. (2012). Software Engineering Approaches for Offshore and Outsourced Development. Chapter: A Smarter Way: The Software Engineering Method and Theory Initiative (Semat) [e-book]. St. Petersburg, Russia: Springer Link. [4] Kajko-Mattsson, M. et al. (2012). Refounding software engineering: The Semat initiative. Journal IEEE, pp. 1649-1650. [5] Jacobson, I., Ng. P-W., MacMahon, P. E., Spence, I., Lidman, S. y Zapata C. M. (2013). La esencia de la ingeniería de software: El núcleo de Semat. Revista Latinoamericana de Ingeniería de Software, 3(1), pp. 71-78. [6] Dwolatzky, B. (2012). Re-founding software engineering practice - The SEMAT initiative. 4th Colloquium Software Engineering (SE). Journal IEEE, pp. 1-3. [7] McCall, J. A., Richards P. K. and Walters G. F. (1977). Factors in software quality, vols. I, II y III. NTIS; Roma, pp. 10-168. [8] Boehm, B. W., Brown, J. R. and Lipow, M. (1976). Quantitative evaluation of software quality. 2nd. international conference on Software engineering (ICSE), USA. Journal IEEE, pp. 592-605. [9] Basili, V. R. and Rombach, H. D. (1988). The TAME project: towards improvement−orientated software enviroments. Journal IEEE Transactions on Software Engineering, 14(6), pp. 758-773. [10] Grady, R. B. and Caswell, D. I. (1987). Software metrics establishing a Company-Wide program. Nueva Jersey. Prentice Hall. [11] ISO/IEC. (2002a). Software engineering Product quality - Part 1: Quality model, Canadá, International Technical Report ISO/IEC 9126-1, joint Technical Committee ISO/IEC JTC1, p. 25. [12] ISO/IEC. (2002b). Software engineering Product quality - Part 2: External metrics, Canadá, International Technical Report ISO/IEC 9126-2, joint Technical Committee ISO/IEC JTC1, p. 28. [13] ISO/IEC. (2002c). Software engineering Product quality - Part 3: Internal metrics, Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 21 – 22, ISSN 2500-5014 Canadá, International Technical Report ISO/IEC 9126-3, joint Technical Committee ISO/IEC JTC1, p. 73. [14] ISO/IEC. (2002d). Software engineering Product quality - Part 4: Quality in use metrics, Canadá, International Technical Report ISO/IEC 9126-4, Joint Technical Committee ISO/IEC JTC1, p. 64. [15] Behkamal, B., Kahani, M. and Akbari, M. K. (2009). Customizing ISO 9126 quality model for evaluation of B2B applications. Journal Information and software technology, 51(3), pp. 599-609. [16] Cochea, S. J. (2009). Métricas de calidad de los sistemas de información, aplicación en la certificación de calidad de un sistema de una empresa del sector hidrocarburífero. M.S. tesis, Escuela Superior Politécnica del Litoral, Guayaquil, Ecuador. [17] González, M. F. y González, J. S. (2013). Aplicación del estándar ISO/IEC 9126-3 en el modelo de datos conceptual entidad-relación. Revista Facultad de Ingeniería, UPTC, 22(35), pp. 113-125. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 22 – 22, ISSN 2500-5014 LA GESTIÓN DE LAS PRUEBAS DE SOFTWARE REPRESENTADAS CON SEMAT F.A. Vargas, J.C. Giraldo & D.E. Soto Tecnologico de Antioquia Introducción La ingeniería de software busca la estandarización y normalización de los procesos y una base común de elementos que se puedan constituir en un núcleo, que facilite a los analistas utilizarlo en diferentes fases del ciclo de vida, como un conjunto de métodos y buenas prácticas que garanticen la calidad del producto de software. En este artículo se representa el proceso de gestión de pruebas de software por medio de SEMAT. El artículo se estructura de la siguiente forma: en la sesión 2 se presenta los conceptos más relevantes en cuanto a SEMAT y gestión de pruebas de software; en la sesión 3 se describe la gestión de pruebas con SEMAT por medio de una representación gráfica; en la sesión 4 las conclusiones y por último las referencias. Marco teórico SEMAT (Software Engineering Method and Theory) Se concibe como una iniciativa que pretende refundar la ingeniería de software mediante la definición de una teoría sólida, principios probados y mejores prácticas. SEMAT pretende definir un núcleo que permita describir, usando un lenguaje, las prácticas del desarrollo de software, de tal forma que se puedan aplicar, evaluar y medir. SEMAT direcciona su trabajo en tres grandes áreas: Cliente, Solución y Esfuerzo. La primera pretende el conocimiento del contexto y las necesidades del mismo. La Segunda está enfocada en la solución de la pieza de software y la tercera en la conformación del equipo de trabajo para cumplir el objetivo propuesto (Jacobson, Meyer, Soley, 2010). En la Tabla 1 se describen los elementos de SEMAT que se emplean en la propuesta (Jacobson, McMahon, Spence, & Lidman, 2013). Pruebas de software La literatura existente en el área provee una gran variedad de definiciones de pruebas de software, de las cuales se referencia las siguientes: La prueba se define como: “la actividad en que un sistema o un componente se ejecuta bajo condiciones controladas, los resultados son registrados y la evaluación es realizada sobre algún aspecto del sistema o componente” (ISO / IEC / IEEE, 2010). Graham, Van Veenendaal, & Evans (2008) plantean que en la norma ISTQB el proceso de pruebas se define como la planificación de pruebas y control, análisis y diseño, implementación y ejecución. Además, la evaluación de los criterios de salida y presentación de informes, y por último el cierre de prueba de software. La norma ISO/IEC 29119 es consistente con la norma ISO/IEC 122207 (estándar para los procesos de ciclo de vida del software de la organización ISO). Esta estandariza la forma como se planifica, diseña, ejecuta y mantienen las pruebas, unifica estándares anteriores y aplicables a diferentes tipos de sistemas de software. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 23 –27, ISSN 2500-5014 Tabla 1. Elementos de SEMAT (Adaptado de Zapata, Castro & Vargas, 2014). Elemento Simbolo Información Alfa Espacio de Actividad Actividad Productos de Trabajo Práctica Elemento que identifica cada una de las cosas que el equipo debe de gestionar, producir y desarrollar para el logro de un proyecto de software Elemento del núcleo que permite describir las tareas que cualquier equipo debe llevar a cabo durante el desarrollo de un proyecto de software Elemento del núcleo que describe como realizar un proceso dentro de un proyecto de software Elemento del núcleo que representa un artefacto de relevancia para el equipo de ingeniería de software. Elemento necesario del núcleo de Semat para expresar la guía de trabajo con un objetivo específico. En consecuencia las pruebas de software, se consideran como un proceso paralelo al proceso de desarrollo que permite evaluar desde diferentes aspectos y momentos el comportamiento de un sistema o componente. Infiriendo elementos relevantes en el proceso como: alcance, criterios, gestión y estrategia, entre otros. (Tuya, 2009). La norma define un modelo de tres capas para realizar el proceso de pruebas: los procesos organizacionales, los procesos de gestión y los procesos dinámicos, los cuales interactúan con los conceptos: política, estrategia, gestión y ejecución; para lograr una interacción de la Estrategia organizacional, la gestión del proceso y el proceso técnico de la pruebas (Kasurinen, 2010). Los procesos de pruebas de la organización establecen las políticas de prueba, que están relacionadas con el alcance, los objetivos, y los principios gobernantes de la organización. Igualmente definen las estrategias de pruebas, que tienen que ver con los procesos, responsables, productos, técnicas y herramientas. Estas acciones generan un flujo de datos que alimenta el proceso de gestión de pruebas (Ver figura 1). En la Tabla 2 se especifican los componentes de la gestión de pruebas, de acuerdo a la norma. Figura 1. Modelo de procesos de pruebas de Software Fuente: Los autores (Adaptado de Estándar Internacional para pruebas de Software ISO/IEC/IEEE 29119). A continuación se describen los procesos de gestión de las pruebas y pruebas dinámicas, y en la tabla 2 se especifican las actividades, subactividades, producto de trabajo, y roles de estos procesos. Procesos de gestión de pruebas Implican la Planificación, control y seguimiento. En la planificacion (plan de procesos) se entiende el contexto, es decir el alcance de la gestion de pruebas, se organiza el plan de pruebas a traves de un cronograma, se identifican y analizan los riesgos potenciales, se debe identificar como mitigar los riesgo, luego se diseña la estrategia de pruebas, para esto se determina el personal y actividades calendario, posteriormente se registra Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 24 – 27, ISSN 2500-5014 el plan de pruebas (borrador), luego se llega a un consenso, y por ultimo se comunica. A partir del plan de pruebas, se hace gestion a pruebas estaticas, pruebas de sistema, pruebas de usabilidad, pruebas de aceptacion. Se preparan las metricas, y posteriormente se le hace control y seguimiento, logrando un monitoreo permanente. Esto se hace siguiendo protocolos o directrices de control, en caso de presentarse inconsistencias, se hacen actualizaciones al plan de pruebas (realimentación). En otro caso se generan resultados y finalizan los procesos de gestión. Finalmente se presenta un informe con el estado de las pruebas (directrices de control). Ver figura 1. Procesos de pruebas dinámicas Desde la gestión de pruebas se alimenta la etapa para procesos de Pruebas Dinámicas, concretamente con las métricas obtenidas. Las pruebas dinamicas, exigen diseño e implementacion, esto implica un flujo que indica requisitos del contexto de pruebas, luego se da el mantenimiento del entorno de pruebas, se genera informe del entorno, y se ejecutan las pruebas. Si se presentan incidencias se pueden repetir las pruebas, de lo contrario termina el proceso. Este proceso proporciona un flujo de datos relacionado con el control, métricas y directrices para las pruebas de Software. Este flujo obtenido realimenta el proceso de Gestión de Pruebas, concretamente los niveles de planificación y finalización. Ver figura 1. Diseño e Implementación Gestión del Entorno Pruebas dinámicas Ejecución Reporte de Incidencias gestión métricas Especificación de pruebas Requisitos del entorno de pruebas Informe de entorno Informe de resultados con pruebas ejecutadas pruebas Coordinador de pruebas Plan de Desarrollo de pruebas Todos los Roles Diseñador de pruebas Probador Propuesta Se representan los procesos de gestión de pruebas y de pruebas dinámicas, teniendo en cuenta los productos de trabajo, roles, y fases donde se ejecutan cada uno de ellos. Figura 2. Espacios de actividad y actividades asociadas a la fase inicio del proceso planear la gestión de pruebas Tabla 2. Componentes de la Gestión de Pruebas de Software Fuente: Los autores (Adaptado de Estándar Internacional para pruebas de Software ISO/IEC/IEEE 29119). Actividad Sub-Actividad Planificación Gestión de las pruebas Control y seguimiento Finalización Producto de Trabajo Plan de Pruebas (Cronograma) Informe de monitoreo, e inconsistencias Informe final de Rol Diseñador de pruebas Probador Diseñador de Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 25 – 27, ISSN 2500-5014 Figura 3. Espacios de actividad y actividades asociadas a la fase Ejecutar del proceso de pruebas. Figura 4. Productos de trabajo, alfas, y roles asociado a la fase inicio del proceso ejecutar las pruebas. Conclusiones Figura 4. Productos de trabajo, alfas, y roles asociado a la fase inicio del proceso de planear las pruebas. Como una forma de validar que SEMAT se puede constituir como una base comun para los procesos de igeniería de software. El articulo presenta los siguientes aportes: Representación de la gestión de las pruebas de software, utilizando elementos del nucleo de SEMAT, lo que permite visualizar como estos soportan y pueden representar esta fase de la ingeniería de software. Un conjunto de actividades y entregables propios del proceso de pruebas de software que puede ser representados por SEMAT, sin perder su significado ni su funcion dentro de las pruebas de software. Garantizando por parte del Analista la calidad en los proyectos de software . Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 26 – 27, ISSN 2500-5014 Referencias International Organization for Standardization, “ISO/IEC/IEEE 24765:2010 - Systems and software engineering -- Vocabulary,” ISO/IEC/IEEE, 24765, Dec. 2010. ISO/IEC, ISO/IEC 29119, Software Testing Standard, 2008 Jacobson, I., Meyer, B., & Soley, R. (2010). Software Engineering Method and Theory–A Vision Statement. Semat Organization. Jacobson, I., Ng, P. W., McMahon, P. E., Spence, I., & Lidman, S. (2013). The essence of software Engineering: applying the SEMAT kernel. Addison-Wesley. Kasurinen, J. (2010, April). Elaborating software test processes and strategies. In Software Testing, Verification and Validation (ICST), 2010 Third International Conference on (pp. 355-358). IEEE. Tuya, J. (2009). El futuro estándar ISO/IEC 29119-Software Testing. REICIS. Revista Española de Innovación, Calidad e Ingeniería del Software, 5(4), 33-35. Zapata, C. M., Castro, L., & Vargas, F. A. (2014). GBRAM from a SEMAT Perspective. METHODS, MODELING, AND TEACHING, VOL. 3, 21. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 27 – 27, ISSN 2500-5014 Métricas de la norma ISO 9126: una representación basada en el núcleo de SEMAT Y.Y. Arenas, S. Carmona & C.M. Zapata Universidad Nacional de Colombia, Medellín, Colombia Resumen La norma ISO 9126 es un estándar que proporciona métricas de calidad de un producto de software divididas principalmente en tres partes: internas, externas y calidad en uso.[1] Estas métricas se representan de distintas maneras con el fin de expresarlas en un lenguaje comprensible para un campo específico de la ingeniería de software. Estas representaciones se basan en lenguajes que no se centran en una teoría consolidada de la ingeniería de software [2]. Un lenguaje común para este tipo de representaciones debería tomar en consideración los elementos básicos de la ingeniería de software para permitir que la representación se pueda ligar con otros elementos de la ingeniería de software. Por ello, en este artículo se propone una representación de las métricas de calidad de la norma ISO 9126 tomando como base el núcleo de SEMAT, que define esos elementos comunes. Introducción Uno de los retos actuales de los investigadores de SEMAT consiste en representar una gran cantidad de métodos, prácticas y actividades a una teoría general, con una terminología común. Este reto es de largo plazo, pero se basa en uno de los logros actuales, como el reciente estándar “Esencia”, que incluye un núcleo de elementos base para esta representación. Las métricas de software no se encuentran, al menos en principio, entre ese grupo de elementos que se pueden representar con el núcleo de SEMAT. Por ello, en este artículo se propone el uso del núcleo de SEMAT para la representación de las métricas de calidad de la ISO 9126. Aunque las métricas de calidad se vienen trabajando de distintas maneras en terminologías diversas como un lenguaje orientado a objetos, diagramas o con fórmulas matemáticas expresadas en términos y variables, en este artículo se pretende la representación en un lenguaje común, que permita involucrar estas métricas dentro de un contexto general de un esfuerzo de ingeniería de software. De esta forma, se puede visualizar la forma de interacción de estas métricas con otros elementos como productos de trabajo, roles, estados de avance de proyecto y fases de desarrollo, para así determinar de forma clara y concisa qué son y cómo se involucran en la disciplina las métricas de calidad. Se tomaron en consideración múltiples aspectos para poder encontrar una representación adecuada. Por ejemplo, la ausencia de un símbolo para la métrica en el núcleo de SEMAT y las diferentes relaciones con los otros elementos, además de los lineamientos previamente establecidos para el núcleo de la esencia de SEMAT, fueron aspectos iniciales que marcaron la evolución de la representación. Se consideraron, también, otros aspectos, como la sintaxis a la hora de expresar elementos y conexiones, la Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 28 –33, ISSN 2500-5014 separación de intereses que se plantea como ventaja principal del núcleo de SEMAT, el uso de tarjetas de presentación de patrones y el lenguaje textual que acompaña la especificación. Con base en estos elementos, se logró la especificación de las métricas de calidad en el núcleo de SEMAT al interior de un contexto completo de la ingeniería de software, con sentido en sí mismo y con una correcta conexión con otros elementos que ya se manejan en la esencia. Marco Teórico Existe un nuevo estándar con el objetivo de refundar una teoría de la ingeniería de software y poder hacer de ella una verdadera disciplina, bajo el argumento de que actualmente se estaba obstaculizando con prácticas inmaduras que incluían, entre otras, una gran variedad de métodos en los que influían las modas del momento. Este estándar, denominado “Esencia”, se basa en un núcleo de elementos básicos y en un lenguaje común que ayuda a centralizar los conceptos que se incluyen en cualquier esfuerzo de ingeniería de software [2]. Una consecuencia inicial del estándar es el surgimiento de representaciones, especialmente de métodos y prácticas de la ingeniería de software, que toman como base el núcleo de la esencia, definiendo una terminología común que se basa en conceptos como alfas, estados y productos de trabajo. Se busca la conceptualización de métodos específicos de la ingeniería de software, pero tomando como base las distintas prácticas que se incluían en ellos, como la educción de requisitos o el desarrollo dirigido por prácticas, por ejemplo. Si bien el estándar de la esencia define un conjunto de elementos básicos que hacen parte de la totalidad de esfuerzos en ingeniería de software, tales como los alfas, los productos de trabajo, los espacios de actividad y las actividades, también existen otros elementos que, aún siendo comunes a muchos esfuerzos, aún no tienen una representación definida. Las métricas de calidad de software se incluyen en este grupo de elementos. Las métricas de calidad son indicadores para medir las subcaracterísticas de un producto de software, las cuales se ligan con características de calidad (funcionalidad, confiabilidad, usabilidad, mantenibilidad, portabilidad y eficiencia). Éstas, a su vez, sirven para definir el modelo de calidad con que una organización puede medir la calidad de un producto de software. La International Organization for Standarization realizó un estándar internacional para la evaluación de calidad del software, la norma ISO-9126 que se divide en cuatro partes entre las que se encuentran las métricas externas, internas y de calidad en uso. Antecedentes Cuando se involucran métricas de calidad para productos de software, ya sean o no de la norma ISO 9126, se utilizan distintas notaciones para representarlas, En esta Sección se examinan algunas de ellas. La notación en diagramas de flujo [3] se usa para determinar los pasos necesarios para llegar hasta la medida y su posterior interpretación. Los lenguajes o estructuras textuales orientadas a objetos [4] se emplean para hacer un intento por describir las métricas de una manera cómoda y accesible para personas con conocimientos de estos lenguajes. Usualmente, lo que se emplea es la notación textual como se describen en la norma, esto es de manera matemática y algebraica. Con base en esta definición se pueden realizar operaciones para obtener un valor numérico de la métrica [5]. Todas estas representaciones se usan de forma específica para el fin que persiguen, de modo que no existe una forma de correlacionarlas entre ellas ni con los elementos que subyacen a cualquier esfuerzo de ingeniería de software. La ausencia de un terreno común genera como inconveniente la dificultad de compartir la representación de las métricas con otros elementos como las prácticas y Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 29 –33, ISSN 2500-5014 los métodos de desarrollo de software. Las métricas de software no aparecen como uno de los elementos fundamentales que se definen en el núcleo de la esencia de SEMAT, aun cuando no es posible encontrar un esfuerzo de desarrollo de software en el cual no se mida la calidad del sistema de software como tal. En efecto, inicialmente se definieron elementos un poco más específicos de la disciplina como “Las cosas con las que se trabaja” o “Las cosas que se hacen” en cualquier esfuerzo de ingeniería de software (y que corresponden, respectivamente, a los alfas y los espacios de actividad. Así, se pueden representar con un lenguaje tanto textual como gráfico cosas que son comunes para todas las prácticas correspondientes a los esfuerzos de ingeniería de software. El principal argumento para la definición de estos elementos fundamentales se basa en que, a pesar de la gran cantidad de métodos, metodologías y prácticas, al final todos buscan lo mismo y de alguna manera, siguiendo los mismos lineamientos que se interpretan de una manera general. Otros conceptos como los estados de los alfas, las listas de verificación, los productos de trabajo, las actividades, los recursos y los patrones surgieron de la necesidad de expresar diferentes elementos de las prácticas y métodos. Sin embargo, la pregunta de investigación que guía este artículo es ¿cómo expresar una métrica de calidad con base en la definición que se incluye en la norma ISO 9126? ¿Esas métricas son de uso común en todos los esfuerzos de ingeniería de software? [2]. SPEM (Software & Systems Process Engineering Meta-Model) se usa para definir procesos de desarrollo de sistemas de software con todos sus componentes, buscando ser lo más minimalista posible sin perder sentido sobre sí mismo. En SPEM 2.0 [6] se expresan las métricas con un símbolo gráfico que se muestra en la Figura 1. Figura 1: Definición de métrica en SPEM Fuente: Spem 2.0 Representación en el núcleo de SEMAT de las métricas de la iso 9126 Para la elaboración de esta representación se consideraron seis métricas de calidad obtenidas de las normas ISO 9126, cada una representando una de las características ofrecidas por ellos. Por razones de espacio, para la presentación de los resultados en este artículo se toma como caso de estudio la métrica “Adecuación Funcional” que se puede obtener en las normas previamente descritas en la sección de Métricas externas, como se muestra en la Figura 2. Esta métrica se basa en una relación entre la cantidad de funciones del software en las cuales se encontraron problemas durante un periodo de prueba y la cantidad total de funciones probadas. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 30 –33, ISSN 2500-5014 Figura 2: Especificación de la métrica Adecuación Funcional, Fuente: Normas ISO 9126 [7] Teniendo en cuenta que no existía para la métrica un símbolo específico en el núcleo de la esencia, se consideraron dos posibilidades: la creación de un nuevo elemento en la sintaxis de SEMAT que representara la métrica de calidad o la generación de un nuevo patrón, cuya definición se ajusta de una manera cercana a lo que que se requería. Se optó por la creación de un nuevo tipo de patrón llamado Metric. Siendo un patrón, con una sintaxis y semántica definida en el núcleo de la esencia, es necesario establecer con qué elemento se podría ligar y mediante cuál relación. Siendo el producto de trabajo el documento donde reposa cierta información relevante en el proceso de desarrollo del software y que puede variar entre un código fuente, un diagrama de clases, una especificación de casos de uso, etc., y debido a que las métricas de calidad realizan operaciones sobre lo que reposa en diferentes productos de trabajo (reporte de evaluación para el caso de estudio de este artículo), se decidió unir el patrón metric con el producto de trabajo bajo la relación “medir” (measures en inglés) como se aprecia en la Figura 3. Una vez definido el símbolo, con su sintaxis y su semántica, hay que proporcionar un contexto entendible por sí mismo para obtener mas información no solo de la métrica sino del entorno en el que se involucra, incluyendo su fase en el desarrollo, las actividades a las que pertenece y los alfas que involucra. De esta manera, se expresa una métrica en un lenguaje que busca unificar toda la disciplina de la ingeniería de software y se enmarca en un contexto completo que da a entender todos los factores, elementos y actores involucrados en esta actividad de aplicación de métricas de calidad. En la Figura 3 se aprecia el alfa al cual la métrica pertenece, que para este caso de estudio es el sistema de software. También, se puede observar el producto de trabajo que mide la métrica, denominado reporte de evaluación. Se puede observar que también hay dos patrones que representan independientemente un rol (analista de calidad), quien sería el que trabaja sobre el producto de trabajo y la métrica. La Figura 4 contiene el entorno de la métrica con respecto a los espacios de actividad y la actividad donde se enmarca el producto de trabajo al cual se le aplica la métrica estudiada. El espacio de actividad corresponde “probar el sistema” y la actividad es “probar las funciones del sistema” con una fase que se denomina “prueba funcional”. Figura 3: Vista de alfas y productos de trabajo Fuente: elaboración propia Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 31 –33, ISSN 2500-5014 Figura 4: Vista Patrones y espacios de actividad Fuente: elaboración propia En tarjeta del patrón se especifica la métrica con respecto a la manera en que se debe aplicar y los atributos del producto de trabajo sobre los cuales trabajaría, para la obtención de un resultado que daría un indicio de qué tan adecuado funcionalmente está el sistema de software. Esta tarjeta de presentación se usa ya para representar la instancia específica de la métrica elegida, tal como se muestra en la Figura 5, mientras que las figuras anteriores contenían un visión un poco más general de lo que estaba pasando en la métrica y su contexto. La modificación que sufrió esta especificación respecto de la que reposa en la norma es la manera de expresar la fórmula, ya que se debe expresar de una manera más aproximada a la estandarización que se busca. Por ello, se elige el álgebra relacional para describir las operaciones que se necesitan y, de esta manera, se involucra en la definición textual del lenguaje, como se muestra seguidamente: Textual Specification type Metric: It is a measure of the degree to which a system, component, or process possesses a given attribute. pattern <Metric> FunctionalAdequation: Number of functions that are suitable for performing the specified tasks comparing to the number of function evaluated. {with EvaluationReport as measures;} Figura 5: Tarjeta del patrón Fuente: elaboración propia En el lenguaje textual, aunque se definió todo el contexto del entorno general, lo que compete a las métricas es lo siguiente: se tuvo que crear un nuevo tipo de entrada denominada “Metric” la cual se asigna a un patrón que representa la métrica de calidad. Finalmente a este patrón se le asignó una relación hacia un Producto de Trabajo ya que es este el que contiene la información necesaria para obtener la medición. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 32 –33, ISSN 2500-5014 Conclusiones y Trabajo Futuro En este artículo se propuso una representación de algunos indicadores de calidad de las métricas de la norma ISO 9126 con el núcleo de la esencia de SEMAT, obteniendo como resultado un patrón denominado “métrica”. Este patrón tiene características propias que permiten manejar un producto de trabajo y sus características para obtener un resultado de calidad del sistema de software. La representación propuesta se puede combinar con los diferentes elementos del núcleo de la esencia, de forma tal que se puede incorporar en el contexto de una práctica de software. Como trabajo futuro, se espera la definición de otras relaciones de este patrón con los diferentes elementos del núcleo de la esencia, para complementar su semántica. Referencias [1] Iso, “Information technology — Software product quality,” Iso/Iec Fdis 9126-1, vol. 2000, pp. 1–26, 2000. [2] Omg, “Essence – Kernel and Language for Software Engineering Methods,” no. August, p. 207, 2012. [3] M. D. De Andrade Alves, D. D. Fernandes, D. Á. Montini, S. R. M. Pelegrino, P. M. Tasinaffo, and L. A. V. Dias, “A methodology for assessment database according to ISO 9126,” ITNG2010 - 7th Int. Conf. Inf. Technol. New Gener., no. i, pp. 1137–1142, 2010. [4] Y. Fitrisia, “Implementation of ISO 9126-1 Quality Model for Asset Inventory Information System by Utilizing Object Oriented Metrics,” no. November, pp. 229–234, 2014. [5] A. Abran and R. E. Al-Qutaish, “ISO 9126: Analysis of Quality Models and Measures,” Softw. Metrics Softw. Metrol., pp. 205–228, 2010. [6] Omg, “Software & Systems Process Engineering Meta-Model Specification V2.0,” no. April, p. 236, 2008. [7] S. Engineering, “N2419R,” no. 40, 2002. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 33 –33, ISSN 2500-5014 Representación en el núcleo de Semat de la Interoperabilidad para el Método de Desarrollo de Software del IGAC C.E. Durango V., D.M. Torres R. y C.M. Zapata J. Universidad Nacional de Colombia, Medellín, Colombia Resumen Los Sistemas de Información Geográfica (SIG) se orientan a la solución de problemas en diversas áreas del conocimiento, por medio de ubicaciones geográficas. La interoperabilidad en SIG implica la interacción a nivel funcional de las aplicaciones para intercambiar información. Un método para el desarrollo de aplicaciones SIG es el Método de Desarrollo de Software IGAC (MDS-IGAC) que cuenta con elementos para especificar los requisitos no funcionales, entre los que se encuentra la interacción. Existe una representación Semat (Teoría y Método de la Ingeniería de Software) del MDS-IGAC, que identifica los productos de trabajo del método. Estos productos de trabajo carecen de una caracterización de la interoperabilidad en SIG, respecto de los requisitos no funcionales. En este artículo se propone una representación de los requisitos no funcionales asociados con una nueva práctica para mejorar la especificación de la interoperabilidad en SIG, utilizando el núcleo de Semat. Mediante esta solución, los analistas identificarán los elementos que apoyan la interoperabilidad en proyectos SIG. Palabras clave. Sistemas de Información geográfica, Interoperabilidad, Semat, Método de Desarrollo Introducción Los Sistemas de Información Geográfica (SIG) actúan en diversas áreas de conocimiento y permiten la interdisciplinariedad de profesionales para resolver problemas, agregando la ubicación geográfica para analizar la información (Blišťan et al. 2015). La interoperabilidad en los SIG se relaciona con la capacidad de comunicar los programas para transferir datos. Su implementación requiere el estudio del dominio de los SIG en la fase de análisis, identificando tipos y modelos de datos y herramientas que los apoyan (Zapata et al. 2012). El Método de Desarrollo de Software IGAC (MDS-IGAC) define requisitos no funcionales basados en funcionalidad, usabilidad, fiabilidad y desempeño. Para lograrlo, se utiliza el documento de “Especificación de Requisitos”. El MDS-IGAC cuenta con elementos para especificar los requisitos no funcionales, entre los que se encuentra la interacción (IGAC 2015). Durango & Zapata (2015) representan con Semat el MDS-IGAC. Los autores identifican los elementos principales del MDS-IGAC asociados con los elementos Semat en las fases de análisis y viabilidad. La representación se concentra en representar la práctica gestión de requisitos de RUP asociando las fases, las actividades, los artefactos y roles del MDS-IGAC con los espacios de actividad, los productos de trabajo y roles de Semat (Durango & Zapata, 2015). Sin embargo, la práctica gestión de requisitos no abarca la definición de interoperabilidad en los requisitos no funcionales en los SIG. En modelos como el de requisitos para atributos de calidad (Brito et al. 2002), los requisitos funcionales son propiedades deseables en el sistema de software tratados como atributos de calidad. El modelo propone un producto de trabajo que sirve para especificar los atributos de calidad. Sin embargo, este producto de trabajo no hace parte de alguna práctica definida para la especificación de los requisitos no funcionales y no es específico de los SIG. Por esta razón, requisitos como la interoperabilidad carecen de una caracterización en los SIG. Por lo anterior, en este artículo se propone una Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 34 –39, ISSN 2500-5014 representación de los requisitos no funcionales asociados con una nueva práctica para mejorar la especificación de la interoperabilidad en los SIG, utilizando el núcleo de Semat. Mediante esta solución, los analistas pueden identificar los elementos que apoyan la interoperabilidad en los proyectos SIG. Marco Teórico Sistemas de Información Geográfica Son aplicaciones que contienen atributos asociados con coordenadas geográficas. Los SIG permiten estructurar la información en capas geográficas para representar diferentes variables. Además, mejoran la toma de decisiones y generan nuevas oportunidades en las organizaciones para ampliar el conocimiento específico por medio del conocimiento geográfico (Blišťan et al. 2015). una API; identificación de la estructura de las fuentes de datos; identificación de las operaciones soportadas; y finalmente, operación paso a paso (Zapata et al. 2012). SEMAT (Teoría y Método de la Ingeniería de Software) Semat propone una teoría solida con principios probados y mejores prácticas para la ingeniería de software. Semat posee un núcleo cuyos elementos gráficos describen las características de los esfuerzos de desarrollo de software (Véase la Tabla 1, Zapata et al. 2014). Tabla 1. Elementos del núcleo de Semat (Durango & Zapata, 2015) Elemento Alfa Interoperabilidad en SIG La interoperabilidad es la capacidad de un sistema de interactuar con otros sistemas específicos (ISO-IEC 9126 2001). En el contexto de los SIG, los requisitos de interoperabilidad se incrementan debido a la necesidad de estos sistemas de intercambiar datos y servicios provenientes de diferentes instituciones a nivel local y mundial (Laurini et al. 2002). A nivel de los datos, la necesidad de interoperabilidad se refiere la capacidad de almacenar y procesar grandes cantidades de información heterogénea (Visser et al. 2002, Zapata et al. 2012). Por otra parte, a nivel de servicios esta necesidad se refiere al proceso de ejecutar colectivamente las tareas de visualización, análisis y manipulación de la información geográfica (Sahin & Gumusay 2008). Zapata et al. (2012) proponen un método para integrar la interoperabilidad en los SIG desde la fase de análisis. Este método contiene siete pasos para identificar los elementos propios de los SIG que interactúan: definición de la situación actual de interoperabilidad; identificación de las fuentes de datos soportadas; definición de formatos aceptados; intercambio de datos por medio de Actividad Descripción Describe las cosas que el equipo debe administrar, producir y usar en el proceso de desarrollo, mantenimiento y soporte. Define uno o más tipos de producto de trabajo y uno o más tipos de tarea, además de dar orientación sobre cómo utilizarlos en el contexto de una práctica. Práctica Es un grupo de elementos necesarios del núcleo de Semat para expresar la guía de trabajo con un objetivo específico. Patrón Organiza los elementos del lenguaje en estructuras significativas arbitrarias (e.g., fases y roles). Es un artefacto de valor y relevancia para el esfuerzo de la ingeniería de software. Un producto de trabajo puede ser un documento, una parte de software, una prueba de software o la preparación de un curso. Producto de trabajo Antecedentes El MDS-IGAC, paralelamente a los métodos de desarrollo tradicionales, contiene un conjunto de etapas de desarrollo de los SIG. El método contiene un documento de especificación de requisitos con productos de trabajo para especificar los requisitos no funcionales, que son: seguridad, conformidad, confiabilidad, usabilidad, desempeño, mantenibilidad, integración, Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 35 –39, ISSN 2500-5014 integridad, visualización, operación, interacción, lenguajes de programación, plataformas de integración y portabilidad (IGAC, 2015). Sin embargo, el método no contiene buenas prácticas asociadas con la gestión de los requisitos no funcionales, ni una caracterización de la interoperabilidad. Durango & Zapata (2015) proponen una representación basada Rational Unified Process (RUP) y en el núcleo de Semat del MDS-IGAC para encontrar las especificaciones propias de los métodos de desarrollo de SIG. La representación propuesta asocia cinco de las seis buenas prácticas de RUP e identifica los productos de trabajo, actividades y recursos del método del MDS-IGAC en comparación con el método tradicional RUP (Durango & Zapata, 2015). Sin embargo, aún se requiere la caracterización de los requisitos no funcionales, específicamente con la interoperabilidad en los SIG. Brito et al. (2002) proponen un modelo para identificar y especificar requisitos de atributos de calidad, los cuales son propiedades que afectan el sistema de software, comparables con los requisitos no funcionales, los cuales son transversales y afectan simultáneamente diferentes requisitos funcionales. El modelo contiene la representación de los atributos de calidad de acuerdo con un formato que contiene elementos característicos que se integran en el proceso de desarrollo en etapas tempranas (Brito et al. 2002). A pesar de que los autores proponen un formato para manejar los atributos de calidad como la interoperabilidad, estos no se aplican para el dominio de los SIG. Solución En el MDS-IGAC, igual que en los métodos de desarrollo convencionales, los requisitos no funcionales no se abordan mediante prácticas definidas. Por esta razón, la trazabilidad de estos requisitos se puede comprometer a lo largo del ciclo de vida del SIG. Específicamente, no se tiene una caracterización de la interoperabilidad (referida como interacción en el MSD-IGAC), que permita incluir en el proceso de desarrollo los elementos esenciales que determinan la solución de este aspecto del software. Por lo anterior, se propone dividir la actual práctica “Gestión de Requisitos” en dos nuevas prácticas “Gestión de Requisitos Funcionales” y “Gestión de Requisitos No Funcionales” (Véase la Fig. 1) para mejorar el desarrollo de SIG y complementar las practicas existentes. Figura 1. Mejora de prácticas asociadas con el MDS-IGAC La propuesta se aplica a la práctica “Gestión de Requisitos No Funcionales” específicamente para el requisito de calidad Interoperabilidad. La práctica “Gestión de Requisitos no Funcionales” describe la educción, organización, documentación y mantenimiento de los requisitos no funcionales, entendidos como propiedades que afectan los SIG. La interoperabilidad en SIG es un requisito no funcional transversal al proceso de desarrollo, ya que está presente en la especificación de los requisitos funcionales. Por esta razón, es necesario identificar, especificar e integrar la interoperabilidad como un requisito no funcional en los SIG en etapas tempranas, así como poder rastrear su evolución a lo largo de ciclo de vida del SIG. Las actividades que abarca la práctica de “Gestión de Requisitos No Funcionales” se asocian, esencialmente, con los espacios de actividad “Comprender las Necesidades del interesado”, “Comprender los requisitos” y “Darle forma al Sistema” (Véase la Fig. 2). Estas actividades sintetizan los procesos que siguen a la Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 36 –39, ISSN 2500-5014 recopilación de la información necesaria para documentar los requisitos no funcionales mediante el formato propuesto. Figura 3. Producto de Trabajo de la Gestión de Requisitos No Funcionales En el formato propuesto (véase la Tabla 2) se fusionan campos originales del formato MSD-IGAC con otros del formato de Brito et al. (2002). Algunos de estos campos son: Nombre, Indeseable/Deseable, Descripción y Crítico. A su vez, se introducen nuevos campos para completar la especificación de requisitos no funcionales, permitiendo la integración con los requisitos funcionales y la validación y verificación durante el proceso de desarrollo. Estos son: Descomposición, Contribución y Requisitos funcionales. Figura 2. Espacios de actividad y actividades de Práctica Gestión de Requisitos No Funcionales El MDS-IGAC cuenta con un formato para registrar los requisitos no funcionales. En éste se consigna información como: tipo de requisito, descripción del requisito, criterios de aceptación y nombre, entre otros. Al formato le falta detallar características importantes de los requisitos no funcionales como la interoperabilidad. Por lo anterior, se propone una plantilla que permita unificar los elementos del formato de requisitos no funcionales del MDS-IGAC con los elementos que proponen Brito et al. (2002) para identificar y documentar los requisitos no funcionales. El formato se propone como producto de trabajo del alfa Requisitos (Véase la Fig. 3). El rol relacionado con este artefacto es el Analista Funcional, debido a que en la actual práctica del MSD-IGAC es quien se encarga de recolectar la información en el formato original. Tabla 2. Propuesta de Plantilla de Requisitos no Funcionales El campo Descomposición describe el requisito no funcional en términos de metas más pequeñas (submetas), que: se pueden alcanzar, permiten Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 37 –39, ISSN 2500-5014 evaluar el estado de satisfacción y juntas constituyen el objetivo original del requisito no funcional. En el caso particular de la interoperabilidad de los SIG, tres metas permiten lograr el objetivo de interacción de los sistemas, las cuales corresponden a la interoperabilidad en los niveles: sintáctico, semántico y funcional. En el nivel sintáctico las submetas abarcan los esquemas de datos, es decir, la adopción de estándares de bases de datos y datos geográficos. En el nivel semántico las submetas se relacionan con la interpretación de los modelos de información. Por último, el nivel funcional de la interoperabilidad contiene submetas orientadas al intercambio de los datos mediante herramientas, interfaces y protocolos. En la Figura 4 se presenta una versión informal del grafo de interdependencias de submetas, conocido como Softgoal Interdependency Graph, donde se representan las submetas propuestas, como resultado de una recopilación de las normas internacionales, para lograr el objetivo de interoperabilidad de los SIG. Figura 4. Variación del Softgoal Interdependency Graph para la interoperabilidad de SIG Por otra parte, el campo Contribución aporta información de aceptación, restricción o beneficio del uso del requisito no funcional o sus submetas con otro requisito no funcional. A su vez, el campo Requisitos Funcionales proporciona un listado de los requisitos que se integran con el requisito no funcional en alguna de las tres relaciones: sobreposición, superposición o encapsulación. Conclusiones y Trabajo Futuro La interoperabilidad en SIG es una propiedad que necesita un tratamiento específico, por ser un requisito no funcional transversal a los requisitos funcionales. Mediante la práctica y el formato propuesto se completa el método MDS-IGAC con la información necesaria para integrar propiedades como la interoperabilidad, además de soportar la toma de decisiones y rastrear la satisfacción de dichas propiedades durante el proceso de desarrollo. Como trabajo futuro se propone integrar recursos como las normas y los estándares internacionales a la representación en el núcleo de Semat de las prácticas. También, se pretende lograr una caracterización más amplia de la interoperabilidad en SIG para mejorar el grafo de interdependencias. Por último es necesario conocer el resultado de aplicar la práctica mediante un caso de estudio. Referencias Blišťan P., Ľudovít K., & Milana K. 2015. The Importance of Geographic Information Systems Education at Universities in the Process of Building a European Knowledge-Based Society. Procedia - Social and Behavioral Sciences 191:2458–62. Retrieved (http://linkinghub.elsevier.com/retrieve/pii/S187704281 502618X). Brito I., Moreira A. & Araújo J. 2002. A requirements model for quality attributes. Aspect-Oriented Requirements Engineering and Architecture Design, Germany. Durango C. & Zapata C. En prensa. Una representación basada en Semat y RUP para el Método de Desarrollo SIG del Instituto Geográfico Agustín Codazzi. Revista Ingenierías USBmed. IGAC. 2015. Metodología de Desarrollo de Software IGAC. Retrieved July 24, 2015 Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 38 –39, ISSN 2500-5014 (http://geoservice.igac.gov.co/mds/igac/). ISO/IEEE 9126. 2001. Software Product Evaluation - Quality Characteristics and Guidelines for their Use. Laurini, R., Yetongnon, K. & Benslimane, D. 2002. GIS interoperability, from problems to solutions. Encyclopedia of Life Support Systems. Sahin K. & Gumusay, M. 2008. Service oriented architecture (SOA) based web services for geographic information systems. In XXIst ISPRS Congress. Beijing (pp. 625-630). Visser, U., Stuckenschmidt, H. & Schlieder, C. 2002. Interoperability in GIS-enabling technologies. In Proceedings of the fifth AGILE Conference on Geographic Information Science (p. 291). Zapata C., Arango R. & Jiménez L. 2014. Mejoramiento de la Consistencia entre la Sintaxis Textual y Gráfica del Lenguaje de Semat.” Prolibits (49):83–89. Zapata C., Toro F. & Marín M. 2012. Definición de un Método Basado en Patrones de Análisis para la Interoperabilidad entre Sistemas de Información Geográfica. Revista Escuela de Ingeniería de Antioquia (18):179–94. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 39 –39, ISSN 2500-5014 Aspectos humanos en el núcleo de SEMAT Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 40 , ISSN 2500-5014 Representación en el núcleo de Semat de las competencias de Ingeniería Social necesarias para mejorar la Seguridad Informática C. E. Durango V., M. J. Amariles C., J. C. Giraldo M., C. M. Zapata R., C. Díaz S. Universidad de San Buenaventura, Medellín, Colombia C. M. Zapata J. Universidad Nacional de Colombia, Medellín, Colombia Resumen Las políticas de acceso a la información disminuyen la interacción entre personas e incrementan el uso de herramientas de comunicación virtuales. La Ingeniería Social es el acto de manipular personas, por medio del engaño, para obtener “información de acceso”. La seguridad informática se enfoca en proteger la infraestructura organizacional, utilizando estándares, protocolos y herramientas, entre otros. Las competencias del atacante de ingeniería social se desarrollan alrededor de los rasgos de personalidad y del manejo de tecnologías. Semat (Teoría y Método de la Ingeniería de Software) incluye un núcleo de elementos aceptados y comprobados de las buenas prácticas del desarrollo de software, entre ellos las competencias de los miembros del equipo de pruebas de software. En este artículo se representan las competencias del atacante de Ingeniería Social utilizando el núcleo de Semat, con el fin de mejorar las pruebas de seguridad informática, evitar el acceso no autorizado a la información y prevenir los ataques. Palabras Clave. Ingeniería social, seguridad en la informática, atacante, Semat, competencia. Introducción Las políticas de acceso y de uso de tecnologías ayudan a promover el intercambio de información y disminuir la interacción entre las personas (CEPAL 2015). La información de las organizaciones es vulnerable a individuos que influyen sobre los usuarios y recursos de las organizaciones. La ingeniería social es la ciencia de interacción social para persuadir a individuos u organizaciones para obtener acceso a información no autorizada. Para lograrlo, el atacante manipula a su víctima utilizando recursos tecnológicos y psicológicos (Krombholz et al. 2014, Samani 2015). La seguridad informática es una disciplina que identifica eventos inesperados que comprometan los activos de las organizaciones. Para lograrlo, cuenta con estrategias como estándares, protocolos y herramientas, entre otros. Un ataque informático consiste en aprovechar una vulnerabilidad del software, hardware o de las personas (atacante y víctima) que forman parte de un ambiente informático (Cano 2004). Una competencia organizacional es una característica subyacente (rasgos de personalidad) de un individuo que anticipa su comportamiento y desempeño relacionado con un estándar de efectividad de un trabajo o situación (comportamientos observables, Alles 2005). Los comportamientos observables del atacante de ingeniería social se relacionan con el manejo de tecnologías. Semat (Teoría y Método de la Ingeniería de Software) es una iniciativa que permite representar, gráfica y textualmente, prácticas comunes de métodos existentes mediante elementos de su núcleo. Este núcleo incluye un grupo de elementos esenciales universales para todo esfuerzo de desarrollo de software (Zapata et al. 2014, Jacobson et al., 2013). Las competencias Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 41 –46, ISSN 2500-5013 de Semat representan las habilidades claves que se requieren para el desarrollo de software. Semat define competencias de los miembros del equipo de software (OMG 2014). Las competencias del atacante que utiliza técnicas de ingeniería social se desarrollan alrededor de dos factores: humano (habilidad psicológica para obtener información) y tecnológico (habilidad de engañar al usuario haciéndole creer que está interactuando con un sistema de información “real”, Gulati 2003). Las pruebas de seguridad informática se basan en el análisis de las vulnerabilidades de los sistemas de información, pero no tienen en cuenta las habilidades psicológicas del atacante de ingeniería social para extraer información a los usuarios. Por lo anterior, es importante relacionar estas competencias del atacante con las competencias organizaciones y representarlas en el núcleo de Semat, para ayudar a los equipo de pruebas de software a caracterizar los atacantes, con el fin de evitar el acceso o violación a la información en las organizaciones y mejorar la seguridad informática. Marco Teórico ataques de ingeniería social son múltiples e incluyen, principalmente, aspectos físicos, sociales y técnicos (Krombholz et al. 2014). Seguridad Informática La Seguridad Informática considera un conjunto de medidas que impiden la ejecución de operaciones no autorizadas sobre un sistema o red informática. Los efectos de esta inclusión pueden conllevar daños a la información, compromiso a su confidencialidad, autenticidad o integridad, disminución del rendimiento de los equipos o bloqueo del acceso de usuarios autorizados al sistema (Smith 2013). Competencias en Semat Las competencias en Semat representan las habilidades clave que se requieren para el desarrollo de software. Semat define seis competencias: representación del interesado, análisis, desarrollo, pruebas, liderazgo y gestión, agrupada en tres áreas de interés, que se centran en aspectos específicos de la ingeniería de software: clientes (verde), solución (amarillo) y esfuerzo (azul, véase la Fig. 1, Zapata et al. 2014). Ingeniería Social Según la Comisión Económica para América Latina y el Caribe (CEPAL), las tecnologías digitales potencializan la mayoría de las actividades de la sociedad, aumentando su importancia e impacto en patrones de crecimiento económico, inclusión social y sostenibilidad ambiental. Las políticas de acceso y de uso de tecnologías ayudan a incrementar el uso de herramientas tecnológicas como Skype, correo electrónico y Lync, entre otros (CEPAL 2015). La información de las organizaciones es vulnerable a individuos que influyen sobre los usuarios y recursos de las organizaciones. La ingeniería social es el arte de conseguir que usuarios de sistemas informáticos pongan en peligro la información de acceso. Los atacantes se dirigen a usuarios (víctimas) manipulándolos para que divulguen información confidencial. Los Figura 1. Competencias del núcleo de Semat (Zapata et al. 2014) Para participar en un equipo de desarrollo de software, se requiere tener competencias en diferentes áreas. Los miembros de los equipos de trabajo requieren competencias específicas según la tarea a realizar y competencias genéricas para comprender las actividades de los otros miembros. Una competencia que se propone en Semat es “Pruebas”. Esta competencia se define como la Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 42 –46, ISSN 2500-5014 habilidad para verificar requisitos y la calidad del software desarrollado (Jacobson et al. 2014). Competencia Organizacional Spencer y Spencer (1993) definen competencia como “una característica subyacente de un individuo que se relaciona causalmente con un estándar de efectividad y/o rendimiento superior en un trabajo o situación”. Los autores introducen el modelo del iceberg (véase la Fig. 2). El modelo plantea que el conocimiento y las habilidades de las personas son competencias fáciles de observar (visibles) y se desarrollan con capacitaciones, mientras que las competencias relativas a las motivaciones están escondidas (no visibles), se relacionan con la personalidad y son difíciles de evaluar (Spencer & Spencer 1993). Antecedentes Uebelacker y Quiel (2014) realizan una revisión de literatura para identificar los rasgos de personalidad que influyen en ataques de ingeniería social, basándose en los principios de Cialdini (reciprocidad, escasez, autoridad, compromiso y coherencia, prueba social o consenso, y simpatía) para categorizarlos. Para ello, relacionan los rasgos de personalidad, según el modelo de cinco factores (Big 5) y los principios de influencia de Cialdini. Posteriormente, construyen un enfoque denominado Marco de Personalidad de ingeniería social con sus respectivas denominaciones (véase la Fig. 3, Uebelacker & Quiel 2014). El modelo relaciona rasgos de personalidad de víctimas del atacante de ingeniería social, pero falta identificar las competencias del atacante para relacionarlas con las competencias de un equipo de pruebas de software. Figura 2. Modelo del iceberg (Spencer & Spencer 1993) Las competencias se pueden clasificar en genéricas y específicas. Las competencias genéricas se refieren a aquellos atributos o rasgos distintivos que requiere un trabajador excepcional en un puesto determinado, incluyendo conocimientos, habilidades o actitudes necesarios para desempeñar una tarea concreta. Las competencias específicas son comportamientos observables y habituales que posibilitan el éxito de una persona en su función específica (Casanova 2004). Para identificar estas últimas se requiere aplicar pruebas psicotécnicas como la prueba 16PF- 5. Esta prueba es producto de un proceso investigativo que utiliza análisis factorial para identificar dimensiones básicas o factores para medir los rasgos de personalidad. Figura 3. Marco de Personalidad de Ingeniería Social (Uebelacker & Quiel 2014). Traducción de los autores Krombholz et al. (2014) proponen una taxonomía de los escenarios y características de los ataques de ingeniería social enmarcada en tres categorías: tipo (socio-técnico, técnico, físico y social), operador (software y humano) y canal (correo electrónico, mensaje instantáneo, teléfono, redes sociales y nube, entre otros). La categoría operador-humano se relaciona con la habilidad psicológica para influenciar y persuadir a sus víctimas para extraer información de acceso, mientras que las otras categorías se relacionan con habilidades tecnológicas (Krombholz et al. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 43 –46, ISSN 2500-5014 2014). La taxonomía se basa en habilidades tecnológicas, pero falta incluir las habilidades psicológicas del atacante. Competencias del atacante de ingeniería social representadas en el núcleo de SEMAT El perfil de competencias del atacante de ingeniería social se identifica con los rasgos de personalidad, las destrezas y los conocimientos (véase la Fig. 2). Los rasgos de personalidad se identifican con la prueba 16PF-5 en un grupo de personas dedicadas a actividades de ingeniería social. Esta prueba reconoce los rasgos de personalidad con terminología actual y entendible, mediante adjetivos y descripciones de las polaridades bajas (valores de 1 a 4), medias (valor 5) y altas (valores de 6 a 10). Los valores acompañados del signo más (+) significan que se espera que la persona obtenga dicho puntaje o más, hasta llegar al máximo esperado. La persona con perfil de atacante de ingeniería social tiene alta tendencia en esos rasgos (véase la Tabla 1). Para identificar las destrezas y conocimientos Arráiz (2000) plantea competencias esenciales, con niveles adecuados de conocimientos, habilidades y conductas observables para un desempeño aceptable y superior. Las destrezas y conocimientos del atacante se relacionan a partir de habilidades técnicas (phishing, pretexting, baiting y quid pro quo, entre otros) y medios para adquirir la información de su víctima (por ejemplo, correo electrónico, face-to-face, teléfono y página web, entre otros). Según lo anterior, en la Tabla 2 y la Figura 4 se identifican los descriptores propios para las competencias genéricas y en la Tabla 3 y la Figura 5 se identifican las competencias específicas del atacante. Tabla 1. Puntaje esperado para los 16 rasgos primarios de personalidad de un atacante de ingeniería social Reservado 5 Abierto Pensamiento concreto 6 Pensamiento abstracto Inestabilidad emocional 8 Estabilidad emocional Sumiso 9 Dominante Prudente 4 Impulsivo Despreocupado 2 Escrupuloso Tímido 2 Espontáneo Racional 4 Emocional Confiado 7 Suspicaz Práctico 4 Soñador Sencillo 8+ Astuto Seguro 4 Inseguro Tradicionalista 7+ Innovador Dependiente del grupo 3 Autosuficiente Desinhibido 8+ Controlado Tranquilo 8+ Tensionado Baja ansiedad 8 Alta ansiedad Introversión 5 Extraversión Bajo control social 7+ Alto control social Dependencia 8 Independencia Apertura al cambio 7+ Mentalidad dura Tabla 2. Competencias genéricas con descriptores del atacante de ingeniería social Nombre Descriptores Dominio Manejo de redes, entrenamiento técnico y tecnológico tecnológico, conocimiento tecnológico, dominio de software y búsquedas en redes Trabajo Formación de equipos y relación interpersonal corporativo Negociación Dominio del negocio, adaptabilidad y liderazgo Comunicación Comunicación efectiva y asertiva, oratoria y Estratégica redacción Pensamiento Adaptabilidad, innovación, retrospección y sistémico procesamiento paralelo Flexibilidad Proactividad, adaptabilidad, apertura y creatividad Tabla 3. Competencias específicas con sus descriptores del atacante de ingeniería social Nombre Descriptores Solución de Iniciativa, proactividad y toma de decisiones Problemas Seguimiento y Acompañamiento, profundización, validación, control evaluación y mejoramiento Capacidad de Persuasión, convencimiento, empatía, influenciar credibilidad y confianza Capacidad de Agilidad, oposición, exigencia y procesamiento respuesta paralelo Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 44 –46, ISSN 2500-5014 encuentran en personas que se enfocan en tareas específicas que necesitan un esfuerzo de ingeniería de software particular, como verificar los requisitos y la calidad del software desarrollado. Figura 4. Representación de las competencias genéricas del atacante de ingeniería social en el núcleo de Semat Figura 5. Representación de las competencias específicas del atacante de ingeniería social en el núcleo de Semat Conclusiones y Trabajo Futuro El uso del núcleo de Semat apoya la normalización de la ingeniería de software. Un campo poco explorado de Semat es la definición de competencias que pueden hacer parte del núcleo. En la representación en el núcleo de Semat de las competencias del atacante de ingeniería social se observa lo siguiente: Las organizaciones y los equipos de trabajo de ingeniería de software poco conocen de la definición de competencia organizacional y su relación con los esfuerzos de ingeniería de software. Para Semat una competencia se basa en la caracterización de un rol en lugar de relacionar las habilidades de la persona. Las competencias genéricas, en general, se encuentran en personas que forman un equipo de trabajo de desarrollo de software. Las competencias específicas, en general, se Como conclusión general, se observa que la representación de las competencias del atacante de ingeniería social en el núcleo de Semat ayudará a organizaciones y equipos de desarrollo de software a seleccionar personas con conocimientos, habilidades y rasgos de personalidad con alto desempeño para mejorar las pruebas de seguridad informática y evitar accesos a la información. Como línea de trabajo futuro, se plantea la identificación de las prácticas correspondientes a los atacantes de ingeniería social, de forma tal que se puedan representar sus actividades, productos de trabajo, patrones y recursos en términos de los alfas y los espacios de actividad característicos de la ingeniería de software. Estas prácticas, siendo negativas, se podrían estudiar cuidadosamente para mejorar las vulnerabilidades que puedan presentar los esfuerzos de ingeniería de software ante fallos de tipo humano en el acceso a la información. Referencias Alles, M., 2005. Diccionario de comportamientos: gestión por competencias, Argentina: Ediciones Granica S.A. Arráiz, J.I., 2000. Retribución y competencias: ¿Cómo garantizar su éxito? Capital Humano, 133, pp.6–8. Cano, J.J., 2004. Inseguridad informática: un concepto dual en seguridad informática. Revista de Ingeniería, (19), pp.40–44. Casanova, F., 2004. Desarrollo local, tejidos productivos y formación.Abordajes Alternativos para la Formación y el Trabajo de los Jóvenes, Montevideo. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 45 –46, ISSN 2500-5014 CEPAL, 2015. La nueva revolución digital, Santiago, Chile. Gulati, R., 2003. The threat of Social Engineering and your defense against it, Knoxville, Tennessee. Jacobson, I. et al., 2014. La esencia de la Ingeniería de Software: Aplicando el núcleo de Semat Nueva Libr., Buenos Aires, Argentina. Jacobson, I., Ng, P. & Mcmahon, P.E., 2013. La Esencia de la Ingeniería de Software: El Núcleo de Semat. Revista Latinoamericana de Ingeniería de Software, 1(3), pp.71–78. Krombholz, K. et al., 2014. Advanced social engineering attacks. Journal of Information Security and Applications, pp.1–10. OMG, 2014. Kernel and Language for Software Engineering Methods (Essence) Version 1.0, Available at: http://www.omg.org/spec/Essence/1.0/. Samani, R., 2015. Hacking the Human Operating System: The role of social engineering within cybersecurity, Santa Clara, CE. Smith, R., 2013. Elementary Information Security Jones & Ba., United States of America. Spencer, L.M. & Spencer, S.M., 1993. Competence at work John Wiley., New York. Uebelacker, S. & Quiel, S., 2014. The Social Engineering Personality Framework. In 4th workshop on Socio-Technical aspects in security and trust. pp. 1–14. Zapata, C.M., Giraldo, G.L. & Jiménez, L.D., 2014. Ontological Representation of the Graphical Language of Semat. IEEE, pp.1–6. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 46 –46, ISSN 2500-5014 Una extensión del núcleo de SEMAT para la representación de prácticas de enseñanza de sistemas embebidos R.D. Sánchez, A.A. Barón & M.C. Gómez. Grupos de Investigación en Lenguajes Computacionales, Universidad Nacional de Colombia, Medellín, Colombia. Introducción En la actualidad existe una creciente demanda de productos que contienen sistemas embebidos (Ordóñez, 2005), lo cual se traduce en un incremento en la demanda de ingenieros que implementen este tipo de sistemas con altos estándares de calidad. Estos ingenieros deben contar con conocimientos técnicos y habilidades blandas como negociación, trabajo en equipo y comunicación efectiva. Sin embargo, las instituciones de educación superior han orientado la enseñanza de sistemas embebidos a partir de la presentación de contenidos y no del desarrollo de competencias (Chenard, Zilic, & Prokic, 2008). Tradicionalmente, la implementación de sistemas embebidos se ha enseñado mediante dos estrategias de enseñanza- aprendizaje: a) clases magistrales y b) prácticas de laboratorio (Prikladnicki et al., 2013). En las clases magistrales el docente es el encargado de presentar a los alumnos los conceptos fundamentales de una temática. En el caso de las prácticas de laboratorio se realiza una simulación de un proyecto con los conceptos adquiridos. Sin embargo, ninguna de las dos estrategias garantiza el desarrollo de las competencias requeridas por los ingenieros de tipo técnico y social (habilidades blandas). El presente es un trabajo en progreso donde se propone una metodología de extensión del núcleo de Semat a otros dominios disciplinares (Object Managment Group, 2014). Los autores plantean una extensión para representar prácticas de enseñanza de sistemas embebidos (PESE) que faciliten el seguimiento al desarrollo de competencias. Se identificaron nuevos alfas, estados, un espacio de actividad y productos de trabajo. La propuesta parte del trabajo presentado en (Zapata-Jaramillo, 2014), donde se determina que el núcleo de Semat cumple con la definición de una teoría contando con constructos y proposiciones. Marco Teórico Sistemas Embebidos La tecnología de los sistemas embebidos (SE) se encuentra extendida en industrias como la de automóviles, dispositivos móviles, de automatización industrial, equipos de redes y electrodomésticos. (Mitsui, Kambe, & Koizumi, 2009; Ordóñez, 2012). Un sistema embebido es un computador con propósito particular constituido por software y hardware. Los ingenieros los diseñan con los recursos computacionales estrictos a las funcionalidades de su propósito, teniendo restricciones como el tiempo de respuesta, memoria y número de entradas y salidas. Su diseño involucra diferentes niveles de abstracción y enfoques de desarrollo: a) a nivel de sistema, b) a nivel de componentes software y hardware, y c) a nivel de integración de software y hardware (Mitsui et al., 2009). Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 47 –52, ISSN 2500-5013 Concepto de Práctica El concepto de práctica es común en el contexto de la ingeniería de software pero los autores le asocian diferentes definiciones y estructuras (Barón & Anaya, 2012) (Garcia, Martin, Urbanoi, & De Amescua, 2012) (Passos, Cruzes, Dyba, & Mendonca, 2012).Para efectos del presente trabajo se referencia el concepto de práctica presentado por el OMG (Object Management Group) en el estándar Kernel and Language for Software Engineering Methods (Essence). La práctica se define como una aproximación repetible para realizar un propósito específico. Una práctica provee una manera sistemática y verificable de abordar un aspecto particular de un trabajo. La práctica tiene un objetivo claro expresado en términos de los resultados que permite su aplicación. Proporciona una guía para ayudar y orientar a los profesionales en lo que se debe hacer para lograr el objetivo, para asegurar que el objetivo se entiende y para verificar que se logra (Object Managment Group, 2014). Estrategias de Enseñanza Las estrategias de enseñanza hacen referencia a todos los recursos y procedimientos utilizados por el docente para generar aprendizaje significativo en sus estudiantes (Férez, 2005). Este aprendizaje significativo se logra en la medida que se siga un proceso sistemático de planeación, diseño, implementación y evaluación de las actividades de enseñanza que componen una estrategia de enseñanza. Las estrategias de enseñanza deben ser diseñadas de tal manera que estimulen a los estudiantes a observar, analizar, sintetizar, formular hipótesis, resolver problemas, es decir, a descubrir conocimiento por sí mismos. De esta manera, el estudiante se convierte en el actor principal de su proceso de aprendizaje y el docente es sólo un guía o facilitador de dicho proceso. Antecedentes Existen diferentes propuestas para abordar un curso de sistemas embebidos a nivel universitario. En la presente sección se describen algunas de las más relevantes respecto a la utilización de prácticas de enseñanza diferentes a las tradicionales como son la clase magistral o las prácticas de laboratorio. Chedard y otros proponen una metodología de enseñanza de sistemas embebidos basada en un proceso de aprendizaje colaborativo, orientado por proyectos y centrado en el estudiante(Chedard, et al, 2008). Bareno (2011) presenta un programa que consta de tres cursos donde se usa exclusivamente plataformas de software y hardware libre para el desarrollo de sistemas embebidos. Mitsui y otros proponen un conjunto de experimentos para enseñar la implementación de sistemas embebidos diferenciando competencias relacionadas con: a) diseño de sistemas, b) diseño de software y c) diseño de hardware modular (Mitsui et al., 2009). De manera similar Rover y otros presentan un conjunto de cursos de sistemas embebidos donde se incorporan nuevas tecnologías, objetivos de aprendizaje, laboratorios de aprendizaje, repositorio de lecciones aprendidas y un modelo de enseñanza basado en la taxonomía de Bloom (Rover et al.,2008). Jaimeson (2010) diseña un curso de sistemas embebidos fundamentado en el aprendizaje basado en proyectos que se apoya en Arduino como plataforma abierta de implementación de estos sistemas. Fan y otros describen varias prácticas de enseñanza de sistemas embebidos como formación de grupos de interés y aplicación de concursos para promover el aprendizaje (Fan et al, 2013). Nooshabadi y Garside plantean un proyecto para diseñar un curso de sistemas embebidos modernos con el propósito proveer un ambiente de aprendizaje que replique las prácticas Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 48 –52, ISSN 2500-5014 industriales de implementación de sistemas embebidos (Nooshabadi & Garside, 2006). Una vez revisadas estas propuestas se elaboró un esquema preconceptual para cada una, con el objetivo de identificar los constructos y proposiciones más importantes de las diferentes prácticas de enseñanza de sistemas embebidos. En la figura 1 se presenta el esquema preconceptual para la propuesta de los autores Nooshabadi y Garside (2006). realizados mediante la revisión sistemática de literatura y la representación de las propuestas de los artículos con esquemas preconceptuales (EP) (Zapata-Jaramillo, Gelbukh, & Arango-Isaza, 2006). c) proveer una explicación para justificar la teoría, realizado mediante la homologación terminológica de los conceptos de los EP. El cuarto paso d) determinar el alcance de la teoría, se aborda al definir unos criterios para la extensión del núcleo de Semat. Por último, e) probar la teoría mediante estudios empíricos, se plantea mediante la aplicación empírica del modelo de extensión propuesto. Identificación y explicación de constructos y proposiciones. Figura 1. Esquema preconceptual que sintetiza la propuesta de enseñanza de sistemas embebidos de Nooshabadi y Garside (2006) Propuesta Metodología La “finalidad esencial de un artículo científico es comunicar los resultados de investigaciones, ideas y debates de una manera clara, concisa y fidedigna” (Martinson, 1983). Los artículos son el medio de divulgación a la comunidad científica de la descripción de un dominio disciplinar (Artiles-Visbal, 1995). De acuerdo a esto los autores proponen dos premisas: a) existe un conjunto de constructos y proposiciones esenciales y comunes a todas las PESE; b) estos constructos y proposiciones pueden ser descubiertos en un subconjunto finito de artículos disponibles en la literatura. El presente trabajo sigue la metodología presentada por Sjøberg, Dybå, Anda y Hannay (2008) a saber: a) definir los constructos de la teoría, b) definir las proposiciones de la teoría, Se realizó una búsqueda sistemática de la bibliografía haciendo uso del metabuscador de Google Scholar. La cadena de búsqueda usada fue: ((teach or teaching) AND "embedded system"). La búsqueda arroja 5140 resultados. El criterio de inclusión utilizado fue la pertinencia a investigaciones de enseñanza de sistemas embebidos que contienen como mínimo: a) conceptos, b) acciones, c) competencias, d) enfoques y/o propuesta de enseñanza y e) recursos de enseñanza. Por tratarse de un ejercicio piloto sólo se revisaron los primeros 100 artículos resultado de la búsqueda, por tanto, el criterio de exclusión consistió en aparecer en la posición 101 en adelante. Los autores leyeron veintiocho artículos que cumplieron con los criterios. De estos artículos se escogieron doce para ser analizados y representados mediante EP. A partir de los conceptos de los EP se estableció la homologación terminológica. Alcance del modelo de extensión propuesto A partir de la homologación terminológica surgieron los constructos y proposiciones mínimos aplicando los siguientes criterios: a) extensión al núcleo de Semat, tomándolo como medio de representación de las PESE al agregarle extensiones necesarias para la representación del nuevo dominio. b) Ortogonalidad de los constructos, estableciendo si un concepto Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 49 –52, ISSN 2500-5014 corresponde a un constructo representado como un Alfa (Ortogonal) o un sub-alfa (no ortogonal). Si el constructo siempre está presente y es independiente a los alfas del núcleo, se dice que es ortogonal, si no se identifica como un sub alfa o producto de trabajo. De forma similar se definen las extensiones de los espacios de actividad. c) Generalidad, las extensiones al núcleo propuestas (constructos, proposiciones y definiciones) son comunes a cualquier PESE y deben ser las mínimas con las cuales se puede representar cualquier PESE. d) Establecimiento de estados y listas de verificación de los alfas, se logran por analogía con los estados existentes en el núcleo de Semat y del análisis de los EP. estudio al "sistema embebido" y delimita el "trabajo" de enseñanza-aprendizaje. A su vez, el "equipo" se involucra en el ambiente te de aprendizaje. En cuanto a los espacios de actividad se agrega uno denominado “realizar actividades de aprendizaje”, en el área de interés “esfuerzo”. El resto de espacios de actividad del núcleo de Semat cubren las necesidades de las PESE. Además se identificaron los productos de trabajo y los estados y las listas de verificación de los alfas propuestos. En la figura 2 se muestra las relaciones de los alfas con la extensión propuesta, y en la figura 3 el alfa de “sistema embebido” sus sub-alfas, con el espacio de actividad propuesto. Aplicación empírica del modelo de extensión El enfoque de validación escogido es la verificación pragmática a través de la representación exitosa de PESE diferentes a las utilizadas para generar la extensión. La validación se deja planteada y consiste en el uso de núcleo y la extensión para representar un conjunto de PESE. Resultados La presente propuesta es un trabajo en progreso. En este apartado presentamos los resultados parciales en el contexto del núcleo de Semat como medio de representación de las PESE. Así, de las áreas de interés del núcleo esta propuesta utiliza “solución” y “esfuerzo” en el proceso enseñanza-aprendizaje. En PESE el área de “cliente” se utiliza cuando los estudiantes desarrollan proyectos o laboratorios de SE. Para la propuesta se plantea una excepción al núcleo: El alfa sistema software se establece como un constructo perteneciente a uno más general denominado sistema embebido; que además contiene a otro constructo denominado sistema hardware. El alfa sistema embebido remplaza a sistema software en cuanto a sus relaciones con los demás alfas. Además, se propone un nuevo alfa denominado ambiente de aprendizaje. El ambiente de aprendizaje tiene como objeto de Figura 2. Alfas del núcleo con las extensiones propuestas. Figura 3. Sub Alfa sistema embebido y espacio de actividad propuesto. Las prácticas son compuestas como se plantea en el estándar del núcleo de Semat haciendo uso de las extensiones planteadas para abordar el dominio de enseñanza de sistemas embebidos. Definición de la estructura de la práctica A partir del análisis de propuestas de enseñanza de sistemas embebidos, se identifican los elementos comunes y diferenciales para producir una definición que concilia los diferentes enfoques. Esta definición es presentada en la figura 4. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 50 –52, ISSN 2500-5014 Conclusiones En este trabajo se pone a consideración de la comunidad académica una metodología para extender el núcleo de Semat. Se logró un prototipo de extensión del núcleo, a partir de un conjunto limitado de fuentes bibliográficas del universo de prácticas disponibles para la enseñanza de sistemas embebidos. En el ejercicio se identifica que los constructos y proposiciones del núcleo de Semat son lo suficientemente generales y permiten la representación del nuevo dominio con la adición de unas pocas extensiones. Además, los nuevos constructos y proposiciones de la extensión propuesta se encuentran en el resto de los veintiocho artículos analizados. Como trabajo futuro se plantea la validación empírica de la extensión mediante la representación de nuevas prácticas de enseñanza disponibles en la literatura. Figura 4. Esquema preconceptual de la práctica de enseñanza de sistemas embebidos REFERENCIAS Artiles-Visbal, L. 1995. El artículo científico. Revista cubana de Medicina General Integral 11(4): 387–394. Retrieved from http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S0 864-21251995000400015 Bareno, C. 2011. Teching/Learning Methods for Embedded Systems Using Copyleft Hardware. Latin America Transactions 9(4): 503-509. Barón, A. & Anaya, R. 2012. Pegaso: Una propuesta para la gestión de activos de software. Tesis de maestría. Universidad Eafit, Medellín, Colombia. Chenard, J. Zilic, Z. & Prokic, M. 2008. A laboratory setup and teaching methodology for wireless and mobile embedded systems. IEEE Transactions on Education 51(3): 378-384. Fan, S. Liu, J. & Zhao, Y. 2013. Investigate on the Teaching Method for the Course “Embedded System”. Creative Education 3(07). Férez, P.E.G.2005. Un acercamiento al trabajo colaborativo. Revista Iberoamericana de Educación, 35(2). García Guzmán, J. Martin, D. Urbano, J. & Amescua, A. 2013. Práctical experiences in modelling software engineering practices: The project patterns approach. Software Quality Journal 21(2): 325–354. doi:10.1007/s11219-012-9177-8. Jamieson, P. 2010. Arduino for teaching embedded systems: are computer scientists and engineering educators missing the boat. Proc. FECS: 289-294. Kundert, K. & Chang, H. 2010. Model-based functional verification. In Design Automation Conference (DAC), 2010 47th ACM/IEEE, IEEE. Martinson, A. 1983. Guía para la redacción de artículos científicos destinados a la publicación. Paris: UNESCO. Retrieved from http://unesdoc.unesco.org/images/0005/000557/05577 8SB.pdf. Mitsui, H. Kambe, H. & Koizumi, H. 2009. Use of Student Experiments for Teaching Embedded Software Development Including HW/SW Co-Design. IEEE Transactions on Education 52(3): 436-443. Nooshabadi, S. & Garside, J. 2006. Modernization of teaching in embedded systems design-an international collaborative project. IEEE Transactions on Education 49(2): 254-262. Object Managment Group. 2014. Kernel and Language for Software Engineering Methods (Essence). Retrieved from http://wwon w.omg.org/spec/Essence/1.0. Ordóñez, S. 2005. Empresas y cadenas de valor en la industria electrónica en México. Economía UNAM 2(5): 90–111. Ordóñez, S. 2012. Nuevos determinantes del desarrollo y el sector electrónico-informático y de las telecomunicaciones en México. Comercio Exterior 62(4): 37–55. Retrieved from http://revistas.bancomext.gob.mx/rce/sp/index_rev.jsp?i d Revista=142. Passos, C. Cruzes, D. S. Dyba, T. & Mendonca, M. 2012. Challenges of applying ethnography to study software practices. Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering & Measurement. Prikladnicki, R. Dittrich, Y. Sharp, H. Souza, C. D. Cataldo, M. & Hoda, R. 2013. Cooperative and human aspects of software engineering: CHASE 2013. SIGSOFT Softw. Eng. Notes 38(5): 34–37. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 51 –52, ISSN 2500-5014 Rover, D.T. Mercado, R. Zhang, Z. Shelley, M.C. & Helvick, D.S. 2008. Reflections on teaching and learning in an advanced undergraduate course in embedded systems. IEEE Transactions on Education 51(3): 400-412. Sjøberg, D. I. Dybå, T. Anda, B. C. & Hannay, J. E. 2008. Building theories in software engineering. In Guide to advanced empirical software engineering: 312–336. Retrieved from http://link.springer.com/chapter/10.1007/978-1-84800-0 44-5_12. Zapata-Jaramillo, C. 2014. An executable pre-conceptual schema for a software engineering general theory. Centro Editorial de la Facultad de Minas (ed). In Software Engineering: Methods, Modeling: 3–7. Zapata-Jaramillo, C., Gelbukh, A., & Arango-Isaza, F. 2006. Pre-conceptual schema: A conceptual-graph-like knowledge representation for re-quirements elicitation. In MICAI 2006: Advances in Artificial Intelligence (pp. 27–37). Springer. Retrieved from http://link.springer.com/chapter/10.1007/11925231_3 Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 52 –52, ISSN 2500-5014 Retos en la enseñanza del Núcleo SEMAT a estudiantes de ciclos propedéuticos de Ingeniería de Sistemas en Colombia M.E. González & M.A. Becerra Institución Universitaria Salazar y Herrera, Medellín, Colombia http://www.iush.edu.co/ manera temprana fuertes amenazas a la validez. Introducción El Núcleo SEMAT en la educación Ciclos propedéuticos en Colombia Una de las mejores explicaciones del Núcleo SEMAT (Software Engineering Methods and Theory) como la Esencia de la Ingeniería de Software, se encuentra concreta y concisa en el trabajo de (Jacobson, y otros, 2013), allí se explica cómo el Núcleo será el consolidado de las mejores prácticas de la Ingeniería de Software, con soportes teóricos sólidos que argumenten la elección y puesta en práctica de cada actividad, rol, artefacto, y demás elementos involucrados en el desarrollo de software de calidad, y las consecuentes ventajas de su aplicación. Al respecto (Ng & Huang, 2013), muestran como una de las ventajas de SEMAT es servir de puente entre la industria, la educación y la investigación, ya que permite exponer a los estudiantes universitarios los conceptos que el docente considere más importantes de diversos métodos y enfoques de desarrollo de software, todo esto bajo la premisa de que SEMAT permite visualizar la pletórica diversidad de la Ingeniería de Software, sin perder de vista uno de sus objetivos principales, el cual es optimizar el desarrollo eficiente de software de calidad; en este mismo sentido, se encuentran los análisis desarrollados por (Ibargüengoitia & Oktaba, 2014) los cuales indican que la aplicación de la Esencia en ambientes educativos en Instituciones de Educación Superior (IES) permite detectar de “Los ciclos son unidades interdependientes, complementarias y secuenciales, un ciclo propedéutico se puede definir como una fase de la educación que le permite al estudiante desarrollarse en su formación profesional siguiendo sus intereses y capacidades”, (Colombia, 2009) De acuerdo con (Pérez Gama, Pérez Gutiérrez, & Hoyos Gómez, 2011) en años anteriores en Colombia, se consideraba a las carreras técnicas y tecnológicas como ciclos cerrados y concluyentes, que no ofrecían a sus egresados la posibilidad de moverse hacia niveles profesionales; esto llevó a dichos programas a una situación discriminada, por considerarse de menor expectativa profesional. Luego el gobierno decretó a través del Ministerio de Educación Nacional (MEN) el concepto de Ciclos Propedéuticos para las áreas de ingenierías, la tecnología de la información y la administración a través de la ley 749 de 2002, con diversas argumentaciones como ampliar la cobertura educativa, o que los estudiantes sólo requieren SABER y SABER HACER; sin embargo, se han observado algunas afectaciones negativas a la calidad de la educación superior, producidas por la implementación de dichos ciclos. Estas falencias se evidencia aún antes de que los estudiantes culminen las carreras profesionales, en el caso Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 53 –58, ISSN 2500-5013 puntual de este trabajo, para la carrera de Ingeniería de Sistemas; cuando en la misma aula de clase confluyen estudiantes que tienen titulaciones previas en Técnicas o Tecnologías afines con informática, y estudiantes que no tienen ese tipo de formaciones preliminares. Tipificación de estudiantes Es usual que bajo el modelo de ciclos propedéuticos, confluyan en las aulas de clase de educación superior, estudiantes con formación previa en carreras técnicas o tecnológicas relacionadas con sistemas informáticos, estudiantes que laboran en áreas tecnológicas de algunas compañías, y estudiantes cuya única formación previa es el bachillerato; bajo esta circunstancia se identifican dos perfiles estudiantiles: los que hacen uso del ciclo propedéutico propiamente dicho, y los estudiantes “regulares” sin titulaciones previas en áreas informáticas. Posibles situaciones problemáticas con estudiantes titulados Usualmente se trata de estudiantes que laboran, y asisten a clases únicamente en horarios extremos, lo que implica que al llegar al aula de clase usualmente se encuentran apurados por salir si es en el horario de la mañana, o extenuados física y mentalmente si es en el horario de la noche; adicionalmente sus intereses prioritarios no siempre son adquirir nuevos conocimientos teóricos, si no , nuevos conocimientos prácticos que puedan ser evidenciados con prontitud en sus lugares de trabajo para aspirar a un ascenso o a una mejora salarial; para este grupo de estudiantes el núcleo SEMAT resulta interesante para su utilización, toda vez que les ahorra tiempo en el momento de aplicar las metodologías con las que – muchas veces – lidian a diario, sin embargo, se muestran mucho más interesados en la utilización del núcleo que en la construcción del mismo. Estudiantes sin titulaciones tecnológicas previas Este grupo de estudiantes muestra prácticamente el mismo interés por las informaciones teóricas y por las especificaciones prácticas y aplicativas. Este comportamiento generalizado, puede implicar que se consideren los más apropiados para ayudar a la construcción de los cimientos teóricos del Núcleo, toda vez que aunque no tienen mucha experiencia en la aplicación de metodologías (algunas veces ninguna experiencia), cuentan con el tiempo y el interés necesarios para apoyar grupos de investigación o semilleros que se puedan agrupar en torno a la temática de interés; cosa que no ocurre con los “estudiantes de medio tiempo” del primer grupo. Calidad de la educación Según se desprende de la información proporcionada por (Pérez Gama, Pérez Gutiérrez, & Hoyos Gómez, 2011) una de las ventajas de la educación por ciclos propedéuticos es que “El grado intermedio enriquece el logro profesional y la experiencia.”, sin embargo es precisamente esa experiencia la que es necesario aprender a manejar en el aula de clase, para evitar caer en uno de los dos extremos evidentes; de un lado la idea de que la fundamentación teórica es más importante que la práctica, confluyendo esto a ensanchar la brecha existente entre la industria y la academia, toda vez que la industria requiere personal para el hacer, no sólo para el saber; de otro lado, se corre el riesgo de caer en la impartición de formación técnica en programas universitarios, con carencias evidentes de fundamentación teórica, y por lo tanto sin soportes sólidos que permitan a los egresados proponer mejoras u optimizaciones a procesos existentes, sin caer en el empirismo. Los dos grupos de estudiantes previamente clasificados, son disímiles entre sí; y Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 54 –58, ISSN 2500-5014 especialmente con aquellos que presentan dificultades de horario laboral, se dificulta implementar grupos de investigación o semilleros que aporten al crecimiento de la calidad académica que requieren las evaluaciones de estado, al tiempo que los estudiantes pertenecientes al segundo grupo identificado, son quienes usualmente requieren ser “entrenados y re-educados” en las empresas al momento de su contratación, son estos últimos quienes generan las quejas de los empresarios frente al tema de que los conocimientos impartidos desde la academia no siempre son útiles en el mundo empresarial real. ¿Por qué interesa enseñar el núcleo? Existen varias razones para querer incorporar el Núcleo en los planes de estudio de la educación superior, dos de ellas son: En primera instancia, porque el Núcleo promete consolidar en sí mismo las mejores prácticas de la ingeniería de software tal y como se conoce hasta ahora, esto implica múltiples ventajas para todo lo relacionado con la industria y la academia del software, por ejemplo disminución de costos, aumento de ganancias económicas, optimización de procesos, aumento de calidad en productos finales, etc. En segundo lugar porque los egresados son quienes finalmente irán a las empresas a aplicar aquello que hayan aprendido en sus programas universitarios, no es descabellado entonces procurar que desde su formación académica reciban los conocimientos que luego desplegarán en el mundo industrial. Interés académico El software pasó a ser un elemento de uso diario para todas las personas en diversos entornos, ya no es de uso exclusivo para quienes están inmersos de alguna manera en el mundo tecnológico, muchos usuarios se consideran expertos en temas informáticos, pero el mundo informático es tan amplio, que es necesario definir claramente sus componentes y sus características, particularmente las del componente software. Al respecto, la figura 1 muestra la transversalidad del software en tres áreas computacionales, Ingeniería de la Computación (IC), Ciencias de la Computación (CC), y como era de esperarse, de la propia Ingeniería de Software (ISw). Figura 1. Transversalidad del Software (Tomada de (Holguín Ontiveros & Valbuena Antolinez, 2013)). Uno de los apartes de la conclusión de (Holguín Ontiveros & Valbuena Antolinez, 2013) hace alusión a la importancia de la “continua revisión de los estados del arte sobre la disciplina y el núcleo epistemológico de la misma”, refiriéndose a la tecnología. Este aporte es significativamente valioso para los entornos académicos, teniendo en cuenta que las características de quienes se desenvuelven en los programas relacionados con la informática suelen ser personas ávidas de conocimientos de punta, bien sea para apropiarse de ellos a través del estudio (investigadores, docentes y estudiantes), o a través de la búsqueda de souciones y aplicaciones prácticas (principalemnte en el caso de los empresarios); pero este interés no puede ni debe desembocar en prácticas empíricas, las cuales no cuenten con soportes teóricos. Ante la realidad de que en el sistema académico Colombiano actual y gracias a la implementación de los ciclos propedéuticos, un gran porcentaje de la población estudiantil es población trabajadora, cuya prioridad no es investigar ni leer textos extensos, es perentorio buscar la mejor forma de hacer llegar a esos estudiantes el conocimiento eficaz del Núcleo de la ingeniería de software Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 55 –58, ISSN 2500-5014 SEMAT, sin perder de vista la fundamentación teórica del mismo. Interés industrial Las empresas de base tecnológica requieren profesionales íntegros que además de los conocimientos técnicos posean habilidades transversales tales como las comunicativas, de relaciones interpersonales, etc. Las IES usualmente se preocupan de mantener planes de estudio vigentes acorde con las necesidades expresadas por lo que el medio les demanda, entendiendo el medio como Empresas, la sociedad e incluso otras IES, toda vez que es posible que sus egresados deseen continuar realizando estudios posgraduales. A pesar de lo anterior, algunos empresarios manifiestan su disgusto con el desempeño inicial de los recién graduados que vinculan a sus empresas, y argumentan que la formación que éstos han recibido probablemente sea insuficiente o, incluso, incorrecta, toda vez que los conocimientos que llevan no cumplen las expectativas de lo que la empresa requiere. Para el caso de los profesionales y las empresas relacionadas con la Ingeniería de Software, no se presenta una excepción a este comportamiento; de hecho, uno de los trabajos que han versado sobre las problemáticas que derivan de la brecha que separa la teoría de la Ingeniería de Software, como se enseña en las IES, de la realidad requerida por las industrias, es el de (Alsmadi & Abul-Huda, 2011); allí manifiestan que uno de los mayores inconvenientes surge del hecho de que los estudiosos de la enseñanza de la Ingeniería de Software se centran en el ámbito académico, ignorando las necesidades manifestadas por las industrias frente a este tema. Teniendo en cuenta el segundo ítem de este trabajo, probablemente se logre dar una luz de explicación a este fenómeno. Se encuentra también el artículo de (Wohlin, 2013) en el cual expone los 10 desafíos más importantes para lograr una asociación exitosa entre la industria y la academia, más allá de las conclusiones que permiten evidenciar que la relación industria – academia debe ser vista como una inversión para ambas partes, queda la inquietud de la motivación para este tipo de trabajos, lo que lleva a pensar que existen incontables necesidades en la industria que no han logrado ser cubiertas completamente por la academia, y es a partir de esta reflexión que se comienzan a buscar alternativas de solución a la situación encontrada. Prueba del interés de las IES por mejorar la manera en la cual se imparte la Ingeniería de Software, es el trabajo realizado por (Marques, Quispe, & Ochoa, 2014), el cual realiza una búsqueda de los métodos pedagógicos utilizados en la actualidad, y concluye que las propuestas de enseñanza de la Ingeniería de Software involucran un gran número de experiencias prácticas y funcionales que incluyen estudios de caso y desarrollo de juegos entre otras actividades. Otros intereses El trabajo de (Perez Gama & Quizza Tomich, 2012) indica que la acreditación internacional de programas ingenieriles debe ser una prioridad si se quiere aumentar la competitividad de las universidades y de los países latinoamericanos, todo ello debe ir soportado en procesos que garanticen calidad, por ejemplo, optimización de planes de estudio, capacitación a docentes sobre tecnologías de punta y sobre metodologías de trabajo para abordar nuevos elementos como el Núcleo SEMAT. alternativas de solución Para afrontar la situación problemática de la brecha industria-academia, existen múltiples propuestas de solución tales como el esquema CDIO (Concebir Diseñar Implementar Operar) que se presenta como “Una Nueva Visión para la Educación en Ingeniería” ((FCFM), s.f.), el cual pretende que los estudiantes de cualquier programa de ingeniería reciban conocimientos Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 56 –58, ISSN 2500-5014 con sólidas bases teóricas que puedan ser aplicables en la industria; se ocupa de indagar acerca de los conocimientos que las industrias requieren de los egresados, también de las mejores estrategias para lograr que los estudiantes efectivamente adquieran dichos conocimientos. Para el caso de Latinoamérica existen propuestas de solución como la de (Holguin & Valbuena, 2013) quienes presentan una idea que busca llevar a las aulas de clase un extracto de los procesos empresariales relacionados con las buenas prácticas de la Ingeniería de Software, el proyecto incluye obviamente acompañamiento pedagógico, aplicación de metodologías activas y métodos evaluativos que permitan evidenciar el alcance de los conocimientos y competencias mínimas requeridas por los estudiantes. Conclusión Se requieren estrategias pedagógicas que permitan acercar de manera óptima y relevante los elementos del Núcleo a los estudiantes de programas universitarios informáticos tales como Tecnología Informática, Tecnología en Sistemas, Ingeniería de Sistemas, etc. Con el fin de que todo el potencial del Núcleo pueda ser desarrollado, comprendido y utilizado por aquellos que luego lo replicarán en las empresas, o sea los futuros egresados y profesionales del país. Para el abordaje del tema del Núcleo con los estudiantes con títulos previos se recomienda determinar los elementos de las metodologías con los cuales ellos están en mayor interacción en su día a día laboral, ya que para ellos más fácil identificar las prácticas de dichas metodologías, y sus componentes más generales; así que les resultará más fácil hacer las representaciones en el núcleo. Para los estudiantes que no tienen títulos previos, el trabajo con ellos puede ser más provechoso desde el punto de vista de la teoría, tanto del núcleo como de las metodologías. Finalmente, y teniendo en cuenta que se trata de grupos estudiantiles que comparten los mismos espacios académicos, se recomienda la creación de espacios de discusión en los cuales todos puedan compartir las experiencias de sus investigaciones. Referencias (FCFM), F. d. (s.f.). CDIO. Obtenido de http://www.cdio.cl/cdio-a-new-vision-for-e ngineering-education Alsmadi, I., & Abul-Huda, B. (2011). Improving understandability in teaching of software engineering and connectivity with the industry. Global Engineering Education Conference (EDUCON) (pp. 20 - 25). Amman: IEEE. Colombia, M. d. (20 de Julio de 2009). Información destacada Ministerio de Educación. Obtenido de http://www.mineducacion.gov.co/1621/ar ticle-196476.html Holguín Ontiveros, E. P., & Valbuena Antolinez, S. (2013). Design, Construction and Imp,ementation of a Professional Education Program of Software Engineering. Latin American Computing Conference. IEEE. Jacobson, I., Zapata, C., Ng, P.-W., McMahon, P., Spence, I., & Lidman, S. (2013). La esencia de la ingeniería de Software: El núcleo de Semat. Revista latinoamericana de ingeniería de software, 71-78. Marques, M. R., Quispe, A., & Ochoa, S. F. (2014). A systematic mapping study on practical approaches to teaching software engineering. Frontiers in Education Conference (FIE) (pp. 1 - 8). Madrid: IEEE. Perez Gama, A., & Quizza Tomich, M. (2012). The international accreditation of the engineering by propaedeutical cycles: An imperative for Colombia. Global Engineering Education Conference (EDUCON) (pp. 1-10). Marrakech: IEEE. Pérez Gama, A., Mena Mena, A., Hoyos, G., & Pérez Guitérrez, B. (2010). A Knowledge Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 57 –58, ISSN 2500-5014 Based Analytical Model of Propaedeutic Cycles for Higher Education: Linking with Media Education in Colombia. The Future of Global Learning Engineering Education (pp. 281 - 286). Madrid: IEEE. Pérez Gama, A., Pérez Gutiérrez, B. A., & Hoyos Gómez, G. (2011). Knowledge for society, the social inclusion towards the high educational competitiveness. IEEE Global Engineering Education Conference (EDUCON) – "Learning Environments and Ecosystems in Engineering Education" (pp. 1139 - 1145). Amman: IEEE. Wohlin, C. (2013). Empirical software engineering research with industry: Top 10 challenges. Conducting Empirical Studies in Industry (CESI) (pp. 43 - 46). San Francisco, CA: IEEE. Wohlin, C. (2013). Empirical Software Engineering Research with Industry: Top 10 Challenges. CESI (pp. 43-46). San Francisco, CA, USA: IEEE. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 58 –58, ISSN 2500-5014 Ethics: extending human aspects in Way-of-Working M.J. Simonette & E. Spina Escola Politécnica – Universidade de São Paulo, São Paulo, Brazil. M.E. Magalhães CEST – Universidade de São Paulo, São Paulo, Brazil. one challenge that are always present in all software endeavors: To give more value to people and the interaction between them, than on process and tools. Introduction A software world Software development has become as activity present in many organizations. Several organizations have their own software development teams and have their processes, activities, services, and products being offered, and executed, through software systems. A glance toward the future indicates that almost all business will be on software systems. This suggests that organizations will be software companies, whether they are aware of it or not. The competence of organizations to produce, to subscribe, and to use a software system is, and will be, an essential factor of their success, of their competitive strategy. As argued by Marc Andreesen: “Software is eating the world” (Andreessen 2001). Challenges of software world How to deliver software with process that have productivity, predictability, and quality? How to answer the demand for software systems that are reliable and that are essential to differentiate who demand them from others competing organizations? How to produce and maintain software systems in face of various regulatory requirements of the market? How is it possible to answer in an innovative and fast way? These are only a few examples of a long list of challenges present in software endeavor. However, there is Software Engineering A system of human activities Unlike others engineering disciplines, there is not a science that establishes the principles and laws of software engineering (Lehman, 1989, 1991, Jacobson et. al. 2012, 2013). The development of the first version of a software, and the evolution of an existing one, is not a process governed by laws of nature. Lehman (1980) argues that the first implementation of a software and the changes that occur in this software do not occur spontaneously; people do this work by the interpretation of requirements, specifications, code, and documentation. Lehman continues by stating that people who perform this work do so because the users, consumers, customers, legislation, administrative guidelines, failures in current systems or even by inspiring to change or to do something that they think that is better. The human judgment and reasoning have a decisive role in the execution of the software development process. The main actors Different software systems have different objectives. Therefore, there are different kinds of Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 59 –63, ISSN 2500-5013 software’s (Pressman, 2010, Somerville, 2011). Software engineers deal with this diversity and they have the natural vocation to create and maintain software systems that bring value to humanity. Software systems development methods and process have received much attention from scientific community and from software industry (Boehm & Turner, 2003, Bourque & Fairley, 2014; SEI – Carnegie Mellon University, 2013; Agile Alliance, 2013; SEMAT, 2015; Scrum.org, 2015). Nevertheless, few methods consider human aspects as desires, values, emotions and free will of people that work in the software process. People are the main actors of the software system life cycle, both individually and collectively. concern: (i) Work has relationship with Requirements – Opportunity – Software System; (ii) Team has relationship with Software System – Stakeholder; (iii) Way-of-Working does not have relationship with alphas of other dimensions rather than Endeavor. Although the alpha Way-of-Working does not have relations with others areas of the Kernel, it is an essential link between Team and Work. Individuals and the interactions among them People are present during all the phases of the software endeavor, since the identification of an opportunity until its retirement. In this lifecycle, there are stakeholders and development team. These two groups of people need to interact with each other, and among their own teams, to promote the understanding of the needs and problems requirements. As argued by Weinberg (2011): “No matter what the problem is, it's always a people problem.” Figure 1. Alphas of the Endeavor area of concern and their relationship with other Kernel alphas. Relationship challenges Individuals who manage and practice software engineering must consider professional and ethical issues in their decisions to commit their team as a whole to the highest ethical and professional conduct. Ethical decisions, decisions that are deemed correct, encourage cooperation not only among team members, but also between the development team and stakeholders. Despite the apparent simplicity of the relations between the alphas shown in Figure 1, there are some challenges in these relations: (i) The cooperation among Team members; (ii) The cooperation among Team members and stakeholders; (iii) The awareness of the individuals who manage and practice engineering in respect to the software engineering Code of Ethics. The attention to the promotion of cooperation and the awareness of the software engineering Code of Ethics is essential for the software team, in order to accomplish works that are concerned with the health, safety and welfare of the people that take part of the software endeavor. Essence endeavor dimension Software engineering code of ethics Ethics Endeavor alphas and its relationships Figure 1 highlights the relationships of the Essence Kernel alphas that belong to the Endeavor area of Software Engineering Code of Ethics and Professional Practice (Version 5.2) is the standard for teaching and practicing software engineering that was jointly approved by the ACM (Association Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 60 –63, ISSN 2500-5014 for Computing Machinery) and IEEE Computer Society (more information about the Code of Ethics is available at: http://www.acm.org/about/se-code). The preamble of the Software Engineering Code of Ethics and Professional Practice (Version 5.2) states that: “The Code contains eight Principles related to the behavior of and decisions made by professional software engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and students of the profession. The Principles identify the ethically responsible relationships in which individuals, groups, and organizations participate and the primary obligations within these relationships. The Clauses of each Principle are illustrations of some of the obligations included in these relationships. These obligations are founded in the software engineer’s humanity, in special care owed to people affected by the work of software engineers, and the unique elements of the practice of software engineering. The Code prescribes these as obligations of anyone claiming to be or aspiring to be a software engineer”. The eight Principles of the Code, in their short version, are: 1. PUBLIC - Software engineers shall act consistently with the public interest. 2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest. 3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. 4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment. 5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. 6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. 7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues. 8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession. Software engineering code of ethics and essence kernel The Essence Kernel can be scaled to address ethical issues, providing guidance beyond what the Kernel provides, conducting software engineers to carrying out their professional duties, maintaining the highest possible standards of conduct. This additional guidance comes in forms of supplements to the checklists of each state of the Way-of-Working alpha. Ethics: there is no absolute right answer A strong characteristic of the Endeavor area of concern is the presence of people; it is in this context that the relationship among team members occurs. The dissemination of the software engineering Code of Ethics to team members is not a matter of aligning the Code to the established principles, and constraints, which shape the workflow and define the first state of the Way-of-Working alpha. This occurs because each member of the team has their own values, moral, and formulation of personal ethical standards. These personal elements have influence over decision-making processes and over the interrelationship among individuals. As a team, it is necessary to develop a shared understanding of the ethical standards among team individuals. This understanding allows the team to develop confidence on the expected behavior of both the individuals themselves and as team members, and the team as a group. Ethical issues are very important elements of software engineer career, and are present in lifecycle of software systems from lust-to-dust. As these ethical issues cause team members to deal with values, it is necessary to explain and support the ethics in decision-making throughout the software lifecycle. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 61 –63, ISSN 2500-5014 Checklist supplement The short version of the eight principles of software engineering Code of Ethics summarizes aspirations at a high level of abstraction. Nevertheless, the short form is useful to develop items of a checklist, which allow team members to identify if they have problems in adhere to ethical principles in addition with the tailored set of practices and tools used by the team to guide and support their work. In order to develop a shared vision of the software engineering ethical principles, and work with it towards a common interpretation and implementation of the software engineering Code of Ethics, the authors supplemented the checklist of the Way-of-Working alpha states with additional guidance about ethical principles of software engineering. Each of the principles expresses a strong assertion or intention. Wherefore, the best way to identify team adherence to these principles is by a double negation of the principle. As an example, the principle: “1. PUBLIC - Software engineers shall act consistently with the public interest”, can be represented in a checklist as: “team members are not acting in an inconsistent way with the public interest.” Table 1 presents the items that supplement the checklist of each state. Table 1. Supplement Checklist for way-of-working alpha states. State Supplement Checklist Principles Team members adhere to the Establish Principles of Software Engineering ed Code of Ethics Team members agree that the Foundati usable way of work selected on adhere to the Principles of Establish Software Engineering Code of ed Ethics. In Use In Place Working Well Retired Team members are not acting in an inconsistent way with the public interest. Team members are not acting in a manner that is not in the best interests of their client and employer. Team members ensure that their products and products modifications are not meeting poor standards or bad patterns. Team members are not taking decisions influenced by others professionals or other interests regardless of any personal advantages. Team managers and leaders are not performing or promoting anti-ethic approach to the management of software development or maintenance in any aspect technical, professional, behavioral or in staff related aspects. Team members by act or by omission are not denigrating the profession. Team members are not being unfair, non-respectful or non-supportive relating any colleagues, professionals or any staff members. Team members are not by act or omission avoiding or disregarding opportunities to pursue lifelong learning regarding the practice of the profession or to reinforce ethical approaches to the practice of the profession. Supplement equal to In Use.* Supplement equal to In Use.* Team members have assured that the ethical decisions are recorded for future reference. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 62 –63, ISSN 2500-5014 * Ethics concern must be present through all the execution states. Conclusion and Future Work The way of working affects all team members, and every team member can contribute to it (Jacobson et. al. 2013). Ethical issues are present in endeavor dimension, and must be consider as the team evolves their way of working alongside their understanding of their mission and their working environment. When team members talk about ethical Principles at each Way-of-Working alpha states, they deepens the knowledge and debate about the actions and decisions present in their way of work. The Principles identify the ethically responsible relationships in which individuals, groups, and organizations participate, and the primary obligations within these relationships. The clauses of each Principle are illustrations of some of the obligations included in these relationships. These obligations are founded in the software engineers humanity, in special care owed to people affected by the work Acknowledgement The authors would like to thank Full Professor Luiz Barco, Senior invited professor at Computer Engineering Department (PCS) of Escola Politécnica from Universidade de São Paulo, for the numerous hours spent with us discussing ethics and humanism in technological innovation processes. This paper was supported in part by Universidade de São Paulo Society and Technology Study Center (or, CEST – Centro de Estudos Sociedade e Tecnologia, in Portuguese). Engineering Body of Knowledge, Version 3.0, IEEE Computer Society. Available at: www.swebok.org. Brooks, F.P. 1987. No silver bullet: Essences and accidents of software engineering. IEEE Computer, vol. 20, no. 4, pp.10-19. Doi: 10.1109/MC.1987.1663532 Clarke, P. & O’Connor, R.V. 2012. The situational factors that affect the software development process: Towards a comprehensive reference framework. Information and Software Technology, vol. 54, no. 5, pp. 433–447. Doi: 10.1016/j.infsof.2011.12.003 Lehman, M.M. 1980. On understanding laws, evolution, and conservation in the large-program life cycle. Journal of Systems and Software, vol. 1, pp. 213-221. Lehman, M.M. 1991. Software engineering, the software process and their support. Software Engineering Journal, vol.6, no.5, pp.243-258, Sep. Jacobson I., Ng, P.W., Mcmahon, P.E.,Spence, I. & Lidman, S. 2012. The Essence of software engineering: The SEMAT kernel. Queue, vol. 10, no. 10, pp. 40-52. DOI: 10.1145/2381996.2389616. Jacobson I., Ng, P.W., Mcmahon, P.E.,Spence, I. & Lidman, S. 2013. The Essence of Software Engineering – Applying the SEMAT Kernel. New Jersey: Addison-Wesley Professional, 2013. Pressman, R.S. 2010. Software Engineering: A Practioniner`s Approach, 7th. Ed., New Your, NY: McGrae-Hill, 2010, 930 p. Scrum.org, 2015. Improving the Profession of Software Development. Presents resources and methods developed by Scrum practitioners and agile professionals. Available at: <http://www.scrum.org>. SEI - Carnegie Mellon University, 2015. SEI - Methods & Tools. It presents tools and methods developed by the SEI and its research partners. Available at: <http://www.sei.cmu.edu/tools/?location=secondary-na v&source=1358>. SEMAT, 2015. Software Engineering Method and Theory. Available at: <http://www.semat.org>. Somerville, I. 2011. Software Engineering, 9th Ed. Boston: Addison-Wiley, 2011, 790p. ISBN 9780137035151. Weinberg, G. 2011. The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully. Wienberg & Wienberg, Kindle Edition. References Agile Alliance, Guide to Agile Practices. Available at: <http://guide.agilealliance.org/#sthash.xP4cQ00s.dpuf>. Andreesse, M. 2011. Why Software is eating the world. The Wall Street Journal. Essay, August 20, 2011. Boehm, B.W. & Turner, T. 2004. Balancing agility and discipline: a guide for the perplexed. Boston: Addison-Wesley, Kindle edition. Bourque, P. & Fairley, R.E. eds., 2014. Guide to the Software Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 63 –63, ISSN 2500-5014 Agilismo Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 64, ISSN 2500-5013 Guía para la Integración de Métodos Formales de Ingeniería de Requerimientos en Procesos de Desarrollo Ágil J.D. Murcia Torres, M.E. Torres Moreno Pontificia Universidad Javeriana, Bogotá, Colombia Introducción En el mundo del desarrollo de software, son muchas las metodologías que se encuentran disponibles, sin embargo, cada proyecto tiene necesidades diferentes, y seleccionar la adecuada podría significar en gran medida el éxito o fracaso. Los inconvenientes en los proyectos pueden ser variados, sin embargo se ha logrado establecer que la gran mayoría de estos problemas tienen que ver con procesos errados de Ingeniería de Requerimientos, y/o con una mala gestión de la metodología usada [2]. Las metodologías ágiles han hecho frente a algunas de estas dificultades, sin embargo, por su naturaleza, no las logran abarcar a plenitud. La Guía, busca acoplar de una manera armónica los diferentes conceptos teórico/prácticos implícitos en los proyectos de desarrollo, haciendo principal énfasis en los procesos de Ingeniería de Requerimientos y las buenas prácticas soportadas por las metodologías ágiles. En este sentido, La Guía propone una serie de “formas de” hacer las cosas en esta, y una unificación de todos los aspectos teóricos mencionados a continuación. Marco Conceptual El desarrollo de La Guía implicó una amplia investigación sobre aspectos teóricos tales como Ingeniería de Requerimientos, metodologías ágiles, la forma en que se modelan los requerimientos y SEMAT; siendo esta última, una iniciativa que busca por medio de una teoría lo suficientemente formal, la implementación de la Ingeniería de Software, utilizando las mejores prácticas de los “más de 100000 métodos existentes” [3], dentro de los cuales se encuentran RUP, CMMI, Scrum y XP entre otros. Los aspectos más importantes de estas temáticas, y sus respectivas adaptaciones se enuncian a continuación: SEMAT (Software Engineering Method and Theory) Iniciativa que busca redefinir la Ingeniería de Software por medio de lo que los autores consideran como “La esencia de la Ingeniería de Software: El núcleo de SEMAT” [4]. Dicha redefinición se encuentra basada en una teoría sólida, principios probados y las mejores prácticas aplicables a los proyectos, incluyendo un núcleo (Kernel) de elementos ampliamente aceptados y que se pueden extender a usos específicos; de manera que se traten asuntos tecnológicos y humanos, apoyando a la industria, la academia, investigadores y usuarios. El Kernel se compone de dos grandes conjuntos de elementos: “Las cosas con las que siempre trabajamos” (Ver Ilustración 1) y “las cosas que siempre hacemos” (Ver Ilustración 2); este primero representado a través de los llamados Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 65 -71, ISSN 2500-5013 Alfas, quienes a su vez poseen un conjunto de Estados que simbolizan el porcentaje de avance y salud del proyecto; el segundo son Actividades asociadas a los Alfas. Ilustración 1. Cosas con las que siempre trabajamos. (Tomado de [5]) En este sentido, elementos del Kernel como los Alfas (y sus Estados) han sido representados físicamente a través de las Cartas Alfa de Estados (Ver Ilustración 3). Estas cartas se pretende sean gestionadas en el transcurso del proyecto, de manera que al finalizar este, se haya pasado por cada uno de los estados. Ilustración 2. Cosas que siempre hacemos. (Tomado de [5]) Ilustración 3. Cartas Alfa de Estados. (Tomado de [6]) Existen dos tipos de Cartas Alfa de Estados, una muy general en la que se enuncia un Alfa y los distintos Estados por los que este pasa, y otra que detalla cada Estado a través de una lista de chequeo esencial propuesta por SEMAT –a la cual se le pueden adicionar tareas relacionadas con las Actividades asociadas al Alfa y más específicamente al Estado en el que se encuentre el proyecto–. El Kernel posee tres principios fundamentales (Accionable, por los Estados propuestos en los Alfas; Extensible, por su capacidad de modificarse; y Práctico, por la representación de Estados a través de cartas gestionadas diariamente) que lo hacen una herramienta verdaderamente positiva y efectiva a la hora de gestionar cualquier proyecto de software [6]. Metodologías Ágiles Estas metodologías se basan en principios y valores que enfocan el trabajo principalmente hacia las personas, la productividad y la oportuna respuesta al cambio [7]. En este sentido, fueron analizadas metodologías como Kanban, Scrum y XP, con el fin de determinar las principales características propias de los proyectos de desarrollo ágil, haciendo especial énfasis en las dos primeras, ya que se consideró que serían las más apropiadas –en este caso– a ser adaptadas al Kernel de SEMAT, en cuanto a que se encuentran más enfocadas hacia la gestión/ejecución de proyectos. Por su parte Scrum aporta a esta Guía la forma en que gestiona sus iteraciones o "sprints", los cuales siempre están encaminados a cumplir con el objetivo (Sprint Goal) establecido durante una reunión inicial (Sprint Planning Meeting). La forma en que se ejecuta, y se mapean los artefactos de Scrum a La Guía, será explicada más adelante. Por otro lado Kanban, que está basado en los principios Lean y el cual es considerado como un “sistema de producción altamente y efectivo” [8], aporta la metodología para gestionar proyectos a través de “tarjetas visuales” –en este caso las tarjetas que representan a los diferentes Estados de los Alfas en SEMAT–, y la forma de trabajar con su tablero de estados. Modelado de Requerimientos Según IEEE, un requerimiento se refiere a "una Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 66 –71, ISSN 2500-5014 sentencia que traduce o expresa una necesidad y sus condiciones y restricciones asociadas" [9]. Estas "necesidades" son resultado de un proceso de Ingeniería de Requerimientos (IR), y serán la materia prima de los desarrolladores a la hora de crear y dar forma al producto de software, debido a que representan de manera atómica las características y funcionalidades que este debe tener. Un proceso de IR implica por lo general cinco etapas primordiales (obtención, análisis, especificación, validación y gestión) que "garantizan" que los requerimientos finales estén bien definidos [10]. Dependiendo de la metodología utilizada, es necesario hacer variaciones sobre cada etapa, de manera que se adapte a la filosofía de esta. Ante la importancia de la Ingeniería de Requerimientos en el desarrollo de software, poco a poco se han propuesto diferentes modelos que ayuden a los Ingenieros de Software en la realización de las actividades que dicho proceso implica (obtención, análisis, especificación, etc.). En este sentido, iniciativas como las de KAOS [11] e i* [12] son actualmente las más conocidas, sin embargo, nuevas propuestas como la de Joy Beatty, buscan estandarizar los modelos existentes a través de lenguajes como RML [13]. Los modelos que Beatty propone son clasificados en cuatro grandes grupos: Objetivos-Personas-Sistemas-Datos (OPSD) [13]; siendo esta clasificación la que se tuvo en cuenta en la elaboración de La Guía para asignar los modelos durante las diferentes etapas del proyecto, a fin de poder analizar las soluciones. Los Modelos de Objetivos describen el valor que genera el sistema al negocio y se usan durante etapas tempranas de los proyectos. En este sentido fue seleccionado el Modelo de Objetivos del Negocio, cuyas principales características consisten en definir un conjunto de problemas referentes al negocio, y a su vez, los objetivos que podrían dar solución a dicha problemática. Al finalizar el modelado a través de este objetivo, se pretende que se hayan establecido las características de alto nivel asociadas a los objetivos de negocio propuestos, esto generará un entendimiento del negocio, y de lo que se quiere realmente lograr con el desarrollo [13] [14]. Ilustración 6. Plantilla del Modelo de Objetivos del Negocio. (Tomado de [13]) Los Modelos de Personas describen y permiten detectar agrupaciones de personas (Stakeholders) que posiblemente puedan proporcionar información importante referente a los requerimientos del sistema. De acuerdo a esto se seleccionó un modelo de tipo Organigrama, debido a que proponía distintos niveles de granularidad que permitían determinar a los Stakeholders relevantes [13] [15]. Ilustración 7. Plantilla del Organigrama. (Adaptado de [13]) Los Modelos de Sistemas por su parte, permiten describir al sistema actual, sus interfaces y comportamiento. Se seleccionaron dos modelos, el modelo de Flujos de Procesos, y el Mapa del Ecosistema. Este primero, en cuanto a que permite no solo conocer un estado actual de los procesos existentes, sino también realizar un mejoramiento de los mismos [13] [16]. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 67 –71, ISSN 2500-5014 La Guía Ilustración 8. Ejemplo de un Modelo de Flujos de Proceso. (Tomado de [17]) El segundo modelo de la categoría sistemas (Mapa del ecosistema), fue seleccionado ya que logra reunir en un solo grafo todas las interfaces de interacción existentes en el sistema, la información transmitida entre estas, y la direccionalidad de la misma [13] [18]. La Guía propuesta es concebida como una herramienta a la hora de generar un “formalismo ágil” durante procesos de Ingeniería de Requerimientos en proyectos de desarrollo, y teniendo como principal base al Kernel de SEMAT. De acuerdo a lo anterior, La Guía propuesta se ha articulado alrededor de los principios teóricos mencionados anteriormente, los cuales fueron adaptados con el fin de dar solución a la problemática encontrada. Dicha adaptación es unificada a través de un método que permitirá la implementación de esta Guía. Way-Of (método de implementación) Ilustración 9. Plantilla de Mapa del Ecosistema. (Tomado de [13]) Los modelos de Datos describen las relaciones entre los objetos de datos del negocio, ciclo de vida de estos y aporte e impacto sobre el negocio. De esta categoría se seleccionó el modelo Diagrama de Datos del Negocio debido a que permiten observar las interrelaciones entre los objetos de datos del negocio, y la cardinalidad existente entre dichos objetos [13] [19]. Ilustración 10. Plantilla de Diagrama de Datos del Negocio. (Tomado de [13]) Este método proporciona gran capacidad de adaptabilidad y flexibilidad en los procesos diseñados e implementados, lo que sugiere que pueden ser gestionados y modelados con facilidad, permitiendo reaccionar a cambios internos y/o externos que afecten la organización [20]. En este sentido, son propuestos cuatro Way-Of (Forma de) que incluyen elementos formales, informales, estructurados y otros no tanto, que le dan carácter a metodología y generan una base para su posterior implementación [21]. Estos elementos son: Way-Of-Thinking, Way-Of-Working, Way-Of-Modeling, y Way-Of-Supporting. En la Ilustración 11 se puede observar la manera en que se adaptaron estos elementos, y cómo son propuestos a ser trabajados en La Guía. Way-Of-Thinking hace referencia a la fundamentación sobre la cual se pretende desarrollar cada proyecto; en este caso en específico, la forma de pensar será a través de principios ágiles implementados en proyectos de desarrollo de software. Es la base de todo. Way-Of-Working se encuentra relacionado con la implementación del Kernel de SEMAT a través de la integración propuesta más adelante. Un Way-Of-Modeling que consiste en la implementación de los modelos explicados Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 68 –71, ISSN 2500-5014 anteriormente, durante las etapas del proceso de IR. Finalmente Way-Of-Supporting está enfocado principalmente hacia el aseguramiento de una harmonía en la implementación de todos los conceptos teóricos indicados hasta el momento. Este elemento se establece transversal al Way-Of-Working y Way-Of-Modeling. Integración Este aspecto corresponde a la adaptación de todos los elementos teóricos mencionados en el marco conceptual, con el fin de lograr el principal objetivo de La Guía: poder desarrollar un proceso de Ingeniería de Requerimientos formalmente “ligero”. En este contexto, se propuso una metodología que basada en las mejores prácticas, permitiera utilizar el Kernel de SEMAT como principal herramienta de gestión de los procesos de IR. Para lograr esto, fueron seleccionados algunos componentes del Kernel de SEMAT tales como los Alfas Stakeholders, Oportunidad, Trabajo y Sistema de Software, con el fin de representar las diferentes etapas del proceso de IR, y los estados por los que este debería pasar para garantizar –de una manera teórica– la calidad del mismo. En este mismo sentido, fueron adaptados otros elementos del Kernel como el Ítem de Requerimiento, el cual es un tipo especial de Carta Alfa de Estado con el que se representa físicamente a cada requerimiento, ayudando a su gestión durante el proceso de IR. A este elemento le fue adicionada funcionalidad sobre aspectos tales como prioridad, trazabilidad y versionamiento, que originalmente no se ofrecía en el Kernel. En cuanto a la manera de gestionar las iteraciones al interior del proyecto, se propone el uso de un modelo Planear-Hacer-Verificar-Adaptar, dentro del cual se establecen algunas actividades necesarias de realizar antes, durante y después de cada iteración [6]. Parte de estas actividades incluyen por ejemplo, determinar estados actuales y objetivos del proyecto con el fin de tener claridad sobre lo que se quiere lograr tras cada iteración; determinar la manera en que se van a cumplir los objetivos; y hacer retroalimentaciones sobre la manera de trabajar, a fin de lograr mejoras en la productividad iteración tras iteración. Así mismo se determinó un conjunto de actividades a realizar durante cada etapa del proceso de Ingeniería de Requerimientos, dentro de las cuales se encuentran gestionar el Ítem de Requerimiento y generar modelos visuales dependiendo la etapa de dicho proceso. Ilustración 12. Ítem de Requerimiento. (Adaptado de [6]) Conclusiones La Ingeniería de Software –al igual que los sistemas que se desarrollan a través de los procesos propuestos por esta– se encuentra en constante cambio, por lo que iniciativas como la de SEMAT son bastante interesantes en cuanto a que no solo se basan en “las mejores prácticas”, sino que también permiten adaptabilidad. La Guía propuesta se adhiere a lo sugerido por SEMAT, por lo que más que una nueva forma de hacer las cosas, se considera como una iniciativa libre de ser adaptada y mejorada en función de cumplir con el objetivo principal de cualquier desarrollo de software. En este sentido fue validada a través de la opinión de un experto en proyectos ágiles, quien determinó que esta (La Guía) “presenta de manera exitosa y rigurosa, varios elementos conceptuales de Ingeniería de Software como métodos, mejores prácticas y tendencias que integrados podrían tener un éxito gigante”. En estos instantes La Guía se encuentra en un Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 69 –71, ISSN 2500-5014 proceso de prueba en un entorno real. Referencias [13] [1] K. Wiegers y J. Beatty, Software [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Requirements, Tercera ed., Redmond, Washington: Microsoft Press, 2013. R. N. Charette, «Why Software Fails. IEEE Spectrum,» 02 Septiembre 2005. [En línea]. Available: 02. [Último acceso: 15 Julio 2014]. I. Jacobson, B. Meyer y R. Soley, «SEMAT,» 1 Diciembre 2009-b. [En línea]. Available: http://semat.org/wp-content/uploads/2013/ 07/Intro-to-EssenceBerlin-Ivar.pptm. [Último acceso: 26 Septiembre 2013]. I. Jacobson, B. Meyer y R. Soley, «Software Engineering Method And Theory (SEMAT),» 01 Diciembre 2009. [En línea]. Available: http://semat.org/. [Último acceso: 26 Septiembre 2013]. I. Jacobson, P.-W. Ng, P. E. McMahon, I. Spence y S. Lidman, «The Essence of Software Engineering: The SEMAT Kernel,» Communications of the ACM, vol. 55, nº 12, pp. 42-49, Diciembre 2012. I. Jacobson, P.-W. Ng, . P. E. McMahon, I. Spence y S. Lidman, The Essence of Software Engineering: Applying the SEMAT Kernel, Addison-Wesley Professional, 2013. I. Sommerville, Software Engineering, Addison-Wesley, 2010. J. F. Krafcik, «Triumph of the lean production system,» Sloan Management Review, vol. 1, nº 30, pp. 41-52, 1988. ISO/IEC/IEEE, «Systems and software engineering - Life cycle processes Requirements engineering,» nº 29148, 1 12 2011. IEEE Computer Society, SWEBOK, 3 ed., P. Bourque y R. E. Fairley, Edits., IEEE Computer Society, 2014. Respect-IT, «A KAOS Tutorial,» 2007. C. Cares, J. Franch Gutiérrez, E. Mayol Sarroca [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] y M. C. Quer Bosor, Reference Model for i*. A: "Social Modeling for Requirements Engineering", The MIT Press, 2011. J. Beatty y A. Chen, Visual Models for Software Requirements, 2012: Microsoft Press, 2013. I. Alexander y L. Beus-Dukic, Discovering Requirements, Wiley, 2009. International Institute of Business Analysis (IIBA), A Guide to the Business Analysis Body of Knowledge (BABOK Guide), Toronto: IIBA, 2009. Object Management Group (OMG), «Business Process Model and Notation 2.0,» 2011. Bizagi, «Bizagi - Help,» Bizagi, [En línea]. Available: http://help.bizagi.com/bpmsuite/es/index.ht ml?crear_un_proveedor_en_sap_desd.htm. [Último acceso: 13 05 2014]. M. K. Choubey, IT Infrastructure and Management (For the GBTU and MMTU), New Delhi: Pearson Education India, 2012. L. Richardson, «An Entity Relationship Diagram Example,» 6 Junio 2007. [En línea]. Available: http://rapidapplicationdevelopment.blogspot .com/2007/06/entity-relationship-diagram-ex ample.html. [Último acceso: 20 Julio 2014]. F. Daoudi y S. Nurcan, «A framework to evaluate methods’ capacity to design flexible business processes,» de 6th International Workshop on Business Process Modeling, Porto, 2006. M. N. Aydin, Determining An Appropriate Approach To The Implementation Of A WfMS, Enschede: Springer, 2005, pp. 515-525. The Standish Group, «CHAOS Manifiesto,» 2012. C. Larman, Agile and Iterative Development: A Manager's Guide, Addison-Wesley, 2004, p. 27. K. Beck, M. Beedle, A. v. Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 70 –71, ISSN 2500-5014 Grenning, J. Highsmith, A. Hunt, R. Jeffries, J. Kern, B. Marick, R. C. Martin, S. Mellor, K. Schwaber, J. Sutherland y D. Thomas, «Manifiesto ágil,» 2001. [En línea]. Available: http://agilemanifesto.org/principles.html. [Último acceso: 11 09 2013]. [25] K. Schwaber y J. Sutherland, «The Scrum guide,» 2013. [26] J. M. López, «Bitelia,» 12 Noviembre 2013. [En línea]. Available: http://bitelia.com/2013/11/que-es-kanban. [Último acceso: 04 Abril 2014]. [27] D. J. Anderson, Kanban, Blue Hole Press, 2010. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 71 –71, ISSN 2500-5014 Metodologías ágiles como estrategias de enseñanza de desarrollo de software S. Gómez Tecnológico de Antioquia, Medellín, Colombia J. Moreno & C. Zapata Universidad Nacional, Medellín, Colombia Introducción Las ciencias de la computación y el desarrollo de software permean a la mayoría de áreas del conocimiento, ampliando cada vez más la necesidad de expertos en la temática. Por este motivo la optimización del proceso de desarrollo es el objetivo de varias tendencias. Las metodologías agiles surgen como una alternativa a los métodos formales de desarrollo de software; el agilismo se basa en cuatro principios que resaltan a los individuos y sus interacciones, al software funcional, a la colaboración con el cliente y a la respuesta al cambio. Su implementación en las empresas de desarrollo viene creciendo, llegando a estar presentes en más del 90% de las organizaciones en el área (Capgemini, Sogeti, & Hp 2014). Sin embargo, se presentan dos dificultades. Por un lado, el número de estudiantes en programas de educación superior en el área de informática viene disminuyendo (Washington et al. 2015). Un ejemplo de esta situación se evidencia en Colombia, donde existen 154 instituciones con programas de diferentes niveles en el área de sistemas e informática, pero que en la actualidad presentan una disminución en el número de aspirantes a ingresar en estos programas. Adicionalmente, según los datos del Sistema Nacional de Información de la Educación Superior, en los últimos diez años, el 57,8% de personas que inician estos programas no culminaron. La otra problemática se debe a que aún existen programas curriculares del área que no hicieron la transición hacia la enseñanza de las metodologías agiles. A continuación, se presenta una revisión de la literatura sobre el uso de las metodologías ágiles en la educación, que resume las metodologías y la manera de utilizarlas como estrategia pedagógica. Metodologías Ágiles en Educación Aprendizaje Basado en Proyecto Ágiles El aprendizaje basado en proyectos (PBL por sus siglas en inglés) es una estrategia pedagógica en donde un grupo de estudiantes, de forma colaborativa, resuelve una problemática real mediante la ejecución de un proyecto, siguiendo unas pautas que define el docente (Rebolledo 2010). De esta forma, cada estudiante junto con su equipo de trabajo, va alcanzando los logros del curso, mediante la planeación, implementación y evaluación del proyecto que está desarrollando, aplicando los conocimientos vistos en el aula de clase en un contexto del mundo real (Martí et al. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 72 -77, ISSN 2500-5013 2009). Con el surgimiento de las metodologías ágiles, también se desarrolla el PBL-Agile (Aprendizaje basado en proyectos ágiles), en donde se introducen elementos de agilidad en la forma como los estudiantes deben ejecutar el proyecto. Los principios de las metodologías agiles se pueden aplicar desde el punto de vista de teorías del aprendizaje, especialmente por la aplicación del constructivismo, las pedagogías activas y el aprendizaje colaborativo (Rawsthorne 2005). Vigotsky plantea la importancia del contexto social y la interacción con compañeros en el proceso de pensamiento para generar aprendizaje. Así, el estudiante debe dejar de ser un sujeto pasivo que recibe conocimiento del docente, para convertirse en un sujeto activo sumergido dentro de su proceso de aprendizaje. Al vincular las metodologías agiles dentro del aprendizaje basado en proyectos, se obtienen beneficios en aspectos como el aumento del compromiso de los estudiantes con las actividades del proyecto (motivación), debido a la necesidad de realizar tareas del mundo real y a la necesidad de hacer pequeñas actividades en lapsos de tiempo determinados, en vez de una sola actividad que abarque la totalidad del curso. Otro aspecto a destacar es la autoregulación de los equipos de trabajo, de forma que los mismos estudiantes pueden organizarse permitiendo el aprendizaje de todos, mediante una adecuada planeación de las actividades. Por último, el incremento de la creatividad y la proactividad, debido a que los estudiantes deben encontrar sus propias soluciones al problema que están resolviendo (Zapater et al. 2013). Entre las principales modificaciones se encuentra la realización de actividades cortas con una retroalimentación permanente (Lembo & Vacca 2012). Asimismo, se encuentran diferencias en el tamaño de los proyectos, la no linealidad de los mismos, la forma de interacción dentro de los equipos de trabajo y la manera de documentar el proyecto (Spundak 2014). Manifesto Agil Basado en el acercamiento entre las metodologías agiles y el aprendizaje basado en proyectos. También se establece una relación entre los valores y principios del Manifiesto Ágil con el ámbito educativo. Para hacer la comparación, se toman como referencia los valores originales del manifiesto: Individuos e interacciones sobre procesos y herramientas Software funcionando sobre documentación extensiva Colaboración con el cliente sobre negociación contractual Respuesta ante el cambio sobre seguir un plan En un contexto educativo, estos valores se pueden adaptar pero conservando su esencia, donde los elementos de la derecha de la información son importantes, son más importantes los de la izquierda. Entre las variaciones, se dan diferentes enfoques dependiendo de la particularidad del proponente. En el enfoque de Stewart et al. (2009) se indica: Aprendizaje centrado en el estudiante sobre procesos y herramientas tradicionales Trabajo por proyectos sobre documentación extensiva Colaboración entre estudiantes y docentes sobre el seguimiento rígido del currículo Respuesta a la retroalimentación sobre el seguimiento de un plan. Este enfoque es general y se aplica a cualquier tipo de curso, donde se podrían cumplir cada uno de los valores. Sin embargo, hay otras aproximaciones, como la de Cubric (2013), quien se basó en los principios de buenas prácticas de enseñanza de Chickering y Gamsons (1987), redefiniendo los valores del manifiesto en la búsqueda de la generación de un aprendizaje significativo. Los valores quedaron distribuidos así: Respetar las necesidades individuales y los estilos de aprendizaje de los estudiantes, promoviendo la interacción por encima de la relación entre estudiantes y directivos Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 73 –77, ISSN 2500-5014 (docentes) Incrementar el aprendizaje para toda la vida más allá de los objetivos de aprendizaje Actuar según el progreso del aprendizaje del estudiante y ajustar el contenido a sus necesidades Promover evaluaciones frecuentes con énfasis en retroalimentación formativa. Otra variación la promueven Twidale y Nichols (2013), quienes lo enfocan más desde el punto de vista administrativo para el cumplimiento del fin misional de una institución educativa, donde solamente realizan variaciones a los valores 2 y 3, dejando como resultado: Individuos e interacciones sobre procesos y herramientas Logros de los estudiantes demostrables sobre documentación extensiva Discusiones de aprendizaje con estudiantes (o un miembro de la comunidad académica) sobre documentos, métricas y políticas Respuesta ante el cambio sobre seguir un plan Casos de Éxito Diferentes investigadores aplican la relación entre los principios ágiles y las estrategias de aprendizaje como metodología para sus cursos, que van desde niveles básicos hasta cursos de postgrado. El área donde se aplica mayormente es ciencias de la computación; sin embargo, el uso de proyectos se puede ampliar a otras áreas del conocimiento. En el área de programación, Bendix y Magnusson (2008) diseñaron un modelo basado en la metodología ágil de Extreme Programming (XP). Para ello, realizan proyectos en equipo con todos los elementos del XP, con un proyecto iterativo, por pares y con retroalimentaciones permanentes que posibilitan la corrección de errores durante la ejecución. Para hacerlo, primero destinaron unas horas a la enseñanza de XP y luego lo aplicaron al curso de programación. Bunse et al. (2004) también aplicaron XP en proyectos de software de los estudiantes, pero con el fin de validar la capacidad que tienen personas en proceso de formación de adaptar esta metodología ágil, debido a que exige un gran nivel de disciplina y de conocimientos previos para su adecuado cumplimiento. Melnik y Maurer (2003) también llegaron a esta conclusión, encontrando que la metodología XP es más difícil de implementar en la academia que en la industria, debido a problemas de calendario con las reuniones, pues los estudiantes no tienen disponibilidad diaria. Sin embargo, para los estudiantes la experiencia fue positiva y consideraron que mejoraba la calidad. El caso de estudio se aplicó a diferentes tipos de cursos, desde diplomados hasta cursos de posgrado, teniendo estudiantes con diferentes niveles de conocimiento, siendo más aplicable la metodología para estudiantes avanzados. McKinney et al. (2004) también aplican la metodología XP, donde plantean que en los cursos introductorios, los alumnos llegan con nociones de programación, pero es difícil inculcar la importancia de una buena ingeniería de software. Por este motivo aplican metodologías agiles, en donde los estudiantes vieron mayor dinamismo y adquirieron la importancia de utilizarla. Del Bianco y Sassaroli diseñan un curso de desarrollo de software orientado al diseño de aplicaciones en Java, donde estudiantes con diferente experiencia en programación trabajan como un equipo mediado por metodologías ágiles. El desarrollo se hizo por medio de iteraciones con pequeños pasos en el avance, donde cada iteración correspondía a un módulo y se brindaba retroalimentación permanente. Dentro de los hallazgos en esta investigación, se encuentra que para los estudiantes es muy importante la presencia del docente para la organización de los equipos. Andy Hon (2004) diseñó un modelo denominado Agile Teaching/Learning Methodology (ATLM), el cual se puede aplicar a diferentes tipos de curso, que requieran agilidad tanto para enseñanza como aprendizaje. Asimismo, plantea herramientas colaborativas en línea para poder soportar el modelo. Su estrategia se basa en tres Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 74 –77, ISSN 2500-5014 pasos: aprendizaje compartiendo (enseñando), enseñanza como aprendizaje e importancia de la retroalimentación. Propuesta Con base en la evidencia encontrada en la literatura sobre casos de éxito en la aplicación de metodologías ágiles como estrategia de enseñanza-aprendizaje y ante la necesidad de formación de desarrolladores de software, surge como alternativa el diseño de un modelo de un curso de desarrollo de software que aplique la metodología PBL-Agile. Este curso tiene como valor agregado la mediación de ambientes virtuales de aprendizaje, permitiendo que el curso no solo se realice en espacios tradicionales con un espacio limitado de estudiantes sino con la posibilidad de realizarlo a una escala mayor, generando un impacto más amplio en la formación. Para el diseño del curso se escoge la metodología ágil SCRUM, debido a que es más general y no requiere el nivel de conocimiento necesario en la metodología XP. Así, se posibilita la aplicación del curso tanto en niveles básicos como avanzados, pero cumpliendo siempre con los valores del manifiesto ágil, fomentando el trabajo en equipo, la retroalimentación permanente y efectiva y con el agregado de tener unas actividades cortas donde los estudiantes van a ir aplicando los conocimientos del curso de forma permanente, entregando siempre resultados funcionales. Otra ventaja de la propuesta, con el respaldo de ambientes virtuales de aprendizaje, es la flexibilidad tanto en el currículo que se va a cumplir (que se adapte a las capacidades del estudiante y de su grupo de trabajo) como en las diferentes herramientas de apoyo que se pueden utilizar al momento de desarrollar el proyecto. El curso donde inicialmente será planteada, es el de finalización del ciclo Técnico del programa Ingeniería en Software, ofertado en el Tecnológico de Antioquia. Los estudiantes ya tienen unas nociones de programación, de bases de datos y de métodos tradicionales de ingeniería de Software. El curso es de tres créditos académicos, equivalentes a 144 horas de trabajo del estudiante durante el semestre y la estrategia será de aprendizaje mixto, con unas asesorías presenciales, donde se incluyen los lineamientos para la realización del curso y espacios para el trabajo colaborativo. Asimismo, tiene un gran componente virtual, en donde se realizará todo el proceso del proyecto basado en metodologías ágiles que desarrollarán los estudiantes. El objetivo general del curso es desarrollar un proyecto pedagógico integrador que permita el afianzamiento de los contenidos vistos en diferentes asignaturas por parte de los estudiantes del programa Técnica Profesional en Sistemas. También tiene unos objetivos específicos, asociados al fomento del aprendizaje colaborativo, en donde los estudiantes se empezarán a familiarizar con estrategias de desarrollo de proyectos, tal como lo harán posteriormente en el mundo laboral. Mediante el curso, también los estudiantes desarrollarán conocimientos sobre la metodología SCRUM de una forma práctica, debido a que conocerán la teoría de la metodología, pero mediante la aplicación de la misma. De esta forma, el curso está planteado con unos entregables, similares a las iteraciones que se realizan en la metodología, también están los roles tanto de los estudiantes como de los docentes que reflejan los roles reales al momento de desarrollar un proyecto en la metodología. Durante las 16 semanas de duración del curso, los estudiantes deben realizar 8 iteraciones con entregas de prototipos funcionales que serán retroalimentadas, para identificar falencias y aprovechar las fortalezas encontradas. Cada semana, hay dos encuentros, uno donde se realizan actividades de seguimiento y otras, mediante la aplicación del “Flipped Learning” se dicta la teoría propia de las metodologías ágiles y de los elementos de desarrollo que se buscan afianzar durante el curso. El Flipped Learning, indica que la teoría de la clase será estudiada por parte de los estudiantes en su tiempo independiente, para en las horas de clase resolver Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 75 –77, ISSN 2500-5014 las dudas y realizar ejercicios prácticos. Finalmente, el componente virtual, permitirá ver los contenidos teóricos, para la aplicación del Flipped Learning. Pero también tiene herramientas colaborativas enfocadas a la comunicación e interacción de los estudiantes, a través de foros, wikis y tableros de tareas. Por último, tiene un componente de repositorio de versiones de código, en donde se va a ir subiendo el prototipo funcional que será entregado en cada interacción. Conclusiones En las tendencias educativas del uso de estrategias de aprendizaje activo sobre el aprendizaje tradicional, como lo es el aprendizaje colaborativo o el aprendizaje basado en proyectos, cada individuo es el principal responsable de su aprendizaje pero, además, influye en el aprendizaje de sus compañeros. Por ello, se puede establecer una relación natural con las metodologías agiles, sus principios y valores, que resaltan la importancia de los individuos y sus interacciones para el correcto desarrollo de un proyecto de software. Los casos de éxito demuestran que la relación entre las metodologías ágiles y el aprendizaje basado en proyectos, se convierte en una estrategia de enseñanza válida, principalmente en cursos de desarrollo de software, pero también en cursos de otra índole, en donde se puedan realizar proyectos divididos en diferentes etapas. La propuesta de este artículo se basa en las posibilidades que ofrece la unión de las metodologías ágiles con el ámbito educativo pero, adicionalmente, responde a la necesidad de formar personas con conocimientos en el área de desarrollo de software, utilizando los ambientes virtuales de aprendizaje como un medio para que los cursos puedan llegar a un mayor número de estudiantes. Además, se debe permitir el uso de diferentes herramientas que se adapten a las necesidades tanto de los estudiantes como de los cursos. Referencias Bendix, L., & Magnusson, B. (2008). Teaching Software Development Using Extreme Programming, 166–189. Bunse, C., Feldmann, R., & Dörr, J. (2004). Agile methods in software engineering education. Extreme Programming and Agile Processes in Software Engineering, 284–293. Retrieved from http://www.springerlink.com/index/E0D5RPYLHFFF0N30. pdf Capgemini, Sogeti, & Hp. 2014. World Quality Report 2013-14, 1–64. Retrieved from http://www.capgemini.com/resources/world-quality-rep ort-2013-14 Cubric, M. (2013). An agile method for teaching agile in business schools. International Journal of Management Education, 11(3), 119–131. doi:10.1016/j.ijme.2013.10.001 Del Bianco, V., & Sassaroli, G. (2003). Agile teaching of an agile software process. Proceedings of the 4th International Conference on Extreme Programming and Agile Processes in Software Engineering, 402–405. Retrieved from http://portal.acm.org/citation.cfm?id=1763948 Hon A., C. W.,(2004). The agile teaching/learning methodology and its e-Learning platform. Lecture Notes in Computer Science (including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 3143, 11–18. Retrieved from http://www.scopus.com/inward/record.url?eid=2-s2.0-3 5048819538&partnerID=40 Lembo, D., & Vacca, M. (2012). Project Based Learning + Agile Instructional Design = EXtreme Programming based Instructional Design Methodology for Collaborative Teaching, 1–24. McKinney, D., & Froeseth, J. (2004). Agile CS1 Labs: eXtreme Programming Practices in an Introductory Programming Course. Extreme Programming …, 164–174. Retrieved from http://tocs.ulb.tu-darmstadt.de/8733295.pdf\nhttp://lin k.springer.com/chapter/10.1007/978-3-540-27777-4_17 Melnik, G., & Maurer, F. (2003). Introducing Agile Methods in Learning Environments: Lessons Learned. Extreme Programming and Agile Methods-XP/Agile Universe, 172–184. doi:10.1007/978-3-540-45122-8_20 Martí, J. , Heydrich, M. , Rojas, M. & Hernandez, A. Aprendizaje basado en proyectos: una experiencia de innovación docente. Revista Universidad EAFIT 46: 11-21 Rawsthorn P. (2005). Agile Methods of Software Engineering should Continue to have an Influence over Instructional Design Methodologies. http://www.rawsthorne.org/bit/docs/RawsthorneAIDFinal.p df Rebolledo, S. 2010. Aprendizaje Basado en Proyectos. Innovación y Experiencias Educativas 26. Spundak, M. 2014 Mixed agile/traditional project management methodology – reality or illusion? 27th IPMA World Congress. Procedia - Social and Behavioral Sciences 119 ( 2014 ) 939 – 948 Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 76 –77, ISSN 2500-5014 Twidale, M. B., & Nichols, D. M. (2013). 2 . AGILE METHODS FOR AGILE UNIVERSITIES, 27–48. Washington, A. N., Ph, D., Burge, L., Ph, D., Mejias, M., Jean-pierre, K., & Knox, Q. A. (2015). Improving Undergraduate Student Performance in Computer Science at Historically Black Colleges and Universities (HBCUs) through Industry Partnerships. SIGCSE Bulletin, 203–206. Zapater, M., Malagón, P., De Goyeneche, J. M., & Moya, J. M. (2013). Project-based learning and agile methodologies in electronic courses: Effect of student population and open Issues. Electronics, 17(2), 82–88. doi:10.7251/ELS1317082Z Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 77 –77, ISSN 2500-5014 Incorporando SEMAT en un una metodología Ágil, para equipos distribuidos. D.E. Brown Intelligent Applications Hatchery, LLC., Los Angeles, Estados Unidos. W.A. Arévalo Corporación Cidenet, Medellín, Colombia. J.A. Jimenez Universidad Nacional de Colombia, Medellín, Colombia. Resumen En el manejo de un proyecto con colaboración entre Cidenet de Colombia y IA Hatchery de California EEUU, se usó un sistema web para coordinar y planear el trabajo. CloudForge de CollabNet, CloudForge utiliza TeamForge y fue adaptado para incorporar los Alfa y sus estados. Como TeamForge permite la incorparación de campos personalizados, se implementó los Alfa y sus estados acorde con lo establecido por SEMAT. Al asignar una tarea ésta utiliza un “Artifacts”. El proyecto se implementó con “Trackers” de varios tipos para planear y rastrear el progreso en cada tarea. A las tareas de planificación del negocio, de organización de los trabajos y las técnicas se les asignó los Alfa que les pertenece. Abstract The project with colaboration between Cidenet in Colombia and IA Hatchery in California USA, we used web based system with purpouse to coordinate and planning the work, CloudForge from CollabNet, CloudForge use TeamForge, we adapt it to build the Alphas and their states. TeamForge let us use personalized items, we implement the Alphas and their states acording with SEMAT. When we assign a task this use an Artifacts. Our project implemented multiples Trackers to planning and following the progress for each task. Activities like business planning, techniques and works organization we assigned their respective Alpha. Trabajo colaborativo Teamforge Es una herramienta de gestión de proyectos para mejorar la productividad de toda la organización y su velocidad de desarrollo. Esta herramienta permite conectar equipos distribuidos, les dota de herramientas y procesos a escala que beneficien el negocio. Manteniendo los más altos estándares de gobierno y cumpliendo siempre con la seguridad IP (Collabnet, 2015). Provee a los equipos de una visibilidad centralizada a través de todo el ciclo de vida de los desarrollos. Asimismo, ayuda a controlar el acceso con base en la asignación de roles. Adicionalmente, integra las mejores herramienta tanto libres como comerciales, para brindar trazabilidad en cualquier momento del proyecto. Todo esto brinda una visibilidad del proyecto de extremo, que permite optimizar y perfeccionar el proceso de desarrollo, así como apoyar sus necesidades de administración y cumplimiento. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 78 –81, ISSN 2500-5014 Esta herramienta se adapta a la metodología de desarrollo que se éste utilizando, sea cascada, ágil o cualquier otra (Collabnet, 2015). El núcleo de SEMAT SEMAT (Software Engineering Method and Theory) es un nuevo estándar de la OMG. Es un conjunto de elementos que son universales para todos los esfuerzos de ingeniería de software. Los estados definidos para sus elementos, en el núcleo son un instrumento para el razonamiento sobre el progreso y la salud de un proyecto de desarrollo de software, independiente del método utilizado para el mismo (Jacobson et all, 2013). El núcleo de SEMAT ayuda a los profesionales a entender dónde están, señalan lo que deben hacer a continuación, y sugerir lo que deben mejorar y dónde. Además, proporciona una base común para comprender y describir las similitudes y diversidades de las prácticas de ingeniería de software, a través de un conjunto universal de elementos llamados alfas. (Jacobson et all, 2013). Los Alfas son los conceptos centrales del núcleo de SEMAT. Utilizan un enfoque orientado a objetos para identificar las dimensiones típicas de los proyectos de ingeniería de software. Cada alfa representa una dimensión clave y se dividen en tres áreas diferentes, que centran la atención en un proyecto y son: los clientes, las soluciones y el esfuerzo (Jacobson et all, 2013). Antecedentes Trabajo Colaborativo y Distribuido En el mundo actual la tecnología es un factor clave en la comunicación tanto personal como corporativa. Actualmente, la industria del software se está enfrentando a un cambio en la forma de desarrollar software, el cual es conocido como desarrollo distribuido de software (DSD, por sus siglas en inglés). Este cambio crea situaciones de las cuales las organizaciones pueden beneficiarse, y retos a los que deben adaptarse. Esta tendencia implica la separación de los procesos de desarrollo y sus colaboradores en diferentes localizaciones geográficas, lo cual conlleva a que los desarrolladores deban enfrentarse a dificultades en la interacción y coordinación de sus actividades. Esto se debe a la poca o nula interacción cara a cara entre los desarrolladores, que es causada por la distancia entre los desarrolladores que participan en proyectos conjuntos. Para hacer posible la interacción remota y síncrona en DSD, los trabajadores tienen que hacer uso de herramientas de comunicación tales como la mensajería instantánea y el teléfono. Sin embargo éstas han sido reportadas como fuentes constantes de interrupciones, las cuales causan efectos negativos en la realización de tareas. (Palacio, et all, 2014). Para buscar una mejor interacción y además llevar un control de las actividades de los desarrolladores, existen herramientas de gestión que informan de las tareas asignadas y permiten hacer el seguimiento del avance de este trabajo, con informes detallados de las tareas y actividades de cada desarrollador (Collabnet, 2015). No obstante estas herramientas no integran la aplicación de los elementos del núcleo de Semat. Para ello, se escogió TeamForge, una herramienta de Collabnet, que permite integra la gestión de proyectos ágiles y facilita la personalización de las características y tópicos a tener en cuenta para la gestión y seguimiento del proyecto. La adecuación de Team Forge Elementos creados en la adecuación de TeamForge i. Un Tracker especial en TeamForge para cada Alpha de SEMAT usando. a) Nombre = Semat Alpha + “_Tracker”. ii.Un campo especial para ¨Semat State¨ en cada Tracker para manejar el progreso. Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 79 –81, ISSN 2500-5014 a) Nombre del tracker: Semat State. iii. Carpetas Asignadas a los Alpha para los distintos Proyectos. a) Nombre de la Carpeta = Semat Alpha instanciado en cada proyecto. iv. Un campo de selección múltiple para la lista de cosas que debe cumplir cada Alpha. Ese campo fue añadido como un nuevo campo en todos los Trackers. a) Nombre del Tracker: Semat Alpha Checklist. v. El Alpha ¨Work¨ fue dividido en sub-carpetas de ¨Work¨: ¨Sprint¨ y ¨Design¨ para manejar el diseño en detalle de cada sprint. vi. Se manejó en la nube de CloudForge, los proyectos conjuntos de los dos empresa. vii. Se escribieron reportes especiales en TeamForge para el progreso de los proyectos. Tabla 1. Semat Figura 1. Encabezado de un Artifact en work_Tracker Cada uno de estos artefactos se componen de un conjunto de campos que permiten la administración y seguimiento del proyecto. Para ellos deben ser configurados acorde con las necesidades especificas de cada uno de estos. Dentro de estos campos se incluyen los campos creados acorde con lo presentado en la tabla 1. La figuras 2 y 3, nos muestra los campos que componen el artefacto y que se requieren para la configuración del proyecto. Figura 2 Campos del artefacto Work_Tracker. Incorporación de Alfas y estados SEMAT en TeamForge. Teamforge Ejemplo Construcción Temaforge Alfa Regla Opportunity _Tracker Semat Alpha + _Tracker” Estado Tracker Opportunity Tracker: Identified Tracker State = Semat State Folder Opportunity Folder: Opportunity Alfa Tracker Opportunity Estado Tracker Viable Opportunity_Tr acker Tracker State = Viable La administración de los proyectos se realiza con base en Semat, y la adecuación de los Artifacts de Teamforge, permiten tener la visibilidad del proyecto y ofrecen un seguimiento apropiado y adecuado para los proyectos en los que se implementó. Esta configuración se implementó en Teamforge utilizando las herramientas provistas por la plataforma para ello. La figura 1, muestra una interfaz de configuración de la solución en la herramienta. Conclusiones y Trabajo Futuro Con la implementación de los Alfa y sus Estados para la construcción de los Artefactos en Teamforge, se logró un adecuado seguimiento a cada una de las actividades del proyecto. Adicionalmente, permitió generar una mejor visibilidad del cumplimiento de lo Alfa y genera un estado de compromiso con el equipo de trabajo para incorporar y Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 80 –81, ISSN 2500-5014 construir los proyectos con base en la estructura que ofrece Semat. Dentro del trabajo futuro se plantea la medición de la satisfación del equipo con la estrategia incorporada y la toma de decisiones con base en las sugerencias recibidas por cada uno de los miembros del equipo. Referencias Jacobson, I, Ng, P.W, McMahon, P.E., Spence, I & Lidman, S. 2013. The Essence of Software Engineering: Applying the SEMAT Kernel. In Pearson edcation. Palacio, R.R., Morán, A.L. & González V.M. 2014. Soporte al inicio de colaboración en el desarrollo distribuido de software mediante esferas de trabajo colaborativas. In Sistemas y Computación 18(4): 787-808. Collabnet. 2015. In http://www.collab.net/products/teamforge line Proceedings of the Latin American Software Engineering Symposium, Año 2015, pp. 81 –81, ISSN 2500-5014