Sei sulla pagina 1di 91

Introduccin al Desarrollo de Aplicaciones

Objetivos
Esta unidad tiene como objetivo que el estudiante comprenda los principios del desarrollo de aplicaciones. Para ello, se revisar los temas de pginas web, wikis y blogs, sistemas de creacin de contenidos (CMS), aplicaciones mviles y bases de datos.

Introduccin al Desarrollo de Aplicaciones

Unidad 1: Desarrollo de Aplicaciones


1.1 Aplicacin: generalidades y caractersticas 1.2 Desarrollo de aplicaciones: Generalidades y componentes

Introduccin al Desarrollo de Aplicaciones

Organizacin de una computadora


1. 2. 3. 4. Unidades de entrada Unidades de salida Unidades de memoria principal Unidad aritmtica y lgica (ALU) responsable de realizar clculos 5. Unidad central de procesamiento (CPU) coordina y supervisa la operacin de las dems secciones 6. Unidad de almacenamiento secundario
Introduccin al Desarrollo de Aplicaciones 4

Sistemas operativos
Las primeras computadoras eran capaces de realizar solamente una tarea o trabajo a la vez, a travs del procesamiento por lotes (batch) de un solo usuario. Los usuarios asignaban sus trabajos a un centro de cmputo que los introduca en paquetes de tarjetas perforadas, y a menudo tenan que esperar horas, o incluso das, antes de que sus resultados impresos regresaran a sus escritorios. El software denominado sistema operativo se desarroll para facilitar el uso de la computadora. Los primeros sistemas operativos administraban la transicin entre trabajos, incrementando la cantidad del flujo de datos que las computadoras podan procesar. Posteriormente se hicieron uso de tcnicas de multiprogramacin y tiempo compartido.
Introduccin al Desarrollo de Aplicaciones 5

Computacin personal, distribuida y cliente/servidor


Cuando las computadoras se volvieron sumamente econmicas, la gente pudo adquirirlas para su uso personal o para negocios. Se comenzaron a interconectar mediante redes computacionales va telefnica y redes de rea local (LANs) dentro de una empresa. Esto deriv en el fenmeno denominado computacin distribuida, en donde todos los clculos informticos de una empresa no se realizaban estrictamente dentro de un centro de cmputo. La informacin se comparte a travs de redes de computadoras, en donde algunas computadoras denominadas servidores almacenan datos que pueden ser utilizados por computadoras cliente distribuidas en toda la red, de ah el trmino de computacin cliente/servidor. Actualmente se requieren elaborar software para redes de computadoras y para aplicaciones cliente/servidor distribuidas.
Introduccin al Desarrollo de Aplicaciones 6

Internet y World Wide Web


Internet (la red global de computadoras) y World Wide Web (que permite localizar y ver documentos basados en multimedia a travs del ciberespacio) se encuentran entre las creaciones ms importantes de la humanidad, pues se han convertido explosivamente en uno de los principales mecanismos de comunicacin en todo el mundo. Las aplicaciones de la actualidad deben disearse para permitir la intercomunicacin entre computadoras de todo el mundo, combinando tecnologas de la computacin y las comunicaciones. Se pueden desarrollar aplicaciones que se ejecuten a travs de Internet y Web , haciendo que la informacin est accesible en forma instantnea y conveniente para todo el mundo, posibilitando que los individuos y negocios pequeos locales obtengan una exposicin mundial, cambiando la forma en que se hacen los negocios, asimismo brinda que los miembros de las comunidades con intereses especiales pueden mantenerse en contacto unos con otros.
Introduccin al Desarrollo de Aplicaciones 7

Software
Clasificacin del Software

Software de Sistema

Software de Programacin

Software de Aplicacin

Introduccin al Desarrollo de Aplicaciones

Qu es una Aplicacin?
Programa informtico diseado como herramienta para permitir realizar uno o diversos tipos de trabajo Suelen utilizarse para la automatizacin de tareas complicadas como la contabilidad, gestin de almacenes y buscadores de informacin Existen aplicaciones desarrolladas a medida y otros llamados paquetes integrados

