Anda di halaman 1dari 16

SWEBOK aplicado: Experiencias en la Ctedra de Ingeniera de Sistemas

Fulvio Lizano Madriz Universidad Nacional Heredia Costa Rica flizano@una.ac.cr Mara Marta Sandoval Carvajal Universidad Nacional Heredia Costa Rica msandova@una.ac.cr Mara Adilia Garca Vargas Universidad Nacional Heredia Costa Rica mgarcia@una.ac.cr

RESUMEN
Frederick P. Brooks, Jr. En su clsico The Mytical Man-Month hace referencia a lo que el llama desesperados lamentos por una bala de plata que haga caer los costos del desarrollo del software tan rpidamente como los costos del hardware[1]. Estos lamentos han sido escuchados por cientos, cuando no miles, de investigadores e industriales del software. Estos han venido desarrollando teoras y experiencias que han enriquecido la forma de desarrollar software. Se ha generado una gran cantidad de documentos de diversa ndole que tratan diversos aspectos de la Ingeniera del Software. Es tal la magnitud de las investigaciones desarrolladas que se han provocado serios problemas de organizacin, clasificacin y seleccin de los materiales apropiados para acciones de investigacin o profesionales en el contexto del desarrollo del software. El efecto Horda Mongoliana describa apropiadamente el problema. Ante esta realidad, el proyecto SWEBOK emergi como una estrategia de organizacin del vasto cuerpo de conocimiento de la Ingeniera del Software. El producto tangible del proyecto SWEBOK es la Gua del Cuerpo de Conocimiento de la Ingeniera del Software. Este trabajo presenta la Gua del Cuerpo del Conocimiento de la Ingeniera del Software SWEBOK. Adems de presentar y explicar la estructura de la gua, se hacen algunas observaciones sobre las aplicaciones que podra tener el SWEBOK tanto para la industria del software (empresas de desarrollo de software y/o organizaciones o departamentos que desarrollan software) como en las actividades acadmicas conexas a la enseanza de tanto Ingeniera del Software como de la Ingeniera de Sistemas. Los comentarios externados en este documento son producto de la observacin del desarrollo de los diferentes proyectos de sistemas, que fueron implenetados por los estudiantes en la Ctedra de Ingeniera de Sistemas, de la Carrera de Ingeniera de Sistemas de Informacin perteneciente a la Escuela de Informtica de la Universidad Nacional de Costa Rica.

Palabras claves
Ingeniera del Software. Gua del Cuerpo de Conocimiento. Gua del Cuerpo de Conocimiento de la Ingeniera del Software.

2.

INTRODUCCIN

La Ingeniera de Software ha emergido como una nueva disciplina dentro del amplio espectro de ingenieras. Este hecho ha pretendido resolver un difcil problema que ha enfrentado la industria de software: el desarrollo ordenado y oportuno de software, desde el punto de vista costo-beneficio. Mltiples investigadores y estudiosos de la computacin se han abocado a la tarea de ir creando la base terico-tecnolgica de la Ingeniera de Software. Esta tarea no solo ha sido hecha en el mbito acadmico. Otras veces, estas acciones se han materializado a travs de la formalizacin de prcticas desarrolladas empricamente en organizaciones de desarrollo de software. Dentro de estas organizaciones de desarrollo de software se pueden encontrar, entre otras, tanto Centros de Cmputo como Empresas de Desarrollo de Software en s.

