stringtranslate.com

Ciclo de vida del desarrollo de sistemas

Modelo del ciclo de vida del desarrollo de software, destacando la fase de mantenimiento

En ingeniería de sistemas , sistemas de información e ingeniería de software , el ciclo de vida de desarrollo de sistemas ( SDLC ), también conocido como ciclo de vida de desarrollo de aplicaciones , es un proceso para planificar, crear, probar e implementar un sistema de información . [1] El concepto SDLC se aplica a una variedad de configuraciones de hardware y software, ya que un sistema puede estar compuesto solo de hardware, solo software o una combinación de ambos. [2] Por lo general, hay seis etapas en este ciclo: análisis de requisitos, diseño, desarrollo y prueba, implementación, documentación y evaluación.

"Una organización de desarrollo de software sigue un proceso al desarrollar un producto de software en una organización madura , que está bien definido y gestionado. En el ciclo de vida del desarrollo de software, desarrollamos el software de manera sistemática y disciplinada ".

Descripción general

Un ciclo de vida de desarrollo de sistemas se compone de distintas fases de trabajo que utilizan los ingenieros de sistemas y los desarrolladores de sistemas para entregar sistemas de información . Como cualquier cosa que se fabrica en una línea de montaje, un SDLC tiene como objetivo producir sistemas de alta calidad que cumplan o superen las expectativas, en función de los requisitos, mediante la entrega de sistemas dentro de los plazos programados y las estimaciones de costos. [3] Los sistemas informáticos son complejos y a menudo vinculan componentes con orígenes variados. Se han creado varias metodologías SDLC, como cascada , espiral , ágil , creación rápida de prototipos , incremental y sincronizar y estabilizar. [4]

Las metodologías SDLC encajan dentro de un espectro de flexibilidad que va desde ágiles a iterativas y secuenciales. Las metodologías ágiles, como XP y Scrum , se centran en procesos ligeros que permiten cambios rápidos. [5] Las metodologías iterativas , como Rational Unified Process y el método de desarrollo de sistemas dinámicos , se centran en estabilizar el alcance del proyecto y expandir o mejorar iterativamente los productos. Los modelos secuenciales o de gran diseño por adelantado (BDUF), como la cascada, se centran en la planificación completa y correcta para guiar proyectos más grandes y limitar los riesgos a resultados exitosos y predecibles. [6] El desarrollo anamórfico está guiado por el alcance del proyecto y las iteraciones adaptativas.

En la gestión de proyectos, un proyecto puede incluir tanto un ciclo de vida del proyecto (PLC) como un ciclo de vida de desarrollo de sistemas (SDLC), durante los cuales se llevan a cabo actividades algo diferentes. Según Taylor (2004), "el ciclo de vida del proyecto abarca todas las actividades del proyecto , mientras que el ciclo de vida del desarrollo de sistemas se centra en la realización de los requisitos del producto ". [7]

El SDLC no es una metodología en sí, sino más bien una descripción de las fases que debe abordar una metodología. La lista de fases no es definitiva, pero normalmente incluye planificación, análisis, diseño, construcción, prueba, implementación y mantenimiento/soporte. En el marco de Scrum, [8] por ejemplo, se podría decir que una sola historia de usuario pasa por todas las fases del SDLC en un sprint de dos semanas. Por el contrario, la metodología en cascada, donde cada requisito empresarial [ cita requerida ] se traduce en descripciones de características/funciones que luego se implementan generalmente en un período de meses o más. [ cita requerida ]

Historia

Según Elliott (2004), el SDLC "se originó en la década de 1960, para desarrollar sistemas empresariales funcionales a gran escala en una era de conglomerados empresariales a gran escala . Las actividades de los sistemas de información giraban en torno a rutinas intensivas de procesamiento de datos y de análisis numérico ". [9]

El método de análisis y diseño de sistemas estructurados (SSADM) fue creado para la Oficina de Comercio Gubernamental del gobierno del Reino Unido en la década de 1980. Desde entonces, según Elliott (2004), "los enfoques tradicionales del ciclo de vida para el desarrollo de sistemas han sido reemplazados cada vez más por enfoques y marcos alternativos, que intentaron superar algunas de las deficiencias inherentes del SDLC tradicional". [9]

Modelos

Una versión de diez fases del ciclo de vida del desarrollo de sistemas [10]

El SDLC proporciona un conjunto de fases/pasos/actividades que los diseñadores y desarrolladores de sistemas deben seguir. Cada fase se basa en los resultados de la anterior. [10] [11] [12] [13] No todos los proyectos requieren que las fases sean secuenciales. En el caso de proyectos más pequeños y sencillos, las fases pueden combinarse o superponerse. [10]

