Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro,...

64
Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014

Transcript of Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro,...

Page 1: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Ingeniería de Software Libre para Ambientes Móviles

M.C. Juan Carlos Olivares Rojas

Pátzcuaro, Michoacán, 29 de abril de 2014

Page 2: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Agenda

Introducción

Aplicación de Ingeniería de Software

Cierre

Page 3: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Tecnología MóvilEl mundo jamás se quedará quieto…

Tecnología Disruptiva

Page 4: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Computación…Vivimos en la era Post-PC…

Page 5: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

¿Qué es esto?

Page 6: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Drones

https://www.youtube.com/watch?v=aGqvEE-oxkA

Page 7: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Ambientes Móviles

Page 8: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

¿Ambiente Móvil?

Page 9: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Ambientes Móviles

Los dispositivos móviles son una

extensión más de nosotros

Page 10: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Ambientes Móviles

Dispositivos “Smart” e Interconectados Siempre

Page 11: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Cómputo Ubicuo

Page 12: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Cómputo en todo

Page 13: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Cómputo “Vestible”

Page 14: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Ambientes Dinámicos

Page 15: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Software is Eating the World

Page 16: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Tendencias Tecnológicas

“En los próximos 10 años habrá muchos mas cambios

que en los últimos 100 años”

Bill Gates

Page 17: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Estadísticos…5,200 millones de teléfonos celulares por 6,900

millones de personas.

Más teléfonos móviles que cepillos de dientes.

1,000 millones de personas tienen Internet en

casa

1,600 millones de personas tienen Internet en

dispositivos móviles

Page 18: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Crecimiento de 2010 a 2020

Fuente: U.S. Bureau of Labor Statistics’ 2012-2013 Occupational Outlook Handbook

Page 19: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Tendencias 2014 GartnerWeb-Scale IT

Smart Machines

3D PrintingThe Era of Personal Cloud

Software-Defined Anything

Page 20: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Tendencias 2014 GartnerMobile Device Diversity and Management

(BYOD)Mobile Apps and Applications

The Internet of Everything

Hybrid Cloud & IT as a Services BrokerCloud/Client Architecture

Page 21: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Tendencias Tecnológicas

Page 22: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Evolución de las Interfaces de Usuario

Page 23: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Innovación…1999 Blackberry Pager

2000 Primer Smartphone

En 2010 tenía el 43% del mercado…El año pasado (2013) solo el 4%

Page 24: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Adaptación

Page 25: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Agenda

Introducción

Aplicación de Ingeniería de Software

Cierre

Page 26: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Ing. de Software• Herramientas

Métodos

• Procesos

Enfoque de Calidad

Page 27: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

SoftwareLa suma total de los programas de cómputo, procedimientos, reglas de documentación y datos asociados que forman parte de las operaciones de un sistema de cómputo [IEEE Computer Society Press, 1993].

Page 28: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

¿Cómo es nuestro Software?

Page 29: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Ing. de Software

Page 30: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Software hoy en díaMito: los programadores de ahora ya no programan como los de antes.

Herramientas más fáciles y productivasEl software es cada día más complejo

Page 31: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Negocio del Desarrollo de Software

80% Desarrollo de Software es para mantenimiento.

90% del Desarrollo de Software es hecho a la medida.

Por lo tanto se necesita de un código simple, legible y bien diseñado para que en un futuro pueda ser extensible.

Page 32: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

¿Por qué programamos Objetos?

Permite un mayor reuso

El reuso evita programar de más

Programando menos se cometen menos errores

Teniendo menos errores se logra calidad

Page 33: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Los modelos no tienen la culpa…

“Los culpables son los que los eligen sin saber para qué… pensando en cumplir con la certificación”

Los procesos no están peleados con la innovación.

Page 34: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Problemática

“Casas de Perros”Proyectos EscolaresSIN ARQUITECTURAPoco $

CasasProyecto de PyMESARQUITECTURAS SIMPLESRentable $

EdificiosGrandes CorporativosARQUITECTURAS COMPLEJASMucho $$$$

Page 35: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Ing. de Software para Ambientes Móviles

Los bibliografía especializada apenas

empieza a tratatar este tópico.

Ya empieza a haber cursos específicos del tema.

Page 36: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Ing. de Software Libre

Mucho del paradigma de Desarrollo de Software

Libre se ha integrado a las “mejores prácticas” de la

Ing. de Software Tradicional

Page 37: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Malas Prácticas

Ventanas Rotas

“Código mutante”

“Diseño roto”

Page 38: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Malos OloresBAD SMELL REFACTORING PROPUESTO

CODIGO DUPLICADO EXTRAER EL MÉTODOSUBIR VARIABLESSUSTITUIR EL ALGORITMO

MÉTODOS LARGOS EXTRAER EL MÉTODOINTRODUCIR OBJETOS COMO PARÁMETROSREEMPLAZAR EL MÉTODO CON UN OBJETO MÉTODO

CLASES GRANDES EXTRAER CLASESEXTRAER SUBCLASES

CARACTERÍSTICA DE LA “ENVIDIA” MOVER MÉTODO

