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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

CSTIC 2011. Madrid, 20 de Septiembre 2011. Universidad Pontificia de Comillas. Patronos:

CSTIC 2011. Madrid, 20 de Septiembre 2011. Universidad Pontificia de Comillas. Patronos: Madrid, 20 de Septiembre 2011 Universidad Pontificia de Comillas Patronos: Mantenimiento del Software: Aspectos Clave para la Gestión de un Servicio Continuo Patrocinadores Miguel Ángel Martínez Jimeno

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ORGANIZACIÓN DOCENTE del curso 2009-10

ORGANIZACIÓN DOCENTE del curso 2009-10 ORGANIZACIÓN DOCENTE del curso 2009-10 1. DATOS GENERALES DE LA ASIGNATURA NOMBRE Ingeniería del Software II PÁGINA WEB www.ctr.unican.es/asignaturas/is2 CÓDIGO DEPARTAMENTO Matemáticas, Estadística y

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

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

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

TEMA 2. Agenda. Fundamentos de JAVA

TEMA 2. Agenda. Fundamentos de JAVA TEMA 2 Fundamentos de JAVA V1.3 Manuel Pereira González Agenda Introducción Historia de Java Características Principales Hello World Tipos Operadores Control de Flujo E/S básica Atributos y Métodos Resumen

Más detalles

Tema 13. Metodologías en el desarrollo de Sistemas de Software. Prof. Oscar Adolfo Vallejos

Tema 13. Metodologías en el desarrollo de Sistemas de Software. Prof. Oscar Adolfo Vallejos Tema 13 Metodologías en el desarrollo de Sistemas de Software Prof. Oscar Adolfo Vallejos Desarrollo de Sistemas de Software Objetivo Conceptos en el contexto más amplio de Software e Ingeniería de Software

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

Cuándo estoy listo para pasar a producción?

Cuándo estoy listo para pasar a producción? IBM Software Expo 2006. Madrid 23 de Mayo Cuándo estoy listo para pasar a producción? antonio.alonso @ es.ibm.com IBM Software 2005 IBM Corporation Agenda IBM Software Expo 2006. Madrid, 23 de mayo La

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

Ingeniería de Software II

Ingeniería de Software II Ingeniería de Software II Segundo Cuatrimestre 2007 Clase 1b: Modelos de Ciclo de Vida Buenos Aires, 23 de Agosto de 2007 Qué es un modelo del ciclo de vida de un sistema? 8Una representación estandarizada

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

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

Guía Docente 2015/2016

Guía Docente 2015/2016 Guía Docente 2015/2016 Calidad del software Software Quality Grado en Ingeniería Informática Presencial Índice Calidad del Software... 3 Breve descripción de la asignatura... 3 Brief Description... 3 Requisitos

Más detalles

Documentando la arquitectura de software Principios básicos por Omar Gómez

Documentando la arquitectura de software Principios básicos por Omar Gómez Documentando la arquitectura de software Principios básicos por Omar Gómez En la actualidad, uno de los temas candentes que se habla dentro de la comunidad de desarrollo de software es el referente a las

Más detalles

Grados Ing. Inf. y Mat. Inf. Julio 2014 Algoritmos y Estructura de Datos Página 1 de 6

Grados Ing. Inf. y Mat. Inf. Julio 2014 Algoritmos y Estructura de Datos Página 1 de 6 Grados Ing. Inf. y Mat. Inf. Julio 201 Algoritmos y Estructura de Datos Página 1 de 6 Algoritmos y Estructura de Datos: Examen Julio (Solución) Grados Ing. Inf. y Mat. Inf. Julio 201 Departamento de Lenguajes,

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

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

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

Objetivos FACULTAD DE INGENIERIA. DEPARTAMENTO DE INGENIERIA DE SISTEMAS. Código de la asignatura 4070. Fecha de Actualización Julio 24 de 2012

Objetivos FACULTAD DE INGENIERIA. DEPARTAMENTO DE INGENIERIA DE SISTEMAS. Código de la asignatura 4070. Fecha de Actualización Julio 24 de 2012 Nombre de la asignatura Ingeniería de Software Código de la asignatura 4070 Fecha de Actualización Julio 24 de 2012 Intensidad horaria semanal Horas Contacto 4 Horas Trabajo Independiente 8 Créditos Académicos

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

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