Este gran nmero de personas han desarrollado una nada despreciable base de conocimiento. Este conjunto de conocimiento, llamado comnmente, cuerpo del conocimiento sobre Ingeniera de Software, se haba presentado en un estado disperso. Esta realidad produjo varios problemas importantes. Uno de los principales es la navegabilidad pragmtica. Se haba hecho muy difcil, accesar, clasificar, revisar y utilizar esta informacin. Esto es fundamental en procesos de investigacin. Otras situaciones o problemas conexos se pueden presentar cuando hay material disperso sin clasificar. Por ejemplo se podra presentar hechos tan puntuales como la duplicidad de definiciones. Si varias fuentes tratan aspectos o elementos que, en el fondo son la misma cosa pero con diferente nombre, las personas que estn en procesos de educacin o capacitndose podran tener problemas. Por otro lado, las universidades han tenido que desarrollar curriculums sobre la ingeniera del software, una rama de la ingeniera que no solo est en formacin sino en continuo desarrollo y perfeccionamiento. Para poder cumplir este cometido con buen suceso, la academia necesita contar con una slida bibliografa de referencia que sirva como base para fundamentar sus acciones. El objetivo de este artculo es presentar la Gua del Cuerpo del Conocimiento de la Ingeniera de Software SWEBOK como un instrumento que pueda ayudar a resolver, entre otros, los problemas que hemos relatado. El informe inicia con un marco de referencia sobre la ingeniera del software y el SWEBOK. Posteriormente se presenta la Gua del Cuerpo del Conocimiento de la Ingeniera de Software, en donde se muestran los objetivos, reas de conocimiento, estructura de la gua y se comentan algunas consideraciones del cada parte de la gua. Por otro lado, se presentan algunos comentarios sobre las aplicaciones del SWEBOK a la Industria de Software y a la Educacin de la Ingeniera de Software. Cuando se habla de industria del software, deber entenderse esta como las empresas de desarrollo de software y/o organizaciones o departamentos que desarrollan software.

3. 3.1

MARCO DE REFERENCIA Ingeniera de Software

El trmino de Ingeniera de Software fue acuado por primera vez en 1968, durante una conferencia de la Organizacin del Tratado Atlntico Norte (OTAN) [2]. La IEEE la define como la aplicacin de un sistemtico, disciplinado y cuantificable mtodo para el desarrollo, operacin y mantenimiento de software[3] Ford indica que la Ingeniera de Software es la aplicacin de ingeniera que utiliza los principios de las ciencias de la computacin y las matemticas, para lograr soluciones (costo-efectivas) a los problemas de software. [4] Hoy por hoy, la Ingeniera de Software se ha convertido en una disciplina fundamental. Nuestro mundo est cada vez ms inmerso en el uso masivo del software en todas nuestras actividades. Encontramos software en el trabajo, la casa, el vehculo, la iglesia, el centro comercial, la autopista, el centro de diversin, el avin, el barco, etc. Tenemos relacin con el software cuando trabajamos, descansamos, nos divertimos, comemos, nos recuperamos de alguna enfermedad, cuando meditamos, cuando nos educamos, etc.

3.2

SWEBOK

Durante varios aos se produjo un efecto de horda mongoliana en cuanto a la cantidad de investigadores y desarrolladores de experiencias de la Ingeniera de Software. Todas estas investigaciones han generado mltiples puntos de vista respecto a diversas soluciones, teoras, propuestas, etc. En muchas ocasiones estos puntos de vista son contrastantes. Como causas de esta situacin se puede ejemplificar la situacin propia presentada en el desarrollo de la Arquitectura del Software, una sub-rea de la Ingeniera del Software. Se ha encontrado que el estudio o investigacin formal del tema sigue a la prctica pero sin liderarla.[5] Ciertos hechos relevantes hacen pensar que la Ingeniera de Software se encuentra en un punto de madurez que se incrementa cada vez ms. La Ingeniera del Software se ensea en cada vez ms lugares tanto en cursos de capacitacin, como carreras formales tanto de pregrado como de post-grado. Paradigmas como CMMi, ISO-9000, entre otros, pueden ser utilizados para establecer la capacidad organizacional de la ingeniera de software en las empresas, as como para disear o complementar curriculums acadmicos sobre el tema. Esto fue algo que logramos demostrar en la Ctedra de Ingeniera de Sistemas de la Escuela de Informtica de la UNA. Ante toda esta coyuntura, surge la Gua del Cuerpo del Conocimiento de la Ingeniera de Software (Guide to the Software Engineering Body of Knowledge).

Se trata de un proyecto que tiene el propsito de proveer una caracterizacin consensualmente validada de los lmites de la disciplina de la Ingeniera de Software y, proveer un acceso tpico al cuerpo del conocimiento que soporta esta disciplina[6]. Este proyecto es liderado por la IEEE Computer Society. El origen y desarrollo de la conformacin del proyecto est caracterizado por el surgimiento de diversas iniciativas plasmadas en conferencias, estndares y otros documentos similares que fueron conformando la base necesaria para que, en 1993 se formalizaran los esfuerzos necesarios para promover la profesionalizacin de la ingeniera de software. El principal producto de esta iniciativa es la Gua del Cuerpo del Conocimiento de la Ingeniera del Software, de la cual nos vamos a ocupar en el apartado siguiente.