Introduccin al Desarrollo de Aplicaciones

Ejemplos de Aplicacin
Aplicaciones a Medida

Paquetes integrados

Introduccin al Desarrollo de Aplicaciones

10

Software de Aplicacin
Es aquel que permite a los usuarios llevar a cabo una o varias tareas especficas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial nfasis en los negocios

Introduccin al Desarrollo de Aplicaciones

Especializado o personalizado
Programas desarrollados para atender una necesidad especfica
Types of Programs Colegios Restaurantes Tiendas de retail Intituciones financieras Sitios de compras por Internet Industrias Examples of Tasks Matrcula, asistencia, administracin de notas, etc Procesar las rdenes, cuentas por mesa, inventario de insumos, recetas, etc. Registro de productos, administracin de precios, etc Administracin de cuentas de clientes, tarjetas de crdito eBay, Mercado libre, Kotear, etc. Manufactura de productos, control de procesos, etc.

Transporte
Software cientfico

Reservas de pasajes, itinerarios, etc.


Anlisis estadstico, medicina, ingeniera, etc. Introduccin al Desarrollo de Aplicaciones 12

Diagrama de Aplicaciones

Introduccin al Desarrollo de Aplicaciones

13

Aplicaciones Empresariales Caractersticas


Acceso a base de datos, generalmente relacionales Transaccionales Escalables Disponibilidad Seguras Integracin

Introduccin al Desarrollo de Aplicaciones

14

Secuencia para el desarrollo de Software

Introduccin al Desarrollo de Aplicaciones

15

Desarrollo de Aplicaciones

Introduccin al Desarrollo de Aplicaciones

16

Desarrollo de Aplicaciones
El desarrollo de aplicaciones encaja dentro de la Ingenieria de Software Se pueden considerar los siguientes procesos:
Proceso de Gestin del Proyecto
Planificar las actividades y monitorear el desarrollo de la aplicacin

Proceso de Desarrollo de Software


Transforma los requerimientos de de usuarios en una aplicacin de calidad

Introduccin al Desarrollo de Aplicaciones

17

Gestin de Proyectos
Proyectos:
Esfuerzo temporal que se lleva a cabo para crear un producto, servicio u obra.

Gestin de Proyectos:
Organizacin y administracin de los recursos que intervienen en un proyecto de manera tal que ste se pueda culminar dentro del alcance, del tiempo y los costes definidos

Introduccin al Desarrollo de Aplicaciones

18

Gestin y Administracin de Proyectos


Recursos de Trabajo

Tiempo Planificacin

Recursos Materiales

Producto Alcance

Costos Presupuestos

Introduccin al Desarrollo de Aplicaciones

19

Gestin y Administracin de Proyectos


Planificacin, seguimiento y control de las actividades y de los recursos humanos en el desarrollo de cualquier proyecto.
Inicio del Proyecto Planificacin y Diseo

Ejecucin

Monitoreo y Control

Cierre

Introduccin al Desarrollo de Aplicaciones

20

Herramientas para la Gestin: EDT


Estructura de Descomposicin del Trabajo o EDT, tambin conocida por su nombre en ingls Work Breakdown Structure o WBS Es una estructura que ayuda a descomponer el desarrollo de una aplicacin en una estructura jerrquica y descendente formada por diferentes tareas a realizar.
Producto Visin
Visin de producto
Requerimiento de Negocio Plan de Negocio

Funcionalidad Especificacin funcional Documentaci n de Usuario


Metodologa Implementacin

Arquitectura Arquitectura Tcnica

Desarrollo Framework

Continuara
Ambiente Mtricas

Introduccin al Desarrollo de Aplicaciones

21

Herramientas: Gantt
Es una herramienta grfica cuyo objetivo es mostrar el tiempo de dedicacin previsto para diferentes tareas o actividades a lo largo de un tiempo determinado

