Está en la página 1de 49

MODELOS

DESARROLLO DE SOFTWARE

CDIO
METODOLOGIA TRADICIONAL

JULIAN DAVID GONZALEZ


PAULA CAMILA ENRIQUEZ
NICOLÁS RODRÍGUEZ TORRES
LIONSON HARBEY LARGO

INGENIERIA SOFTWARE 1
¿QUE ES UN MODELO?
Un modelo para el desarrollo de software es una
perspectiva de las actividades que ocurren durante
el diseño y el desarrollo del software, se pretende
determinar el orden de las etapas implicadas en el
sistema y los criterios de transición asociadas entre
estas etapas.

Describe las etapas primordiales del


desarrollo de software.

Ayuda a administrar el progreso del desarrollo


y provee un espacio de trabajo para la
definición de un detallado proceso de
desarrollo de software.
RESOLVER PROBLEMAS COMO

Los sistemas no responden a las


expectativas de los usuarios.
Los programas “se caen” con cierta
frecuencia.
Los costes del software son difíciles de
prever y normalmente superan las
estimaciones propuestas con
anterioridad.
La modificación del software es una
tarea difícil y costosa.
MODELO EN
CASCADA
*Qué es?
*Cómo Funciona?
*Fases del desarrolo en cascada

https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/el-modelo-en-cascada/
El desarrollo en cascada (en inglés, Qué es?
waterfall model) es un procedimiento
lineal que se caracteriza por dividir los
procesos de desarrollo en sucesivas
fases de proyecto. Al contrario que en
los modelos iterativos, cada una de
estas fases se ejecuta tan solo una vez.
Los resultados de cada una de las fases
sirven como hipótesis de partida para la
siguiente. El waterfall model se utiliza,
especialmente, en el desarrollo de
software.
Cómo funciona?
El desarrollo del modelo se atribuye al teórico de la informática Winston W. Royce. Sin embargo,
Royce no es el inventor de este modelo. Muy al contrario, en su ensayo de 1970 titulado
Managing the Development of Large Software Systems, el teórico presenta una reflexión crítica
acerca de los procedimientos lineales. A modo de alternativa, Royce presenta un modelo
iterativo incremental en el que cada una de las fases se basa en la anterior y verifica los
resultados de esta.
Royce propone un modelo compuesto por siete fases que se ha de ejecutar en diversas vueltas
(iteraciones):

Requisitos de sistema
Requisitos de software
Análisis
Diseño
Implementación
Prueba
Servicio
Análisis Fases del desarrolo en cascada

Todo proyecto de software comienza con una


fase de análisis que incluye un estudio de
viabilidad y una definición de los requisitos. En
el estudio de viabilidad se evalúan los costes, la
rentabilidad y la factibilidad del proyecto de
software. El estudio de viabilidad da como
resultado un pliego de condiciones (una
descripción general de los requisitos), un plan y
una estimación financiera del proyecto, así
como una propuesta para el cliente, si fuera
necesario.
La fase de diseño sirve para formular
una solución específica en base a las Diseño
exigencias, tareas y estrategias
definidas en la fase anterior. En esta
fase, los desarrolladores de software se
encargan de diseñar la arquitectura de
software, así como un plan de diseño
detallado del mismo, centrándose en
componentes concretos, como
interfaces, entornos de trabajo o
bibliotecas. La fase de diseño da como
resultado un borrador preliminar con
el plan de diseño del software, así
como planes de prueba para los
diferentes componentes.
Implementacion

La arquitectura de software concebida en la fase de


diseño se ejecuta en la fase de implementación, en la
que se incluye la programación del software, la
búsqueda de errores y las pruebas unitarias. En la
fase de implementación, el proyecto de software se
traduce al correspondiente lenguaje de
programación. Los diversos componentes se
desarrollan por separado, se comprueban a través de
las pruebas unitarias y se integran poco a poco en el
producto final. La fase de implementación da como
resultado un producto de software que se comprueba
por primera vez como producto final en la siguiente
fase (prueba alfa).
Prueba
La fase de prueba incluye la integración del
software en el entorno seleccionado. Por norma
general, los productos de software se envían en
primer lugar a los usuarios finales seleccionados
en versión beta (pruebas beta). Las pruebas de
aceptación desarrolladas en la fase de análisis
permiten determinar si el software cumple con
las exigencias definidas con anterioridad.
Aquellos productos de software que superan con
éxito las pruebas beta están listos para su
lanzamiento.
Servicio

Una vez que la fase de prueba ha