3. GUA DEL CUERPO DEL CONOCIMIENTO DE LA INGENIERA DE SOFTWARE SWEBOK 3.1 Marco de Referencia

Es importante delimitar primero los conceptos de conocimiento y cuerpo del conocimiento. Entendemos por conocimiento al espectro completo de cualquier disciplina: Informacin, terminologa, artefactos, datos, roles, mtodos, procedimientos, tcnicas, prcticas, procesos y literatura. El alcance o profundidad del conocimiento fue establecido por los responsables del proyecto, considerando las categoras del conocimiento. Estas fueron establecidas inspirndose en el Project Management Institute.[6] La Figura 1 ilustra esta clasificacin de Conocimiento.

Figura 1: Clasificacin del conocimiento Inicialmente se haba considerado el cuerpo del conocimiento, en el caso especfico del estudio de la Ingeniera del Software, como la descripcin jerrquica del conocimiento de dicha disciplina que estructura el conocimiento dentro de 2 niveles de jerarqua: reas de conocimiento y Componentes de conocimiento [7] De esta forma tenemos que los objetivos del SWEBOK son:

Promover una visin consistente de la Ingeniera de Software a escala mundial. Clarificar el lugar, y lmites, de la Ingeniera de Software respecto a otras disciplinas relacionadas. Caracterizacin de los contenidos de la Ingeniera de Software. Proveer acceso a los tpicos de Ingeniera de Software. Proveer los fundamentos para desarrollo de curriculums y material de certificacin individual.[6]

La gua establece las reas de Conocimiento de la Ingeniera del Software. Estas se tratarn con mayor detalle en los siguientes apartados.

Asimismo, establece las Disciplinas Relacionadas con la Ingeniera del Software. La Tabla 1 muestra estas disciplinas. Tabla 1. Disciplinas relacionadas con la Ingeniera del Software

Disciplina Ingeniera de Computadora (Hardware) Ciencias de la Computacin Administracin Matemticas Administracin de Proyectos Administracin de la Calidad Ergonoma del Software Ingeniera de Sistemas

En la Figura 2 se ilustra un panorama general del proyecto SWEBOK y la Gua que lo contiene.

Figura 2: Proyecto SWEBOK y estructura de la gua.

3.2

Organizacin de las reas de Conocimiento

Cada rea de conocimiento establece una introduccin, tpicos, referencias y lista de referencias recomendadas. La Figura 3 muestra estos elementos y las relaciones entre ellos.

Figura 3: Estructura de las reas de conocimiento.

3.3

reas de Conocimiento

Las reas de conocimiento que fueron mostradas en la Figura No. 2 tienen, adems de la configuracin ya establecida, una serie de posibilidades de aplicacin tanto en la industria del software como en las actividades acadmicas. Una apreciacin inicial que se establece en la estructura general de las reas de conocimiento, es su gran parecido, en una buena cantidad de sus tpicos, al ciclo de vida clsico. reas como requerimientos, diseo, construccin, prueba, mantenimiento y la configuracin, son claramente delimitadas en el ciclo de vida clsico. No obstante esta sugerencia hacia marcar un proceso o flujo de actividades, no siempre es seguida por la estructuracin de las reas de conocimiento, a lo interno de cada una de ellas. Por esta razn, se impone la revisin de cada una de las reas de conocimiento y el estudio de las posibilidades de aplicacin antes citadas. A continuacin se presenta cada una de las reas de conocimiento y se referencia a esas posibilidades.

3.3.1

Requerimientos del Software.

Esta rea de conocimiento presenta lo relativo al anlisis, a la especificacin, y a la validacin de los requerimientos del software. Los requerimientos del software expresan las necesidades y los anhelos que se establecen para un determinado producto de software. Estas necesidades contribuyen a la solucin de un problema del mundo real. Este tema es considerado como crtico en los proyectos de software de hoy en da. La Figura 4 presenta los tpicos principales de esta rea de conocimiento.

