4.1 Diseño Arquitectónico
4.2 Metodologías de AD de SI
4.3 Desarrollo Ágil y Libre de Fallas
4.4 Web y Videojuegos 4.5 Apps
1.
Individuos e interacciones son más
importantes que procesos y herramientas
2.
Lo que importa es que funcione no la documentación exhaustiva
3.
La colaboración con el cliente es más importante que la negociación de
contratos
4.
La respuesta ante el cambio es más
importante que el seguimiento de un plan
2
Cuatro Principios del Desarrollo
Ágil
1.
Dynamic Systems
Development Method
2.
SCRUM
3.
Clean Room
Modelos Actuales de Desarrollo
1. Dynamic System Developmet Method (DSDM)…
FASES TAREAS
Estudio
Factibilidad TEO, Planificación, Plan de Desarrollo y Administración de
Riesgos
Requerimientos por área y Definición de Arquitectura
Prototipo
Funcional
Calendarizar, Desarrollar y Evaluar RF por Area…1. DSDM
FASES TAREAS
Desarrollo
Calendarizar, Desarrollar y Evaluar Requerimientos no FuncionalesImplemen- tación
Aprobación del Cliente
Entrenamiento
Instalación y Arranque
Retroalimentación
…2. SCRUM…
…2. SCRUM…
Requisito detallados Requisitos no detallados,
priorizados y modificables por cualquiera, el propietario, decide
El Propietario explica, prioridades y dudas
…2. SCRUM
15 min SM ¿Qué hiciste ayer?¿Qué harás hoy?¿Qué necesitas?
Incremento Probado y Documentado en
máximo 30 días
2. SCRUM…
Codificar Definir
Incrementos Probar Integrar
Incremento Especificar
Cajas
Perfil
Operacional Diseñar
Pruebas
Probar el Sistema Revisar errores
3. Cleanroom…
Negra. Respuestas, Estructuras de Datos y Clases
De Estado. Estado actual – Evento - Nuevo Estado
Transparente. Programación de Procedimientos
Especificar Cajas
…3. Cleanroom…
Para cada secuencia de entradas, de acuerdo con su probabilidad de utilización
Aula Virtual Dra. Lizbeth Gallardo
Diseñar Pruebas
…3. Cleanroom
Una manera de pensar y de trabajar
Ejecuta rápidamente sin tanta planificación
Solo construido se puede evaluar
Innovar más que investigar
Investigar y Planear en casos conocidos con el fin de mejorar el proceso
13
Desarrollo Ágil es…
Rápida reacción ante fallas
Ocuparse en lugar de Preocuparse
Liberar en cuanto sea técnicamente aceptable
Test de usuarios de guerrilla
Útil para casos que si se “caen” no importa, limitadas a público colaborativo
14
…Desarrollo Ágil es…
Incertidumbre
Tolerancia al cambio
Reducción en tiempo del 30%
Inútil para transacciones críticas (bancarias)
Pocos recursos y poco equipo
15
…Desarrollo Ágil es:
16
4.1 Diseño Arquitectónico
4.2 Metodologías de AD de SI
4.3 Desarrollo Ágil y Libre de Fallas
4.4 Web
y Videojuegos 4.5 AppsCiclo de Vida Web…
Esbozo en Photoshop, GIMP
Maquetación HTML/CSS Convertir los esbozos a plantillas, hoja de estilos e imágenes. Inkscape, fireworks, dreamweaver, amaya, apnata
Programación Cliente Javascript (sitio dinámico)
Programación servidor PHP, ASP .NET, Python, Perl;
Zend Studio o Platform, Eclipse
…Ciclo de Vida Web
Depuración Pruebas unitarias, aserciones
Pruebas en servidor local. Apache, Firefox, Firebug, Web Developer
Subir ficheros al hosting (FTP, SFTP (SSH), WebDAV, Subversion
Pruebas en hosting
WSDM. Web Site Design Method
Definición del Sistema
Estudio de entorno
Descripción de Grupos de Usuario
Fases
Modelo de usuario
Diseño: conceptual y de implementación
Implementación
OOHDM
OO Hypermedia Design Model
Modelado conceptual. Clases, relaciones y subsistemas
Diseño navegacional. Clases y Contextos
Diseño abstracto de interfaz. Objetos Navegacionales
Puesta en práctica. Perfiles y tareas de usuario
4.1 Diseño Arquitectónico
4.2 Metodologías de AD de SI
4.3 Desarrollo Ágil y Libre de Fallas 4.4 Web y Videojuegos
4.5 Apps
Objetivo
Estructurar y comunicar información para desarrollar una aplicación capaz de: dibujar
objetos, actualizar coordenadas, calcular
colisiones, manejar eventos, audio y niveles en tiempo real
Tres
Etapas…
1.
Inicio
2.
Ejecución
3.
Término
1. Inicio
Biblioteca gráfica
Carga de recursos: sonidos e imágenes
Reserva de memoria
Posición inicial de personajes
Manejo de puntos
2. Ejecución
Entrada: lo que realiza el jugador
Proceso: información, colisiones, transmisión;
toma de decisiones, simulación de personajes (IA)
Salida: gráficos, sonidos y nuevos escenarios
3. Término
Guardar puntos
Eliminar de la memoria imágenes y audio
Problemática
Evolución tecnológica acelerada
Requisitos cambiantes y difíciles de evaluar
Enfoques múltiples
Personal muy especializado
Baja reutilización por: alto costo de
creación, retraso en la liberación del
producto y caducidad del componente
Arquitectura Entornos Virtuales con Agentes
Ciclo de Vida…
1.
Concepto
2.
Pre- Producción
3.
Producción
4.
Alfa
5.
Beta
6.
Liberación
7.
Parches
8.
Actualizaciones
Una Metodología
Waterfall (o BDUF)
Diseño completo antes de implementación
VENTAJAS. Facilidad de adopción y administración . del proyecto con equipos de desarrollo grandes
DESVENTAJAS. No responde bien ante cambios y crea cuellos de botella
4.1 Diseño Arquitectónico
4.2 Metodologías de AD de SI
4.3 Desarrollo Ágil y Libre de Fallas 4.4 Web y Videojuegos
4.5 Apps
S.O. Y Lenguajes
Symbian. Celulares. C++
Windows Mobile PDAs .Net, Compact Framework
Palm OS. C++
Android de Google con Kernel Linux. J2ME y Python
RIM Blackberry
J2ME
Configuraciones. Múltiples dispositivos
Perfiles. Funcionalidad básica por familia
Paquetes. Bluetooth y 3D
Estructura de un MIDlet
import javax.microedition.midlet.MIDlet;
public class EjemploMidlet extends MIDlet { public void startApp()
public void pauseApp()
public void destroyApp(boolean) }
…TextBox y Alert
…Forms
Manejo de datos
Accesar:
int addRecord(byte[] datos, int offset, int numBytes)
Recuperar:
int getRecord(int id, byte[] buffer, int offset)
Modificar:
void setRecord(int id, byte[] nuevosDatos, int offset, int numBytes)
Eliminar:
void deleteRecord(int id)
Conexión por red
Mediante sockets, http y otros protocolos
Clase Connection conexión genérica extendida a:
E/S mediante streams: InputConnection, OutputConnection y StreamConnection
Clase StreamConnection extendida a:
CommConnection, HttpConnection, httpsConnection, SocketConnection
Archivos
FileConnection fc;
InputStream is;
fc = (FileConnection) Connector.open(
/Imagenes/flower.jpg,Connector.READ);
is = fc.openInputStream();
Image mi = Image.createImage(is);
//Bloque is.close();
Desarrollo. Más recursos
API MIDP
http://www.it.uc3m.es/celeste/docencia/j2me/docs/api/midp/javax /microedition/lcdui/game/package-frame.html
Mobile Media API
http://www.jcp.org/en/jsr/detail?id=184
Wireless Messaging API
http://java.sun.com/products/wma/
Bluetooth API
http://jcp.org/aboutJava/communityprocess/final/jsr08 2/