Ing. de Software para Ambientes Móviles

July 25, 2017 | Autor: J. Olivares Rojas | Categoría: Software Engineering, Mobile Communication
Share Embed


Descripción

Malas Prácticas

Ventanas Rotas

"Código mutante"

"Diseño roto"

Agenda

Introducción

Aplicación de Ingeniería de Software

Cierre
Adaptación

Innovación…
1999 Blackberry Pager


2000 Primer Smartphone

En 2010 tenía el 43% del mercado…
El año pasado (2013) solo el 4%
Evolución de las Interfaces de Usuario
Tendencias Tecnológicas

Ing. de Software
Herramientas

Métodos

Procesos

Enfoque de Calidad
Software
La 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].
¿Cómo es nuestro Software?
¿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
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.

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

Herramientas más fáciles y productivas
El software es cada día más complejo
Ing. de Software

Tendencias 2014 Gartner
Mobile Device Diversity and Management (BYOD)
Mobile Apps and Applications

The Internet of Everything

Hybrid Cloud & IT as a Services Broker
Cloud/Client Architecture
Tendencias 2014 Gartner
Web-Scale IT
Smart Machines

3D Printing
The Era of Personal Cloud

Software-Defined Anything

Crecimiento de 2010 a 2020
Fuente: U.S. Bureau of Labor Statistics' 2012-2013 Occupational Outlook Handbook
Ambientes Móviles







Dispositivos "Smart" e Interconectados Siempre
Ambientes Móviles


Los dispositivos móviles son una extensión más de nosotros
¿Ambiente Móvil?
Ambientes Móviles
Drones
https://www.youtube.com/watch?v=aGqvEE-oxkA
Cómputo Ubicuo

Cómputo en todo

Cómputo "Vestible"
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

Tendencias Tecnológicas

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

que en los últimos 100 años"

Bill Gates

Software is Eating the World

Ambientes Dinámicos

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.
Problemática
"Casas de Perros"
Proyectos Escolares
SIN ARQUITECTURA
Poco $
Casas
Proyecto de PyMES
ARQUITECTURAS SIMPLES
Rentable $
Edificios
Grandes Corporativos
ARQUITECTURAS COMPLEJAS
Mucho $$$$
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.

Mejores Prácticas

Entornos de Desarrollo Integrados

Control de Versiones

Pruebas Automatizadas

Documentación Funcional
Agilidad



Documentación rápida
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".
Arquitecturas y Patrones
Patrón
Arquitectónico
MVC (Modelo-Vista-Controlador)
2. Los buenos programadores saben que escribir. Los mejores, qué reescribir (y reutilizar).
Mejores Prácticas

Diseño de la Experiencia del Usuario (UX)

Utilización de Lenguajes de Modelado y especificaciones formales

Código Limpio
Especificación Formal

OCL (Lenguaje de Restricción de Objetos)

Pruebas de Software

Utilizar la nube.

Usar datos de prueba reales.


Utilizar dispositivos reales




Pruebas de Software

Especificación Formal
Código
Mundo Real




Validación

Verificación




8.Ley de Linus
Metodologías




Historias de Usuario
Criterios de pruebas de aceptación
Plan de Iteraciones
Diseño simple
Tarjetas CRC

Spikes
Prototipos
Programación en pares
Pruebas de Unidad
Entregas de
Software
Incrementales

Velocidad del
Proyecto
Medible
Planeación
Diseño
Pruebas
Pruebas de Aceptación
Codificación












Refactoring

Integración Contínua
Consideraciones del Entorno

Herramientas
Nativas

Híbridas

Web
Diseño
El diseño no es cómo se ve…
es como funciona
Algoritmos
Estructura de Datos
Programas
9. Las estructuras de datos inteligentes y el código burdo funcionan mucho mejor que el caso inverso.
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.
Código Claro
¿qué hay de malo en el siguiente código?
for(int i=0; i
Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.