Introduccin al Desarrollo de Aplicaciones

22

Desarrollo de Proyectos
Una vez definido el producto y los requerimientos se deben definir:
Una arquitectura adecuada para el producto Lenguaje de programacin adecuado Seleccionar el equipo de trabajo adecuado Establecer el plan de trabajo de acuerdo la arquitectura, lenguaje de programacin y equipo

Introduccin al Desarrollo de Aplicaciones

23

Componentes del Desarrollo de Software


Administracin de la configuracin de software
Control de versiones Construccin Automatizada Seguimiento de fallos

Refactoring de software Testing y pruebas Depuracin Ingeniera reversa


Introduccin al Desarrollo de Aplicaciones 24

Control de Versiones
Seguimiento de las diferentes versiones del software Tener versiones independientes de la aplicacin Copia de Seguridad

Softwares de control de versin


Introduccin al Desarrollo de Aplicaciones 25

Construccin Automatizada
Peridicamente (cada noche, semanal, etc)se debe construir todo el proyecto De esta forma se pueden detectar errores rpidamente Sistemas de construccin automatizada
Simple cron job buildbot

Introduccin al Desarrollo de Aplicaciones

26

Refactoring
La reconstruccin es un cambio en la arquitectura, diseo de la aplicacin o una pieza de software sin cambiar la funcionalidad visible de la aplicacin Por que hacer la reconstruccin
Mejorar el desarrollo Preparar la aplicacin para crecer

El refactoring no resuelve un bug Es la forma en que el software evoluciona


Introduccin al Desarrollo de Aplicaciones 27

Testing

Introduccin al Desarrollo de Aplicaciones

28

Testing

Si no ha sido probado, no funcionara

Ralph Johnson

Introduccin al Desarrollo de Aplicaciones

29

Testing
Parte importante del desarrollo de software Pruebas
Encontrar errores, entre otras cosas Probar la existencia de errores, no su ausencia Hacer los cambios fciles Ayudar a entender que es lo que debera hacer el software

Introduccin al Desarrollo de Aplicaciones

30

Testing
Tipos de pruebas: Pruebas unitarias, pruebas de sistemas, pruebas de integracin, pruebas de estress, Opciones para pruebas
Automatizado, que se ejecuta con cada compilacin Manual, se ejecuta en forma ocasional

Introduccin al Desarrollo de Aplicaciones

31

Manejo de versiones y produccin

Introduccin al Desarrollo de Aplicaciones

32

Unidad 2: Servidores Web


2.1 Internet y servidores Web 2.2 Distribuciones de Servidores Web 2.3 Lab: Instalacin y configuracin de XAMPP

Introduccin al Desarrollo de Aplicaciones

Qu es Internet?
Se podra decir que Internet esta formado por una gran cantidad de ordenadores que pueden intercambiar informacin entre ellos. Los ordenadores se encuentran unidos mediantes conexiones y utilizan un protocolo comn TCP/IP.

Introduccin al Desarrollo de Aplicaciones

34

Qu es Internet?
El usuario se conecta a un modem o router, utilizando lnea telefnica, cable, satlite, etc. Luego el modem o router utiliza el protocolo TCP/IP y se comunica con su proveedor de servicios ( ISP Internet Services Provider) El proveedor de Internet asigna un IP y a partir de ese momento se establece la comunicacin con los servidores
Introduccin al Desarrollo de Aplicaciones 35

Servidor
En informtica, un servidor es una computadora que, formando parte de una red, provee servicios a otros denominados clientes. Ejemplos de servicios a ser brindados:
Servidor de Base de Datos Servidor de Aplicaciones Servidor de FTP

Introduccin al Desarrollo de Aplicaciones

36

Servidor Web
Un servidor web es un programa que implementa el protocolo HTTP (Hyper Text Transfer Protocol). Este protocolo esta diseado para transferir pginas web o pginas HTML.

