Fases de un proyecto de desarrollo de Softwareo Orientado a la Web-Charles Franco
1. Universidad Regional Autónoma De Los Andes
“ Uniandes ”
Charles Franco-VI Sistemas Nocturno
Ing. Laura Ochoa
Tema: Fases de un proyecto de desarrollo de software
orientado a la web.
Desarrollo de Proyectos Informáticos
2. • 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
3. 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
4. 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
5. Fase – Iniciación del Proyecto
Objetivos 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.
6. Fase – Análisis del Sistema
Objetivos 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.
7. 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
8. 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
- apellido: 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
- lider: 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»
NivelSigma
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
Actividad
- 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
ResponsableActividad
- id: Long
- codigo: String
- nombreCompleto: String
+ getters...()
+ setters...() : void
+ getProyecto() : Proyecto
+ setProyecto(Proyecto) : void
+ getTipo() : TipoResponsableActividad
+ setTipo(TipoResponsableActividad) : void
AsignacionResponsableActividad
- id: Long
+ getId() : Long
+ setId(Long) : void
+ getResponsableActividad() : ResponsableActividad
+ setResponsableActividad(ResponsableActividad) : void
+ getActividad() : Actividad
+ setActividad(Actividad) : void
«enumeration»
TipoResponsableActividad
INTERNO
EXTERNO
sd Dgrm. Secuencia
CuentaUsuario
Página Principal
.XHTML
Usuario
(fromActores)
Página de Inicio de
sesión .XHTML
Authenticator Credentials IdentityPágina de Inicio de
sesión .PAGE.XML
Código: 01
Caso 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 losdatos
ingresadosen cuenta
de usuario. Si estos
datosexisten, el
sistema autentifica al
usuario en sesión y se
direcciona a la Página
Principal 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 Alternativos:
Datos inválidos: El
sistema se direcciona
a la misma Página de
Inicio de sesión
mostrando un mensaje
que 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 datosel
usuario y contraseña
Lasclases"Credentials" y "Identity" son parte del FrameworkSeam y
se encuentran en lospaquetesorg.jboss.seam.security.Credentialsy
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
llamado desde el atributo "action" del
componente "h:commandButton" de
"http://java.sun.com/jsf/html"
alt navigation 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