introductorio de la unidad 2 las claves (keys issues) de mantenimiento de software
TRANSCRIPT
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
1/11
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
2/11
INACAP VIRTUALTALLER DE MANTENCIN DE SOFTWAR
TI121
UNIDAD 2: LAS CLAVES (KEYS ISSUES) DE MANTENIMIENTO DE SO
Taller de mantencin de softwareTI1211
Unidad 2: Las claves (keys issues) de mantenimiento de software
COPYRIGHT 2014 TODOS LOS DERECHOS RESERVADOS INACAP | INACAP VIRTUAL
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
3/11
TALLER DE MANTENCIN DE SOFTWARE
INACAP VIRTUALTALLER DE MANTENCIN DE SOFTWAR
TI121
UNIDAD 2: LAS CLAVES (KEYS ISSUES) DE MANTENIMIENTO DE SO
ndice
NTRODUCCIN 5
Contenidos 6
Tema 1. Estudio del sistema antiguo 6
1.1 Entendimiento del software 6
1.2 Tcnicas 7
1.3 Pruebas 8
1.4 Anlisis de impacto 8
1.5 Mantenibilidad (maintainability) 9
Tema 2: Gestin del proyecto de mantenimientos 10
2.1 Alineamiento con los objetivos de la organizacin 10
2.2 Asignaciones de equipo 10
2.3 Proceso 11
2.4 Aspectos organizacionales 12
2.5 Outsourcing 12
Tema 3: Estimaciones y mtricas 14
3.1 Estimacin de tamao 14
3.2 Estimacin de esfuerzo 14
3.3 Estimacin de costos 15
3.4 Modelos 15
3.5 Mtricas 16
CONCLUSIONES 18
BIBLIOGRAFA 19
INTRODUCCIN
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
4/11
TALLER DE MANTENCIN DE SOFTWARE
INACAP VIRTUALTALLER DE MANTENCIN DE SOFTWAR
TI121
UNIDAD 2: LAS CLAVES (KEYS ISSUES) DE MANTENIMIENTO DE SO
Contenidos
1.1 Entendimiento del software
Cuando vamos a modicar un software, no siempresabemos su funcionamiento y en muchas oportuni-dades, ni siquiera lo conocemos. A veces tenemosla suerte que debemos modicar uno que nosotroshemos desarrollado, pero eso tampoco es garantade que nos acordemos de cmo funciona al 100%,si en el intertanto hemos desarrollado otros, cono-cido otros lenguajes y/o incorporado otros conoci-mientos relacionados. Sabemos tambin que cadaprogramador aplica su propia lgica al desarrollodel cdigo, por lo tanto a veces no es fcil enten-derlo.
Estas son algunas de las consideraciones que de-bemos tomar cuando decidimos aplicar IngenieraDirecta (realizar un desarrollo nuevo partiendo decero y dejando de lado el sistema actual, especi-cando de nuevo el sistema, con altos riesgos parael negocio) o Reingeniera del Software (tomando elsoftware existente, entenderlo y modicarlo).
Ilustracin 1: recuperado de: Proceso de Reingeniera. Ingeniera del software,
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
5/11
TALLER DE MANTENCIN DE SOFTWARE
INACAP VIRTUALTALLER DE MANTENCIN DE SOFTWAR
TI121
UNIDAD 2: LAS CLAVES (KEYS ISSUES) DE MANTENIMIENTO DE SO
Fuente: elaboracin propia.
1.5 Mantenibilidad (maintainability)
Es importante mantener la utilidad de un sistema,cambindolo para adaptarlo a los nuevos requeri-mientos que surgen por el uso de este. Un softwaremantenible es aquel que puede adaptarse para teneren cuenta los nuevos requerimientos con un costorazonable y con una baja probabilidad de introducir
errores en el sistema, al realizar los cambios corres -pondientes.
a) Caracterstica de mantenibilidad: una organiza-cin es un sistema abierto, que interacta con otrasen una sociedad cambiante (por cultura, por tecno-loga, etc.), por lo tanto esta tambin debe ir adap -tndose a esos cambios, al igual que cada uno desus procesos y al software que estn relacionados.Por lo tanto, este debera tener la capacidad de ser
modicado. La mantenibilidad es un requerito crtico y la arquitectura del sistema debersearse usando componentes independientepuedan cambiarse con facilidad. Los productolos datos deberan separarse de los consumiy tendran que evitar las estructuras de datospartidas.
b) Mejoramiento de la mantenibilidad de sis
para mejorarla, se puede hacer reingeniera dtema. Esta opcin debera elegirse cuando ladad de este se ha degradado por los cambiostinuos y cuando dichas modicaciones son tonecesarias. Este proceso puede incluir el desade nuevos componentes de interfaz para que tema original pueda trabajar con otros sistemadesarrollados.
Contenidos
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
6/11
TALLER DE MANTENCIN DE SOFTWARE
INACAP VIRTUALTALLER DE MANTENCIN DE SOFTWAR
TI121
UNIDAD 2: LAS CLAVES (KEYS ISSUES) DE MANTENIMIENTO DE SO
Tema 2: Gestin del proyecto de mantenimientos
2.3 Proceso
Un proceso de mantenimiento de software es un conjunto de actividades y resultados asociados que produmodicacin de un producto de software. Existen cuatro actividades fundamentales, que son comunes tantla mantencin, como para todos los procesos del software:
Especicacin, donde los clientes e ingenieros denen el software a producir y las restricciones sobre sracin. Desarrollo, donde el software se disea y programa. Validacin, donde se asegura que es lo que el cliente requiere. Evolucin, donde el software se modica para adaptarlo a los cambios requeridos por el cliente y el me
Veremos a continuacin, ms en detalle los procesos de mantencin y sus diferencias con el proceso de desa
a) Introduccin en el proceso de mantencin:se corresponde con hacer modicaciones en el software exiimplantando nuevas prcticas, mtodos o herramientas, cambiando el orden de las actividades, introducieeliminando entradas y salidas del proceso, o incorporando nuevos roles y responsabilidades.
Identificacin de la mejora: utilizar los resultados del anlisispara identificar la calidad y duracin de los costos, donde
los factores del proceso influyen de forma adversa en lacalidad del producto.
Priorizacin de la mejora: evaluacin de los cambios yestablecimiento de prioridades para su implementacin.
Introduccin del cambio del proceso: significa agregarnuevos procedimientos, mtodos y herramientas e
integrarlas con otras actividades del proceso
Capacitacin en el cambio del proceso: se debe tenerun plan de capacitacin a los usuarios y confeccionar
un manual de procedimiento.
Refinamiento del cambio: es necesario que exista una fasede ajuste donde se descubren problemas m enores y seproponen e introducen las modificaciones al proceso.
Fuente: elaboracin propia.
Existen cinco etapas clave en el proceso de cambio de procesos:
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
7/11
TALLER DE MANTENCIN DE SOFTWARE
INACAP VIRTUALTALLER DE MANTENCIN DE SOFTWAR
TI121
UNIDAD 2: LAS CLAVES (KEYS ISSUES) DE MANTENIMIENTO DE SO
b) Diferencias y similitudes con el proceso de desa-rrollo de software: el mantenimiento tiene muchassimilitudes con el proceso de desarrollo de estemismo, pero tiene algunos puntos que aumentan sucomplejidad:
La comprensin de la documentacin existente(de haberla).
La comprensin del cdigo escrito por otras per-sonas, con su propia lgica.
La manera de realizar algunas de las pruebas, yaque tenemos un sistema equivalente que est en
produccin.
La manera de sustituirlo, porque debemosdesinstalar el sistema antiguo (o los mdulos quesean necesarios) y dejar 100% operativo el sistemamodicado.
2.4 Aspectos organizacionales
Existen factores organizacionales que pueden afec-tar el xito de un proyecto (de desarrollo o de man-tenimiento), aun cuando este se haya completado100%. Estos son:
Cambios en el proceso: se necesitar formacin.Si los cambios son signicativos, o implican que lagente pierda su trabajo, existe el peligro de que losusuarios se resistan a la introduccin del sistema.
Cambios en el trabajo: se podran resistir a la in-troduccin del sistema en la organizacin.
Cambios organizacionales:cambia la estructu-ra de poder en una organizacin?, por ejemplo, siuna organizacin depende de un sistema complejo,aquellos que saben cmo operar el sistema tienenun gran poder poltico.
Otros factores que pueden alterar el mantenimien-to de un software son aquellos relacionados con lasdecisiones estratgicas que se toman al interior de
una organizacin cuando un sistema existente, estcon problemas. Estos son:
Desechar completamente el sistema: esta op-cin debera elegirse cuando el sistema no consti-tuye una contribucin efectiva para los procesos denegocio.
Dejar el sistema sin cambios y continuar con unmantenimiento regular: esta opcin debera elegir-se cuando el sistema todava es necesario pero esmuy estable y los usuarios del sistema solicitan unnmero relativamente pequeo de peticiones decambio.
Hacer reingeniera del sistema para mejorar sumantenibilidad: esta opcin debera escogersecuando la calidad del sistema se ha degradado porlos cambios continuos y cuando estos todava sonnecesarios
Reemplazar todo o parte del sistema con unonuevo: se debera optar por esta, cuando otros fac -tores implican que los sistemas comerciales ten-dran que permitir desarrollar el nuevo sistema conun coste razonable.
2.5 Outsourcing
Es una de las alternativas a las cuales nos enfrenta-mos al tener en nuestras manos, la realizacin delmantenimiento de software, y si los recursos conlos que contamos no son sucientes en nmero y/ocalicacin, es preferible dejarlo en manos de untercero.
Outsourcing o subcontratacin, es la externaliza-cin y/o tercerizacin de servicios. Esta forma detrabajar, permite que la empresa mandante destinerecursos (principalmente econmicos) para que otraorganizacin realice una tarea por ella, mediante uncontrato. Pudiendo as, destinar sus capacidades,procesos y controles a la parte importante del ne-gocio. En nuestro caso, consiste en contratar a unaempresa proveedora de servicios informticos, paraque le realice el mantenimiento a un software.
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
8/11
TALLER DE MANTENCIN DE SOFTWARE
INACAP VIRTUALTALLER DE MANTENCIN DE SOFTWAR
TI121
UNIDAD 2: LAS CLAVES (KEYS ISSUES) DE MANTENIMIENTO DE SO
Para profundizar ms sobre el tema revisa laseccin materiales en plataforma y revisa:
Material de profundizacin 1.
Contenidos
Para profundizar ms sobre el tema revisa lseccin materiales en plataforma y repasa
Material de profundizacin 2.
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
9/11
TALLER DE MANTENCIN DE SOFTWARE
INACAP VIRTUALTALLER DE MANTENCIN DE SOFTWAR
TI121
UNIDAD 2: LAS CLAVES (KEYS ISSUES) DE MANTENIMIENTO DE SO
Fuente: Kibele Consulting S.L. www.kibeleconsulting.com
Complejidad ciclomtica (CC)
ELECCI N DE LAS M TRICAS ASOCIADAS A LA MANTENIBILIDAD
Mtricas de calidad A C S T
Cantidad de las instrucciones (LOC)
Frecuencia de los comentarios (PCOM)
Peso de los mtodos por clase (WMC)
Nmero de clases base (NCB)
Ausencia de cohesin (LCOM)
Profundidad del rbol de herencia (DIT)
Nmero de hijos (NOC)
Cobertura de las pruebas unitarias (COB)
Nmero de errores de las pruebas unitarias (UTE)
Violaciones en cdigo fuente (VCF)
Violaciones de estilo (VST)
Distancia a la secuencia principal (D)
Cdigo duplicado (CDU)
A: Analyzability
C: Changeability
S:Stability
T:Testability
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
10/11
TALLER DE MANTENCIN DE SOFTWARE
INACAP VIRTUALTALLER DE MANTENCIN DE SOFTWAR
TI121
UNIDAD 2: LAS CLAVES (KEYS ISSUES) DE MANTENIMIENTO DE SO
CONCLUSIONES BIBLIOGRAFA
Referencias bibliogrcas
Gmez, Lpez, Migani, Otaz. COCOMO 2 Resumen.
McConnell, S. (1997). Desarrollo y gestin de proyectos informticos, Mc Graw Hill.
Putnam, Lawrence H and Myers W. (2003) Five Core Metrics. DH Publishing.
Pressman, R.S. (2005.)Ingeniera del Software. Un enfoque prctico. Mc Graw Hill.
Bibliografa obligatoria
Bennett, S. (2006). Anlisis y diseo orientado a objetos de sistemas usando UML, McGraw Hill.
Booch, G. (2006). El lenguaje unicado de modelado: gua del usuario. Pearson Education.
Campderrich, B. (2003). Ingeniera del software. Editorial UOC/e-Libro Castillo, A. (2010).Conceptualizacin del proceso de implementacin de software: perspectivas gil y disciplinada,Revista Ciencia e Ingeniera, Vol. 31, No. 3, p.
Sommerville, I, (2005). Ingeniera del software. (7a ed). Pearson Education.
-
7/24/2019 Introductorio de La Unidad 2 Las Claves (Keys Issues) de Mantenimiento de Software
11/11