Figura 4: rea de Conocimiento de Requerimientos de software. Desde el punto de vista de la industria y la academia esta rea de conocimiento es muy til. A simple vista podemos visualizar un modelo de procedimiento del proceso de Especificacin de Requerimientos. El orden y tratamiento de los tpicos contenidos en esta rea de conocimiento, permite estructurar, casi sin mayor ajuste, una posible ruta bsica de un procedimiento de manejo de los requerimientos. Para la industria es importante seguir un modelo que se espera se haga de conocimiento y uso general. Para la academia es importante presentar un proceso puntual de como desarrollar un proceso de este tipo. Cada vez es ms claro que una especificacin de requerimientos no es una simple lista de cosas que el sistema debe hacer, levantada a travs de los requerimientos que los usuarios piden. Esta rea de conocimiento permite conocer de forma directa que la especificacin de requerimientos no es solo esa lista ya citada, sino un mtodo que se puede procedimentar usando como elemento inspirador el SWEBOK.

3.3.2

Diseo del Software.

Esta rea de conocimiento trata de un tema que puede ser muy amplio y variado. Hay dos formar de definir el diseo del software. Por un lado es la actividad del ciclo de vida en la cual los requerimientos del software se analizan para producir una descripcin detallada de la estructura interna del software. Por otro lado, y desde el enfoque del resultado de la actividad antes descrita, se puede decir que el diseo del software es un documento que describe la arquitectura del software, puntualmente la descomposicin del software, la organizacin de los diferentes componentes, y las interfaces entre estos componentes. El diseo del software, tanto la actividad como el resultado servir como la base para la construccin del software. El enfoque que da el SWEBOK del tema es el de visualizar el diseo de la descomposicin, la trazabilidad del software en partes de componentes. Hace un tratamiento especial del sub-tema de la Arquitectura del Software por su creciente importancia en el medio. Para efectos prcticos esta rea de conocimiento es un referente importante de conceptos relativos al diseo. Es como un diccionario. En realidad todo SWEBOK es como un diccionario, pero en algunas ocasiones podemos derivar usos adicionales tal como mostramos en el apartado anterior. La Figura No. 5 presenta los tpicos principales de esta rea de conocimiento. La industria puede utilizar esta rea de conocimiento para, entre otras cosas, definir un marco de referencia del estado del arte en diseo de software que permita procedimientar, contratar, ofertar, etc. La academia por su parte tiene en esta rea de conocimiento un excelente referente para definir curriculums de cursos de Arquitectura de Software, Anlisis y Diseo de Software, Documentacin de Procesos de Software (en la parte de diseo). Otro uso importante es el de definir programas de actualizacin para sus cuadros docentes.

Figura 5: rea de Conocimiento de Diseo de Software

3.3.3

Construccin del Software.

El trmino construccin del software hace referencia a la creacin detallada de software, utilizando una combinacin de codificacin, verificacin, pruebas unitarias, pruebas de integracin y depuracin. La Figura 6 presenta los tpicos principales de esta rea de conocimiento.

Figura 6: rea de Conocimiento de Construccin de Software Por su naturaleza, esta rea de conocimiento est estrechamente relacionada con otras del mismo SWEBOK. En primer lugar est fuertemente relacionada al diseo del software y a las pruebas del software. Esto es as porque el proceso de construccin del software, por lo general cubre tanto el diseo significativo de software como las actividades de pruebas. Por otro lado, la construccin del software utiliza las salidas del diseo y puede proporcionar una de las entradas para las pruebas. Es un hecho cierto que muchas veces los ingenieros del software estn trabajando en el proceso de construccin, haciendo ajustes al diseo y ejecutando pruebas en caliente para verificar su trabajo. Por esta razn, las fronteras detalladas entre el diseo, la construccin y las pruebas varan dependiendo de los procesos de ciclo de vida del software utilizados en un proyecto. Por otro lado, la construccin del software, por lo general, produce el mayor nmero de elementos de configuracin que se necesitan administrar en un proyecto de software. Ejemplos de estos elementos son los archivos de cdigo fuente, cdigo de administracin de bases de datos, casos de pruebas, etc. Por esta razn la construccin del software esta relacionada con la Administracin de la Configuracin del Software.

