Please enable JavaScript.
Coggle requires JavaScript to display documents.
Modelos de ciclo de vida y procesos del desarrollo de sistemas (Diagrama…
Modelos de ciclo de vida y procesos del desarrollo de sistemas
Pruebas de código
Code reviews
Pair programming
Pull request
Smoke testing
Happy path
Ciclo de vida:star:
Definición:star:
La metodología sistemática con la
que los analistas llevan a cabo el
análisis y diseño de los sistemas de
información
Define la metodología y sus fases, de acuerdo con la cual
los sistemas se desarrollan mejor al utilizar un ciclo específico de
actividades del analista y los usuarios.
Varias actividades de diferentes etapas pueden ocurrir al mismo tiempo.
Es posible que las etapas se repitan en el SDLC.
Diagrama ciclos :star:
1 Identificación de los problemas, oportunidades y objetivos :star:
Determinar si algunas
funciones de las aplicaciones de los sistemas
de información pueden contribuir a que el
negocio alcance sus objetivos
Averiguar lo que la empresa trata de conseguir.
Se requiere que el
analista observe objetivamente lo que
sucede en un negocio.
Actividades :star:
1 Entrevistar a los encargados de coordinar a los usuarios
2 Sintetizar el conocimiento obtenido
3 Estimar el alcance del proyecto y documentar los resultados
El resultado es un informe de viabilidad que incluye una definición del problema y un resumen de los objetivos
2 Determinación de los requerimientos humanos de información
Determinar las necesidades de los usuarios
involucrados
Detalles del sistema actual
¿Quién?
¿Qué?
¿Dónde?
¿Cuándo?
3 Análisis de las necesidades del sistema
Prepara una propuesta de sistemas que sintetiza sus
hallazgos, proporciona un análisis de costo/beneficio de las alternativas y ofrece recomendaciones sobre lo que debe de hacer
4 Diseño del sistema recomendado :star:
Diseña los procedimientos para ayudar a que los usuarios introduzcan los datos con precisión,
Facilita la entrada eficiente de datos al
sistema de información mediante
técnicas adecuadas de diseño de
formularios y pantallas
Incluye el diseño de archivos o
bases de datos
Debe diseñar controles y procedimientos de respaldos que
protejan al sistema y a los datos, y producir paquetes de especificaciones de programa para los programadores.
5 Desarrollo y documentación de software
Diagramas de estructuras, los diagramas de nassi-shneiderman y el pseudocódigo.
La documentación indica a los usuarios cómo deben usar el software y qué deben hacer en caso de que ocurran problemas
6 Prueba y mantenimiento del sistema
Se completa una serie de pruebas para señalar los problemas con datos de muestra y después se utilizan datos reales del sistema actual.
Los planes de prueba se crean en las primeras etapas del SDLC y se refinan a medida que el proyecto progresa.
Impacto del mantenimiento :star:
Implica que tal vez haya que
realizar modificaciones en los
programas de computadora y
mantenerlos actualizados
Tiempo invertido en el mantenimiento
varían desde un 48-60%
Se llevan a cabo de manera rutinaria durante toda su vida útil.
Razones
Corregir errores de software
Mejorar las capacidades del software en respuesta a las necesidades cambiantes de la organización
Con frecuencia los usuarios solicitan características adicionales a
medida que se familiarizan con el sistema computacional y sus
capacidades.
La empresa cambia con el tiempo.
El hardware y el software cambian a un ritmo acelerado
7 Implementación y evaluación del sistema
Se capacita a los usuarios en el manejo del sistema
La supervisión de la capacitación es responsabilidad del analista de sistemas.
Modelos
Cascada :star:
El desarrollo de software se debe realizar siguiendo una secuencia de fases.
Cada etapa tiene un conjunto de metas bien definidas.
Ventajas:star:
Bu en funcionamiento en equipos débiles y productos
maduros, por lo que se requiere de menos capital y herramientas para hacerlo funcionar de manera óptima
Fácil de implementar y entender
Está orientado a documentos.
Conocido y utilizado con frecuencia
Promueve una metodología de trabajo efectiva: Definir antes que
diseñar, diseñar antes que codificar
Desventajas:star:
En la vida real, un proyecto rara vez sigue una secuencia lineal
El proceso de creación del software tarda mucho tiempo ya que debe pasar por el proceso de prueba y hasta que el software no esté completo no se opera.
Cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado,
Una etapa determinada del proyecto no se puede llevar a cabo a menos de que se haya culminado la etapa anterior.
Prototipos evolutivos:star:
Se basa en la creación de una implementación parcial de un sistema, para el propósito explícito de aprender sobre los requerimientos del sistema
Proveen la retroalimentación sobre lo que a ellos les
gustó y no les gustó acerca del prototipo proporcionado, quienes capturan en la documentación actual de la especificación de requerimientos la información entregada por los usuarios para el desarrollo del sistema real.
Ventajas:star:
Es útil cuando el cliente conoce los objetivos generales
para el software
Ofrece un mejor enfoque cuando el responsable del desarrollo
del software está inseguro de la eficacia de un algoritmo, de la
adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina
Reutilización de código
Desventajas:star:
El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final.
A causa de la intención de crear un prototipo de forma rápida, se suelen desatender aspectos importantes, tales como la calidad y el mantenimiento a largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una vez que el prototipo ha cumplido su función.
Incremental :star:
Propuesto por Mills en 1980
Sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema
El modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario
El primer incremento generalmente es un producto esencial denominado núcleo.
El modelo incremental entrega el software en partes pequeños, pero utilizables, llamadas incrementos.
Ventajas
Permite entregar al cliente un producto más rápido en comparación del modelo de cascada.
Resulta más sencillo 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.
Espiral :star:
El modelo en espiral es un tipo de modelo basado en el desarrollo iterativo.
Comienza con la elaboración de los objetivos tanto
funcionales como de rendimiento.
Después se enumeran algunas formas posibles de alcanzar estos objetivos identificando las fuentes de riesgos
posibles.
El siguiente paso es resolver estos riesgos y llevar a cabo las actividades de desarrollo.
Finalmente se planifica el siguiente ciclo de la espiral.
Se representa como una espiral donde cada ciclo en la espiral representa una fase del proceso del software.
Ventajas
El desarrollador y el cliente comprenden y reaccionan mejor ante riesgos en cada uno de los niveles evolutivos.
Permite a quien lo desarrolla aplicar el enfoque de
construcción de prototipos en cualquier etapa de evolución del
producto.
Demanda una consideración directa de los riesgos
técnicos en todas las etapas del proyecto
Desventajas
Resulta difícil convencer a grandes clientes de que el enfoque evolutivo es controlable.
Complejo. no se aconseja utilizarlo en pequeños
sistemas.
Genera mucho tiempo en el desarrollo del sistema
Costoso
Requiere experiencia en detectar riesgos