Etapas de Ingeniería de Software
Ingeniería de software
Comparte intereses comunes con otras disciplinas de la ingeniería. Al igual que otros campos de la ingeniería, en los que un problema dado (por ejemplo, construir un puente) puede resolverse en una serie de pasos interrelacionados, el proceso de desarrollo de software consta de muchos pasos o fases.
El objetivo principal de la ingeniería de software es desarrollar métodos para grandes sistemas que ayuden a los desarrolladores a obtener software de alta calidad a bajo costo en el menor tiempo posible. Por lo tanto, es necesario desarrollar el software por etapas. Este desarrollo de software en fases a menudo se denomina Software Development Life Cycle (SDLC) o ciclo de vida del software.
El proceso de desarrollo de software consta de diferentes etapas. Las etapas siguen un enfoque de arriba hacia abajo, lo que significa que las etapas toman información de etapas anteriores, agregan funcionalidad y luego producen resultados. Los productos de las diferentes etapas se denominan productos intermedios, productos de trabajo o productos derivados.
Las diversas etapas involucradas en el desarrollo de un sistema de software.
Las etapas del proceso de desarrollo de software se muestran como una comparación con el proceso de construcción de puentes en la tabla.
Superficie Construyendo Puentes y Fases SDLC Correspondientes
Escenario | Arquitecturapuente | Etapa SDLC |
Formule el problema comprendiendo la naturaleza del problema y los requisitos generales. | Sepa dónde se construirá el puente, calcule la cantidad de tráfico que pasará por el puente y sus requisitos dimensionales, como la altura y el ancho, y más. | Análisis de la demanda |
Defina el problema con precisión. | Especifique la ubicación exacta del puente a construir y su tamaño y tipo. | Especificación de requisitos |
Describe detalladamente la solución al problema. | Diseñe el puente, incluyendo detalles como el tipo de material a utilizar, la forma del puente, la cantidad de pilares necesarios y otros detalles técnicos. | Diseño de solución |
Desarrolle el producto. | Construya el puente de acuerdo con el diseño y las especificaciones. | Desarrollo |
Realice pruebas de calidad. | Realice pruebas para asegurarse de que el puente cumpla con los requisitos de diseño y especificaciones y sea seguro para su uso. | Pruebas de calidad |
Implemente el producto. | Abra el puente al tráfico. | Implementación |
Determine la configuración exacta, el tamaño de los cables y las vigas, y cree planos para el puente.
Diseño de software
Implementar
Correspondiente al puente efectivamente construido.
Codificación de software
Examinar
Especifique la carga, la presión, la resistencia y la robustez del puente.
Prueba de software
Mantener
Especifique las reparaciones básicas que se realizarán, como volver a pintar, repavimentar, etc.
Mantenimiento del software
Esta fase comienza con la discusión de las solicitudes realizadas por los usuarios. Estas solicitudes pueden ser para nuevos sistemas o modificaciones a los sistemas existentes. En esta etapa, se determina si los requisitos del usuario se pueden cumplir con la tecnología de hardware y software disponible.
La investigación inicial valida el problema y comprende la necesidad del sistema deseado. Implica determinar si el sistema propuesto es bueno para el negocio y se puede desarrollar dentro del presupuesto especificado.
Además, se considera el factor tiempo que determina la duración del proyecto. Las investigaciones iniciales deben ser rápidas y rentables.
Los resultados de la investigación preliminar determinan si se debe desarrollar un nuevo sistema. La decisión de proceder o no proceder depende de tres restricciones. Estos se enumeran a continuación.
Tecnología: Esta evaluación determina si la tecnología requerida para el sistema propuesto está disponible y, de ser así, cómo se integrará dentro de la organización. Una evaluación de tecnología también determina si los sistemas existentes se pueden actualizar para usar la nueva tecnología y si la organización tiene la experiencia para usar la nueva tecnología.
Tiempo: Esta evaluación determina el tiempo requerido para completar el proyecto. El factor tiempo es un tema importante en el desarrollo de software porque los costos aumentan con el tiempo del proyecto.
Presupuesto: Esta evaluación analiza los aspectos financieros del proyecto. Una evaluación presupuestaria determina si la inversión requerida para implementar el sistema se recuperará en una etapa posterior.
En esta fase se estudia en detalle el problema o requerimiento del software. Estos requisitos definen los procesos que se gestionarán durante el desarrollo del software. Después de analizar las necesidades de los usuarios, se realiza la Especificación de Requisitos de Software (SRS), que es la declaración de requisitos. Después del análisis, comienza la planificación del proyecto, que incluye el desarrollo de planes que describen las actividades que se realizarán durante el desarrollo del proyecto, como un plan de administración de configuración de software, un plan de proyecto y cronograma y un plan de control de calidad.
Además, se identifican los recursos necesarios durante el proyecto.
En esta etapa, los requisitos reciben una forma "definida". El diseño se puede definir como una decisión en términos de eficiencia, flexibilidad y reutilización.
El proceso de estructuración de la información.
El diseño de software es el modelo para implementar los requisitos en un sistema de software.
Cada elemento del modelo de análisis en la fase de análisis proporciona información utilizada para crear modelos de diseño.
La especificación de requisitos para el software, junto con los modelos de datos, funcionales y de comportamiento, proporciona una plataforma para entregar tareas de diseño para lograr la funcionalidad y la calidad deseadas.
Primero, haga un diseño de alto nivel y describa una solución al problema. A continuación, se realiza un diseño detallado para especificar todos los detalles necesarios para que el programador pueda implementar fácilmente el diseño. A continuación se enumeran algunos principios básicos de diseño para una buena práctica de diseño.
El diseño del software debe ser trazable a un modelo de análisis: Dado que un solo elemento de diseño a menudo realiza un seguimiento de varios requisitos, debe haber una manera de realizar un seguimiento de cómo el modelo de diseño satisface los requisitos.
El diseño del software debe demostrar uniformidad y Integración: Se dice que un diseño está unificado si su apariencia en el modelo de diseño es consistente. En la mayoría de los casos, las reglas, los formatos y los estilos están predefinidos para el equipo de diseño antes de que comience el trabajo de diseño.
El diseño del software debe estar estructurado para adaptarse al cambio: El diseño del software debe ser lo suficientemente flexible para adaptarse fácilmente a los cambios. Para lograr flexibilidad, se deben aplicar de manera efectiva conceptos de diseño fundamentales como la abstracción, la elaboración y la modularidad.
El diseño del software debe minimizar los errores conceptuales (semánticos): El equipo de diseño se asegura de que los principales elementos conceptuales del diseño, como las ambigüedades y las incoherencias, se resuelvan por adelantado.
La fase de codificación se puede definir como el proceso de traducir los requisitos del software a un lenguaje de programación utilizando las herramientas disponibles. Escribir código de software eficiente requiere una sólida comprensión de los lenguajes de programación y sus herramientas.
Por lo tanto, es importante elegir un lenguaje de programación apropiado según los requisitos del usuario.
El código del programa es eficiente si hace un uso óptimo de los recursos y contiene la menor cantidad de errores.
Para escribir código de software de manera eficiente y minimizar los errores en un lenguaje de programación, es necesario seguir un estilo de codificación.
Un estilo de codificación consta de varios Directrices de codificación, directrices para implementar construcciones de lenguajes de programación individuales, anotaciones, formatos, etc.
El propósito de usar estas pautas es reducir la complejidad y los errores del programa, y mejorar la comprensión del código fuente.
Un conjunto completo de pautas de codificación que cubren todos los aspectos del desarrollo de código.
Para garantizar que todos los desarrolladores trabajen de manera coordinada (el código fuente debe reflejar un estilo coordinado, como si un desarrollador escribiera todo el código en una sesión), los desarrolladores deben conocer las pautas de codificación antes de que comience un proyecto de software.
Se realizan pruebas de software para garantizar que el software esté libre de errores.
Las pruebas efectivas mejoran la calidad del software.
Para obtener software de alta calidad, las pruebas requieren un análisis exhaustivo del software de manera sistemática.
Cree un plan de prueba para probar el software de manera planificada y sistemática.
Además, se realizan pruebas de software para garantizar que el software produzca la salida correcta.
Esto significa que la salida producida debe realizarse de acuerdo con los requisitos del usuario, de acuerdo con las siguientes reglas y pautas.
Estas reglas y pautas a seguir al realizar las pruebas se conocen como principios de prueba de software y ayudan a realizar las pruebas de manera eficiente y efectiva.
Los principios generalmente seguidos en las pruebas de software se enumeran a continuación.
Defina la salida esperada: Cuando los programas se ejecutan durante las pruebas de software, es posible que no produzcan el resultado esperado. Esto podría deberse a diferentes errores en el software. Por lo tanto, antes de que comience la prueba del software, es necesario definir el resultado esperado.
Revisa cada prueba completamente: La salida de cada prueba debe verificarse minuciosamente para determinar el rendimiento y la funcionalidad del software.
Incluyendo vacío y accidentes caso de prueba para: El software produce una salida correcta cuando se prueba con una entrada exacta o esperada. Sin embargo, si el software recibe una entrada inesperada, puede producir una salida errónea. Por lo tanto, es necesario desarrollar casos de prueba que detecten errores cuando se dan entradas inesperadas y erróneas.
Después de probar el programa modificado para comprobar su actuación: A veces, cuando se realizan ciertas modificaciones en el software, como agregar nuevas funciones, se pueden producir resultados inesperados. Por lo tanto, es necesario probar el software modificado para comprobar que funciona como se esperaba.
Planificar pruebas para encontrar errores: El propósito es encontrar errores en el software. Debe verse como un proceso de localización de errores en lugar de un proceso de prueba de la corrección del software.
Esta fase incluye el conjunto de actividades de ingeniería de software que ocurren después de que el software se entrega al usuario.
El objetivo de esta fase es hacer que el software funcione de acuerdo con los requisitos del usuario y brindar continuidad del servicio.
Para lograr este objetivo, el mantenimiento de software se enfoca en corregir errores, recuperarse de fallas como fallas de hardware o incompatibilidad de hardware y software.
Además, al modificar el código del software y la base de datos utilizada en el software, es conveniente para futuros trabajos de mantenimiento.
Una vez que se desarrolla y entrega el software, es posible que se requieran cambios. A veces, los sistemas de software cambian cuando los requisitos del usuario no se cumplen por completo.
El proceso de mantenimiento de software evalúa, controla e implementa cambios para realizar cambios en un sistema de software. Tenga en cuenta que los cambios en los sistemas de software también pueden ser obligatorios debido a cambios en las regulaciones gubernamentales o políticas organizacionales.
El software se desarrolla utilizando diferentes modelos de procesos de software. Cabe señalar que el mantenimiento de software se aplica a todos los sistemas de software, independientemente del modelo de proceso de software seguido.
Realice el mantenimiento del software para realizar tareas como detectar y corregir errores, admitir mejoras y mejorar el software para satisfacer las necesidades del usuario.
Si quieres conocer otros artículos parecidos a Etapas de Ingeniería de Software puedes visitar la categoría Desarrollo.
Entradas Relacionadas 👇👇