concluido con éxito, se autoriza
la aplicación productiva del
software. La última fase del
modelo en cascada incluye la
entrega, el mantenimiento y la
mejora del software.

MODELO EN
ESPIRAL
DESARROLLO DE SOFTWARE
MODELO EN ESPIRAL
HISTORIA

Fue creado y desarrollado por Barry Boehm en


1985 , ingeniero informático
estadounidense,graduado de la Universidad de
Harvard

El modelo en espiral describe el ciclo de vida de un


software por medio de espirales, que se repiten
hasta que se puede entregar el producto
terminado. El desarrollo en espiral también se
conoce como desarrollo o modelo incremental.
ETAPAS DEL MODELO EN ESPIRAL

1 COMUNICACIÓN CON EL CLIENTE


Es el primer acercamiento con el cliente,
se estudia el caso, correspondiendo a las
necesidades del cliente, se definen los
objetivos en mutuo acuerdo

2 PLANIFICACIÓN
Se definen los requerimientos, recursos
y tiempo a utilizar para el desarrollo de
dicho proyecto. Se discuten posibles
alternativas y se especifican las
condiciones marco (sistemas operativos,
entornos y lenguajes de programación).
Incluye la estimación en costo y
cronograma de actividades a realizar en
el ciclo.
ETAPAS DEL MODELO EN ESPIRAL

ANALISIS DE RIESGOS 3

Se valida el diseño del prototipo y se desglosan los posibles


riesgos que conllevará.

En cada ciclo, se realizará un análisis y evaluación de riesgos,


según el estado en el que se encuentre el producto y su
grado de avance. Para ello, se diseñarán los prototipos que
deberán ser validados en el ciclo.

Se validará el prototipo pretendido, acorde a los plazos de


tiempo y presupuesto entregado al cliente.
Dentro de esta etapa, se desglosan diferentes actividades
para clasificar, medir y observar la viabilidad técnica y los
riesgos comerciales, el impacto del cronograma y los costos.
ETAPAS DEL MODELO EN ESPIRAL

INGENIERÍA 4

Los prototipos se amplían y se añaden funcionalidades. El código real es


escrito, probado y migrado a un entorno de prueba varias veces.
A medida que la espiral se desarrolle, el cliente tendrá mejor definidos
los requisitos, por lo que la construcción se irá perfeccionando, desde el
o los prototipos hasta llegar al producto acabado.
CONSTRUCCION Y ENTREGA 5

Mientras la primera versión de la solución esta en producción el


proyecto debe mantenerse en funcionamiento al mismo tiempo que
desarrolla nuevas iteraciones . Instalar la aplicación , pruebas de
experiencia,soporte al usuario o cliente.
EVALUACIÓN DEL CLIENTE 6
Evaluar el prototipo o avance que se haya realizado y da su opinión, junto
con los evaluadores calificados.A partir de estos resultados se comenzará
nuevamente una planificación de una segundo prototipo o requisito más
avanzado, además se volverá a realizar un nuevo análisis de riesgos.
VENTAJAS VS DESVENTAJAS

Es un modelo adaptativo, se puede ur Se puede obtener feedback de los usuarios,


modificando a medida que avanza el proyecto desarrolladores y clientes en las primeras fases
(facilita la coreccion de problemas) del proyecto. Sin embargo, esta estructura
también requiere una gestión que tenga en
cuenta los ciclos del producto y pueda
No requiere una definición completa de los responder rápidamente a los riesgos.
requerimientos del software a desarrollar para
Se genera más documentación al tener fases
comenzar su funcionalidad.
intermedias.
Se requiere la participación continua por
Reduce riesgos del proyecto
parte del cliente
Se requiere alta experiencia en el analisis
de riesgos
Reduce riesgos del proyecto
No es aconsejable utilizarlo en sistemas
pequeños debido a su complejidad
Modelo de prototipos
Pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser
construido en poco tiempo, no se deben utilizar muchos recursos.
Se centra en una representación de aquellos aspectos que serán
visibles para el cliente.Es evaluado por el cliente para una
retroalimentación y se refinan los requisitos. La interacción ocurre
cuando el prototipo se ajusta para satisfacer las necesidades del
cliente. Esto permite al desarrollador entender mejor lo que se debe
hacer y el cliente vea resultados a corto plazo.
Etapas

Comunicación Plan rápido Construcción Evaluación del


del prototipo. prototipo

El ingeniero de software y el Centrado en los aspectos


