SlideShare uma empresa Scribd logo
1 de 48
Francisco Sánchez Cid
                                   http://web.iti.upv.es/~fsanchez
                                   cid@iti.es
                                   @_Francisco_1978


Ingeniería del Software:

Nuestro producto, debe
funcionar
Contenido de la charla


    Instituto              ACME TPV                    Algunos
 Tecnológico de
  Informática                                          consejos




     Ingeniería del software práctica: “nuestro producto debe funcionar”
Instituto Tecnológico de
Informática


             Quiénes somos, qué hacemos
ITI “Quiénes somos”

• Centro Tecnológico especializado en Investigación, Desarrollo e
  Innovación en Tecnologías de la Información y Comunicación

• Somos una asociación sin ánimo de lucro y pertenecemos a la Red
  de Institutos Tecnológicos de la Comunidad Valenciana (junto al del
  Juguete, el Cerámico, el de la Madera..)

• El ITI desarrolla una labor de I+D+I transfiriendo a las empresas la
  posibilidad de incorporar a sus productos las tecnologías y
  capacidades desarrolladas en proyectos de I+D+I
Capacidades en Optimización y BI

  Inteligencia
  de negocio



                 Big Data



                             Data
                            Mining
Tecnologías inteligentes de
                                        digitalización

Sistema OCR/ ICR capaz de reconocer y
exportar información impresa y manuscrita



   Características

      Tecnología propia


      Plantillas, gestión de lotes y
      validación inteligente


      Exportación de resultados en
      varios formatos, compatible con
      diferentes plataformas                   Proceso sencillo
      Integrable con otros sistemas
      de gestión documental y otras
      herramientas de gestión

                                            Papel     Digitalización   Validación   Exportación
Control de Accesos y Presencia por Reconocimiento Facial




                                 Sistema de IDENTIFICACIÓN y/o VERIFICACIÓN biométrica basada en
                                 análisis de imágenes faciales.
                                 A partir de una o varias imágenes de la cara de una persona se puede
                                 averiguar o validar la identidad de esta.



                                       ¿Porqué biometría facial?

                                  • Es la forma más natural de identificarnos: los humanos nos reconocemos
                                    mirándonos a la cara sin ningún otro tipo de interacción (habla, tacto…).

                                  • Por supuesto no nos reconocemos mirándonos al IRIS o las huellas de los
                                    dedos

• Los accesos son auditables de forma rápida y segura por el personal responsable de los accesos y la seguridad.
  Simplemente hay que mirar la foto de quien ha entrado y si ha habido un intento de suplantación de un usuario.

• Con las huellas dactilares es imposible saber si quien ha entrado es quien dice ser por la huella o si se trata de un
  impostor




                                                                                                  iticab.iti.es
Sistema avanzado de inspección industrial en 3D

Sistema de inspección que aplica técnicas de Visión Artificial para el control de
calidad o clasificación.
Realiza la adquisición de imágenes de un objeto a través de múltiples cámaras,
mientras la pieza está en caída libre.
• Inteligencia ambiental
Y además...
              • Sensorización avanzada
              • Sistemas embebidos y de
                comunicaciones
              • Cloud computing
              • Análisis, Diseño y Desarrollo
                Software
              • ...
              • ¡ah! y Calidad del Software
ACME TPV



           Un año de desarrollo
El lanzamiento

Lanzamiento                         Desarrollo   Entrega




Todo comienza con entrevistas con el cliente:

• Visión del sistema: qué componentes hay, qué
  interacciones

• Requisitos de alto nivel: la funcionalidad a
  grandes rasgos

• Plan inicial: una estimación muy arriesgada
El lanzamiento

Lanzamiento                          Desarrollo                         Entrega




Decisiones que marcarán el futuro del proyecto:

• El equipo de desarrollo: perfil tecnológico, perfil personal, roles




• Análisis de requisitos: la base para poder cerrar una entrega
El lanzamiento

Lanzamiento                        Desarrollo                           Entrega




Decisiones que marcarán el futuro del proyecto:

• Tecnologías: Java 7, MySQL, JPA, ActiveMQ, ...

                   ¿Cómo elegir y quién debe elegir?
                   ¿Elegiríais la última versión?
