: 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: 

  1. ¿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.

  1. ¿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:



  1. ¿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.


  1. 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



VER TABLAS ..............TABLAS PUNTO 4



  1.  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: 

  1. ¿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.

  1. ¿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.







  1. ¿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/.



                                       Volver........







No hay comentarios:

Publicar un comentario