16
Universidad Regional Autónoma De Los Andes “ Uniandes ” Autor: Collaguazo Fredy Tema: Desarrollo de software orientado a la web Desarrollo de Proyectos Informáticos

Desarrollo de software orientado a la web

Embed Size (px)

Citation preview

Universidad Regional Autónoma De Los Andes

“ Uniandes ”

Autor: Collaguazo Fredy

Tema: Desarrollo de software orientado a la web

Desarrollo de Proyectos Informáticos

• Definición.

Desarrollo web es un título algo arbitrario para el conjunto de tecnologías de software del lado del servidor y del cliente que involucran una combinación de procesos de base de datos con el uso de un navegador en Internet a fin de realizar determinadas tareas o mostrar información.

Desarrollo de software orientado a la web

Desarrollo de software orientado a la web

Plan de Desarrollo

Procesos

Metodos• Metodos de comunicacion• Metodos de Analisis de

Requisitos• Metodos de Diseño• Metodos de Pruebas

Herramientas y Tecnologia

Modelos de procesos web: Los métodos de proceso web que tratan con detalle en la sesión, adoptan la filosofía del desarrollo ágil. El desarrollo ágil enfatiza un enfoque de desarrollo riguroso que incorpora rápidos ciclos de desarrollo, describe la motivación para el enfoque ágil.

El internet cambio la prioridad principal del desarrollo de software; el reducido tiempo para el mercado se ha convertido en le limite competitivo por el que luchan las compañías lideres. En consecuencia, reducir el ciclo de desarrollo es ahora una de las misiones mas importantes de la ingeniería de software.

Métodos: El panorama de los métodos de web abarca al ingeniero web comprender, caracterizar y luego construir una web de alta calidad. Los métodos de web se pueden categorizar de la siguiente manera.

a).-Métodos de comunicación: define el enfoque con que facilidad la comunicación entre ingenieros web y los demás participantes de la web (por ejemplo, usuarios finales, clientes de negocios, expertos en problemas de dominio, diseñadores de contenido, lideres de equipo, gestores de proyecto). Las técnicas de comunicación son particularmente importantes durante la recopilación de requisitos y siempre que sea evaluado un incremento en la web.

Desarrollo de software orientado a la web

b.- Métodos de análisis de requisitos: proporcionan una base para comprender el contenido que entrega una web, la función que proporcionara al usuario final y los modos de interacción que cada clase de usuario requiera mientras ocurra la navegación por medio de web.

c.- Métodos de diseño: abarcan una serie de técnicas de diseño que abordan el contenido, la aplicación y la arquitectura de información, así como el diseño de interface y la estructura de navegación de la web.

d.- Métodos de prueba: incorporan revisiones técnicas formales, tanto del contenido y el modelo de diseño como de una amplia variedad de técnicas de prueba que abordad conflictos al nivel de componente y arquitectónicos, pruebas de la navegación, pruebas de facilidad de uso, pruebas de seguridad y pruebas de configuración.

A demás los métodos técnicos que se han subrayado, es esencial una serie de actividades sobrilla (con métodos asociados) para la web exitosa. esta incluye técnicas de gestión de proyecto (por ejemplo, estimación, calendarización, análisis de riesgo), técnicas de gestión de configuración de software de revisión.

Desarrollo de software orientado a la web

Herramientas y tecnología: A lo largo de la década pasada ha evolucionado un amplio conjunto de herramientas y tecnología conforme las web, se han vuelto mas complejas y extendidas.

Dichas tecnologías abarcan un amplio conjunto de contenido y lenguajes de modelación (ejemplo, HTML, VRML, XML), lenguajes de programación como java, recursos de desarrollo basados en componentes (COBRA, COM, ActiveX, NET), navegadores herramientas multimedia, herramienta s de seguridad, servidores y utilidades de servidor, y herramientas de administración y análisis de sitio.

Desarrollo de software orientado a la web

Fases de un proyecto de desarrollo de software orientado a la web.

Fases de Desarrollo

Iniciación del Proyecto

Análisis del Sistema

Diseño del Sistema

Construcción

Evaluación y Aseguramiento de Calidad

Implementación

Se debe tomar en cuenta el modelo empleado en el desarrollo del proyecto.

Por cada fase de desarrollo considera la siguiente estructura:• Objetivos de la fase.• Listado de Actividades de la fase• Contenido de cada actividad:

• Tareas• Entregables• Consideraciones • Formatos