Cascada

El modelo más antiguo y conocido es el modelo de cascada , que utiliza una secuencia lineal de pasos. [11] El modelo de cascada tiene diferentes variedades. Una variedad es la siguiente: [10] [11] [14] [15]

Análisis preliminar

Realizar un análisis preliminar, considerar alternativas de solución, estimar costos y beneficios y presentar un plan preliminar con recomendaciones.

  • Realizar un análisis preliminar: identificar los objetivos de la organización y definir la naturaleza y el alcance del proyecto. Asegurarse de que el proyecto se ajusta a los objetivos.
  • Considere soluciones alternativas: Las alternativas pueden surgir de entrevistas a empleados, clientes, proveedores y consultores, así como del análisis competitivo.
  • Análisis costo-beneficio: Analizar los costos y beneficios del proyecto.

Análisis de sistemas, definición de requerimientos

Descomponer los objetivos del proyecto [ aclaración necesaria ] en funciones y operaciones definidas. Esto implica reunir e interpretar datos, diagnosticar problemas y recomendar cambios. Analizar las necesidades de información del usuario final y resolver inconsistencias e incompletitud: [16]

  • Recopilar datos: obtener los requisitos del usuario final mediante la revisión de documentos, entrevistas con clientes, observación y cuestionarios.
  • Examinar los sistemas existentes: identificar pros y contras.
  • Analizar el sistema propuesto: encontrar soluciones a los problemas y preparar especificaciones, incorporando propuestas adecuadas de los usuarios.

Diseño de sistemas

En este paso, se detallan las características y operaciones deseadas, incluidos diseños de pantalla, reglas de negocio , diagramas de procesos , pseudocódigo y otros entregables.

Desarrollo

Escribe el código.

Integración y pruebas

Ensamble los módulos en un entorno de prueba. Verifique errores, fallos y compatibilidad.

Aceptación, instalación, despliegue

Poner el sistema en producción. Esto puede implicar capacitar a los usuarios, implementar hardware y cargar información del sistema anterior.

Mantenimiento

Monitorear el sistema para evaluar su estado actual y hacer cambios y correcciones modestos según sea necesario para mantener la calidad del sistema. El monitoreo y las actualizaciones constantes garantizan que el sistema siga siendo eficaz y de alta calidad. [17]

Evaluación

Se revisan el sistema y el proceso. Entre las preguntas relevantes se encuentran si el sistema recientemente implementado cumple con los requisitos y logra los objetivos del proyecto, si el sistema es utilizable, confiable/disponible, está correctamente dimensionado y es tolerante a fallas. Las verificaciones del proceso incluyen la revisión de los plazos y los gastos, así como la aceptación del usuario.

Desecho

Al final de su vida útil, se desarrollan planes para discontinuar el sistema y realizar la transición a su reemplazo. La información y la infraestructura relacionadas deben reutilizarse, archivarse, descartarse o destruirse, al tiempo que se protege adecuadamente la seguridad. [18]

En el siguiente diagrama, estas etapas se dividen en diez pasos, desde la definición hasta la creación y modificación de los productos de trabajo de TI:

Análisis y diseño de sistemas

El análisis y diseño de sistemas (SAD) puede considerarse una actividad de metadesarrollo que sirve para establecer el escenario y delimitar el problema. El SAD puede ayudar a equilibrar los requisitos de alto nivel que compiten entre sí. El SAD interactúa con la arquitectura empresarial distribuida, la arquitectura de TI empresarial y la arquitectura empresarial, y se basa en gran medida en conceptos como particionamiento, interfaces, personas y roles, y modelado de implementación/operación para llegar a una descripción de alto nivel del sistema. Esta descripción de alto nivel luego se desglosa en los componentes y módulos que se pueden analizar, diseñar y construir por separado e integrar para lograr el objetivo empresarial. El SDLC y el SAD son piedras angulares de la planificación de productos y sistemas durante todo el ciclo de vida.

Análisis y diseño orientado a objetos

El análisis y diseño orientado a objetos (OOAD) es el proceso de analizar un dominio de problemas para desarrollar un modelo conceptual que luego se pueda utilizar para guiar el desarrollo. Durante la fase de análisis, un programador desarrolla requisitos escritos y un documento de visión formal mediante entrevistas con las partes interesadas.

El modelo conceptual que resulta del OOAD generalmente consta de casos de uso y diagramas de clases e interacciones . También puede incluir una maqueta de la interfaz de usuario .

