Ingeniería del So1ware II

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Ingeniería del So1ware II"

Transcripción

1 Ingeniería del So1ware II Tema 08. Mantenimiento de Sistemas So1ware Pablo Sánchez Barreiro DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia: CreaOve Commons BY NC SA 3.0

2 Introducción Mantenimiento de Sistemas Software Mantenimiento Software Análisis y Especificación de Requisitos Despliegue Diseño Arquitectónico Mantenimiento Pruebas Diseño Detallado Implementación Pablo Sánchez (MATESCO) Mantenimiento Software 2 / 62

3 Introducción Importancia Mantenimiento software Importancia del Mantenimiento Software Identificado como una de las causas de la crisis del software [7]. Pablo Sánchez (MATESCO) Mantenimiento Software 3 / 62

4 Introducción Importancia Mantenimiento software Mantenimento software vs sistemas clásicos Permiten pequeñas adaptaciones, pero su modificación es muy costosa. Suele implicar la construcción de un nuevo sistema. Pablo Sánchez (MATESCO) Mantenimiento Software 4 / 62

5 Introducción Importancia Mantenimiento software Mantenimento software vs sistemas clásicos El coste material de un producto software es despreciable. Un producto software es altamente modificable. Hasta el punto de poder llegar a ser un producto completamente nuevo (ej. Linux). Pablo Sánchez (MATESCO) Mantenimiento Software 5 / 62

6 Introducción Importancia Mantenimiento software Costes históricos mantenimiento software Listas de bugs y foros de soporte en productos comerciales. Actualizaciones de productos comerciales (ej. Windows Update, Acrobat Update) Pablo Sánchez (MATESCO) Mantenimiento Software 6 / 62