• Entorno de trabajo: Netbeans, Eclipse, Windows, Linux, Trac, SVN...


                   ¿Flexibilidad a cambio de complejidad?
El lanzamiento

Lanzamiento                          Desarrollo                          Entrega




A estas alturas, debe estar claro:

• Análisis de Requisitos: documento de referencia, en el que se define
  toda la funcionalidad a implementar. Ni más ni menos.

                     Documento crítico

• Plan del proyecto: hoy en día es común trabajar de forma
  iterativa, pero es necesario un plan que establezca horizontes de
  entrega
                     El plan hay que revisarlo por iteraciones
El desarrollo

Lanzamiento              Desarrollo              Entrega




    ¡Comenzamos a trabajar!

                                  ¿y por donde
                                    empiezo?
Al comienzo, el proyecto está muy poco definido, pero el
                    equipo está a la espera de trabajo

                    ¿Qué podemos asignarles?
Definir y asignar
Al comienzo, el proyecto está muy poco definido, pero el
                    equipo está a la espera de trabajo

                    ¿Qué podemos asignarles?

                    • Crear la estructura de proyecto, con paquetes principales, y reglas
                      de empaquetado y despliegue
                    • Formación: servidores sobre los que se desplegará, sistemas de
Definir y asignar




                      gestión de BBDD, nuevas tecnologías a aplicar...
                    • Si tenemos que trabajar con hardware específico: primeras
                      pruebas de control


                    Entre tanto, seguimos con el diseño del sistema:
                    • Arquitectura: separación en componentes, primeros diagramas de
                       clase y de secuencia
                    • Modelo de datos: primeras entidades a persistir, con su
                       descripción completa y todos los atributos que creamos
                       necesarios
Diseño: Definir la Arquitectura

                                                Arquitectura en capas (MVC):
                                                Modelo, Vista, Controlador

                 Estados                        Modelo: BBDD relacional, con
                                                autogeneración JPA
Comunicaciones               Operadores         Vista: Swing básica
                                                Controlador: Java 7
                 Servicios



    HW                  Persistencia


Disp.    GUI     MySQL DB                 XML
Arquitectura modular: Estados

                                            Máquina de estados:

                 Estados

Comunicaciones           Operadores


                 Servicios

    HW                Persistencia          En lugar de...
         GU
Disp.            MySQL DB             XML
          I
Definir la Arquitectura

                                            Java Persistence API (JPA):
                                             >> Autogeneración
                 Estados                    >> Cambio rápido

Comunicaciones           Operadores
                                                 Modelo ER
                                                  (Tablas)
                 Servicios

    HW                Persistencia               Entidades
                                                   (Clases
         GU                                    Autogeneradas)
Disp.            MySQL DB             XML
          I

                                               Controladores
                                                  (Clases
                                               Programadas)
Persistencia modelo de datos

  Modelo ER
   (Tablas)




  Entidades
    (Clases
Autogeneradas)




Controladores                        Automático
   (Clases
Programadas)
El desarrollo

Lanzamiento              Desarrollo                          Entrega




Ya podemos trabajar de verdad:
                                      Cada miembro del equipo tiene
                                      una responsabilidad

                                      Persistencia -> Técnico 1
                                      Flujo de caja -> Técnico 2
                                      Ofertas -> Técnico 3
                                      Hardware -> Técnico 4
                                      Comunicaciones -> Técnico 5
El desarrollo

Lanzamiento              Desarrollo                          Entrega




Ya podemos trabajar de verdad:
                                      Cada miembro del equipo tiene
                                      una responsabilidad

                                      Persistencia -> Técnico 1
                                      Flujo de caja -> Técnico 2
                                      Ofertas -> Técnico 3
                                      Hardware -> Técnico 4
                                      Comunicaciones -> Técnico 5




                               ¿Detectáis algún riesgo ahí arriba?
¿Qué ocurre si alguien del equipo falla?
                       • Evaluar el retraso: tiempo de transferencia, búsqueda de un
                         nuevo miembro para el equipo
                       • Depende de quién falle, pero sólo hay una solución:
                         documentación y puesta en común