Fase – Iniciación del ProyectoObjetivos Actividades Tareas

• Definir con claridad el problema.

• Definir el alcance del proyecto.

• Proponer una solución.

• Determinar los costos y beneficios de la solución.

• Obtener la aprobación del proyecto.

Identificar el problema.• Elaborar un RFS (Requerimiento de Servicios IT), que será

usado como notificación inicial por parte del cliente sobre el sistema requerido.

Conformar el equipo de desarrollo.

• Conformar el equipo de desarrollo de acuerdo a las características y particularidades de cada proyecto.

Identificar requerimientos preliminares.

• Iniciar el proceso de desarrollo a través del mapa de procesos.• Desarrollar un bosquejo inicial de proyecto.• Definir las metas del proyecto.• Identificar los clientes.• Identificar salidas claves.• Documentar los procesos actuales.• Definir los requerimientos de alto nivel.

Validar los requerimientos.• Validar los requerimientos de alto nivel previamente

obtenidos.

Desarrollar un estudio de fiabilidad.

• Estructurar un estudio de fiabilidad para el proyecto.

Obtener la aprobación del proyecto.

• Obtener aprobación de todos los clientes, departamentos y/o entidades, que tengan relación directa o indirecta con el nuevo sistema.

Fase – Análisis del SistemaObjetivos Actividades Tareas

• Completar la identificación de los requerimientos que comenzó en la fase de Iniciación del Proyecto.

• Transformar los requerimientos de alto nivel en especificaciones detalladas del sistema.

• Crear un diseño conceptual del sistema a través del estudio de fiabilidad detallado.

Entender los procesos actuales. • Desarrollar una línea base con los procesos actuales que permitan justificar el propósito de las mejoras a obtenerse con el sistema.

Identificar los requerimientos. • Definir requerimientos detallados del sistema.• Desarrollar el Criterio de Evaluación de Requerimientos.

Priorizar los requerimientos. • Priorizar los requerimientos detallados conjuntamente con el cliente.

Identificar mejoras potenciales en los procesos.

• Identificar soluciones potenciales para los requerimientos detallados, catalogados como prioritarios.

Determinar las mejoras que tendrán el mayor impacto sobre los requerimientos prioritarios.

• Determinar cuáles de los procesos de mejora propuestos, deberán ser implantados en el sistema para asegurar el mayor impacto sobre los requerimientos prioritarios.

Crear un mapa de estado detallado. • Generar un mapa funcional de procesos detallado (de estados) sobre los requerimientos prioritarios.

Evaluar el impacto y riesgos de las propuestas de mejora de los procesos.

• Evaluar el impacto y los riesgos sobre las mejoras de procesos propuestas, y su repercusión en el sistema.

Completar el desarrollo del diseño conceptual del sistema.

• Completar el diseño conceptual del nuevo sistema.

Completar el documento de especificación de requerimientos.

• Agrupar la información obtenida en las tareas precedentes bajo una estructura definida, para conformar el documento de referencia final de requerimientos del proyecto.

Obtener aprobación • Presentar el documento de especificación de requerimientos elaborado al cliente para obtener aprobación.

Generar listado de requerimientos

class Objetos de Domi...

Cliente

Peticion

PersonaDesarrollo

Proyecto

CaracteristicaPersona

Cargo

Meta

AnalisisMeta

RazonSolicitud

FartorCritico

ProcesoNegocio

Activ idad ResponsableActiv idad

Requerimiento

AsignacionPersonaDesarrollo

PosibleMejora

CriterioAceptacion

MetodoObtencion

Elaborar Modelo de Dominio inicial

Fase – Diseño del Sistema

Diseñar la Arquitectura del

Software

Elaborar los Diagramas de Secuencia

class Entidades Part I

Cliente

- id: Long- codigo: String- telefono: String- nombre: String

+ getters...()+ setters...() : void

Peticion

- id: Long- codigo: String- descripcion: String

+ getters...()+ setters...() : void+ getProyecto() : Proyecto+ setProyecto(Proyecto) : void

PersonaDesarrollo

- id: Long- codigo: String- nombre: String- apell ido: String

+ PersonaDesarrollo()+ getters...()+ setters...() : void+ getCaracteristicasPersona() : List<CaracteristicaPersona>+ setCaracteristicasPersona(List<CaracteristicaPersona>) : void+ getCargo() : Cargo+ setCargo(Cargo) : void+ getNivelSigma() : NivelSigma+ setNivelSigma(NivelSigma) : void

