RACCIS 4(2), pp. 35-38 (2014) Revista Antioqueña de las Ciencias Computacionales y la Ingeniería de Software ISSN: 2248-7441 www.fundacioniai.org/raccis [email protected] Progress towards the professionalization of Software Engineering Avances en pro de la profesionalización de la Ingeniería de Software Janeth McAlister HEWLETT PACKARD. janethMC(AT)hpcloud.com INFORMACIÓN DEL ARTÍCULO Tipo Investigación Historia Recibido: 03-08-2014 Correcciones: Aceptado: 15-11-2014 Keywords Software-Dependent Society, postgraduate, curricula. Palabras clave Sociedad Software-Dependiente, posgrados, planes de estudios. ABSTRACT Software Engineer provides a theoretical framework, methods, and tools needed to develop quality software, and has impulse the revolution of Information and Knowledge Society, because without their contributions computers would be just a tool without a specific utility. Furthermore, despite of advances in hardware, the impact and potentiation of technological development just was possible thanks to software products. On the other hand, current Society is starting to be recognize as software–dependent, since in this century software is part of all devices required to manipulated information, and which people used in their daily activities. In this article is presented an analysis to the process of search professionalize software engineer and their products, having as base the work develop since the GSwE2009. RESUMEN La Ingeniería de Software proporciona el marco teórico, los métodos, y las herramientas necesarios para desarrollar software de calidad, y ha impulsado la revolución de la Sociedad de la Información y del Conocimiento, porque sin sus aportes los computadores serían sólo herramientas sin utilidad específica. Además, a pesar de los avances en hardware, el impacto y la potencialización del desarrollo tecnológico sólo fue posible gracias a los productos software. Por otro lado, la Sociedad se empieza a reconocer como Software-Dependiente, porque en este siglo el software hace parte de todos los dispositivos que se requieren para manipular información, y que las personas utilizan en sus actividades cotidianas. En este artículo se presenta un análisis al proceso de buscar profesionalizar la Ingeniería de Sistemas y sus productos, teniendo como base el trabajo desarrollado desde el GSwE2009. © 2014 IAI. All rights reserved. 1. Introducción Los rótulos ingeniero de software y profesional abundan en los debates sobre el desarrollo y el uso de los sistemas informáticos y los productos software. Durante los últimos 20 años los académicos y profesionales han dedicado mucho esfuerzo para mejorar y avanzar en el estado de la práctica profesional de la Ingeniería de Software (SE). En 1989, Software Engineering Institute (SEI), en Carnegie Mellon University, publicó un importante informe sobre la educación de postgrado [1], del cual varias universidades han utilizado sus directrices para establecer programas en SE. Pero el desarrollo de software ha cambiado dramáticamente en los años intermedios. El software a escala, la complejidad, y la criticidad se han multiplicado, y aún no se han materializado esfuerzos significativos para revisar y actualizar las directrices originales del SEI, a excepción de trabajos como el de la Red Latinoamericana en Ingeniería de Software (RedLatinaIS) [2, 3]. Figura 1. Línea del tiempo de la educación en Ingeniería de Software 35 La Figura 1 muestra la línea del tiempo de la evolución de la educación en SE. Muchos citan North Atlantic Treaty Organization Conference de 1968 [4] como el comienzo de la discusión amplia sobre el contenido y la naturaleza de esta disciplina. Los primeros programas de posgrado siguieron el consejo recogido en varios talleres [5, 6]. En 1993 ACM e IEEE conformaron un comité directivo conjunto para avanzar en la profesionalización de SE, que en 1998 fue reconstituido como Software Engineering Coordinating Committee (SWECC), y que patrocinó el desarrollo de un código de ética y conducta profesional para los ingenieros de software [7] y un cuerpo de conocimiento [8]. Además, SWECC financió las actividades educativas que llevaron a la creación de los criterios de acreditación en SE de ABET [9] y a un modelo de plan de estudios de pregrado [10]. Aunque la mayoría de actividades relacionadas se centran en los Estados Unidos, en otras partes del mundo también se han llevado a cabo iniciativas con el mismo objetivo, particularmente en Canadá, Europa, Australia, Asia, y en América Latina con la RedLatinaIS. GSwE [11] es un conjunto de directrices curriculares para los programas de maestría en SE desarrollado por un grupo de profesores y profesionales como parte de un proyecto curricular. Un enfoque subyacente es cómo avanzar en el estado de la práctica en Ingeniería de software y cómo apoyar un mejor entendimiento y acuerdo sobre la naturaleza profesional de estos ingenieros. Este artículo se centra en los principios rectores para el desarrollo de GSwE2009, los prerequisitos de los estudiantes, el cuerpo base de conocimientos, y un marco arquitectónico que apoya la implementación de un currículo flexible. 2. Principios rectores de GSwE El equipo del proyecto GSwE2009 estableció un conjunto de principios rectores para proporcionar una base para las actividades del mismo. El documento presenta 17 principios que actúan como requisitos. Los principios que ilustran su naturaleza son: Principio 1. El propósito principal de GSwE2009 será proporcionar una serie de recomendaciones personalizables para desarrollar y mejorar los planes de estudios que ofrecen enseñanza en Ingeniería de Software a nivel de posgrado. No está destinado a ser la base para una acreditación. Principio 7. La rápida evolución y el carácter profesional de la Ingeniería de Software requieren una evaluación y una revisión continua a los planes de estudios. el otoño de 2009 ambas organizaciones acordaron patrocinar GSwE2009 a largo plazo, significando que las directrices del plan de estudios reunieron todas sus expectativas con respecto a la calidad del proceso de desarrollo y el producto en sí, y asumieron la responsabilidad de mantener activas las directrices. 2.1 Egreso de los estudiantes Aunque los principios rectores influencian todos los aspectos del proyecto, GSwE2009 ayuda particularmente a dar forma al egreso de los estudiantes: CBOK. El cuerpo de conocimientos de posgrado. Dominio. Se refiere al dominio de aplicación (finanzas, medicina, transporte o telecomunicaciones) y al tipo de aplicaciones (en tiempo real, empotradas, críticas para la seguridad, o sistemas altamente distribuidos). Profundidad. Al menos en un área de conocimiento o sub-área de CBOK a nivel de Síntesis Bloom [12]. Ética. Ser capaz de tomar decisiones profesionales éticas y practicar un comportamiento profesional ético. Ingeniería de Sistemas. Comprender la relación entre la Ingeniería de Software y la Ingeniería de Sistemas, y aplicar los principios y prácticas de una en la otra. Equipo. Ser un miembro de equipo eficaz tanto en los multinacionales como en los distribuidos geográficamente; comunicarse eficazmente de forma oral y por escrito; y dirigir un área de desarrollo de proyectos, como la gestión, el análisis de requisitos, la arquitectura, el desarrollo, o el aseguramiento de la calidad. Conciliar. Ser capaz de conciliar objetivos de proyectos conflictivos y encontrar compromisos adecuados dentro de las limitaciones de costo, tiempo, conocimiento, riesgo, sistemas existentes, y organizaciones. Perspectiva. Comprender y apreciar análisis de viabilidad, la negociación, mantener buena comunicación con los interesados en un entorno típico de desarrollo de software, y desempeñar bien esas tareas. Tener hábitos de trabajo efectivos y ser un líder. Aprender. Ser capaz de aprender los nuevos modelos, técnicas y tecnologías que van surgiendo y apreciar la necesidad de un desarrollo profesional continuo. Tecnología. Ser capaz de analizar una tecnología de software significativa, articular sus puntos fuertes y débiles, compararla con tecnologías alternativas, y especificar y promover mejoras o ampliaciones a la misma. Principio 8. GSwE2009 será sensible a los cambios en las tecnologías, prácticas, aplicaciones, nuevos desarrollos pedagógicos, y a la importancia de la formación permanente. Nótese que en las condiciones de egreso se plantea un equilibrio entre las habilidades técnicas y no-técnicas. Mientras que CBOK, dominio, profundidad, ingeniería de sistemas, y tecnología son principalmente de naturaleza técnica, y que ética, equipo, conciliar, perspectiva, y aprender enfatizan en capacidades no-técnicas que son importantes para cualquier disciplina moderna de ingeniería. En apoyo del Principio 7 representantes de ACM y de los consejos de educación IEEE actuaron como observadores y enlaces de comunicación con sus respectivos grupos. En 2.2 Pre-requisitos de entrada En armonía con el egreso de los estudiantes, el equipo del proyecto determinó una línea base de lo que los profesores 36 deben esperar acerca de la capacidad del estudiante al ingresar a un programa GSwE para lograr esos resultados. En consecuencia, Graduate Software Engineering Reference Curriculum (GSwERC) presume que al ingresar al posgrado el estudiante debe cumplir con los siguientes pre-requisitos: Tener el equivalente a un pregrado en informática o en una ingeniería o campo científico con profundización en computación. El conocimiento que se espera y que se específica en el documento GSwE2009 consta de matemáticas y fundamentos de Ciencias Computacionales. Haber cursado el equivalente a un curso introductorio de Ingeniería de Software. Poseer por lo menos dos años de experiencia práctica en algún aspecto de SE o en desarrollo de software. Esta experiencia debe incluir la participación en equipos, el desarrollo de programas o componentes entregados con éxito, y la actualización permanente o una especialización. Hay que tener en cuenta que estas expectativas iniciales no son requisitos de admisión, y son fijados individualmente por las universidades y los programas. Sin embargo, incumplirlas podría requerir alargar el programa para lograr los resultados de egreso. Un estudiante puede compensar la falta de una educación formal con una amplia experiencia; una universidad puede ofrecerle a un estudiante que carece de ciertos conocimientos o habilidades la oportunidad de tomar cursos adicionales de nivelación; o los estudiantes que carecen de experiencia pueden tomar una pasantía para adquirirla mientras adelantan el programa de estudios. 2.3 La arquitectura del plan de estudios y el cuerpo de conocimiento En la arquitectura se estructura el plan de estudios GSwE2009, y a través de CBOK se identifica el material mínimo que todos los programas deben incluir, y se adoptan disposiciones para que cada institución desarrolle los propios. La arquitectura del plan de estudios es similar al que propusieron Ardis y Ford [1], y es compatible con los programas de maestría existentes que describen Arthur Pyster y sus colegas [13]. La arquitectura del currículo incluye material preparatorio, materiales básicos, materiales propios de la universidad, materias optativas, y una experiencia culminante. Los estudiantes de áreas diferentes deben adquirir un conocimiento preparatorio, por ejemplo, a través de pregrado en Ciencias Computacionales o ingeniería, o tener más dos años de experiencia en desarrollo de software. Los programas individuales determinarán la forma de preparar los estudiantes en una línea base, pero también se tienen en cuenta aquellos cuyo progreso en el posgrado sobrepasa la preparación adicional. GSwE2009 recomienda especialmente que los estudiantes demuestren sus habilidades y conocimientos acumulados en una experiencia culminante, que podría ser un proyecto, una práctica, o una tesis. Los estudiantes que completen el programa de estudios deben comprender y apreciar la importancia de la negociación, los hábitos de trabajo efectivos, el liderazgo, y la buena comunicación con las partes interesadas en un entorno típico de desarrollo de software. El contenido se compone principalmente del CBOK y sus extensiones, que están estrechamente relacionadas con las condiciones de egreso, CBOK, dominio, profundidad, Ingeniería de Sistemas, ética, y conciliar. Los porcentajes de los contenidos curriculares para cada área base de CBOK se resumen así: Ética y profesionalismo 1-2%, Ingeniería de Sistemas 2-3%, Ingeniería de Requisitos 6-8%, diseño de software 9-11%, construcción de software 1-3%, pruebas 4-6%, administración de la configuración 2-3%, administración de software 7-9%, procesos del software 3-4%, calidad del software 3-4%, y currículo no-subyacente ±50%. Observe que el CBOK ocupa aproximadamente el 50% del plan de estudios, permitiendo flexibilidad y especialización en el diseño curricular y extensión para apoyar los resultados de dominio y profundidad. La fuente principal para el desarrollo de CBOK fue el cuerpo conocimiento SE (SWEBOK) [8]. El equipo del proyecto también derivó elementos de conocimiento de [10, 14, 15]. En el estudio y análisis de estas fuentes decidieron que aunque la organización y el contenido SWEBOK serían dominantes, tenían que hacer cambios en varias áreas y temas de apoyo a los resultados que se espera de los estudiantes y acomodar las necesidades y opiniones de la academia, la industria y las sociedades informáticas profesionales. Por lo tanto, GSwE2009 incluye dos áreas de conocimiento que no estaban en la versión inicial de SWEBOK: fundamentos de Ingeniería de Sistemas, y ética y conducta profesional. 3. Desarrollo del GSwE2009 El equipo del proyecto GSwE2009 se conformó 2007 y trabajó durante dos años en los lineamientos curriculares, y a través de teleconferencias y reuniones presenciales realizaron actividades y entregables del proyecto. El equipo comenzó estudiando diversos documentos fuente y programas existentes de posgrado en Ingeniería de Software (MSE) [13]. Luego desarrollaron el proyecto de principios rectores, y con ellos establecieron las condiciones de egreso de los estudiantes. Concurrente a e interactuando con el desarrollo de estas condiciones, el equipo determinó el historial que un estudiante debe tener para alcanzar éxito en un programa GSwE. Subsecuentemente, las directrices, los resultados, y el historial esperado demostraron ser la principal fuente de guía y control del trabajo. El conocimiento preparatorio fue un elemento de cimentación en el desarrollo de CBOK, el componente clave en la arquitectura del plan de estudios. El proceso de establecimiento de CBOK y la arquitectura fue interactivo: el equipo del proyecto iniciaba y refinaba estos componentes a través de un conjunto de versiones que compartía, analizaba, discutía, y modificaba con los subequipos del proyecto, para luego generar una versión interna aprobada. Posteriormente, más de 100 37 colaboradores de la academia, el gobierno y la industria participaron en una revisión externa a los diversos lanzamientos GSwE, y luego de varios procesos adicionales el equipo revisó la versión inicial y preparó el documento final GSwE2009. 4. Conclusiones El documento GSwE2009 es el paso inicial en el avance por profesionalizar la Ingeniería de Software mediante programas de posgrado. Para que esta iniciativa tenga éxito el modelo debe estar disponible, ser comprendido por las comunidades académicas e industriales específicas, visto como una referencia clave para el desarrollo del currículo en SE, y utilizado en el desarrollo, modificación, y aseguramiento de los planes de estudios. El patrocinio de ACM e IEEE CS es un paso sustancial en la promoción de estos objetivos. El proyecto inició en 2009 un estudio a los programas MSE para determinar hasta qué punto se alinean con GSwE2009 [16]. La mayoría de estos programas tienen planes de estudio que son consistentes con casi todas las recomendaciones GSwE2009. Se tiene evidencia anecdótica de que algunos están modificando sus planes para alinearlos plenamente con GSwE2009. También se está realizando un estudio para determinar si las necesidades de la industria del software se satisfacen mejor con los estudiantes que logran las condiciones de egreso establecidas. Se anima a las partes interesadas en la educación profesional en SE (gerentes, profesionales, y educadores) a participar en este esfuerzo, a descargar el documento completo, leerlo y estudiarlo; a compartir sus puntos de vista con sus colegas, y a promover o dirigir un esfuerzo para crear un nuevo programa o mejorar uno ya existente con la guía GSWE2009. Iniciativas en este sentido se evidencian, por ejemplo, en Latinoamérica a través de la RedLatinaIS y sus publicaciones y eventos. Un trabajo que debe ser apoyado, divulgado, y reconocido por el esfuerzo y el empeño que este equipo le ha puesto. Referencias [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] Ardis, M. & Ford, G. (1989). SEI report on graduate Software Engineering education. CMU/SEI 89-TR-21. Software Engineering Institute, Carnegie Mellon University. Serna, M.E. (2013). Libro Blanco de la Ingeniería de Software en América Latina. Instituto Antioqueño de Investigación. Serna, M.E. (2013). Manifiesto por la profesionalización del desarrollo de software. Instituto Antioqueño de Investigación. Naur, P. & Randell, B. (1968). Software Engineering: Report of a conference sponsored by the NATO science committee. Scientific Affairs Division, NATO. Freeman, P.; Wasserman, A. & Fairley, R. (1976). Essential elements of Software Engineering education. Proceedings of the 2nd international conference on Software (ICSE 76), pp. 116-122. October 13-15, San Francisco, USA. Freeman, P. & Wasserman, A. (1978). A proposed curriculum for Software Engineering education. Proceedings of the 3rd international conference on Software Engineering (ICSE 78), pp. 56-62. May 10-12, Atlanta, USA. ACM/IEEE (1999). Software Engineering code of ethics and professional practice. ACM Press. Abran, A. et al (2004). Guide to the Software Engineering Body of Knowledge (SWEBOK). IEEE CS Press. ABET (2009). Criteria for accrediting engineering programs. Effective for Evaluations during the 2010-2011 Accreditation Cycle. Accreditation Board for Engineering and Technology. ACM/IEEE (2004). Software Engineering 2004: Curriculum guidelines for undergraduate degree programs in Software Engineering. ACM Press. Stevens Institute of Technology (2009). Graduate Software Engineering (GSwE2009): Curriculum guidelines for graduate degree programs in software engineering. Stevens Institute of Technology. Bloom, B. (1956). Taxonomy of educational objectives: The Classification of educational goals. Handbook 1: Cognitive Domain. Longmans. Pyster, A. et al (2009). Master’s degrees in Software Engineering: An analysis of 28 university programs. IEEE Software 26(5), pp. 94-101. Tockey, S. (2004). Return on Software: Maximizing the return on your software investment. Addison-Wesley. Haskins, C. (2007). INCOSE Systems Engineering Handbook. INCOSE-TP-2003-002-03.1. Frailey, D.; Ardis, M. & Hutchison, N. (2009). Comparisons of GSwE2009 to Current Master’s Programs in Software Engineering. Stevens Institute. 38