Riesgos del proyecto
¿Qué ocurre si alguien del equipo falla?
                       • Evaluar el retraso: tiempo de transferencia, búsqueda de un
                         nuevo miembro para el equipo
                       • Depende de quién falle, pero sólo hay una solución:
                         documentación y puesta en común
Riesgos del proyecto




                            Además, ¿cuando os retrasabais, a quién llamabais?
El desarrollo

Lanzamiento              Desarrollo          Entrega




Proseguimos con el desarrollo...
Tenemos un montón de HW implementado, pero
llegan nuevos problemas
Distintas versiones para un mismo dispositivo




Impresora
                                 ¿Se os ocurre alguna solución?

Escáner
Distintas versiones para un mismo dispositivo

Herencia: funcionalidad común heredada
Distintas versiones para un mismo dispositivo

Interfaces: funcionalidad común definida y acotada
Distintas versiones para un mismo dispositivo

Patrones: patrón factoría. Instanciamos según
configuración y conseguimos independencia
El desarrollo

Lanzamiento                         Desarrollo                      Entrega




Ya estamos a mitad de camino...
¿Qué hace nuestra TPV?
      •       Identifica los productos y los añade al ticket de venta
      •       Aplica ofertas
      •       Transfiere la información de venta al servidor de tienda
      •       Recibe cambios en los datos del servidor de ventas
      •       Identifica a los clientes por fidelización
      •       Realiza recargas de telefonía móvil
      •       Permite pagos con tarjeta de crédito
      •       ...
Surge un nuevo problema

                     La cantidad de mensajes que van y vienen en la tienda es
                     ingente, y además:
                     • Los mensajes deben llegar siempre a su destino.
                     • Si el destino no está accesible, hay que esperar a que lo esté
                     • Hay mensajes para un único destino
Las comunicaciones



                     • Hay mensajes para muchos destinos a la vez
Surge un nuevo problema

                     La cantidad de mensajes que van y vienen en la tienda es
                     ingente, y además:
                     • Los mensajes deben llegar siempre a su destino.
                     • Si el destino no está accesible, hay que esperar a que lo esté
                     • Hay mensajes para un único destino
Las comunicaciones



                     • Hay mensajes para muchos destinos a la vez




                         De nuevo, os pregunto ¿qué podemos hacer
                          para gestionar bien estas comunicaciones?
Patrones de Integración Empresarial


                     Publish-Subscribe
Las comunicaciones




                      Guaranteed Delivery

                                            Durable Subscriber
Modelo de colas
Patrones de integración basados en mensajería

>> Confirmación de entrega de mensajes

>> Persistencia de la mensajería

>> Durabilidad de los mensajes

>> Independencia de la localización física
El desarrollo

Lanzamiento                    Desarrollo                     Entrega




Y nos acercamos al final
      • Hay cambios de última hora en los requisitos
      • El equipo de test no para de reportar incidencias
      • Comienzan las prisas en el desarrollo. Hay que echar horas
        extras. Toca trabajar algún festivo y fin de semana
      • El estrés del equipo se dispara
      • El cliente pide informes de avance continuos

        Si no actuamos, el proyecto se nos va de las manos
                     ¿qué podemos hacer?
Volvemos al lanzamiento

Lanzamiento                             Desarrollo                               Entrega




Decisiones que marcarán el futuro del proyecto:

                                                              Hay que quitar presión.
•   El equipo de desarrollo: perfil tecnológico, perfil personal, roles
                                                               Actividades fuera de la
                                                                 oficina, flexibilidad
                                                               horaria, teletrabajo, ...




• Análisis de requisitos: la base para poder cerrar una entrega
Volvemos al lanzamiento

Lanzamiento                            Desarrollo                           Entrega




Decisiones que marcarán el futuro del proyecto:

• Hay que se inflexible con el perfil tecnológico, perfil personal, roles
   El equipo de desarrollo:
      cliente. Los nuevos
      requisitos implican
  tiempo, esfuerzo, y dinero




• Análisis de requisitos: la base para poder cerrar una entrega
Si queremos conseguir la implicación del equipo