La construccin del software est tambin relacionada con las reas de conocimiento de Mtodos y Herramientas de la Ingeniera del Software. Esto es natural si se considera que durante la construccin se hace un uso profuso de las herramientas y de los mtodos que se necesitan para desarrollar el proceso. Por ltimo, el rea de conocimiento de calidad del software est tambin relacionada con la construccin. El producto tangible y final del rea de conocimiento de la construccin del software, es el software en s. Este software es, por lo general, el entregable final de todo proyecto de software. Por esa razn la construccin est ampliamente relacionado con la calidad. La construccin del software se relaciona de una u otra forma con prcticamente todas las reas de conocimiento. Lo anterior, es solo un abordaje resumido de las relaciones ms evidentes. Esta rea de conocimiento puede serle til a la industria para definir procesos institucionalizados de trabajo. Estos procesos son componentes fundamentales de todo sistema de gestin de la calidad y permiten establecer formalmente todas las conexiones entre reas de conocimiento antes descritas. En cuanto a la academia, esta rea de conocimiento puede permitir establecer modelos del proceso de generacin de cdigo, ms estndares y uniformes. Esto puede impactar en la generacin de una cultura determinada hacia la generacin del cdigo, que pueda ser utilizada en los procesos de enseanza.

3.3.4

Testing del Software.

La actividad de pruebas tiene el objetivo de evaluar y mejorar la calidad del producto, identificando defectos y problemas. La Figura 7 presenta los tpicos principales de esta rea de conocimiento.

Figura 7: rea de Conocimiento de Testing de Software. Se trata de una actividad donde se somete al producto de software, a un ejercicio controlado y documentado. Ms puntualmente las pruebas del software consisten en verificar el comportamiento de un programa de forma dinmica. Este dinamismo se da por las condiciones cambiantes del entorno, por ejemplo con diferentes datos. Este comportamiento se evala a travs de un grupo finito de casos de prueba. Pueden existir gran cantidad de casos de pruebas. Existen muchos caminos o rutas que puede tener el flujo del proceso. Por otro lado, los datos pueden variar tambin.

Este grupo finito de casos de prueba deben ser seleccionados. Siempre habr que establecer una priorizacin o seleccin de que es lo ms prctico y/o necesario. Al final lo que se busca es verificar un comportamiento esperado. Este comportamiento debe ser establecido, y documentado, antes de iniciar las pruebas. Uno de los aportes ms destacados para la industria de esta rea de conocimiento es contribuir, al igual que otros estndares a generar una cultura adecuada de lo que significa pruebas del software. Por lo general se ha sub-dimensionado el control de calidad a la mera actividad del testing. Es necesario, y as se est logrando aceleradamente, que se entienda que las pruebas del software es ms que poner a una o varias personas a ejecutar el software para ver si se cae, sin ningn planeamiento y documentacin previa. Para lograr esta formalizacin, esta rea de conocimiento puede ser muy til. Ni que se diga en el caso de la academia. Esta rea de conocimiento puede impactar positivamente la generacin de la cultura antes descrita entre los estudiantes. Esta rea de conocimiento permite estructurar los principales conceptos del tema.

3.3.5

Mantenimiento del Software.

En el SWEBOK, el mantenimiento del software es definido como la totalidad a actividades requeridas para proveer soporte costo-efectivo al software. La Figura 8 presenta los tpicos principales de esta rea de conocimiento.

Figura 8: rea de Conocimiento de Mantenimiento del Software. Producto de la construccin del software, se genera un sistema que satisface los requerimientos del usuario. Conforme pasa el tiempo, el producto de software debe cambiar o evolucionar. Asimismo, an cuando se hayan desarrollado procesos de prueba adecuados, los errores o potenciales fallas en el producto de software se pueden presentar en cualquier momento. Por lo general el tema del mantenimiento fue relegado a un segundo plano. Dos hechos recientes colocaron al mantenimiento del software en el lugar que ocupa actualmente: El problema del Cambio del Milenio y el advenimiento del Software Libre como tendencia. La industria encontrar esta rea de conocimiento til en el tanto que permite identificar la naturaleza del mantenimiento, definir los limites de esta actividad, formalizar los procesos relativos al mantenimiento, etc. Un elemento muy til para la industria del software, es que esta rea de conocimiento provee un modelo de proceso del mantenimiento del software que puede ser adaptado para cualquier uso particular.

En cuanto a la academia, esta rea de conocimiento le puede servir para tener una referencia que le permita seguir fomentando los temas importantes en la enseanza de la ingeniera del software o de sistemas. El mantenimiento del software es una actividad fundamental en el quehacer del ingeniero de software. Todava existen viejos sistemas que seguirn operando mucho tiempo ms porque constituyen una importante inversin que las empresas no estn dispuestas a cambiar sin contar con razones de peso. Cada vez ms se toma ms conciencia de la importancia de mantener operando el software, si cumple su cometido. An si este es viejo.