La Ingeniería de Software en el Desarrollo de Software Libre

La Ingeniería de Software en el Desarrollo de Software Libre Linux Week 2008 La Ingeniería de en el Desarrollo de Libre Ing. Alfred Kobayashi Gutiérrez akobayashi@apesol.org akobayashi@evolutionperu.com Definiciones de Ingeniería de Ingeniería del es el estudio

Más detalles

Departamento de Ciencias e Ing. geniería de la Computación. Diego C. Martínez - DCIC-UNS

Departamento de Ciencias e Ing. geniería de la Computación. Diego C. Martínez - DCIC-UNS Tecnología de Programación Diego C. Martínez Departamento de Ciencias e Ing geniería de la Computación Universidad Nacional del Sur Patterns - Antipatterns Los patrones de diseño son soluciones s de diseño

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

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

FICHA MEMORIA DOCENTE Curso Académico 2006/ 07

FICHA MEMORIA DOCENTE Curso Académico 2006/ 07 FICHA Curso Académico 2006/ 07 / CODE 3104 COURSE NAME/TITLE Informatics DEGREE Agricultural, forestry, engineering and food technology TYPE Optative ORIENTATION All ESTUDIES PROGRAM 1999 CYCLE 1 COURSE

Más detalles

Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos

Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos Ingeniero en Computación José Alfredo Cobián Campos josealfredocobian@gmail.com Facultad de Ciencias

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

Portal para Padres CPS - Parent Portal. Walter L. Newberry Math & Science Academy Linda Foley-Acevedo, Principal Ed Collins, Asst.

Portal para Padres CPS - Parent Portal. Walter L. Newberry Math & Science Academy Linda Foley-Acevedo, Principal Ed Collins, Asst. Portal para Padres CPS - Parent Portal Walter L. Newberry Math & Science Academy Linda Foley-Acevedo, Principal Ed Collins, Asst. Principal (773) 534-8000 Formando su cuenta - Setting up your account Oprima

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

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

Temario. Calidad de software y Procesos. Éxito de un proyecto de software. 1- Calidad de software. Evolución de la calidad

Temario. Calidad de software y Procesos. Éxito de un proyecto de software. 1- Calidad de software. Evolución de la calidad Temario Calidad de y Procesos Ingeniería de Sistemas Marzo 2004 1- Calidad de 2- Aseguramiento de la calidad del (SQA) 3- Gestión de la calidad en el marco de ORTsf 2 Definición de calidad Calidad de 1-

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

Modelado de relaciones existentes en un equipo de proyecto de software Modeling relationships in a software project team

Modelado de relaciones existentes en un equipo de proyecto de software Modeling relationships in a software project team Modelado de relaciones existentes en un equipo de proyecto de software Modeling relationships in a software project team Rafael Rodríguez-Puente 1, Eliana B. Ril-Valentin 2 1 Departamento de Técnicas de

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

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

Modelos de datos. Marta E. Zorrilla Pantaleón Universidad de Cantabria

Modelos de datos. Marta E. Zorrilla Pantaleón Universidad de Cantabria Modelos de datos Marta E. Zorrilla Pantaleón Universidad de Cantabria Modelo de datos. Definición Conjunto de herramientas conceptuales para describir la representación de la información en términos de

Más detalles

3. Componentes del Modelo de Conocimiento

3. Componentes del Modelo de Conocimiento La metodología CommonKADS 3. Componentes del Modelo de Conocimiento 3.1 Introducción 3.2 Conocimiento de Dominio 3.3 Conocimiento de Inferencia 3.4 Conocimiento de Tarea Carlos Alonso González Dpto. de

Más detalles

Ingeniería de Software I. Sebastián Uchitel y Víctor Braberman 1er Cuatrimestre 2009

Ingeniería de Software I. Sebastián Uchitel y Víctor Braberman 1er Cuatrimestre 2009 Ingeniería de Software I Sebastián Uchitel y Víctor Braberman 1er Cuatrimestre 2009 Quienes somos? 2 Quienes son? 3 Objetivos del Curso Entender el rol fundamental que juega la construcción y análisis

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