El Jefe de Proyecto, debe ser el
primero y el último
La importancia del testeo

Lanzamiento               Desarrollo   Entrega
La importancia del testeo

Lanzamiento                          Desarrollo                            Entrega



 Al final del desarrollo es cuando se hacen más patentes las virtudes del testeo.
 Por ejemplo, el testeo unitario:
      • Al implementarlo, parece tedioso e innecesario: “sabemos lo que
          estamos haciendo y qué debe devolver nuestra función”
      • Pasan 10 meses
      • Se han implementado 500 nuevas funciones
      • Se va el desarrollador
      • Hay que hacer una modificación en (por ejemplo) el cálculo del
          margen para el reparto de las ofertas en un lote de productos, que
          lleva funcionando bien casi 1 año

                            ¿Alguien se atreve?
Y respecto a la entrega...




...esa es otra historia
ALGUNOS CONSEJOS



            Espero que os sirvan...
Consejo 1: Sed ingenieros


• Todos empezamos desde
  abajo, así que…
   – Hazte un buen
     programador
   – Pero no lo olvides:
      • Eres Ingeniero, aunque
        tu rol sea programador
   – Hazte un buen tecnólogo
      • No es sólo
        programar, es conocer
        la tecnología
   – Internacionalízate
Consejo 2: Sed diseñadores


• Maneja el MVC con soltura:




• Aprende el porqué de 3 cosas:
   – Interfaces
   – Herencia
   – Patrones
Consejo 3: Sed técnicos


• Respecto a la programación:
   –   Ingenia, busca, no des nada por seguro: duda de todo.
   –   Sé maduro: aplica patrones
   –   Sé limpio: aplica formatos estándar
   –   Consulta (o participa) en proyectos de SW libre
• Respecto a la tecnología:
   –   No sólo programes, conoce la tecnología
   –   Aprende a crear tu propio criterio: busca y compara
   –   No es Java, sino Struts, Hibernate, Spring…
   –   No es .NET, sino SQLServer, Sharepoint, Visual Studio…
Consejo 4: Disfruta de lo que haces


• Respecto a ti:
      • Sé humilde, pero
        intrépido
      • Saca todo el partido
        de los que saben
      • Procura estar al día
        en tecnología
   Y entre nosotros…
 Aquello que hagas, hazlo
           bien
Y eso es todo...




¿preguntas?

Mais conteúdo relacionado

Destaque (16)

Water disaster
Water disasterWater disaster
Water disaster
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
La biodiversidad
La biodiversidadLa biodiversidad
La biodiversidad
 
Präsentation HR BarCamp 2012
Präsentation HR BarCamp 2012Präsentation HR BarCamp 2012
Präsentation HR BarCamp 2012
 
AUDITOR - DAS AUDITMANAGEMENT
AUDITOR - DAS AUDITMANAGEMENTAUDITOR - DAS AUDITMANAGEMENT
AUDITOR - DAS AUDITMANAGEMENT
 
BACHELOR DEGREE
BACHELOR DEGREEBACHELOR DEGREE
BACHELOR DEGREE
 
Ahorro seguro web1
Ahorro seguro web1Ahorro seguro web1
Ahorro seguro web1
 
AGOF facts figures Kosmetik Q2/2012
AGOF facts figures Kosmetik Q2/2012AGOF facts figures Kosmetik Q2/2012
AGOF facts figures Kosmetik Q2/2012
 
Capitulo i medicina
Capitulo i medicinaCapitulo i medicina
Capitulo i medicina
 
Retiro
RetiroRetiro
Retiro
 
El procedimiento romano
El procedimiento romanoEl procedimiento romano
El procedimiento romano
 
Jimdo
JimdoJimdo
Jimdo
 
Comercio Electronico/Investigacion 3
 Comercio Electronico/Investigacion 3 Comercio Electronico/Investigacion 3
Comercio Electronico/Investigacion 3
 
Presentación 1
Presentación 1Presentación 1
Presentación 1
 
Alicia 3
Alicia 3Alicia 3
Alicia 3
 
Daftar wisudawan pba
Daftar wisudawan pbaDaftar wisudawan pba
Daftar wisudawan pba
 