Introduccin al Desarrollo de Aplicaciones

37

Servidor Web
Se mantiene a la espera de peticiones HTTP por parte de un cliente HTTP que solemos conocer como navegador El cliente realiza una peticin al servidor y ste le responde con el contenido que el cliente solicita.

Introduccin al Desarrollo de Aplicaciones

38

Caractersticas
Un ejemplo muy claro es cuando accedemos desde nuestro computador a una direccin de internet ( www.paginasamarillas.com.pe ) El servidor responde enviando la pgina HTML correspondiente. El cliente recibe el cdigo, lo interpreta y lo exhibe en pantalla El servidor slo transfiere la informacin, no realiza ninguna interpretacin
Introduccin al Desarrollo de Aplicaciones 39

Ejemplo

Direccin Web o URL

Introduccin al Desarrollo de Aplicaciones

40

Pginas web Estticas


Las pginas web se pueden clasificar en estticas y dinmicas. Estticas:
Pginas con elementos que no varan Siempre muestra la misma informacin a cualquier usuario que navegue por ella Su cdigo fuente es el mismo y no puede ser cambiado por la intervencin del usuario ni tampoco a travs de ningn programa Utilizan: HTML o XHTML, CSS, JavaScript Son lenguajes ejecutados por el navegador
Introduccin al Desarrollo de Aplicaciones 41

Pginas Web Dinmicas


Caractersticas
Pginas cuyo contenido puede cambiar en funcin de la interactividad con el usuario Las pginas web dinmicas ofrecen funcionalidad de acceso a Base de Datos Esto se consigue mediante lenguajes de servidor: PHP, ASP, JSP, Perl
Se ejecutan en el servidor, y como resultado dan una pgina HTML con CSS y JavaScript.

Introduccin al Desarrollo de Aplicaciones

42

Tipos de Servidores
Los servidores se clasifican de acuerdo a si soportan Pginas web estticas, dinmicas o ambas Por ejemplo:
Servidor web que soporta pginas web HTML.
Apache es un servidor web, con algunas libreras soporta trabajar con el lenguaje de programacin PHP.

Servidor de Aplicaciones,
Genera pginas HTML y tambin da soporte a Java y la especificacin JEE ( Especficamente EJB )
Introduccin al Desarrollo de Aplicaciones 43

Arquitectura Web Pginas Estticas


Internet Browser
Web Server (HTTP Server)

HTTP(S)
Ubicacin de Pginas Estticas

Apache es un ejemplo de servidor web. En el se pueden alojar pginas estticas.


Introduccin al Desarrollo de Aplicaciones 44

Arquitectura Web Pginas Dinmicas


Internet Browser

Web Server (HTTP Server)

Base de Datos

HTTP(S)
Ubicacin de pginas estticas y script PHP Ubicacin de informacin relacionada a los sistemas

El Apache se puede utilizar para generacin de pginas dinmicas con PHP utilizando determinados plugins. Utilizando PHP accedemos a base de datos
Introduccin al Desarrollo de Aplicaciones 45

Arquitectura Web Pginas Dinmicas


App Server 1

Internet Browser

Web Server (HTTP Server)

HTTP(S)
Pginas estticas

App Server 2

Como servidores de Aplicacin tenemos al IIS (Para ASP) o el Tomcat(Para Java) y JBoss (Para Java) Como base de datos se pueden utilizar : Oracles, MySQL, SQLServer entre otras.
Introduccin al Desarrollo de Aplicaciones 46

Aplicaciones
Se tienen paquetes que nos brindan todos los elementos para el desarrollo de Aplicaciones:
WAMP LAMP XAMP

Estos paquetes proporcionan soportes para trabajar con PHP como lenguaje de programacin y MySQL como base de datos.
Introduccin al Desarrollo de Aplicaciones 47

WAMP LAMPP XAMPP

Introduccin al Desarrollo de Aplicaciones

48

