Este documento describe y compara varios modelos prescriptivos de proceso de ingeniería de software, incluyendo el modelo en cascada, modelos incrementales, modelo DRA, modelos evolutivos como la construcción de prototipos y el modelo en espiral, modelos concurrentes y modelos especializados. También explica el proceso unificado, el cual es un ciclo de vida incremental e iterativo centrado en casos de uso y arquitectura.
El Ciclo de Vida del Software propone algunos modelos para explicar las fases o etapas que cumple el producto de software desde los requerimientos inicial hasta su nueva entrega.
Requisitos No Funcionales
• Son aquellos que no se asimilan a las funciones del sistema como tal.
• Especifican restricciones sobre cómo que limiten las elecciones para
construir una solución.
• Son menos números que los RF.
• Conciernen a aspectos como:
➢ Calidad: usabilidad, confiabilidad, eficiencia.
➢ Implementación: plataforma de software, lenguaje de
programación, hardware.
➢ Ambiente: seguridad, privacidad, confidencialidad.
En muchos casos esta metodología se considera como un método independiente, este método pertenece a los modelos de desarrollo evolutivo.
Prototipo es una representación o modelo del sistema a desarrollar que, a diferencia de un modelo de simulación, incorpora componentes del producto real, este será una representación del sistema, aunque no es un sistema completo, posee las características del sistema final o parte de ellas.
Un prototipo tiene un funcionamiento limitado en cuanta a capacidades, confiabilidad o eficiencia.
En la utilización de este método se inicia con la definición de los objetivos globales para el software para luego pasar a identificar los requisitos conocidos y las áreas del esquema en donde es necesaria más definición. Entonces se plantea con rapidez una iteración de construcción de prototipos y se presenta el modelado
El Ciclo de Vida del Software propone algunos modelos para explicar las fases o etapas que cumple el producto de software desde los requerimientos inicial hasta su nueva entrega.
Requisitos No Funcionales
• Son aquellos que no se asimilan a las funciones del sistema como tal.
• Especifican restricciones sobre cómo que limiten las elecciones para
construir una solución.
• Son menos números que los RF.
• Conciernen a aspectos como:
➢ Calidad: usabilidad, confiabilidad, eficiencia.
➢ Implementación: plataforma de software, lenguaje de
programación, hardware.
➢ Ambiente: seguridad, privacidad, confidencialidad.
En muchos casos esta metodología se considera como un método independiente, este método pertenece a los modelos de desarrollo evolutivo.
Prototipo es una representación o modelo del sistema a desarrollar que, a diferencia de un modelo de simulación, incorpora componentes del producto real, este será una representación del sistema, aunque no es un sistema completo, posee las características del sistema final o parte de ellas.
Un prototipo tiene un funcionamiento limitado en cuanta a capacidades, confiabilidad o eficiencia.
En la utilización de este método se inicia con la definición de los objetivos globales para el software para luego pasar a identificar los requisitos conocidos y las áreas del esquema en donde es necesaria más definición. Entonces se plantea con rapidez una iteración de construcción de prototipos y se presenta el modelado
Designing an Effective Enterprise Search Solution Cognizant
For enterprise search requirements, we assess the Google Search Appliance along with SharePoint, social search, and AutoSuggest, in contrast to Apache Lucene and Solr.
Elim Palms Renewal Centre (EPRC) is an organization passionate about facilitating psychological and emotional renewal which is achieved through counselling and coaching. Apart from working with families, couples, teenagers and individuals, EPRC also works with pastors, Christian leaders and other professionals working in Christian organizations and in the general market place. We provide psychological debriefing and counselling to this group of people.
Seguridad en la Información en Retail y Gran ConsumoAlfonso Gadea
En una tarde fría de un sábado de noviembre, Amanda necesita ropa de verano para sus próximas vacaciones en el Caribe. Empieza visitando el blog de Rita, una de las blogueras influyentes en el sector moda para conocer cuáles son las últimas tendencias...
Autor: Álvaro Arenas. Una publicación de la Fundación IE en colaboración con Ernst & Young. Director de proyecto: Alfonso Gadea
A partir de este paso y en adelante el equipo de desarrollo software trabaja para tirar adelante el proyecto. El equipo se reúne con varios depositarios de dominio del problema, e intentan conseguir la máxima cantidad de información posible sobre lo que requieren. Los requisitos se contemplan y agrupan en requisitos del usuario, requisitos funcionales y requisitos del sistema. La recolección de todos los requisitos se lleva a cabo como se especifica a continuación
Estudio de viabilidad
Después de la recolección de requisitos, el equipo idea un plan para procesar el software. En esta fase, el equipo analiza si el software puede hacerse para cubrir todos los requisitos del usuario y si hay alguna posibilidad de que el software ya no sea necesario.
1. Sesión III: Modelos Prescriptivos
de Proceso
Ing. Luis Alfredo Fernández Vizcarra
lfernandez@speedy.com.pe
lfernandez@coesi.com.pe
2. Vistazo rápido: Modelos Prescriptivos
¿Qué es?
•Un conjunto distinto de actividades,
acciones, tareas, fundamentos y
productos de trabajo que se
requieren para desarrollar software
de alta calidad.
•Proporcionan una guía útil para el
trabajo de la ingeniería del software.
¿Quién lo hace?
•Los ingenieros de software y sus
gerentes adaptan un modelo
prescriptivo de proceso a sus
necesidades y después lo siguen.
•La gente que ha solicitado el
software participa durante la
ejecución del modelo de software.
¿Por qué es importante?
•Proporciona estabilidad, control y
organización a una actividad que si
no controla puede volverse caótica.
¿Cuáles son los pasos?
•El proceso conduce a un equipo de
software a través de un conjunto de
actividades del marco de trabajo que
se organizan en un flujo de proceso,
el cual puede ser lineal, incremental
o evolutiva.
¿Cuál es el producto
obtenido?
•Desde el punto de vista de un
ingeniero de software: programas,
documentos y datos que se
producen como consecuencia de las
actividades y tareas que define el
proceso.
¿Cómo puedo estar seguro
de que lo he hecho
correctamente?
•Los mejores indicadores de la
eficacia del proceso que se utiliza
son la calidad, el tiempo de entrega y
la viabilidad a largo plazo del
producto que se construye.
3. Modelos Prescriptivos
Los Modelos Prescriptivos de Proceso definen un conjunto distinto de
actividades, acciones, tareas, flujo de trabajo, fundamentos y productos
de trabajo que se requieren para software de alta calidad.
MODELO EN CASCADA
CARACTERÍSTICAS DESVENTAJAS
También se le conoce como
Ciclo de Vida Clásico.
Enfoque sistemático
secuencial hacia el
desarrollo del software.
Es el paradigma más antiguo
para la ingeniería de
Software.
Es muy raro que los proyectos reales sigan
el flujo secuencial que propone el modelo.
Con frecuencia es difícil para el cliente
establecer todos los requisitos de manera
explícita.
El cliente debe tener paciencia.
La naturaleza lineal del modelo conduce a
“estados de bloqueo” en los cuales algunos
miembros del equipo del proyecto deben
esperar a otros para terminar tareas
independientes.
4. Modelo en Cascada
Comunicación
•Inicio del proyecto
•Recopilación de requisitos
Planeación
•Estimación
•Itinerario
•Seguimiento
Modelado
•Análisis
•Diseño
Construcción
•Código
•Prueba
Despliegue
•Entrega
•Soporte
•Retroalimentación
5. Modelos de Proceso Incrementales
MODELO INCREMENTAL
CARACTERÍSTICAS
Combina elementos
del modelo en
cascada aplicado en
forma iterativa.
Se enfoca en la
entrega de un
producto operacional
con cada incremento.
Entrega una serie de
lanzamientos llamados
incrementos que
proporcionan en forma
progresiva más
funcionalidad para los
clientes a medida que se
entrega cada uno de los
incrementos.
6. Modelo incremental
Tiempo de calendario de proyecto
Funcionalidadycaracterísticasdelsoftware
Comunicación
Planeación
Modelado (análisis, diseño)
Construcción (código, prueba)
Despliegue (entrega, retroalimentación)
Entrega del
primer incremento
Entrega del
segundo incremento
Entrega del
n-ésimo incremento
Incremento # 1
Incremento # 2
Incremento # n
7. Modelo DRA (Desarrollo Rápido de Aplicaciones)
•Es una adaptación a “alta velocidad” del modelo en
cascada en el que se logra el desarrollo rápido mediante
un enfoque de construcción basado en componentes.
•Si se entienden bien los requisitos y se limita el ámbito
del proyecto, el proceso DRA permite crear un sistema
completamente funcional en un periodo muy corto.
CARACTERÍSTICAS
•Necesita muchos Recursos Humanos
•Desarrolladores y los clientes deben involucrarse con
las actividades del desarrollo del sistema
•La construcción de componentes es complicada
•Si se convierte interfaces en componentes el DRA no
funcionará
•Es inapropiado con riesgos técnicos muy altos
DESVENTAJAS
8. Modelo DRA
Modelado
Modelado del negocio
Modelado de los datos
Modelado del proceso
Construcción
Reutilización de
componentes
Generación de código
automático
Pruebas
Comunicación
Planeación
60 - 90 días
Modelado
Modelado del negocio
Modelado de los datos
Modelado del proceso
Construcción
Reutilización de
componentes
Generación de código
automático
Pruebas
Modelado
Modelado del negocio
Modelado de los datos
Modelado del proceso
Construcción
Reutilización de
componentes
Generación de código
automático
Pruebas
Despliegue
Integración
Entrega
Retroalimentación
Equipo #1
Equipo #2
Equipo #n
9. Modelos de Proceso Evolutivos
Los modelos evolutivos son iterativos, los caracteriza la forma en que
permiten que los ingenieros de software desarrollen versiones cada vez
completas del software.
Su propósito es desarrollar software de alta calidad de una manera
iterativa o incremental.
CONSTRUCCION DE PROTOTIPOS
CARACTERISTICAS DESVENTAJAS
Se puede utilizar como un modelo de
proceso independiente o como una
técnica susceptible de implementarse
dentro de otros modelos.
Ayuda al ingeniero de sistemas y al
cliente a entender de mejor manera
cual será el resultado de la
construcción cuando los requisitos
estén satisfechos.
El cliente no entiende lo que es
un prototipo y el sistema final
El desarrollador puede
adaptarse al lenguaje con el
que elaboró el prototipo
La calidad del software se
reduce.
10. Construcción de Prototipos
Plan rápido
Modelado
diseño
rápido
Construcción
del prototipo
Desarrollo,
entrega y
retroalimentación
Comunicación
11. Modelo en Espiral
DESVENTAJAS
- Es difícil convencer a los clientes de
que el enfoque evolutivo es
controlable.
- Requiere una habilidad considerable
para evaluar el riesgo.
- Si un riesgo importante no se
descubre y administra, sin duda
surgirán problemas.
CARACTERÍSTICAS
- Conjuga la naturaleza iterativa de la
construcción de prototipos con los aspectos
controlados y sistemáticos del modelo
cascada.
- Proporciona el material para el desarrollo
rápido de versiones incrementales del
software.
- Se puede adaptar y aplicar a través del ciclo
de vida completo de una aplicación, desde el
desarrollo del concepto hasta el
mantenimiento.
- Es un enfoque realista para el desarrollo de
software y de sistemas a gran escala.
- Se considera el riesgo en cada revolución
- Se revisa los costos
- Se adapta a lo largo de la vida del software
13. Modelo Desarrollo Concurrente
CARACTERÍSTICAS
Se representa en forma
esquemática como una
serie de actividades del
marco de trabajo,
acciones y tareas de la
ingeniería del software
y sus estados asociados.
Es más apropiado
para proyectos donde
están implicados
diferentes equipos de
ingeniería.
Todas las actividades
existen de forma
concurrente, pero se
encuentra en
diferentes estados.
Proporciona una
visión exacta del
estado actual del
proyecto.
Los eventos
generados en un
punto de la red del
proceso disparan
transiciones entre los
estados.
14. Modelo Desarrollo Concurrente
Ninguno
Bajo desarrollo
En espera de
cambios En
modificación
En revisión
En línea de
base
Realizado
Representa el estado
de una actividad o
tarea de la ingeniería
de software
Actividad de modelado
15. Modelos Especializados de Proceso
Se aplican cuando se ha elegido un enfoque de ingeniería del software definido
de una manera muy estrecha.
1.DESARROLLOBASADOEN
COMPONENTES
CARACTERÍSTICAS
- Incorpora muchas de las características del modelo espiral.
- Destaca la reutilización y ensambladura de componentes.
- Se pueden emplear cuando el software está en construcción.
- Proporcionan funcionalidad dirigida con interfaces bien definidas
que permiten su integración en el software.
PASOS
- Investigar productos basados en
componentes y evaluarlos
- Integración de componentes
- Diseñar arquitectura de software
- Integrar los componentes a la
arquitectura
- Pruebas
16. Modelos Especializados de Proceso
2. MODELO
DE MÉTODO
FORMALES
CARACTERÍSTICAS
Definen un conjunto de actividades basadas en
una especificación matemática
Se verifica mediante notación matemática
rigurosa.
Una variación de este modelo es el llamado
“Ingeniería del software de sala limpia”
La ambigüedad, el estado incompleto y la
inconsistencia se descubren y corrigen con
mayor facilidad.
DESVENTAJAS
• Es muy caro y consume mucho
tiempo
• Se requiere una capacitación
detallada al personal
• Dificulta la comunicación con los
clientes
17. Modelos Especializados de Proceso
CARACTERÍSTICAS
Conocido también como Programación Orientada a
Aspectos (POA).
Incluye los intereses generales que cubren la
arquitectura total del sistema.
Proporciona un proceso y enfoque metodológico
para definir, especificar, diseñar y construir aspectos
(mecanismos más allá de subrutinas).
18. El Proceso Unificado
CARACTERÍSTICAS
Es un ciclo de vida incremental e iterativo
propuesto por los creadores de UML (Unified
Modeling Language).
Dirigido por los casos de uso
Centrado en la arquitectura
Iterativo e incremental
Distingue 6 fases: inicio, elaboración,
construcción, transición, producción.
19. Fase de Producción
Se realiza el monitoreo continuo y el soporte.
Fase de Transición
Transfiere el software del desarrollador al usuario final para realizar las pruebas beta y obtener la
aceptación.
Fase de Construcción
Refina y después traduce el modelo de diseño en componentes de software implementados.
Fase de elaboración
Abarca la comunicación con el cliente y las actividades de modelado con un enfoque en la creación de modelos
de análisis y diseño, con énfasis en las definiciones de clase y representaciones arquitectónicas.
Fase Inicio
Abarca la comunicación con el cliente y las actividades de planeación y destaca el desarrollo y el
refinamiento de casos de uso como un modelo primario.
Fases del Proceso Unificado
21. Productos de trabajo del proceso unificado
Fasedeconstrucción
Fasedeelaboración
Fasedetransición
Fasedeinicio
Documento de la
visión
Modelo inicial de
caso de uso
Glosario inicial del
proyecto
Caso inicial de
negocio
Evaluación inicial
del riesgo
Plan de Proyecto,
fases e iteraciones
Modelo del
negocio si es
necesario
Uno o más
prototipos
Modelo de casos de uso
Requisitos
suplementarios, se
incluyen los no
funcionales
Modelo de análisis
Descripción de la
arquitectura del software
Prototipo arquitectónico
ejecutable
Modelo de diseño
preliminar
Lista revisada de riesgo
Plan de proyecto que
incluye:
• Plan de iteración
• Flujos de trabajo
adoptados
• Fundamentos
• Productos técnicos del
trabajo
• Manual preliminar del
usuario
Modelo del diseño
Componentes del
software
Incremento
integrado del
software
Plan y
procedimiento de
pruebas
Casos de prueba
Documentación del
soporte
Manuales del
usuario
Manuales de
instalación
Descripción del
incremento actual
Incremento
de software
integrado
Reportes de
las pruebas
beta
Retroaliment
ación
general del
usuario
22. Bruegge, B., Dutoit, A.H., Ingeniería del Software Orientado a Objetos, cap. 1
Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de Desarrollo de
Software, cap. 1
Pressman, R.S., Ingeniería del Software. Un enfoque práctico, cap. 1 y 2
Sommerville, I., Ingeniería de Software, cap. 1, 2 y 3
Referencias