modelos sotware
DESCRIPTION
Resumen de metodologias o Modelos SotwareTRANSCRIPT
MODELO EN CASCADA, TRADICIONAL
Cascada
Es un método que ordena rigurosamente las etapas del ciclo de vida del software
de tal manera que el inicio de cada etapa debe esperar a la finalización del
inmediatamente anterior.
Sirve para los proyectos donde los requisitos se encuentren bien definidos
claramente y no son obligados a futuras modificaciones.
Estructura
Características
Es una visón de procesos por etapas.
para que el proyecto tenga éxito deben desarrollarse todas las etapas.
si se cambia el orden de las fases el resultado será de menor calidad.
Ventajas
tiene todo bien organizado.
planificación sencilla.
Calidad del producto alta.
fácil manejo por parte del usuario.
Desventajas
difícil para corregir.
difícil de actualizar.
lleva gran tiempo todo el ciclo.
Espiral
El modelo de desarrollo en espiral es un generador de modelo de proceso guiado
por el riesgo que se emplea para conducir sistemas intensivos de ingeniería de
software concurrente y al vez de muchos usuarios.
Características
En cada giro se construye un nuevo modelo de sistemas completo.
el modelo puede combinarse con otros modelos.
mejor modelo para grandes sistemas.
No hay numero definido de interacciones.
Estructura
Ventajas
.Reduce los riegos del proyecto.
Incorpora objetivos de calidad.
integra el desarrollo con el mantenimiento.
Modelo dra
Es un proceso de desarrollo de software lineal y secuencial que enfatiza un ciclo
de de desarrollo más corto.
Características
.El software no se desarrolla y utiliza en su totalidad, sino una seria de
incrementos, donde cada incremento se incluyen nuevas funcionalidades
del sistema.
. se necesitan equipos compuestos por alrededor de sies personas,
incluyendo desarrolladores y usuario de tiempo completo.
Ventajas
.manejo de varias plataformas.
. Entrega temprana al cliente.
.mayor involucramiento de usuarios.
.menos fallas.
.ciclos de desarrollo más pequeños.
Desventaja
Para proyectos grandes se necesitan mucho recurso humano.
.progreso más difícil de medir.
Modelos evolutivos
La evolución del software está basado respecto a lo que diga el cliente. Enfocado
para el mejoramiento del software.
Características
.Se adaptan más fácilmente a los cambios introducidos a lo largo del
desarrollo.
.iterativos.
.En cada interacción se obtiene versiones más completas del sw
Existen dos tipos de desarrollo evolutivo:
Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los
requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes
que se tiene más claras. El sistema evoluciona conforme se añaden nuevas
características propuestas por el usuario.
Enfoque utilizando prototipos: El objetivo es entender los requisitos del
usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del
desarrollo exploratorio, se comienza por definir los requisitos que no están
claros para el usuario y se utiliza un prototipo para experimentar con ellos.
El prototipo ayuda a terminar de definir estos requisitos.
Estructura
Ventajas
Reutilización del software.
Simplifica las pruebas; pues estas se le hacen a los componentes antes de
probar el conjunto completo de componentes ensamblados.
Simplifica el mantenimiento del sistema.
Mayor calidad.
Desventajas
Genera mucho tiempo en el desarrollo del sistema.
Modelo costoso.
Requiere experiencia en la identificación de riesgos.
Genera mucho trabajo adicional.
Modelo concurrente
Ligado con el cliente, basados en los requerimientos que pida el cliente.
Características:
• se puede expresar de manera esquematizada
• las actividades llevan procesos concurrentes
• es aplicable a todo tipo de desarrollo de software
• es un modulo aplicable para cliente soñador
• esta dirigido por las necesidades del usuario
• es aplicable al cliente servidor
Estructura
Ventajas
Excelente para proyectos en los que se conforman grupos de trabajo
independientes.
Proporciona una imagen exacta del estado actual de un proyecto.
Desventajas
Si no se dan las condiciones señaladas no es aplicable.
Si no existen grupos de trabajo no se puede trabajar en este método
Modelo incremental
Es un modelo de tipo evolutivo que está basado en varios ciclos Cascada
realimentados aplicados repetidamente, con una filosofía iterativa.
Características
Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con
cierta frecuencia.
. El usuario se involucre más.
. Difícil de evaluar el costo total.
. Difícil de aplicar a los sistemas transaccionales que tienden a ser
integrados y a operar como un todo.
. Requiere gestores experimentados.
. Los errores en los requisitos se detectan tarde.
. El resultado puede ser muy positivo.
ESTRUCTURA
Ventajas:
- Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que
se implementa la funcionalidad parcial.
- También provee un impacto ventajoso frente al cliente, que es la entrega
temprana de partes operativas del Software.
- El modelo proporciona todas las ventajas del modelo en cascada realimentado,
reduciendo sus desventajas sólo al ámbito de cada incremento.
- Permite entregar al cliente un producto más rápido en comparación del modelo
de cascada.
- Resulta más sencilo acomodar cambios al acotar el tamaño de los incrementos.
- Por su versatilidad requiere de una planeación cuidadosa tanto a nivel
administrativo como técnico.
Desventajas:
- El modelo Incremental no es recomendable para casos de sistemas de tiempo
real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice de
riesgos.
- Requere de mucha planeacion, tanto administrativa como técnica.
- Requiere de metas claras para conocer el estado del proyecto.
MODELOS ORIENTADOS A LA REUTILIZACIÓN
Es un enfoque de desarrollo que trata de maximizar la reutilización del Software
existente.
DESARROLLO BASADO EN COMPONENTES
Cuyas características son:
Configura aplicaciones a partir de componentes de software preparados.
Tiene un enfoque iterativo y evolutivo.
Estructura
Ingeniería del Dominio: Su objetivo es identificar, construir, catalogar y diseminar
un conjunto de componentes de software que tienen aplicación en el software
actual y futuro dentro de un dominio de aplicación particular.
Características
Análisis del dominio
Modelo del dominio
Modelado estructural
Estructura
Ventajas
La actualización y reutilización de software.
Desventaja
La no adaptación a diferentes plataformas.
MODELOS DE PROCESOS AGILES
EXTREME PROGRAMMING
Características
Basado en los valores de simplicidad, comunicación, retroalimentación, el
valor y el respeto.
Equipo completo.
Pruebas de clientes, lanzamientos pequeños.
Diseño simple, programación en pareja, desarrollo basado en pruebas,
mejoras del diseño.
Integración continua, ritmo sostenible
Estructuras
Método de desarrollo de sistema dinámico (DSDM)
Es una metodología ágil que abarca todo el ciclo de vida de un proyecto de
desarrollo de Software.
Estructura
FDD
DESARROLLO BASADO EN FUNCIONES
Es una técnica de programación guiada por rasgos o características, centradas en
el usuario, no en el programador.
Métodos agiles
Ventajas
.El modelo es prescindible de modelos desechables.
.pocos roles más flexible.
.cliente es parte del equipo.
.orientado a proyectos de corta duración.
.es fácil de modificar
Metodología Acrónimo Creación Tipo de modelo Característica
Adaptive SoftwareDevelopment
ASD Highsmith 2000 Prácticas + Ciclo devida
Inspirado en sistemasadaptativos complejos
Agile Modeling AM Ambler 2002 “Metodología basada enla práctica”
Suministra modelado ágila otros métodos
Crystal Methods CM Cockburn 1998 “Familia demetodologías”
MA con énfasis enmodelo de ciclos
Agile RUP dX Booch, Martin, Newkirk1998
Framework / Disciplina XP dado vuelta conartefactos RUP
Dynamic SolutionsDelivery Model
DSDM Stapleton 1997 Framework / Modelo deciclo de vida
Creado por 16 expertosen RAD
Evolutionary ProjectManagement
Evo Gilb 1976 Framework adaptativo Primer método ágilexistente
ExtremeProgramming
XP Beck 1999 “Disciplina en prácticasde ingeniería”
Método ágil radical
Feature-drivendevelopment
FDD De Luca & Coad 1998Palmer & Felsing 2002
“Metodología” Método ágil de diseño yconstrucción
Lean Development LD Charette 2001, Mary yTom Poppendieck
“Forma de pensar” –Modelo logístico
Metodología basada enprocesos productivos
Microsoft SolutionsFramework
MSF Microsoft 1994 Lineamientos,Disciplinas, Prácticas
Framework de desarrollode soluciones
Rapid Development RAD McConnell 1996 Survey de técnicas y
modelos
Selección de best
practices, no método
Rational UnifiedProcess
RUP Kruchten 1996 Proceso unificado Método (¿ágil?) conmodelado
Scrum Scrum Sutherland 1994 -Schwaber 1995
“Proceso” (frameworkde management)
Complemento de otrosmétodos, ágiles o no
MODELO PARA SISTEMAS OO
Este método proporciona un soporte para el diseño creativo de productos de
software, a escala industria. Utiliza lenguajes como para el modelado y dearrollo
de proyectos como:oose,omt-2,booch,uml.
Dependiendo el proyecto se escoge el modela más adecuado.
ITERACTIVO E INCREMENTAL
Añade funciones al sistema progresivamente, tras validar las sucesivas
interacciones con el cliente, el proceso va convergiendo hacia el producto
esperando por ambas partes.
Ventajas
.diseño modulares.
.fácil de modificar.
.reutilización de clases.
SCRUM
Enfatiza valores y prácticas de gestión, sin pronunciarse sobre
requerimientos, prácticas de desarrollo, implementación y demás
cuestiones técnicas
Hace uso de Equipos auto-dirigidos y auto-organizados
Puede ser aplicado teóricamente a cualquier contexto en donde un grupo
de gente necesita trabajar junta para lograr una meta común.
Desarrollo de software iterativos incrementales basados en prácticas agiles
Iteraciones de treinta días; aunque se pueden realizar con mas frecuencia,
estas iteraciones, conocidas como Sprint
Dentro de cada Sprint se denomina el Scrum Master al Líder de Proyecto
quien llevará a cabo la gestión de la iteración
Se convocan diariamente un “Scrum Daily Meeting” el cual representa una
reunión de avance diaria de no más de 15 minutos con el propósito de tener
realimentación sobre las tareas de los recursos y los obstáculos que se
presentan. En la cual se responden preguntas como: ¿Qué has hecho
desde el ultimo encunetro? ¿Qué obstaculos hay para cumplir la meta?
¿Qué haras antes del proximo encuentro?
Roles : si
Experiencia Team: No
Modelo ágil: si
Aplicable para Web: Si
Individualización Team: No.
RUP
Describir la organización, documentación, funcionalidad y restricciones de
un software.
Documentar y registrar las decisiones que se tomen para el desarrollo de
un software.
Implementar los diferentes diagramas de UML, dando paso a la reducción
de tiempo a la hora de desarrollar un software.
Administrar los Requerimientos:
Esta práctica permite documentar, agilizar, mejorar los requerimientos
obtenidos para el desarrollo de un software, es sin duda una metodología
que ayuda a insertar nuevos cambios a un sistema de información
(actualizaciones).
Implementar arquitecturas basadas en Componentes:
Como es de saberse, antes de realizar el desarrollo completo de un
aplicativo, es necesario realizar un modelo a escala del mismo, pues bien,
el RUP ofrece herramientas basadas en los componentes del sistema a
implementar, dando vía al modelamiento seguro del mismo.
Modelar Visualmente el Software:
El RUP permite mostrar en una GUI el modelo de software desarrollado,
permitiendo al desarrollador mostrar errores y poder corregirlos, sin duda, la
interfaz gráfica da vida al sistema y es ella quien me permite realizar
modificaciones.
Verificar la Calidad de Software:
El verificar la calidad del producto realizado, es una práctica que sustenta el
desarrollo del mismo, el RUP, como herramienta colaboradora, ofrece
formas de diseño, implementación, ejecución, entre otras del software,
antes de que éste sea implementado. En pocas palabras, permite realizar
testing al aplicativo.
Controlar los Cambios realizados al Software:
El RUP además de ofrecer herramientas para el desarrollo y análisis,
permite también suministrar recursos que sean ajustables a los posibles
cambios que pueda sufrir el software, ya sea de actualización o innovación
del mismo.
Dirigido por Casos de Uso: –Los casos de uso son los artefactos primarios
para establecer el comportamiento deseado del sistema
Centrado en la Arquitectura: –La arquitectura es utilizada para
conceptualizar, construir, administrar y evolucionar el sistema en desarrollo
Iterativo e Incremental:
–Maneja una serie de entregas ejecutables
–Integra continuamente la arquitectura para producir nuevas versiones
mejoradas
Conceptualmente amplio y diverso
Enfoque orientado a objetos
En evolución continua
Adaptable
Repetible
Permite mediciones:
–Estimación de costos y tiempo, nivel de avance, etc.