Semelhante a Ingeniería del Software: Nuestro producto debe funcionar

MDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por ModelosMDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por ModelosJorge Mario Calvo Londoño
 
Método cascada
Método cascadaMétodo cascada
Método cascadamariacebu
 
Método cascada
Método cascadaMétodo cascada
Método cascadamariacebu
 
Invoin presentación general
Invoin presentación generalInvoin presentación general
Invoin presentación generaldavidinvoin
 
Machine learning for dummies - Azuges November 2016
Machine learning for dummies - Azuges November 2016Machine learning for dummies - Azuges November 2016
Machine learning for dummies - Azuges November 2016Carlos Landeras Martínez
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010Fitira
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareSoftware Guru
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicaciónuniv of pamplona
 
Microservicios con ASP.NET Core
Microservicios con ASP.NET CoreMicroservicios con ASP.NET Core
Microservicios con ASP.NET CoreEduardo Campañó
 
KronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps
 
Master RIAtec 2013 - Bloque 2
Master RIAtec 2013 - Bloque 2Master RIAtec 2013 - Bloque 2
Master RIAtec 2013 - Bloque 2Bruno Capuano
 
ExpoCloud2013 - PaaS para desarrolladores
ExpoCloud2013 - PaaS para desarrolladoresExpoCloud2013 - PaaS para desarrolladores
ExpoCloud2013 - PaaS para desarrolladoresInside_Marketing
 

Semelhante a Ingeniería del Software: Nuestro producto debe funcionar (20)

MDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por ModelosMDD Ingenieria de Software Dirigida por Modelos
MDD Ingenieria de Software Dirigida por Modelos
 
Método cascada
Método cascadaMétodo cascada
Método cascada
 
Método cascada
Método cascadaMétodo cascada
Método cascada
 
Invoin presentación general
Invoin presentación generalInvoin presentación general
Invoin presentación general
 
Machine learning for dummies - Azuges November 2016
Machine learning for dummies - Azuges November 2016Machine learning for dummies - Azuges November 2016
Machine learning for dummies - Azuges November 2016
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
proyecto de sistemas
proyecto de sistemasproyecto de sistemas
proyecto de sistemas
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de Software
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicación
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Microservicios con ASP.NET Core
Microservicios con ASP.NET CoreMicroservicios con ASP.NET Core
Microservicios con ASP.NET Core
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
KronOps - Perfil Corporativo
KronOps - Perfil CorporativoKronOps - Perfil Corporativo
KronOps - Perfil Corporativo
 
Ingenieria sistemas
Ingenieria sistemasIngenieria sistemas
Ingenieria sistemas
 
Master RIAtec 2013 - Bloque 2
Master RIAtec 2013 - Bloque 2Master RIAtec 2013 - Bloque 2
Master RIAtec 2013 - Bloque 2
 
ExpoCloud2013 - PaaS para desarrolladores
ExpoCloud2013 - PaaS para desarrolladoresExpoCloud2013 - PaaS para desarrolladores
ExpoCloud2013 - PaaS para desarrolladores
 
definicion de java
definicion de javadefinicion de java
definicion de java
 

Último

certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 

Último (20)

certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 