cliente definen los objetivos, y del software visible al
aquéllos que se desean usuario (interfaz de usuario,
destacar con el prototipo. entradas y salidas).
Ventajas Desventajas

A causa de la intención de crear un prototipo


Es útil cuando se conocen los objetivos
de forma rápida, se suelen desatender
generales, pero no identifica los requisitos de
aspectos tales como la calidad y el
entrada, procesamiento o salida.
mantenimiento.

En aras de desarrollar, suelen tomar algunas


Ofrece un mejor enfoque cuando el
decisiones de implementación poco
desarrolladr está inseguro de la eficacia de un
convenientes (elegir un lenguaje de
algoritmo, o de la forma de interacción
programación incorrecto porque proporcione
humano-máquina
un desarrollo más rápido)

Se puede reutilizar el código

DESARROLLO
RAPIDO DE
APLICACIONES
*Significado *Por qué usar RAD
*Ventajas y Desventajas

SIGNIFICADO

Es un proceso de desarrollo de software,


desarrollado inicialmente por James Martin en
los 80s. El método comprende el desarrollo
interactivo, la construcción de prototipos y el
uso de utilidades CASE (Computer Aided
Software Engineering). Tradicionalmente, el
desarrollo rápido de aplicaciones tiende a
englobar también la usabilidad, utilidad y la
rapidez de ejecución.

http://metodologiarad.weebly.com/
FASES DEL RAD

El RAD en su uso, tiene cinco


fases para su ejecución

Modelado de gestión: el
flujo de información entre las
funciones de gestión se
modela de forma que
responda a las siguientes
preguntas: ¿Qué información
conduce el proceso de
gestión? ¿Qué información se
genera? ¿Quién la genera? ¿A
dónde va la información?
¿Quién la proceso?
FASES DEL RAD

Modelado de datos
El flujo de información definido como
parte de la fase de modelado de gestión se
refina como un conjunto de objetos de
datos necesarios para apoyar la empresa.
Se definen las características (llamadas
atributos) de cada uno de los objetos y las
relaciones entre estos objetos.
FASES DEL RAD

Modelado de proceso

los objetos de datos definidos en la fase


de modelado de datos quedan
transformados para lograr el flujo de
información necesario para
implementar una función de gestión.
Las descripciones del proceso se crean
para añadir, modificar, suprimir, o
recuperar un objeto de datos. Es la
comunicación entre los objetos.
FASES DEL RAD
Generación de aplicaciones
El DRA asume la utilización de técnicas
de cuarta generación. En lugar de crear
software con lenguajes de
programación de tercera generación, el
proceso DRA trabaja para volver a
utilizar componentes de programas ya
existentes (cuando es posible) o a crear
componentes reutilizables (cuando sea
necesario). En todos los casos se
utilizan herramientas automáticas para
facilitar la construcción del software.
FASES DEL RAD

Pruebas de entrega
Como el proceso DRA enfatiza la
reutilización, ya se han
comprobado muchos de los
componentes de los programas.
Esto reduce tiempo de pruebas.
Sin embargo, se deben probar
todos los componentes nuevos y
se deben ejercitar todas las
interfaces a fondo.
RAZONES PARA USAR RAD

Convergir tempranamente en un
diseño aceptable para el cliente y
posible para los desarrolladores.
Limitar la exposición del proyecto a las
fuerzas de cambio.
Ahorrar tiempo de desarrollo,
posiblemente a expensas de dinero o
de calidad del producto.
Ventajas
Comprar puede ahorrar dinero en comparación con construir.
Los entregables pueden ser fácilmente trasladados a otra plataforma.
El desarrollo se realiza a un nivel de abstracción mayor.
Visibilidad temprana.
Mayor flexibilidad.
Menor codificación manual.
Mayor involucramiento de los usuarios.
Posiblemente menos fallas.
Posiblemente menor costo.
Ciclos de desarrollo más pequeños.
Interfaz gráfica estándar.
Desventajas
Comprar puede ser más caro que construir.

Costo de herramientas integradas y equipo necesario.


Progreso más difícil de medir.
Menos eficiente.
Menor precisión científica.
Riesgo de revertirse a las prácticas sin control de antaño.
Más fallas (por síndrome de “codificar a lo bestia”).
Prototipos pueden no escalar, un problema mayúsculo.
Funciones reducidas (por “timeboxing”).
Dependencia en componentes de terceros: funcionalidad de más
o de menos, problemas legales.
MODELO

INCREMENTAL

Historia
Definición
Características
Etapas
Ventajas
Desventajas
HISTORIA

Se atribuye el origen del modelo incremental al trabajo del científico de la


computación Barry Boehm en la década de 1970, quien propone la idea de
dividir el proyecto en partes más pequeñas y manejables en su libro
"Software Engineering Economics"
Algunos mencionan a Harlan Mills como pionero del modelo incremental, sin
embargo, Mills propuso una metodología de desarrollo de software llamada
Programa de Desarrollo de Productos de Software (SPDP), que se basa en el
modelo incremental, por lo que no es correcto afirmar que fue el pionero.
DEFINICIÓN

El modelo incremental es una


metodología de desarrollo de software
que se basa en la entrega incremental
de funcionalidades a lo largo del
tiempo.

Cada incremento se basa en el


incremento anterior y se desarrolla en
colaboración con el cliente.
FASES DEL MODELO INCREMENTAL

Identificación y análisis de
requerimientos del software que se va
1 ANÁLISIS DE
a desarrollar. Se define el alcance del
REQUERIMIENTOS proyecto y se establecen los objetivos
y las expectativas del cliente.
Desarrollo de la arquitectura del
software. Se definen los módulos y
DISEÑO
componentes, y se establecen las 2
interfaces de comunicación entre
ARQUITECTÓNICO
ellos. Desarrollo e implementación del
primer incremento del software, se
realizan pruebas de unidad y se
3 IMPLEMENTACIÓN Y
integra el incremento en el software
PRUEBAS existente. El incremento se somete a
pruebas exhaustivas antes de ser
Evaluación del incremento entregado entregado al cliente.
por parte del cliente, quien EVALUACIÓN Y
proporciona retroalimentación al
RETROALIMENTACIÓN 4
equipo de desarrollo. Se identifican los
problemas y las mejoras necesarias DEL CLIENTE
para el siguiente incremento. Desarrollo e implementación del
siguiente incremento del software,
utilizando la retroalimentación
5 DESARROLLO Y ENTREGA proporcionada por el cliente en la fase
DEL SIGUIENTE anterior. El ciclo de iteraciones se
INCREMENTO repite hasta que se alcanza la versión
final del software.
FASES DEL MODELO INCREMENTAL

Participación
Entrega flexible
Pruebas
iterativa continuas

CARACTERÍSTICAS
Desarrollo
Desarrollo
por partes
modular

Mejora Colaboración
continua con el cliente
ENTREGA INCREMENTAL MAYOR CALIDAD DEL
DE FUNCIONALIDADES SOFTWARE
Se entregan partes del programa una Se mejora la calidad del programa al
por una, lo que permite que el cliente hacer pruebas continuas, lo que resulta
pruebe cada parte por separado y en un programa más confiable y de
detectar errores temprano. mayor calidad para el cliente.

COMUNICACIÓN CONTINUA VENTAJAS MAYOR TRANSPARENCIA


CON EL CLIENTE El cliente puede ver el progreso del
Se trabaja en colaboración con el proyecto y asegurarse de que el
cliente en cada parte del programa, lo equipo está cumpliendo con sus
que permite hacer cambios fácilmente requerimientos.
si el cliente necesita algo diferente.

REDUCCIÓN DE RIESGOS
FLEXIBILIDAD Y
Se reduce el riesgo de errores graves
ADAPTABILIDAD en todo el proyecto.
Es flexible y se puede ajustar el

programa según sea necesario.


REQUIERE UNA PUEDE LLEVAR A UN
PLANIFICACIÓN SOFTWARE POCO
DETALLADA ESTRUCTURADO
Si los incrementos del software se
Para poder utilizar este modelo de desarrollan de forma aislada, puede
resultar en un software poco
DESVENTAJAS
desarrollo de software, es necesario
planificar cada incremento con estructurado y difícil de mantener.
mucho detalle, lo que puede llevar
mucho tiempo y recursos.
PUEDE SER DIFÍFIL
ESTABLECER UNA VISIÓN
PUEDE SER COSTOSO
CLARA DEL PRODUCTO
El uso del modelo incremental puede PUEDE HABER PROBLEMAS FINAL
ser más costoso que otros modelos
de desarrollo de software debido a la
DE COMPATIBILIDAD El modelo incremental puede dificultar
necesidad de pruebas continuas y la el establecimiento de una visión clara
Si no se planifica adecuadamente, pueden
planificación detallada. del producto final, ya que el software se
aparecer problemas de compatibilidad
desarrolla de forma incremental y
entre los distintos incrementos del
puede cambiar en función de las
software, lo que puede dificultar su
necesidades del cliente.
integración y mantenimiento.
METODOLOGIA TRADICIONAL
CDIO
Es un marco educativo que hace hincapié
en los fundamentos de ingeniería
establecidos en el contexto de concebir,
diseñar, implementar y operar sistemas y
productos, se concibió originalmente en el
Instituto Tecnológico de Massachusetts a
fines de la década de 1990 y utiliza
herramientas de aprendizaje activo, como
proyectos grupales y aprendizaje basado
en problemas
Concepcion
En la etapa de concepción, los estudiantes
aprenden a identificar y comprender problemas
del mundo real y las necesidades del usuario.

Los estudiantes también aprenden a definir los


requisitos del sistema y establecer objetivos y
restricciones.

El objetivo de esta etapa es desarrollar


habilidades para pensar de manera crítica y
creativa, y para identificar y definir problemas
complejos.
Diseño
Esta centrada en el diomensionamiento del producto / servicio,
apropiacion de la tecnología para el diseño de bloques
constitutivos
Planos, diagramas esquematicos y algoritmos que describan lo
que será implementado en el caso de desarrollo de software,
diseño y modelado en UML
Se deben contar con habilidades atributos personales y
profesionales como:
Solución de problemas haciendo uso de los conceptos y
habilidades del razonamiento ingenieril.
Experimentación y conducción de investigaciones
Pensamiento sistemico
Implementación
Es la transformación del diseño (modelos y
algoritmos) en un producto,incluyendo la
fabricación del hardware(manufactura), la
codificación del software, su integración, su test y
su validación, Se elaboran o adaptan los
elementos previamente contemplados, o bien, se
trabaja en casos adaptativos, es decir, se adecuan
aplicaciones de código abierto.
Se deben respetar las especificaciones que
recomiendan los respectivos organismos. El World
Wide Web Consortium es la institución que dicta
las normas que debe cumplir un sitio web.
Código fuente: es el escrito en editores de
CODIFICACIÓN texto. Contiene el conjunto de
instrucciones en algún lenguaje de alto
nivel
Durante esta etapa se realiza la
programación; que consiste,en llevar a
código fuente, en el lenguaje de
Código objeto: es el código binario o intermedio
programación elegido, todo lo diseñado resultante de procesar con un compilador el
en la fase anterior. Esta tarea sigue por código fuente. EUPHORIA(intérprete
completo los lineamientos impuestos intermedio),FORTRAN (compilador puro).
en el diseño.
La aparición de algún error funcional Código ejecutable: Constituye archivos binarios
(mala respuesta a los requisitos) que el sistema operativo es capaz de cargarlo en
eventualmente puede llevar a retornar la memoria RAM para proceder a su ejecución
directa. Por lo anterior se dice que el código
a la fase de diseño antes de continuar
ejecutable es directamente «inteligible por la
la codificación.
computadora».
Las características deseables de todo código :

1. Modularidad: que esté dividido en trozos


más pequeños.
2. Corrección: que haga lo que se le pide
realmente.
3. Fácil de leer: para facilitar su desarrollo y
mantenimiento futuro.
4. Eficiencia: que haga un buen uso de los
recursos.
5. Portabilidad: que se pueda implementar en
cualquier equipo.
TESTING Pruebas de aceptación: Verificar si el sistema
funciona según lo previsto.

Pruebas de integración: Se asegura que los


componentes o funciones del software operen
juntos.
Es un proceso para verificar y
validar la funcionalidad de un Pruebas funcionales: Verifica las funciones
programa de software con el escenarios comerciales(pruebas de caja negra).

objetivo de garantizar que el


Pruebas de rendimiento: rendimiento del software en
producto esté libre de defectos. diferentes cargas de trabajo, Se utilizan para evaluar
La intención final es que coincida el rendimiento con carga reales.
con los requisitos esperados es
Pruebas de estrés: Prueba cuánta tensión puede
un proceso paralelo al desarrollo
soportar el sistema antes de que falle
de software.
Herramientas de
prueba de software
Detección de
SELENIUM vulnerabilidades

Pruebas funcionales Load Runner


Multilenguaje
Carga y rendimiento
.Net y Java
Operacion
Los estudiantes implementan el sistema
diseñado y lo hacen funcionar en el mundo real.

Incluye la integración de las distintas partes del


sistema, la realización de pruebas exhaustivas y
la corrección de errores y fallos.

los estudiantes también deben asegurarse de


que el sistema cumpla con las necesidades de
los usuarios finales y que sea sostenible a largo
plazo.

También podría gustarte