Ingresen a www.apachefriends.org Luego, a XAMPP para Windows y leemos todo el tema de instalacin

Introduccin al Desarrollo de Aplicaciones

49

Introduccin al Desarrollo de Aplicaciones

50

Introduccin al Desarrollo de Aplicaciones

51

Introduccin al Desarrollo de Aplicaciones

52

Introduccin al Desarrollo de Aplicaciones

53

Introduccin al Desarrollo de Aplicaciones

54

Introduccin al Desarrollo de Aplicaciones

55

Introduccin al Desarrollo de Aplicaciones

56

Introduccin al Desarrollo de Aplicaciones

57

Introduccin al Desarrollo de Aplicaciones

58

Introduccin al Desarrollo de Aplicaciones

59

Unidad 3: Creacin de Contenidos


3.1 Contenidos en General 3.2 Pginas Web: Alojamiento y Desarrollo 3.3 Blogs 3.4 Wikis

Introduccin al Desarrollo de Aplicaciones

61

Qu es un CMS?
Facilita la gestin del contenido en todos sus aspectos: creacin, mantenimiento, publicacin y presentacin Un CMS(Content Management System) o Gestor de Contenidos es un programa utilizado que crea un marco de trabajo para el contenido de un website.

Introduccin al Desarrollo de Aplicaciones

62

Arquitectura del CMS

Introduccin al Desarrollo de Aplicaciones

63

Caractersticas de CMS
Utiliza base de datos para guardar el contenido Permite a un gran nmero de personas a contribuir y guardar informacin Tiene un control de acceso a los usuarios basados en perfiles y roles
Los perfiles definen que puede ver y editar cada usuario

Permite una fcil recuperacin y almacenamiento de informacin Reduce el ingreso de informacin repetida o duplicada Facilita la creacin de escritos o reportes Mejora la comunicacin entre usuarios Etc
Introduccin al Desarrollo de Aplicaciones 64

Funcionalidad de los CMS


Creacin de contenido Gestin de contenido Publicacin y presentacin Manejo de eventos Manejo de imgenes y formularios Trabajo con workflows Estadsticas reas seguras
Introduccin al Desarrollo de Aplicaciones 65

Ejemplos de CMS

Introduccin al Desarrollo de Aplicaciones

66

Porqu se necesita un CMS


Si se requiere cambiar el contenido del website muy seguido y no se desea incurrir en gastos extras de soporte o mantenimiento Presenta disponibilidad 24/7 para realizar los cambios Inclusin de nuevas funcionalidades, puede ser tan fcil como incluir un modulo Reutilizacin de componentes, como documentos, pginas Cambio de aspecto de la web, basado en una separacin entre contenido y presentacin
Introduccin al Desarrollo de Aplicaciones 67

Cmo elegir un CMS?


Supuestos
El tamao de la organizacin El CMS manejara la intranet y la extranet Se utilizar en toda la empresa

Contenido
Pginas simples Pginas complejas, con una presentacin especifica Informacin dinmica de base de datos Material de entrenamiento Manuales online Documentos de la empresa Cientos de pginas en total
Introduccin al Desarrollo de Aplicaciones 68

Estructurando los requerimientos


Creacin de contenidos Administracin de contenido Publicacin Presentacin Soporte

Introduccin al Desarrollo de Aplicaciones

69

Creacin de contenido
Entorno de edicin integrado
Los creadores de contenido pueden utilizar todas las facilidades

Separacin del contenido y la presentacin Multi usuario Rehus de contenido Creacin de meta data para las pginas Manejo de enlaces Creacin de contenido sin conocimientos tcnicos
Introduccin al Desarrollo de Aplicaciones 70

Administracin de contenido
Control de versiones Flujo de trabajo
Perfiles de revisin y aprobacin por ejemplo

Seguridad Integracin con sistemas externos Reportes


De administracin y para el usuario final

Introduccin al Desarrollo de Aplicaciones

71