RECIBIRÁS EN TU CUENTA INSTITUCIONAL, UNA CARTA DE PREADJUDICACIÓN CON LOS DATOS DE TU MOVILIDAD. SI NO SON CORRECTOS, COMUNÍCALO A erasmus@upm.

RECIBIRÁS EN TU CUENTA INSTITUCIONAL, UNA CARTA DE PREADJUDICACIÓN CON LOS DATOS DE TU MOVILIDAD. SI NO SON CORRECTOS, COMUNÍCALO A erasmus@upm. UNA VEZ PUBLICADA LA RESOLUCIÓN RECTORAL CON LOS LISTADOS DE ADMITIDOS, TIENES UN PLAZO DE 15 DÍAS PARA PODER RENUNCIAR A LA MOVILIDAD ADJUDICADA, ENTREGANDO EL DOCUMENTO DE RENUNCIA EN LA OFICINA DE MOVILIDAD

Más detalles

LAS MÉTRICAS DE PRODUCTIVIDAD PARA GESTIÓN DEL SOFTWARE BASADAS EN EL TAMAÑO DEL PROYECTO

LAS MÉTRICAS DE PRODUCTIVIDAD PARA GESTIÓN DEL SOFTWARE BASADAS EN EL TAMAÑO DEL PROYECTO LAS MÉTRICAS DE PRODUCTIVIDAD PARA GESTIÓN DEL SOFTWARE BASADAS EN EL TAMAÑO DEL PROYECTO Torralba Martínez, J. Mª.; Cuenca Iniesta, J.; Ruíz Molina, V. (*); Área: Organización de Empresas Dpto.: Organización

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

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1 Introducción al Proceso Unificado de Desarrollo de Software Autor: Ing. Silverio Bonilla 1 James Rumbaugh et al. Concepto de Método Una metodología de ingeniería del software es un proceso para producir

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

Palabras Clave: Modelo de Evaluación, Frameworks JavaScript, IQMC, ISO/IEC 25000, UWE.

Palabras Clave: Modelo de Evaluación, Frameworks JavaScript, IQMC, ISO/IEC 25000, UWE. ANÁLISIS COMPARATIVO DE FRAMEWORKS JAVASCRIPT: JQUERY Y MOOTOOLS, PARA LA IMPLEMENTACIÓN DE APLICACIONES WEB EN LA EMPRESA SOFYA. APLICACIÓN A UN CASO DE ESTUDIO Luis Bermeo Rodríguez 1, Mauricio Campaña

Más detalles

UNIVERSIDAD DE OVIEDO

UNIVERSIDAD DE OVIEDO UNIVERSIDAD DE OVIEDO ESCUELA POLITÉCNICA DE INGENIERÍA DE GIJÓN MÁSTER EN INGENIERÍA INFORMÁTICA TRABAJO FIN DE MÁSTER SPRING ROO ADD-ONS PARA PROTOTIPADO RÁPIDO JAVIER MENÉNDEZ ÁLVAREZ JULIO 2014 UNIVERSIDAD

Más detalles

Real Time Systems. Part 2: Cyclic schedulers. Real Time Systems. Francisco Martín Rico. URJC. 2011

Real Time Systems. Part 2: Cyclic schedulers. Real Time Systems. Francisco Martín Rico. URJC. 2011 Real Time Systems Part 2: Cyclic schedulers Scheduling To organise the use resources to guarantee the temporal requirements A scheduling method is composed by: An scheduling algorithm that calculates the

Más detalles

Este proyecto tiene como finalidad la creación de una aplicación para la gestión y explotación de los teléfonos de los empleados de una gran compañía.

Este proyecto tiene como finalidad la creación de una aplicación para la gestión y explotación de los teléfonos de los empleados de una gran compañía. SISTEMA DE GESTIÓN DE MÓVILES Autor: Holgado Oca, Luis Miguel. Director: Mañueco, MªLuisa. Entidad Colaboradora: Eli & Lilly Company. RESUMEN DEL PROYECTO Este proyecto tiene como finalidad la creación