Proyecto

- id: Long- codigo: String- nombre: String- director: String- l ider: String- fechaRecepcion: Date- fechaInicio: Date- fechaEfectiva: Date- fechaFinPreliminar: Date- fechaFinReal: Date

+ Proyecto()+ getters...()+ setters...() : void+ getEstado() : EstadoProyecto+ setEstado(EstadoProyecto) : void+ getAsignacionesPersonaDesarrollo() : List<AsignacionPersonaDesarrollo>+ setAsignacionesPersonaDesarrollo(List<AsignacionPersonaDesarrollo>) : void+ getCliente() : Cliente+ setCliente(Cliente) : void

AsignacionPersonaDesarrollo

- id: Long

+ AsignacionPersonaDesarrollo()+ getId() : Long+ setId(Long) : void+ getPersonaDesarrollo() : PersonaDesarrollo+ setPersonaDesarrollo(PersonaDesarrollo) : void+ getProyecto() : Proyecto+ setProyecto(Proyecto) : void

CaracteristicaPersona

- id: Long

+ getCaracteristica() : Caracteristica+ setCaracteristica(Caracteristica) : void+ getId() : Long+ setId(Long) : void+ getPersonaDesarrollo() : PersonaDesarrollo+ setPersonaDesarrollo(PersonaDesarrollo) : void

Cargo

- id: Long- codigo: String- nombre: String

+ getters...()+ setters...() : void

«enumeration»Caracteristica

COMPROMISO SESGO_ACCION FLEXIBILIDAD INNOVACION INFLUENCIA_PERSONAL TRABAJO_EQUIPO TIEMPO_DISPONIBLE

«enumeration»EstadoProyecto

PENDING IN_PROCESS COMPLETED CANCELLED

«enumeration»Niv elSigma

NINGUNA CAMPEON MAESTRO_CINTURON_NEGRO CINTURON_NEGRO CINTURON_VERDE

ProcesoNegocio

- id: Long- codigo: String- nombre: String- alcance: String- descripcion: String

+ getters...()+ setters...() : void+ getProyecto() : Proyecto+ setProyecto(Proyecto) : void

DetalleProceso

- id: Long- codigo: String- descripcion: String

+ getters...()+ setters...() : void+ getProcesoNegocio() : ProcesoNegocio+ setProcesoNegocio(ProcesoNegocio) : void+ getTipo() : TipoDetalleProceso+ setTipo(TipoDetalleProceso) : void

Activ idad

- id: Long- codigo: String- descripcion: String

+ getters...()+ setters...() : void+ getProcesoNegocio() : ProcesoNegocio+ setProcesoNegocio(ProcesoNegocio) : void+ getAsignacionesResponsableActividad() : List<AsignacionResponsableActividad>+ setAsignacionesResponsableActividad(List<AsignacionResponsableActividad>) : void

«enumeration»TipoDetalleProceso

PROVIDER INPUT OUTPUT CUSTOMER

ResponsableActiv idad

- id: Long- codigo: String- nombreCompleto: String

+ getters...()+ setters...() : void+ getProyecto() : Proyecto+ setProyecto(Proyecto) : void+ getTipo() : TipoResponsableActividad+ setTipo(TipoResponsableActividad) : void

AsignacionResponsableActiv idad

- id: Long

+ getId() : Long+ setId(Long) : void+ getResponsableActividad() : ResponsableActividad+ setResponsableActividad(ResponsableActividad) : void+ getActividad() : Actividad+ setActividad(Actividad) : void

«enumeration»TipoResponsableActiv idad

INTERNO EXTERNO

sd Dgrm. Secuencia

CuentaUsuarioPágina Principal

.XHTMLUsuario

(from Actores)

Página de Inicio de sesión .XHTML

Authenticator Credentials IdentityPágina de Inicio de sesión .PAGE.XML

Código: 01Caso de Uso: Iniciar sesión

Flujo Básico:El usuario da clic en el enlace “Iniciar sesión” de la Página Principal (ver Figura 3.2), y el sistema muestra la Página de Inicio de sesión (ver Figura 3.3). El usuario ingresa su nombre de usuario y contraseña y da clic en la opción “Ingresar”.