7 Introducción Importancia Mantenimiento software Importancia mantenimiento software Adaptación al euro - Efecto Pantallas táctiles móviles. Sistemas de tarificación telefonía móvil. Negocios de software libre basados en consultoría y mantenimiento (ej. openarchitecureware Actualmente, facilidad de mantenimiento, adaptabilidad y evolución son las características más importantes de la mayoría de los sistemas software. Pablo Sánchez (MATESCO) Mantenimiento Software 7 / 62

8 Introducción Importancia Mantenimiento software En Ingeniería del Software no hay verdades universales Pablo Sánchez (MATESCO) Mantenimiento Software 8 / 62

9 Introducción Objetivos del tema Este no es el objetivo del tema Pablo Sánchez (MATESCO) Mantenimiento Software 9 / 62

10 Introducción Objetivos del tema Esto tampoco es el objetivo del tema Pablo Sánchez (MATESCO) Mantenimiento Software 10 / 62

11 Introducción Objetivos del tema Objetivos del tema Objetivos Aprender a analizar, planificar, ejecutar y gestionar acciones de mantenimiento software. Pablo Sánchez (MATESCO) Mantenimiento Software 11 / 62

12 Mantenimiento Software Definiciones Definiciones mantenimiento software Estándar IEEE 1219 La modificación de un producto software después de su entrega al cliente o usuario para corregir defectos, para mejorar el rendimiento u otras propiedades deseables, o para adaptarlo a un cambio de entorno [9]. Estándar ISO/IEC Conjunto de actividades destinadas a proporcionar soporte económicamente rentable para un determinado producto software. Estas actividades se realizan tanto antes de la entrega del producto como después de la entrega del mismo. Las actividades previas a la entrega incluyen las actividades destinadas a planificar, anticipar y preparar actividades de mantenimiento posteriores. Las actividades posteriores a la entrega incluyen modificaciones del producto software, formación y asistencia al usuario [8]. Pablo Sánchez (MATESCO) Mantenimiento Software 12 / 62

13 Mantenimiento Software Definiciones Definiciones mantenimiento software Mantenibilidad (Maintainability) Capacidad de un producto software de ser modificado. Estas modificaciones incluyen correcciones, mejoras, o adaptaciones a cambios en el entorno, los requisitos o las especificaciones funcionales [8]. Efecto dominó (ripple effect) Un determinado cambio en un producto software se dice que genera un efecto dominó cuando a consecuencia del cambio debemos realizar cambios adicionales en el sistema. Estabilidad de un diseño software Capacidad de resistencia al efecto dominó que tendrá un sistema software derivado de dicho diseño cuando es modificado [13]. Pablo Sánchez (MATESCO) Mantenimiento Software 13 / 62

14 Mantenimiento Software Definiciones Definiciones mantenimiento software Sistema Heredado (Legacy Systems) Un sistema heredado es un método, tecnología, computador o aplicación antiguo que continúa en uso porque aún satisface las necesidades de los usuarios, aún existiendo nuevas tecnologías o métodos más eficientes disponibles (ej. aplicaciones COBOL en banca, Amadeus). Pablo Sánchez (MATESCO) Mantenimiento Software 14 / 62

15 Mantenimiento Software Tipos de mantenimiento software Tipos de acciones de mantenimiento software 1 Correctivo: localiza y corrige defectos en un programa tras su entrega (ej. IVA al 15%, agujeros de seguridad). Puede ser urgente o no urgente. 2 Adaptativo: Modificación para adaptarse a un cambio en el entorno (ej. Euro, pantallas táctiles). 3 Perfectivo: Modificación para detectar y corregir fallos latentes antes de que se conviertan en carencias [8]. Modificación para modificar o añadir nuevas funcionalidades [11]. (Ej. firma digital en banca online). 4 Preventivo: Modificación para detectar y corregir fallos latentes antes de que se conviertan en fallos operacionales [8]. Mejorar las propiedades del software [11]. (Ej. recodificar para aplicar patrones de diseño). Pablo Sánchez (MATESCO) Mantenimiento Software 15 / 62

16 Mantenimiento Software Tipos de mantenimiento software Tipos de cambios en productos software 1 Anticipado: Un cambio se dice que es anticipado cuando ha sido previsto durante el desarrollo del sistema software y se han adoptado decisiones de diseño que permiten acomodar la variación (ej. uso de constantes, patrón estrategia, sistema de plugins de Eclipse). 2 No anticipado: Todo aquel que no es anticipado. There is not silver bullet [4]. Pablo Sánchez (MATESCO) Mantenimiento Software 16 / 62

17 Mantenimiento Software Principales Retos Mantenimiento Software Principales Retos Mantenimiento Software 1 El efecto iceberg (o el efecto usillos/reforma). 2 No es lo mismo producir que mantener: Diferentes medidas de productividad entre desarrollo y mantenimiento:40 LDC desarrollado por 1 LDC mantenido [11]. Pablo Sánchez (MATESCO) Mantenimiento Software 17 / 62

18 Mantenimiento Software Principales Retos Mantenimiento Software Código heredado (legacy code) Desarrollado con tecnologías y técnicas anticuadas. No hay documentación. Si la hay, está en notación Benito & Manolo, que ya no trabajan en la empresa. Reescribirlo entero no es factible (ej. Amadeus). El sistema no tiene porque estar bien diseñado, programado, ni haber sido desarrollado siguiendo un proceso de ingeniería. Pablo Sánchez (MATESCO) Mantenimiento Software 18 / 62

19 Mantenimiento Software Principales Retos Mantenimiento Software Cambios en sistemas heredados/indebidamente documentados Pablo Sánchez (MATESCO) Mantenimiento Software 19 / 62

20 Mantenimiento Software Principales Retos Mantenimiento Software Degradación calidad producto software class Bill { float amounttobill; float calculatetotalcharge() { return amounttobill + (amounttobill * (16.0/100.0); } // calculatetotalcharge() } //Bill Pablo Sánchez (MATESCO) Mantenimiento Software 20 / 62

21 Mantenimiento Software Principales Retos Mantenimiento Software Degradación calidad producto software class Bill { float amounttobill; float calculatetotalcharge(int clienttype) { if (clienttype == 0) { return amounttobill + (amounttobill * (16.0/100.0); } else { return amounttobill + (amounttobill * (6.0/100.0); } } // calculatetotalcharge() } //Bill Pablo Sánchez (MATESCO) Mantenimiento Software 21 / 62

22 Mantenimiento Software Principales Retos Mantenimiento Software Degradación calidad producto software class Bill { float amounttobill; float calculatetotalcharge(int clienttype, int producttype) { if ((clienttype == 0) && (producttype == 0)) { return amounttobill + (amounttobill * (16.0/100.0); } else if ((clienttype == 0) && (producttype == 1)) { return amounttobill + (amounttobill * (4.5/100.0); } else if ((clienttype == 1) && (producttype == 0)) { return amounttobill + (amounttobill * (12.0/100.0); } else if ((clienttype == 1) && (producttype == 1)) { return amounttobill + (amounttobill * (4.5/100.0); } } // calculatetotalcharge() } //Bill Pablo Sánchez (MATESCO) Mantenimiento Software 22 / 62

23 Mantenimiento Software Principales Retos Mantenimiento Software Añadiendo iva al total mensual class Bill { float amounttobill; float calculatetotalcharge(int clienttype, int producttype) { float total, iva; if ((clienttype == 0) && (producttype == 0)) { iva = amounttobill * (16.0/100.0); } else if ((clienttype == 0) && (producttype == 1)) { iva = amounttobill * (4.5/100.0); } else if ((clienttype == 1) && (producttype == 0)) { iva = amounttobill * (12.0/100.0); } else if ((clienttype == 1) && (producttype == 1)) { iva = amounttobill * (4.5/100.0); } total = amounttobill + iva; IvaLogger.addIva(iva); return total; } // calculatetotalcharge() } //Bill Pablo Sánchez (MATESCO) Mantenimiento Software 23 / 62

24 Mantenimiento Software Principales Retos Mantenimiento Software Principales Problemas Mantenimiento Sw (Resumen) 1 Efectos dominó y efecto iceberg. 2 Cambios ad-hoc, ausencia metodológica del cambio. 3 Ausencia de documentación adecuada (decisiones de diseño). 4 Degradación calidad del producto. Pablo Sánchez (MATESCO) Mantenimiento Software 24 / 62

25 Mantenimiento Software Principales Retos Mantenimiento Software Solución para el mantenimiento software Establecer procedimientos claramente definidos y estandarizados para el mantenimiento software, que se basen en técnicas y herramientas para el mantenimiento claramente definidas y validadas. Asignarle los recursos adecuados, tanto físicos y económicos como humanos, Usar técnicas para control de calidad, tanto sobre el producto como sobre el proceso. Ejemplo: S3M (http://www.s3m.ca/). Pablo Sánchez (MATESCO) Mantenimiento Software 25 / 62

26 Metodologías para el mantenimiento software Organización del equipo humano Organigrama del equipo humano Atención al usuario Equipo de diseño y desarrollo Cliente Gestor de peticiones Planificador Equipo de Mantenimiento Gestor de Mantenimiento Pablo Sánchez (MATESCO) Mantenimiento Software 26 / 62

27 Metodologías para el mantenimiento software MANTEMA [12] Procesos de mantenimiento software act [ Mantema ] Petición de Mantenimiento error tipo? otro Severidad? Alta Atender directamente Baja Evaluar, clasificar, encolar Adaptación Mejora Evaluar y clasificar Encolar Si proceder? No Elaborar Informe Seleccionar primera tarea cola Planificar Analizar Diseñar Implementar Probar Pablo Sánchez (MATESCO) Mantenimiento Software 27 / 62

28 Metodologías para el mantenimiento software Procesos de mantenimiento software Lowel Jay Arthur [1] Proceso de evolución de un sistema Petición de Cambio Analisis de Impacto Planificación de Versiones Implementación de Cambios Entrega del Sistema Reparación de defectos Adaptación de Plataforma Perfeccionamiento del Sistema Proceso de cambios de urgencia Petición de Cambio Analizar código fuente Parchear código fuente Entregar sistema parcheado Pablo Sánchez (MATESCO) Mantenimiento Software 28 / 62

29 Metodologías para el mantenimiento software Procesos de mantenimiento software Gestión de petición de cambio en Bugzilla New bug from a user with canconfirm or a product without UNCONFIRMED state UNCONFIRMED Bug is reopened, Bug confirmed or was never confirmed receives enough votes Developer takes possession NEW Ownership is changed Developer takes possession Development is finished with bug Possible resolutions: FIXED DUPLICATE WONTFIX WORKSFORME INVALID ASSIGNED Development is finished with bug Developer takes possession Issue is resolved RESOLVED Bug is closed QA not satisfied with solution QA verifies solution worked REOPEN Bug is reopened VERIFIED Bug is reopened Bug is closed CLOSED Pablo Sánchez (MATESCO) Mantenimiento Software 29 / 62

30 Metodologías para el mantenimiento software Documentación de cambios software Plantillas para documentación cambios software Tomada de Basili et al [2] 1 Descripción del cambio. 1 Localización. 2 Subsistemas afectados. 3 Módulos afectados. 4 Entradas/salidas afectadas. 5 Tamaño. 6 Líneas de código añadidas, modificadas y eliminadas. 7 Módulos examinados, añadidos, modificados y eliminados. 8 Tipo del cambio (Correctivo Perfectivo Preventivo Adaptativo) 2 Descripción del proceso de cambio. 1 Esfuerzo dedicado. 2 Experiencia del personal de mantenimiento 3 Tiempo del personal de mantenimiento trabajando en el sistema. 4 Tiempo del personal trabajando en el dominio. 3 Descripción del problema. 1 Descripción del error. Causa y origen del error. Momento del proceso en que se produjo el error. 2 Dificultad. Causas que dificultaron la modificación. Actividad más difícil relacionada con la modificación. 3 Cantidad de esfuerzo desperdiciado. 4 Decisiones que se podrían haber tomado para disminuir la dificultad de los errores. 5 Artefactos relacionados con el cambio. Pablo Sánchez (MATESCO) Mantenimiento Software 30 / 62

31 Metodologías para el mantenimiento software Documentación de cambios software Plantillas para documentación cambios software Plantilla aleatoria encontrada en internet (moodle). Plantilla modelo de bugzilla: https://landfill.bugzilla.org/bugzilla-3.6-branch/show_bug.cgi?id=1 Pablo Sánchez (MATESCO) Mantenimiento Software 31 / 62

32 Técnicas de mantenimiento Introducción Soluciones técnicas para el problema de mantenimiento 1 Ingeniería Inversa: Reconstruir el proceso de ingeniería de un producto a partir de ciertos artefactos de dicho producto. 2 Reingeniería: Examen y modificación de un sistema para reconstruirlo en una nueva forma. Puede precisar de un proceso de ingeniería inversa para reconstruir el proceso de ingeniería del producto. 3 Reestructuración: Modificación del software para hacerlo más fácil de entender y cambiar o menos susceptible de incluir errores en cambios posteriores. 4 Transformaciones: Manipulación, por medio de transformaciones automáticas ejecutadas por un computador, del código o modelo de un sistema para añadirle/modificarle/eliminarle elementos. (ej. pasar un sistema a distribuido). Pablo Sánchez (MATESCO) Mantenimiento Software 32 / 62

33 Técnicas de mantenimiento Introducción Soluciones técnicas para el problema de mantenimiento Pablo Sánchez (MATESCO) Mantenimiento Software 33 / 62

34 Técnicas de mantenimiento Ingeniería Inversa Qué es Ingeniería Inversa? Pablo Sánchez (MATESCO) Mantenimiento Software 34 / 62

35 Técnicas de mantenimiento Ingeniería Inversa Qué es Ingeniería Inversa? Pablo Sánchez (MATESCO) Mantenimiento Software 35 / 62

36 Técnicas de mantenimiento Ingeniería Inversa Ingeniería Inversa de código Java a UML class Persona { class Telefono { String nombre; int numero; int edad; String operador; Set<Telefono> telefonos; int codigointernacional; String getname() { }... } }... class Profesor extends Persona { String centro; } Pablo Sánchez (MATESCO) Mantenimiento Software 36 / 62

37 Técnicas de mantenimiento Ingeniería Inversa Ingeniería Inversa de código Java a UML class [ ReverseEngineering ] Persona +nombre : String +edad : Integer +telefonos 0..* Telefono +numero : int +operador : String +codigointernacional : int Profesor +centro : String Pablo Sánchez (MATESCO) Mantenimiento Software 37 / 62

38 Técnicas de mantenimiento Ingeniería Inversa Ingeniería Inversa de bases de datos relacionales Region rname salesman_name id Customer cid cname address phone rname id ref Sales pnum cid volume Product pnum pname id Pablo Sánchez (MATESCO) Mantenimiento Software 38 / 62

39 Técnicas de mantenimiento Ingeniería Inversa Ingeniería Inversa de bases de datos relacionales 1 Por cada tabla sin referencias a otras tablas, creamos una entidad. 2 Para las entidades creadas, copiamos atributos y marcamos claves primarias. Marcamos las tablas como procesadas. 3 Por cada tabla con referencias externas, creamos una entidad. 4 Para las entidades creadas, copiamos atributos y marcamos claves primarias. 5 Por cada clave externa, creamos una relación entre la entidad creada y la referenciada. 6 Para dicha relación, el extremo de tabla referenciada, tendrá cardinalidad 1, salvo restricción expresa. 7 Para dicha relación, el extremo de la entidad creada, tendrá cardinalidad 0.., salvo restricción expresa. 8 Si una entidad tiene: (1) su clave primaria formada por la unión de las claves primarias de tablas con las cuales se relaciona; y (2) los extremos de las relaciones con las otras entidades tiene como cardinalidad superior 1, convertir dicha entidad en una relación n a m entre entidades. 9 Copiar los atributos de la entidad a atributos de la relación. Pablo Sánchez (MATESCO) Mantenimiento Software 39 / 62

40 Técnicas de mantenimiento Ingeniería Inversa Ingeniería Inversa de bases de datos relacionales rname id cid cname phone pnum pname Region Customer Product salesman_name rname address volume id Pablo Sánchez (MATESCO) Mantenimiento Software 40 / 62

41 Técnicas de mantenimiento Reestructuración Reestructuración: Refactorings Refactorización Proceso de cambio de un sistema software de forma que su comprtamiento externo no se vea afectado pero que mejora su estructura interna (ej. atributos relacionados a clase). Malos olores (bad smells) Indicios sobre potenciales problemas en el código (ej. código replicado, mismo método en varias subclases). Pablo Sánchez (MATESCO) Mantenimiento Software 41 / 62

42 Técnicas de mantenimiento Reestructuración Esquema de una refactorización 1 Nombre 2 Síntomas 3 Causas 4 Refactorizaciones propuestas 5 Beneficios esperados 6 Efectos colaterales y contraindicaciones Pablo Sánchez (MATESCO) Mantenimiento Software 42 / 62

43 Técnicas de mantenimiento Reestructuración Refactorizaciones más Populares [6] 1 Pull Up Method. 2 Move Method. 3 Add Parameter. 4 Move Field. 5 Rename Method. 6 Rename Field. Pablo Sánchez (MATESCO) Mantenimiento Software 43 / 62

44 Técnicas de mantenimiento Reestructuración Pull Up Method Descripción Existen métodos cuasi-idénticos en las subclases class [ Refactorings ] class [ Refactorings ] Student UniversityMember Teacher UniversityMember +setcourse( course : Course ) +setcourse( course : Course ) +setcourse( course : Course ) Student Teacher Pablo Sánchez (MATESCO) Mantenimiento Software 44 / 62

45 Técnicas de mantenimiento Reestructuración Move Method Descripción Un método de una clase A es más usado en una clase B que en la clase donde está definido. class [ MoveMethod ] Course +students Student 0..* +isincourse( course : Course ) class [ MoveMethod ] Course +isincourse( student : Student ) +students Student 0..* Pablo Sánchez (MATESCO) Mantenimiento Software 45 / 62

46 Técnicas de mantenimiento Reestructuración Add Parameter Descripción A method needs more information from its caller. class AP(left) [ AP(left) ] Student +getcontactdata() class AP(right) [ AP(right) ] Student +getcontactdata( faculty : Faculty ) OJO! puede crear listas interminables de argumentos Pablo Sánchez (MATESCO) Mantenimiento Software 46 / 62

47 Técnicas de mantenimiento Reestructuración Introduce Parameter Object Descripción Existen grupos de parámetros que están naturalmente relacionados class [ IPO(left) ] Student +booksession( day : int, month : int, year : int ) +notifyexam( day : int, month : int, year : int ) class [ IPO(right) ] Student +booksession( date : Date ) +notifyexam( date : Date ) Date +day : int +month : int +year : int Pablo Sánchez (MATESCO) Mantenimiento Software 47 / 62

48 Técnicas de mantenimiento Reestructuración Move Field Descripción Un atributo de una clase A es más usado en una clase B que en la clase donde está definido. class [ MoveField(left) ] +vat : int Product ProductType +kind 1 class [ MoveField(right) ] Product ProductType +kind +vat : int 1 Pablo Sánchez (MATESCO) Mantenimiento Software 48 / 62

49 Técnicas de mantenimiento Reestructuración Rename Field/Method Descripción El nombre de un atributo o método no es significativo class [ MoveField(right) ] Prd PrdT +t +c : int 1 class [ MoveField(right) ] Product ProductType +kind +vat : int 1 Pablo Sánchez (MATESCO) Mantenimiento Software 49 / 62

50 Técnicas de mantenimiento Reestructuración Replace Magic Number with Symbolic Constant Descripción Tenemos una constante numérica con un significado bien definido double calculatetotalcharge() { return this.totalamount + (this.totalamount*16.0/100.0); } refactors to static final double NORMAL_VAT = 16.0; double calculatetotalcharge() { return this.totalamount + (this.totalamount*normal_vat/100.0); } Pablo Sánchez (MATESCO) Mantenimiento Software 50 / 62

51 Técnicas de mantenimiento Reestructuración Replace Type Code with State/Strategy Descripción Una clase tiene un atributo que indica tipo y que afecta al comportamiento de la clase class [ TypeBased ] Product +calculatetotalcharge() ProductType +kind +vat : float 1 class [ Strategy ] +vat : float Product +calculatetotalcharge() NormalProduct +calculatetotalcharge() ReduceVATProduct +calculatetotalcharge() BasicProduct +calculatetotalcharge() Pablo Sánchez (MATESCO) Mantenimiento Software 51 / 62

52 Técnicas de mantenimiento Detección de clones Detección de código replicado Problema del código Happiness Sadness Base Functionality Access Control Fault Tolerance v2.0 Encryption ModuleA ModuleB ModuleC Module D ModuleE Pablo Sánchez (MATESCO) Mantenimiento Software 52 / 62

53 Técnicas de mantenimiento Detección de clones Detección de código replicado (Baxter et al [3]) Fragmento 1 en módulo A void Anadir(int e, lista l) { int i:=1; boolean enc:=false; while (not enc) { if l[i].ocupado then i++; else enc=true; } l.info:=e; l.ocupado:=true; } Fragmento 2 en módulo B void Insertar(lista l, int info) { int cont; boolean enc; Elemento e; cont:=1; enc:=false; while (enc==false) { e:=l[cont]; if (not e.ocupado) then { e.ocupado:=true; e.info:=info; l[cont]:=e; enc:=true; } else cont:=cont+1; } } Pablo Sánchez (MATESCO) Mantenimiento Software 53 / 62

54 Técnicas de mantenimiento Detección de clones Detección de código replicado (Baxter et al [3])... if a=b then for i=1 to f(n) aux = aux + f(i, i-1) end for a=0 end if... Pablo Sánchez (MATESCO) Mantenimiento Software 54 / 62

55 Técnicas de mantenimiento Detección de clones Detección de código replicado (Baxter et al [3]) Clones= Para cada s Subárboles Si s PesoMínimo entonces TablaHash = TablaHash {s} Para cada (s1, s2) que están en la misma entrada de TablaHash Si Similitud(s1,s2) UmbralDeSimilitud entonces Para cada s Subárboles(s1) Si s Clones entonces Clones=Clones - {s} Para cada s Subárboles(s2) Si s Clones entonces Clones=Clones - {s} Clones=Clones {s1} {s2} Pablo Sánchez (MATESCO) Mantenimiento Software 55 / 62

56 Métricas para mantenimiento software Métricas para diseños software orientados a objetos [5] Weigthed Method per Class (WMC) Depth of Inheritance Tree (DIT) Number of Children (NOC) Coupling Between Objects (CBO) Response For a Class (RFC) Lack of Cohesion in Methods (LCOM) WMC = n i=1 c i maximum lenght to the root of the tree number of inmediate subclasses of a class number of tother classes used by a class RFC = M + n i=1 R i LCOM = P Q Regla informal Un sistema será más mantenible cuanto mayor cohesión tenga y menor sea su acoplamiento [10]. Pablo Sánchez (MATESCO) Mantenimiento Software 56 / 62

57 Métricas para mantenimiento software Métricas para diseños software orientados a objetos [5] class [ OBSComponentClassesLarge ] System +register() +unregister() 0..* +customers 1..* Clerk +clerks +packorder() Customer +name : String +creditcard : String 1..* +books Book +author : String +title : String +customer 0..* +books +quantity : Integer ShoppingCart SelectedBook +additem( book : Book, quantity : Integer ) +removeitem( book : Book ) +checkout() +creditnotification( ok : Boolean ) +deliverynotification( ok : Boolean ) Pablo Sánchez (MATESCO) Mantenimiento Software 57 / 62

58 Conclusiones Conclusiones 1 Importancia del mantenimiento software y diferencia con sistemas clásicos. 2 Definción de mantenimiento software. Tipos de mantenimiento y cambio. 3 Importancia y problemas de los sistemas heredados. 4 Organización y gestión del mantenimiento. 5 Concepto y técnicas de Ingeniería Inversa. 6 Concepto y técnicas de Refactorización. 7 Métricas para mantenimiento. Pablo Sánchez (MATESCO) Mantenimiento Software 58 / 62

59 Bibliografía Referencias I Lowell Jay Arthur. Software Evolution: A Software Maintenance Challenge. John Wiley & Sons, February Victor Basili, Lionel Briand, Steven Condon, Yong-Mi Kim, Walcélio L. Melo, and Jon D. Valett. Understanding and Predicting the Process of Software Maintenance Release. In Proc. of the 18th Int. Conference on Software Engineering (ICSE), pages , Berlin, Germany, March Ira D. Baxter, Andrew Yahin, Leonardo Moura, Marcelo Sant Anna, and Lorraine Bier. Clone Detection Using Abstract Syntax Trees. In Proc. of the Int. Conference on Software Maintenance (ICSM), pages , Bethesda (Maryland, USA), November Pablo Sánchez (MATESCO) Mantenimiento Software 59 / 62

60 Bibliografía Referencias II Frederick P. Brooks. No Silver Bullet - Essence and Accidents of Software Engineering. IEEE Computer, 20(4):10 19, April Shyam R. Chidamber and Chris F. Kemerer. A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering, 20(6): , June Steve Counsell, Youssef Hassoun, George Loizou, and Rajaa Najjar. Common Refactorings, a Dependency Graph and Some Code Smells: an Empirical Study of Java OSS. In Guilherme Horta Travassos, José Carlos Maldonado, and Claes Wohlin, editors, Proc. of the Int. Symposium on Empirical Software Engineering (ISESE), pages , Rio de Janeiro (Brazil), September Pablo Sánchez (MATESCO) Mantenimiento Software 60 / 62

61 Bibliografía Referencias III Edsger W. Dijkstra. The humble programmer. Communications of the ACM, 15(10): , October ISO/IEC/IEEE. Software engineering software life cycle processes maintenance. Technical Report International Standard ISO/IEC 14764:2006, IEEE Std , September IEEE (The Institute of Electrical and Electronics Engineers). Standard for software maintenance. Technical Report IEEE Std , December David L. Parnas. On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM, 15(12): , Pablo Sánchez (MATESCO) Mantenimiento Software 61 / 62

62 Bibliografía Referencias IV Mario Piattini, José Villalba, Francisco Ruiz, Teresa Bastanchury, Macario Polo, Miguel Angel Martínez, and César Nistal. Mantenimiento del Software. Modelos, Técnicas y Métodos para la Gestión del Cambio. Macario Polo, Mario Piattini, Francisco Ruiz, and Coral Calero. MANTEMA: A Complete Rigorous Methodology for Supporting Maintenance Based On The ISO/IEC Standard. In Proc. of the 3rd European Conference on Software Maintenance and Reengineering (CSMR), pages , Amsterdam (The Netherlands), March Stephen S. Yau and James S. Collofello. Design Stability Measures for Software Maintenance. IEEE Transactions on Software Engineering, 11(9): , October Pablo Sánchez (MATESCO) Mantenimiento Software 62 / 62

Mantenimiento del Software

Mantenimiento del Software Mantenimiento del Software S1 Francisco Ruiz, Macario Polo Grupo Alarcos Dep. de Informática ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASTILLA-LA MANCHA http://alarcos.inf-cr.uclm.es/doc/mso/ Ciudad

Más detalles

12/07/2010. INGENIERIA DE SOFTWARE Tema 7: Mantenimiento del software. Contenido. 1. Aspectos Generales. 1. Aspectos Generales. 1. Aspectos Generales

12/07/2010. INGENIERIA DE SOFTWARE Tema 7: Mantenimiento del software. Contenido. 1. Aspectos Generales. 1. Aspectos Generales. 1. Aspectos Generales Contenido INGENIERIA DE SOFTWARE Tema 7: Mantenimiento del software Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca dtorres@mixteco.utm.mx Cubo 37 1. Aspectos generales 2. Características

Más detalles

MANTENIMIENTO DE SOFTWARE

MANTENIMIENTO DE SOFTWARE MANTENIMIENTO DE SOFTWARE Definición de Mantenimiento El estándar IEEE 1219 [IEEE, 1993] define el Mantenimiento del Software como la modificación de un producto software después de haber sido entregado

Más detalles

Ingeniería del So:ware II

Ingeniería del So:ware II Ingeniería del So:ware II Tema 04 (1). Integración de Proyectos So:ware Carlos Blanco Bueno DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN carlos.blanco@unican.es Este tema se publica bajo Licencia: CreaRve

Más detalles

MÉTRICAS DE SOFTWARE. Presentado por: Jhon Alexander Guamanga Cyntia Mileidy Herrera Andrés Felipe Orejuela

MÉTRICAS DE SOFTWARE. Presentado por: Jhon Alexander Guamanga Cyntia Mileidy Herrera Andrés Felipe Orejuela MÉTRICAS DE SOFTWARE Presentado por: Jhon Alexander Guamanga Cyntia Mileidy Herrera Andrés Felipe Orejuela Qué son las métricas de software? El concepto de métrica es el término que describe muchos y muy

Más detalles

Curso sobre Mantenimiento de Software: experiencia y propuestas.

Curso sobre Mantenimiento de Software: experiencia y propuestas. Curso sobre Mantenimiento de Software: experiencia y propuestas. Macario Polo Usaola, Francisco Ruiz González, Mario G. Piattini Velthuis Escuela Superior de Informática Universidad de Castilla-La Mancha

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Mantenimiento del Software

Mantenimiento del Software Mantenimiento del Software S3 Francisco Ruiz, Macario Polo Grupo Alarcos Dep. de Informática ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASTILLA-LA MANCHA http://alarcos.inf-cr.uclm.es/doc/mso/ Ciudad

Más detalles

Mantenimiento del Software

Mantenimiento del Software Mantenimiento del Software S9 Francisco Ruiz, Macario Polo Grupo Alarcos Dep. de Informática ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASTILLA-LA MANCHA http://alarcos.inf-cr.uclm.es/doc/mso/ Ciudad

Más detalles

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones.

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones. Refactorización Definición Refactorización (n) Cambio realizado a la estructura interna del software para hacerlo más fácil de comprender y más fácil de modificar sin cambiar su comportamiento observable.

Más detalles

Liberando el sistema. Ayudar a los usuarios a entender y usar el sistema. Entrenamiento Documentación Solución de Problemas Conversión Instalación

Liberando el sistema. Ayudar a los usuarios a entender y usar el sistema. Entrenamiento Documentación Solución de Problemas Conversión Instalación Liberando el sistema Ayudar a los usuarios a entender y usar el sistema Distintos tipos de usuarios Entrenamiento Documentación Solución de Problemas Conversión Instalación May-12 Ing. de Software Liberación

Más detalles

M t é rica c s a s de d l e Pr P oc o e c s e o s o de d Ing n e g n e i n er e ía a de d e So S f o twa w r a e e y y de d P od o u d c u t c o

M t é rica c s a s de d l e Pr P oc o e c s e o s o de d Ing n e g n e i n er e ía a de d e So S f o twa w r a e e y y de d P od o u d c u t c o Proceso de Ingeniería de Software Métricas del Proceso de Ingeniería de Software y de Producto 4. Métricas del proceso y el producto 4.1. Métricas del proceso 4.2. Métricas del producto 4.3. Calidad y

Más detalles

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática La Necesidad de Modelar Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer antes los planos? El modelo, los planos, ayuda a afrontar la complejidad del proyecto. Cuál es el lenguaje adecuado

Más detalles

Ges3ón de Proyectos So9ware

Ges3ón de Proyectos So9ware Ges3ón de Proyectos So9ware Tema 2.1 Integración Carlos Blanco Bueno Félix Óscar García Rubio Este tema se publica bajo Licencia: Crea5ve Commons BY- NC- ND 4.0 Objetivos Ampliar los conocimientos básicos

Más detalles

TEMA 9: MANTENIMIENTO.

TEMA 9: MANTENIMIENTO. TEMA 9: MANTENIMIENTO. 9.1.- INTRODUCCIÓN: La creencia habitual de un equipo de trabajo de que su tarea ha finalizado cuando instala y pone en funcionamiento el software en las instalaciones del cliente

Más detalles

Temas Selectos de Programación II

Temas Selectos de Programación II Temas Selectos de Programación II Métricas de Procesos de Software Jorge Moisés Trejo Vargas Maestría en Ciencias de la Computación Outline Introducción Procesos de Software Definición Métricas Programas

Más detalles

Mantenimiento del Software

Mantenimiento del Software Mantenimiento del Software S2 Francisco Ruiz, Macario Polo Grupo Alarcos Dep. de Informática ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASTILLA-LA MANCHA http://alarcos.inf-cr.uclm.es/doc/mso/ Ciudad

Más detalles

PROGRAMA DE DOCTORADO

PROGRAMA DE DOCTORADO PROGRAMA DE DOCTORADO Desarrollo de familias de productos de software desde un enfoque generativo DPTO. DE INGENIERÍA DE SOFTWARE Y SISTEMAS INFORMÁTICOS Tema 1 Introducción Autor: Rubén Heradio Gil Índice

Más detalles

Mantenimiento del Software

Mantenimiento del Software Mantenimiento del Software S4 Francisco Ruiz, Macario Polo Grupo Alarcos Dep. de Informática ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASTILLA-LA MANCHA http://alarcos.inf-cr.uclm.es/doc/mso/ Ciudad

Más detalles

Ingeniería del So9ware II

Ingeniería del So9ware II Ingeniería del So9ware II Tema 07. Ges+ón de Riesgos en Proyectos So9ware Pablo Sánchez Barreiro DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN p.sanchez@unican.es Este tema se publica bajo Licencia:

Más detalles

Ingeniería del So:ware II

Ingeniería del So:ware II Ingeniería del So:ware II Tema 09. Ges+ón de la Configuración de Sistemas So:ware Pablo Sánchez Barreiro DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN p.sanchez@unican.es Este tema se publica bajo Licencia:

Más detalles

Administración de Conocimiento como soporte al Mantenimiento de Software

Administración de Conocimiento como soporte al Mantenimiento de Software Administración de Conocimiento como soporte al Mantenimiento de Software Oscar M. Rodríguez 1, Ana I. Martínez 1, Jesús Favela 1, Aurora Vizcaíno 2 1 CICESE, Departamento de Ciencias de la Computación,

Más detalles

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web J.Corral-García, D.Cortés-Polo, C.Gómez-Martín, J.L.González-Sánchez

Más detalles

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS Dámaso López Aragón Introducción En la actualidad, la orientación a objetos es una nueva forma de comprender los problemas y modelar el negocio de una empresa,

Más detalles

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la

Más detalles

Programación del curso

Programación del curso Ingeniería Software 4º Físicas Programación del curso José M. Drake (drakej@unican.es) Patricia López Martínez ( lopezpa@unican.es ) Computadores y Tiempo Real Santander, 2008 Ingeniería de Programación

Más detalles

Técnicas Avanzadas de Testing Automático

Técnicas Avanzadas de Testing Automático Técnicas Avanzadas de Testing Automático Marcelo Frias ITBA - Buenos Aires, Argentina CONICET Preliminares: Calidad Validación y Verificación Especificaciones y V&V Análisis estático y dinámico Inspecciones

Más detalles

Instituto Tecnológico de Cd. Victoria

Instituto Tecnológico de Cd. Victoria Instituto Tecnológico de Cd. Victoria Maestría en Sistemas Computacionales Nombre de la asignatura: INGENIERÍA DE SOFTWARE ORIENTADA A PROCESOS. Línea de Trabajo: Ingeniería de Software Tiempo de dedicación

Más detalles

Proceso de testing. Ingeniería del Software I. Actividades del proceso de testing. Actividades del proceso de testing

Proceso de testing. Ingeniería del Software I. Actividades del proceso de testing. Actividades del proceso de testing Ingeniería del Software I Testing Martina Marré martina@dc.uba.ar Proceso de testing RECORDEMOS El testing no es sólo una etapa del proceso de desarrollo Tradicionalmente, empezaba al término de la implementación,

Más detalles

Gestión y Desarrollo de Requisitos en Proyectos Software

Gestión y Desarrollo de Requisitos en Proyectos Software Gestión y Desarrollo de Requisitos en Proyectos Software Ponente: María Jesús Anciano Martín Objetivo Objetivo Definir un conjunto articulado y bien balanceado de métodos para el flujo de trabajo de Ingeniería

Más detalles

Programación en Capas.

Programación en Capas. Programación en Capas. Ricardo J. Vargas Del Valle Universidad de Costa Rica, Ciencias de Computación e Informática, San José, Costa Rica, 506 ricvargas@gmail.com Juan P. Maltés Granados Universidad de

Más detalles

Ingeniería del Software I

Ingeniería del Software I Ingeniería del Software I 1er. Cuatrimestre 2002 Martina Marré martina@dc.uba.ar Organización 3 tipos de clase: teórica, práctica, taller 3 grupos de docentes un cronograma material en la WEB 2002 2 Aprobación

Más detalles

NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR

NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR Ignacio.bayugar@mercadolibre.com, i id nachobayugar@gmail.com NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE El desarrollo ágil El nuevo rol de

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida } REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)

Más detalles

Mantenimiento de Sistemas de Información

Mantenimiento de Sistemas de Información de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD MSI 1: REGISTRO DE LA PETICIÓN...4 Tarea MSI 1.1: Registro de la Petición... 4 Tarea MSI 1.2: Asignación de la Petición... 5 ACTIVIDAD

Más detalles

Los requisitos, un factor crítico en el éxito de los proyectos

Los requisitos, un factor crítico en el éxito de los proyectos Los requisitos, un factor crítico en el éxito de los proyectos La importancia de los modelos José Luis Fernández Sánchez Profesor titular ETSI Industriales- Universidad Politécnica de Madrid jlfdez@etsii.upm.es

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 3 Clases y Objetos Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Clases y

Más detalles

Ingeniería de Software II

Ingeniería de Software II Ingeniería de Software II Segundo Cuatrimestre de 2011 Clase Introductoria: Objetivos y organización de la materia Buenos Aires, 15 de Agosto de 2011 Quiénes somos? Profesores de teóricas: Santiago Ceria,

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

Planificaciones. 7510 - Técnicas de Diseño. Docente responsable: PANTALEO GUILLERMO GUSTAVO. 1 de 5

Planificaciones. 7510 - Técnicas de Diseño. Docente responsable: PANTALEO GUILLERMO GUSTAVO. 1 de 5 Planificaciones 7510 - Técnicas de Diseño Docente responsable: PANTALEO GUILLERMO GUSTAVO 1 de 5 OBJETIVOS En este curso se busca introducir a los alumnos en el concepto de diseño de software. Para lograrlo

Más detalles

SISTEMA DE GESTIÓN, INGENIERÍA Y CALIDAD DEL SISTEMA INTEGRADO JÚPITER. NIVEL 2 DE CMMI

SISTEMA DE GESTIÓN, INGENIERÍA Y CALIDAD DEL SISTEMA INTEGRADO JÚPITER. NIVEL 2 DE CMMI SISTEMA DE GESTIÓN, INGENIERÍA Y CALIDAD DEL SISTEMA INTEGRADO JÚPITER. NIVEL 2 DE CMMI Director S.I. Júpiter Jefe Srv. Información de Gastos Jefa Gabinete Información de Gastos Responsable Sistemas del

Más detalles

Cómo Elaborar y Redactar un Informe como un Verdadero Ingeniero Software

Cómo Elaborar y Redactar un Informe como un Verdadero Ingeniero Software Cómo Elaborar y Redactar un Informe como un Verdadero Ingeniero Software Pablo Sánchez Dpto. Matemáticas, Estadística y Computación Universidad de Cantabria Santander (Cantabria, España) p.sanchez@unican.es

Más detalles

Modelo para evaluar la Gestión del Valor del Producto Software durante el Ciclo de Desarrollo: Fase II

Modelo para evaluar la Gestión del Valor del Producto Software durante el Ciclo de Desarrollo: Fase II Modelo para evaluar la Gestión del Valor del Producto Software durante el Ciclo de Desarrollo: Fase II Posgrado en Ciencias y Tecnologías de la Información Marzo del 2012. 1. Responsables Dra. Angelina

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

Parte 1 Múltiple Opción

Parte 1 Múltiple Opción Cada pregunta de la parte múltiple opción contestada correctamente tiene un valor de 1,5 puntos. Cada pregunta incorrecta de la múltiple opción resta 0,5 puntos. Esta parte consta de 25 preguntas por lo

Más detalles

Mantenimiento del Software

Mantenimiento del Software Mantenimiento del Software Santiago Moral García Ingeniería del Software I Índice 2 1. Introducción 2. Tipos de Mantenimiento de SW 3. Dificultades del Mantenimiento de SW 4. Soluciones al problema del

Más detalles

José Alberto García Coria Director CENIT Salamanca. Salamanca, Febrero 2011

José Alberto García Coria Director CENIT Salamanca. Salamanca, Febrero 2011 José Alberto García Coria Director CENIT Salamanca Salamanca, Febrero 2011 Índice Objetivos Servicios de Pruebas Ciclo de Vida de las Pruebas Tipos de Pruebas Herramientas Objetivos Objetivos Exponer el

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

ALGORITMICA Y PROGRAMACION POR OBJETOS I

ALGORITMICA Y PROGRAMACION POR OBJETOS I ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 2 Definiendo situaciones y manejando casos Marcela Hernández Hoyos Qué vamos a aprender en este nivel: Diferencia entre clase y objeto Modelar características

Más detalles

1. Introducción. 2. El concepto de calidad del software. 3. Estándares de calidad existentes. 4. La norma ISO 9000-3

1. Introducción. 2. El concepto de calidad del software. 3. Estándares de calidad existentes. 4. La norma ISO 9000-3 Contenido INGENIERIA DE SOFTWARE Tema 6: Administración de la calidad del software Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca dtorres@mixteco.utm.mx Cubo 37 1. Introducción 2.

Más detalles

TABLA DE CONTENIDOS... 2 1. INFORMACIÓN DEL DOCUMENTO... 3 2. OBJETIVO... 3 3. ALCANCE... 3 4. DEFINICIONES Y VOCABULARIO... 3 4.

TABLA DE CONTENIDOS... 2 1. INFORMACIÓN DEL DOCUMENTO... 3 2. OBJETIVO... 3 3. ALCANCE... 3 4. DEFINICIONES Y VOCABULARIO... 3 4. TABLA DE CONTENIDOS... 2 1. INFORMACIÓN DEL DOCUMENTO... 3 2. OBJETIVO... 3 3. ALCANCE... 3 4. DEFINICIONES Y VOCABULARIO... 3 4. REFERENCIAS Y DOCUMENTOS RELACIONADOS... 4 5. RESPONSABILIDADES... 4 6.

Más detalles

SÍLABO. : Obligatorio : Ingeniería de Sistemas : IS0704. : VII Ciclo : 03 Teoría y 02 Práctica : 04 : Lenguaje de Programación II

SÍLABO. : Obligatorio : Ingeniería de Sistemas : IS0704. : VII Ciclo : 03 Teoría y 02 Práctica : 04 : Lenguaje de Programación II SÍLABO I. DATOS GENERALES 1.1. Nombre de la Asignatura 1.2. Carácter 1.3. Carrera Profesional 1.4. Código 1.5. Semestre Académico : 2014-I 1.6. Ciclo Académico 1.7. Horas de Clases 1.8. Créditos 1.9. Pre

Más detalles

MODELO MATEMÁTICO PARA LA EVALUACIÓN CUANTITATIVA DE LA CONFIABILIDAD EN LA ARQUITECTURA DE XEDRO ERP

MODELO MATEMÁTICO PARA LA EVALUACIÓN CUANTITATIVA DE LA CONFIABILIDAD EN LA ARQUITECTURA DE XEDRO ERP MODELO MATEMÁTICO PARA LA EVALUACIÓN CUANTITATIVA DE LA CONFIABILIDAD EN LA ARQUITECTURA DE XEDRO ERP Msc. Larisa González Alvarez, Ing. Katia Tereza Liens Pérez, DrC. Liesner Acevedo Martínez RESUMEN

Más detalles

Indicadores económicos del desarrollo software 1 y 2

Indicadores económicos del desarrollo software 1 y 2 Indicadores económicos del desarrollo software 1 y 2 Javier Garzás, Daniel Cabrero 1 EL RETORNO DE LA INVERSIÓN El retorno de la inversión, conocido por sus siglas ROI, si bien es un indicador esencial

Más detalles

ESTRATEGIA DE DISEÑO PARA LA AUTOMATIZACIÓN DE PRUEBAS UNITARIAS DE CÓDIGOS PHP UTILIZANDO EL FRAMEWORK PHPUNIT

ESTRATEGIA DE DISEÑO PARA LA AUTOMATIZACIÓN DE PRUEBAS UNITARIAS DE CÓDIGOS PHP UTILIZANDO EL FRAMEWORK PHPUNIT ESTRATEGIA DE DISEÑO PARA LA AUTOMATIZACIÓN DE PRUEBAS UNITARIAS DE CÓDIGOS PHP UTILIZANDO EL FRAMEWORK PHPUNIT Alejandro Villa Betancur 1, Jorge E. Giraldo Plaza 2 1 Estudiante de ingeniería Informática,

Más detalles

Gestión de la configuración en el software (SCM) Ingeniería de software Eduardo Ferreira, Martín Solari

Gestión de la configuración en el software (SCM) Ingeniería de software Eduardo Ferreira, Martín Solari Gestión de la configuración en el software (SCM) Ingeniería de software Eduardo Ferreira, Martín Solari 1 Temario Definiciones Problemas del cambio Elementos de la configuración Actividades de SCM Identificación

Más detalles

BOLETÍN DE NOVEDADES Barcelona, junio de 2008

BOLETÍN DE NOVEDADES Barcelona, junio de 2008 BOLETÍN DE NOVEDADES Barcelona, junio de 2008 Introducción El objeto de este documento es presentar y describir brevemente las principales actuaciones en los últimos meses de Carver en algunos de sus clientes,

Más detalles

Tesista: Ing. Jose Luís Del Río Directores: M. Ing. Eduardo Diez, M.Ing. Claudio Rancan

Tesista: Ing. Jose Luís Del Río Directores: M. Ing. Eduardo Diez, M.Ing. Claudio Rancan SISTEMA DE ASISTENCIA A LA GESTIÓN DE RIESGOS EN PROYECTOS SOFTWARE DE SISTEMAS INDUSTRIALES DE AUTOMATIZACIÓN Y CONTROL Anteproyecto de Tesis de Magíster en Ingeniería del Software Tesista: Ing. Jose

Más detalles

www.e-cronia.com Gracias www.eduardoleyton.com

www.e-cronia.com Gracias www.eduardoleyton.com Gracias C.C.S. Calidad de Componentes Software ISO 9126 Agenda Conceptos sobre Componentes Software y Componentes COTS (Commercial Off-The-Shelf Comercio fuera de formalidad o a pedido) Desarrollo Software

Más detalles

Medida de las subcaracterísticas Capacidad de Análisis y Capacidad de Cambio mediante la norma ISO/IEC 9126.

Medida de las subcaracterísticas Capacidad de Análisis y Capacidad de Cambio mediante la norma ISO/IEC 9126. Medida de las subcaracterísticas Capacidad de Análisis y Capacidad de Cambio mediante la norma ISO/IEC 9126. José Miguel Calvo Medrano INDRA. jmcalvo@indra.es Jesús María Minguet Melián. Universidad Nacional

Más detalles

ESCUELA: UNIVERSIDAD DEL ISTMO

ESCUELA: UNIVERSIDAD DEL ISTMO 1.-IDENTIFICACIÓN ESCUELA: UNIVERSIDAD DEL ISTMO CLAVE: 3045 GRADO: ING. EN COMPUTACIÓN, CUARTO SEMESTRE TIPO DE TEÓRICA/PRÁCTICA ANTECEDENTE CURRICULAR: 3035 2.- OBJETIVO GENERAL Proporcionar al estudiante

Más detalles

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS Rubby Casallas, Andrés Yie Departamento de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes Agenda Contexto Ciclos de vida: Modelo

Más detalles

Centro de Investigación en Matemáticas, A.C.

Centro de Investigación en Matemáticas, A.C. Centro de Investigación en Matemáticas, A.C. Temas Selectos de Programación Avanzada II (Temas Selectos de Ingeniería de Software) Reporte Final Métricas de Procesos de Software Maestría en Ciencias de

Más detalles

Software Architecture Assesment. Rosa Virginia Icedo Ojeda Jorge Moisés Trejo Vargas Mayo 2003

Software Architecture Assesment. Rosa Virginia Icedo Ojeda Jorge Moisés Trejo Vargas Mayo 2003 Software Architecture Assesment Rosa Virginia Icedo Ojeda Jorge Moisés Trejo Vargas Mayo 2003 Outline Software Architecture Assesment Arquitectura de Sofwtare (AS) Por qué evaluar una AS? Qué evaluamos

Más detalles

Tema 5. Gestión de Proyectos (ISG3)

Tema 5. Gestión de Proyectos (ISG3) Tema 5. Gestión de Proyectos (ISG3) Antonio José Sáenz Albanés (C.T.O) Reconocimiento No Comercial Compartir Igual - 2.5 - España 1 Planificación 1ª Clase: Presentación y Conceptos Generales 2ª Clase:

Más detalles

Fundamentos de Ingeniería de Software

Fundamentos de Ingeniería de Software Fundamentos de Ingeniería de Software Marcello Visconti y Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María {visconti,hernan} at inf.utfsm.cl Fundamentos de Ingeniería

Más detalles

Conexión de Reglas de Negocios con Aspectos: estrategias y herramienta

Conexión de Reglas de Negocios con Aspectos: estrategias y herramienta Conexión de Reglas de Negocios con Aspectos: estrategias y herramienta Sandra Casas y Cecilia Fuentes Zamorano UARG, Universidad Nacional de la Patagonia Austral Campus Universitario, Piloto Riversa s/n

Más detalles

Modelo para evaluar la Gestión del Valor del Producto Software durante el Ciclo de Desarrollo

Modelo para evaluar la Gestión del Valor del Producto Software durante el Ciclo de Desarrollo Modelo para evaluar la Gestión del Valor del Producto Software durante el Ciclo de Desarrollo Posgrado en Ciencias y Tecnologías de la Información Marzo del 2014. 1. Responsables Dra. Angelina Espinoza

Más detalles

Dirección General de Educación Superior Tecnológica

Dirección General de Educación Superior Tecnológica Dirección General de Educación Superior Tecnológica 1. Datos Generales de la asignatura Nombre de la asignatura: Clave de la asignatura: Créditos (Ht-Hp_ créditos): Carrera: Verificación y Validación del

Más detalles

2. Actividades constructivas de la calidad 3. El coste de la calidad. 2. Modelos de calidad del software 3. Mejora del proceso software

2. Actividades constructivas de la calidad 3. El coste de la calidad. 2. Modelos de calidad del software 3. Mejora del proceso software X Reunión n de Responsables de Sistemas de Información La Antigua, Guatemala 22-25 25 de septiembre de 2008 José Luis Fuertes Castro Facultad de Informática Universidad Politécnica de Madrid Contenidos

Más detalles

GUÍA DOCENTE DE LA ASIGNATURA

GUÍA DOCENTE DE LA ASIGNATURA GUÍA DOCENTE DE LA ASIGNATURA G668 - Métodos de Desarrollo Grado en Ingeniería Informática Optativa. Curso 4 Curso Académico 204-205 . DATOS IDENTIFICATIVOS Título/s Grado en Ingeniería Informática Tipología

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL DNI Apellidos y nombre 1. Cuál de las siguientes afirmaciones no es una causa de los problemas del software?

Más detalles

Programación SQL. Lucio Salgado Diciembre 2008

Programación SQL. Lucio Salgado Diciembre 2008 Programación SQL Lucio Salgado Diciembre 2008 1 Gestionadores de Bases de Datos (DBMS) Es el software que permite administrar bases de datos, a través de ella el usuario puede usar los datos con mucha

Más detalles

UNIVERSIDAD POLITÉCNICA SALESIANA SEDE: CUENCA

UNIVERSIDAD POLITÉCNICA SALESIANA SEDE: CUENCA UNIVERSIDAD POLITÉCNICA SALESIANA SEDE: CUENCA CARRERA DE INGENIERÍA DE SISTEMAS DESARROLLO DE UN PLAN DE GESTIÓN DE MANTENIMIENTO DE SOFTWARE PARA EL DEPARTAMENTO DE SISTEMAS DE LA UNIVERSIDAD POLITÉCNICA

Más detalles

INGENIERÍA DEL SOFTWARE

INGENIERÍA DEL SOFTWARE INGENIERÍA DEL SOFTWARE Sesión No. 2 Nombre: Procesos de ingeniería del software INGENIERÍA DEL SOFTWARE 1 Contextualización La ingeniería de software actualmente es muy importante, pues con los avances

Más detalles

Modelado arquitectónico con UML

Modelado arquitectónico con UML Modelado arquitectónico con UML Qué es la arquitectura de software El modelo de 4+1 vistas arquitectónicas Cohesión y acoplamiento Cómo lograr una descomposición modular eficaz Criterios para la selección

Más detalles

Jornadas de Introducción a la Ingeniería + Trabajo en Grupo = Herramientas de Gestion de Proyectos Software

Jornadas de Introducción a la Ingeniería + Trabajo en Grupo = Herramientas de Gestion de Proyectos Software Jornadas de Introducción a la Ingeniería + Trabajo en Grupo = Herramientas de Gestion de Proyectos Software Índice Conceptos básicos de gestión de proyectos software Gestión de grupos de trabajo Herramientas

Más detalles

IBM Software Development Platform

IBM Software Development Platform IBM Group IBM Development Platform Seminario. antonio.alonso@es.ibm.com IBM Group software Agenda 1. Introducir plataforma de desarrollo de IBM. 2. DEMO: Construcción de aplicaciones J2EE con RAD. 3. Café

Más detalles

Integración de NetBeans con OpenOffice.org

Integración de NetBeans con OpenOffice.org Integración de NetBeans con OpenOffice.org Índice de contenido Licencia...1 Alcance...1 Antrecedentes...1 Instalación del módulo de desarrollo en NetBeans...2 Configurar...7 Creando una función para Calc...8

Más detalles

Análisis Comparativo de Modelos de Calidad

Análisis Comparativo de Modelos de Calidad Análisis Comparativo de Modelos de Calidad Identificación de Mejores Prácticas para la Gestión de Calidad en Pequeños Entornos Vianca Vega Zepeda Departamento de Ingeniería de Sistemas y Computación Universidad

Más detalles

DESARROLLO DE UN SISTEMA DE PLANIFICACIÓN DE RECURSOS DE PRODUCCIÓN MRPII A LA MEDIDA

DESARROLLO DE UN SISTEMA DE PLANIFICACIÓN DE RECURSOS DE PRODUCCIÓN MRPII A LA MEDIDA DESARROLLO DE UN SISTEMA DE PLANIFICACIÓN DE RECURSOS DE PRODUCCIÓN MRPII A LA MEDIDA Enrique Cuan D a, José Luis Delgado A. a, Elisa Urquizo B. a, Diego Uribe A a, Antonio de Santiago a a División de

Más detalles

DISEÑO Y DESARROLLO DE UN SISTEMA PARA MATRÍCULAS Y CALIFICACIONES DEL COLEGIO SAINT GEORGE DE PEREIRA

DISEÑO Y DESARROLLO DE UN SISTEMA PARA MATRÍCULAS Y CALIFICACIONES DEL COLEGIO SAINT GEORGE DE PEREIRA DISEÑO Y DESARROLLO DE UN SISTEMA PARA MATRÍCULAS Y CALIFICACIONES DEL COLEGIO SAINT GEORGE DE PEREIRA MARTHA CECILIA LÓPEZ GARCÍA YULIETH VANESSA RAMÍREZ SÁNCHEZ CORPORACIÓN UNIVERSITARIA SANTA ROSA DE

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) 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 captura de requisitos inicial hasta la puesta en producción

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

CRM Customer Relationship Management

CRM Customer Relationship Management CRM Customer Relationship Management es la solución que ofrece IDSénia para gestionar su los clientes, como estrategia de negocio. Definición. Traducido como Gestión de la los clientes, es parte de una

Más detalles

Tema III: Gestión de la Configuración. Diana Marcela Sánchez Fúquene Ingeniería del Software de Gestión

Tema III: Gestión de la Configuración. Diana Marcela Sánchez Fúquene Ingeniería del Software de Gestión Tema III: Gestión de la Configuración. Diana Marcela Sánchez Fúquene Ingeniería del Software de Gestión Introducción Gestión de la Configuración del Software (GCS / SCM) Def.- Arte de identificar, organizar,

Más detalles

Revista Digital Universitaria. 10 de agosto 2004 Volumen 5 Número 7 ISSN: 1067-6079

Revista Digital Universitaria. 10 de agosto 2004 Volumen 5 Número 7 ISSN: 1067-6079 Revista Digital Universitaria 10 de agosto 2004 Volumen 5 Número 7 ISSN: 1067-6079 JAVA o L.I. Anabell Comas Becaria de la Coordinación de Publicaciones Digitales anabell@alethia.dgsca.unam.mx o http://www.revista.unam.mx/vol.7/num12/art104/art104.htm

Más detalles

POSTgrado. Ingeniería

POSTgrado. Ingeniería POSTgrado Ingeniería Máster Telefónica en Desarrollo de Software Avanzado Linux FirefoxOS HTML5 Javascript Multinavegador Android C++ Programación Boost Implementación de Interfaces IOS Producción de Software

Más detalles

Técnicas de Estimación

Técnicas de Estimación Técnicas de Estimación Gestión de Proyectos Informáticos Clase 4 Bibliografía Software engineering economics - Bohem Measuring the software process Estimating software costs - Capers Jones COCOMO II model

Más detalles

Guía docente de la asignatura

Guía docente de la asignatura Guía docente de la asignatura Asignatura Materia Módulo Titulación Técnicas en el desarrollo y mantenimiento de Software para incrementar la calidad. AUDITARÍA, CALIDAD Y SEGURIDAD TECNOLOGÍAS INFORMÁTICAS

Más detalles

Implantación de Aplicaciones Web Fecha: 20-09-13

Implantación de Aplicaciones Web Fecha: 20-09-13 Página 1 de 24 RESUMEN DE LA PROGRAMACIÓN ADMINISTRACIÓN DE SISTEMAS INFORMÁTICOS EN RED CURSO AC. 2012 / 2013 ÁREA / MATERIA / MÓDULO PROFESIONAL Implantación de Aplicaciones Web (84 horas 4 horas semanales)

Más detalles

Tema 1. Introducción a los TAD

Tema 1. Introducción a los TAD Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con

Más detalles

Propuesta Matriz de Actividades para un Ciclo de Vida de Explotación de Datos

Propuesta Matriz de Actividades para un Ciclo de Vida de Explotación de Datos Propuesta Matriz de Actividades para un Ciclo de Vida de Explotación de Datos Britos, P. 1,2 ; Fernández, E. 2,1 ; García Martínez, R 1,2 1 Centro de Ingeniería del Software e Ingeniería del Conocimiento.

Más detalles

Análisis de Requisitos

Análisis de Requisitos Análisis de Requisitos Los requisitos determinan lo que hará el sistema y definen restricciones sobre su operación e implementación. El análisis de requisitos es el proceso del estudio de las necesidades

Más detalles

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG)

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG) Tema 2. El Ciclo de Vida del Software (ISG1-ITIG) Grupo de Ingeniería del Software Antonio José Sáenz Albanés (C.T.O) Reconocimiento No Comercial Compartir Igual - 3.0 - España 1 Objetivos del Tema Qué

Más detalles

DIPLOMADO DE INFRAESTRUCTURA DE SERVIDORES MICROSOFT

DIPLOMADO DE INFRAESTRUCTURA DE SERVIDORES MICROSOFT DIPLOMADO DE INFRAESTRUCTURA DE SERVIDORES MICROSOFT TABLA DE CONTENIDO INTRODUCCION... 3 ESTRUCTURA DEL DIPLOMADO... 4 TEMA 1: ADMINISTRACION, SOPORTE Y MANTENIMIENTO DE WINDOWS SERVER 2012... 4 Preparar

Más detalles

Modelos de desarrollo de software. septiembre de 2007 1

Modelos de desarrollo de software. septiembre de 2007 1 Modelos de desarrollo de software septiembre de 2007 1 Referencias básicas Ingeniería de software. Un enfoque práctico. Pressman, R. Quinta edición. Mc. Graw Hill 2002 Ingeniería de software. Sommerville,

Más detalles

MODULO: MERCADEO. Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) MODELO DE MUESTRA SIN VALOR COMERCIAL

MODULO: MERCADEO. Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) MODELO DE MUESTRA SIN VALOR COMERCIAL MODULO: MERCADEO Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) 1 Servicio de Soporte. El presente apartado constituye las condiciones de soporte y mantenimiento por parte de enncloud

Más detalles