Ciclo de Vida Del Software
Ciclo de Vida Del Software
Ciclo de Vida Del Software
4
I. CICLO DE VIDA DEL SOFTWARE ............................................................................................................. 5
1.1. PROCESOS DEL CICLO DE VIDA DE UN SOFTWARE ............................................................................. 6
1.2. PARADIGMAS ...................................................................................................................................... 7
1.2.1. Modelo Cascada. .......................................................................................................................... 7
1.2.2. Modelo en Espiral. ....................................................................................................................... 8
DEDICATORIA.
Dedicamos este proyecto a Dios porque ha estado con nosotros a cada paso que
damos, cuidándonos y dándonos fortaleza para continuar, a nuestros padres los
cuales son pilares fundamentales y que a lo largo de nuestras vidas han velado
por nuestro bienestar y educación, siendo nuestros apoyos en todo momento,
depositando su entera confianza en cada reto que se nos presentaba, sin dudar
ni un solo momento en nuestra inteligencia y capacidad, es por ello que ahora
somos lo que somos; y a nuestro profesor porque desde el primer día de clases
nos ha demostrado, su apoyo, amabilidad, respeto, responsabilidad e interés por
brindarnos sus conocimientos de la mejor manera.
AGRADECIMIENTO.
En general, una vez validado que el sistema responde a los principales requisitos
funcionales especificados, el usuario realizará las pruebas de aceptación,
corrigiendo los errores encontrados y tas pasándose al fin del entorno de
producción. Sin embargo, en muy pocas ocasiones se validan de manera rigurosa
los requisitos funcionales y los no funcionales, o se ejecutan validaciones que
aseguren que el sistema es lo suficientemente robusto y estable como para pasar
a un entorno productivo con las garantías adecuadas.
I. CICLO DE VIDA DEL SOFTWARE
El ciclo de vida del desarrollo Software (SDLC en sus siglas inglesas), el término
ciclo de vida del software describe el desarrollo de software, desde la fase inicial
hasta la fase final. El propósito de este programa es definir las distintas fases
intermedias que se requieren para validar el desarrollo de la aplicación, es decir,
para garantizar que el software cumpla los requisitos para la aplicación y
verificación de los procedimientos de desarrollo: se asegura de que los métodos
utilizados son apropiados.
Consta de 5 fases:
Figura 1 : ciclo de vida del software
Fuente: Elaboración propia
Proceso de Adquisición.
Define las actividades del adquiriente, la organización que adquiere un sistema,
producto software o servicio software.
Proceso de Suministro.
Define las actividades del proveedor, organización que proporciona un sistema,
producto software o servicio software al adquiriente.
Proceso de Desarrollo.
Define las actividades del desarrollador, organización que define y desarrolla el
producto software.
Proceso de Operación.
Define las actividades del operador, organización que proporciona el
servicio de operar un sistema informático en su entorno real, para sus
usuarios.
Proceso de Mantenimiento.
Define las actividades del responsable de mantenimiento, organización
que proporciona el servicio de mantenimiento del producto software;
esto es, la gestión de las modificaciones al producto software para
mantenerlo actualizado y operativo. Este proceso incluye la migración y
retirada del producto software.
1.2. PARADIGMAS
Algunos paradigmas de desarrollo de software o modelos de proceso más relevantes
se definen a continuación:
Elaboración propia
1.2.2. Modelo en Espiral.
El modelo espiral en ingeniería del software tiene un enfoque muy distinto
al modelo de cascada, principalmente porque su enfoque va dirigido hacia
el análisis de riesgos. El modelo de ciclo de vida en espiral, consiste en
realizar diversas iteraciones, pasando por cada una de sus fases una y
otra vez. A diferencia de la modelo cascada que no tiene vuelta atrás, en
el modelo en espiral se pueden hacer las iteraciones que se consideren
necesarias y estas son sus fases principales:
Determinación de Objetivos.
Análisis de Riesgos.
Desarrollo y Pruebas.
Planificación.
Evaluar alternativas
Determinar Objetivos, identificar y resolver
alternativas, restricciones riesgos
Acuerdo
REVISIÓN
Desarrollar, verificar
Elaboración propia
1.2.3.
Modelo Iterativo o por Prototipos.
Es uno de los primeros ciclos de vida que permitían que el código fuente
fuera reutilizable, sin embargo, con el modelo iterativo no solo es
utilizable, si no que, para muchos, estos prototipos pueden llegar a ser el
producto final que siempre quisieron, lo cual lo hace realmente relevante
y destacable, por encima del resto de los modelos de antaño que puedas
encontrar.
Básicamente, las fases del ciclo de vida del sistema, son las siguientes:
Inicialización.
Iteración.
Lista de Control.
Elaboración propia
1.2.4.
Figura 5: Modelo V
1.2.5.
Elaboración propia
Modelo Scrum.
El ciclo de vida del sistema, puede agilarse si se utiliza la metodología
Scrum, uno de los modelos del ciclo de vida del desarrollo del software
más populares y más recientes, bueno no tanto, pero si más que los de
antaño. El modelo Scrum, se encuentra basado en lo que es el desarrollo
incremental, es decir, conforme pasen las fases y las iteraciones, mayor
va a ser el tamaño del proyecto que se esté desarrollando, es por eso que
uno de los principales requisitos para llevarlo a cabo, es que tu equipo de
desarrollo sea de calidad. Teniendo una alta calidad en el equipo,
tendremos garantizado un excelente funcionamiento.
Product Backlog.
Sprint Backlog.
Sprint Planning Meeting.
Daily Scrum o Stand-up Meeting.
Sprint Review.
Sprint Retrospective.
Estas son las fases del ciclo de vida del software en esta metodología, el
cuál básicamente consiste en realizar un análisis de los requerimientos
del sistema (Product Backlog), señalar cuáles serán los objetivos a corto
o mediano plazo dentro de un sprint, ósea, la fase de desarrollo.
Posteriormente los desarrolladores harán lo suyo, se realizan algunas
pruebas y se retroalimenta de acuerdo a lo conseguido al terminar la
última fase. Recuerda que aquí, se pueden añadir nuevas cosas en todo
momento, pues el modelo Scrum no se bloquea en ninguna de sus fases.
Entre las ventajas de este modelo del ciclo de vida del software, destaca
el hecho de no tener un orden tal cual, de hecho, todas las fases
comienzan a trabajar a la par, no hay tiempos de espera y básicamente
su objetivo es que los desarrolladores y programadores estén trabajando
todo el tiempo. Si concluyes con las fases del proyecto que te
corresponde, seguramente tendrás que avanzar en fases del nuevo
proyecto que está por venir.
Correcto.
Un ERS es correcto si, y sólo si, cada requisito declarado se
encuentra en el software. No hay ninguna herramienta o
procedimiento que aseguran la exactitud. Alternativamente el
cliente o el usuario pueden determinar si el SRS refleja las
necesidades reales correctamente. Identificando los
requerimientos hace este procedimiento más fácil y hay menos
probabilidad al error.
Inequívoco.
Un SRS es inequívoco si, y sólo si, cada requisito declarado tiene
sólo una interpretación. Como un mínimo, se requiere que cada
característica de la última versión del producto se describa usando
un único término. En casos dónde un término en un contexto
particular tenga significados múltiples, el término debe ser incluido
en un glosario dónde su significado es hecho más específico.
Completo.
Un SRS está completo si, y sólo si, incluye los elementos
siguientes:
Consistente.
La consistencia se refiere a la consistencia interior. Si un SRS no
está de acuerdo con algún documento del superior-nivel, como una
especificación de requisitos de sistema, entonces no es correcto.
Comprobable.
Un SRS es comprobable si, y sólo si, cada requisito declarado es
comprobable. Un requisito es comprobable si, y sólo si, allí existe
algún proceso rentable finito con que una persona o la máquina
puede verificar que el producto del software reúne el requisito. En
general cualquier requisito ambiguo no es comprobable. Los
requisitos de No-verificable incluyen las declaraciones como
"trabaja bien", "interface humana buena" y "normalmente pasará"
no pueden verificarse los requisitos de esos porque es imposible
de definir las condiciones "bueno," "bien" o "normalmente". La
declaración que "el programa nunca entrará en una vuelta infinita"
es el no-verificable porque la comprobación de esta calidad es
teóricamente imposible.
Modificable.
Un SRS es modificable si, y sólo si, su estructura y estilo son tales
que puede hacerse cualquier cambio a los requisitos fácilmente,
completamente y de forma consistente mientras conserva la
estructura y estilo. Para que sea modificable se requiere un SRS
que contenga:
Identificable.
Un SRS es identificable si el origen de cada uno de sus requisitos
está claro y si facilita las referencias de cada requisito en el
desarrollo futuro o documentación del mismo. Lo siguiente que se
recomiendan dos tipos de identificabilidad:
a. El identificable dirigido hacia atrás (es decir, a las fases
anteriores de desarrollo). Esto depende explícitamente en
cada requisito las referencias de su fuente en los
documentos más antiguos.
2.1.3. Prototipos.
Los prototipos frecuentemente se usan durante una fase de los requisitos
de un proyecto. Muchas herramientas existen para generar un prototipo
para exhibir algunas características de un sistema, ser creado muy
rápidamente y fácilmente.
El SRS debe especificar qué funciones serán realizadas, con qué datos,
para producir qué resultados, en qué situación y para quien. El SRS se
debe enfocar en los servicios a ser realizados. El SRS normalmente no
debe especificar los puntos del plan como lo siguiente:
El Costo
Los tiempos de la entrega
Informando los procedimientos
Los métodos de desarrollo de Software
La convicción de Calidad
La Aprobación y criterio de la comprobación Los
procedimientos de aceptación
Políticas de la empresa
Limitaciones del hardware
Interfaces con otras aplicaciones
Operaciones paralelas
Funciones de auditoría
Funciones de control
Lenguaje(s) de programación
Protocolos de comunicación (por ejemplo, XON-XOFF,
ACKNACK).
Requisitos de habilidad
Criticalidad de la aplicación
Consideraciones acerca de la seguridad
Requisitos específicos
Esta sección del SRS debe contener todos los requisitos del
software a un nivel de detalle suficiente para permitirles a los
diseñadores diseñar un sistema para satisfacer esos requisitos, y
a los auditores a probar que el sistema satisface esos requisitos.
Esta es la parte más grande y más importante del SRS, los
principios siguientes aplican:
a. El nombre de artículo.
b. La descripción de propósito.
c. La fuente de entrada o destino de salida.
d. El rango válido, exactitud, y/o tolerancia.
e. Las unidades de medida.
f. Tiempos.
g. Las relaciones a otras entradas/salidas.
h. El formato de pantalla /organización.
i. El formato de ventanas/organización.
j. Los formatos de los datos.
k. Los formatos de los comandos.
l. Fin de mensajes.
Fiabilidad
Esto debe especificar que los factores exigieron establecer la
fiabilidad requerida del sistema del software al momento de la
entrega.
Disponibilidad
Esto debe especificar que los factores exigieron garantizar un
nivel de disponibilidad definido para el sistema como un punto de
control, la recuperación y al iniciar.
Seguridad
Esto debe especificar los factores que protegen el software del
acceso accidental o malévolo, uso, modificación, destrucción o
descubrimiento. Los requisitos específicos en esta área podrían
incluir la necesidad a:
Mantenimiento
Esto debe especificar atributos de software que relaciona a la
facilidad de mantenimiento del propio software. Puede haber
algún requisito con toda seguridad de modularidad, interfaces, la
complejidad, etc. no deben ponerse los requisitos aquí.
Portabilidad
Esto debe especificar atributos de software que relaciona a la
facilidad de poner el software a otro servidor y/o sistemas
operativos. Esto puede incluir a lo siguiente:
Aplicativos utilizados.
En el caso de aplicaciones empresariales donde además de
desarrollar software a la medida se utilizan algunos
programas que ya son comercializados, debemos guardar la
memoria de instalación de los diversos aplicativos que forman
la plataforma.
Componentes de hardware
Se debe guardar registro de la configuración del hardware
sobre el cual se está instalando el aplicativo, debemos
recordar que lo que deseamos es replicar el proceso más
veces, por lo que la omisión de la configuración que tiene el
hardware puede ser crucial para obtener los resultados
esperados.
Procesos.
Tener escritos los procesos con base a estándares permitirá
a las empresas evaluarlos y mejorarlos. Los procesos del
cliente nos sirven para adecuar el producto de software a la
empresa. La empresa que desarrolla el software o que ofrece
servicios de IT puede encontrar un gran apoyo en marcos de
referencia como ITIL.
Las preocupaciones son esos intereses que tienen que ver con el
desarrollo del sistema, su funcionamiento o cualesquiera otros aspectos
que son críticos o de otra manera importante a una o más partes
interesadas. Las preocupaciones incluyen consideraciones del sistema
tales como el rendimiento, la fiabilidad, la seguridad, la distribución y la
capacidad de evolución.
Un punto de vista establece los convenios por los que se crea una vista,
representados y analizados. De esta manera, una vista se ajusta a un
punto de vista. El punto de vista determina los idiomas (incluyendo
anotaciones, modelo o tipo de producto) que se utilizan para describir la
vista, y los métodos de modelado asociados o técnicas de análisis que se
aplicarán a estas representaciones de la vista. Estos lenguajes y técnicas
se utilizan para producir resultados pertinentes a las preocupaciones
abordadas por el punto de vista.
Una descripción arquitectónica selecciona uno o más puntos de vista para
su uso. La selección de los puntos de vista se basa normalmente en la
consideración de los grupos de interés a los que se dirige la AD y sus
preocupaciones. Una definición de punto de vista puede tener su origen
con un AD, o puede haber sido definida en otro lugar (un punto de vista
de la biblioteca).
3.1.2. Propósito.
Según IEEE 1471 una descripción de la arquitectura se puede usar para
lo siguiente:
3.1.3. Terminología.
De acuerdo con el estándar IEEE el glosario de la Terminología de
Ingeniería de Software se utilizan las siguientes definiciones:
Arquitecto.
La persona, equipo u organización responsable del diseño de la
arquitectura de sistemas.
Arquitectura.
La organización fundamental de un sistema encarnada en sus
componentes, sus relaciones entre sí y con el medio ambiente, y
los principios que guían su diseño y evolución.
El Diseño.
Las actividades a definir, documentar, mantener, mejorar y
certificar la correcta aplicación de una arquitectura.
Sistema.
Una colección de componentes organizada para llevar a cabo una
función específica o un conjunto de funciones. El sistema de
expresión abarca las aplicaciones individuales, los sistemas en el
sentido tradicional, subsistemas, sistemas de sistemas, líneas de
productos, familias de productos, empresas integrales y otras
agravaciones de interés.
Vista.
Una representación de todo un sistema desde la perspectiva de
un conjunto relacionado de preocupaciones.
Punto de Vista.
Una especificación de los convenios para la construcción y el uso
de una vista. Un patrón o plantilla desde la que se desarrollan
visitas individuales mediante el establecimiento de los objetivos y
la audiencia para una vista y las técnicas para su creación y
análisis.
3.1.4. Conformidad.
IEEE 1471 define un conjunto de requisitos normativos para las
descripciones de arquitectura conformes, que incluyen lo siguiente:
V. CONCLUSIONES.
El ciclo de vida de software consta de varias etapas, todas ellas
relacionadas entre sí, las cuales permiten el desarrollo de sistemas de
una forma más ordenada y con mejor control, obteniendo al final un
producto de calidad.
VI. RECOMENDACIONES
No confundir el concepto de ciclo de vida de un software con la
metodología de desarrollo de software.
Aprenderse bien que comprende cada fase del ciclo de vida del software.
https://www.fdi.ucm.es/profesor/gmendez/docs/is0809/ieee830.pdf
https://www.ctr.unican.es/asignaturas/is1/IEEE830_esp.pdf
https://datenpdf.com/download/ieee-1471_pdf
https://chae201521701014974.wordpress.com/2015/11/10/estandar-ieee-1471-
2000/ https://es.scribd.com/document/322092689/Estandar-IEEE-Std-1063
https://es.scribd.com/document/256301174/IEEE-1471
https://okhosting.com/blog/el-ciclo-de-vida-del-software/#Modelo_en_el_Espiral
https://www.tutorialspoint.com/es/software_engineering/software_development_
life_cycle.htm