Ingeniería del Software: Nuestro producto debe funcionar

  • 1. Francisco Sánchez Cid http://web.iti.upv.es/~fsanchez cid@iti.es @_Francisco_1978 Ingeniería del Software: Nuestro producto, debe funcionar
  • 2. Contenido de la charla Instituto ACME TPV Algunos Tecnológico de Informática consejos Ingeniería del software práctica: “nuestro producto debe funcionar”
  • 3. Instituto Tecnológico de Informática Quiénes somos, qué hacemos
  • 4. ITI “Quiénes somos” • Centro Tecnológico especializado en Investigación, Desarrollo e Innovación en Tecnologías de la Información y Comunicación • Somos una asociación sin ánimo de lucro y pertenecemos a la Red de Institutos Tecnológicos de la Comunidad Valenciana (junto al del Juguete, el Cerámico, el de la Madera..) • El ITI desarrolla una labor de I+D+I transfiriendo a las empresas la posibilidad de incorporar a sus productos las tecnologías y capacidades desarrolladas en proyectos de I+D+I
  • 5. Capacidades en Optimización y BI Inteligencia de negocio Big Data Data Mining
  • 6. Tecnologías inteligentes de digitalización Sistema OCR/ ICR capaz de reconocer y exportar información impresa y manuscrita Características Tecnología propia Plantillas, gestión de lotes y validación inteligente Exportación de resultados en varios formatos, compatible con diferentes plataformas Proceso sencillo Integrable con otros sistemas de gestión documental y otras herramientas de gestión Papel Digitalización Validación Exportación
  • 7. Control de Accesos y Presencia por Reconocimiento Facial Sistema de IDENTIFICACIÓN y/o VERIFICACIÓN biométrica basada en análisis de imágenes faciales. A partir de una o varias imágenes de la cara de una persona se puede averiguar o validar la identidad de esta. ¿Porqué biometría facial? • Es la forma más natural de identificarnos: los humanos nos reconocemos mirándonos a la cara sin ningún otro tipo de interacción (habla, tacto…). • Por supuesto no nos reconocemos mirándonos al IRIS o las huellas de los dedos • Los accesos son auditables de forma rápida y segura por el personal responsable de los accesos y la seguridad. Simplemente hay que mirar la foto de quien ha entrado y si ha habido un intento de suplantación de un usuario. • Con las huellas dactilares es imposible saber si quien ha entrado es quien dice ser por la huella o si se trata de un impostor iticab.iti.es
  • 8. Sistema avanzado de inspección industrial en 3D Sistema de inspección que aplica técnicas de Visión Artificial para el control de calidad o clasificación. Realiza la adquisición de imágenes de un objeto a través de múltiples cámaras, mientras la pieza está en caída libre.
  • 9. • Inteligencia ambiental Y además... • Sensorización avanzada • Sistemas embebidos y de comunicaciones • Cloud computing • Análisis, Diseño y Desarrollo Software • ... • ¡ah! y Calidad del Software
  • 10. ACME TPV Un año de desarrollo
  • 11. El lanzamiento Lanzamiento Desarrollo Entrega Todo comienza con entrevistas con el cliente: • Visión del sistema: qué componentes hay, qué interacciones • Requisitos de alto nivel: la funcionalidad a grandes rasgos • Plan inicial: una estimación muy arriesgada
  • 12. El lanzamiento Lanzamiento Desarrollo Entrega Decisiones que marcarán el futuro del proyecto: • El equipo de desarrollo: perfil tecnológico, perfil personal, roles • Análisis de requisitos: la base para poder cerrar una entrega
  • 13. El lanzamiento Lanzamiento Desarrollo Entrega Decisiones que marcarán el futuro del proyecto: • Tecnologías: Java 7, MySQL, JPA, ActiveMQ, ... ¿Cómo elegir y quién debe elegir? ¿Elegiríais la última versión? • Entorno de trabajo: Netbeans, Eclipse, Windows, Linux, Trac, SVN... ¿Flexibilidad a cambio de complejidad?
  • 14. El lanzamiento Lanzamiento Desarrollo Entrega A estas alturas, debe estar claro: • Análisis de Requisitos: documento de referencia, en el que se define toda la funcionalidad a implementar. Ni más ni menos. Documento crítico • Plan del proyecto: hoy en día es común trabajar de forma iterativa, pero es necesario un plan que establezca horizontes de entrega El plan hay que revisarlo por iteraciones
  • 15. El desarrollo Lanzamiento Desarrollo Entrega ¡Comenzamos a trabajar! ¿y por donde empiezo?
  • 16. Al comienzo, el proyecto está muy poco definido, pero el equipo está a la espera de trabajo ¿Qué podemos asignarles? Definir y asignar
  • 17. Al comienzo, el proyecto está muy poco definido, pero el equipo está a la espera de trabajo ¿Qué podemos asignarles? • Crear la estructura de proyecto, con paquetes principales, y reglas de empaquetado y despliegue • Formación: servidores sobre los que se desplegará, sistemas de Definir y asignar gestión de BBDD, nuevas tecnologías a aplicar... • Si tenemos que trabajar con hardware específico: primeras pruebas de control Entre tanto, seguimos con el diseño del sistema: • Arquitectura: separación en componentes, primeros diagramas de clase y de secuencia • Modelo de datos: primeras entidades a persistir, con su descripción completa y todos los atributos que creamos necesarios
  • 18. Diseño: Definir la Arquitectura Arquitectura en capas (MVC): Modelo, Vista, Controlador Estados Modelo: BBDD relacional, con autogeneración JPA Comunicaciones Operadores Vista: Swing básica Controlador: Java 7 Servicios HW Persistencia Disp. GUI MySQL DB XML
  • 19. Arquitectura modular: Estados Máquina de estados: Estados Comunicaciones Operadores Servicios HW Persistencia En lugar de... GU Disp. MySQL DB XML I
  • 20. Definir la Arquitectura Java Persistence API (JPA): >> Autogeneración Estados >> Cambio rápido Comunicaciones Operadores Modelo ER (Tablas) Servicios HW Persistencia Entidades (Clases GU Autogeneradas) Disp. MySQL DB XML I Controladores (Clases Programadas)
  • 21. Persistencia modelo de datos Modelo ER (Tablas) Entidades (Clases Autogeneradas) Controladores Automático (Clases Programadas)
  • 22. El desarrollo Lanzamiento Desarrollo Entrega Ya podemos trabajar de verdad: Cada miembro del equipo tiene una responsabilidad Persistencia -> Técnico 1 Flujo de caja -> Técnico 2 Ofertas -> Técnico 3 Hardware -> Técnico 4 Comunicaciones -> Técnico 5
  • 23. El desarrollo Lanzamiento Desarrollo Entrega Ya podemos trabajar de verdad: Cada miembro del equipo tiene una responsabilidad Persistencia -> Técnico 1 Flujo de caja -> Técnico 2 Ofertas -> Técnico 3 Hardware -> Técnico 4 Comunicaciones -> Técnico 5 ¿Detectáis algún riesgo ahí arriba?
  • 24. ¿Qué ocurre si alguien del equipo falla? • Evaluar el retraso: tiempo de transferencia, búsqueda de un nuevo miembro para el equipo • Depende de quién falle, pero sólo hay una solución: documentación y puesta en común Riesgos del proyecto
  • 25. ¿Qué ocurre si alguien del equipo falla? • Evaluar el retraso: tiempo de transferencia, búsqueda de un nuevo miembro para el equipo • Depende de quién falle, pero sólo hay una solución: documentación y puesta en común Riesgos del proyecto Además, ¿cuando os retrasabais, a quién llamabais?
  • 26. El desarrollo Lanzamiento Desarrollo Entrega Proseguimos con el desarrollo... Tenemos un montón de HW implementado, pero llegan nuevos problemas
  • 27. Distintas versiones para un mismo dispositivo Impresora ¿Se os ocurre alguna solución? Escáner
  • 28. Distintas versiones para un mismo dispositivo Herencia: funcionalidad común heredada
  • 29. Distintas versiones para un mismo dispositivo Interfaces: funcionalidad común definida y acotada
  • 30. Distintas versiones para un mismo dispositivo Patrones: patrón factoría. Instanciamos según configuración y conseguimos independencia
  • 31. El desarrollo Lanzamiento Desarrollo Entrega Ya estamos a mitad de camino... ¿Qué hace nuestra TPV? • Identifica los productos y los añade al ticket de venta • Aplica ofertas • Transfiere la información de venta al servidor de tienda • Recibe cambios en los datos del servidor de ventas • Identifica a los clientes por fidelización • Realiza recargas de telefonía móvil • Permite pagos con tarjeta de crédito • ...
  • 32. Surge un nuevo problema La cantidad de mensajes que van y vienen en la tienda es ingente, y además: • Los mensajes deben llegar siempre a su destino. • Si el destino no está accesible, hay que esperar a que lo esté • Hay mensajes para un único destino Las comunicaciones • Hay mensajes para muchos destinos a la vez
  • 33. Surge un nuevo problema La cantidad de mensajes que van y vienen en la tienda es ingente, y además: • Los mensajes deben llegar siempre a su destino. • Si el destino no está accesible, hay que esperar a que lo esté • Hay mensajes para un único destino Las comunicaciones • Hay mensajes para muchos destinos a la vez De nuevo, os pregunto ¿qué podemos hacer para gestionar bien estas comunicaciones?
  • 34. Patrones de Integración Empresarial Publish-Subscribe Las comunicaciones Guaranteed Delivery Durable Subscriber
  • 35. Modelo de colas Patrones de integración basados en mensajería >> Confirmación de entrega de mensajes >> Persistencia de la mensajería >> Durabilidad de los mensajes >> Independencia de la localización física
  • 36. El desarrollo Lanzamiento Desarrollo Entrega Y nos acercamos al final • Hay cambios de última hora en los requisitos • El equipo de test no para de reportar incidencias • Comienzan las prisas en el desarrollo. Hay que echar horas extras. Toca trabajar algún festivo y fin de semana • El estrés del equipo se dispara • El cliente pide informes de avance continuos Si no actuamos, el proyecto se nos va de las manos ¿qué podemos hacer?
  • 37. Volvemos al lanzamiento Lanzamiento Desarrollo Entrega Decisiones que marcarán el futuro del proyecto: Hay que quitar presión. • El equipo de desarrollo: perfil tecnológico, perfil personal, roles Actividades fuera de la oficina, flexibilidad horaria, teletrabajo, ... • Análisis de requisitos: la base para poder cerrar una entrega
  • 38. Volvemos al lanzamiento Lanzamiento Desarrollo Entrega Decisiones que marcarán el futuro del proyecto: • Hay que se inflexible con el perfil tecnológico, perfil personal, roles El equipo de desarrollo: cliente. Los nuevos requisitos implican tiempo, esfuerzo, y dinero • Análisis de requisitos: la base para poder cerrar una entrega
  • 39. Si queremos conseguir la implicación del equipo El Jefe de Proyecto, debe ser el primero y el último
  • 40. La importancia del testeo Lanzamiento Desarrollo Entrega
  • 41. La importancia del testeo Lanzamiento Desarrollo Entrega Al final del desarrollo es cuando se hacen más patentes las virtudes del testeo. Por ejemplo, el testeo unitario: • Al implementarlo, parece tedioso e innecesario: “sabemos lo que estamos haciendo y qué debe devolver nuestra función” • Pasan 10 meses • Se han implementado 500 nuevas funciones • Se va el desarrollador • Hay que hacer una modificación en (por ejemplo) el cálculo del margen para el reparto de las ofertas en un lote de productos, que lleva funcionando bien casi 1 año ¿Alguien se atreve?
  • 42. Y respecto a la entrega... ...esa es otra historia
  • 43. ALGUNOS CONSEJOS Espero que os sirvan...
  • 44. Consejo 1: Sed ingenieros • Todos empezamos desde abajo, así que… – Hazte un buen programador – Pero no lo olvides: • Eres Ingeniero, aunque tu rol sea programador – Hazte un buen tecnólogo • No es sólo programar, es conocer la tecnología – Internacionalízate
  • 45. Consejo 2: Sed diseñadores • Maneja el MVC con soltura: • Aprende el porqué de 3 cosas: – Interfaces – Herencia – Patrones
  • 46. Consejo 3: Sed técnicos • Respecto a la programación: – Ingenia, busca, no des nada por seguro: duda de todo. – Sé maduro: aplica patrones – Sé limpio: aplica formatos estándar – Consulta (o participa) en proyectos de SW libre • Respecto a la tecnología: – No sólo programes, conoce la tecnología – Aprende a crear tu propio criterio: busca y compara – No es Java, sino Struts, Hibernate, Spring… – No es .NET, sino SQLServer, Sharepoint, Visual Studio…
  • 47. Consejo 4: Disfruta de lo que haces • Respecto a ti: • Sé humilde, pero intrépido • Saca todo el partido de los que saben • Procura estar al día en tecnología Y entre nosotros… Aquello que hagas, hazlo bien
  • 48. Y eso es todo... ¿preguntas?