Progress towards the professionalization of Software Engineering

Transcripción

Progress towards the professionalization of Software Engineering
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

Documentos relacionados