No es necesario que un artefacto de salida esté completamente definido para que sirva como entrada del diseño orientado a objetos; el análisis y el diseño pueden realizarse en paralelo. En la práctica, los resultados de una actividad pueden alimentar a la otra en un proceso iterativo.

Algunos artefactos de entrada típicos para OOAD:

Ciclo de vida del sistema

El ciclo de vida del sistema es una visión de un sistema o sistema propuesto que aborda todas las fases de su existencia, incluyendo la concepción, el diseño y el desarrollo, la producción y/o construcción, la distribución, la operación, el mantenimiento y el soporte, el retiro, la eliminación progresiva y la disposición. [19]

Diseño conceptual

La etapa de diseño conceptual es la etapa en la que se examina una necesidad identificada, se definen los requisitos para las posibles soluciones, se evalúan las posibles soluciones y se desarrolla una especificación del sistema. La especificación del sistema representa los requisitos técnicos que proporcionarán una guía general para el diseño del sistema. Debido a que este documento determina todo el desarrollo futuro, la etapa no se puede completar hasta que una revisión del diseño conceptual haya determinado que la especificación del sistema aborda adecuadamente la necesidad motivadora.

Los pasos clave dentro de la etapa de diseño conceptual incluyen:

Diseño preliminar del sistema

Durante esta etapa del ciclo de vida del sistema, se diseñan y especifican los subsistemas que realizan las funciones deseadas del sistema de acuerdo con la especificación del sistema. Se definen las interfaces entre los subsistemas, así como los requisitos generales de prueba y evaluación. [20] Al finalizar esta etapa, se produce una especificación de desarrollo que es suficiente para realizar el diseño y desarrollo detallados.

Los pasos clave dentro de la etapa de diseño preliminar incluyen:

Por ejemplo, como analista de sistemas de Viti Bank, se le ha encomendado examinar el sistema de información actual. Viti Bank es un banco de rápido crecimiento en Fiji . Los clientes de las zonas rurales remotas tienen dificultades para acceder a los servicios bancarios. Les lleva días o incluso semanas viajar a un lugar para acceder a los servicios bancarios. Con la visión de satisfacer las necesidades de los clientes, el banco ha solicitado sus servicios para examinar el sistema actual y proponer soluciones o recomendaciones sobre cómo se puede proporcionar el sistema actual para satisfacer sus necesidades.

Diseño y desarrollo de detalle

Esta etapa incluye el desarrollo de diseños detallados que convierten el trabajo de diseño inicial en una forma completa de especificaciones. Este trabajo incluye la especificación de las interfaces entre el sistema y su entorno previsto, y una evaluación integral de los requisitos logísticos, de mantenimiento y de soporte del sistema. El diseño y desarrollo detallados son responsables de producir las especificaciones del producto, el proceso y el material y pueden dar lugar a cambios sustanciales en la especificación de desarrollo.

Los pasos clave dentro de la etapa de diseño y desarrollo detallado incluyen:

Producción y construcción

Durante la etapa de producción y/o construcción, el producto se construye o ensambla de acuerdo con los requisitos especificados en las especificaciones del producto, el proceso y el material, y se implementa y prueba dentro del entorno operativo objetivo. Se realizan evaluaciones del sistema para corregir deficiencias y adaptar el sistema para una mejora continua.

Los pasos clave dentro de la etapa de construcción del producto incluyen:

Utilización y soporte

Una vez completamente implementado, el sistema se utiliza para la función operativa prevista y se mantiene dentro de su entorno operativo.

Los pasos clave dentro de la etapa de utilización y soporte incluyen:

Eliminación progresiva y disposición final

La eficacia y eficiencia del sistema deben evaluarse continuamente para determinar cuándo el producto ha cumplido su ciclo de vida efectivo máximo. [21] Las consideraciones incluyen: la existencia continua de la necesidad operativa, la correspondencia entre los requisitos operativos y el rendimiento del sistema, la viabilidad de la eliminación gradual del sistema frente al mantenimiento y la disponibilidad de sistemas alternativos.

Fases

Investigación del sistema

Durante este paso, se consideran las prioridades actuales que se verían afectadas y cómo se deben abordar. Un estudio de viabilidad determina si es adecuado crear un sistema nuevo o mejorado. Esto ayuda a estimar los costos, los beneficios, los requisitos de recursos y las necesidades específicas de los usuarios.

El estudio de viabilidad debe abordar cuestiones operativas , financieras , técnicas , de factores humanos y legales/políticas .

