introductorio de la unidad 2 las claves (keys issues) de mantenimiento de software

Upload: gabriel-silva-espinoza

Post on 21-Feb-2018

327 views

Category:

Documents


0 download

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