Publicacin
Uso de hojas de estilo
La presentacin final es administrada con hojas de estilo

Plantillas para las pginas Extensibilidad


Se debe poder integrar cdigo de presentacin fcilmente

Soporte para mltiples formatos


Debe poder publicar formatos como: HTML, PDF, XML y ms

Personalizacin
Introduccin al Desarrollo de Aplicaciones 72

Presentacin
Usabilidad
Cubre aspectos como fcil de aprender y utilizar

Accesibilidad
El CMS debe ajustarse a las normas tales como W3C

Soporte Cross Browser


Las pginas se deben poder visualizar en la mayora de los browser

Velocidad de presentacin Generacin de HTML valido Metadata


Introduccin al Desarrollo de Aplicaciones 73

Soporte
Entrenamiento Documentacin Garanta Acuerdos de mantenimiento Recursos requeridos Conocimientos requeridos Costo Escalabilidad Sites de referencia
Introduccin al Desarrollo de Aplicaciones 74

Pginas Web
Una pgina web es el nombre de un documento electrnico adaptado para la World Wide Web (Internet). La informacin generalmente se encuentra en formato HTML o XHTML Generalmente contienen:
Hojas de estilo Java Scripts Imgenes digitales
Introduccin al Desarrollo de Aplicaciones 75

Ejemplo de Pgina
<html> <head> <title>Pagina de Bienvenida</title> </head> <body> <h1>Bienvenidos</h1> </body> </html>

Introduccin al Desarrollo de Aplicaciones

76

Cmo tener mi pgina en Lnea?

Seleccionar el dominio

Seleccionar el Hosting

Seleccionar el CMS a utilizar

La compra de dominio y hosting es la parte inicial, luego se debe construir la pgina web. Una forma sencilla y rpida es utilizando un gestor de contenidos
Introduccin al Desarrollo de Aplicaciones 77

1.- Compra de dominio

Introduccin al Desarrollo de Aplicaciones

78

2. Hosting

En lo que respecta a Hosting se tienen diferentes planes. Depende del espacio en disco, sistemas operativo, que lenguajes de programacin soporta, entre otras

Introduccin al Desarrollo de Aplicaciones

79

Website gratuitos

Introduccin al Desarrollo de Aplicaciones

80

Website gratuitos
Por lo general los websites gratuitos tienen capacidades limitadas No soportan trabajar con lenguajes de programacin La URL de la pgina es un sub dominio del website
Ejemplo: http://seo-peru.blogspot.com

Introduccin al Desarrollo de Aplicaciones

81

Qu es un Blog?

Introduccin al Desarrollo de Aplicaciones

82

Caractersticas de un Blog

Introduccin al Desarrollo de Aplicaciones

83

Software de Blog

Introduccin al Desarrollo de Aplicaciones

84

Qu es un Wiki?

Introduccin al Desarrollo de Aplicaciones

85

Caractersticas de una Wiki

Introduccin al Desarrollo de Aplicaciones

86

Software de Wikis

Introduccin al Desarrollo de Aplicaciones

87

Instalacin de WordPress en XAMPP

Introduccin al Desarrollo de Aplicaciones

88

Unidad 4: Aplicaciones Mviles


4.1 Sistemas Operativos Mviles 4.2 Movilidad 4.3 Aplicaciones sobre Mviles

Introduccin al Desarrollo de Aplicaciones

Unidad 5: Administradores de Base de Datos


5.1 Base de Datos: Generalidades y componentes 5.2 Administradores de Base de Datos 5.3 Configuracin de Base de Datos

Introduccin al Desarrollo de Aplicaciones

Unidad 6: Proyecto Integrador


6.1 Presentacin de ante proyectos 6.2 Presentacin de Diseo de Aplicaciones 6.3 Presentacin de Prototipo de Aplicaciones 6.4 Presentacin de Aplicaciones

Introduccin al Desarrollo de Aplicaciones

Potrebbero piacerti anche