Análisis

El objetivo del análisis es determinar dónde está el problema. Este paso implica descomponer el sistema en partes, analizar los objetivos del proyecto, desglosar lo que se debe crear e involucrar a los usuarios para definir los requisitos.

Diseño

En el diseño de sistemas , las funciones y operaciones se describen en detalle, incluidos los diseños de pantalla, las reglas de negocio, los diagramas de procesos y otra documentación. El diseño modular reduce la complejidad y permite que los resultados describan el sistema como una colección de subsistemas.

La etapa de diseño toma como entrada los requisitos ya definidos. Para cada requisito se produce un conjunto de elementos de diseño.

Los documentos de diseño suelen incluir diagramas de jerarquía funcional, diseños de pantalla, reglas de negocio, diagramas de procesos, pseudocódigo y un modelo de datos completo con un diccionario de datos . Estos elementos describen el sistema con suficiente detalle para que los desarrolladores e ingenieros puedan desarrollarlo y entregarlo con un mínimo de aportes adicionales.

Pruebas

El código se prueba en varios niveles en las pruebas de software . Por lo general, se realizan pruebas unitarias, de sistema y de aceptación del usuario. Se han adoptado muchos enfoques para realizar pruebas.

Los siguientes tipos de pruebas pueden ser relevantes:

Formación y transición

Una vez que se ha estabilizado un sistema mediante pruebas, el ciclo de vida del desarrollo de software garantiza que se prepare y se lleve a cabo la capacitación adecuada antes de realizar la transición del sistema al personal de soporte y a los usuarios finales. La capacitación generalmente incluye la capacitación operativa para el personal de soporte, así como la capacitación para los usuarios finales.

Después de la capacitación, los ingenieros de sistemas y los desarrolladores trasladan el sistema a su entorno de producción.

Operaciones y mantenimiento

El mantenimiento incluye cambios, correcciones y mejoras.

Evaluación

La fase final del SDLC es medir la eficacia del sistema y evaluar posibles mejoras.

Ciclo vital

Gestión y control

Fases del SDLC relacionadas con los controles de gestión [22]

En esta sección se describen los objetivos de la fase del SDLC, junto con los resultados clave, una descripción de las tareas recomendadas y un resumen de los objetivos de control relacionados para una gestión eficaz. Es fundamental que el director de proyectos establezca y controle los objetivos de control durante la ejecución de los proyectos. Los objetivos de control son declaraciones claras del resultado o propósito deseado y deben definirse y controlarse durante todo el proyecto. Los objetivos de control se pueden agrupar en categorías principales (dominios) y se relacionan con las fases del SDLC, como se muestra en la figura. [22]

Para gestionar y controlar una iniciativa importante del ciclo de vida del desarrollo de software (SDLC), una estructura de desglose del trabajo (EDT) captura y programa el trabajo. La EDT y todo el material programático deben guardarse en la sección "descripción del proyecto" del cuaderno de proyectos. [ Aclaración necesaria ] El director del proyecto elige un formato de EDT que describa mejor el proyecto.

El diagrama muestra que la cobertura abarca numerosas fases del SDLC, pero el MCD (dominios de control de gestión) asociado muestra asignaciones a las fases del SDLC. Por ejemplo, el análisis y el diseño se realizan principalmente como parte del dominio de adquisición e implementación, y la creación y el prototipo del sistema se realizan principalmente como parte de la entrega y el soporte. [22]

Organización estructurada de desglose del trabajo

Estructura de desglose del trabajo [22]

La sección superior de la EDT proporciona una descripción general del alcance y el cronograma del proyecto. También debe resumir las principales fases e hitos. La sección central se basa en las fases del SDLC. Los elementos de la EDT consisten en hitos y tareas a completar en lugar de actividades a realizar y tienen una fecha límite. Cada tarea tiene un resultado medible (por ejemplo, un documento de análisis). Una tarea de la EDT puede depender de una o más actividades (por ejemplo, codificación). Las partes del proyecto que necesitan el apoyo de los contratistas deben tener una declaración de trabajo (SOW). El desarrollo de una SOW no ocurre durante una fase específica del SDLC, sino que se desarrolla para incluir el trabajo del proceso SDLC que pueden realizar los contratistas. [22]

Líneas de base

Las líneas de base [ aclaración necesaria ] se establecen después de cuatro de las cinco fases del SDLC y son fundamentales para la naturaleza iterativa del modelo. [23] Las líneas de base se convierten en hitos.

Metodologías alternativas