3.3.6

Administracin de la Configuracin del Software.

Para entender el concepto de administracin de la configuracin del software, es necesario estructurar sus conceptos. Un sistema de software se puede conceptualizar como una coleccin de componentes que se organizan con el propsito de proporcionar una determinada funcionalidad. Por otro lado, la configuracin de un determinado software son las caractersticas funcionales y/o fsicas del hardware, software o una combinacin de ambas, segn se detalle en la documentacin tcnica definida para el efecto. Dentro de los componentes del software hay que considerar la documentacin relacionada con el mismo, ya sea esta tcnica, de usuario, relacionada con la organizacin, etc. Otra forma de definir la configuracin es considerndola como una coleccin de versiones especficas de elementos de hardware o software que se combinan en un proceso de construccin especfico. Dado lo anterior, la administracin de la configuracin se puede entender como una disciplina que identifica la configuracin de un software, en momentos diferentes, con el propsito de controlar de una manera sistemtica los cambios en la configuracin y mantener la integridad y el seguimiento de de los cambios que sufra esta configuracin durante el ciclo de vida del software. La Figura 9 presenta los tpicos principales de esta rea de conocimiento.

Figura 9: rea de Conocimiento de Administracin de la Configuracin del Software Esta rea de conocimiento le posibilita a la industria visualizar de forma prctica y puntual el complicado tema de la configuracin. Si consideramos que la configuracin del software, es sistematizar los cambios en el proceso de produccin del mismo, es importante definir todo el esquema de control y documentacin de dichos cambios. A la academia, la administracin de la configuracin le posibilita desarrollar acciones de formacin especializadas para educar en los temas importantes en la enseanza de la ingeniera del software o de sistemas. La configuracin del software es una actividad presente en todo el ciclo de vida del software desde que este se conceptualiza hasta que se retira mucho tiempo despus. Dado que los componentes del software, cuyos cambios se deben controlar por medio de la configuracin, incluyen los documentos asociados, es necesario establecer una administracin de la configuracin desde tempranas etapas del desarrollo del software.

3.3.7

Administracin de la Ingeniera del Software.

La administracin de la Ingeniera del Software se puede entender como la aplicacin de actividades de administracin, planificacin, coordinacin, medicin, monitoreo, control y reporte que tienden a asegurar un desarrollo y mantenimiento del software disciplinado y cuantificado por medio de procesos sistemticamente diseados, establecidos y mantenidos. La Figura 10 presenta los tpicos principales de esta rea de conocimiento.

Figura 10: rea de Conocimiento de Administracin de la Ingeniera del Software. La industria puede encontrar til esta rea de conocimiento si est inmersa en procesos de definicin de sistemas de gestin de sus operaciones. La administracin de la ingeniera del software brinda un enfoque claro y puntual de que se entiende por administrar esta rama de la ingeniera. En cuanto a la academia, esta tiene la posibilidad de disear materiales de entrenamiento enfocados a mostrar la ingeniera del software, con un enfoque generalizado y conocido por muchas personas, tal como podra ser el de la administracin.

3.3.8

Procesos de Ingeniera del Software.

Esta rea de conocimiento establece un marco de referencia para la definicin, implementacin, valoracin, medicin, administracin, cambios y mejoras de los procesos del ciclo de vida del software. La Figura 11 presenta los tpicos principales de esta rea de conocimiento. Estos procesos pueden estar a su vez, relacionadas con otros procesos puntuales de otras reas de conocimiento del SWEBOK. Esta rea de conocimiento trata pues de una especie de meta-nivel de procesos. Es el rea de conocimiento que orienta en como se han de tratar los procesos.

Figura 11: rea de Conocimiento de Procesos de la Ingeniera del Software. La Figura 12 ilustra la relacin entre el concepto de proceso tratado en esta rea de conocimiento, y los otros procesos incluidos en otras reas de conocimiento.