CLASES “PEREZOSAS” COLAPSAR JERARQUÍAS

Page 39: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

MetodologíasHistorias de Usuario Criterios de pruebas de aceptación Plan de Iteraciones

Diseño simpleTarjetas CRC

Spikes Prototipos

Programación en paresPruebas de Unidad

Entregas deSoftwareIncrementales

Velocidad delProyectoMedible

Planeación Diseño

Pruebas

Pruebas de Aceptación

Codificación

Refactoring

Integración Contínua

Page 40: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Consideraciones del Entorno

Page 41: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

HerramientasNativas

Híbridas

Web

Page 42: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

DiseñoEl diseño no es cómo se ve…

es como funciona

Algoritmos Estructura de Datos

Programas9. Las estructuras de datos inteligentes y el código burdo funcionan mucho mejor que el caso inverso.

Page 43: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Pruebas de Software

Especificación Formal

Código

Mundo Real

Validación

Verificación

8.Ley de Linus

Page 44: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Pruebas de Software

Utilizar la nube.

Usar datos de prueba reales.

Utilizar dispositivos reales

Page 45: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Especificación Formal

OCL (Lenguaje de Restricción de Objetos)

Page 46: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Mejores Prácticas

Entornos de Desarrollo Integrados

Control de Versiones

Pruebas Automatizadas

Documentación Funcional

Page 47: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Agilidad

Documentación rápida

Page 48: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Modelado

13. “La perfección (en diseño) se alcanza cuando ya no hay nada que agregar, sino cuando ya no hay nada que quitar”.

Page 49: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Arquitecturas y PatronesPatrón

ArquitectónicoMVC (Modelo-

Vista-Controlador)

2. Los buenos programadores saben que escribir. Los mejores, qué reescribir (y reutilizar).

Page 50: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Mejores Prácticas

Diseño de la Experiencia del Usuario (UX)

Utilización de Lenguajes de Modelado y especificaciones formales

Código Limpio

Page 51: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Código Limpio

Tomar en consideración todos los warnigs, de preferencia

tratarlos como errores.

Codificar con propósito. Realizar funciones que se van

a ocupar. No realizar código de más.

Page 52: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Código Claro¿qué hay de malo en el siguiente código?

for(int i=0; i<size(); i++)

a = (b+c) / i;

Eliminar evaluaciones innecesarias:

int tmp = b+c;

int s = size();

for(int i=0; i<s; i++)

a = tmp / i;52

Page 53: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Código Claro¿Que hay de malo en el siguiente código?

b = Math.abs(a) * c;

d = e / (Math.abs(a) + b);

Eliminar subexpresiones comunes:

int tmp = Math.abs(a);

b = tmp * c;

d = e / (tmp + b); 53

Page 54: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Código Claro¿Qué hay de malo en el siguiente código?

for (int i=0; i <1000; i++)

a = obj.b * i;

Aprovechar las variables locales:

int localb = obj.b;

for (int i=0; i <1000; i++)

a = localb * i; 54

Page 55: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Agenda

Introducción

Aplicación de Ingeniería de Software

Cierre

Page 56: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

RetosSistemas Embebidos

Sistemas de Tiempo Real

Sistemas Distribuidos

Sensibles al Contexto

17. Un sistema de seguridad es tan seguro como secreto. Cuídese de los secretos a medias.

Page 57: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Consciencia del

dispositivo

Consciencia del

dispositivo

Sistemas Conscientes del Contexto

¿Donde? WHERE¿Donde? WHERE

¿Quién? WHO¿Quién? WHO

Realizar servicios solosRealizar servicios solos

Realizar servicios coordinados

Realizar servicios coordinados

¿Cuándo? WHEN¿Cuándo? WHEN

¿Qué? WHAT¿Qué? WHAT

¿Cómo? HOW¿Cómo? HOW

Page 58: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

RETO

S

Page 59: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

LBS

Sistemas Basados en Localización

¿Dónde estoy? ¿Qué está cerca de? ¿Cómo puedo ir a?

Page 60: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Tópicos de Interés

Entornos de Desarrollos de Sw (PSP/TCP/CMMI/COBIT/ITIL)

Desarrollo de Software Ágil (Metodologías de Desarrollo Adaptativas)

Patrones de Análisis y Diseño

Page 61: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Tópicos de Interés

Reingeniería y Reuso de Software

Pruebas y Mantenimiento de Software

Seguridad en el Desarrollo de Software

Métricas y Estimación de Software

Page 62: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

Conclusiones

El mercado de TI requiere profesionistas competentes en el desarrollo de software para ambientes dinámicos.

¿Estamos preparados para enfrentar los retos tecnológicos?

La Ingeniería de Software es vital!!!

Page 63: Ingeniería de Software Libre para Ambientes Móviles M.C. Juan Carlos Olivares Rojas Pátzcuaro, Michoacán, 29 de abril de 2014.

ConclusionesSe ocupa adaptar el proceso de Desarrollo de Software a cualquier tipo de ambiente.

Es importante innovar pero también es importante documentar dichas mejoras.

Se ocupan de habilidades adicionales: lengua extranjera, liderazgo, relaciones humanas, …