Los métodos de desarrollo de software alternativos al ciclo de vida del desarrollo de sistemas son:

Fortalezas y debilidades

Básicamente, el ciclo de vida del desarrollo de software intercambia flexibilidad por control al imponer una estructura. Se utiliza más comúnmente para proyectos de gran escala con muchos desarrolladores.

Véase también

Referencias

  1. ^ SELECCIÓN DE UN ENFOQUE DE DESARROLLO. Consultado el 17 de julio de 2014.
  2. ^ Parag C. Pendharkara; James A. Rodgerb; Girish H. Subramanian (noviembre de 2008). "Un estudio empírico de las propiedades de la función de producción Cobb-Douglas del esfuerzo de desarrollo de software". Tecnología de la información y el software . 50 (12): 1181–1188. doi :10.1016/j.infsof.2007.10.019.
  3. ^ "Ciclo de vida del desarrollo de sistemas desde". FOLDOC . Consultado el 14 de junio de 2013 .
  4. ^ "Ciclo de vida del desarrollo de software (SDLC)".
  5. ^ "Descripción general del SDLC: modelos y metodologías" . Consultado el 12 de diciembre de 2021 .
  6. ^ Arden, Trevor (1991). Aplicaciones de la tecnología de la información . Londres: Pitman. ISBN 978-0-273-03470-4.
  7. ^ Taylor, James (2004). Gestión de proyectos de tecnología de la información . p. 39.
  8. ^ "¿Qué es Scrum?". 24 de diciembre de 2019.
  9. ^ de Geoffrey Elliott (2004) Tecnología de la información empresarial global . p.87.
  10. ^ abcd Departamento de Justicia de Estados Unidos (2003). GESTIÓN DE RECURSOS DE INFORMACIÓN Capítulo 1. Introducción.
  11. ^ abc Everatt, GD; McLeod, R Jr (2007). "Capítulo 2: El ciclo de vida del desarrollo de software". Pruebas de software: pruebas a lo largo de todo el ciclo de vida del desarrollo de software . John Wiley & Sons. págs. 29–58. ISBN 9780470146347.
  12. ^ Unhelkar, B. (2016). El arte de la práctica ágil: un enfoque compuesto para proyectos y organizaciones. CRC Press. pp. 56–59. ISBN 9781439851197.
  13. ^ Land, SK ; Smith, DB; Walz, JW (2012). Soporte práctico para la definición de procesos de software Lean Six Sigma: uso de estándares de ingeniería de software IEEE. John Wiley & Sons. págs. 341–3. ISBN 9780470289952.
  14. ^ Kay, Russell (14 de mayo de 2002). "QuickStudy: Ciclo de vida del desarrollo del sistema". ComputerWorld .
  15. ^ Taylor, GD (2008). Introducción a la ingeniería logística. CRC Press. pp. 12.6–12.18. ISBN 9781420088571.
  16. ^ "Capítulo 5". Control y auditoría de sistemas de información (PDF) . Instituto de Contadores Públicos de la India. Agosto de 2013. pág. 5.28.
  17. ^ Shah, Kazim. "La fase de mantenimiento del ciclo de vida del desarrollo de software". primetechnologiesglobal . kazim shah . Consultado el 12 de mayo de 2024 .
  18. ^ Radack, S. (sin fecha). "El ciclo de vida del desarrollo del sistema (SDLC)" (PDF) . Instituto Nacional de Estándares y Tecnología.
  19. ^ Blanchard y Fabrycky (2006). Ingeniería y análisis de sistemas, cuarta edición . Prentice Hall. pág. 19.
  20. ^ Dr. Joahn Gouws (2007). Introducción a la ingeniería, Ingeniería de sistemas . Melikon Pty Ltd.
  21. ^ Cunningham, James. "HERC Maintenance". Fargo . XXI (North Avenue): 49. Archivado desde el original el 21 de enero de 2013 . Consultado el 13 de mayo de 2009 .
  22. ^ abcde Cámara de Representantes de Estados Unidos (1999). Política del ciclo de vida del desarrollo de sistemas. p. 13. Archivado el 19 de octubre de 2013 en Wayback Machine.
  23. ^ Blanchard, BS, y Fabrycky, WJ (2006) Ingeniería y análisis de sistemas (4.ª ed.) Nueva Jersey: Prentice Hall. p.31
  24. ^ ab Post, G., y Anderson, D., (2006). Sistemas de información gerencial: Solución de problemas empresariales con tecnología de la información . (4.ª ed.). Nueva York: McGraw-Hill Irwin.

Lectura adicional

Enlaces externos