Figura 12: El concepto de proceso en el rea de Conocimiento de Procesos de la Ingeniera del software. La industria puede utilizar esta rea de conocimiento para establecer procesos de administracin de los documentos que enmarcan procedimientos de gestin. Es como una gua en el diseo, desarrollo, implementacin, mantenimiento y medicin de los procedimientos que definen la organizacin del proceso de desarrollo del software. Como el concepto puede ser un tanto abstracto, esta rea de conocimiento es til para la academia para establecer el lmite entre los procesos de desarrollo de software, y la forma de desarrollar esos procesos. Se trata de ensear que los procedimientos para desarrollar software, hay que conceptualizarlos, disearlos implementarlos, mantenerlos y evaluarlos. Esto, es cultura hacia la calidad en el mejor sentido de la palabra.

3.3.9

Mtodos y Herramientas de Ingeniera del Software.

Los instrumentos de desarrollo de software son los instrumentos computadorizados (otros productos de software) requeridos para colaborar en los procesos de ciclo de vida del software. Los mtodos de la ingeniera del software por su parte, se requieren para hacer el desarrollo del software ms sistemtico. La Figura 13 presenta los tpicos principales de esta rea de conocimiento.

Figura 13: rea de Conocimiento de Mtodos y Herramientas de la Ingeniera del Software. La relacin entre los mtodos y herramientas de la Ingeniera del software se explica en la Figura 14.

Figura 14: Relacin entre los mtodos y herramientas de la Ingeniera del Software. Una aplicacin interesante de esta rea de conocimiento para la industria, es guiar en el establecimiento de portafolios de herramientas de desarrollo de software que apoyen actividades definidas del proceso de desarrollo del software. Con la estructura que brinda esta rea de conocimiento, es posible esquematizar el contenido de estos portafolios de herramientas. La academia puede por su parte definir acciones o curriculums de capacitacin que incluyan el uso profuso, y coherentemente esquematizado, de herramientas de software. Esto se puede hacer con el uso puntual de laboratorios prcticos. Estos laboratorios no son necesariamente los espacios fsicos con computadoras que encontramos en las instalaciones de enseanza. Se trata ms bien de ejercicios planeados de acciones del desarrollo del software. Por ejemplo, se pueden desarrollar laboratorios de documentacin de requerimientos, laboratorios de testing de software, laboratorios de administracin de proyectos de software, etc.). La ejecucin de estos laboratorios implicara el uso de herramientas y mtodos segn sea la actividad del ciclo de vida que se est ejercitando. El abordaje ordenado de estos conceptos podra permitir un proceso de enseanza ms efectivo.

3.3.10 Calidad del Software.


El concepto de calidad ha sido profusamente tratado por muchos autores. Ms que una definicin puntual del tema, esta rea de conocimiento establece algunos aspectos relativos a la calidad de software que transcienden a los procesos del ciclo de vida. La Figura 15 presenta los tpicos principales de esta rea de conocimiento.

Figura 15: rea de Conocimiento de Calidad del Software. Esta rea de conocimiento describe un conjunto de medios de alcanzar la calidad del software. Lo importante aqu, entre otras cosas prcticas, es visualizar que la calidad del software, no solo es el proceso del testing. Este proceso es uno ms dentro de estos medios ya citados. Esta puede ser el aporte ms importante para la industria y la academia.

3.4
3.4.1

A modo de cierre respecto a las aplicaciones del SWEBOK.


Industria de Software

Al ser la Industria de Software una actividad de reciente desarrollo, y como las organizaciones que desarrollan y compran software no tienen del todo claro la naturaleza y contenidos del nuevo negocio del software, un cuerpo de conocimientos de la ingeniera del software puede ayudar a examinar, categorizar y organizar sus actividades de software, al tiempo de definen los procesos y roles conexos a estas actividades. Por otro lado, este tipo de documento puede servir para definir un sistema de calificacin de competencias para la evaluacin del personal adems de establecer las pautas de los planes de entrenamiento futuro [7]. El SWEBOK permite a la industria tener un referente del estado del arte de la ingeniera del software.

3.4.2

Educacin

El SWEBOK puede ser protagonista en los procesos de desarrollo de curriculums de tanto la ingeniera del software como de la sistemas. Dentro del proceso de desarrollo de curriculums de programas de entrenamiento en ingeniera del software, se pueden considerar algunos cursos que tendran en el SWEBOK un referente importante. Como ejemplo de estos cursos podran ser:

Introduccin a la Ingeniera de Software Anlisis y Diseo de Software Mtodos Formales