El sistema verifica si existen los datos ingresados en cuenta de usuario. Si estos datos existen, el sistema autentifica al usuario en sesión y se direcciona a la PáginaPrincipal mostrando un mensaje de bienvenida, y el nombre del usuario autentificado. Además el sistema cambia el enlace “Iniciar sesión” por el enlace “Cerrar sesión”.

Flujos Alternativ os:Datos inv álidos: El sistema se direcciona a la misma Página de Inicio de sesión mostrando un mensajeque dice “Nombre de usuario y/o contraseña son incorrectos, inicio de sesión falló”.Usuario cancela inicio de sesión: El usuario da clic en la opción “Cancelar”, y el sistema muestra la Página Principal.

Consulta en CuentaUsuario de la base de datos el usuario y contraseña

Las clases "Credentials" y "Identity" son parte del Framework Seam y se encuentran en los paquetes org.jboss.seam.security.Credentials y org.jboss.seam.security.Identity respectivamente, tener en cuenta que cada clase debe ser inyectada en la clase AuthenticatorBean mediante la anotación @In de Seam

alt authenticate()

[si existe username y pasword en CuentaUsuario]

[else]

El método "login" de la clase "Identity" es l lamado desde el atributo "action" del componente "h:commandButton" de "http://java.sun.com/jsf/html"

alt nav igation from-action="#{identity.login}"

[rule if="#{identity.loggedIn}"]

clic en la opción Iniciar sesión()

view()

ingresa username y password()

clic en la opción Ingresar()

setUsername() setUsername()

setPassword() setPassword()

login() :String

authenticate() :boolean

addRole(Rol)

true()

false()

showGlobalMessages()

redirect()

showGlobalMessages()

clic en la opción Cancelar()

view()

Finalizar el Modelo de Dominio – Modelo de Clases

Fase – Construcción

• Para evaluar la calidad de un software de ámbito web es necesario considerar sus:

• Cualidades Externas (se refieren a factores esperables que son útiles o aprovechables por los usuarios finales de un sistema)

• Cualidades Internas (aquellas que permitirán una labor sencilla, productiva, ordenada, y eficiente, a los desarrolladores del sistema, o a quienes deseen re-programarlo, mantenerlo)

Medida de la calidad de un software para la web.

El desarrollo de software a medida de la calidad, basa en las necesidades del usuario teniendo en cuenta sus expectativas de futuro, es la solución para cuando no es posible disponer de una aplicación estándar que nos ayude a automatizar las funciones y procesos de una empresa.

Las propuestas existentes de modelos de calidad se pueden clasificar según si tienen un enfoque de modelos de calidad fijos, a medida o mixtos.

Tipos de modelos de calidad

Las pruebas de un software de tipo web (1)

La prueba de contenido y las revisiones: Intentan descubrir errores en el contenido. Esta actividad de prueba es similar a muchos aspectos a la copia - edición de un documento escrito. De hecho, un gran sitios web puede reclutar los servicios de un corrector de estilo profesional para descubrir errores tipo gráficos, equívocos gramaticales, errores en la consistencia del contenido, inexactitudes en las representaciones graficas y fallas en las referencias cruzadas, como parte de un sistema orientado a la web.

Prueba de la Interfaz: ejercitan los mecanismos de interacción y valida los aspectos estéticos de la interfaz del usuario. El objetivo es descubrir los errores resultan de mecanismos con una pobre implementación de interacción, inconsistencias o ambigüedades que se han introducido a la interfaz en forma inadvertida.

Prueba de navegación: aplica casos de usos, derivados como parte de una actividad de análisis, en el diseño de cosos de prueba que ejerciten cada escenario de uso contra el diseño de navegación.

Las pruebas de un software de tipo web (2)

Prueba de componentes: ejercitan el contenido y la unidades funcionales dentro de la web. Cada pagina web encapsulada contenidos, vínculos de navegación y elementos de procesamiento (formatos, guiones, applets).

Pruebas de configuración: intentan descubrir los errores que son específicos respecto de un cliente o servidor particular. Se crea una matriz de referencia cruzada que define todos los probables sistemas operativos, navegadores plataformas de hardware y protocolos de comunicación.

Prueba seguridad: incorpora una serie de pruebas diseñadas para explotar las vulnerabilidades en la web y su ambiente. El objetivo es demostrar la posibilidad de una brecha en la seguridad.

Prueba de despeño: abarca una serie de pruebas diseñadas para valorar como afecta el aumento del trafico de usuarios la respuesta en el tiempo y confiabilidad de la web.

Las pruebas de un software de tipo web (3)