Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Click here to load reader
-
Upload
sam-espinosa -
Category
Software
-
view
1.031 -
download
5
Transcript of Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
PROCESO DE DESARROLLO DE SOFTWARE
CONTENIDO
Sistemas Manejadores de Contenido Web (CMS)
Aplicaciones Web
Ingeniería del Software
Metodologías de desarrollo de software
El software
Conferencia: Proceso de Desarrollo de Software
Marcos de Desarrollo de Aplicaciones Web
SITUACIÓN ACTUAL Importancia del Software (SW)
En los inicios de la era de la computación esta actividad era de un perfil muy exclusivo. Después de 1980, cuando el “boom” de las computadoras personales comenzó a emerger, muchas cosas comenzaron a cambiar.
Ya no existen privilegios y exclusividades. ¿Dónde no se introduce la computación? El auge de las empresas relacionadas con la vida
computacional.
Conferencia: Proceso de Desarrollo de Software
EL SOFTWARE ¿Qué es el software?
Instrucciones que cuando se ejecutan proporcionan la función y el comportamiento deseado.
Estructuras de datos que facilitan manipular adecuadamente la información.
Características El software se desarrolla, no se fabrica El software no se “estropea”:
Conferencia: Proceso de Desarrollo de Software
ATRIBUTOS DE CALIDAD DEL SOFTWARE
Conferencia: Proceso de Desarrollo de Software
Fiable
Capacidad de ofrecer los mismos resultados bajo las mismas condiciones
APLICACIONES DEL SOFTWARE
• Software sistémico
• Software en línea
• Software en tiempo real
• Software científico
• Software empotrado (mandos)
• Software de gestión de información
• Software de inteligencia artificial
• Software de oficina
• Software de entretenimiento
• Software de comunicación
Conferencia: Proceso de Desarrollo de Software
INGENIERÍA DEL SOFTWARE
Establecimiento y uso de principios robustos de la ingeniería a fin de obtener de manera económica, SW que sea fiable y que funcione eficientemente.
La aplicación de un enfoque sistémico, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento del SW.
En el desarrollo de SW es importante contar con las herramientas, los métodos y los procesos correctos.
Conferencia: Proceso de Desarrollo de Software
PROCESO DE INGENIERÍA DE SOFTWARE
Un proceso define “quién” está haciendo “qué”, “cuándo” y “cómo” para alcanzar un determinado objetivo.
Conferencia: Proceso de Desarrollo de Software
Requerimientos SistemaProceso de
Ingeniería de Software
METODOLOGÍAS DE DESARROLLO DE SOFTWARE
La creación de un sistema automatizado es generalmente un proceso largo y complejo y está determinado por la realización de muchas tareas entre las cuales existe una relación lógica.
Marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información
Guían el proceso de desarrollo de software Planifican, dirigen, controlan y evalúan Organización en Etapas o Fases y subfases
Conferencia: Proceso de Desarrollo de Software
METODOLOGÍAS DE DESARROLLO DE SOFTWARE
TIPOS DE METODOLOGÍAS
Notaciones utilizadas para especificar artefactos producidos en actividades de análisis y diseño
Filosofía de desarrollo
Conferencia: Proceso de Desarrollo de Software
Metodologías EstructuradasMetodologías Orientadas a Objetos
Metodologías Pesadas (Tradicionales)Metodologías Ágiles
METODOLOGÍAS TRADICIONALES
Se centran en la planifcación, y definición detallada de los procesos y tareas a realizar, herramientas a utilizar, y requieren una extensa documentación.
Son mas eficaces y necesarias cuanto mayor es el proyecto que se pretende realizar respecto a tiempo y recursos.
Desventaja: Altos costos de implementar cualquier cambio y no ofrecer una buena solución para proyectos donde el entorno es volátil.
Conferencia: Proceso de Desarrollo de Software
RUP es un proceso para el desarrollo de software que utiliza el Lenguaje Unificado
de Modelación (UML) para describir un sistema
Elementos:• Trabajadores (“quién”), Actividades
(“cómo”), Artefactos (”qué”), Flujo de actividades (“Cuándo”)
RATIONAL UNIFIED PROCESS
Conferencia: Proceso de Desarrollo de Software
FASES-FLUJOS DE TRABAJO DE RUP
Conferencia: Proceso de Desarrollo de Software
FLUJOS DE TRABAJO
Conferencia: Proceso de Desarrollo de Software
Modelo del Negocio
• Comprensión del proceso, lógica del negocio
Requerimientos
• Define qué es lo que el sistema debe hacer, para lo cual se identifican las funcionalidades requeridas y las restricciones que se imponen
Análisis y diseño
• Describe cómo el sistema será realizado a partir de la funcionalidad prevista y las restricciones impuestas (requerimientos), por lo que indica con precisión lo que se debe programar.
Implementación
• Define cómo se organizan las clases y objetos en componentes, cuáles nodos se utilizarán y la ubicación en ellos de los componentes y la estructura de capas de la aplicación.
Prueba (Testeo)
• Busca los defectos a los largo del ciclo de vida
FLUJOS DE TRABAJO
Conferencia: Proceso de Desarrollo de Software
Instalación
• Produce release del producto y realiza actividades para entregar el software a los usuarios finales
Administración del proyecto
• Actividades para producir un producto que satisfaga las necesidades de los clientes
Administración de configuración y cambios
• Describe cómo controlar los elementos producidos en cuanto a: utilización/actualización, control de versiones, etc.
Ambiente
• Describen los procesos y herramientas que soportarán el equipo de trabajo; así como el procedimiento para implementar el proceso en una organización.
FASES
Conferencia: Proceso de Desarrollo de Software
INICIO• (Concepción o
Inicio): Se describe el negocio y se delimita el proyecto describiendo sus alcances con la identificación de los casos de uso del sistema
ELABORACIÓN• Se especifican
en detalle la mayoría de los casos de uso del producto y se diseña la arquitectura
CONSTRUCCIÓN• Se obtiene un
producto listo para su utilización
TRANSICIÓN• Prueba el
producto para corregir errores
CARACTERÍSTICAS DEL CICLO DE VIDA DE RUP
Conferencia: Proceso de Desarrollo de Software
Dirigido por casos de uso
Centrado en la Arquitectura
Iterativo e Incremental
DIRIGIDO POR CASOS DE USO
(Reflejar lo que los futuros usuarios necesitan y desean)
Representa los requerimientos
Requisitos Análisis Diseño Implementación PruebaCaso de Uso
Guían el proceso de desarrollo porque los modelos que se crean llevan a
cabo los casos de uso.
Conferencia: Proceso de Desarrollo de Software
Centrado en la arquitectura
Se representa por vistas
Vista de pruebas
Vista de Implementación
Vista de diseño
Vista de despliegue
Vista de Casos de uso
CENTRADO EN LA ARQUITECTURA
Conferencia: Proceso de Desarrollo de Software
Las actividades se encadenan en una mini-cascada con un alcance limitado por los objetivos de la iteración
Análisis
Diseño
Codific.Pruebas e
Integraciónn veces
PROCESO ITERATIVO E INCREMENTAL
Conferencia: Proceso de Desarrollo de Software
METODOLOGÍAS ÁGILES En una reunión celebrada en febrero de 2001 en Utah-
EEUU, nace el término "ágil" aplicado al desarrollo de software Se creó The Agile Alliance El punto de partida fue el Manifiesto Ágil, un documento que
resume la filosofía "ágil". (principios y valores)
Principales ideas de la metodología ágil: Se encarga de valorar al individuo y las iteraciones del equipo
más que a las herramientas o los procesos utilizados. Se hace mucho más importante crear un producto software que
funcione que escribir mucha documentación. El cliente está en todo momento colaborando en el proyecto. Es más importante la capacidad de respuesta ante un cambio
realizado que el seguimiento estricto de un plan.
Conferencia: Proceso de Desarrollo de Software
Muchas metodologías similares a las ágiles fueron creadas antes del 2000. Entre los más notables se encuentran: Scrum (1986), Crystal Clear (cristal transparente), programación extrema (en inglés eXtreme Programming o XP, 1996), desarrollo de software adaptativo, feature driven development, Método de desarrollo de sistemas dinámicos (en inglés Dynamic Systems Development Method o DSDM, 1995). Agile Unified Process(AUP), Open Unified Process (OpenUP)
Conferencia: Proceso de Desarrollo de Software
METODOLOGÍAS ÁGILES
EXTREME PROGRAMMING (XP) El trabajo fundamental se publicó por Kent Beck en 1999, y
tomó el nombre de Programación Extrema por las prácticas reconocidas en el desarrollo de software
Centrada en potenciar las relaciones interpersonales.
Realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas.
Evidencia principios tales como el desarrollo incremental, la participación activa del cliente, el interés en las personas y no en los procesos como elemento principal, y aceptar el cambio y la simplicidad
Conferencia: Proceso de Desarrollo de Software
Objetivos La satisfacción de cliente: Dar al cliente lo que necesita
y cuando lo necesita, respondiendo rápidamente a las necesidades de este. Sistema software logre el objetivo para el cual fue diseñado y que el equipo de trabajo logre el objetivo para el cual fue contratado.
Potenciar al máximo el trabajo en grupo: Todos están involucrados y comprometidos con el desarrollo del software, tanto los jefes como los desarrolladores y los clientes, no hay agentes individuales o aislados al proyecto.
Conferencia: Proceso de Desarrollo de Software
EXTREME PROGRAMMING (XP)
Prácticas XP
Conferencia: Proceso de Desarrollo de Software
EXTREME PROGRAMMING (XP)
Ciclo de Vida
Conferencia: Proceso de Desarrollo de Software
EXTREME PROGRAMMING (XP)
•Los clientes plantean a grandes rasgos las historias de usuario que son de interés para la primera entrega del producto. el equipo de desarrollo se familiariza con las herramientas, tecnologías y prácticas que se utilizarán en el proyecto
Exploración
•El cliente establece la prioridad de cada historia de usuario, y los programadores realizan una estimación del esfuerzo necesario de cada una de ellas
Planificación de la Entrega
•Incluye varias iteraciones sobre el sistema antes de ser entregadoIteraciones
•Requiere de pruebas adicionales y revisiones de rendimiento antes de que el sistema sea trasladado al entorno del clienteProducción
•Tareas de soporte para el clienteMantenimiento
•El cliente no tiene más historias para ser incluidas en el sistemaMuerte del Proyecto
Conferencia: Proceso de Desarrollo de Software
EXTREME PROGRAMMING (XP)
Conferencia: Proceso de Desarrollo de Software
Programador
Cliente
Encargado de Pruebas(Tester) Encargado de
Seguimiento(Tracker)
Entrenador(Coach)
Consultor
Gestor(Big boss)
ROLES
EXTREME PROGRAMMING (XP)
Conferencia: Proceso de Desarrollo de Software
EXTREME PROGRAMMING (XP)
Artefactos
Historias de Usuario
Tareas de Ingeniería
Pruebas de Aceptación
COMPARACIÓN
METODOLOGÍAS AGILES METODOLOGÍAS TRADICIONALESEstán orientadas hacia las necesidades del cliente. Están orientados hacia el proceso del software.
Basadas en heurísticas o estadísticas provenientes de
prácticas de producción de código.
Basadas en normas provenientes de estándares seguidos
por el entorno de desarrollo.
Especialmente preparadas para cambios durante el
proyecto.
Cierta resistencia a los cambios.
Proceso menos controlado, con pocas políticas para el
desarrollo.
Procesos mucha más controlados, con numerosas
políticas o normas.
El cliente es parte del equipo de desarrollo El cliente interactúa con el equipo de desarrollo mediante
reuniones.
Grupos pequeños (<10 integrantes) y trabajando en el
mismo sitio.
Grupos grandes y posiblemente distribuidos.
Pocos artefactos Más artefactos
Pocos roles Más roles.
Menos énfasis en la arquitectura del software. La arquitectura del software es esencial y se expresa
mediante modelos.
Conferencia: Proceso de Desarrollo de Software
Conferencia: Proceso de Desarrollo de Software
Metodologías de Desarrollo Web
APLICACIONES WEB WSDM: Web Site Design Method. 1997, RNA: Relationship
Navigational Analysis. 1998, NDT: Navigational Development Tecniques
En la última década las aplicaciones Web han experimentado importantes cambios en cuanto a su arquitectura, las funcionalidades que ofrecen y las interfaces de usuario (IU) que presentan.
Esta nueva forma de entender las aplicaciones Web recibe el nombre de RIA (Rich Internet Application).
Los principales aspectos que aportan las RIAs son por ejemplo interfaces más atractivas (ricas) y una mejor capacidad de respuesta e interactividad con el usuario (similar a la de aplicaciones de escritorio).
Conferencia: Proceso de Desarrollo de Software
OOH4RIA Se centra en el aspecto de la IU proponiendo 2 nuevos modelos: el
modelo de presentación y el de orquestación El modelo de presentación organiza y da estructura a la IU, el
modelo de orquestación modela el comportamiento entre elementos.
OOH4RIA dispone de soporte en herramienta mediante OOH4RIA-Tool
Conferencia: Proceso de Desarrollo de Software
1. Modelo de Dominio (Modelo Conceptual) representa las entidades del dominio y las relaciones entre ellas (extensiones)
2. Modelo de Navegación define la semántica navegacional asociada a las clases de los objetos del modelo.
3. Modelo de Presentación, realiza una representación estructural de los componentes visuales que constituyen la interfaz de usuario (Screenshots y Widgets)
4. Modelo de orquestación permite especificar la interacción entre los widgets y el resto del sistema
Conferencia: Proceso de Desarrollo de Software
OOH4RIA
Conferencia: Proceso de Desarrollo de Software
Metodología de Desarrollo de Software
Metodologías Pesadas
MSF. Microsoft Solution
Framework
Rational Unified
Process (RUP)
Metodologías Ágiles
SCRUMProgramació
n Extrema (XP)
PROCESO DE DESARROLLO DE SOFTWARE Guiado
Conferencia: Proceso de Desarrollo de Software
Metodologías Web
Tradicionales
WSDM: Web Site Design
Method
RNA: Relationship Navigational
Analysis
NDT: Navigational Development
Tecniques
Metodologías para RIAs
OOH4RIA
WebML: Web Modeling
Language
UWE: UML-based Web Engineering
TIPO DE APLICACIONES
APLICACIONES WEB
No se instalan ni se ejecutan en el ordenador,
sino a través de un navegador
APLICACIONES ESCRITORIO
Programas que
se instalan
y/o ejecutan
en el ordenad
or
Conferencia: Proceso de Desarrollo de Software
APLICACIONES WEB Es una aplicación software que se codifica en un
lenguaje soportado por los navegadores web.
Las aplicaciones web son populares debido a lo práctico del navegador web como cliente, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales.
Conferencia: Proceso de Desarrollo de Software
WEB
•La "Web", apócope de "World Wide Web" (que se abrevia con las siglas www).
•Una página Web es un archivo de texto simple escrito en un lenguaje de marcado llamado HTML.
•Utiliza un navegador para su interpretación
•La Web usa el protocolo HTTP para establecer vínculos con documentos alojados en equipos distantes.
•Los documentos en Internet se identifican con una dirección única llamada URL.
Conferencia: Proceso de Desarrollo de Software
VENTAJASAhorra tiempo• Se pueden realizar tareas sencillas
sin necesidad de descargar ni instalar ningún programa
No hay problemas de compatibilidad• Basta tener un navegador
actualizado para poder utilizarlas
No ocupan espacio • No ocupan espacio
en disco duro
Actualizaciones inmediatas• Como el software lo gestiona el
propio desarrollador, cuando nos conectamos estamos usando siempre la última versión que haya lanzado
Consumo de recursos bajo• Muchas de las tareas que realiza el
software no consumen recursos nuestros porque se realizan desde otro ordenador
Multiplataforma• Se pueden usar desde cualquier
sistema operativo porque sólo es necesario tener un navegador
Portable• Es independiente
del ordenador
Conferencia: Proceso de Desarrollo de Software
PÁGINAS ESTÁTICAS VS. DINÁMICAS
Las páginas que tienen efectos
especiales y en las que podemos
interactuar.(incluye cualquier efecto especial o funcionalidad).
Las que se presentan
sin movimient
o y sin funcionalidades más allá de los enlaces. (textos planos
acompañados de
imágenes y a lo sumo videos o sonidos)
Conferencia: Proceso de Desarrollo de Software
Conferencia: Proceso de Desarrollo de Software
SISTEMA MANEJADOR DE CONTENIDOS
CMS: Content Management System: Programa que permite crear una estructura de soporte para la
creación y administración de contenidos, principalmente en páginas web.
Generalmente los CMS trabajan contra una base de datos donde se aloja el contenido del sitio web, de modo que el editor simplemente actualiza una base de datos.
Permite crear y mantener una web con facilidad, encargándose de los trabajos más tediosos que hasta ahora ocupaban el tiempo de los administradores de las web. (Ej. periódico)
Un CMS estará compuesto de dos partes, un back y un front: el back la parte donde los administradores publican las informaciones y el front la parte donde los visitantes visualizan las mismas
Conferencia: Proceso de Desarrollo de Software
SISTEMA MANEJADOR DE CONTENIDOS
CMS: Content Management System: Los primeros sistemas de administración de contenidos fueron
desarrollados internamente por organizaciones que publicaban mucho en internet, como revistas en línea, periódicos y publicaciones corporativas.
Existen CMS comerciales con un alto coste, sin embargo también hay potentes CMS de acceso libre, con licencias de código abierto.
Conferencia: Proceso de Desarrollo de Software
PRINCIPIO DE FUNCIONAMIENTO
Conferencia: Proceso de Desarrollo de Software
FUNCIONALIDADES DE UN CMS
Conferencia: Proceso de Desarrollo de Software
GESTIÓN DE CONTENIDOS EN UN CMS
Bases de Datos
Generadores de Contenido
Editores Colaboradores
Diseñadores
Se GuardanDatos Documentos
Conferencia: Proceso de Desarrollo de Software
PUBLICACIÓN Y PRESENTACIÓN
Separación entre contenido y forma permite que se pueda modificar el aspecto visual de un sitio web sin afectar a los documentos ya creados
Conferencia: Proceso de Desarrollo de Software
GESTIÓN DE USUARIOSDependiendo de la plataforma seleccionada se
pueden escoger diferentes niveles de acceso para los usuarios; desde el administrador del portal hasta el usuario sin permiso de edición, o creador de contenido.
Incluso podrán existir varios permisos intermedios que permitan la edición del contenido, la supervisión y reedición del contenido de otros usuarios.
Conferencia: Proceso de Desarrollo de Software
VENTAJAS DEL USO DE UN CMS
Consistencia de la Web
Cambios del aspecto de la Web
Mantenimiento de gran cantidad de páginas
Control de acceso
Reutilización de objetos o componentes
Inclusión de nuevas funcionalidades en la Web
Páginas interactivas
Conferencia: Proceso de Desarrollo de Software
CONSISTENCIA DE LA WEB
Conferencia: Proceso de Desarrollo de Software
CAMBIOS DEL ASPECTO DE LA WEB
Intranet UNICA
CSS (Cascading Style Sheets u hojas de estilo en cascada): se consigue la independencia de presentación y contenido
Conferencia: Proceso de Desarrollo de Software
MANTENIMIENTO DE GRAN CANTIDAD DE PÁGINAS
Distribuir los trabajos de creación, edición y mantenimiento con permisos de acceso a las diferentes áreas
Conferencia: Proceso de Desarrollo de Software
CONTROL DEL ACCESO
Gestionar los diferentes
permisos a cada área del web aplicados a
grupos o individuos
Conferencia: Proceso de Desarrollo de Software
REUTILIZACIÓN DE OBJETOS Y COMPONENTES
Conferencia: Proceso de Desarrollo de Software
INCLUSIÓN DE NUEVAS FUNCIONALIDADES EN LA WEB Y PÁGINAS INTERACTIVAS
Funcionalidad 1
Funcionalidad 2
Funcionalidad n
Conferencia: Proceso de Desarrollo de Software
CMS EXISTENTES
Conferencia: Proceso de Desarrollo de Software
TIPOS DE CMS Genéricos: Joomla, Drupal, TYPO3. Foros: phpBB, SMF, MyBB. Blogs: WordPress, Movable Type, Drupal. Wikis: MediaWiki, TikiWiki, DokuWiki. eCommerce: osCommerce Galerías: Gallery, Dragonfly CMS
e-Learning: Moodle, Blackboard, eCollege.Existen también plataformas especialmente diseñadas teniendo en cuenta las necesidades de diferentes publicaciones digitales, como periódicos, revistas, etc. Ejemplo: ePrints, Thinkindot CMS
MediaWiki
Tipo
s de
CM
S
Conferencia: Proceso de Desarrollo de Software
pensadas para el desarrollo colaborativo.
Web colaborativa donde diversos usuarios van creando y modificando páginas. El término viene del hawaiano y significa rápido. La aplicación mas famosa de un wiki es la wikipedia, enciclopedia colaborativa.
Entre las principales características de una Wiki: Control de cambios: Permite ver y comparar todos los
cambios de cada pagina, en un Wiki nunca se borra nada. Control de spam y vandalismo: Cuando se trabaja con
Wikis cerradas el problema desaparece. Edición simultánea y resolución de conflictos
WIKIS
Conferencia: Proceso de Desarrollo de Software
FOROSpensados para compartir opiniones. Dedicados a albergar discusiones sobre temas, son
ampliamente utilizados para formar todo tipo comunidades en Internet.
Comparados con los Wikis, las aportaciones de cada usuario no se pueden modificar, en cambio, si se pueden contestar creando un hilo de discusión, donde varios usuarios aportan respuestas.
Estos gestores soportan la creación de áreas temáticas diferenciadas, denominadas subforos.
PHP Bulletin Board
Conferencia: Proceso de Desarrollo de Software
BLOGS
pensados para páginas personales.
En estos sistemas una sola persona hace el papel de creador y editor de los contenidos.
Publicación de noticias o artículos en orden cronológico con espacio para comentarios y discusión.
Conferencia: Proceso de Desarrollo de Software
COMERCIO ELECTRÓNICOpensadas para gestión en tiendas virtuales. El comercio electrónico es muy común hoy en día.
Existen multitud de aplicaciones para comercio electrónico tanto libres como privativas y, todas las entidades financieras disponen de pasarelas para este tipo de comercio.
A pesar de las ventajas que ofrece los principales inconvenientes suelen provenir por parte de los clientes. La desconfianza por parte del cliente hacia la tienda virtual suele ser elevada, sobre todo si no existe una tienda física detrás.
Conferencia: Proceso de Desarrollo de Software
E-LEARNINGplataforma para enseñanza de conocimientos.
Sirve para la enseñanza de conocimientos. Los usuarios son los profesores y estudiantes, tienen aulas virtuales donde se pone a disposición el material del curso.
La publicación de un contenido por un profesor es la puesta a disposición del contenido, en una aula virtual, a los estudiantes.
Conferencia: Proceso de Desarrollo de Software
CMS MÁS POPULARES
Conferencia: Proceso de Desarrollo de Software
COMPARACIÓN
Conferencia: Proceso de Desarrollo de Software
SITIOS QUE UTILIZAN UN CMS
Conferencia: Proceso de Desarrollo de Software
CONSTRUIR APLICACIONES WEB
HTMLCSS
PHPASP
Servidor Web
Herramientas de
Desarrollo
Herramientas CASE
SGBD
JavaScriptVBScript
APLICACIONES WEB
Conferencia: Proceso de Desarrollo de Software
Marcos de Desarrollo de Aplicaciones Web
(Frameworks)
Conferencia: Proceso de Desarrollo de Software
Ha motivadoel surgimiento de
INTRODUCCIÓN
Evolución en el desarrollo de aplicaciones web para múltiples usos.
Necesidad mejorar la rapidez, productividad y profesionalidad de estas aplicaciones.
Conjunto de soportes que incluyen a su vez un sin número de bibliotecas de gran utilidad para desarrollar y unir los diferentes componentes de un proyecto:
LOS FRAMEWORKSConferencia: Proceso de Desarrollo de Software
FRAMEWORK Un framework, “Marco de Trabajo” o WAF (Web Application
Framework) es una estructura de soporte definido, mediante la cual otro proyecto de software puede ser organizado y desarrollado.
Puede incluir soporte de programas, bibliotecas y un lenguaje interpretado para ayudar a desarrollar y unir los diferentes componentes de un proyecto.
Un framework se puede considerar como una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.
Conferencia: Proceso de Desarrollo de Software
Los detractores de los FWs plantean que:
1- El costo del aprendizaje puede ser elevado.
2- El tiempo que supuestamente se ganaría, referido a la velocidad de desarrollo de la aplicación, se invierte en el estudio y adiestramiento.
3- Preferencia a reutilizar algún código desarrollado con anterioridad o proceder a implementarlo desde cero.
DETRACTORES DE LOS FRAMEWORKS
Conferencia: Proceso de Desarrollo de Software
VENTAJAS DEL USO DE FRAMEWORKSNo hay que definir “marco de desarrollo”, solo rellenar” los huecos que los frameworks nos indican.
Trabajamos sobre un Estándar que miles de personas ya conocen
Facilidad para encontrar herramientas, librerías o documentación
Son diseñados con la intención de facilitar el desarrollo de software.
Permiten pasar más tiempo identificando requerimientos que tratando con los detalles de bajo nivel.
Ofrecen la posibilidad de usar formularios, acceso a bases de datos, etc. sin necesidad de tener que programarlos desde cero.Permite a los
desarrolladores tener un código más ordenado, limpio y fácil de actualizar.
Permiten obtener un código más seguro, robusto y mucho más eficiente
Conferencia: Proceso de Desarrollo de Software
Dispone de componentes plenamente probados que simplificarán las tareas de programación y reducirán enormemente el trabajo repetitivo, con el objetivo de mejorar la productividad, construir todo tipo de aplicaciones, agregar nuevas funcionalidades y extender las ya existentes.
Disponen de elementos para el trabajo con la seguridad. Los datos introducidos por el usuario deben de estar validados y filtrados.
Separación de capas lógicas con un controlador frontal utilizando un patrón de arquitectura fundamental: el Modelo-Vista-Controlador.
La Comunicación con Bases de Datos está perfectamente automatizada, y validadas todas las consultas y el filtrado de datos para evitar inyección SQL
¿POR QUÉ UTILIZAR UN FRAMEWORK?
MVC
Conferencia: Proceso de Desarrollo de Software
FRAMEWORKS VS CMS CMS: una aplicación que tiene funcionalidades
específicas de administración de contenido, muchos de ellos necesitan una base de datos donde se almacena la información. Tienen incorporado un framework para permitir que el sitio Web sea modular y escalable, o sea, crecen a medida que se desarrollen siguiendo las convenciones del framework que posee.
Framework: es una estructura de soporte de software definida orientada a objetos, para el desarrollo de una aplicación grande o pequeña e incluso del propio CMS.
Conferencia: Proceso de Desarrollo de Software
FRAMEWORK PHP MÁS POPULARES
Zend Framework CodeIgniter CakePHP YiiZoop FrameworkSymfony Seagull Prado PHP on Traxentre otros.
Conferencia: Proceso de Desarrollo de Software
COMPARACIÓN
Conferencia: Proceso de Desarrollo de Software
FRAMEWORKS JAVASCRIPT (Librerías)
Permiten el desarrollo rápido de aplicaciones Web interactivas RIA (Rich Internet Applications) que utilizan JavaScript y AJAX. Además presentan una serie de componentes estandarizados para diferentes funcionalidades. Existen muchos FW JS de libre distribución.
Conferencia: Proceso de Desarrollo de Software
FRAMEWORKS JAVASCRIPTEn su mayorí a, los frameworks javascript proveen componentes para:
• Agregan la posibilidad de escribir código javascript totalmente compatible con todos lo navegadores Compatibilidad
• Manejar y manipular los datos en los elementos de un sitio aumentando la interactividad del usuario
Comunicación asíncrona
• Permiten de una manera relativamente fácil validar campos dentro de uno o varios formularios
Validación de Formularios
• Se pueden crear efectos visuales y animacionesEfectos visuales
• Permite reaccionar de una manera u otra dependiendo de las acciones del usuario
Manejo de Eventos
• Drag and Drop. Funcionalidad que brinda la posibilidad de arrastrar elementos dentro de una misma página que interactúe con el resto de los elementos
Arrastra y SueltaConferencia: Proceso de Desarrollo de Software
FRAMEWORKS CSS Un framework de CSS es una librería de estilos genéricos que
puede ser usada para implementar diseños web. Conjunto de herramientas, hojas de estilos y buenas prácticas
que permiten al diseñador web olvidarse de las tareas repetitivas para centrarse en los elementos únicos de cada diseño en los que puede aportar valor
Conferencia: Proceso de Desarrollo de Software
BOOSTRAP Desarrollado por Twitter. Conjunto de herramientas de software libre para diseño de sitios
y aplicaciones web Contiene plantillas de diseño con tipografía, formularios, botones,
cuadros, menús de navegación y otros elementos de diseño basado en HTML y CSS, así como, extensiones de JavaScript opcionales adicionales
Baja curva de aprendizaje Una excelente herramienta para crear interfaces de usuario
limpias y totalmente adaptables a todo tipo de dispositivos y pantallas, sea cual sea su tamaño
Conferencia: Proceso de Desarrollo de Software
APLICACIONES BOOSTRAP
CONCLUSIONES La Ingeniería de Software es el establecimiento y uso de principios
robustos de la ingeniería a fin de obtener software que sea fiable y que funcione eficientemente.
Las metodologías de desarrollo de software guían el proceso para obtener un software de calidad.
No existe una metodología universal para hacer frente con éxito a cualquier proyecto de desarrollo de software. Toda metodología debe ser adaptada al contexto del proyecto. Históricamente, las metodologías tradicionales han intentado abordar la mayor cantidad de situaciones de contexto del proyecto, exigiendo un esfuerzo considerable para ser adaptadas, en proyectos pequeños y con requisitos muy cambiantes. Las metodologías ágiles ofrecen una solución casi a medida para una gran cantidad de proyectos que tienen estas características.
Conferencia: Proceso de Desarrollo de Software
CONCLUSIONES Los Sistemas de Gestión de Contenido (CMS) se utilizan para
administrar el contenido de un sitio web.
Los frameworks son una abstracción de código común que provee funcionalidades genéricas que pueden ser utilizadas para desarrollar aplicaciones de manera rápida, fácil, modular y sencilla, ahorrando tiempo y esfuerzo
Todos los CMS, frameworks PHP, JavaScript y CSS antes mencionados son perfectamente valiosos para el desarrollo de aplicaciones de diversos tipos.
El empleo de uno u otro estará dado por las facilidades que brindan y el conocimiento que tenga el usuario sobre su funcionamiento.
Conferencia: Proceso de Desarrollo de Software
TRABAJO EN EQUIPO
TOGETHER JuntosEVERYONE Cada unoACCHIEVES ConsigueMORE Más
Conferencia: Proceso de Desarrollo de Software