INTRODUCCIÓN El desarrollo de software es un proceso tecnológico de alta complejidad que consum consume e tiempo tiempo,, requie requiere re mucho mucho esfuer esfuerzo zo humano humano y demand demanda a costos costos,, generalmente, elevados. Un porcentaje muy alto de proyectos de software fracasan debido, entre otros factores, a una gestión deficiente del proyecto. El éxito de un proyecto de software se mide en función de tres variables fundamentales: costo, tiempo y calidad. Un proyecto exitoso es aquel que se entr entreg ega a a tiem tiempo po,, bajo bajo el pres presup upue uest sto o asig asigna nado do y con con la cali calida dad d especificada. Para manejar estas tres variables, los ingenieros de software emplean modelos, procesos y técnicas gerenciales. ge renciales.
I. METODOLOGÍA DE GESTIÓN DE PROYECTO 1.1 GESTION DE PROYECTOS DE SOFTWARE 1.1 .1.1 .1 MI MISI SIÓN ÓN,, COOR COORDI DINA NACI CIÓN ÓN CON CON OTRO OTROS S PRO PROYECT YECTOS OS,, DIFEREN DIFERENCIAS CIAS Y DOCUMENT DOCUMENTACIÓ ACIÓN N (AD-HOC, (AD-HOC, DOCUMEN DOCUMENT TADO, ADO, NORMAS) 1.1.1.1 Misión : •
• •
Que el desarrollo del proyecto esté dentro de los límites marcados de tiempo y presupuesto. Indirectamente garantiza una buena realización técnica. Una buena gestión no garantiza el éxito, pero sin gestión hay fracaso
1.1.1.2 Coordinación con otros proyectos: •
•
•
Hablar de proyectos software puede resultar incorrecto por que lo normal no es que se desarrolle un software sino un sistema en el que el software va a tener una parte más o menos protagonista. Generalmente el proyecto software no se ejecuta de forma aislada sino que tiene que integrarse con otros proyectos que se están realizando en la l a organización. Cuan Cuando do se inte integr gra a con con otr otros proy proyec ecto to (en (en curs curso o o en futu futuro ro)) soft softwa ware re de la orga organi niza zació ción n se suel suele e habl hablar ar de gestión integrada de la información i nformación en la empresa.
1.1.1.3 Diferencia de la gestión de software con otros campos: • • •
El producto es intangible No hay un proceso software estándar. No hay una relación cerrada entre tipos de producto software Tipos de Software: [1] Software de sistemas Está Está for formado mado por por todo todoss aque aquell llos os prog progra rama mass cuya cuya finalidad es servir al desarrollo o al funcionamiento de otros programas. Estos programas son muy variados: editores, editores, compilador compiladores, es, sistemas sistemas operativos operativos,, entornos entornos gráficos, programas de telecomunicaciones, etc. pero se caracterizan por estar muy próximos al hardware, por ser utiliz utilizado adoss concur concurre rente ntemen mente te por numer numeroso ososs usuar suario ioss y por por trata ratars rse e de pro program gramas as de amp amplia lia
difusión, no estando diseñados normalmente a medida. Esto sto permite un mayor esfu sfuerzo rzo en su diseñ seño y optimización, pero también les obliga a ser muy fiables, cumpliendo estrictamente las especificaciones para las que que fuer fuero on crea cread dos. os. Un eje ejemplo mplo de este este tipo tipo de software son los sistemas operativos, como Windows y Unix. Software de tiempo real Esta formado por todos aquellos programas que miden, anal analiz izan an y cont contrrolan olan los los suce suceso soss del del mund mundo o real eal a medi medida da que que ocur ocurre ren, n, debi debien endo do reac reaccio ciona narr de form forma a corr correc ecta ta a los los estí estímu mulo loss de entr entrad ada a en un tiem tiempo po máxi máximo mo pref prefija ijado do.. De Debe ben, n, por por tant tanto, o, cump cumpli lirr unos unos requisitos temporales muy estrictos y, dado que los proc proces esos os que que cont contro rola lan n pued pueden en ser pote potenci ncial alme ment nte e peligrosos, tienen que ser fiables y tolerantes a fallos. Por otro lado, no suelen ser muy complejos y precisan de poca poca inte intera racc cció ión n con con el usua usuari rio o. Un sist sistem ema a de tiempo real es aquel en el que para que las operaciones computacionales estén correctas no depende solo de que que la lógi lógica ca e impl implem emen enta taci ción ón de los los prog progra rama mass comp comput utac acio iona nale less sea sea cor correcto ecto,, sino sino tamb tambié ién n en el tiempo en el que dicha operación entregó su resultado. Si las las rest restric riccio cione ness de tiem tiempo po no son son resp respet etad adas as el sistema se dice que ha fallado. Un Buen ejemplo es el de un robot que necesita tomar una pieza de una banda sinfín. Si el Robot llega tarde, la pieza ya no estará donde debía recogerla. Por lo tanto el trabajo se llevó acabo incorrectamente, aunque el robot haya llegado al lugar adecuado. Si el robot llega antes de que la pieza llegue, la pieza aun no estará ahí y el robot puede bloquear su paso. Software de gestión El procesamiento de información de gestión constituye, casi desde los inicios de la informática la mayor de las áreas de aplica icación ión de los los ordenadore ores. Esto stos programas utilizan grandes cantidades de información almacenadas en bases de datos con objeto de facilitar las transacciones comerciales o la toma de decisiones. Además de las tareas convencionales de procesamiento de datos, en las que el tiempo de procesamiento no es crítico y los errores pueden ser corregidos a posteriori, incluyen programas interactivos que sirven de soporte a transacciones comerciales. Software científico y de ingeniería Otro tro de los los camp campos os clá clásico sicoss de apli aplica caci ción ón de la informática. Se encarga de realizar complejos cálculos sobre datos numéricos de todo tipo. En este caso la corrección y exactitud de las operaciones que realizan
es uno de los requisitos básicos que deben de cumplir. cumplir. El campo del software científico y de ingeniería se ha visto visto amplia ampliado do última últimamen mente te con el desarr desarroll ollo o de los sistemas de diseño, ingeniería y fabricación asistida por ordenador (CAD, CAE y CAM), los simuladores gráficos y otras aplicaciones interactivas que lo acercan más al sof softwar tware e de tiem tiemp po real eal e incl inclus uso o al sof softwar ware de sistemas. Software de ordenadores personales El uso de ordenadores personales y de uso doméstico se ha generalizado a lo largo de la pasada década. Aplicaciones típicas son los procesadores de textos, las hojas de cálculo, bases de datos, aplicaciones gráficas, juegos, etc. Son productos de amplia lia difusión orientados a usuarios no profesionales, por lo que entre sus requisitos se encuentran la facilidad de uso y el bajo coste. Un ejemplo de este tipo de software es el paquete de Office. Software empotrado Software empotrado es aquel que va instalado en otros productos industriales, como por ejemplo la electrónica de consumo, dotando a estos productos de un grado de inteligencia cada vez mayor. Se aplica a todo tipo de productos, desde un vídeo doméstico hasta un misil con cabe cabeza za atóm atómic ica, a, pasa pasand ndo o por por algu alguno noss sist sistem emas as de contr control ol de los automó automóvile viles, s, y realiz realiza a funcio funciones nes muy diversas, que pueden ir desde complicados cálculos en tiem tiempo po real real a senc sencill illas as inte intera racc ccio ione ness con con el usua usuario rio facilit facilitand ando o el manej manejo o del aparat aparato o que los incorpo incorpora. ra. Comparten características con el software de sistemas, el software de tiempo real, el software de ingeniería y científico y el software de ordenadores personales. Otro ejem ejempl plo o de los los prod produc ucto toss que que utili utiliza zan n este este tipo tipo de software son los teléfonos celulares. Software de inteligencia artificial El software basado en lenguajes procedimentales es útil para realizar de forma rápida y fiable operaciones que para el ser humano son tediosas e incluso inabordables. Sin embargo, es difícilmente aplicable a problemas que requieran la aplicación de funciones intelectuales más elev elevad adas as,, por por triv trivia iale less que que nos nos pued puedan an pare parece cerr. El software de inteligencia artificial trata de dar respuesta a estas deficiencias, basándose en el uso de lenguajes declarativos, sistemas expertos y redes neuronales. Un ejemplo de este software es Smart Airport Operat Operation ionss Center Center,, progr programa ama de logíst logística ica cread creado o por Ascent Technolog logy, el cual es utiliz lizado en los aeropuertos, que computacional-mente, son el mayor
reto eto mund mundia iall para para resol esolve verr prob proble lema mas. s. Un camb cambio io (atraso, lluvia, falta de un empleado) genera el efecto dominó. Con el susodicho software, este pulpo balancea todos los detalles hasta que todo cuadre. Son logísticas, pero el problema es más sutil que una ecuación gigante. No hay manera de “solucionar” un aeropuerto con sus miles de variables. A cambio, los algo algori ritm tmos os gené genéti tico coss usan san la sele selecc cció ión n natu natura ral, l, la mutación, el cruce de esce scenarios subóptimo imos, perm permit itie iend ndo o que que el prog progra rama ma encu encuen entr tre e la mejo mejorr opción. La gente hace esto instintivamente en la vida diaria. Pero el software eleva la productividad en un 30% en los los aero aeropu puert ertos os que que lo usan usan,, elim elimin inan ando do dife difere rent ntes es engalletamientos. •
• •
Grandes proyectos software son con frecuencia proyectos únicos. Empleo de nuevas técnicas. Elevado número de interfases.
1.1.1.4 Documentación •
No se puede llamar gestión a lo que es un proceso Ad-Hoc: ✔
•
Sin planes escritos, registros etc.
Gestión es un proceso documentado documentado : ✔
Si no, no es posible el seguimiento [2] Hoy en día las valoraciones que se hacen de las empresas, empresas, consideran consideran como aspecto aspecto no-financier no-financiero o más importante la habili ilidad de ejecutar la estrategia de una empresa, y no tanto la calidad de la estrategia en sí misma. De acuerdo con un informe de Ernst & Young, de los factores no financieros más importantes a la hora de valorar una empresa, el número uno es la habilidad para ejecutar la estrategia estrategia de la empresa, mientras mientras que la calidad de esta estrategia se encuentra en tercera posición. Para confirmar esta idea, podemos ir a un estudio publ public icad ado o en la revis evista ta Fortun rtune, e, que que dice dice que alrededor del 70% de los fallos que cometen los dir directiv ectivos os no está están n caus causad ados os por por una una estr estrat ateg egia ia pobr pobre, e, sino sino por por una una ejec ejecuc ució ión n defi defici cien ente te de la
misma – siendo indecisivos y no cumpliendo con los compromisos establecidos con los accionistas, los clie client ntes es o los los prof profes esio iona nale less que que trab trabaj ajan an en la empresa. El Cuadro de Mando Integral – CMI – (denominación en castellano de Balanced Scor Scorec ecar ard, d, desa desarr rrol olla lado do por por Kapla aplan n y Nort Norton on a principios de los años noventa) es una herramienta de gest gestió ión n estr estrat atég égic ica a que que apoy apoya a la defin definici ición ón,, comunicación y gestión de los objetivos y estrategia de la empresa. Según el CMI la estrategia de una empr empres esa a pued puede e defi defini nirs rse e en func funció ión n de cuat cuatrro perspectivas como son la financiera, la de clientes, la de procesos y la de aprendizaje y crecimiento. BITS (Balanced IT Scorecard) Los prob proble lema mass pres presen enta tado doss ante anteri rior orme ment nte e se acentúan en las compañías de Tecnologías de la Información (TI), donde las barreras de comunicación causadas por el uso de idiomas muy distintos entre el departamento de TI y el resto del negoci negocio, o, provo provocan can una reduc reducción ción en el potenc potencial ial que las TI tienen para añadir valor a la empresa identi identifica ficando ndo nuevas nuevas oportu oportunid nidade adess de negoci negocio. o. Ante esta situación se ve la necesidad de crear un leng lengua uaje je comú común n en la empr empres esa a que que ofr ofrez ezca ca un marco común de evaluación haciendo uso de los mismos criterios en toda la empresa. Esto permitirá que las inversiones en TI y las mejoras que se lleven a cabo en la empresa estén orientadas a conseguir objetivos de negocio y que puedan evaluarse en función de esta aportación al negocio.
Conociendo los prin rincipios del CMI debemos desa desarr rrol olla larr una una meto metodo dolo logí gía a para para lleva llevarlo rloss a las las organizaciones de TI, considerando las peculiaridades de estas empresas. Podemos definir cinco perspectivas: Financiera: ¿Cómo añaden valor económico a la empr empres esa a nuest uestrros proc proces esos os de desa desarr rrol ollo lo de software y la mejora de dichos procesos? Clientes: ¿Cómo sabemos que nuestros clientes, internos y externos, están satisfechos?
¿funci cion onan an a un nive nivell sufi sufici cien ente te que que Procesos ¿fun satisfa sfaga a los clie lientes? ¿Cumplen len nuestros
proc proces esos os con con las las expe expect ctat ativ ivas as de los los clie client ntes es?? Personas : Aquí es donde introducimos una de las diferencias respecto del BSC. Hemos añadido una perspectiva más; la de personas. ¿Tienen nuestros empleados las capacidades suficientes para realizar su trabajo?, ¿Son felices con lo que están haciendo y donde lo están haciendo?
quí, para para las las Infrae Infraestr struct uctura ura e innova innovació ción: n: Aquí, organizaciones de TI, queremos gestionar aspectos relacionados con la mejora de procesos de software, la tecnología y la infraestructura organizativa, por lo que deberemos preguntarnos, ¿estamos trabajando para implantar un programa de mejora sostenible? Por programa de mejora sostenible entendemos un prog progra rama ma de mejo mejora ra cont contin inuo uo en el tiem tiempo po que que apoya a la empresa para alcanzar sus objetivos de negocio, por lo que podremos medir el impacto de estas mejoras en el negocio y por lo tanto su ROI. La metodología BITS la componen principalmente tres elementos El primero es el Modelo Genérico: consiste en un conjunto de objetivos genéricos que una empresa de TI podr podría ía quer querer er alca alcanz nzar ar y un conj conjun unto to de cond conduc ucto tore ress para para alca alcanz nzar ar esto estoss obje objeti tivo vos, s, para para cada una de las cinco perspectivas que hemos visto. Asoci sociad ado os a estos stos objet bjetiv ivo os y cond conduc ucto torres (o fact factor ores es críti crítico coss de éxito xito)) exis existe te un conj conjun unto to de indicadores cuantitativos para realizar el seguimiento de los mismos. El segundo componente es el Método, que ofrece una forma para desar sarrollar un CMI para una empresa de modo que en la empresa exista una alin alinea eaci ció ón ent entre las las inic inicia iati tiva vass de mejo mejora ra de procesos de software y los objetivos de negocio. El tercer componente es el Material de Aplicación del método. Aquí podemos encontrar material de apoyo a la hora de aplicar el método, como por ejemplo plantillas que las empresas pueden utilizar, y que facilitan y aceleran el proceso de desarrollar un CMI para una empresa. ✔ ✔
•
Tampoco sería posible la realimentación Y no se podría certificar el proceso de desarrollo.
Normas de la documentación
✔
✔
✔
La documentación (que refleja el proyecto) ha de estar ligada a una norma . Esta norma puede estar fijada por la organización o por un estándar Una de las primeras tareas de la gestión es adaptar (tailoring) las normas a la naturaleza y dimensiones del proyecto.
1.1.2 TAREAS, PLANES Y ACTIVIDADES 1.1.2.1 Tareas: 1.1.2.1.2 1.1.2.1.2 Planificar el proyecto •
Fija objetivos, tiempos, recursos, normas, técnicas, etc. (VER TEMA 2.1)
1.1.2.1.3 1.1.2.1.3 Controlar el proyecto •
• •
Se reali realiza zan n segu seguim imie ient ntos os,, análi análisi sis, s, prue prueba bass de los los elementos antes indicados . Se toman las acciones correctivas. co rrectivas. Todo ello reflejado en los planes anteriores.
1.1.2.2 Planes : • • • • • • •
Plan de desarrollo software (ANEXO 01) Plan de configuración software (ANEXO (ANEXO 02) Plan de calidad de software Plan de verificación y validación Plan de mantenimiento Plan de desarrollo del personal Plan de despliegue.
1.1.2.3 Actividades de control del proyecto: • •
•
• • • • • • •
Gestión de requisitos Establ Estableci ecimie miento nto de plan plan de trabaj trabajo o y Monitor Monitoriza ización ción progreso Gestión de la garantía de calidad de producto y de proceso Gestión de la configuración Gestión del cambio Gestión del riesgo Selección y formación del personal Gestión de suministradores Medida y análisis Informe y presentaciones p resentaciones
1.1.3 ROLES, JEFE/GESTOR Y ORGANIZACIÓN DEL EQUIPO DE DESARROLLO:CERRADO, ALEATORIO, ABIERTO, ABIERTO, SINCRONIZADO SINC RONIZADO
1.1.3.1 Roles asociados a las tareas 1.1.3.1.1 Roles mínimos • • • •
Jefe o gestor de proyecto. Resp. de configuración. Resp. de calidad. Resp. de desarrollo.
1.1.3.1.2 1.1.3.1.2 Roles dependiendo de la aplicación • • • • •
Resp. de despliegue. Resp. de mantenimiento. Resp. de librerías. Resp. de la base de datos. Resp. de safety/seguridad.
1.1.3.2 Jefe/Gestor del proyecto software •
•
Responsable de la gestión del proyecto Supe Supervi rvisa sa la adhe adhere renc ncia ia de los los proc proces esos os a los los • estándares y normas fijados en el proyecto. Respon esponsa sabl ble e de la plan planifi ifica caci ción ón y prog progra rama mació ción n de eventos. Controla el proyecto para mantenerlo dentro de • los márgenes de tiempo y presupuesto
1.1.3.3 Organización del equipos de desarrollo Paradigma cerrado
Estru strucctura jerárquica tradici icional de autorida idad (pro proyect yecto os de los los que hay un gran ran cono conoci cimi mien ento to previo ). Aleatorio
El equipo se estructura libremente en función de la inic inicia iati tiva va del del perso persona nal. l. Funci uncion onan an bien bien en ento entorn rnos os tecnológicos muy innovadores pero chocan cuando hay que conseguir un rendimiento ordenado. No facilita la asunción de responsabilidades. Abierto
Conjuga los dos anteriores. Se incluyen muchas vías de comunicación y toma de decisiones consensuadas. Adecuados para la resolución de problemas complejos pero no tienen tanto rendimiento como el cerrado.
Sincronizado
Se divid divide e el prob problem lema a en part partes es disj disjun unta tass de form forma a natu natura ral, l, con con una una orga organi niza zaci ción ón clar clara a pero pero con con poca poca comunicación entre ellas. 1.1.4 NORMAS, ESTÁNDARES Y HERRAMIENTAS 1.1.4.1 Normas y estándares 1.1.4.1.1 1.1.4.1.1 Planificación •
PSS-05 - ECSS-E-40A
1.1.4.1.2 Calidad •
Iso Iso 9001 9001-- CMM CMM y CMMI CMMI - Capa Capabi bilit lity y Matu Maturit rity y Mode Modell Integration
1.1.4.1.3 1.1.4.1.3 Ciclo de vida •
•
RUP - Rational Unified Process: Modelo de desarrollo basado en su diagrama de ballenas. Las nor normas IEEE EEE 1074 1074 e ISO ISO 1220 122077-1 1 enfoc nfoca an el tér término ino de for forma muy muy simi simila larr cons consid ider eran and do una actividad como un conjunto de tareas y una tarea como una acción que transforman entradas en salidas.
1.1.4.2 Herramientas 1.1.4.2.1 1.1.4.2.1 Planificación •
REVIC y SOFTEST del USAAF
1.1.4.2.2 1.1.4.2.2 Control de la configuración
La Gestión de Configuración del Software (GCS) es un conjunto de actividades desarrolladas para gestionar los cambios a lo largo del ciclo de vida del software. Es una actividad de garantía de calidad que se aplica en todas las fases del proceso de ingeniería del software. •
CVS o ClearQuest
1.1.4.2.3 1.1.4.2.3 Control Control del del versiones versiones [3]
Un sistema de control de versiones debe proporcionar: Mecanismo de almacenaje de los elementos que • deba gestionar (ej. archivos de texto, imágenes, documentación...)
Posib sibili ilidad de realiz lizar cambios sobre los elem elemen ento toss alma almace cena nado doss (ej. (ej. modi modifi fica caci cion ones es parc parcia iale les, s, añad añadir ir,, borr borrar ar,, reno renomb mbra rarr o move moverr elementos) Registro histórico de las acciones realizadas con • cada elemento o conjunto de elementos (nor (norma malm lmen ente te pudi pudien endo do volv volver er o extr extrae aerr un estado anterior del producto) Aunque no es estrictamente necesario, suele ser muy útil la generación de informes con los los cambios ios introducidos entre dos versiones, informes de estado, marcado con nombre identificativo de la versión de un conjunto de ficheros, etcétera. •
•
CVS, Subversion, SourceSafe, ClearCase, Darcs, Plastic SCM, Git, Mercurial, etc.
1.1.4.2.4 1.1.4.2.4 Ciclo de vida •
Ratio Rational nal Enterpr Enterprise ise Editio Edition n , Ratio Rational nal SoDA, SoDA, Ratio Rational nal Suite
1.2. PLANIFICACION 1.2.1 PLANIFICACIÓN: (MARCO DESARROLLO, COSTO, PLAN, RIESG IESGO OS), RELACIÓN CIÓN CON CON REQUISIT ISITO OS, QUE DEFINE INE (MARCO, PLANES, ACTIVIDADES). 1.2.1.1 Planificación: Marco de desarrollo del proyecto Defi De fini nici ción ón a alto alto nive nivell de norm normas as,, está estánd ndar ares es,, herramientas, etc. Costo del proyecto Consistirá en analizar los productos y el tiempo y recursos que en abstracto tiene su desarrollo
y recursos.
Plan de trabajo Se realizan las asignaciones de personal, tiempos Riesgos Gestión de riesgos
1.2.1.2 Función de los requisitos
Tie Tiene ne que que tene tenerr en cuen cuenta ta los los requ requisi isito toss en sent sentid ido o amplio: Los que que prov provie ien nen de los los sta stakehol eholde ders rs (lo (los • interesados). Los que que pro provien vienen en del del ento entorrno de la prop propia ia • organización.
1.2.1.3 Definiciones Definir un marco de referencia • •
Definir un plan (ANEXO 03) ✔ ✔
•
Reflejado en un documento de planificación Este es un documento necesariamente vivo por lo que se han de plantear los recursos para ellos.
Actividades
1.2.2 1.2. 2 MARC MARCO O GENE GENERA RAL: L: ALCA ALCANC NCE, E, CONTROL Y HERRAMIENTAS
NORM NORMAS AS,,
EQUI EQUIPO PO,,
1.2.2.1 Alcance Definición de los objetivos y prioridades • Definición de los productos finales en alto nivel • Definición de Entregables • ✔ ✔ ✔
•
Entregables hardware Entregables software Entregables de documentación
Definición de límites e interfases con otras empresas.
1.2.2.2 Normas y referencias: customización Normas o estándares a emplear • Adaptación de dichas normas al presente • proyecto Elección del Modelo de proceso de desarrollo • Metodologías utilizadas • 1.2.2.3 Organización del equipo Definición de la Estructura organizativa • A nivel de asignación de los roles definidos en el • SQAP Software Quality Assurance Plan o SQAP (es decir, Plan de Garantía de Calidad de Software) es un documento que organiza el desarrollo del software con el fin de que el proceso de creación de este siga unas pautas que aseguren la calidad del resultado. Este plan de garantía forma parte de la Ingeniería de software. En este documento se organiza el equipo de personas, se elige el ciclo de vida a seguir, se especifican los documentos que harán falta, las revisiones que se harán, las pruebas e incluso cómo realizar el mantenimiento. (ANEXO 04)
1.2.2.4 Mecanismos de monitorización y control •
•
• • • • •
Mecanismos de control y seguimiento en función de lo definido en el SQAP Establecimiento de reuniones de seguimiento de proyecto Reuniones internas de seguimiento del proyecto. Reuniones de hitos. Definición de informes de progreso Definición del registro de comunicaciones Control de suministradores
1.2.3 1.2. 3 ANÁL ANÁLIS ISIS IS DEL DEL COST COSTE: E: TAREA AREAS S DE DESA DESARR RROL OLL LO (CSCI/CSC, ETIMACIÓN, AJUSTE, HISTORICO), NO DESARROLLO, AJUSTE PRESUPUESTARIO 1.2.3.1 Descomposición de las tareas no directamente de desarrollo • • • •
Documentación Control Test Plan más allá del desarrollo ✔ ✔ ✔
•
No siempre se contemplan, a veces se posponen Definición de plan de despliegue Definición de las actividades de Mantenimiento
Adquisición y recepción de recursos materiales
1.2.3.2 Descomposición Descomposición de las tareas de desarrollo 1.2.3.2.1 Definición de Paquetes de Trabajo en CSCI/CSC (Computer Software Configuration Item/Computer Software Component) •
Fuente para su definición: ✔ ✔ ✔ ✔
Los requisitos Las normas (que fijan productos concretos) Los mecanismos de control La discusión entre ellos.
1.2. 2.3 3.2 .2.2 .2 Estim timación ción de paquete de trabajo
hor horas/ as/hom hombre
por
Para ara ello ello es nece necesa sari rio o util utiliz izar ar herr herram amie ient ntas as basadas en modelos como COCOMO, COCOMO 2 o REVIC Como funciona REVIC:
•
•
•
Se introduce el conjunto de CSCI/CSC del proyecto Se realiza una estimación del número de líne líneas as de códi código go de cada cada comp compon onen ente te,, normalmente se introduce una distribución estadística. A cont contin inua uació ción n se fija fijan n unos unos pará paráme metr tros os globales del proyecto como: ✔
•
1.2.4 PLAN MATE MATERI RIAL ALES ES,, TÉCNICAS
Experiencia, aerotransportado, etc.
criticidad,
El programa proporcionará una distribución en valor medio (incluso varianza) .
DE TRABAJO: RECURSOS HUMANOS HITO HITOS, S, ANÁL ANÁLIS ISIS IS,, CAMI CAMINO NOS S CRÍT CRÍTIC ICOS OS
Y Y
1.2.4.1 Recursos humanos •
• •
•
Organizar el equipo de trabajo en función de la norma y en función del volumen del proyecto. Asignar las horas/hombre al equipo de trabajo. Asignación de Responsabilidades a cada uno de los paquetes. de trabajo. Formación.
1.2.4.2 Recursos materiales •
Reparto de los existentes
•
Planes de adquisición
1.2.4.3 Estudiar caminos críticos 1.2.4.3.1 Tecnicas GANTT [4]
En gestión de proyectos, el diagrama de Gantt mues muestr tra a el orig origen en y el fina finall de las las dife diferrente entess unid unidad ades es míni mínima mass de trab trabaj ajo o y los los grup grupos os de tare areas (llam lamados summary elem lements en la imag imagen en)) o las las depe depend nden enci cias as entr entre e unid unidad ades es mínimas de trabajo (no mostradas en la imagen). Desde su introducción los diagramas de Gantt se han convertido en una herramienta básica en la
gestión de proyectos de todo tipo, con la finalidad de repr epresen esenta tarr las las dife diferrente entess fase fases, s, tarea areass y acti activi vida dade dess prog progra rama mada dass como como parte arte de un proyecto o para mostrar una línea de tiempo en las las difer diferen ente tess acti activi vida dade dess haci hacien endo do el méto método do más eficiente. PERT [5]
Una malla PERT permite planificar y controlar el desa desarr rrol ollo lo de un proy proyec ecto to.. A dife difere renc ncia ia de las las redes CPM, las redes PERT trabajan con tiempos probabilísticos. Normalmente para desarrollar un proyecto específico lo primero que se hace es dete determ rmin inar ar,, en una una reun reunió ión n mult multid idis isci cipl plina inaria ria,, cuáles son las actividades que se deberá ejecutar para llevar a feliz término el proyecto, cuál es la precedencia entre ellas y cuál será la duración esperada de cada una.
II. METODOLOGÍA DE DESARROLLO DE SOFTWARE 2.1 METODOLOGÍA METODOLOGÍ A Y PROCESO DE DESARROLLO DESARROL LO DE SOFTWARE
Un proc proces eso o de desa desarr rrol ollo lo de sof softwar ware tiene iene como como prop propós ósit ito o la producción eficaz y eficiente de un producto software que reúna los requisitos del cliente. Dicho proceso, en términos globales se muestra en la Figura 2 [3]. Este proceso es intensamente intelectual, afectado
por la creativida creatividad d y juicio de las personas involucradas involucradas [4]. Aunque un proyecto de desarrollo de software es equiparable en muchos aspectos a cualquier otro proyecto de ingeniería, en el desarrollo de software hay una una seri serie e de desa desafí fíos os adic adicio iona nale les, s, relat elativ ivos os esen esenci cial alme ment nte e a la naturaleza del producto obtenido. A continuación se explican algunas particularidades asociadas al desarrollo de software y que influyen en su proceso de construcción. Un produc producto to softwa software re en sí es comple complejo, jo, es prácti prácticam cament ente e inviab inviable le conseguir un 100% de confiabilidad de un programa por pequeño que sea. Existe una inmensa combinación de factores que impiden una verificación exhaustiva de las todas posibles situaciones de ejecución que que se pued puedan an pres presen enta tarr (ent (entra rada das, s, valo valorres de vari variab able les, s, dato datoss almacenados, software del sistema, otras aplicaciones que intervienen, el hardware sobre el cual se ejecuta, etc.). Un producto software es intangible y por lo general muy abstracto, esto dificulta la definición del producto y sus requisitos, sobre todo cuando no se tiene precedentes en productos software similares. Esto hace que los requi requisito sitoss sean sean difíci difíciles les de consoli consolidar dar tempra tempranam nament ente. e. Así, los camb cambio ioss en los los requi equisi sito toss son son inev inevit itab able les, s, no sólo sólo desp despué uéss de entregado en producto sino también durante el proceso de desarrollo. Además, de las dos anteriores, siempre puede señalarse la inmadurez de la ingeniería del software como disciplina, justificada por su corta vida comparada con otras disciplinas de la ingeniería. Sin embargo, esto no es más que un inútil consuelo. Requisitos Requisitos nuevos o modifi odificados
Proceso de Desarrollo esarrollo de Software
Sistema nuevo o modifi odificado
Figura 1: proceso de desarrollo de software.
El proceso de desarrollo de software no es único. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difícil automatizar todo un proceso de desarrollo de software. A pesar de la variedad de propuestas de proceso de software, existe un conjunto de actividades fundamentales que se encuentran presentes en todos ellos [4]: 1. Especificación de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software. 2. Diseño e Implementación: Se diseña y construye el software de acuerdo a la especificación. 3. Validación: El soft softwa warre debe debe vali valida dars rse, e, para para aseg asegur urar ar que que cumpla con lo que quiere el cliente. 4. Evolución: El software debe evolucionar, para adaptarse a las
necesidades del cliente. Además de estas actividades fundamentales, Pressman [1] menciona un conjunto de “actividades protectoras”, que se aplican a lo largo de todo el proceso del software. Ellas se señalan a continuación: Seguimiento y control de proyecto de software. Revisiones técnicas formales. Garantía de calidad del software. Gestión de configuración del software. Preparación y producción de documentos. Gestión de reutilización. Mediciones. Gestión de riesgos. Pressman [1] caracteriza un proceso de desarrollo de software como se muestra en la Figura 3. Los elementos involucrados se describen a continuación: Un marco común del proceso, definiendo un pequeño número de actividades del marco de trabajo que son aplicables a todos los proyectos de software, con independencia del tamaño o complejidad. Un conjunto de tareas, cada uno es una colección de tareas de ingeniería del software, hitos de proyectos, entregas y productos de trabajo del software, y puntos de garantía de calidad, que permiten que que las las acti activi vid dades ades del del marco arco de trab trabaj ajo o se adap dapten ten a las las características del proyecto de software y los requisitos del equipo del proyecto. Las actividades de protección, tales como garantía de calidad del software, gestión de configuración del software y medición, abarcan el modelo del proceso. so. Las activida idades de pro protección ión son inde indepe pend ndie ient ntes es de cual cualqu quie ierr acti activi vida dad d del del mar marco de trab trabaj ajo o y aparecen durante todo el proceso. •
•
•
•
•
•
•
•
•
•
•
Figura 2: Elementos del proceso del software
Otra perspectiva utilizada para determinar los elementos del proceso
de desarrollo de software es establecer las relaciones entre elementos que permitan responder Quién debe hacer Qué, Cuándo y Cómo debe hacerlo [5].
Figura 3: Relación entre elementos del proceso del software
En la Figura 4 se muestran los elementos de un proceso de desarrollo de software y sus relaciones. Así las interrogantes se responden de la siguiente forma: Las Person ersonas as part partic icip ipan ante tess en el proy proyec ecto to de desa desarr rrol ollo lo Quién: Las desempeñando uno o más Roles específicos. •
Artefacto cto1 es producido por un Rol en una de sus Qué: Un Artefa Activi Actividad dades. es. Los Los Artefa Artefacto ctoss se especif especifica ican n utiliza utilizando ndo Notacio Notaciones nes específicas. Las Herramientas apoyan la elaboración de Artefactos soportando ciertas Notaciones. Cómo y Cuándo: Las Actividades son una serie de pasos que lleva a cabo un Rol durante el proceso de desarrollo. El avance del proyecto está está cont contro rola lado do medi median ante te hito hitoss que que esta establ blec ecen en un dete determ rmin inad ado o estado de terminación de ciertos Artefactos. La comp compos osic ició ión n y sinc sincro roní nía a de las las acti activid vidad ades es está está basa basada da en un conjunto de Principios y Prácticas. Las Prácticas y Principios enfatizan ciertas actividades y/o la forma como deben realizarse, por ejemplo: desarrollar iterativamente, gestionar requisitos, desarrollo basado en componentes, modelar visualmente, verificar continuamente la calidad, gestionar los cambios, etc. •
•
2.1.1. Modelos de proceso software Sommerville Sommerville [4] define modelo de proceso proceso de software software como “Una repre presentación ión simplific ficada de un pro proceso de software, representada desde una perspectiva específica. Por su naturaleza 1
Un artefacto es una pieza de información que (1) es producida, modificada o usada por el proceso, (2) define un área de responsabilidad para un rol y (3) está sujeta a control de versiones. Un artefacto puede ser un modelo, un elemento de modelo o un documento.
los modelos son simplificados, por lo tanto un modelo de procesos del software es una abstracción de un proceso real.” Los modelos genéricos no son descripciones definitivas de procesos de software; sin embargo, son abstracciones útiles que pueden ser utili utiliza zada dass para para expl explica icarr dife difere rent ntes es enfo enfoqu ques es del del desa desarr rrol ollo lo de software. Modelos que se van a discutir a continuación: Codificar y corregir Modelo en cascada Desarrollo evolutivo Desarrollo formal de sistemas Desarrollo basado en reutilización Desarrollo incremental Desarrollo en espiral •
•
•
•
•
•
•
2.1.1.1. Codificar y corregir (Code-and-Fix) Este es el modelo básico utilizado en los inicios del desarrollo de software. Contiene dos pasos: Escribir código. Corregir problemas en el código. cód igo. Se trat trata a de prim primer ero o impl implem emen enta tarr algo algo de códi código go y lueg luego o pensar acerca de requisitos, diseño, validación ión, y mantenimiento. Este modelo tiene tres problemas principales [7]: Después de un número de correcciones, el código puede tener una muy mala estructura, hace que los arreglos sean muy costosos. Frecu recuen ente teme ment nte, e, aún aún el soft softwa ware re bien bien dise diseña ñado do,, no se ajus ajusta ta a las las nece necesi sida dade dess del del usua usuari rio, o, por por lo que que es rechazado o su reconstrucción es muy cara. El código es difícil de reparar por su pobre preparación para probar y modificar. •
•
•
•
•
2.1.1.2. Modelo en cascada El primer modelo de desarrollo de software que se publicó se derivó de otros procesos de ingeniería [8]. Éste toma las activid actividade adess fundam fundament entale aless del proce proceso so de especi especific ficaci ación, ón, desarrollo, validación y evolución y las representa como fases separadas del proceso. El modelo en cascada consta de las siguientes fases: Definición de los requisitos: Los servicios, restricciones • y obje objeti tivo voss son son esta establ blec ecid idos os con con los los usua usuari rios os del del
•
•
sistema. Se busca hacer esta definición en detalle. Dise Di señ ño de sof softwar ware: Se parti artici cion ona a el sist sistem ema a en sist sistem emas as de soft softwa warre o hard hardwa ware re.. Se esta establ blec ece e la arqu arquit itec ectu tura ra tota otal del del sist sistem ema a. Se iden identi tifi fica can n y desc descri ribe ben n las las abstr bstrac acccione ioness y relac elacio ione ness de los los componentes del sistema. Implementación y pruebas unitarias: Construcción de los los módu ódulos los y unida nidade dess de sof softwar tware. e. Se reali ealiza zan n pruebas de cada unidad.
Integración y pruebas del sistema: Se integran todas las unidades. Se prueban en conjunto. Se entrega el conjunto probado al cliente. Operación y mantenimiento: Generalmente es la fase • más larga. El sistema es puesto en marcha y se realiza la corr correc ecci ción ón de err errores ores desc descub ubie iert rtos os.. Se reali ealiza zan n mejo mejora rass de impl implem emen enta taci ción ón.. Se iden identi tific fican an nuev nuevos os requisitos. La interacción entre fases puede observarse en la Figura 5. Cada fase tiene como resultado documentos que deben ser aprobados por el usuario. Una fase no comienza hasta que termine la fase anterior y genera generalme lmente nte se incluye incluye la corre correcció cción n de los probl problema emass encontrados en fases previas. •
Figura 4: Modelo de desarrollo en cascada.
En la práctica, este modelo no es lineal, e involucra varias iter itera acion ciones es e inte intera racc cció ión n entr entre e las las dist istinta intass fase fasess de desarrollo. Algunos problemas que se observan en el modelo de cascada son: Las iterac iteracion iones es son costos costosas as e implic implican an rehac rehacer er trabaj trabajo o debido a la producción y aprobación de documentos. Aunque son pocas iteraciones, es normal congelar parte del desarrollo y continuar con las siguientes fases. Los problemas se dejan para su posterior resolución, lo que •
•
•
lleva a que estos sean ignorados o corregidos de una forma poco elegante. Existe una alta probabilidad de que el software no cumpla con con los los requi equisi sito toss del del usua usuari rio o por por el larg largo o tiem tiempo po de entrega del producto. producto. Es infl inflex exib ible le a la hora hora de evol evoluc ucio iona narr para para inco incorp rpor orar ar nuevos requisitos. Es difícil responder a cambios en los requisitos. Este modelo sólo debe usarse si se entienden a plenitud los requisitos. Aún se utiliza como parte de proyectos grandes.
•
•
2.1.1.3. Desarrollo evolutivo La idea idea detr detrás ás de este este mode modelo lo es el desa desarr rrol ollo lo de una una implantación del sistema inicial, exponerla a los comentarios del usuario, refinarla en N versiones hasta que se desarrolle el sistema adecuado. En la Figura 6 se observa cómo las acti activi vida dade dess conc concur urrrente entes: s: espe especi cifi fica caci ción ón,, desa desarr rrol ollo lo y validación, se realizan durante el desarrollo de las versiones hasta llegar al producto final. Una ventaja de este modelo es que se obtiene una rápida reali ealime ment ntac ació ión n del del usuar suario io,, ya que que las las acti activi vid dades ades de espe especi cific ficac ació ión, n, desa desarr rrol ollo lo y prue prueba bass se ejec ejecut utan an en cada cada iteración.
Figura 5: Modelo de desarrollo evolutivo.
Existen dos tipos de desarrollo evolutivo: Desa De sarr rrol ollo lo Explo Explora rato torio rio:: El obje objeti tivo vo de este este enfo enfoqu que e es explorar con el usuario los requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes que se tien tiene e más más clar claras as.. El sist sistem ema a evol evoluc ucio iona na conf confor orme me se añaden nuevas características propuestas por el usuario. Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza por definir los requisitos que no están claros para el usuario y se utiliza un prototipo para experimentar con ello ellos. s. El prot protot otip ipo o ayud ayuda a a term termin inar ar de defi defini nirr esto estoss •
•
requisitos. Entre los puntos favorables de este modelo están: La especificación puede desarrollarse de forma creciente. Los usuarios y desarrolladores logran un mejor entendimiento del sistema. Esto se refleja en una mejora de la calidad del software. Es más efectivo que el modelo de cascada, ya que cumple con las necesidades inmediatas del cliente. Desd De sde e una una pers perspe pect ctiv iva a de inge ingeni nier ería ía y admi adminis nistr trac ació ión n se identifican los siguientes problemas: Proceso no Visible: Los administradores necesitan entregas para medir el progreso. Si el sistema se necesita desarrollar des arrollar rápido, no es efectivo producir documentos que reflejen cada versión del sistema. Sist Sistem emas as pobr obremen ementte estr estruc uctu tura rado dos: s: Los camb cambio ioss continuos pueden ser perjudiciales para la estructura del software haciendo costoso el mantenimiento. Se requi equier eren en técn técnic icas as y herr herram amie ient ntas as:: Para ara el rápi rápido do desa desarr rroll ollo o se nece necesit sitan an herr herram amie ient ntas as que que pued pueden en ser ser incompatibles con otras o que poca gente sabe utilizar. Este modelo es efectivo en proyectos pequeños (menos de 100.000 líneas de código) o medianos (hasta 500.000 líneas de código) con poco tiempo para su desarrollo y sin generar documentación para cada versión. Para proyectos largos es mejor combinar lo mejor del modelo de cascada y evolutivo: se puede hacer un prototipo global del del sist sistem ema a y post poster erio iorm rmen ente te reimp eimple leme ment ntar arlo lo con con un acer acerca cami mien ento to más más estr estruc uctu tura rado do.. Los Los subs subsis iste tema mass con con requi requisito sitoss bien bien definid definidos os y establ estables es se pueden pueden progr programa amarr utili tiliza zan ndo casca ascad da y la int interfa erfazz de usuar suario io se pued puede e especificar utilizando un enfoque exploratorio. •
•
•
•
•
•
2.1.1.4. Desarrollo formal de sistemas Este modelo se basa en transformaciones formales de los requisitos hasta llegar a un programa p rograma ejecutable. Figura 6: Paradigma de programación automática.
La Figura 7 (obtenida desde [20]) ilustra un paradigma ideal de prog progra rama maci ción ón auto automá máti tica ca.. Se dist distin ingu guen en dos dos fase fasess globales: especificación ión (inc incluy luyendo valida idación) y tran transf sfor orma maci ción ón.. Las Las cara caract cter erís ísti tica cass prin princi cipa pale less de este este para paradi digm gma a son: son: la espe especi cifi fica cació ción n es form formal al y ejec ejecut utab able le constituye el primer prototipo del sistema), la especificación es validada mediante prototipación. Posteriormente, a través de transformaciones formales la especificación se convierte
en la impl implem emen enta taci ción ón del del sist sistem ema, a, en el últi último mo paso paso de tran transf sfor orma maci ción ón se obti obtien ene e una una impl implem emen enta taci ción ón en un lenguaje lenguaje de programació programación n determinado determinado.. , el mantenimiento mantenimiento se realiza sobre la especificación (no sobre el código fuente), la docu docum ment entació ación n es gen generad erada a autom utomát átic ica amen mente y el mantenimiento es realizado por repetición del proceso (no mediante parches sobre la implementación). impl ementación). Observaciones sobre el desarrollo formal de sistemas: Perm Permite ite demost demostrar rar la corre correcci cción ón del sistema sistema durant durante e el proceso de transformación. Así, las pruebas que verifican la correspondencia con la especificación no son necesarias. Es atractivo sobre todo para sistemas donde hay requisitos de seguridad y confiabilidad importantes. Requiere desarrolladores especializados y experimentados en este proceso para llevarse a cabo. •
•
•
2.1.1.5. Desarrollo basado en reutilización Como omo su nombr ombre e lo indi indica ca,, es un mode modelo lo fuer fuerte tem mente ente orientado a la reutilización. Este modelo consta de 4 fases ilustradas en la Figura 9. A continuación se describe cada fase: 1. Análisis Análisis de componentes: componentes: Se determina qué componentes componentes pueden ser utilizados para el sistema en cuestión. Casi siempre hay que hacer ajustes para adecuarlos. 2. Modific Modificaci ación ón de requis requisito itos: s: Se adapta adaptan n (en lo posible posible)) los requisitos para concordar con los componentes de la etapa ante anterio riorr. Si no se pued puede e real realiz izar ar modi modifi fica caci cion ones es en los los requi requisito sitos, s, hay que seguir seguir buscan buscando do compon component entes es más adecuados (fase 1). 3. Diseño del sistema con reutilización: reutilización: Se diseña o reutiliza reutiliza el marco de trabajo para el sistema. Se debe tener en cuenta los componentes localizados en la fase 2 para diseñar o determinar este marco. 4. De Desa sarr rrol ollo lo e inte integ graci ración ón:: El sof softwar ware que no pued puede e comprarse, se desarrolla. Se integran los componentes y subsistemas. La integración es parte del desarrollo en lugar de una actividad separada.
Las ventajas de este modelo son: •
•
•
Disminuye el costo y esfuerzo de desarrollo. Reduce el tiempo de entrega. Disminuye los riesgos durante el desarrollo.
Figura componentes
7:
Desarrollo
basado
en
reutilización
de
Desventajas de este modelo: Los “compromisos” en los requisitos son inevitables, por lo cual puede que el software no cumpla las expectativas del cliente. Las actualizaciones de los componentes adquiridos no están stán en mano manoss de los los desar esarrrolla llador dores del del sistema. •
•
2.1.2. Procesos iterativos A contin continuac uación ión se expon expondrá drán n dos enfoqu enfoques es híbrido híbridos, s, especi especialm alment ente e diseñados para el soporte de las iteraciones: Desarrollo Incremental. Desarrollo en Espiral. •
•
2.1.2.1 Desarrollo incremental Mills [9] sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en el proceso de desa desarr rrol ollo lo y dar dar opor oportu tuni nida dad d de retra etrasa sarr la toma toma de decisiones decisiones en los requisitos requisitos hasta hasta adquirir adquirir experienci experiencia a con el sistema (ver Figura 10). Es una combinación del Modelo de Cascada y Modelo Evolutivo. Reduce Reduce el rehacer rehacer trabajo trabajo durante el proceso proceso de desarrollo desarrollo y da opor oportu tuni nida dad d para para retra retrasa sarr las las deci decisio sione ness hast hasta a tene tenerr experiencia en el sistema. Durante el desarrollo de cada incremento se puede utilizar el modelo de cascada o evolutivo, dependiendo del conocimiento que se tenga sobre los requisitos a implementar. Si se tiene un buen conocimiento, se puede optar por cascada, si es dudoso, evolutivo.
Figura 8: Modelo de desarrollo iterativo incremental.
Entre las ventajas del modelo incremental se encuentran: Los clientes no esperan hasta el fin del desarrollo para utili utiliza zarr el sist sistem ema. a. Pued Pueden en empe empeza zarr a usar usarlo lo desd desde e el primer incremento. Los clientes pueden aclarar los requisitos que no tengan claros conforme ven las entregas del sistema. s istema. Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir distr ibuir en cada incremento. Las partes más importantes del sistema son entregadas prime primero ro,, por por lo cual cual se real realiz izan an más más prue prueba bass en estos estos módulos y se disminuye el riesgo de fallos. Algunas de las desventajas identificadas para este modelo son: Cada incremento debe ser pequeño para limitar el riesgo (menos de 20.000 líneas). Cada incremento debe aumentar la funcionalidad. Es difícil establecer las correspondencias de los requisitos requisitos contra los incrementos. Es difícil detectar las unidades o servicios genéricos para todo el sistema. •
•
•
•
•
•
•
•
2.1.2.2 Desarrollo en espiral El mod modelo elo de desa desarr rrol ollo lo en esp espira iral (ver (ver Figu igura 11) 11) es actualmente uno de los más conocidos y fue propuesto por Boehm [7]. El ciclo de desarrollo se representa como una espiral, en lugar de una serie de actividades sucesivas con retrospectiva de una actividad a otra. Cada ciclo de desarrollo se divide en cuatro fases: 1. Definición de objetivos: Se definen los objetivos. objetivos. Se definen las restricciones del proceso y del producto. Se realiza un diseño detallado del plan administrativo. Se identifican los riesgos y se elaboran estrategias alternativas dependiendo de estos. 2. Evalua Evaluació ción n y reduc reducción ción de riesgos riesgos:: Se realiz realiza a un análisi análisiss
detallado de cada riesgo identificado. Pueden desarrollarse prototipos para disminuir el riesgo de requisitos dudosos. Se llevan a cabo los pasos para reducir los riesgos. 3. Desarrollo Desarrollo y validación: validación: Se escoge el modelo modelo de desarroll desarrollo o después de la evaluación del riesgo. El modelo que se utili utiliza zará rá (cas (casca cada da,, siste sistema mass form formal ales es,, evol evolut utiv ivo, o, etc. etc.)) depende del riesgo identificado para esa fase. 4. Planificació Planificación: n: Se determina determina si continuar continuar con otro ciclo. ciclo. Se planea la siguiente fase del proyecto. Este modelo a diferencia de los otros toma en consideración explícitamente el riesgo, esta es una actividad importante en la administración del proyecto. El ciclo de vida inicia con la definición de los objetivos. De acuerdo a las restric riccion iones se determinan distintas alternativas. Se identifican los riesgos al sopesar los objetivos contra las alternativas. Se evalúan los riesgos con actividades como como anál análisi isiss deta detall llad ado, o, simu simula lació ción, n, prot protot otip ipos os,, etc. etc. Se desarrolla un poco el sistema. Se planifica la siguiente fase.
Figura 9: Modelo de desarrollo en Espiral
2.2. ¿Cuál es el modelo de proceso más adecuado? Cada proyecto de software requiere de una forma de particular de abor aborda darr el prob proble lema ma.. Las Las prop propue uest stas as come comerrcial ciales es y acad académ émic icas as actuales promueven procesos iterativos, donde en cada iteración puede utilizarse uno u otro modelo de proceso, considerando un conjunto de criterios (Por ejemplo: grado de definición de requisitos, tamaño del proyecto, riesgos identificados, entre otros). En la Tabla 1 se expone un cuadro comparativo de acuerdo con algunos criterios básicos para la selección de un modelo de proceso [10], la medida utilizada indica el nivel de efectividad del modelo de proceso de acuerdo al criterio (Por ejemplo: El modelo Cascada responde con un nivel de efectividad Bajo cuando los Requisitos y arquitectura no están
predefinidos ):
Vi si ón de l pr og re so po r el Cli en te y el Jef e de l pr oy ec to
Mode lo de proce so
F unci ona con requ isito s y arqu itect ura no pre defi nido s
Produ ce softw are altam ente fiable
Gesti ón de riesg os
Permit e correc ciones sobre la march a
Codifi car y corre gir
Bajo
B a jo
B a jo
Alto
Me di o
Casca da
B a jo
Alto
B a jo
Bajo
Ba jo
Evolu tivo explo ratori o
Medi o o Alto
Medio o Alto
Medi o
Medio o Alto
Me di o o Alt o
Evolu tivo proto tipad o
Alto
Medio
Medi o
Alto
A lto
Alto
Bajo a Medi o
Bajo
Ba jo
Desar rollo forma l de siste mas
B a jo
Desar rollo orien tado a reutil izació n
Medi o
Bajo a Alto
Bajo a Medi o
Alto
A lto
Incre ment al
B a jo
Alto
Medi o
Bajo
Ba jo
Espir al
Alto
Alto
Alto
Medio
Me di o
Tabla 1: Comparación entre modelos de proceso de software.
2.3. Metodologías para desarrollo de software
Un proc proces eso o de soft softwa ware re deta detalla llado do y comp comple leto to suel suele e deno denomin minar arse se “Metodología”. Las metodologías se basan en una combinación de los modelos de proceso genéricos (cascada, evolutivo, incremental, etc.). Adic Adicio iona nalm lmen ente te una una meto metodo dolo logí gía a debe deberí ría a defi defini nirr con con prec precis isión ión los los artef artefac acto tos, s, role roless y acti activi vida dade dess invo involu lucra crado dos, s, junt junto o con con prác prácti tica cass y técnic técnicas as recome recomenda ndadas das,, guías guías de adapta adaptació ción n de la metodo metodolog logía ía al proyecto, guías para uso de herramientas de apoyo, etc. Habitualmente se utiliza el término “método” para referirse a técnicas, notaciones y guías asociadas, que son aplicables a una (o algunas) actividades del proc proces eso o de desa desarr rrol ollo lo,, por por ejemp ejemplo lo,, suel suele e habl hablar arse se de méto método doss de análisis y/o diseño. La comp compar arac ació ión n y/o y/o clas clasif ifica icació ción n de meto metodo dolo logí gías as no es una una tare tarea a sencilla debido a la diversidad de propuestas y diferencias en el grado de detalle, información disponible y alcance de cada una de ellas. A grandes rasgos, si tomamos como criterio las notaciones utilizadas para especificar artefactos producidos en actividades de análisis y diseño, pode podemo moss clas clasifi ifica carr las las meto metodo dolo logí gías as en dos dos grupo grupos: s: Meto Metodo dolo logí gías as Estruc Estructura turada dass y Metodo Metodolog logías ías Orienta Orientadas das a Objeto Objetos. s. Por otra otra parte, parte, consid considera erando ndo su filoso filosofía fía de desarr desarrollo ollo,, aquell aquellas as metodo metodolog logías ías con mayor énfasis en la plan lanifi ificación y control del proyecto, en especificación precisa de requisitos y modelado, reciben el apelativo de Met Metodol odolo ogía gías Trad radicio iciona nale less (o peyo peyora rati tiva vam ment ente den denomin ominad ada a Met Metodol odolo ogía gías Pesad esadas as,, o Peso eso Pesa esado) do). Otra Otrass meto metodo dolo logí gía as, deno denomi mina nada dass Metod etodol olog ogía íass Ágil Ágiles es,, está están n más más orie orient nta adas das a la generación de código con ciclos muy cortos de desarrollo, se dirigen a equipos de desarrollo pequeños, hacen especial hincapié en aspectos humanos asociados al trabajo en equipo e involucran activamente al cliente en el proceso. A continuación se revisan brevemente cada una de estas categorías de metodologías. 2.3.1. Metodologías estructuradas Los Los método métodoss estruc estructur turado adoss comenz comenzaro aron n a desarr desarroll ollarse arse a
fines de los 70’s con la Programación Estructurada, luego a mediados de los 70’s aparecieron técnicas para el Diseño (por ejemplo: el diagrama de Estructura) primero prime ro y posteriormente para el Análisis (por ejemplo: Diagramas de Flujo de Datos). Esta Estass meto metodo dolo logí gías as son son parti particu cula larm rmen ente te apro apropi piad adas as en proyectos que utilizan para la implementación lenguajes de 3ra y 4ta generación. Ejemplos los de metodolog logías estructurad radas de ámbito 2 gubernam gubernamental: ental: MERISE MERISE (Francia (Francia), ), MÉTRICA MÉTRICA3 (España), 4 SSADM (Reino Unido). Ejemplos de propuestas de métodos estructurados en el ámbito académico: Gane & Sarson 5, Ward & Mellor6, Yourdon & DeMarco 7 e Information Engineering 8. 2.3.2. Metodologías orientadas a objetos Su hist histor oria ia va unid unida a a la evol evoluc ució ión n de los los leng lengua uaje jess de programación orientada a objeto, los más representativos: a fines de los 60’s SIMULA, a fines de los 70’s Smalltalk-80, la primera versión de C++ por Bjarne Stroustrup en 1981 y actualmen actualmente te Java9 o C# de Microsoft. A fines de los 80’s comenz comenzar aron on a consol consolida idarse rse alguno algunoss método métodoss Orienta Orientadas das a Objeto. En 1995 Booch y Rumbaugh proponen el Método Unificado con la ambiciosa idea de conseguir una unificación de sus métodos y notaciones, que posteriormente se reorienta a un objetivo más modesto, para dar lugar al Unified Modeling Langu Language age (UML) (UML)10, la notación OO más popular en la actualidad. Algunos métodos OO con notaciones predecesoras de UML son: OOAD (Booch), OOSE (Jacobson), Coad & Yourdon, Yourdon, Shaler & Mellor y OMT (Rumbaugh). (Rumbaugh). Alguna Algunass metodo metodolog logías ías orienta orientadas das a objeto objetoss que utiliza utilizan n la 11 notación UML son: Rational Unified Process (RUP) , OPEN12, MÉTRICA (que también soporta la notación estructurada). 2.3.3. Metodologías tradicionales (no ágiles) Las metodologías no ágiles son aquellas que están guiadas por por una una fuer fuerte te plan planifi ifica caci ción ón dura durant nte e todo todo el proc proceso eso de desar desarro rollo llo;; llamad llamadas as tambi también én metodo metodolog logías ías tradic tradicion ionale aless o 2 3 4 5 6 7 8 9 10 11 12
http://perso.club-internet.fr/brouardf/SGBDRmerise.htm (7.5.2002) http://perso.club-internet.fr/brouardf/SGBDRmerise.htm(7.5.2002) http://www.map.es/csi/metrica3/(7.5.2003) http://www.map.es/csi/metrica3/ (7.5.2003) http://www.comp.glam.ac.uk/pages/sta http://www .comp.glam.ac.uk/pages/staff/tdhutchings/chapter4.html ff/tdhutchings/chapter4.html (7.5.2003) http://portal.newman.wa.edu.au/technology/12infsys/html/dfdnotes.doc(29.8.2003) http://portal.newman.wa.edu.au/technology/12infsys/html/dfdnotes.doc (29.8.2003) http://www.yourdon.com/books/coolbooks/notes/wardmellor.html (29.8.2003) http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?Y http://wombat.doc.ic.ac .uk/foldoc/foldoc.cgi?Yourdon%2FDem ourdon%2FDemarco arco (29.8.2003) http://gantthead.com/Gantthead/process http://gantthead.com/Ga ntthead/process/processMain/ /processMain/1,1289,2-1 1,1289,2-12009-2,00 2009-2,00.html .html (29.8.2003) http://java.sun.com/ (7.5.2003) http://www.uml.org/ (7.5.2003) http://www.rational.com/product http://www .rational.com/products/rup/index.jsp s/rup/index.jsp (7.5.2003) http://www.open.org.au/ (17.9.2003)
clásicas, donde se realiza una intensa etapa de análisis y diseño antes de la construcción del sistema. Todas las propuestas metodológicas antes indicadas pueden considerars considerarse e como metodologías metodologías tradicional tradicionales. es. Aunque Aunque en el caso particular de RUP, por el especial énfasis que presenta en cuanto a su adaptación a las condiciones del proyecto (medi (mediant ante e su config configura uració ción n previ previa a a aplica aplicarse rse), ), realiz realizand ando o una configuración adecuada, podría considerarse Ágil. 2.3.4. Metodologías ágiles Un proc proces eso o es ágil ágil cuan cuando do el desa desarr rrol ollo lo de sof softwar tware e es (entrega egass pequeñ pequeñas as de softwa software re,, con ciclos ciclos incremental (entr rápidos), cooperativo (clien (cliente te y desarr desarroll ollado adore ress trabaj trabajan an jun junto toss cons consta tant ntem emen ente te con con una una cerc cercan ana a comu comunic nicac ació ión) n),, (el méto método do en sí mism mismo o es fáci fácill de apr aprende enderr y sencillo (el modificar, bien documentado), y adaptable (permite realizar cambios de último momento) [11]. Entre las metodologías ágiles identificadas en [11]: Extreme Programming Programming [6]. Scrum ([12], [13]). Familia de Metodologías Crystal [14]. Feature Feature Driven Development [15]. Proceso Unificado Rational, una configuración ágil ([16]). Dyna Dynami micc Syst System emss De Deve velo lopm pmen entt Meth Method od [17]. Adaptive Software Development [18]. Open Source Software Development [19]. •
•
•
•
•
•
•
•
2.3.4.1. Programación extrema La progra gramación extrema se difer ferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requ requis isit itos os sobr sobre e la marc marcha ha son son un aspe aspect cto o natu natura ral, l, inevita itable e inclus luso desea seable del desarrollo de proy proyec ecto tos. s. Cree Creen n que que ser ser capa capazz de adap adapta tars rse e a los los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que inte intent ntar ar defi defini nirr todo todoss los los requ requisi isito toss al comi comien enzo zo del del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.
Características13 •
Desarrollo iterativo e incremental inc remental
•
Pruebas unitarias continuas
•
Programación en parejas
•
integración del equipo de programación con el cliente
•
Corrección de todos los errores errores
•
Refactorización del código
•
Propiedad del código compartida
•
Simplicidad en el código
2.3.4.2. Scrum Scrum es un proceso de desarrollo de software iterativo e incr increm emen enta tall util utiliz izad ado o comú comúnm nmen ente te en ento entorn rnos os basa basad do en la met metodol odolog ogía ía Agil Agile e de desa desarr rrol ollo lo de software. Scrum es un proceso marco que incluye un conjunto de prácticas y roles predefinidos. Los roles principales en Scrum son el ScrumMaster, que mantiene los procesos y trabaja de forma similar al director de proyecto, el Prod Produc uctO tOwn wner er,, que que repr epresen esenta ta a los los stak stakeh ehol olde ders rs (clientes externos o internos), y el Team que incluye a los desarrolladores. Durante cada sprint, un periodo entre 15 y 30 días (la longitud es definida por el equipo), el equipo crea un incre incremen mento to de softwa software re potenc potencial ialmen mente te entre entregab gable le (utiliz (utilizabl able). e). El conjun conjunto to de caract caracterís erístic ticas as que forma forma parte de cada sprint viene del product backlog, que es un conjunto de requisitos de alto nivel priorizados que dan dan form forma a al trab trabaj ajo o a reali realiza zarr. Los Los elem elemen ento toss del del back backlog log que que form forman an part parte e del del sprin sprintt se dete determ rmin inan an durant durante e la reuni reunión ón de sprint sprint planni planning. ng. Durant Durante e esta esta reun reunió ión, n, el Prod Produc uctt Owne Ownerr info inform rma a al equi equipo po de los los elem eleme ento ntos en el prod produc uctt bac backlog klog que quie quierre ver completados. El equipo entonces determina la cantidad de ese trabajo que puede comprometerse a completar durante el siguiente sprint.[4] Durante el sprint, nadie puede cambiar el sprint backlog, lo que significa que los requisitos están congelados durante el sprint. Exis Existe ten n vari varias as impl implem emen enta tacio cione ness de sist sistem emas as para para gestionar el proceso de Scrum, que van desde notas amar amaril illa lass "pos "postt-it it"" y pizar izarra rass hasta asta paqu aquetes etes de software. Una de las mayores ventajas de Scrum es que es muy fácil de aprender, y requiere muy poco esfuerzo 13
http://es.wikipedia.org/wiki/Programaci% http://es.wikipedia.or g/wiki/Programaci%C3%B3n_Extr C3%B3n_Extrema ema
para comenzarse a utilizar. 2.3.4.3. Proceso Unificado de Rational Es un proceso de desarrollo de software y junto con el Lengu Lenguaje aje Unific Unificado ado de Modela Modelado do UML, UML, consti constituy tuye e la metodo metodolog logía ía estánd estándar ar más utiliz utilizada ada para para el análisi análisis, s, implementación ión y doc documentación de sistemas orientados a objetos. El RUP no es un sist siste ema con pasos firmemente esta establ blec ecid ido os, sin sino un conj conju unto nto de metod etodo olog logías ías adaptables al contexto y necesidades de cada organización. Tam Tambi bién én se conoc onoce e por por este este nombr ombre e al sof softwar ware desarrollado por Rational, hoy propiedad de IBM, el cual incluye información entrelazada de diversos artefactos y desc descri ripc pcio ione ness de las las dive divers rsas as acti activi vida dade des. s. Está Está incluido en el Rational Method Composer (RMC), que permite la personalización de acuerdo a necesidades. 2.3.4.4. Métrica V314 La meto metod dolog ología ía MÉTRI ÉTRIC CA Versi ersión ón 3 ofrec frece e a las las Organizaciones un instrumento útil para la sistematización de las actividades que dan soporte al ciclo de vida del software dentro del marco que permite alcanzar los siguientes objetivos: •
•
•
•
14
Propo Proporc rcion ionar ar o definir definir Sistema Sistemass de Infor Informac mación ión que ayuden a conseguir los fines de la Organización mediante la definición de un marco estratégico para el desarrollo de los mismos. Dotar Dotar a la Organ Organiza izació ción n de produc productos tos softwa software re que satisfagan las necesidades de los usuarios dand dando o una una mayo mayorr impo import rtan anci cia a al anál anális isis is de requisitos. Mejorar la productividad de los departamentos de Sistemas y Tecnologías de la Información y las Comunicacion iones, permitiendo una mayor capacidad de adaptación a los cambios y teniendo en cuenta la reutilización en la medida de lo posible. Facilitar la comunicación y entendimiento entre los distinto distintoss partici participan pantes tes en la produ producci cción ón de software a lo largo del ciclo de vida del proyecto, teniendo en cuenta su papel y responsabilidad, así como las necesidades necesidades de todos y cada uno de ellos.
http://www.csi.map.es/csi/metric http://www .csi.map.es/csi/metrica3/introduccion.pdf a3/introduccion.pdf
Facilitar la operación, mantenimiento y uso de los productos software obtenidos. Los Los proc proces esos os de la estr estruc uctur tura a prin princi cipa pall de MÉTRI MÉTRICA CA Versión 3 son los siguientes: PLANIFICACIÓN DE SISTEMAS DE INFORMACIÓN. •
•
•
DESARROLLO DE SISTEMAS DE INFORMACIÓN.
MANTENIMIENTO DE SISTEMAS DE INFORMACIÓN. Y defi defin ne el proc proces eso o de desa desarrrollo ollo de sist sistem emas as de información en: ESTUDIO DE VIABILIDAD DEL SISTEMA (EVS). •
•
•
ANÁLISIS DEL SISTEMA DE INFORMACIÓN (ASI).
•
DISEÑO DEL SISTEMA DE INFORMACIÓN (DSI).
•
•
CONSTRUCCIÓN DEL SISTEMA DE INFORMACIÓN (CSI). IMPLANTACIÓN Y ACEPTACIÓN DEL SISTEMA (IAS).
2.3.4.5. Open Source Development Software15 Open Source es software desarrollado con la falta de coordinación, donde los programadores que colaboran libre libreme ment nte, e, utili utiliza zand ndo o libre libreme ment nte e el códi código go fuen fuente te distribuido y la infraestructura de comunicaciones de Internet. El código abierto se basa en la filosofía del software libre. Sin embargo, el código abierto extiende esta ideología ligeramente para presentar un enfoque más comercial que incluye tanto un modelo de negocio y metodología de desarrollo. La cate catedr dral al y el baza bazarr es la desc descri ripc pció ión n cita citada da con con mayo mayorr frec frecue uenc ncia ia al ser ser relac elacio iona nada da como como una una de desa desarr rrol ollo lo,, sin sin emba embarg rgo, o, aunq aunque ue el docu docume ment nto o se iden identif tific ican an much muchos os de los los meca mecani nism smos os de éxito éxito de desarrollo de código abierto, no exponer la dinámica. Exis Existe ten n críti crítica cass sobr sobre e ciert ciertos os aspe aspect ctos os que que sigu siguen en siendo ambiguas, lo que sugiere que el documento no describe el proceso proceso de desarrollo de código abierto.
15
http://chinese-school.netfirms.com/compute http://chinese-s chool.netfirms.com/computer-a r-article-open-source.html rticle-open-source.html
III. METODOLOGÍAS DE CONTROL DE CALIDAD DEL SOTWARE La obte obtenc nció ión n de un soft softwa ware re con con cali calida dad d impl implic ica a la util utiliz izac ació ión n de meto metodo dolo logí gías as o procedimientos estándares para el análisis, diseño, programación y prueba del software que permi permitan tan unifor uniformar mar la filoso filosofía fía de trabaj trabajo, o, en aras aras de lograr lograr una mayor mayor confia confiabil bilida idad, d, mantenibilidad mantenibilidad y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software. La política política establec establecida ida debe estar sustentada sustentada sobre sobre tres principi principios os básicos: básicos: tecnológ tecnológico, ico, administrativo administrativo y ergonómico. ergonómico. ●
El principio tecnológico define las técnicas a utilizar en el proceso de desarrollo del software.
●
El princi principio pio admini administr strati ativo vo contem contempla pla las funcio funciones nes de planif planifica icació ción n y contro controll del desarrollo del software, así como la organización organización del ambiente o centro de ingeniería de software.
●
El principio ergonómico define la interfaz entre el usuario y el ambiente automatizado. automatizado.
La adopción de una buena política contribuye en gran medida a lograr la calidad del software, pero no la asegura. Para el aseguramiento de la calidad es necesario su control o evaluación.
3.1.¿Como controlar la calidad del software? Para controlar la calidad del software es necesario, ante todo, definir los parámetros, indicadores o criterios de medición, ya que, como bien plantea Tom De Marco, “usted no puede controlar lo que no se puede medir”. Las cualidades para medir la calidad del software son definidas por innumerables autores, los cuales las denominan y agrupan de formas diferentes. Por ejemplo, John Wiley define métricas de calidad y criterios, donde cada métrica se obtiene a partir de combinaciones de los diferentes criterios. La Metodología para la evaluación evaluación de la calidad de los medios de programas de la CIC, de Rusia, define indicadores de calidad estructurados en cuatro niveles jerárquicos: factor, factor, criter criterio, io, métri métrica, ca, eleme elemento nto de evalua evaluació ción, n, donde donde cada cada nivel nivel inferi inferior or contie contiene ne los indicadores que conforman el nivel precedente. Otros autores identifican la calidad con el nive nivell de comp comple lejijida dad d del del softw softwar are e y defi define nen n dos dos cate catego gorí rías as de métr métric icas as:: de complejidad de programa o código, y de complejidad de sistema o estructura. Todos los autores coinciden en que el software posee determinados índices medibles que son las bases para la calidad, el control y el perfeccionamiento perfeccionamiento de la productividad. productividad. Una vez seleccionados los índices de calidad, se debe establecer el proceso de control, que requiere los siguientes pasos: ●
Definir el software que va a ser controlado: clasificación por tipo, esfera de aplicación, complejidad, etc., de acuerdo con los estándares establecidos para el desarrollo del software.
●
Seleccionar una medida que pueda ser aplicada al objeto de control. Para cada clase de software es necesario definir los indicadores indicadores y sus magnitudes.
●
Crear o determinar los métodos de valoración de los indicadores: métodos manuales como cuestionarios o encuestas estándares para la medición de criterios periciales y herramientas automatizadas para medir los criterios de cálculo.
●
Definir las regulaciones organizativas para realizar el control: quiénes participan en el control de la calidad, cuándo se realiza, qué documentos deben ser revisados y elaborados, etc.
3.2.La gestión de la calidad Gestión de la calidad: "Aspectos de la función de gestión que determinan y aplican la política de la calidad, los objetivos y las responsabilidades y que lo realiza con medios tales como la planificación de la calidad, el control de la calidad, la garantía de calidad y la mejora de la calidad". Dentro de la gestión de la calidad se observa: •
•
Gestión de la calidad de software (ISO 9000): Conjunto de actividades de la función general de la dirección que determina la calidad, los objetivos y las responsabilidades y se implanta por medios tales como la planificación de la calidad, el control de la calidad, el aseguramiento (garantía) de la calidad y la mejora de la calidad, en el marco del sistema de calidad Políti Política ca de calidad calidad (ISO (ISO 9000): 9000): Direct Directric rices es y objet objetivo ivoss genera generales les de una organización, relativos a la calidad, tal como se expresan formalmente por la alta dirección.
La gestión de la calidad se aplica normalmente a nivel de empresa. También puede haber una gestión de calidad dentro de la gestión de cada proyecto.
3.3.El aseguramiento de la calidad Ante todo se debe conocer: •
•
Aseg Asegur uram amie ient nto o de la calid calidad ad: "Con "Conju junt nto o de acci accion ones es plan planifific icad adas as y sistemáticas necesarias para proporcionar la confianza adecuada de que un producto o servicio satisfará los requerimientos requerimientos dados sobre calidad". Conjunto nto de activ activida idade dess Asegu segura rami mien ento to de la cali calida dad d de soft softwa war r e: Conju planificadas y sistemáticas necesarias para aportar la confianza en que el producto (software) satisfará los requisitos dados de calidad.
El aseguramiento de calidad del software se diseña para cada aplicación antes de comenzar a desarrollarla. Hay quienes prefieren decir garantía de calidad en vez de aseguramiento. La garantía, puede confundir con garantía de productos, mientras que el aseguramiento aseguramiento pretende dar confianza en que el producto tiene calidad. El aseguramiento de calidad del software está presente en: •
Métodos y herramientas de análisis, diseño, programación y prueba.
•
Inspecciones técnicas formales en todos los pasos del proceso de desarrollo del software. Estrategias de prueba multiescala. Control de la documentación del software y de los cambios realizados.
• • •
• •
Procedimientos para ajustarse a los estándares (y dejar claro cuando se está fuera de ellos). Mecanismos de medida (métricas). Registro de auditorias y realización de informes.
Las actividades para el aseguramiento de calidad del software se detallan en: •
Métricas de software para el control del proyecto. Verificación y validación del software a lo largo del ciclo de vida (Incluye las pruebas y los procesos de revisión e inspección).
•
La gestión de la configuración del software.
•
Algunos métodos del aseguramiento: •
Revisiones técnicas y de gestión (su objetivo es la evaluación).
•
Inspección (su objetivo es la verificación). ¿Estamos construyendo el producto correcto?. Pruebas (su objetivo es la validación). ¿Estamos construyendo el producto correctamente?. Auditorias (su objetivo es la confirmación del cumplimiento).
•
•
3.4.El control de la calidad Se debe conocer: •
Control de calidad: "Conjunto de técnicas y actividades de carácter operativo, utilizadas para verificar los requerimientos relativos a la calidad del producto o servicio".
•
Técnicas as y activi actividad dades es de caráct carácter er Contro Controll de la calidad calidad del softwa software: re: Técnic operativo, utilizadas para verificar los requisitos relativos a la calidad, centradas en mantener bajo control el proceso de desarrollo y eliminar las causas de los defectos en las diferentes fases del ciclo de vida.
El control de la calidad del software está centrado en dos objetivos fundamentales: • •
Mantener bajo control un proceso. Eliminar las causas de los defectos en las diferentes fases del ciclo de vida.
En general, se puede decir que el control de de la calidad del software son las actividades para evaluar la calidad de los productos desarrollados. Las estrategias de trabajo se representan como sigue:
3.5.Modelos de calidad de software 1. CMM
El Modelo de Madurez de Capacidades (CMM) es un modelo de referencia para la aplicación de conceptos de gestión de procesos y de mejora de calidad en el desarrollo desarrollo y mantenimiento mantenimiento de software, software, que deben ser implementadas implementadas por toda organización interesada en desarrollar y mejorar la calidad de sus productos y su productividad. productividad. Este modelo está basado en conceptos de calidad total y de mejoramiento continuo continuo y ha sido desarrolla desarrollado do en el SEI (Software (Software Engineerin Engineering g Institute) Institute) relacionado con Carnegie Mellon University, en Pittsburgh. El CMM se desarrolló como reacción a la crisis del software a principios de los ochenta y financiado por el Departamento de Defensa de los Estados Unidos. Se entiende por proceso el saber como utilizar el conocimiento del personal y la tecno tecnolog logía ía de forma forma eficie eficiente nte para para lograr lograr produ producto ctoss que alta alta calida calidad d que satisfagan las necesidades de los clientes, producidos dentro de costos y plazos aceptables. Un proceso puede considerarse maduro si cumple con los siguientes criterios: ➢
Está Está definido definido: El proces proceso o es claro, claro, sistem sistemáti ático co y sufici suficien entem temen ente te
detallado. Además existe acuerdo entre el personal, la gerencia y los proyectos respecto al proceso que se va a utilizar.
➢
Esta Esta docume documenta ntado do: Esta Esta escrit escrito o en un proced procedimi imient ento o public publicad ado, o,
aprobado y fácilmente accesible. ➢
El personal ha sido entrenado en el proceso: Los ingenieros de software
y la gerencia han recibido cursos y entrenamiento en cada proceso que aplica a su trabajo ➢
Es practicado practicado: El proc proces eso o defi defini nido do debe debe ser ser usad usado o en las las tare tareas as
habituales llevadas a cabo por los proyectos. El entrenamiento y la adaptación del proceso a la realidad de la empresa debieran garantizar su aplicación en la vida real.
➢
Es mantenido: El proceso es revisado regularmente, para asegurarse
que está está adapta adaptado do para para satis satisfac facer er las neces necesida idades des reale realess de los proyectos.
➢
Está Está contro controlado lado: Los Los camb cambio ioss y pues puesta tass al día día del del proc proces eso o son son
revisa revisado dos, s, aprob aprobado adoss y comun comunica icado doss oportu oportunam namen ente te a todos todos los usuarios. ➢
Se verifica: La gerencia mantiene mecanismos para asegurarse de que
todos los proyectos siguen el proceso vigente. ➢
Se valida: Se asegura que el proceso mantiene concordancia con los
requerimientos requerimientos y estándares aplicables. ➢
Se mide: La utilización, los beneficios y el rendimiento resultante del
proceso se miden regularmente. ➢
Puede mejorarse mejorarse: Existen mecanismos y apoyo de la gerencia para
revisar e introducir cambios en el proceso, de manera que se pueda mejorar su eficacia e incorporar nuevas metodologías. metodologías. El CMM se basa principalmente principalmente es dos conceptos conceptos importantes, importantes, el concepto de proceso maduro, definido anteriormente y el concepto de nivel de madurez que es definido como la capacidad de los procesos de ingeniería de software y de administr administración ación de proyectos proyectos usados en una organiza organización ción de desarrol desarrollo lo de software y entendiéndose por maduro el definido anteriormente como proceso.
1. Nivele Niveless de Madure Madurezz de CMM CMM El CMM identifica los niveles de madurez de los procesos siguientes:
Así es como el modelo CMM mide el progreso conforme avanza, en niveles de madurez. Cada nivel tiene un cierto número de áreas de proceso importantes que deben lograrse. Su logro se detecta mediante la satisfacción (o no) de varios metas claras y cuantificables. Con excepción del Nivel 1, cada uno de estos Niveles de Madurez está comp compue uest sto o por por un cier cierto to núme número ro de Área Áreass Clav Claves es de Proc Proces eso, o, conocidas a través de la documentación del CMM por su sigla inglesa: KPA. Cada KPA identifica una agrupación de actividades y prácticas relaci relaciona onadas das,, las cuales cuales cuando cuando son realiz realizad adas as en forma forma colect colectiva iva permiten permiten lograr alcanzar alcanzar las metas metas fundament fundamentales ales del proceso. proceso. Las
KPAs puede eden clas clasif ific ica arse en Organizacional e Ingeniería.
3
tipo tiposs
de proce roceso so::
Gest Gestió ión n,
Las prácticas que deben ser realizadas por cada Area Clave de Proceso está están n orga organi niza zada dass en 5 Cara Caract cter erís ístitica cass Comu Comune nes, s, las las cual cuales es cons constititu tuye yen n prop propie ieda dade dess que que indi indica can n si la impl implem emen enta tatc tció ión n y la institucionalización institucionalización de un proceso clave es efectivo, repetible y duradero. Estas 5 características son: • • • • •
Compromiso de la realización. La capacidad de realización. Las actividades realizadas Las mediciones y el análisis La verificación de la implementación. implementación.
El modelo CMM se formula de una manera genérica. Es independiente de cualqu cualquier ier métod método o (o metod metodolo ología gía)) y de cualqu cualquie ierr ambien ambiente te de tecnología (software o hardware). Los métod métodos os especí específic ficos os usados usados por una una compañ compañía ía o agenci agencia a no impone restricciones específicas en la utilización del SW-CMM, debido a que que sus sus prác práctitica cass se form formul ulan an de form forma a gene genera rall para para que que pued pueda a fácilm fácilment ente e adap adaptar tarse se de maner manera a de satisf satisface acerr las necesi necesidad dades es de ambientes particulares. Este modelo debe interpretarse de acuerdo al tamaño de las compañías o agencias, pero es aplicable en el contexto global. Cualquier entidad que desarrolla o mantiene software, independientemente de su tamaño se beneficiará mejorando su proceso de software aplicando el CMM. Uno de los métodos de evaluación basados en el modelo CMM para el mejoramiento interno de procesos, generalmente conocido como CBAIPI ("CMM ("CMM -Based -Based Appraisal Appraisal for Internal Internal Process Process Improvem Improvement" ent"): ): su principal objetivo es permitir a la empresa la determinación de sus puntos fuertes y necesidades necesidades de mejoramiento, mejoramiento, también permite revisar revisar las prácticas de los proveedores externos, a objeto de que puedan derivar un plan de mejoramiento adecuado a su organización.
1. Nivel Nivel 1: 1: Nive Nivell Inicia Iniciall
Nivel de Inmadurez Es el estado inicial de las empresas que desarrollan software. En este nivel se encuentran todas las empresas que no han logrado implementar las prácticas básicas de gestión de proyectos e ingeniería de software definidas a partir del nivel 2 o superiores. Una empresa está en el nivel caótico cuando sus gerentes y personal afirmen que los proyectos no se pueden planear, planear, que los requerimientos no se pueden tener bajo control, que no esté siempre en condiciones de controlar las versiones de prod produc ucto to,, dond donde e la cali calida dad d sea sea perc percib ibid ida a como como una una buro burocr crac acia ia innecesaria, innecesaria, cuando se acepte que los procesos son una cosa personal, cuando no se pueda verificar ni validar el producto, y sobre todo, cuando sus gerentes y personal vivan bajo condiciones de stress y frustración permanentes. La gerenc gerencia ia ocupa ocupa una parte parte signif significa icativ tiva a de su tiempo tiempo en palia paliar r problemas y enfrentar clientes insatisfechos. Ante una situación de crisis perm perman anen ente te,, se les les hace hace difí difíci cill dest destin inar ar recu recurs rsos os para para defi defini nirr o
documentar procesos, procesos, lo que lleva a un círculo sin salida. Cuando el proyecto se termina, la inversión hecha en desarrollar el proc proces eso o es rara rarame ment nte e reut reutililiz izad ada a en nuev nuevos os proy proyec ecto tos. s. Los Los desarrolladores de software generalmente tienen que trabajar largas horas y paliar problemas en forma cotidiana, lo cual les disminuye su creatividad y productividad netas.
2. Nivel Nivel 2: 2: Nive Nivell Repet Repetibl iblee El proyecto planificado
El nivel 2 o Repetible hace posible la implementación de prácticas mínimas de administración de proyecto, de control de requerimientos, versiones de producto y de proyectos realizados por subcontratistas. El grupo o equipo humano que realizó el proyecto puede aprovechar su expe experi rien enci cia a e inve invers rsió ión n en proc proces esos os para para apli aplica carl rla a en un nuev nuevo o proyecto. Este nivel no garantiza que todos los proyectos dentro de la empresa estén necesariamente al mismo nivel de madurez. Algunos pueden estar todavía en el nivel inicial. Luciano Guerrero [1], en cuya página hemos basado gran parte del trabajo ha visto algunos casos en la práctica y en todos ellos estos proyectos fueron ineficientes con respecto a los de mayor madurez, malgastando el éxito de estos últimos. Eventualmente algunos invertieron los esfuerzos necesarios para ponerse a tono, otros simplemente fueron cerrados con un elevado costo de frustración y descalabro de carreras profesionales. Beneficios de implantar el Nivel 2
El mayor beneficio obtenido de la implementación del nivel 2 por la empresa en la cual se encuentra actualmente [1], es la planificación real realis ista ta de los los proy proyec ecto tos. s. Ante Antess los los cron cronog ogra rama mass de proy proyec ecto to expre expresab saban an más más los deseos deseos de la geren gerencia cia que la realid realidad ad.. Este Este principio (el mismo en la cual se basa la magia) conducía una situación de buscar culpables y generar excusas, produciendo al mismo tiempo frustración y desconfianza entre clientes y empleados actualmente en la empresa, los cronogramas son cada día más confiables, y mejora a medida que se acumula más información en las bases de datos de los proyectos proyectos pasados. pasados. El uso generaliz generalizado ado de métodos métodos de estimación estimación permite al personal del proyecto de justificar plazos y recursos. Aún el "olfato profesional" y la experiencia personal juegan un papel importante en la generación de planes de proyecto, pero ahora son decisiones informadas en vez de simples adivinanzas como en el pasado. Los pasos siguientes
Este nivel todavía permite la proliferación y definición insuficiente de los proc proces esos os de inge ingeni nier ería ía de soft softwa ware re.. Los Los proy proyec ecto toss comp compar arte ten n princi principal palme mente nte sus experi experienc encias ias en mater materia ia de admini administr straci ación ón de proyec proyectos tos,, pero pero sus métod métodos os técnic técnicos os pueden pueden difer diferir ir.. Aún Aún existe existe incomunicación incomunicación entre proyectos, grupos y entre personal y gerencia. Este nivel identifica prácticas de sentido común que son aplicables en todo tipo de organizaciones de desarrollo de software, independientemente de su rubro, tamaño o ambiente de desarrollo. La ausencia de cualquiera de sus prácticas simplemente pone en peligro el éxito de la empresa.
KPAs del Nivel 2 • • • • • •
Gestión de Requisitos Planificación Planificación del proyecto de software Seguimiento y Supervisión del proyecto Gestión de subcontratos de software Garantía de calidad de software Gestión de configuración del software
3. Nivel Nivel 3: El proce proceso so defin definido ido El proceso generalizado en todos los proyectos La empr empres esa a ha defin definid ido o un conj conjunt unto o de proc proces esos os,, metod metodol olog ogías ías y herr herram amie ient ntas as comu comune nes s a todo todos s los los proy proyec ecto tos s inic inicia iado dos s por por la corporación.
El proceso común está suficientemente documentado en una biblioteca accesible a todo los desarrolladores. Todo el personal ha recibido el entrenamiento necesario para entender el proceso estándar. Existen paut pautas as y crit criter erio ioss defi defini nido doss para para adap adapta tarr dich dicho o proc proces eso o a las las necesidades y características propias de cada proyecto. El nivel de definición es detallado y completo. La dependencia (o el riesgo de depender) en individuos irreemplazables es baja. Beneficios de implantar el Nivel 3 del CMM
La base de datos que reúne estadísticas de los proyectos pasados en curso, permite planificar y comparar el rendimiento. Existen mecanismos de comunicación entre proyectos y departamentos, departamentos, lo que garantiza una visión visión común común del del produc producto to y una rápida rápida acció acción n para para enfre enfrenta ntarr los problemas. Según el autor [1], ha conocido unas pocas empresas a este nivel nivel y la cosa que que más le llamo la atenció atención, n, fue la satisfacci satisfacción ón del personal. En empresas de nivel 1 habitualmente se escuchan quejas y acusaciones. A nivel 3 los empleados tienen una alta valoración de los procesos y entienden claramente la manera en que afecta su desempeño habitual. Los gerentes pueden realizar su verdadera función, administrar. El hecho de realizar revisiones tempranas en forma regular mejora visiblemente la calidad de los productos y minimiza las reiteraciones innecesarias. Curiosamente muchas organizaciones de nivel 1 realizan revisiones de pares, pero lo hacen de manera inconsistente y al primer signo de pánico las suspenden. Los pasos siguientes
El nivel 3 ya es un estado avanzado y es percibido por algunos gerentes como un lujo. Si no todas, al menos unas cuantas de sus áreas claves de procesos deben ser implementadas. KPAs del Nivel 3 •
Enfoque en el proceso de la organización
• • • • • •
Definición del proceso de la organización Programa de entrenamiento Gestión integrada del software Ingeniería de software del producto Coordinación entre grupos Revisión de pares
4. Nivel Nivel 4: El El proces proceso o gestion gestionado ado La calidad planificada y confiable
En este nivel la corporación mide la calidad del producto y del proceso de softwa software. re. Ambos, Ambos, produ producto cto y proces proceso, o, son seguid seguidos os en forma forma cuantitativa y se controlan mediante métricas detalladas. La capacidad de rendimie rendimiento nto del proceso proceso es previsibl previsible. e. Las medicion mediciones es permiten permiten detectar cuando las variaciones del rendimiento se salen de los rangos aceptables, de manera que se puedan tomar medidas correctivas para asegurar la calidad. Beneficios de implantar el Nivel 4 del CMM
La empresa es capaz de proponerse metas cuantitativas para la calidad de los productos y de los procesos de software. Es posible medir la productividad y calidad de los procesos de software a través de todo el proyecto. Los proyectos pueden controlar la variación del rendimiento de sus productos y procesos para mantenerla dentro de fronteras cuantitativas aceptables. Es posible discriminar las variaciones significativas en el rendimiento del proceso de la variación (ruido) al azar, particularmente dentro de líneas de productos establecidas. establecidas. Es necesario aclarar que el hecho de contar con un sistema de métricas de software no significa que se esté en el nivel 4. Es una virtual señal de alarma que les dice lo graves que son sus problemas, pero la inmadurez de sus procesos no les permite hacer nada efectivo, excepto tal vez abortar el producto para evitar un daño mayor que puede resultar de distribuirlo a los clientes. Los pasos siguientes Son muy raras las empresas que han decidido implementar este nivel. No son muchos los especialista especialistas s de de procesos procesos que que realmente realmente tengan experiencia práctica, o incluso que entiendan bien las áreas claves de proceso del nivel 4. Son solamente 2 prácticas, pero imposibles de alca alcanz nzar ar si no se ha impl implem ement entado ado firme firmeme mente nte los 2 nive nivele les s de madurez anteriores. KPAs del Nivel 4 • •
Gestión cuantitativa del proceso Gestión de la calidad del software
5. Nivel 5: El mejoram mejoramiento iento permanente permanente
La calidad planificada y confiable
En el Nivel Optimizado, la característica principal es el mejoramiento contin continuo uo del del proces proceso, o, en base base a la reali realimen mentac tación ión cuanti cuantitat tativa iva y al ensayo de ideas y tecnologías innovadoras. innovadoras. Beneficios de implantar el Nivel 5 del CMM La organización entera se aboca al mejoramiento continuo del proceso. La corporación cuenta con los medios para identificar las debilidades y reforzar el proceso, con objeto de prevenir la ocurrencia de defectos. Los datos relativos a la eficacia del proceso de software se usan para anal analiz izar ar el cost coste e y el bene benefifici cio o de usar usar nuev nuevas as tecn tecnol olog ogía íass y de implementar cambios al proceso de software. Los proyectos de software analizan los defectos para determinar sus causas. Los proceso de software se evalúan para prevenir que los defectos conocidos vuelvan a ocurrir, ocurrir, asimismo las lecciones aprendidas son difundidas a otros proyectos. Los pasos siguientes
No existen más de 10 empresas en el mundo que estén a este nivel (no hay ninguna en países hispano-hablantes). Y las pocas que lo han logrado no divulgan sus secretos para mantener su ventaja competitiva. Este nivel es un estado ideal, que probablemente nunca será alcanzado por la mayor mayoría ía de las empre empresas sas produ producto ctoras ras de softwa software. re. Lucian Luciano o Guerrero [1] opina que “es una hermosa utopía, pero inalcanzable en el mundo normal.” KPAs del Nivel 5 • • •
Prevención de defectos Gestión del cambio de tecnología Gestión del cambio del proceso
2. La fami famili liaa CMM CMM Hay toda una familia de modelos de madurez (CMM’s), aplicables a otros dominios relacionados con el software. SW-CMM : El modelo CMM CMM lo aplicamos aplicamos específicamente específicamente al ámbito del
software . SE- CMM : que significa Systems Engineering, el cual cubre el ámbito de
la Ingeniería de Sistemas. P-CMM: que significa Personal CMM, el cual cubre la administración de personal. SA-CMM : que significa Software Acquisition, el cual cubre las prácticas de la adquisición adquisición de productos productos de software. IPD-CMM : que significa Integrated Product Development, el cual cubre el desarrollo de la integración del producto. A continuación pasamos a detallar los cinco niveles de madurez de que consta CMM.
2. ISO ISO / IEC IEC TR TR 155 15504 04
Mode Modelo lo para para la mejo mejora ra y eval evalua uaci ción ón de los los proc proces esos os de desa desarr rrol ollo lo y mantenimiento mantenimiento de sistemas y productos de software. Origen En enero de 1993 la comisión ISO/IEC JTC1 aprobó un programa de trabajo para el desarrollo de un modelo que fuera la base de un futuro estándar internacional para la evaluación de los procesos del ciclo de vida del software. Este Este trab trabaj ajo o reci recibi bió ó el nomb nombre re de proy proyec ecto to SPIC SPICE E (Sof (Softw twar are e Proc Proces esss Impr Improv ovem emen entt and and Capa Capabi bilility ty dEte dEterm rmin inat atio ion) n),, y en juni junio o de 1995 1995,, con con la publi publicac cación ión de su primer primer borrad borrador or,, desde desde ISO fueron fueron invitadas invitadas diferente diferentess organizaciones organizaciones para aplicarlo y valorar sus resultados. En 1998, pasada la fase de proyecto, y tras las primeras evaluaciones, el trabajo pasó a la fase de informe técnico con la denominación ISO/IEC TR 15504. La instrucción técnica consta de 9 apartados, recogidos en volúmenes indep independ endien ientes tes que se han han ido public publican ando do como como redacc redacción ión defini definitiv tiva a del estándar internacional ISO/IEC 15504 durante el periodo 2003 - 2005. Características •
•
•
•
Establece un marco para métodos de evaluación, no es un método o modelo en sí. Comp Comprrend ende: evalu valua ació ción de proce roceso sos, s, mejo mejora ra de proce roceso sos, s, determinación de capacidad. ISO/IEC C 12207 12207 que Está Está alin alinea eado do con con el está estánd ndar ar ISO/IE que defi define ne los los procesos del ciclo de vida del desarrollo, mantenimiento y operación de los sistemas de software. Equivalencia y compatibilidad con CMMI . ISO forma parte del panel elaborad elaborador or del modelo modelo CMMI y SEI mantiene mantiene la compatib compatibilid ilidad ad y equivalencia de ésta última con 15504.
Dimensiones Tiene una arquitectura basada en dos dimensiones: de proceso y de capacidad de proceso. Desde la dimensión de proceso agrupa a los procesos en tres grupos que contienen cinco categorías de acuerdo al tipo de actividad: Procesos primarios • •
CUS: Cliente - Proveedor ENG: Ingeniería
Procesos de soporte •
SUP: Soporte
Procesos organizacionales • •
MAN: Gestión ORG: Organización
Para todos los procesos se definen los componentes: Identificador, Nombre, Tipo, Propósito, Salidas y Notas. Desde la dimensión de capacidad el modelo define una escala de 6 niveles para determinar la capacidad de cualquier proceso: • • • •
Nivel 0: Incompleto Nivel 1: Realizado Nivel 2: Gestionado Nivel 3: Establecido
• •
Nivel 4: Predecible Nivel 5: En optimización
3.5.3 METRICA3 La metodología MÉTRICA Versión 3 ofrece a las Organizaciones un instrumento útil para la sistematización de las actividades que dan soporte al ciclo de vida del software dentro del marco que permite alcanzar los siguientes objetivos: ●
●
●
●
●
●
Proporcionar o definir Sistemas de Información que ayuden a conseguir los fines de la Organización mediante la definición de un marco estratégico para el desarrollo de los mismos. Dotar Dotar a la Organi Organizac zación ión de produc productos tos softwa software re que satisf satisfaga agan n las necesidades de los usuarios dando una mayor importancia al análisis de requisitos. Mejo Mejora rarr la prod produc uctitivi vida dad d de los los depa depart rtam amen ento toss de Sist Sistem emas as y Tecnologías de la Información y las Comunicaciones, permitiendo una mayor capacidad de adaptación a los cambios y teniendo en cuenta la reutilización en la medida de lo posible. Facilitar la comunicación y entendimiento entendimiento entre los distintos participantes en la producción de software a lo largo del ciclo de vida del proyecto, teni tenien endo do en cuen cuenta ta su pape papell y resp respon onsa sabi bililida dad, d, así así como como las las necesidades de todos y cada uno de ellos. Facilitar la operación, mantenimiento y uso de los productos software obtenidos.
En una única estructura la metodología MÉTRICA Versión 3 cubre distintos tipos de desarrollo: estructurado y orientado a objetos, facilitando a través de interfaces la realización de los procesos de apoyo u organizativos: Gestión de Proyectos, Gestión de Configuración, Aseguramiento de Calidad y Seguridad. La automatización de las actividades propuestas en la estructura de MÉTRICA Versión 3 es posible ya que sus técnicas están soportadas por una amplia variedad de herramientas de ayuda al desarrollo.
3.5.3.1 PROCESOS PRINCIPALES PRINCIPALES DE MÉTRICA MÉTRICA Versión 3 tiene un enfoque orientado al proceso, ya que la tendencia general en los estándares se encamina en este sentido y por ello, como ya se ha dicho, se ha enmarcado dentro de la norma ISO 12.207, que se centra en la clasificación y definición de los procesos del ciclo de vida del software. Como punto de partida y atendiendo a dicha norma, MÉTRICA Versión 3 cubre el Proc Proces eso o de Desa Desarr rrol ollo lo y el Proc Proces eso o de Mant Manten enim imie ient nto o de Sist Sistem emas as de Información. MÉTRICA Versión 3 ha sido concebida para abarcar el desarrollo completo de Sistemas de Información sea cual sea su complejidad y magnitud, por lo cual su estructura responde a desarrollos máximos y deberá adaptarse y dimensionarse dimensionarse en cada cada moment momento o de acuerd acuerdo o a las caract caracter eríst ística icass parti particul culare aress de cada cada proyecto. La metodología descompone cada uno de los procesos en actividades, y éstas a su vez vez en tare tareas as.. Para Para cada cada tare tarea a se desc descri ribe be su cont conten enid ido o haci hacien endo do refe refere renc ncia ia a sus sus prin princi cipa pale less acci accion ones es,, prod produc ucto tos, s, técn técnic icas as,, prác práctitica cass y participantes. El orden asignado a las actividades no debe interpretarse como secuencia en su realización, realización, ya que éstas pueden realizare en orden diferente a su numeración o bien en paralelo, como se muestra en los gráficos de cada proceso. Sin embargo, no se dará por acabado un proceso hasta no haber finalizado todas las actividades del mismo determinadas determinadas al inicio del proyecto. Así los procesos de la estructura principal de MÉTRICA Versión 3 son los
siguientes: ● ● ●
PLANIFICACIÓN DE SISTEMAS DE INFORMACIÓN. DESARROLLO DE SISTEMAS DE INFORMACIÓN. MANTENIMIENTO DE SISTEMAS DE INFORMACIÓN.
El enfoque del Proceso de Planificación de Sistemas de Información, al no estar dentro del ámbito de la norma ISO 12.207 de Procesos del Ciclo de Vida de Software, se ha determinado a partir del estudio de los últimos avances en este camp campo, o, la alta alta comp compet etititiv ivid idad ad y el camb cambio io a que que están stán some sometitida dass las las orga organi niza zaci cion ones es.. El ento entorn rno o de alta alta comp compet etititiv ivid idad ad y camb cambio io en el que que actualmente se encuentran las organizaciones, hace cada vez más crítico el requerimiento de disponer de los sistemas y las tecnologías de la información con flexibilidad para adaptarse a las nuevas exigencias, con la velocidad que demanda dicho entorno. La existencia de tecnología de reciente aparición, permite disponer de sistemas que que apoy apoyan an la toma toma de deci decisi sion ones es a part partir ir de gran grande dess volú volúme mene ness de infor informac mación ión proced procedent entes es de los sistem sistemas as de gestió gestión n e integ integrad rados os en una plata platafor forma ma corpor corporati ativa. va. MÉTRI MÉTRICA CA Versión ersión 3 ayuda ayuda en la plani planific ficaci ación ón de sistemas de información facilitando una visión general necesaria para posibilitar dicha integración y un modelo de información global de la organización. En cuanto al Proceso de Desarrollo de Sistemas de Información, para facilitar la comprensión y dada su amplitud y complejidad se ha subdividido en cinco procesos: ● ● ● ● ●
ESTUDIO DE VIABILIDAD DEL SISTEMA (EVS). ANÁLISIS DEL SISTEMA DE INFORMACIÓN (ASI). DISEÑO DEL SISTEMA DE INFORMACIÓN (DSI). CONSTRUCCIÓN DEL SISTEMA DE INFORMACIÓN (CSI). IMPLANTACIÓN Y ACEPTACIÓN ACEPTACIÓN DEL D EL SISTEMA (IAS).
La necesidad de acortar el ciclo de desarrollo de los sistemas de información ha orientado a muchas organizaciones a la elección de productos software del mercado cuya adaptación a sus requerimientos suponía un esfuerzo bastante infe inferi rior or al de un desa desarr rrol ollo lo a medi medida da,, por por no habl hablar ar de los los cost costes es de mantenimiento. Esta decisión, que es estratégica en muchas ocasiones para una una organ organiza izació ción, n, debe debe tomars tomarse e con las debid debidas as precau precaucio cione nes, s, y es una realidad que está cambiando el escenario del desarrollo del software. Otra consec consecue uenci ncia a de lo anteri anterior or es la prácti práctica, ca, cada cada vez más habit habitual ual en las organizaciones, de la contratación de servicios externos en relación con los sistemas y tecnologías de la información y las comunicaciones, llevando a la necesidad de una buena gestión y control de dichos servicios externos y del riesgo implícito en todo ello, para que sus resultados supongan un beneficio para la organización. MÉTRICA Versión 3 facilita la toma de decisión y la realización de todas las tareas que comprende el desarrollo de un sistema de información. Desde el enfoque de la norma ISO 12.207, el Proceso de Mantenimiento de Sistemas de Información comprende actividades y tareas de modificación o retirada de todos los componentes de un sistema de información (hardware, software, software de base, operaciones manuales, redes, etc.). Este marco de actuación no es el objetivo de MÉTRICA Versión 3, ya que esta metodología está dirigida principalmente al proceso de desarrollo del software. Por lo tanto, MÉTRI MÉTRICA CA Versión ersión 3 refle refleja ja los aspect aspectos os del del Mante Mantenim nimien iento, to, corre correcti ctivo vo y evolutivo, que tienen relación con el Proceso de Desarrollo.
3.5.3.2 Interfaz Aseguramiento de la Calidad El objetivo de la interfaz de Aseguramiento de la Calidad de MÉTRICA Versión 3 es proporcionar un marco común de referencia para la definición y puesta en march marcha a de plane planess especí específic ficos os de asegur aseguram amien iento to de calida calidad d aplica aplicable bless a proyectos concretos. Si en la organización ya existe un sistema de calidad,
dichos planes deberán ser coherentes con el mismo, completándolo en los aspectos no contemplados relativos a normas particulares del cliente, usuario o sistema concreto. La calida calidad d se define define como como “grad “grado o en que que un conjun conjunto to de caract caracterí erísti sticas cas inherentes cumple con unos requisitos” [ISO 9000:2000]. El Aseguramiento de la Calidad pretende dar confianza en que el producto reune las características necesarias para satisfacer todos los requisitos del Sistema de Información. Por tanto, para asegurar la calidad de los productos resultantes el equipo de calidad deberá realizar un conjunto de actividades que servirán para: Reducir, eliminar y lo más importante, prevenir las deficiencias de ● calidad de los productos a obtener. Alca Alcanz nzar ar una una razo razona nabl ble e conf confia ianz nza a en que que las las pres presta taci cion ones es y ● servicios esperados por el cliente o el usuario queden satisfechas. Para Para cons conseg egui uirr esto estoss obje objetitivo vos, s, es nece necesa sari rio o desa desarr rrol olla larr un plan plan de aseguramiento aseguramiento de calidad específico que se aplicará durante la planificación del proyecto de acuerdo a la estrategia de desarrollo adoptada en la gestión del proyecto. En el plan de aseguramiento de calidad se reflejan las actividades de calidad a realizar (normales o extraordinarias), los estándares a aplicar, los productos a revisar, los procedimientos a seguir en la obtención de los distintos productos durante el desarrollo en MÉTRICA Versión 3 y la normativa para info inform rmar ar de los los defe defect ctos os dete detect ctad ados os a sus sus resp respon onsa sabl bles es y real realiz izar ar el seguimiento seguimiento de los mismos hasta su corrección. El grupo de aseguramiento de calidad participa en la revisión de los productos seleccionados para determinar si son conformes o no a los procedimientos, normas o criterios especificados, especificados, siendo totalmente independiente independiente del equipo de desarrollo. Las actividades a realizar por el grupo de aseguramiento de calidad vienen gobernadas por el plan. Sus funciones están dirigidas a: Identificar las posibles desviaciones en los estándares aplicados, ● así como en los requisitos y procedimientos procedimientos especificados. Comprobar que se han llevado a cabo las medidas preventivas o ● correctoras necesarias. Las revisiones son una de las actividades más importantes del aseguramiento de la calidad, debido a que permiten eliminar defectos lo más pronto posible, cuand cuando o son menos menos costos costosos os de corre corregir gir.. Ademá Ademáss existe existen n proce procedim dimien ientos tos extraordinarios, extraordinarios, como las auditorías, aplicables en desarrollos singulares y en el transcurso de las cuales se revisarán tanto las actividades de desarrollo como las propias de aseguramiento de calidad. La detección anticipada de errores evita el que se propaguen a los restantes procesos de desarrollo, reduciendo substa substanci ncialm alment ente e el esfuer esfuerzo zo invert invertido ido en los mismos mismos.. En este este sentid sentido o es import importan ante te destac destacar ar que el establ estableci ecimie miento nto del plan plan de asegur asegurami amient ento o de calidad comienza en el Estudio de Viabilidad del Sistema y se aplica a lo largo de todo todo el desarr desarroll ollo, o, en los los proces procesos os de Análi Análisis sis,, Diseño Diseño,, Constr Construcc ucción ión,, Implantación y Aceptación Aceptación del Sistema y en su posterior Mantenimiento.
3.5.3.2.1 ESTUDIO DE VIABILIDAD DEL SISTEMA En este proceso el grupo de aseguramiento de calidad inicia el estudio de los sistemas de información definidos definidos en cada alternativa de solución propuesta, con el fin de identificar las condiciones en que se van a desarrollar y/o a implantar i mplantar,, así como las características que deben reunir en cuanto a operación, mantenibilidad y portabilidad, para satisfacer las necesidades necesidades del cliente y los requisitos especificados. especificados. La necesidad de establecer un plan específico de aseguramiento de calidad y el grado de intensidad con el que se aplican las actuaciones de calidad, vendrá determinada en función de este estudio y de los riesgos analizados por el equipo de desarrollo. Una vez tomada la decisión de llevar a cabo un plan de aseguramiento de calidad en las alternativas propuestas, se define el contenido de
dicho plan, de acuerdo a los estándares de calidad, si existen en la organización, sino se recomienda acudir a los estándares UNE-EN-ISO 9001:2000 Sistemas de Gestión de la Calidad – Requisitos y UNE-ENISO 9000:2000 Sistemas de Gestión de la Calidad – Fundamentos y vocabulario. El plan de aseguramiento de calidad debe cubrir todas las necesidades necesidades establecidas de modo que, aquellas normas impuestas por los usuarios o clientes que difieran de las existentes en el sistema de calidad, deben quedar también reflejadas en el plan. El siguiente esquema muestra la correspondencia entre las actividades del proceso EVS y las de la interfaz de Aseguramiento de la Calidad.
ACTIVIDAD EVS-CAL 1: IDENTIFICACIÓN DE LAS PROPIEDADES DE CALIDAD PARA EL SISTEMA
ACTI ACTIVI VIDA DAD D EVS– EVS–CA CAL L 2: EST ESTABLE ABLECI CIMI MIEN ENT TO DEL DEL PLAN PLAN DE ASEGURAMIENTO DE CALIDAD
ACTIVIDAD EVS–CAL 3: ADECUACIÓN DEL ASEGURAMIENTO DE CALIDAD A LA SOLUCIÓN
PLAN
DE
3.5.3.2.2 ANÁLISIS DEL SISTEMA DE INFORMACIÓN En este proceso se define de forma detallada el plan de aseguramiento de calidad para un sistema de información, a partir de la especificación resultante del proceso Estudio de Viabilidad del Sistema (EVS). También se detallan los estándares y normas a cumplir, las revisiones a llevar a cabo y sobre qué productos, así como los procedimientos y mecan mecanism ismos os necesa necesario rioss para para resol resolver ver los proble problemas mas que surjan surjan,, definiend definiendo o las acciones acciones preventivas preventivas o correcto correctoras ras para su posterior posterior corrección e identificando quiénes son los responsables en cada caso. En el proceso Análisis del Sistema de Información (ASI), el grupo de aseguramiento de calidad se implica directamente en la revisión de los siguientes productos: Catálogo de requisitos, comprobando hasta que punto se han ● definido de una forma que facilite su comprensión y seguimiento. Mode Modelo loss resu resultltan ante tess del del anál anális isis is,, aseg asegur uran ando do que que se han han ● verificado y validado y que se ha realizado la trazabilidad de requisitos. Plan de pruebas, comprobando que se han tenido en cuenta en ● su defi efinici nició ón los los crite riterrios ios esta stableci lecid dos en el plan lan de aseguramiento de calidad, con el fin de facilitar en los procesos Diseño Diseño del Sistem Sistema a de Inform Informaci ación ón (DSI), (DSI), Constr Construcc ucción ión del Sistema de Información (CSI) e Implantación y Aceptación del Sistema (IAS) la revisión de los distintos niveles de prueba.
ACTIV ACTIVIDA IDAD D ASI-C ASI-CAL AL 1: ESPE ESPECIF CIFICA ICACIÓ CIÓN N INICIA INICIAL L DEL PLAN PLAN DE ASEGURAMIENTO DE CALIDAD
ACTIVIDAD ASI–CAL 2: ESPECIFICACIÓN DETALLADA DEL PLAN DE ASEGURAMIENTO DE CALIDAD
ACTIVIDAD ASI-CAL 3: REVISIÓN DEL ANÁLISIS DE CONSISTENCIA
ACTIVIDAD ASI-CAL 4: REVISIÓN DEL PLAN DE PRUEBAS
Actividad ASI-CAL 5: Registro de la Aprobación del Análisis del Sistema
3.5.3.2.3 DISEÑO DEL SISTEMA DE INFORMACIÓN Las revisiones del diseño se centran en confirmar que los requisitos especificados en el proceso Análisis del Sistema de Información se han trad traduc ucid ido o en una una arqu arquititec ectu tura ra conf confor orme me al ento entorn rno o tecn tecnol ológ ógic ico o seleccionado. Asimismo, se revisan los requisitos que deben cumplir los distintos nive nivele less de prue prueba bass (uni (unita tari rias as,, de inte integr grac ació ión, n, del del sist sistem ema, a, de implantación y aceptación) especificados en el plan de pruebas, de acue acuerd rdo o a los los crit criter erio ioss de revi revisi sión ón esta establ blec ecid idos os en el plan plan de aseguramiento de calidad. También se realiza una revisión de la identificación de los requisitos no func funcio iona nale less rela relaci cion onad ados os con con la docu docume ment ntac ació ión n de usuar suario io e implantación. El siguiente esquema muestra la correspondencia entre las actividades del proceso DSI y las de la interfaz de Aseguramiento de la Calidad.
ACTIV ACTIVIDA IDAD D DSI–CA DSI–CAL L 1: REVIS REVISIÓN IÓN DE LA VERIF VERIFICA ICACIÓ CIÓN N DE LA ARQUITECTURA DEL SISTEMA
ACTIVIDAD DSI–CAL 2: REVISIÓN DE LA ESPECIFICACIÓN TÉCNICA DEL PLAN DE PRUEBAS
ACTI ACTIVI VIDA DAD D DSI– DSI–CA CAL L 3: REVIS EVISIÓ IÓN N DE LOS LOS REQU REQUIS ISIT ITOS OS DE IMPLANTACIÓN
ACTI ACTIVI VIDA DAD D DSIDSI-CA CAL L 4: REGI REGIST STRO RO DE LA APRO APROBA BACI CIÓN ÓN DEL DEL DISEÑO DEL SISTEMA DE INFORMACIÓN
3.5.3.2.4 CONSTRUCCIÓN DEL SISTEMA DE INFORMACIÓN En este este proces proceso o el grupo grupo de asegur asegurami amien ento to de calida calidad d revisa revisa los estándares de nomenclatura y normativa aplicada en la generación del código de componentes, en la evaluación de los resultados de las pruebas, en los manuales de usuario y en el esquema de formación. Con respecto a las pruebas, se revisa que se han llevado a cabo las pruebas unitarias, de integración y del sistema según los criterios de selección de verificaciones y casos de prueba asociados que se habrán fijado en el plan de aseguramiento de calidad. El siguiente esquema muestra la correspondencia entre las actividades del proceso CSI y las de la interfaz de Aseguramiento de la Calidad.
ACTIVIDAD CSI–CAL 1: REVISIÓN DEL CÓDIGO DE COMPONENTES Y PROCEDIMIENTOS
ACTIVIDAD CSI–CAL 2: REVISIÓN DE LAS PRUEBAS UNITARIAS, DE INTEGRACIÓN Y DEL SISTEMA
ACTIVIDAD CSI–CAL 3: REVISIÓN DE LOS MANUALES DE USUARIO
ACTIVIDAD CSI–CAL 4: REVISIÓN DE LA FORMACIÓN A USUARIOS FINALES
ACTI ACTIVI VIDA DAD D CSICSI-CA CAL L 5: REGI REGIST STRO RO DE LA APRO APROBA BACI CIÓN ÓN DEL DEL SISTEMA DE INFORMACIÓN
3.5.3.2.5 IMPLANTACIÓN Y ACEPTACIÓN DEL SISTEMA El grupo de aseguramiento de calidad en este proceso es responsable de revisar la existencia de un plan de implantación que se habrá elaborado conforme a la estrategia de implantación determinada en el proceso Estudio de Viabilidad del Sistema (EVS) y teniendo en cuenta los requisitos de implantación establecidos en el proceso Diseño del Sistema de Información (DSI).
También ambién deben deben compro comprobar bar que que se han realiz realizad ado o las prueb pruebas as de implantación y de aceptación según el plan de pruebas establecido en MÉTRIC TRICA A Versió sión 3 y la norm norma ativa tiva acord cordad ada a en el plan lan de aseguramiento de calidad. Revisan la totalidad de las verificaciones y caso casoss de prue prueba ba de impl implan anta taci ción ón y acep acepta taci ción ón que que se haya hayan n especificado para el sistema y las incidencias producidas, con el fin de determinar si puede verse afectada alguna propiedad de calidad. En cualquier caso, se registra la aprobación de las pruebas de implantación y de aceptación por parte de operación y del usuario respectivamente. En cuanto al mantenimiento, el grupo de aseguramiento aseguramiento de calidad debe asegurar que se le entrega el producto software al responsable de mantenimiento, con las propiedades adecuadas para que pueda asumir el servicio de mantenimiento, una vez que el sistema se encuentre en producción. El siguiente esquema muestra la correspondencia entre las actividades del proceso IAS y las de la interfaz de Aseguramiento de la Calidad.
ACTIVIDAD IAS-CAL 1: REVISIÓN DEL PLAN DE IMPLANTACIÓN DEL SISTEMA
ACTIV TIVIDA IDAD IAS IAS–CAL 2: REV REVISIÓ ISIÓN N IMPLANTACIÓN DEL SISTEMA
DE LAS
PRUEB UEBAS
DE
ACTIV TIVIDA IDAD IAS IAS–CAL 3: REV REVISIÓ ISIÓN N ACEPTACIÓN DEL SISTEMA
DE LAS
PRUEB UEBAS
DE
ACTIVIDAD IAS–CAL 4: REVISIÓN DEL PLAN DE MANTENIMIENTO DEL SISTEMA
ACTIV ACTIVIDA IDAD D IAS–CA IAS–CAL L 5: REGIS REGISTRO TRO DE LA APROB APROBACI ACIÓN ÓN DE LA IMPLANTACIÓN DEL SISTEMA
3.5.3.2.6 MANTENIMIENTO DEL SISTEMA DE INFORMACIÓN En el proc proces eso o Impl Implan anta taci ción ón y Acep Acepta taci ción ón del del Sist Sistem ema a se habr habrá á determinado la necesidad de llevar a cabo un seguimiento y control de la
calidad en los sistemas de información, una vez se encuentren en el entorno de producción. El grup grupo o de aseg asegur uram amie ient nto o de cali calida dad d inte intenv nven endr drá á dura durant nte e el mantenimiento, mantenimiento, efectuando revisiones de seguimiento periódicas, periódicas, más o menos frecuentes según los casos, que sirvan para constatar que el mantenimiento establecido para el sistema de información se realiza de forma correcta. En algún caso, según las implicaciones del cambio, puede ser necesario revisar puntualmente: puntualmente: El contenido del plan de pruebas de regresión. ● La ejecución de las pruebas de regresión según la normativa ● acordada en el plan de aseguramiento de calidad. Las verificaciones y casos de prueba que se hayan incluido en el ● plan de pruebas para los cambios producidos por una petición. Las incidencias detectadas con el fin de determinar si puede ● verse afectada alguna propiedad de calidad. En caso caso de revi revisa sarr la ejec ejecuc ució ión n de las las prue prueba bass de regr regres esió ión, n, se registrará la aprobación de las pruebas por el responsable de mantenimiento. En el siguiente gráfico se aprecian las actividades de Aseguramiento de la Calidad durante el Mantenimiento del Sistema de Información.
ACTIV ACTIVIDA IDAD D MSI-C MSI-CAL AL 1: REVISI REVISIÓN ÓN DEL DEL MANTEN MANTENIMI IMIEN ENTO TO DEL DEL SISTEMA DE INFORMACIÓN
ACTIV ACTIVIDA IDAD D MSI–CA MSI–CAL L 2: REVISI REVISIÓN ÓN DEL DEL PLAN PLAN DE PRUEB PRUEBAS AS DE REGRESIÓN
ACTIV ACTIVIDA IDAD D MSI–C MSI–CAL3 AL3:: REVIS REVISIÓN IÓN DE LA REALI REALIZAC ZACIÓN IÓN DE LAS LAS PRUEBAS DE REGRESIÓN
IV. METODOLOGÍA DE GESTIÓN DE PROYECTO
(Software e Quality Quality 4.1. Aseg 4.1. Asegur uram amie ient nto o de cali calida dad d del del soft softwa ware re (Softwar Assurance) •
• •
•
•
•
El aseg seguram uramie ien nto de cali calida dad d del sof softwar ware es el con conjunt junto o de actividades planificadas y sistemáticas necesarias para aportar la confia confianza nza en que el produ producto cto (softw (softwar are) e) satisf satisfará ará los requi requisit sitos os dados de calidad. El asegu asegura rami mien ento to de calid calidad ad del del soft softwa ware re se dise diseña ña para para cada cada aplicación antes de comenzar a desarrollarla y no después. Algunos autores prefieren decir garantía de calidad en vez de aseguramiento. – Garantía, puede confundir con garantía de productos – Aseguramiento pretende dar confianza en que el producto tiene calidad El asegur asegurami amient ento o de calida calidad d del softwa software re está está prese presente nte en los siguientes casos: – Métodos y herramientas de análisis, diseño, programación y prueba Inspec ecci cion ones es técn técnic icas as form formal ales es en todo todoss los los paso pasoss del del – Insp proceso de desarrollo del software – Estrategias de prueba multiescala – Control de la documentación del software y de los cambios realizados – Procedimientos para ajustarse a los estándares (y dejar claro cuando se está fuera de ellos) – Mecanismos de medida (métricas) Registro de auditorias y realización de informes – Registro Actividades para el aseguramiento- de calidad del software – Métricas de software para el control del proyecto – Verificación y validación del software a lo largo del ciclo de vida Incluye las pruebas y los procesos de revisión e inspección – La gestión de la configuración del software
4.2. Aseguramiento de la Calidad de software Se explican conceptos que los auditores deben evaluar y sobre los que deben informar al comprador público. Aparecerán durante la realización de la auditoría, pero su especificación debe realizarse al principio. Se conoce como garantía de calidad de Software (SQA, Software Quality Assurance) al conjunto de actividades que se aplican a lo largo de todo el proceso de ingeniería del software. SQA engloba: • Métodos y herramien ientas de anális lisis, dis diseño, cod codificación y prueba. • Revis evision iones es técn técnic icas as form formal ales es que que se aplic aplican an dura durant nte e cada cada paso de la ingeniería del software. • Prueb Pruebas as de softwa software re secuenc secuenciad iadas as en múltip múltiples les pasos pasos y con métodos específicos de diseño de casos de prueba. • Contr Control ol de la document documentació ación n del softwar software e y de los cambio cambioss
realizados. • Proce Procedim dimien ientos tos que asegur aseguren en un ajuste ajuste a los estánda estándares res de desarrollo de software. • Mecanismos Mecanismos de medida medida y de informació información. n. • Métricas Métricas para para medir medir la calidad calidad del software software.. To Todo est este proc proce eso se reali ealiza za de for forma inte interrna. na. La prop propia ia organización puede tener un grupo de SQA que se encargue de la real realiz izac ación ión de toda todass las las tare tareas as nece necesa saria rias. s. Es posib posible le tene tenerr un grupo de consultores externos dedicados a SQA pero, a poco que la organización tenga una mediana actividad de desarrollo, los costes económicos de esta opción pueden ser elevados. SQA es un proceso de control. La auditoría que puede encargarse de SQA sin sufrir contradicción con la idea de “punto discontinuo de control” es la auditoría interna que, siendo la encargada de las tareas de control interno y estando realizada por personal propio, dispone de los medios y estructura de costes adecuados. Los Los factor factores es que determ determina inan n la calida calidad d del softwa software re se pueden pueden clasificar en dos grandes grupos: • Factores actores que pueden pueden ser medidos medidos dire directame ctamente. nte. • Factores actores que sólo pueden pueden ser medidos medidos indirect indirectament amente. e. En cualquiera de los dos casos debemos comparar el software con una referencia y llegar a una indicación de la calidad. Se han propuesto los siguientes factores de calidad del software: • Corrección: El grad grado o en que que un prog progra rama ma sati satisf sfac ace e sus sus especificaciones y consigue los objetivos encomendados. • Fiabilidad: El grado en que se puede esperar que un program grama a llev lleve e a cabo cabo sus sus func funcio ion nes con con la precis ecisió ión n requerida. • Eficiencia: La cantidad de recursos de ordenador y de código requeridos por un programa para llevar a cabo sus funciones. • Integridad: La información utilizada será la última, exacta, autorizada y completa. • Facilidad de uso: Esfuerzo requerido para trabajar con un programa. • Facilidad de mantenimi Esfuer erzo zo reque equeri rido do para para mantenimiento ento: Esfu localizar y arreglar el error en un programa. • Flexibilidad: Esfuerzo requerido para modificar un programa operativo. • Facilidad Esfuerzo zo reque requerido rido para para proba probarr un acilidad de prueba: prueba: Esfuer programa. • Portabilidad: Esfuerzo requerido para transfe sferir un programa desde un entorno operativo a otro. • Reusabilidad: El grado en que un programa se puede reusar en otras aplicaciones. • Facilid Esfuer erzo zo requ requeri erido do para para acilidad ad de intero interoper peraci ación: ón: Esfu acoplar un sistema a otro.
Es difícil difícil para para los audito auditore ress desarr desarroll ollar ar medida medidass direct directas as de los anteriores factores de calidad. Por tanto, para medir cuanti cuantitat tativa ivamen mente te cada cada uno de los factor factores es cada cada oferta oferta deberá deberá expresar claramente qué métricas utiliza para la evaluación del software. La garantía de calidad del software (SQA) es un «planificado y siste sistemá máti tico co dise diseño ño de acci accion ones» es» para para aseg asegur urar ar la calid calidad ad del del soft softwa ware re.. El pers person onal al que que llev lleva a a cabo cabo la SQA SQA debe debe mira mirarr el software desde el punto de vista del usuario. ¿Se ha realizado el desarrollo de software de acuerdo con los estándares establecidos? ¿Las disciplinas técnicas han desempeñado apropiadamente sus papeles? La calidad del software debe estar pensada para un producto o sistema o conjunto de sistemas; no es algo impuesto a posteriori. La SQA utiliza un conjunto de herramientas y métodos técnicos que ayudan al analista a conseguir una especificación y un diseño de alta calidad. Una vez que se ha creado una especificación, un diseño o un módu módulo lo,, debe debe ser ser gara garant ntiz izad ada a de algú algún n modo modo su cali calida dad. d. La actividad central que permite garantizar la calidad es la revisión técnica técnica formal. formal. El personal personal técnico se reúne reúne con el único propósito propósito de descubrir problemas de calidad. Otro método usado comúnmente es la prueba de software. Este procedimiento combina múltiples pasos con una serie de métodos de diseño de casos de prueba que ayudan a asegurar una efectiva detecc detección ión de error errores. es. Muchos Muchos grupos grupos de desarr desarrollo ollo de softwa software re usan la prueba como una red de seguridad para la garantía de la calidad. Se asume que mediante la prueba se descubrirá la mayoría de los errores, mitigando así la necesidad de otras actividades de SQA. El grad grado o de apli aplica caci ción ón de proc proced edim imie ient ntos os y está estánd ndar ares es en el proceso de ingeniería del software varía ampliamente dependiendo de la orga organi niza zaci ción ón de la que que se trat trate. e. Si exis existe ten n está estánd ndar ares es formales, escritos, se deben establecer actividades de SQA para garantizar que se siguen. Una Una de las las prin princi cipa pale less amen amenaz azas as para para la calid calidad ad del del soft softwa ware re proviene de una actividad supuestamente beneficiosa: los cambios. El proceso de control de cambios debe venir especificado por la meto metodo dolo logí gía a de desa desarr rrol ollo lo de sist sistem emas as que se use en esa esa organización. Enfoques formales a la SQA Todo lo que se ha comentado hasta ahora de SQA se concreta en la prác prácti tica ca en un conj conjun unto to de acti activi vida dade dess que que se debe deben n real realiz izar ar durante el desarrollo de sistemas. Debido a esto, previamente se señ señaló que son actividades de control, no de auditorí toría a;
altern alternati ativam vament ente, e, se les puede puede llamar llamar activi actividad dades es de audito auditoría ría interna. Segm Segmen ento toss de la comu comunid nidad ad de inge ingeni nier eros os de soft softwa ware re vien vienen en sosteniendo que se deben implementar una serie de controles más rigurosos, de tipo matemático y estadístico. Estos controles pueden ser ser efec efectu tuad ados os en cual cualqu quie ierr mome moment nto, o, incl inclus uso o en la fase fase de explotación de sistemas. Se describirán dos técnicas, que pueden ser el objetivo de un proyecto de auditoría que abarque el área de explotación de SQA: • Proceso Proceso limpio limpio de creació creación n de softw software are
El proceso limpio de creación del software se centra en la consecución del objetivo de número de defectos nulo. La idea teórica central es conseguir la verificación matemática de la corrección de elementos de un sistema de información. Sin embargo, por el momento no se ha conseguido llevar a la práctica esta idea para sistemas medianamente complejos, aunque no sea totalmente descartable que en el medio plazo se avance en esta dirección. En segundo lugar, se debe proporcionar una certificación de calidad estadística. Para ilustrar este proceso, supongamos que que una una orga organi niza zaci ción ón de desa desarr rroll ollo o de soft softwa ware re reco recoge ge info inforrmació ación n sobr sobre e defec efecto toss dura durant nte e un año, ño, tanto anto en explotación como en construcción de sistemas (esto puede constituir por sí mismo un proyecto de control). Aunque se descubran cientos de errores diferentes, todos ellos pueden encuadrarse dentro de una o varias causas. Los Los erro errorres dete detect ctado adoss debe deberá rán n ser ser clas clasifi ifica cado doss en tres tres cate catego goría rías: s: muy muy grav graves, es, grav graves es,, meno menore res. s. Con Con esta estass dos dos clasifi clasificac cacion iones es (causa (causa e import importanc ancia) ia) se podrán podrán establ establece ecerr conclusiones estadísticas, que permitirán tomar medidas de corre correcció cción. n. Esta Esta técnic técnica a permit permite e efectu efectuar ar una elimin eliminaci ación ón sistemátic sistemática a de las causas causas de los defectos defectos empezando empezando por los más serios y mejorando la utilización de los recursos. • Medida Medidas s de de fiab fiabili ilidad dad
La fiabilidad del software se define en términos estadísticos como como la “pro “proba babi bili lida dad d de oper operac ació ión n libr libre e de fallo falloss de un programa de ordenador en un entorno determinado y durante un tiempo específico”. Una sencilla medida de fiabilidad es el tiem tiempo po medi medio o entr entre e fall fallos os (MTB (MTBF, F, Mean Mean Time ime Betw Betwee een n Failures- es el tiempo medio entre fallos de un sistema), y la duración total de sus reparaciones, medida como el tiempo medio de la reparación (MTTR, Mean Time To Repare – es el tiem tiempo po medio medio de repa repara raci ción ón)) desd desde e la comu comunic nicac ació ión n del del envío, contando desplazamientos del personal y la duración
de la reparación de la unidad averiada. Muchos investigadores argumentan que esta medida es más efic eficie ient nte e que que la medi medida da que que se usa usa gene genera ralm lmen ente te para para evaluar la cantidad de errores, que es el número de errores por cada mil líneas de código. 4.3. Métodos y herramientas de análisis, diseño y codificación
La calidad del software debe estar diseñada para el producto o sist sistem ema, a, no es algo algo impu impues esto to a post poster erio iori ri.. Por esta esta razó razón, n, la gara garant ntía ía de cali calida dad d del del soft softwa ware re comi comien enza za real realme ment nte e con con un conj conjun unto to de herr herram amie ient ntas as y méto método doss técn técnic icos os que que ayud ayudan an al analista a conseguir una especificación y un diseño de alta calidad. En un proceso de desarrollo software, existen una serie de fases que que vien vienen en dete determ rmin inad adas as por por las las tare tareas as bási básica cass que que hay hay que que reali realizar zar para para obtene obtenerr el produ producto cto softwa software re.. Se define definen n distin distintos tos ciclos de vida de acuerdo a la evolución del software a lo largo de dichas fases. Las fases más típicas son: •
ambién én lla llamada ada anál anális isis is de Requ Requis isit itos os del del Sist Sistem ema: a: tambi requisitos, especificación o diseño conceptual o diseño de alto nivel. Según (Durán Toro, Bernárdez Jiménez, Corchuelo Gil, & Toro Bonilla, 2000) en (IEEE, 1990) se define: “Requisitos: (a) una una cond condic ició ión n o capa capaci cida dad d que que un usua usuari rio o nece necesi sita ta para para resolver un problema o lograr un objetivo. (b) una condición o capacidad que debe tener un sistema o un componente de un sistema para satisfacer un contrato, una norma, especificación u otro documento formal. (c) una representación en forma de documento de una condición o capacidad como las expresadas en (a) o (b).”
La ingeniería de requisitos se define como: “Tod “Todas as las las acti activi vida dade dess rela relaci cion onad adas as con: con: (a) (a) iden identi tific ficac ació ión n y docu docume ment ntac ació ión n de las las nece necesi sida dade dess del del clie client nte e y usua usuario rios, s, (b) (b) creación de un documento que describe la conducta externa y las restri striccciones asoc sociadas del sis sistema que satisfará dich ichas necesidades. (c) análisis y validación del documento de requisitos para asegurar su consistencia, viabilidad y que sea completo. (d) Evolución de las necesidades.” Existen varias propuestas en cuanto a las actividades que conlleva la inge ingeni nierí ería a de requis equisit itos os.. Por su clar clarid idad ad,, se ha utili utiliza zado do la pres presen enta tada da en (Dur (Durán án Toro oro et al., al., 2000 2000), ), que que comp compre rend nde e tres tres actividades principales: obtención, análisis y validación. La mayor parte de las normas y autores asumen que el proceso de obtención de los requisitos, su análisis y validación es iterativo por naturaleza, ya que se reconoce que es prácticamente imposible obtener todos los requisitos y que éstos sean correctos sin tener
que volver atrás en algún momento del proceso. Las actividades son: •
clientes, Obtención Obtención (“Elicitat (“Elicitation”1 ion”1)) de Requisito Requisitos: s: los clientes, compradores o usuarios del sistema a desarrollar descubren, revel revelan, an, articu articulan lan y entien entienden den sus propio propioss requi requisit sitos. os. Los Los requi equisi sito toss se obti obtien enen en con con entr entrev evis ista tas, s, cues cuesti tion onar ario ios, s, reuni eunion ones es de las las dist distin inta tass part partes es impl implic icad adas as y dive divers rsas as técnicas cuyo resultado deben ser los requisitos orientados al cliente o también llamados requisitos-C. (1 El término en inglés “elicitatión” se utiliza en la obtención de requisitos para definir la actividad realizada por el analista con el fin de proteger la información que de las necesidades del sistema tienen los usuarios finales, los expertos y los clientes.)
•
•
Anál Anális isis is de requ requis isit itos os:: se debe razonar sobre los requisitos- C para comprender mejor el problema, detectar conflictos o inconsistencias, combinar requisitos relacionados e identi identific ficar ar nuevos nuevos requi requisito sitos, s, normal normalmen mente te median mediante te la cons constr truc ucci ción ón de mode modelo los, s, en la que que podr podría ían n part partic icip ipar ar aquellos los clientes y usuarios con los conocimientos apropiados. El producto de esta actividad son los requisitos orien orienta tado doss al desa desarr rroll ollad ador or o requ requisi isito toss- D, y en algu alguna nass ocasion ocasiones, es, un proto prototip tipo. o. Ademá Además, s, esta esta activi actividad dad debe debe ser capa capazz de most mostra rarr el cono conoci cimi mien ento to tácit tácito, o, aque aquell llo o que que los los usuarios no comentan por olvidarlo o considerarlo obvio. En esta fase ya se están tomando decisiones de cómo hacer el sistema ya que se realiza una descomposición del sistema en subpartes siguiendo la técnica de “divide y vencerás”.
cliente tess y usua usuario rioss debe deben n Validación alidación de requisito requisitos: s: los clien conf confir irma marr que que los los requ requis isito itoss- C, una una vez vez anal analiz izad ados os,, son son válidos, correctos y completos, mediante las inspecciones de los docu docume ment ntos os gene genera rado doss y medi median ante te la eval evalua uaci ción ón del del prototipo, proceso que por lo general conlleva la obtención de nuevos nuevos requi requisito sitos. s. Ademá Ademáss será necesa necesario rio valid validar ar que los requisitos -D encajan con los requisitos -C. La nomenclatura de los requisitos (requisitos-C para los del cliente y requisitosD para los del desarrollador) fue presentada en (Brackett, 1990 1990)) y está está sien siendo do acep acepta tada da por por algu alguno noss auto autore ress como como (Durán Toro et al., 2000). La manera habitual de expresar los requisitos-C es el lenguaje natural, que puede acompañarse del uso de plantillas y patrones lingüísticos para facilitar su uso uso. La for forma de expr xpresar esar los los requi equisi sittos –D suel suele e ser ser mediante un modelo construido con técnicas estructuradas (DFD, ERD, etc), técnicas orientadas a objetos (OMT, UML, etc) o técnicas formales. Dado que diversos estudios han revelado que el alto índice de fracasos en los proyectos de desarrollo software tiene como principales causas actividades relacionadas con los requisitos (falta de participación de los usuarios, usuarios, requisitos requisitos incompletos incompletos y frecuente frecuentess cambios cambios de los requisitos iniciales), es lógico que muchos estudios se basen
en esta etapa, por lo que las publicaciones relativas a la ingeniería de requisitos han sido abundantes en los últimos años (por ejemplo, los números especiales de las revistas “IEEE Software” Marzo/Abril 1998 o el de “Communications of the ACM” Diciembre 1998 así como diversos libros). Además, existen multitud de métodos de modelado en general que se utilizan utilizan para el modelado modelado de los requisitosrequisitos-D. D. Otro ejemplo ejemplo es el proy proyec ecto to MENHI MENHIR R: Meto Metodo dolo logí gías as,, Ento Entorn rnos os y Nuev Nuevas as Herramientas para la Ingeniería de Requisitos (Proyecto de la CICYT TIC 97- 0593-C05-0). •
•
Diseño: también llamado diseño arquitectural o diseño de bajo bajo nivel. nivel. Partien artiendo do del modelo modelo de anális análisis is de requis requisito itoss obte obteni nido do en la fase fase ante anteri rior or,, se tran transf sfor orma ma éste éste en un conj conjun unto to de ent entes físi físico coss (hard hardwa warre) y ente entess lógi lógico coss (software) inter-relacionados entre sí que no tienen por qué cons conser erva varr la mism misma a estr estruc uctu tura ra que que en el mode modelo lo inici inicial al.. Cualquier cambio en dicha estructura con respecto a la del modelo inicial debe ir acompañado de las razones que lo han aconsejado, que suelen ser ciertas características que en su momento no se conocía, o no se tuvieron en cuenta por ser un aspecto de mayor nivel de detalle. Aunque en principio los requisitos -C afectan principalmente a la fase de análisis de requisitos y se utilizan para la creación de los requisitos -D (que (que evid eviden ente teme ment nte e infl influy uyen en dire direct ctam amen ente te en la fase fase de diseño), puede darse el caso de que alguno de los requisitos del cliente tengan efecto directo sobre esta fase de diseño.
Implan Implantac tación ión e Integra Integració ción: n: tambié también n llamada llamada codifi codificac cación ión.. Consiste en la codificación del software utilizando un lenguaje de programación siguiendo la estructura y comportamiento determinados en el diseño. Revisiones del software que se aplican durante cada paso del desarrollo del mismo Una vez que que se ha crea creado do una una espe especi cifi fica caci ción ón y un dise diseño ño de un softwa software, re, debe debe garant garantiza izarse rse su calida calidad. d. Las revisi revisione oness del soft softwa ware re son son un filt filtrro para para el proc proces eso o de inge ingeni nier ería ía del del softwa software re y se aplica aplican n en varios varios moment momentos os del desarr desarroll ollo. o. Sirven para detectar fallos tanto en el análisis como en el diseño y la codifica icación, de manera que puedan ser eliminados cuanto antes. Es necesario partir de la idea de que todo el mundo comete errores, pero algunos de ellos se le pasan por alto más fácilmente al que los origina que a otras personas. Los errores cometidos en pasos anteriores se amplifican en el paso siguiente. Según las estadísticas, las actividades de diseño introducen entre el 50 y el 65 por 100 de todos los errores, por lo que cualquier técnica que permita detectar los errores en las fases iniciales del desarrollo del soft softwa ware re será será de gran gran util utilid idad ad.. Exis Existe ten n much muchos os tipo tiposs diferentes de revisiones dependiendo de qué se revise y el tipo tipo de prof profes esio iona nall que que lo revi revise se.. Una Una de ellas ellas son son las las revisiones técnicas formales o inspecciones, llevadas a cabo por ingenieros del software. Las revisiones técnicas formales
son son el filt filtrro más más efec efecti tivo vo desd desde e el punt punto o de vist vista a de la garantía del software, ya que detectan el 75% de los errores cometidos en el diseño. Los objetivos de la revisión técnica formal son: (a) Descubrir errores en la función, la lógica o la implantación de cualquier representación del software. (b) Verificar Verificar que el software bajo revisión alcanza sus requisitos. (c) Garantizar que el software ha sido representado de acuerdo con ciertos estándares predefinidos. (d) Conseguir un software desarrollado de forma uniforme. (e) Hacer que los proyectos sean más manejables. 4.4. Estrategia de prueba
La prueba del software es un elemento crítico para la garantía de cali calida dad d del sof softwar tware e y repr epresen esenta ta una una revis evisió ión n fina finall de las las especificaciones, del diseño y la codificación. La prueba requiere que se descarten las ideas preconcebidas sobre la “corrección” del software que se acaba de desarrollar y se supere cualquier conflicto de intereses que aparezca cuando se detecten errores. En un libro clásico sobre la prueba del software (Myers, 1979) se estab establec lecen en una una serie serie de regl reglas as que que pued pueden en ente entend nder erse se como como objetivos de la prueba: (a) La prueba es un proceso de ejecución de un programa con la intención de descubrir descubri r un error. error. (b) (b) Un buen buen caso caso de prueb rueba a es aqu aquel que que tien tiene e una alta lta prob probab abil ilid idad ad de most mostra rarr un err error no desc descub ubie iert rto o hast hasta a entonces. (c) Una prueba tiene éxito si descubre un error no detectado hasta entonces. Debido a la importancia de las pruebas para la calidad y a su dificultad, existen múltiples técnicas de prueba. En (Press m, 1995) se muestran algunas de estas técnicas de prueba. Procedimiento que asegure un ajuste a los estándares de desarrollo del software.
Gestió Gest ión n de conf config igur urac acio ione ness de soft softwar ware e (con (contr trol ol de la documentación del software y de los cambios realizados) La gestión de configuraciones del software es una actividad “pr “protec otecto tora ra”” que que se apli aplica ca a lo larg largo o del del proc proces eso o de ing ingenie enierí ría a del del sof softwar tware. e. Se tra trata de un con conjunt junto o de acti activi vida dade dess de segu seguim imie ient nto o y cont contrrol que que comi comien enza za al principio del proyecto de desarrollo del software y finaliza sólo una vez que el software queda fuera de circulación. Los elementos que componen toda la información ión prod produc ucid ida a se deno denomi mina nan n conf config igur urac ació ión n del del sof softwar tware e (programas, documentos que describen los programas y estructuras de datos). La elaboración de la documentación
resu result lta a muy muy cost costos osa, a, por por lo que que es nece necesa sari rio o inte intent ntar ar reducirla lo más posible y realizarla cuando los beneficios que conlleve superen el coste de su realización. Una de las principales amenazas para la calidad del software viene de una una fuen fuente te apar aparen ente teme ment nte e beni benign gna: a: los los camb cambio ios. s. El proceso de control de cambios contribuye directamente a la calidad del software. s oftware.
El control de cambios se aplica durante el desarrollo del software y, posteriormente, durante su mantenimiento. Ya que un cambio se puede producir en cualquier momento, las las acti activi vida dade dess de la gest gestió ión n de conf config igur urac acio ione ness del del software sirven para: (1) identificar el cambio; (2) controlar el cambio; (3) garantizar que el cambio se implementa adecuadamente; (4) informar del cambio a todos aquéllos a los que afecte. En (Belin, 1998) se muestran de manera resumida las ideas principa ipales de la gestió stión n de la configuración.
Meca Mecani nism smos os de medi medida da.. La medi medici ción ón es una una acti activi vida dad d fundam fundament ental al para para cualqu cualquier ier discipl disciplina ina de ingeni ingeniería ería.. Un objetivo importante de la garantía de calidad es seguir la pista a la calidad del software y evaluar el impacto de los cambios de metodología y de procedimiento que intentan mejorar la calidad del software. Para conseguirlo, se deben recol ecolec ecta tarr métr métric icas as del del soft softwa warre, como como se verá verá más más adelante.
Registr egistro o y reali realizac zación ión de inform informes. es. Son proce procedim dimien ientos tos para para la reco recole lecc cció ión n y divu divulg lgac ació ión n de info inform rmac ació ión n de la gara garant ntía ía de cali calida dad d del del soft softwa ware re.. Los Los resu result ltad ados os de las las revisiones, auditorías, control de cambios, prueba y otras actividades de la garantía de calidad deben convertirse en una parte del registro histórico de un proyecto. Además, deben ser divulgados a la plantilla de desarrollo para que tenga conocimiento de ellos.
V. AUDITORIAS DE SEGURIDAD [5.1] 5.1 Auditorías Técnicas
Cent Centrá rándo ndono noss ahor ahora a en las las audi audito torí rías as técn técnic icas as,, depe depend ndie iend ndo o de la profundidad de los trabajos, hablaremos de auditorías de vulner vulnerabi abilida lidades des,, que trata tratan n de locali localizar zar config configura uracio ciones nes erróne erróneas as o relajadas en exceso y agujeros de seguridad en el software directamente explot plota ables bles,, habit abitua ualm lmen ente te con con el apoy apoyo o de herra errami mien enta tass que que auto automa mati tiza zan n parte parte del del trab trabaj ajo, o, y proy proyec ecto toss de hack hackin ing g cont contro rola lado do,, pruebas de intrusión o auditorías a nivel de aplicación, en la que los trabajos se expanden para dejar sitio al lado más "creativo y artesano" de los los audi audito torres de segu seguri rida dad, d, que que trat tratan an de explo xplota tarr err errores ores de programación, la arquitectura de red y las relaciones de confianza, las debilidades debilidades de los protocolos protocolos de comunicació comunicación n y los controles controles de acceso para simular los ataques a una infraestructura de red bajo los perfiles que se consideren de interés (atacante externo con distinto nivel de calificación, usuario interno, auditor, administrador, competencia...) bajo las mismas circunstancias y capacidades (información inicial, puntos de acceso, recursos disponibles...).
Por otro otro lado, lado, depe depend ndie iend ndo o de la apr aproxima ximaci ción ón que que tome tomemo moss para para realizar las auditorías técnicas, hablaremos de pruebas de caja negra, que buscan las debilida idades desde el exterio rior de los sistemas (habitualmente realizadas de forma remota, desde Internet), y pruebas de caja blanca, que realizan una revisión de seguridad analizando la configuración del propio sistema, con acceso al mismo. Una auditoría de seguridad de caja negra normalmente comienza con trabajos desde el exterior, para encontrar puntos débiles y ganar algún tipo tipo de acce acceso so a los los sist sistem emas as,, y una una vez vez cons conseg egui uido do este este acce acceso so,, examinar el sistema para escalar privilegios y tomar control sobre él. Estas pruebas desde hace tiempo se vienen realizando basándose en el está estánd ndar ar OSST OSSTMM MM (Ope (Open n Sour Source ce Testi esting ng Meth Method odol olog ogy y Manu Manual al)) o el documento SP 800-46 del NIST (instituto de estándares americano) que contemplan las pruebas a realizar para realizar una revisión de seguridad técnica completa. En el caso de una auditoría de caja blanca el objetivo no es lograr el acce acceso so (la (la empr empres esa a lo prop propor orci cion ona a para para reali ealiza zarla rla)) sino sino revi revisa sarr las las medidas de seguridad implementadas en el sistema y su conformidad, o no, con estándares reconocidos y guías de "buenas prácticas", como por ejemplo, los trabajos del instituto de estándares norteamericanos, NIST, el CSI, Center of Internet Security, o del SANS Institute. 5.1.1. PRUEBA DE CAJA BLANCA
Por el contrari rario o, las pruebas de caja blanca, como se ha mencionado anteriormente, examinan el sistema desde su interior. Por lo tanto es necesario tener un acceso a los sistemas. Este acce acceso so gene genera ralm lmen ente te se obti obtien ene e porq porque ue dir directa ectame ment nte e se le proporciona al auditor un acceso al equipo para que pueda realizar un análisis en profundidad de la configuración del sistema, aunque en algunos casos una prueba de caja negra se convierte en caja blanca por haber logrado un acceso al sistema a través de alguna vuln vulner erab abil ilid idad ad del del mism mismo o u obte obtene nerr info inforrmaci mación ón que que pued pueda a analizarse de esta forma (por ejemplo, el código fuente de las aplicaciones utilizadas). Es importante destacar que estas pruebas son complementarias de las las anterio riores, ya que el hecho de no haber encontrado vulnerabilidades en las pruebas de "caja negra", no significa que no las las haya haya,, si no que que gene genera ralm lmen ente te sign signif ific icar ará á que que no se han han dedicado recursos suficientes a descubrirlas. Dicho de otra forma, el hecho de que un sistema sea o no vulnerable no radica en que se encuentre una vulnerab rabilid lidad, si no en que exista dicha vulnerabilidad. Siguiendo con esta filosofía, es necesario ampliar la información que se posee sobre los sistemas al máximo, incluyendo topología, protocolos utilizados, reglas en los cortafuegos, software empleado,
etc. Así, durante esta fase normalmente normalmente se realizan las siguientes tareas: •
• •
•
•
Análisis de la configuración de todos los sistemas operativos implantados: usuarios, ficheros, etc. Análisis de la robustez de las contraseñas utilizadas. Análisis de la configuración del software de base (Web, Mail, cortafuegos, etc.). Análisis del código fuente de las aplicaciones instaladas o desarrolladas a medida. Dete De term rmina inaci ción ón de las las vuln vulner erab abili ilida dade dess pres presen ente tess en los los sistemas debido a la desactualización en la aplicación de parches de seguridad (obsolescencia de los sistemas).
En algunos casos estas tareas de análisis pueden ser automatizadas con algunas herramientas pero en la mayoría de los casos se realizarán de forma manual y requerirá irán de un conocimiento profundo de los sistemas auditados, recom ecomen enda daci cion ones es del del fabr fabric ican antte, etc. etc. Gener enera almen lmentte esta estass inspecciones, aunque más laboriosas hacen que la tarea analíticacorrectora produzca un resultado cualitativamente superior. superior. 5.1.2. PRUEBA DE CAJA NEGRA
Las pruebas de caja negra, para que sean realmente efectivas, deben deben reali realizar zarse se sin ningún ningún conoci conocimie miento nto de la infrae infraestr struct uctura, ura, garantizando de esta forma que el análisis no tratará de utilizar ning ningún ún tipo tipo de infor informa maci ción ón que que facil facilit ite e la tare tarea a de anál anális isis. is. El propósito de estas pruebas es que el auditor se comporte como si realmente fuese un "atacante" de la infraestructura. Durante un análisis de caja negra normalmente se llevarán a cabo pruebas de visibilidad (para conocer los servicios y versiones de éstos activos y visibles desde el exterior en cada uno de los sistemas), pruebas de identificación tificación de servicios servicios (para determinar determinar qué programas programas ofrecen los serv servic icio ioss ofrec frecid idos os,, a trav través és de las las cabe cabece cera rass obte obteni nida dass o resp respue uest stas as prog progra ramá máti tica cass y no fián fiándo dose se de la lista lista de puer puerto toss TCP/ TCP/IP IP conoci conocidos dos), ), obtenc obtención ión de infor informac mación ión (recu (recuper peraci ación ón de información o datos de configuración del sistema final o sistemas adyacentes que desvelen detalles de la infraestructura auditada) y pruebas de vulnerabilidades vulnerabil idades en software estándar. Estas últimas pruebas son las más complejas y se realizarán una vez determinados los servicios que se están corriendo, junto con la info inform rmac ació ión n disp dispon onib ible le de vers version iones es y siste sistema mass opera operati tivo vos. s. Se basan en una parte que puede ser realizada por herramientas de diagnóstico automáticas y otra parte que debe ser realizada de forma manual por el auditor. Esta fase tiene que realizarse con ciertas precauciones puesto que son frecuentes los casos en que las pruebas de vulnerabilidades que puedan tener éxito produzcan cortes de servicio o caídas en los sistemas auditados.
Una vez se ha conseguido penetrar con éxito en un sistema, la audi audito toría ría de caja caja negr negra a pued puede e cont contin inua uarr haci hacia a otro otross sist sistem emas as adyacentes (generalmente más expuestos una vez traspasado el perímetro) y también derivar hacia análisis de caja blanca. 5.2. Tipos de Pruebas [5.2] 5.2.1. Pruebas de unidad:
La prueba de unidad se centra en el módulo. Usando la descripción del diseño detallado como guía, se prueban los caminos de control importantes con el fin de descubrir errores dentro del ámbito del módulo. La prueba de unidad hace uso intensivo de las técnicas de prueba de caja blanca. 5.2.2. Prueba de integración:
El objetivo es coger los módulos probados en la prueba de unidad y construir una estructura de programa que esté de acuerdo con lo que dicta el diseño. Hay dos formas de integración: •
•
Integración no incremental: Se combinan todos los módulos por anticipado y se prueba todo el programa en conjunto. Inte Integr grac ación ión incr increm emen enta tal: l: El prog progra rama ma se cons constr truy uye e y se prueba en pequeños segmentos.
En la prueba de integración el foco de atención es el diseño y la construcción de la arquitectura del software. Las técnicas que más prevalecen son las de diseño de casos de prueba de caja negra, aunque se pueden llevar a cabo unas pocas pruebas de caja blanca. 5.2.3. Prueba del sistema:
Verifica que cada elemento encaja de forma adecuada y que se alca alcanz nza a la funci funcion onal alid idad ad y el rendim endimie ient nto o del del sist sistem ema a tota total. l. La prue prueba ba del del sist sistem ema a está está cons consti titu tuid ida a por por una una serie serie de prue prueba bass diferentes cuyo propósito primordial es ejercitar profundamente el sistema basado en computadora. Algunas de estas pruebas son: •
•
•
Prueba de validación: Proporciona una seguridad final de que el software satisface todos los requerimientos funcionales y de rend endimiento. Además, valida ida los los requerim erimiientos esta establ blec ecid idos os comp compar arán ándol dolos os con con el sist sistem ema a que que ha sido sido constr construid uido. o. Durante Durante la valida validació ción n se usan usan exclu exclusiv sivame amente nte técnicas de prueba de caja negra. Prueba de recuperación: Fuerza Fuerza un fallo del software y verifica que la recuperación se lleva a cabo apropiadamente. Prueba de seguridad: Verificar los mecanismos de protección.
•
•
•
Prueba de resistencia: Enfrenta a los programas a situaciones anormales. Prueba de rendimiento: Prueba el rendimiento del software en tiempo de ejecución. Prueba de instalación: Se centra en asegurar que el sistema sof softwar tware e desa desarr rrol olla lado do se pued puede e inst instal alar ar en dife diferrente entess conf config igur urac acio ione ness hard hardwar ware e y soft softwa ware re y bajo bajo cond condic icio ione ness excepciones, por ejemplo con espacio de disco insuficiente o continuas interrupciones.
5.2.4. Pruebas de regresión:
Las pruebas de regresión son una estrategia de prueba en la cual las las prue prueba bass que que se han han ejec ejecut utad ado o ante anterio riorm rmen ente te se vuel vuelve ven n a realizar en la nueva versión modificada, para asegurar la calidad después de añadir la nueva funcionalidad. El propósito de estas pruebas es asegurar que: •
•
Los Los defe defect ctos os iden identi tifi fica cado doss en la ejecu ejecuci ción ón ante anteri rior or de la prueba se ha corregido. Los cambios realizados no han introducido nuevos defectos o reintroducido defectos anteriores.
La prueba de regresión puede implicar la re-ejecución de cualquier tipo de prueba. Normalmente, las pruebas de regresión se llevan a cabo durante cada iteración, ejecutando otra vez las pruebas de la iteración anterior. 5.3. Estrategias de pruebas del software:
Una estrategia de prueba del software integra las técnicas de diseño de casos de prueba en una serie de pasos bien planificados que llevan a la construcción correcta del software. Las características generales son: • •
•
•
La prueba comienza en el nivel de módulo y trabaja “hacia afuera”. En diferentes puntos son adecuadas a la vez distintas técnicas de prueba. La prueba la realiza la persona que desarrolla el software y (para grandes proyectos) un grupo de pruebas independiente. La prueba y la depuración son actividades diferentes.
Una estrategia de prueba para el software debe constar de pruebas de bajo nivel, así como de pruebas de alto nivel. . Más concretamente, los objetivos de la estrategia de prueba son: •
Planificar las pruebas necesarias en cada iteración, incluyendo las prue prueba bass de unid unidad ad,, inte integra graci ción ón y las las prue prueba bass de sist sistem ema. a. Las Las pruebas de unidad y de integración son necesarias dentro de la
•
•
iteración, mientras que las pruebas de sistema son necesarias sólo al final de la iteración. Diseñar e implementar las pruebas creando los casos de prueba que especifican qué probar, cómo realizar las pruebas y creando, si es posible, componentes de prueba ejecutables para automatizar las pruebas. Realiz ealizar ar dife difere rent ntes es prue prueba bass y mane maneja jarr los los resu result ltad ados os de cada cada prueba sistemáticamente. Los productos de desarrollo de software en los los que que se det detect ectan defe defect cto os son son pro probad badas de nuevo uevo y posiblemente devueltas a otra etapa, como diseño o implementación, de forma que los defectos puedan ser arreglados.
Para conseguir estos objetivos el flujo de trabajo de la etapa de Pruebas consta de las siguientes etapas: • • • • •
Planificación de las pruebas. Diseño de las pruebas. Implementación de las pruebas. Ejecución de las pruebas. Evaluación de las pruebas.
Los prod produc ucto toss de desa desarr rrol ollo lo del del sof softwar tware e fund fundam amen enta tale less que que se desarrollan en la etapa de Pruebas son: • • • •
Plan de Pruebas. Casos de Prueba. Informe de evaluación de Pruebas. Mode Modelo lo de Prue Prueba bas, s, que que inclu incluye ye Clas Clases es de Prue Prueba ba,, Ento Entorn rno o de Configuración de Pruebas, Componentes de Prueba y los Datos de prueba.
Los Los parti partici cipa pant ntes es resp respon onsa sabl bles es de las las real realiz izar ar las las acti activi vida dade dess y los los productos de desarrollo del software s oftware son: •
•
Diseñador de pruebas: Es responsable de la planificación, diseño, implementación y evaluación de las pruebas. Esto conlleva generar el plan de pruebas y modelo de pruebas, implementar los casos de prueba y evaluar los resultados de las pruebas. Los diseñadores de prue prueba ba realm ealmen ente te no llev llevan an a cabo cabo las las prue prueba bas, s, sino sino que que se dedican a la preparación y evaluación de las mismas. Proba Probador dor (Test (Tester) er):: Es respo responsa nsable ble de desarr desarroll ollar ar las prueba pruebass de unidad, integración y sistema, lo que incluye ejecutar las pruebas, eval evalua uarr su ejec ejecuc ució ión, n, recup ecuper erar ar los los erro errorres y gara garant ntiz izar ar los los resultados de las pruebas.
Durante la fase de Inicio puede hacerse parte de la planificación inicial de las pruebas cuando se define el ámbito del sistema. Sin embargo, las pruebas se llevan a cabo sobre todo cuando un producto de desarrollo software es sometido a pruebas de integración y de sistema. Esto quiere decir que la realización de pruebas se centra en las fases de Elaboración, cuan cuando do se prue prueba ba la líne línea a base base ejecu ejecuta tabl ble e de la arqu arquit itec ectu tura ra,, y de
construcción, cuando el grueso del sistema está implementado. Durante la fase de Transición el centro se desplaza hacia la corrección de defectos durante los primeros usos y a las pruebas de regresión. Debido a la naturaleza iterativa del esfuerzo de desarrollo, algunos de los casos de prueba que especifican cómo probar los primeros productos de desarrollo software pueden ser utilizadas también como casos de prueba de regresión que especifican cómo llevar a cabo las pruebas de regresión sobre sobre los produc productos tos de desarr desarroll ollo o softwa software re siguie siguiente ntes. s. El número número de pruebas de regresión necesarias crece por tanto de forma estable a lo larg largo o de las las iter iterac acio ione nes, s, lo que que signi signific fica a que que las las últi última mass iter iterac acion iones es requerirán un gran esfuerzo en pruebas de regresión. Es natural, por tanto, mantener el modelo de pruebas a lo largo del ciclo de vida del software completo, aunque el modelo de pruebas cambia constantemente debido a: • •
•
La eliminación de casos de prueba obsoletos. El refinamiento de algunos casos de prueba en casos de prueba de regresión. La creación de nuevos casos de prueba para cada nuevo producto de desarrollo de software.
5.4. Auditoría de procesos y gestión
La realización de una actividad de auditoría debe realizarse siguiendo fielmente los códigos de buenas prácticas de seguridad de sistemas de información reconocidos internacionalmente, en este caso la norma ISO17799 y la guía del NIST SP 800-26. En Germinus entendemos que este tipo tipo de audi audito toría ría debe debe real realiz izar arse se con con un cono conoci cimi mien ento to prev previo io de los los dist distin into toss riesg riesgos os y cont contrroles oles que que son son aplic aplicab able less a una una orga organi niza zaci ción ón,, debido a la amplitud del código de buenas prácticas ISO-17799 no tiene sent sentido ido audi audita tarr todo todoss los los cont contro role less reco recome mend ndad ados os si ésto éstoss no son son aplicables a la organización, bien porque no existe un riesgo en ese sentido, bien porque el coste de implantación de dichos controles se ha considerado superior al coste resultante de la materialización de una amenaza (impacto) o del propio activo. Es por ello que la actividad de auditoría de procesos y gestión estará prec preced edid ida a por por un trab trabaj ajo o de anál anális isis is del del ento entorn rno o de la orga organi niza zaci ción ón incluyendo: • •
•
•
•
Análisis de la política de seguridad. Análisis de los procesos implantados, incluyendo, entre otros, los de gestión y administración. Entrevistas con los responsables de la seguridad de información de la organización para determinar los controles establecidos. Revisión de los análisis de riesgos realizados previamente y en función de los cuales se han implantado los controles. Revisión de las auditorías previas realizadas.
Toda vez que se haya realizado el análisis del entorno se procederá a realizar una revisión exhaustiva de los controles implantados, la correcta
implantación de los procedimientos y la concordancia con el código de buenas prácticas. Para ello se realizarán entrevistas con distinto personal de la orga organi niza zaci ción, ón, el perso persona nall concr concret eto o a entr entrev evist istar ar será será defi defini nido do basándose en el estudio del entorno y de la organización previamente realizado. Entre el personal entrevistado se incluirán a: • •
•
Los responsables de gestión. El personal técnico encargado de la gestión de la seguridad de cada uno de los sistemas. Usuarios de los sistemas de información (muestra aleatoria)
ANEXO 1 PLAN DE DESARROLLO DE SOFTWARE SOFTWARE Fase Fase de Elab Elabor orac ació ión n (4 sema semana nass de dura duraci ción ón)) Comi Comien enzo zo
Apro Aproba baci ción ón
Modelado del Negocio
Modelo de Casos de Uso del Negocio y Semana 1 Modelo de Objetos del Negocio
aprobado
Requisitos
Glosario
Semana 1
aprobado
Visión
Semana 2
aprobado
Modelo de Casos de Uso
Semana 3
aprobado
Especificación de Casos de Uso
Semana 3
aprobado
Especificaciones Adicionales
Semana 2
aprobado
Modelo de Análisis/Diseño
Semana 2
Semana 9
Modelo de Datos
Semana 2
Semana 9
Prototipos de de In Interfaces de de Us Usuario
Semana 2
Semana 10 10
Modelo de Implementación
Semana 2
Semana 10
Análisis/Diseño
Implementación
Pruebas
Casos de Pruebas Funcionales
Semana 2
Semana 9
Semana 2
Semana 9
Despliegue
Modelo de Despliegue
Gestión de Cambios y Configuración Durante todo el proyecto Gestión del proyecto
Semana 7 Plan de Desarrollo del Software en su versión 3.0 y planes de las Iteración 2 de Elaboración Ambiente
Semana 7
Durante todo el proyecto
ANEXO 2 MODELO DE UN PLAN PL AN DE CONFIGURACIÓN CONFIGURACIÓN DE SOFTWARE [6] Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la capt captur ura a de requ requis isit itos os inic inicia iall hast hasta a la pues puesta ta en prod produc ucci ción ón del del mismo, y posteriormente desde el inicio del mantenimiento hasta su retiro, se van realizando una serie de cambios, tanto en el códi código go como omo en la docum ocumen enttació ación n asoci sociad ada. a. La Gesti estión ón de Configuración del Software es una disciplina encargada del control de la evolución de los productos de software. Como todo proceso, la Gestión de Configuración también puede ser sistematizada y automatizada, lo que se denomina un Sistema de Gest Ge stió ión n de Conf Config igur urac ació ión n (SGC (SGC). ). Actu Actual alme ment nte e exis existe ten n en el mercado diversas herramientas que permiten apoyar una o más actividades de la Gestión de Configuración. Definiciones
Gestión de Configuración es el proceso de identificar y definir los elementos en el sistema, controlando el cambio de estos elementos a lo largo de su ciclo de vida, registrando y reportando el estado de los elementos y las solicitudes de cambio, y verificando que los elem lementos esté stén completos y que sean los correctos. El propósito de la Gestión de Configuración del Software es establecer y mantener la integridad de los productos de software a través del ciclo de vida del proceso de software.
La Gestión de Configuración del Software implica la identificación
de la Configuración del software en puntos dados en el tiempo, el cont contrrol sist sistem emát átic ico o de los los camb cambio ioss en la Conf Config igur urac ació ión n y el mantenimiento de la integridad y trazabilidad de la Configuración a través del ciclo de vida del software. s oftware. Los productos productos incluidos son: •
Software distribuido al cliente.
•
Documentos de requerimientos del software.
•
Código.
•
Elementos requeridos para crearlos (ejemplo: el compilador)
Aspectos Funcionales
1. Identificación: Se necesita definir un esquema de identificación para reflejar la estructura del producto, esto involucra identificar la estructura y clases de componentes, dando a cada uno un nombre, una identificación de versión y una identificación de Configuración. 2. Control: Se deben controlar los cambios que se le hacen a través del cicl iclo de vida, asegurando que el software sea consistente a través de la creación de una línea base del producto p roducto.. 3. Estado: Se debe regis gistrar y repo eportar el esta stado de los componentes y solicitudes de cambio. 4. Auditoria y revisión: Se debe validar que el producto este completo y asi mantener la consistencia entre los componentes, asegurando que estén en un estado apropiado a través de todo el ciclo de vida del producto y que el mismo sea una colección bien definida de componentes. ALGUNOS CONCEPTOS PRESENTES EN LA DISCIPLINA Configuración
Las características funcionales y físicas de una versión especifica de hardware y elementos de software que combinados de acuerdo a procedimientos de construcción específicos cumplen un propósito particular. Elementos de configuración de software
Definimos como un elemento de Configuración a una unidad física y/o lógica parte de un conjunto mayor de elementos, producida o adquirida, adquirida, que por sus característ características icas es distinguible distinguible de las demás
y
cuya
evolución
interesa
administrar.
Son elementos de Configuración en un proyecto de software: 01. El plan de proyecto. 02. El plan de Gestión de Configuración. 03. El documento de definición de requerimientos. 04. Estándares de análisis, diseño, codificación, pruebas, y auditoria. 05. Documentos de análisis del sistema. 06. Documentos de diseño del sistema. 07. Prototipos. 08. Documentos de diseño de alto nivel. 09. Documentos de diseño de bajo nivel. 10. Especificaciones de prueba del sistema. 11. El plan de pruebas del sistema. 12. El Código fuente del programa. 13. Código objeto y ejecutable. 14. Especificaciones de pruebas de unidad. 15. Planes de pruebas de unidad. 16. Documentos de diseño de base de datos. 17. Datos de prueba. 18. Datos del proyecto. 19 .Manuales de usuario. Versión
Una versión es una instancia de un elemento de Configuración. El término se usa para señalar a un elemento de Configuración del soft softwa ware re que que tien tiene e un conj conjun unto to defi defini nido do de cara caract cter erís ísti tica cass funcionales. Revisión
Se define revisión como una versión que se construye sobre otra versión anterior. El término revisión generalmente se asocia a la noci noción ón de corr correc ecci ción ón de erro errorres, esto esto es, es, hace hacerr camb cambio ioss a un programa que corrigen solo errores en el diseño lógico pero no afec afecta tan n las las capa capaci cida dade dess func funcion ional ales es docu docume ment ntad adas as,, dado dado que que ningún requerimiento ha cambiado. Variante
Se define variante como una versión que es una alternativa a otra versi rsión. Las varian iantes pueden permitir itir a un elemento de Configuración satisfacer requerimientos en conflicto. Una variante es una una nuev nueva a vers versió ión n de un elem elemen ento to que que será será añad añadid ida a a la Configuración sin reemplazar a la versión anterior. anterior. Por ejemplo, si se desarrolla una aplicación para varios sistemas operativos, algunas librerías pueden requerir modificaciones para poder ser compiladas o ejecutadas en los diferentes sistemas; la versiones para Unix y para Windows NT de una librería serían variantes del mismo elemento. Línea base
Una Una líne línea a base base es una una espe especi cifi fica caci ción ón o prod produc ucto to revis evisad ado o y aproba aprobado do formal formalmen mente, te, que sirve sirve como como base base para para el desarr desarroll ollo o posterior, y puede ser modificado solo a través de procedimientos formales de control de cambios. El término también se usa para referirse a una versión particular de un elemento de software que ha sido aprobado. En cualquier caso, la línea base solo se puede modificar a través de procedimientos formales de control de cambios. Una línea base, junto con todos los cambios aprobados a la línea base, representa la Configuración aprobada actual. Procesos Asociados
El estándar ISO/IEC 12207 ([ISO 12207]) para Procesos del Ciclo de Vida ida del del Sof Softwar tware, e, estab stable lece ce el Proceso ceso de Ge Gest stió ión n de Configuración como uno de los Procesos de Soporte del Ciclo de Vida. Un Proceso de Soporte ”apoya” a otro proceso como una parte integral, con un propósito distinto, y contribuye al éxito y a la calidad del proyecto de software. Este proceso consiste de las siguientes actividades: 1. Implementación del Proceso: Se desarrolla un Plan de Gestió Ge stión n de Config Configura uració ción n que describ describe e las activi actividad dades es de Gestión de Configuración, los procedimientos y el cronograma para su realización, y los responsables de dichas actividades. Dicho plan debe ser documentado e implementado. 2. Identifica establ blec ece e un Identificación ción de la Configura Configuración ción: Se esta esquema de identificación de los elementos de software y sus versiones a ser controlados por el proyecto. 3. Control de la Configuración: Se identifican y registran
las solicitudes de cambio, se analiza y evalúa los cambios, se apru aprueb eba a o rech rechaz aza a la soli solici citu tud, d, se impl implem emen enta ta,, verif verific ica a y distribuye el elemento de software modificado. 4. Cont Contab abil ilid idad ad de Esta Estado do de la Conf Config igur urac ació ión n: Se prep prepar aran an regi regist stro ross de Ge Gest stió ión n y reporte eportess de esta estado do que que muestren el estado e historia de los elementos de software controlados, incluyendo líneas base. 5. Evaluación de la Configuración: Se determina y asegura que los elementos de software sean funcionalmente (versus sus requerimientos) y físicamente completos (es decir, si su diseño y Código reflejan una descripción técnica actualizada). 6. Gestión de actualización y distribución: Se controla formalmente la actualización y distribución de los productos de software. En la figu figura ra 1 se pres presen enta ta un mode modelo lo de este este proc proces eso o elab elabor orad ado o utilizando el perfil de UML para modelamiento de procesos de software, propuesto por el Object Management Group (OMG)
El está estánd ndar ar IEEE IEEE Std. Std. 1074 1074-1 -199 995 5 ([IE ([IEEE EE 1074] 074])) para el Desarrollo de Procesos del Ciclo de Vida del Software, establece el Proceso de Gestión de Configuración del Software como uno de los Proc Proces esos os Inte Integr gral ales es.. Esto Estoss son son los los Proces ocesos os nece necesa sari rios os para para comp comple leta tarr exit exitos osam amen ente te las las acti activi vida dade dess del del proy proyec ecto to,, y son son utilizados para asegurar la finalización y calidad de las funciones del proyecto. Este proceso consiste de las siguientes actividades: 1. Planificar la Gestión de Configuración. 2. Desarrollar la Identificación de la Configuración.
3. Realizar el Control de la Configuración. 4. Realizar la Contabilidad de Estado. Escenarios de Configuración en el Proceso de Software Gestión de configuración del código fuente
La evolución del Código fuente es quizás el ejemplo mas claro en la Gestión de Configuración. A lo largo del desarrollo (y posteriormente en el mantenimiento) las modificaciones al software se realizan sobre el Código fuente. Y es según el Código fuente que se valida la documentación asociada. Los sistemas administradores de versiones se suelen integrar a los entornos de desarrollo y realizan administración de versiones del Códi Código go fuen fuente te.. Cada Cada modi modifi fica caci ción ón de uno uno de los arch archiv ivos os del del programa va generando una revisión del mismo, y periódicamente se crean líneas base de todo el proyecto. De este modo, un equipo de desarrollo puede trabajar en paralelo, compartie tiendo version iones de archivo ivos de Código igo fuente y actualiz lizándolos los periód iódicamente según se van creando o modificando los archivos que conforman el proyecto. Gestión de configuración en el desarrollo de software
Como Como ya habí habíam amos os come coment ntad ado, o, un elem elemen ento to de Conf Config igur urac ación ión puede puede ser prácti prácticam cament ente e cualqu cualquier ier produ producto cto o subpr subprodu oducto cto del desa desarr rroll ollo o de soft softwa ware re.. Las Las espe especi cifi fica cacio cione ness de requ requisi isito tos, s, los los documentos de análisis y de diseño, el Código fuente y ejecutable, y los procedimientos y datos de prueba pueden ser sometidos a control de Configuración. Con un control riguroso, es posible entonces mantener registro del estado de todos estos elementos, lo que facilita la introducción de camb cambio ioss si se tien tiene e regi regist stro ro de las las depe depend nden enci cias as entr entre e ellos ellos,, además de facilitar la elaboración de entregables; por ejemplo, si se tien tiene e regist egistro ro de las las depe depend nden enci cias as entr entre e los los elem elemen ento toss de Conf Config igur urac ació ión, n, es posib posible le que que si se prod produc uce e un camb cambio io en las las especificaciones, los documentos de análisis y diseño y el Código fuente asociados puedan ser actualizados sin que tome demasiado tiempo realizar su búsqueda. Gestión de configuración en el mantenimiento de software software
En el mantenimiento de software, cobra importancia la función del
Comité de Control de Cambios (CCC), que se encarga de recibir, estudiar y aprobar las solicitudes de cambio en el software que son presentadas, sea por los usuarios o por los propios encargados del mant manten enim imie ient nto o. En este este caso caso,, las las func funcio ione ness de cont contrrol y de audi audito tori ria a se vuel vuelve ven n casi casi indi indisp spen ensa sabl bles es,, pues pues es nece necesa sari rio o mantener registro de todas las solicitudes de cambio presentadas y del estado actual de cada una de ellas. Un sistema de Gestión de Conf Config igur urac ació ión n que que apoy apoye e la Ge Gest stió ión n de solic solicit itud udes es de camb cambio io,, debe deberí ría a per permiti mitirr el regis egistr tro o por por part parte e de los los usua usuari rios os de las las solicitudes de cambio, su revisión por parte del CCC, y si son aprobadas la creación de ordenes de cambio. Un cambio implica generalmente la actualización tanto del Código fuente, como de los documentos de especificación de requisitos, análisis y diseño, casos de prueba y manuales. Por lo tanto, en el escenario anterior, resulta de utilidad mantener un registro de las dependencias entre los elementos de Configuración. El cambio se vera reflejado en la creación de nuevas versiones de los elementos respectivos. Gestión en la distribución del software a las l as PC- Usuarios
Cuando se pone en producción un software, se distribuyen copias del del mism mismo o entr entre e los los dive divers rso os usua suarios rios del del sist sistem ema. a. En este este escenario, un sistema de Gestión de Configuración debería permitir registrar las Configuraciones (conjunto de versiones de elementos de Configuración) que cuenta cada PC - usuario. Puede ocurrir, que si un mism mismo o sist sistem ema a se vend vende e a dist distin into toss clie client ntes es,, en algú algún n momento surjan requerimientos contradictorios o necesidades que lleven a la creación de variantes de los elementos de Configu Configurac ración ión.. El sistem sistema a de Gestió Gestión n de Config Configura uració ción n apoyar apoyaría ía entonces al momento de estudiar una solicitud de un usuario a conocer cual es la Configuración con la que esta trabajando. Modelo Genérico 1. Permite la creación de tipos de elementos de Configuración. De este modo, es posible que el usuario cree sus propios tipos de elementos dependiendo que es lo que desea controlar. controlar.
2. Permite la creación de tipos de relaciones entre los elementos de Configuración. Es posible que el usuario cree los tipos de relaciones que desee, y que especifique dependencias para la creación de nuevas versiones entre el origen y el destino de la relación. Estas dependencias pueden ser: Ninguna, • Cond Condic icio iona nal-O l-Ori rige gen n (sí (sí el orig origen en camb cambia ia,, el dest destino ino • podría cambiar) Cond Condic icio iona nal-D l-Des esti tino no (sí (sí el dest destin ino o camb cambia ia,, el orige origen n • podría cambiar)
•
•
Obligatoria-Origen (sí el origen cambia, el destino debe cambiar) Obligatoria-Destino (si el destino cambia, el origen or igen debe cambiar).
3. Cada tipo de elemento y cada tipo de relación puede tener los camp campos os de info inforrmaci mación ón adic adicio iona nall que que el usu usuario ario con consid sidere ere necesarios. 4. Un elem elemen ento to de Conf Config igur urac ació ión n corr corres espo pond nde e a un tipo tipo y sus sus vers versio ione ness pued pueden en esta estarr relac elacio iona nada dass con con vers versio ione ness de otr otros elementos según se creen relaciones para él. 5. Un elemento de Configuración tiene un conjunto de versiones asociadas, cada una de las cuales esta asociada al usuario (dueño) que la creo. 6. Un conj conjun unto to de vers versio ione ness de elem elemen ento toss de Conf Config igur urac ació ión n confor conforma ma una Configu Configurac ración ión.. Es posibl posible e de este este modo modo regist registrar rar much muchas as Conf Config igur urac acio ione ness para para el mism mismo o soft softwa ware re,, que que pued pueden en diferir diferir en cuanto cuanto a versio versiones nes,, o ser varian variantes tes (Confi (Configura guracio ciones nes alternativas).
De este modelo es posible obtener información acerca de: 1. Los tipos de elementos sometidos a Gestión de Configuración. 2. Las relaciones entre dichos elementos. 3.Las dependencias para la creación de versiones al momento de analizar la introducción de un cambio. Es posible conocer como un
cambio en un elemento afectara a los demás. 4. Los usuarios que generaron cada versión de un elemento.
ANEXO 03 Descripción Detallada del SPMP Planes de Gestión de Proyectos Software
Pagina de Título Carta de Revisión Prefacio Tabla de Contenidos Lista de Figuras Lista de Tablas Tablas 1 Introducción 1.1 Alcance 1.2 Propósito 1.3 Acuerdo del proyecto 1.4 Evolución de SPMP 2 Referencias 3 Definiciones 4 Organización del Proyecto 4.1 Modelo de Proceso 4.2 Estructura Organizacional 4.3 Limites e Interfaces Organizacionales 4.4 Responsabilidades del Proyecto 5 Procesos Administrativos 5.1 Objetivos y Prioridades Administrativas 5.2 Dependencias, Restricciones y Supuestos. 5.3 Procesos Integrales 5.4 Gestión del Alcance Administrativo 5.5 Planes de gestión del Itinerario 5.6 Plan de gestión del Presupuesto 5.7 Plan de gestión de los Recursos 5.8 Planes de gestión de la Calidad 5.9 Planes de gestión de Riesgos 5.10 Planes de Obtención de Recursos 5.11 Planes de Manejo Comunicacional 6 Procesos Técnicos écnico s 6.1 Alcance del Producto 6.2 Métodos, Herramientas Herramienta s y Técnicas 6.3 Documentación del Software
7
Planificación de las Actividades del Trabajo 7.1 Definiciones de las Actividades Actividades y Alcance 7.2 Dependencia de las las Actividades 7.3 Itinerario de Actividades 7.4 Presupuesto de Actividades 7.5 Requerimientos de Recursos Recursos de las Actividades Actividades 8 Componentes Adicionales 8.1 Anexo Página de título: Contiene el título de y una nota de revisión para identificar unívocamente el documento. Carta de revisión: Es una hoja separada que contiene el número de versión del documento, la fecha de revisión, firma de aprobación, una lista de las páginas que han sido modificadas en la actual versión y una lista de los números de versión y fechas de revisión para cada una de las versiones previas p revias del SPMP. Prefacio: Indica el alcance de las actividades del SPMP. Tabla de contenido y las listas de figuras y tablas: Proveen los títulos y los números de página. 1 Introducción Esta parte provee una revisión tanto del proyecto como del producto a ser confeccionado. El alcance del proyecto y el producto, una lista de la entrega del proyecto y las consideraciones de evolución para e SPMP. SPMP. 1.1 Alcance Esta parte definiría el alcance tanto del proyecto como del producto a ser entregado. 1.2 Propósito Aquí se provee una resumida declaración de las necesidades del negocio a ser ser sati satisf sfec echa hass por por el proy proyec ecto to,, con con un conc concis iso o resum esumen en de los los objetivos del proyecto. proyecto. 1.3 Acuerdo del proyecto En esta parte se listan los productos que van a ser entregados al cliente, las fechas y lugar de entrega y la cantidad requerida para satisfacer los acuerdos del proyecto. 1.4 Evolución del SPMP Se especifica que mecanismos son usados para lograr la versión inicial del SPMP y cambios de control del SPMP. 2 Referencias Se provee una completa lista de todos los documentos y otros recursos de información referenciados en el SPMP. Cada documento puede ser identificado por el título, número de edición, fecha, autor, y organización editora. Otros recu recurso rsos, s, como como los los arch archiv ivos os elec electr trón ónic icos os,, debe deben n ser ser iden identif tific icad ados os de una una manera no ambigua usando identificadores como la fecha y número de versión.
3 Definiciones Se puede definir o provee referencias de la definición de todos los términos y acronismos requeridos para interpretar adecuadamente el SPMP. SPMP. 4 Organización del Proyecto Esta Esta part parte e espe especi cifi fica ca el mode modelo lo del del proc proces eso o para para el proy proyec ecto to,, descr describ ibe e la estructura organizacional del proyecto, identifica el fin de la organización y define las responsabilidades individuales para el proyecto. 4.1 Modelo de Procesos Esta parte define las relaciones entre las funciones del proyecto principal y las actividades por especificación de tiempo. El modelo de proceso pued puede e ser descr descrit ito o usan usando do una una comb combin inac ació ión n de gráf gráfic icos os y nota notaci ción ón textual. 4.2 Estructura Organizacional Esta parte describe la estructura de organización interna del proyecto. Herramientas gráficas tales como una matriz de diagramas podría ser usada sada para ara desc descri ribi birr las líne línea as de aut autorid oridad ad,, respo espons nsab abil ilid ida ad y comunicación dentro del proyecto. 4.3 Limites e Interfaces Organizacionales Aquí Aquí se desc describ ribe e los limi limite tess admi admini nist stra rati tivo voss y gere gerenc ncia iale less entr entre e el proyecto y cada una de las siguientes entidades: La organización de origen origen,, la organ organiza izació ción n del client cliente, e, la organ organiza izació ción n subcon subcontra tratad tada, a, o cualquier otra organización que interactua con el proyecto. proyecto. 4.4 Responsabilidades Responsabilidades del Proyecto En esta parte se identifica el estado natural de cada función y actividad del del proy proyec ecto to prin princi cipa pal, l, y iden identi tifi fica ca indi indivi vidu dual alme ment nte e quie quiene ness son son responsables por esas actividades y funciones. Una matriz de funciones y activid actividade adess versus versus respo responsa nsabili bilidad dades es individ individual uales es pueden pueden ser usadas usadas para describir las responsabilidades del proyecto. 5 Procesos Administrativos Administrativos Esta parte especifica los procesos administrativos del proyecto que deben ser cons consis iste tent ntes es con con la decl declar arac ació ión n del del alca alcanc nce e y pued puede e incl inclui uirr obje objeti tivo voss y prioridades administrativas. 5.1 Objetivos y Prioridades Administrativas Administrativas Especificar Especificar la filosofía, filosofía, metas y prioridades prioridades para la administrac administración ión de las activid actividade adess durant durante e el proye proyecto cto.. Tópicos ópicos especí específic ficos os que pueden pueden ser incluidos son la frecuencia y mecanismos de reporte a ser usados, las prioridades relativas entre los requerimientos y presupuesto del proyecto, procedimientos administrativos de riesgos a seguir y una nota para la adquisición, modificación y uso del software existente. 5.2 Dependencias, Restricciones y Supuestos Cond Condici icion ones es sobr sobre e las las cual cuales es el proy proyec ecto to esta esta basa basado do,, los los even evento toss externos de los cuales el proyecto depende y las restricciones con las cuales el proyecto va a ser elaborado.
5.3 Procesos Integrales Planifica los procesos integrales necesarios para una exitoso término de los los proy proyec ecto toss sw sw.. Esos Esos proc proces esos os pued pueden en inclu incluir ir:: la conf config igur urac ació ión n de manejo, asegurar la calidad, verificación y validación del sw sw.. 5.4 Gestión del Alcance Administrativo Administrativo Se especifica el plan de manejo del alcance del proyecto, también puede incluir procedimientos para cambios en el alcance del SPMP, además de la probabilidad de cambios, incluyendo los factores que pudiesen resultar por el cambio del alcance del proyecto. El plan indicaría factores que causaron el cambio, los resultados de los cambios y los métodos por los cuales los cambios fueron documentados, comunicados y controlados. 5.5 Planes de Manejo del Itinerario. Se define los planes para asegurar que el proyecto este terminado a tiempo, además de, especificar los documentos que sirven como entrada al proyecto. Se deben especificar las herramientas o metodología que serán usadas para administrar el itinerario. El plan indicaría factores que causaron el cambio, los resultados de los cambios y los métodos por los cuales los cambios fueron documentados, comunicados y controlados. 5.6 Plan de Manejo del Presupuesto Se definen los planes para asegurar que el proyecto sea terminado con el presu presupue puesto sto establ estableci ecido, do, además además de especi especific ficar ar los docume documento ntoss que sirv irven como entrad rada al presupuesto. Se deben especificar las herr herram amie ient ntas as o meto metodo dolo logí gía a que que serán serán usad usadas as para para admi admini nist stra rarr el presupuesto. El plan indicaría factores que causaron el cambio, los resultados de los cambios y los métodos por los cuales los cambios fueron documentados, comunicados y controlados. 5.7 Plan de Manejo de los Recursos Se especifica los planes de manejo de los recursos requeridos para la exit exitos osa a culm culmin inac ació ión n de esta esta.. El plan plan pued puede e espec especifi ifica carr los méto método doss usados para estimar el material, servicios y requerimientos de recursos humanos. Se puede incluir el número y nivel de calificación del personal requerido para completar el proyecto, el número y atributos de calidad requerida por el personal y la naturaleza de los servicios contratados. 5.8 Planes de Manejo de la Calidad El plan para asegurar la calidad de los procesos y del proyecto se define en este apartado. El plan puede identificar los estándares del proyecto y los los méto método doss y recu recurs rsos os requer equerid idos os para para impl implem emen enta tarr y asegu asegura rarr el cumplimiento de esos estándares. 5.9 Planes de Manejo de Riesgos Se definen los planes de manejo de factores de riesgos asociados al proy proyec ecto to.. Esta Esta part parte e desc describ ribe e los los méto método doss que que sería serían n usad usados os para para iden identi tific ficar ar los los fact factor ores es de riesg riesgo, o, como como fuer fueron on eval evalua uado doss y impa impact cto o potencial de los riesgos identificados.
5.10 Planes de Obtención de Recursos Esta parte incluiría una descripción de los procesos de obtención de recu recurso rsos, s, incl incluy uyen endo do respon esponsa sabi bilid lidad ades es para para todo todoss los los aspe aspect ctos os del del proc proces eso. o. El plan plan podr podría ía incl inclui uirr los proc proces esos os de obte obtenc nció ión n tang tangib ible le e inta intang ngib ible le de recur ecurso sos; s; proc proces esos os de obte obtenc nció ión n de: de: equi equipa pami mien ento to,, estimaciones de tiempo de computado, Hw. y Sw. Sw. y transportes. 5.11 Planes de Manejo Comunicacional Esta parte maneja la comunicación relativa del proyecto. Se definirían los mecani mecanismo smoss de repor reporte, te, formas formas de report reporte, e, infor informac mación ión anticip anticipada ada,, mecanismos de intervención, y otras herramientas y técnicas usadas para monitorear y controlar los objetivos del proyecto. 6 Procesos Técnicos Esta parte planea el manejo del alcance del producto, los métodos técnicos, herramientas y técnicas usadas para la entrega del producto y documentación del software. 6.1 Alcance del Producto Esta parte contempla los planes de manejo del alcance alcance del producto. producto. En este este plan plan sería serían n incl inclui uido doss los los méto método doss por por los los cual cuales es el alca alcanc nce e del del proyecto va a ser medido además de los requerimientos del producto, adem además ás se incl incluy uye e los los fact factor ores es que que pued pueden en camb cambia iarr el alca alcanc nce e del del producto. 6.2 Métodos, Herramientas Herramien tas y Técnicas Este Este part parte e desc descri ribe be el sist sistem ema a de comp comput utac ació ión, n, meto metodo dolo logí gías as de desa desarr rrol ollo lo,, estru struct ctu uras ras de equi equipo pos, s, leng lengu uaje aje de pro progra gramaci mación ón,, herram herramien ientas tas y técnic técnicas as a ser usadas usadas para para la especif especifica icación ción,, diseño diseño,, con constru strucc cció ión n, test test,, inte integr grac ació ión n, doc documen umento tos, s, modif odific icac acio ion nes y mantención del proyecto. 6.3 Documentación del Software Se describe los planes planes de documentac documentación ión para el proyecto proyecto software. software. Los plan planes es de docu docume men ntaci tació ón espec specif ific icar aría ían n los los reque equeri rimi mien ento toss de docu docume ment ntac ació ión n y la impo import rtan anci cia, a, refer eferen enci cias as,, revis evisio ione ness para para la docu docume ment ntac ació ión n del del sw sw.. El plan plan de docu docume ment ntac ació ión n pued puede e adem además ás cont conten ener er un estil estilo o de guía guía,, conv conven encio cione ness de nomb nombrre y form format atos os de documentación. 7 Planificación de las Actividades del Trabajo Esta parte definen las actividades y sus alcances, identifica las relaciones de dependencia entre las actividades, estado de los recursos, asegurar la calidad y las consideraciones de riesgo. 7.1 Definiciones de las Actividades y Alcance Aquí se especifican y definen las actividades a ser completadas para satisfacer los requerimientos del proyecto. El alcance de cada actividad seria claramente definida, esta identificación puede ser basada sobre la numeración de proyectos y/o títulos descriptivos.
7.2 Dependencia de las Actividades Se espe especi cifi fica ca el orde orden n entr entre e las las acti activi vida dade dess del del proy proyec ecto to y tar tareas eas asociadas para describir las relaciones de dependencia entre actividades y eventos externos. 7.3 Itinerario de Actividades Estas listas expresan calendarios de tiempo o de incrementos relativos del producto clave sobre el proyecto principal. 7.4 Presupuesto de Actividades Especifica el presupuesto de varias tareas y actividades. 7.5 Requerimientos de Recursos de las Actividades En esta parte se especifica, como una función de tiempo, los recursos tota totale less esti estima mado doss para para comp comple leta tarr la acti activi vida dad. d. Núme Númerros y tipo tipo de pers person ona al, sop soporte orte de sof softwar tware e y har hardwar dware e y reque equeri rimi mien ento toss de mantención para las actividades del producto y tareas. 8 Componentes Adicionales Cier Cierto toss comp compon onen ente tess adic adicio iona nale less que que pued puedan an ser ser requ requer erid idos os pued pueden en ser ser incluidos para ser anexados como material adicional al SPMP. SPMP. 8.1 Anexo Incl Inclui uirí ría a deta detall lles es espe especí cífi fico coss del del pers person onal al,, deta detall lles es de los los cost costos os esti estima mado dos, s, deta detall lles es de las las estr estruc uctu tura rass de trab trabaj ajo o “br “breakd eakdow own n” e información suplementaria para una adecuada comprensión del SPMP
Fuentes 1: Tipos de Software, http://tecnomaestros.awardspace.com/tipos_software.php, 2: Metodología y software para la construcción y seguimiento del Cuadro de Mando Integral en las TIC´s (European Software Institute), http://winred.com/management/metodologiahttp://winred.com/management/metodologia-y-software-p y-software-para-la-construccion-yara-la-construccion-y-
seguimiento-del-cuadro-de-mando-integral-en-las-tic-s/gmx-niv116con1642.htm, 3: Control de versiones, http://es.wikipedia.org/wiki/Contr http://es.wikipedia.org/wiki/Control_de_versiones, ol_de_versiones, 4: Diagrama de Gantt, http://es.wikipedia.org/wiki/Diagrama_de_Gantt, 5: Técnica de revisión y evaluación de programas, http://es.wikipedia.org/wiki/PERT, 5.1: Auditorias de Seguridad, www.germinus.com/sala_prensa/articulos/Auditorias%20Seguridad.pdf, 5.2: Fase de Pruebas, http://lsi.ugr.es/~arroyo/inndoc/do http://lsi.ugr.es/~arroyo/inndoc/doc/pruebas/pruebas_d.php, c/pruebas/pruebas_d.php, 6: Gestión de Configuración del Software, http://www.histaintl.com/soluciones/configuracion/configuracion.php,