Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Evolución del Desarrollo de Software

No description
by

José Luis Barros

on 14 May 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Evolución del Desarrollo de Software

Desarrollo de Software
Crisis del Software
UML
Lenguaje de Modelamiento Unificado - OMG - 1977
DOO
Conceptos
Corba
Object Management Group (OMG) - 1991
Cualquier Lenguaje
Cualquier Sistema Operativo
Círculo vicioso del Desarrollador de Software
Nunca tenemos tiempo
Nunca investigamos
Episodio I
Software de Calidad
1965 - 1985
C, C++, Python, Perl, COBOL, Smalltalk, Ada, FORTRAN
En cualquier sitio
Principios
Herencia
Polimorfismo
Encapsulamiento
Asbtración
Modularidad
Delegación
Responsabilidad única
Liskov
Programar a Interfaces
DRY
Composición sobre herencia
Patrones
Singleton
Factory
Decorator
Strategy
Template
Command
Bridge
Facade
Diseño Orientado a Objetos
Internet (1991)
Funcionamiento Básico de Internet
Tim Barnes-Lee (CERN)
HTTP, HTML, WorldWideWeb, URL
Servidor
Cliente (Browser)
TCP/IP
FTP
HTTP
TCP
IP
ARP
SMTP
POP
TELNET
CGI (Common Gateway Interface)
C, C++, Perl, VB, VFP, DBase
Script Perl-CGI
http://www.miweb.com/cgi-bin/hello.cgi
http://www.miweb.com/html_cgi.html
Desventajas
Código CGI mezclado con HTML
Ejecución en memoria propia
Dependiente de la plataforma
Sólo se puede ejecutar en el servidor
Requieren de Instalación
Problemas de seguridad
Fácil enviar parámetros maliciosos
Fácil revelar información del servidor
¿Vale la pena?
Mientras tanto en ciudad Góthica...
Sun Microsystems - James Goslin (1992)
Java
Hogar del futuro
Green Project
Control Universal. Primer "IPAD".
Oak
Java (1994)
Lenguaje bien estructurado
Fuertemente tipado
Buen manejo de memoria
Independiente de la plataforma
Casi totalmente OO
Servlets, Applets
Primer Browser Gráfico:
Mosaic - National Center for Supercomputing Applications (NCSA) - 1994)
ViolaWWW (http://viola.org/) - 1992
Imágenes, Hojas de Estilo, Applets, Tablas, Frames, Lenguaje
Primer Browser Gráfico Gratuito:
Sun Libera Java
Crea el Browser HotJava (applets)
Crea el JCP (Java Comunity Process)
Netscape lo incluye en su versión 2.0
Java:
Un lenguaje para cualquier sistema operativo.
(Write Once, Run Anywhere)
JAVA
JSR
J2EE 1.X
Java 1.X
Java X
J2SE
(Edición Empresarial)
Java EE
JEE
(Edición Estándar)
Java SE
JSE
Otros términos de Java
JVM - Java Virtual Machine (Máquina Virtual de Java)
JRE - Java Runtime Environment (Ambiente de Ejecución de Java)
JDK - Java Development Kit (Kit de Desarrollo de Java)
J2ME
(Mobile Edition)
Java ME
JME
Problemas de Java
- Era muy lento
- La interfaz gráfica era fea
- Curva de aprendizaje muy alta
- Evolución lenta
Siempre hay otra forma de pelar un gato...
PHP
Rasmus Lerdorf (1994)
NCSA (National Center for Supercomputing Applications) - 1993
Servidor HTTP Apache
(NCSA - 1994)
Código abierto
Multiplataforma
Extensible
Bastante seguro
Más usado
Fácil integración con PHP
Personal Home Page Tools
PHP/FI
Hypertext Pre-processor
Características de PHP
Hecho para la web
No requiere instalación
Código Incrustado
Multiplataforma
Maneja múltiples BD
Extensible
Amplia documentación
Fácil de aprender
Libre
Permite OO
Débilmente tipado
Compilado
Buen manejo de formularios
No es sólo web
Aplicaciones PHP famosas
Facebook
Wikipedia
WordPress
phpMyAdmin
Frameworks PHP
Drupal
Joomla
Yii
CodeIgniter
CakePHP
Zend
Symphony
Microsoft
Bill Gates y Paul Allen - 1975
Evolución temprana
Netscape
Marc Andreessen - 1994
Primero en usar JavaScript
Primero en soportar applets Java
Primero en usar CSS
Primero en incluir e-mail (Suite Navigator)
Primero en soportar frames
Primero en soportar capas
En 1995 Netscape Inc. fue la primera gran empresa de Internet
Netscape Vs. Microsoft IE
1998. Gratuito. Mozilla.
1975. Harvard. BASIC. Altair 8800
1981. MS-DOS
1985. Windows 1.0
1991. Visual Basic 1.0
1992. Compra VFP 3.0
1994. JScript, VBScript, ActiveX, IE4.0
1995. Windows 95
2002. Visual Studio .Net
Consorcio World Wide Web (W3C) - 1994
Arquitectura Web
CSS
HTML 4.0
XML 1.0
Gary Kildall. Creador de CP/M
Tim Paterson. Creador de QDOS
Visual Studio .Net:
Muchos lenguajes, un único Sistema Operativo: Windows
Características de .NET
Windows Forms (WF) - 2002
Windows Programming Forms (WPF)
Aaplicación Web
¿Qué framework usar?
Modelo de tres capas
Capas de una aplicación web
Capa de acceso a datos y ORM
Hibernate
iBatis
JPA
JDBC
OpenJPA
TopLink
EclipseLink
Cocobase
Kodo
OpenXava
Lista de Frameworks
Capa de servicios
Spring WebServices
Axis 2
Metro
Apache CXF
OSGi
Java Web Services Development Pack / GlassFish
Web Services Interoperability Technology
Lista de Frameworks
Capa de Lógica Web
Lista de Frameworks
Spring Web Flows
Tapestry
Vaadin
Wicket
JSF
Struts
WebWork
Spring MVC
Seam
Interfaz de Usuario
Lista de Frameworks
JSF
GSP
IceFaces
ZK
PrimeFaces
RichFaces
JavaFx
Spring Flex
Google Web Toolkit (GWT)
CaptainCasa
Ruby On Rails
Yukihiro Matsumoto
Creador de Ruby (1995)
David Heinemeier Hansson
Creador de Rails (2004)
Todo en Uno: Frameworks, Ajax, Servidor Web, etc.
Diseñado para la productividad y la diversión
Principio de la menor sorpresa
Principio DRY (Don't Repeat Yourself)
Principio de Convención sobre configuración
Inspirado por Smalltalk, Perl y Phyton entre otros
Se diseña partiendo del modelo de la BD
Grails
Lenguaje de programación Groovy - JCP (2004)
Creado por G2One (2005). SpringSource. VMWare
Framework web de alta productividad para Java
Integra los mejores frameworks de la comunidad Java
Aplica los principios de Ruby On Rails
Gran número de Plugins
Puede integrarse a programas Java
Entorno de desarrollo orientado a pruebas
Todo en uno
Más rápido que Ruby en ejecución
Graeme Rocher. Creador de Grails
James Strachan
Bob McWhirter
DJango
Guido van Rossum
Creador de Phyton (1991)
Adrian Holovaty
Creador de DJango (2005)
Incluye un ORM
Inspirado en el patrón MVC
Orientado más que todo a manejar contenidos
Fuerte API para manejo de BD
Play!
Martin Odersky
Creador de Scala (2003)
Guillaume Bort
Creador de Play (2007)
Conceptos Adicionales
XML
XSD
XML-RPC
XHTML
JavaScript
DHTML
JSON (JavaScript Object Notation)
Ajax (Asynchronous JavaScript and XML)
RIA (Rich Internet Applications)
Adobe Flex
Adobe Flash
Silverlight
JavaFX
CaptainCasa
Lenguajes Nuevos
Ceylon. Java. Red Hat. 2011
Xtend. Java. 2011
Clojure. Lisp. 2007
Dart. JavaScript. Google. 2011
Go. C. Google. 2009
Road Map
Un sueño que sueñas solo, sólo es un sueño. Un sueño que sueñas con alguien es una realidad!
- John Lenon
... Y sobrevino el primer Boomm! de Internet...
Pero Bill no estaba nada contento con esto...
Pero tomemos decisiones...
¿Estamos un poquito enredados...?
¿Y si usamos una espada samurai?

Diseño Orientado a Objetos (DOO)
Conceptos
Principios
UML
Patrones de diseño
Herramientas
Linux
IDE Eclipse
IDE Spring Source Tools Suite (STS)
IDE Groovy Grails Tools Suite (GGTS)
IDE IntelliJ IDEA
IDE Aptana
Ant
Maven
Sonatype Nexus
Gradle
Subversion (SVN)
Git
Mercurial
Hudson
JIRA
Metodologías
Agile XP
Scrum
Kanban
Paradigmas de Desarrollo
Diseño Orientado Pruebas (DDT)
Pruebas Orientadas al Diseño (TDD)
Diseño Orientado al Dominio (DDD)
Diseño Orientado a Casos de Uso (DDCU)
Plain Old Java Object (POJO)
Programación Orientada a Aspectos (POA)
SOAP (Simple Object Access Protocol)
SOA (Arquitectura Orientada a Servicios)
RESTful
Resource-Oriented Architecture (ROA)
OSGi ( Open Services Gateway Initiative)
Frameworks
Grails
Hibernate
GORM
Spring
Spring MVC
Spring Web Flow
Spring Web Service
Spring AMQP
Spring Boot
Spring Integration
Spring Social
Spring Security
Spring Mobile
Spring for Android
Spring Flex
JUnit
JLog
Quartz
Ruby On Rails
Play
Lift
ZK
JavaFx
CaptainCasa
Lenguajes de Programación
Java
Groovy
Ruby
Scala
Phyton
Javascript
HTML5
CSS
Ajax
RIA
Flash
Silverlight
APIs y LIbrerías
Open Layers (Mapas)
API Google Maps
Google Web Tools (GWT)
Guava
Apache Commons
JQuery
JExcel
Full transcript