Calidad de Software Proyecto de Diseo Electivas Etica Profesional.

En el caso de la carrera de Ingeniera en Sistemas de Informacin de la Escuela de Informtica de la UNA, se puede recomendar la utilizacin del SWEBOK, considerando los diferentes niveles de profundidad que se deben establecer para cada caso, en algunos cursos como por ejemplo:

Fundamentos de Informtica Programacin I Soporte Tcnico Programacin II Programacin III Estructuras de Datos Programacin IV Ingeniera de Sistemas I Diseo e Implementacin de Bases de Datos Paradigmas de Programacin Ingeniera de Sistemas II Administracin de Bases de Datos Mtodos de Investigacin Cientfica en Informtica La Organizacin y su Entorno Ingeniera de Sistemas III Proyectos y su Aplicacin en la Organizacin (PPS) Aplicaciones Informticas Globales Informtica y Sociedad

En sntesis, como factores pragmticos, el SWEBOK puede ser muy til para la academia porque:

Posibilita contar con un libro de texto de aceptacin generalizada. Esto posibilita a los nuevos estudiantes una gua que define una especie de mapa de carreteras sobre lo que se espera que ellos deban aprender en cuanto a la ingeniera del software. Se elimina el problema de mltiples fuentes posibles de consulta. El SWEBOK condensa las ms relevantes. Se organiza y presenta una serie de materiales de referencia que es posible consultar con la gua del SWEBOK. Es gratis....!!!!. Hasta el momento en que esto est siendo escrito, se puede descargar y utilizar de forma gratuita del web-site del proyecto SWEBOK (www.swebok.org)

4.

CONCLUSIONES.

Normalmente se ha aceptado que los problemas de falta de disciplina en el proceso de desarrollo de software, es uno de los Talones de Aquiles de los Ingenieros de Software. Es una particularidad que pareciera inherente en los profesionales de la Ingeniera del Software. Por suerte este justo o injusto prejuicio, pareciera estarse eliminando paulatinamente. Las iniciativas como el SWEBOK que pretenden iniciar procesos de profesionalizacin de la Ingeniera del Software. Pasos concretos como el desarrollo e implementacin de curriculums, programas de actualizacin, programas de certificacin, cdigos de tica, etc., enrumban a la Ingeniera del Software en un curso de formalizacin que es necesario para enfrentar los desafos que tendr el desarrollo de software en el futuro.

Las organizaciones de desarrollo de software tienen en el SWEBOK un excelente aliado para revisar sus procesos internos de desarrollo de software, contrastarlo con el estado del arte e impulsar al fin, procesos de institucionalizacin de sistemas de gestin de calidad que se enmarquen, entre otros, en el SWEBOK. Por su parte, la Academia Nacional tiene en el SWEBOK el elemento integrador que sirve como punto de partida para el diseo de los nuevos curriculums de carreras de Ingeniera de Software a niveles Tcnico, pre-grado y post-grado.

5.
[1] [2]

REFERENCIAS.
Brooks, F., The Mytical Man-Month, Addison Wesley, Anniversary Edition ,1995. IEEE/ACM, Software Engineering 2004 Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering A Volume of the Computing Curriculum Series, Joint Task Force on Computing Curricula IEEE Computer Society and Association for Computing Machinery, 2004. IEEE Standard Glossary of Software Engineering Terminology, IEEE Std. 610-1990 , IEEE Standards Software Engineering, Volume 1; The Institute of Electrical and Electronics Engineers, 1999; ISBN 0-7381-1559-2. Ford, G. SEI Report on Undergraduate Software Engineering Education. Software Engineering Institute, Carnegie Mellon University, Technical Report CMU/SEI-90-tr-003, 1990. Clements, P. y Northrop, L. Software Architecture: An Executive Overview. Software Engineering Institute, Carnegie Mellon University, Technical Report CMU/SEI-96-TR-003, 1996. IEEE Computer Society, Guide to the software engineering body of knowledge: 2004 version, SWEBOK, www.swebok.org, 2004. Hilburn, T., Hirmanpour, I., Khajenoory, S., Turner, R., Qasem, A. A Software Engineering Body of Knowledge Version 1.0. Software Engineering Institute, Carnegie Mellon University, Technical Report CMU/SEI-99-TR-004, 1999.

[3]

[4]

[5]

[6]

[7]

Anda mungkin juga menyukai