Más detalles

Ingeniería del So8ware II

Ingeniería del So8ware II Ingeniería del So8ware II Tema 04 (2). Alcance de Proyectos So8ware Carlos Blanco Bueno DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN carlos.blanco@unican.es Este tema se publica bajo Licencia: CreaQve

Más detalles

Generación de código para Hibernate desde modelos UML

Generación de código para Hibernate desde modelos UML Generación de código para Hibernate desde modelos UML Alejandro Nogueiro Mariscal Ingeniería Técnica en Informática de Sistemas, Universidad de Cádiz 24 de Septiembre 2012 1 / 35 Índice 1 Motivación y

Más detalles

Acceso a bases de datos MySQL con PHP

Acceso a bases de datos MySQL con PHP GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado fsilvasys@hotmail.com DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre

Más detalles

Por qué invertir en la automatización de pruebas Software?. Rational XDE Tester

Por qué invertir en la automatización de pruebas Software?. Rational XDE Tester IBM Software Group Por qué invertir en la automatización de pruebas Software?. Rational XDE Tester Ana López-Mancisidor Rueda Consultor Rational IBM España ana.lopez@es.ibm.com Introducción 53% de los

Más detalles

Evolución de Software

Evolución de Software Evolución de Software Marcello Visconti & Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María Mantención de Software Gestión de Configuración

Más detalles

Primer Parcial Septiembre 6 de 2008

Primer Parcial Septiembre 6 de 2008 Primer Parcial Septiembre 6 de 2008 Algoritmos y Lenguajes II Reglas del juego Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni hablar

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

Evolución de Plantillas Genéricas para la descripción de Casos de Uso a Plantillas Genéricas para Análisis y Diseño

Evolución de Plantillas Genéricas para la descripción de Casos de Uso a Plantillas Genéricas para Análisis y Diseño Evolución de Plantillas Genéricas para la descripción de Casos de Uso a Plantillas Genéricas para Análisis y Diseño Ing. Marcela Daniele AC. Daniel Romero Dpto. de Computación. Facultad: Ciencias Exactas,

Más detalles

Guía Docente Curso 2012-2013

Guía Docente Curso 2012-2013 ESCUELA TÉCNIICA SUPERIIOR DE IINGENIIERÍÍA Guía Docente Curso 2012-2013 Titulación Ingeniería Informática DATOS DE LA ASIGNATURA * * Asignatura en experiencia piloto de implantación del sistema de créditos

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

BASES DE DATOS. Ivon Tarazona Oriana Gomez

BASES DE DATOS. Ivon Tarazona Oriana Gomez BASES DE DATOS Ivon Tarazona Oriana Gomez Introducción Introducción Ventajas e (Unified Modeling Language) Es un lenguaje usado para especificar, visualizar y documentar los diferentes aspectos relativos

Más detalles

Examen escrito de Programación 1

Examen escrito de Programación 1 Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento

Más detalles

RESUMEN DE TRABAJO DE GRADO

RESUMEN DE TRABAJO DE GRADO RESUMEN DE TRABAJO DE GRADO Universidad Nueva Esparta. Facultad de Ciencias de la Informática. Escuela de Computación. Autores: Barrios M. Cesar E, Céspedes Nelson Tutor: Gabriel Méndez Titulo: Implantación

Más detalles

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador 1. DATOS INFORMATIVOS: MATERIA O MÓDULO: INGENIERÍA DE SOFTWARE I CÓDIGO: CARRERA: SISTEMAS NIVEL: QUINTO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4 SEMESTRE/AÑO ACADÉMICO: Segundo Semestre 2011-2012 CRÉDITOS

Más detalles

El Conocimiento en Diseño Orientado a Objetos 1 y 2

El Conocimiento en Diseño Orientado a Objetos 1 y 2 El Conocimiento en Diseño Orientado a Objetos 1 y 2 Javier Garzás, Mario Piattini www.kybeleconsulting.com http://kybeleconsulting.blogspot.com/ 1 INTRODUCCIÓN En los últimos años se han incorporado importantes

Más detalles