proceso para el desarrollo de software ponencia m.c.ivet espinosa conde

85

Click here to load reader

Upload: sam-espinosa

Post on 20-Jan-2017

1.031 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

PROCESO DE DESARROLLO DE SOFTWARE

Page 2: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 3: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 4: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 5: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

ATRIBUTOS DE CALIDAD DEL SOFTWARE

Conferencia: Proceso de Desarrollo de Software

Fiable

Capacidad de ofrecer los mismos resultados bajo las mismas condiciones

Page 6: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 7: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 8: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 9: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 10: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 11: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 12: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 13: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

FASES-FLUJOS DE TRABAJO DE RUP

Conferencia: Proceso de Desarrollo de Software

Page 14: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 15: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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.

Page 16: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 17: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 18: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 19: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 20: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 21: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 22: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 23: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 24: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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)

Page 25: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

Prácticas XP

Conferencia: Proceso de Desarrollo de Software

EXTREME PROGRAMMING (XP)

Page 26: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 27: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

Conferencia: Proceso de Desarrollo de Software

EXTREME PROGRAMMING (XP)

Page 28: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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)

Page 29: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

Conferencia: Proceso de Desarrollo de Software

EXTREME PROGRAMMING (XP)

Artefactos

Historias de Usuario

Tareas de Ingeniería

Pruebas de Aceptación

Page 30: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 31: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

Conferencia: Proceso de Desarrollo de Software

Metodologías de Desarrollo Web

Page 32: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 33: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 34: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 35: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 36: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 37: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 38: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 39: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 40: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 41: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 42: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

Conferencia: Proceso de Desarrollo de Software

Page 43: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 44: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 45: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

PRINCIPIO DE FUNCIONAMIENTO

Conferencia: Proceso de Desarrollo de Software

Page 46: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

FUNCIONALIDADES DE UN CMS

Conferencia: Proceso de Desarrollo de Software

Page 47: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 48: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 49: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 50: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 51: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

CONSISTENCIA DE LA WEB

Conferencia: Proceso de Desarrollo de Software

Page 52: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 53: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 54: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

CONTROL DEL ACCESO

Gestionar los diferentes

permisos a cada área del web aplicados a

grupos o individuos

Conferencia: Proceso de Desarrollo de Software

Page 55: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

REUTILIZACIÓN DE OBJETOS Y COMPONENTES

Conferencia: Proceso de Desarrollo de Software

Page 56: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

INCLUSIÓN DE NUEVAS FUNCIONALIDADES EN LA WEB Y PÁGINAS INTERACTIVAS

Funcionalidad 1

Funcionalidad 2

Funcionalidad n

Conferencia: Proceso de Desarrollo de Software

Page 57: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

CMS EXISTENTES

Conferencia: Proceso de Desarrollo de Software

Page 58: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 59: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 60: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 61: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 62: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 63: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 64: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

CMS MÁS POPULARES

Conferencia: Proceso de Desarrollo de Software

Page 65: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

COMPARACIÓN

Conferencia: Proceso de Desarrollo de Software

Page 66: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

SITIOS QUE UTILIZAN UN CMS

Conferencia: Proceso de Desarrollo de Software

Page 67: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

CONSTRUIR APLICACIONES WEB

HTMLCSS

PHPASP

Servidor Web

Herramientas de

Desarrollo

Herramientas CASE

SGBD

JavaScriptVBScript

APLICACIONES WEB

Conferencia: Proceso de Desarrollo de Software

Page 68: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

Marcos de Desarrollo de Aplicaciones Web

(Frameworks)

Conferencia: Proceso de Desarrollo de Software

Page 69: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 70: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 71: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 72: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 73: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 74: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 75: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

FRAMEWORK PHP MÁS POPULARES

Zend Framework CodeIgniter CakePHP YiiZoop FrameworkSymfony Seagull Prado PHP on Traxentre otros.

Conferencia: Proceso de Desarrollo de Software

Page 76: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

COMPARACIÓN

Conferencia: Proceso de Desarrollo de Software

Page 77: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 78: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 79: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 80: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 81: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

APLICACIONES BOOSTRAP

Page 82: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 83: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

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

Page 84: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde

TRABAJO EN EQUIPO

TOGETHER JuntosEVERYONE Cada unoACCHIEVES ConsigueMORE Más

Conferencia: Proceso de Desarrollo de Software

Page 85: Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde