Taller No. 4 Tema: MODELO CICLO DE VIDA DEL SOFTWARE
Taller No. 4 Tema:
MODELO CICLO DE VIDA DEL SOFTWARE
FECHA entrega, enviar antes del 25 de FEBRERO (11:59 pm), no se reciben una hora después.
Objetivo: Conocer los
diferentes ciclos de vida para el desarrollo de software
Integrante:
Nombre:
_Victor Manuel Blanco Mancera_______
código: __1151331_________
Nombre:
__Edward Alfonso Martinez___________
código: _1151330_________
Desarrollo:
- ¿Explique
brevemente (máximo 100 palabras), que es un proceso de software?
En un mundo
de cambios constantes y competencia global, las organizaciones de desarrollo de
software son presionadas a alcanzar mayor eficiencia con menores costos. Para
poder lograr este objetivo, es necesario adoptar una forma de trabajo que
permita entender, controlar, comunicar, mejorar, predecir y certificar el
trabajo realizado.
también es denominado ciclo de vida del desarrollo de software que es una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe un enfoque diferente para diferentes actividades que tienen lugar durante el proceso. Algunos autores consideran un modelo de ciclo de vida un término más general que un determinado proceso para el desarrollo de software.
también es denominado ciclo de vida del desarrollo de software que es una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe un enfoque diferente para diferentes actividades que tienen lugar durante el proceso. Algunos autores consideran un modelo de ciclo de vida un término más general que un determinado proceso para el desarrollo de software.
- ¿La
ISO 12207 como define un proceso? Y cuales procesos se enmarcan
principales, procesos de soporte, procesos organizacionales, procesos de adaptación.
Un proceso
son un conjunto de actividades relacionadas entre si y/o que interactúan
transformando elementos de entrada en elementos de salida.
Los
principales procesos que enmarca la norma ISO 12207 el cual es el estándar para
el proceso de ciclo de vida y lo divide
en tres procesos los cuales define el ciclo de vida del software
a.
Procesos
principales del ciclo de vida:
·
Adquisición:
Define las tareas que tiene que realizar el cliente cuando va a comprar un
software.
·
Suministro:
define las actividades
·
Desarrollo:
Engloba las actividades de análisis, diseño, codificación, integración,
pruebas, instalación y adaptación.
·
Operación:
Incluye la explotación o uso del software y soporte a los usuarios del sistema.
·
Mantenimiento:
Solventar errores o deficiencias que puedan ir surgiendo en la puesta en marcha
del software.
b.
Proceso
de Apoyo de ciclo de vida:
·
Documentación:
desarrollar y mantener documentos para registrar la información producida por
un proceso o actividad.
·
Gestión
de Configuración: Establecer y mantener la integridad de todos los productos de
trabajo de un proceso o proyecto.
·
Aseguramiento
de calidad: Asegurar que los productos de trabajo y los procesos de n proceso o
proyecto estan de acuerdo con sus requisitos especificados y se adhieren a sus
planes establecidos.
·
Verificación:
Confirmar que cada proyecto refleja adecuadamente los requisitos especificados.
·
Validación:
confirmar que se cumplen los requisitos para un uso previsto especifico del
producto de trabajo de software.
·
Revisión
Conjunta: Mantener una comprensión común con el cliente del progreso frente a
los objetivos del contrato y que aseguran el desarrollo de u producto de
software.
·
Auditoria:
Determinar el cumplimiento de los productos de software y procesos
seleccionados con los requisitos, planes y contrato según sea apropiado.
·
Resolución
de Problemas: Asegurar que todos los problemas descubiertos se analizan y
resuelven, además que se identifican.
c.
Proceso
del Ciclo de Vida:
·
Gestión:
Organizar controlar la iniciación y la realización de cualquier procesos o
función dentro de las organizaciones para lograr sus objetivos y los objetivos
de negocio de las organizaciones.
·
Mejora: Establecer, evaluar, medir, controlar y
mejorar un proceso del ciclo de vida de software.
·
Infraestructura:
Pretende establecer, identificar, establecer, coordinar y controlar las actividades,
tareas y recursos necesarios para que un proyecto produzca un producto y/o
Servicio que cumpla requisitos.
·
Formación:
- ¿Qué
entiendes como un ciclo de vida?
Consulta según la norma IEEE 1074
el concepto de ciclo de vida.
La norma
IEEE 1074, entiende por ciclo de vida de un software a: “Una aproximación a la
adquisición, el suministro, el desarrollo, la explotación y el mantenimiento
del Software”. Conviene destacar que tanto la norma IEE1071 y la ISO/IEC 12207
consideran una actividad como un conjunto de tareas y una tarea como una acción
que transforma entradas en salidas.
- De
los ciclos de vida tradicionales (cascada, incremental, espiral,
prototipado, reutilización, evolutivo) y los ciclos de vida para sistemas
Orientado a Objetos (modelo de agrupamiento, modelo fuente, modelo
remolino, modelo pinball) haz una comparación entre ellos, indicando las
fases, bondades y desventajas de estos, UTILIZA la siguiente tabla:
Ciclo de vida
|
Objetivo
|
Fases
|
Ventajas
|
Desventajas
|
Recursos
|
personal
|
Anexo Grafico Al final de la pagina.
- De acuerdo al estudio realizado, cual
seria el mejor proceso para desarrollar software?
Principalmente
depende directamente del tamaño del proyecto, es decir que las metodologías no
son mejores ni peores, ya que cada una se adapta a un proyecto pro sus propias
características, como podemos identificar modelos como el Espiral esta enfocado
a proyectos grandes en comparación con proyectos o de prototipo o evolutivo.
Aunque hoy en día todos los procesos que estén involucrados con metodologías de
desarrollo Ágil, ya que la extensiva colaboración y participación del cliente
ayuda a disminuir el margen de error y la satisfacción del cliente por el
producto final.
II parte:
- ¿Qué
es una Metodología de Desarrollo de Software?
Es un modo sistemático de realizar, gestionar y administrar un proyecto para
llevarlo a cabo
con altas posibilidades de éxito.
También
podríamos decir que son los procesos a seguir sistemáticamente para idear, implementar y mantener un producto software
desde que surge la necesidad
del producto hasta que cumplimos
el objetivo por el cual fue creado.
- ¿Qué
Metodologías existen para el desarrollo de software? Clasifíquelas
CICLO DE VIDA LINEAL:
Descomponer
la actividad global en actividades separadas, que son realizadas de manera
lineal, cada etapa se realiza una sola a la vez, es muy fácil dividir las
etapas y prever los tiempos, cada actividad es independiente, requiere que se
conozca con excesiva rigidez que se conozca lo que va a ser en cada etapa.
Minimiza los errores de codificación y reduce al mínimo la necesidad de
requerir información del cliente
Ventaja: la sencillez de su gestión y
administración tanto económica como temporal
Donde se
usa: proyectos internos de una empresa para programas muy pequeños de abm
(sistemas que realizan altas, bajas y modificaciones sobre un conjunto de
datos).
Si algún
sector pequeño de una empresa necesita llevar un registro de datos acumulativos
sin necesidad d realizar procesos sobre ellos más bien consulta simple. Una
aplicación que se dedique a almacenar datos exclusivamente
Desventaja: no es apto para desarrolladores
que superen mínimamente requerimientos de retroalimentación entre etapas, es
decir muy costoso de retomar una etapa anterior al detectar alguna falla
¿qué es la incertidumbre?
Es la
cantidad necesaria de información para reducir el riesgo posible del software,
cuando se emprende la tarea de desarrollo del software
CICLO DE VIDA CASCADA PURO
admite
iteraciones por lo que no es ni secuencial ni lineal, después de cada etapa se
realiza una o varias revisiones para comprobar si se puede pasar a la
siguiente, poco flexible y con muchas restricciones. solo se puede elegir si se
conoce claramente los requerimientos desde el principio
Ventajas: planificación sencilla, provee un
producto con elevado grado de calidad sin necesidad de personal altamente
calificado
donde se
usa: en proyectos que tienen todos los requerimientos a comienzo, es un modelo
puramente teórico ya que rara vez el usuario conoce todos los requerimientos al
inicio
Desventaja: la necesidad de contar con todos
o la mayoría al inicio del proyecto, y si se comente errores y no se detectan
en la etapa siguiente, es costoso y difícil volver atrás
los
resultados no se verán sino hasta el final de las etapas, por lo que cualquier
error detectado nos trae retrasos y aumenta el costo del desarrollo en función
del tiempo que toma arreglarlos
CICLO DE VIDA EN V
tiene dos
sube etapas de retroalimentación del ciclo de cascada puro entre las etapas de
análisis y mantenimientos y entre las del diseño y debuggin
Ventajas Y Desventajas: igual que las del ciclo anterior,
con el agregado de controles cruzados entre etapas para lograr una mayor
corrección
donde se
usa: en aplicaciones simples (pequeñas transacciones sobre bases de datos)
donde necesitan una confiablidad muy alta. ejemplo una aplicación de
factorización donde es sencilla pero su captura de datos debe ser
extremadamente fiable por lo que puede tener matrices complicadas
CICLO DE VIDA SASHIMI
aparece de
la cascada pura donde no se pueden solapar sus etapas, pero a diferencia se
pueden solapar las etapas, esto en muchos casos suele aumentar su eficiencia y
retroalimentación
Ventajas: ganancia en calidad, falta de
necesidad de documentación, producto de ser asolapada cada etapa
Desventajas: es difícil gestionar el comienzo
y fin de cada etapa debido al solapamiento y los problemas de comunicaron si
aparecen generan inconsistencias en el proyecto
donde se
usa: cuando necesitamos una aplicación para compartir los recursos (cpu,
memoria o espacio de almacenamiento), con otras aplicaciones en un aviente
productivo, el solapamiento de sus etapas nos permitirá jugar en la práctica
jugar con el modelo de 3 capas ahorrando recursos
(¿qué es el
modelo 3 capas? es un modelo de programación para aplicaciones de accesos a
datos en que se busca clasificar la arquitectura en 3 capas, en la capa de
datos solo nos preocupamos por el almacenamiento de estos, en la capa de
negocios situamos todas las transacciones y validaciones, en la capa de
presentación solo encontramos ruinas de visualización e interacción con el
usuario)
CICLO DE VIDA EN CASCADAS DE
SUBPROYECTOS
sigue del
modelo de cascada, cada una de las cascadas se dividen en sube tapas
independientes que se pueden desarrollar en paralelo
Ventaja: se puede tener más gente
trabajando al mismo tiempo
Desventaja: puede surgir dependencia entre las
distintas sube tapas que tenga el proyecto, temporalmente si no es gestionado
de forma correcta
donde se
usa: con todos los anteriores, pero cuidando de administrar muy bien os tiempos
CICLO DE VIDA ITERATIVO:
derivado de
la cascada pura (todos los anteriores) busca reducir el riesgo que surgen de
las necesidades del usuario y el producto final por malos entendidos durante la
etapa solicitud de requerimientos
itera
varias cascadas con las cuales se entrega el producto mejorado al cliente, con
mayores funcionalidades el cliente mismo lo evalúa y lo va corrigiendo,
proponiendo mejoras
donde se
puede usar: donde los requerimientos no estén claros por parte del usuario, por
lo que se hace necesario la presentación de varios prototipos hasta lograr la
satisfacción del cliente. en aplicaciones medianas a grandes en las que el
cliente final no necesite las funcionalidades al inicio, quías una empresa que
debe migrar sus aplicaciones hacia otra arquitectura
CICLO DE VIDA
ORIENTADO OBJETOS
una de las mejores metodologías para desarrollar
software, también es considerada una alternativa para los modelos anteriores.
cada funcionalidad o requerimientos está representado
como un objeto donde cada objeto tiene una serie de propiedades llamadas
atributos (igual que el paradigma orientado a objetos). por otra parte, los
comportamientos de estos objetos lo llamaremos métodos.
modelos muy versátiles tantos para pequeños como grandes
proyectos.
la característica principal de este modelo es la
abstracción de los requerimientos de usuario. es mucho más flexible que los
demás, soportando mucho mejor la incertidumbre que los anteriores.
la abstracción es lo que nos permite analizar y
desarrollar las características esenciales de un objeto, despreocupándonos del
menos relevante.
favorece la
reducción de la complejidad del problema.
en este modelo se utilizan las llamadas fichas crc (clase
responsabilidad colaboración)
con este método se puede programar con cualquier lenguaje
de programación, no tiene que ser obligatoriamente orientado a objetos.
los programas acordes a este método son los programas de
monitoreo de procesos, grandes sistemas transaccionales sobre base de datos
hasta procesamiento por lotes.
CICLO DE VIDA
EN ESPIRAL
este ciclo de vida puede considerarse una variación al
siclo de vida de prototipo.
el modelo se basa en na serie de ciclos repetitivos para
ir ganando madurez en el producto final.
toma los beneficios del sistema incremental y por
prototipos, pero se tiene más en cuenta el concepto de riesgo debido a las
incertidumbres e ignorancia de los requerimientos proporcionados al principio
del proyecto. a medida que el ciclo se cumple se van obteniendo prototipos
sucesivos que van ganando la satisfacción del cliente o usuario.
la fuente de incertidumbre es el usuario o el propio
cliente.
en este modelo existen 4 etapas fundamentales que son
planificación: relevamiento de requerimientos iniciales.
análisis de riesgos: de acuerdo con el relevamiento de
requerimientos decidimos si continuamos con el desarrollo
implementación: desarrollamos un prototipo, si da su
conformidad, termina el proyecto del contrario se incluyen nuevos
requerimientos solicitados por el cliente en la siguiente interacción.
la ventaja de este modelo es que se puede comenzar con un
alto nivel de incertidumbre,
se tiene como ventaja también el bajo riesgo de retraso
en la detección de errores ya que se pueden solucionar en la próxima rama de la
espiral.
una de las desventajas es el costo temporal de cada una
de las vueltas que da el ciclo, la dificulta para evaluar los riesgos y la
continua comunicación con el cliente o la presencia de él.
este modelo sirve para grandes proyectos en donde nos
estén definidos todos los requerimientos desde el comienzo del proyecto.
CICLO DE VIDA
INCREMENTAL
este modelo se basa en ir incrementando las
funcionalidades del programa.
se realiza construyendo por módulos los cuales cumplen
las diferentes funciones del sistema. eso permite ir aumentando gradualmente
las capacidades del software.
Este modelo facilita la tarea de desarrollo permitiendo a
cada miembro del grupo desarrollar un módulo.
Es un tipo de modelo cascada realizando un ciclo al final
en el cual entregamos una nueva versión con una nueva funcionalidad. Este ciclo
permite entregar antes de terminar el proyecto.
Benefician: construir un sistema pequeño siempre es menos
riesgoso que construir un sistema grande.es más fácil relevar los requerimientos
de usuario si se detecta un error solo desechamos la última interacción.
Facilita la labor de desarrollo con la filosofía de divide y vencerás.
este modelo está pensado para cuando el cliente necesite
entregas rápidas. no está pensado para cierto tipo de aplicaciones si no que
está orientado a los usuarios o clientes.
MODELO DE
CICLO DE VIDA EVOLUTIVO
este modelo acepta que los requerimientos del usuario
puedan cambiar en cualquier momento es un modelo muy útil cuando desconocemos
la mayoría de los requerimientos iniciales o estos requerimientos están
incompletos.
se puede utilizar cuando en el negocio existen varios
sectores en los que los requerimientos de un sector pueden modificar los de
otro sector esto quiere decir que los sectores son directamente dependientes de
los demás.
MODELO DE
CICLO DE VIDA DE PROTOTIPOS
en la práctica los prototipos se utilizan para validar
los requerimientos de los usuarios en cualquier ciclo de vida.
cuando no se tiene las especificaciones de forma precisa,
se sale recurrir a definir especificaciones iniciales para hacer un prototipo,
o sea, un producto parcial y provisional.
en este modelo el objetivo es logara un producto
intermedio antes de realizar el producto final para conocer mediante el
prototipo como responderán las funcionalidades previstas para el producto
final.
se utiliza mayoritariamente en desarrollo de productos
con innovaciones importantes o el uso de nuevas tecnologías, por la alta
incertidumbre o la ignorancia sobre el comportamiento, impide iniciar un
proyecto secuencial.
la ventaja de este ciclo se basa en que es el único apto
para desarrollos en los que son se conoce a priori sus especificaciones o
tecnología a utilizar por lo tal es alta mente costoso y difícil de administrar
temporalmente.
- ¿Cuál
sería la tendencia de desarrollo de software en cinco años?
La arquitectura basada en la nube
Hoy en día muchas empresas usan la arquitectura basada en
la nube para ayudarles a gestionar sus activos por Internet. El uso del
cloud supone numerosas ventajas. Por ejemplo, si una web de una
empresa genera una gran cantidad de visitas en un momento muy concreto, la
empresa puede atender a los clientes sin que el servicio se interrumpa ya que
su arquitectura de servidor basada en cloud permite la
distribución del tráfico visitante entre servidores en localizaciones
distintas.
A medida que la arquitectura basada en cloud sigue
desarrollándose y evoluciona, es muy probable que las empresas vayan
encontrando usos novedosos para esta funcionalidad tan útil.
Referencias: Deben adjuntar las referencias bibliográficas
donde tomaron la información (utilizar APA)
Bibliografía
Carrillo, J. L. (10 de
Abril de 2018). www.nueva-iso-9001-2015.com/. Obtenido de
https://www.nueva-iso-9001-2015.com/author/jlcarrillo/: https://www.nueva-iso-9001-2015.com/2018/04/que-es-un-proceso-segun-la-iso-90012015/
(Piattini
Velthuis and Calvo-Manzano Villalon n.d.)Piattini Velthuis, Mario Gerardo, and José Antonio
Calvo-Manzano Villalon. Análisis y Diseño Detallado de Aplicaciones
Informáticas de Gestión. Mexico: Alfaomega,. http://alejandria.ufps.edu.co/descargas/.
Comentarios