Ingeniería del Software: Conceptos Básicos, Ciclos de Vida y Herramientas CASE
Enviado por Programa Chuletas y clasificado en Magisterio
Escrito el en español con un tamaño de 7,92 KB
¿Qué es la ingeniería del software?
La ingeniería es la ciencia de la producción. Aplicación de la ciencia y las matemáticas por la cual las propiedades de la materia y las fuentes de energía de la naturaleza se hacen útiles para la gente.
La ingeniería como actividad humana es la aplicación del conocimiento y los métodos científicos al diseño y la producción de productos complejos.
¿Qué es la ingeniería del software II?
Difiriendo en el producto, todas las ingenierías tienen en común:
- La ciencia de la ingeniería: principios y mecanismos
- Procesos de diseño: fase de conceptualización y una fase de diseño detallado.
- Aspectos de gestión y organización: la tecnología que se produce implica a personas y organizaciones.
- Además, las personas que crean tecnología no suelen trabajar aisladas, sino en equipos y organizaciones.
¿Qué es el software?
Software: es el conjunto completo de programas, procedimientos y documentación relacionada que se asocia con un sistema y especialmente con un sistema de computadora.
En un sentido especifico, software son los programas de computadora: conjunto de instrucciones destinados a que una computadora lleve a cabo una tarea. El software evoluciona: es modificable y flexible.
Su complejidad inherente reside en que:
- El software tiene propensión al cambio.
- El software es invisible.
La ingeniería del software es una aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, la operación y el mantenimiento del software.
- Sigue un plan de manera metódica
- Respeta estándares
- Sus resultados y el propio proceso pueden medirse.
Conceptos básicos
Actividad: proceso que tiene lugar en el tiempo y en el espacio, y en el cual un agente actúa con unos objetivos determinados. Ej actividades de prueba, de obtención de requisitos, documentos.
Artefacto: Algo tangible creado con un propósito practico. Fruto de una actividad, se consideran “elementos de la información”. Ej diagramas de casos de uso, lista de requisitos.
Método: Especificación de una secuencia de acciones orientadas a un propósito determinado.
Metodología: Conjunto de métodos coherentes y relacionados por unos principios comunes.
Especificación: Descripción detallada y precisa de algo existente o de una cierta situación, presente o futura.
Ciclo de vida del software: Evolución del mismo desde el momento de su concepción hasta el momento en que deja de usarse. Modelos de ciclos de vida: ciclo en cascada, en espiral o proceso unificado.
Proceso software: Conjunto de políticas, estructuras organizativas, tecnologías, procedimientos y artefactos que se necesitan para concebir, desarrollar, implantar y mantener un producto software.
Modelo de ciclo de vida en cascada.
Requisitos>Diseño>Construcción>Pruebas>Mantenimiento.
Cascada se caracteriza por su secuencialidad en las fases. El sistema se entrega completo al final del proyecto.
El estado del proyecto es visible en todo momento.
Asume requisitos estables en todo momento.
Los límites entre fases son muy rígidos y se propagan errores.
Es el modelo más antiguo. En este modelo el concepto de fase se mantiene. En los modelos antiguos las actividades no se limitaban a una fase, sino que tenían lugar en varias de ellas avanzando mediante iteraciones.
Ciclo de vida iterativo
Es un proceso de desarrollo de software creado en respuesta a las debilidades del modelo tradicional de cascada.
Este modelo de desarrollo es un conjunto de tareas agrupadas en pequeñas etapas repetitivas(iteraciones). Es uno de los más utilizados ya que se relaciona con estrategias de desarrollo del software y una programación extrema, es empleado en metodologías diversas.
El análisis de cada iteración permite identificar puntos de mejora en cada ciclo. Esas mejoras se pueden incorporar en las iteraciones posteriores.
La gestión de riesgos es más precisa. Al iniciar la planificación se dispone de una visión de los riesgos a los que te enfrentas en cada iteración.
Los procesos cíclicos aportan un margen de flexibilidad extra.
- Ventajas del desarrollo iterativo
- En cada iteración se puede comprobar los avances y el beneficio que reporta.
- El riesgo que se asume es pequeño. Si hay algún impedimento se puede solventar en la siguiente iteración.
- El gap entre lo planeado y lo ejecutado se minimiza con las sucesiones de las pequeñas iteraciones.
- La complejidad del proyecto se diluye en pequeñas partes menos complejas.
- El conocimiento sobre el producto es creciente y progresivo sin tener una visión detallada de cada parte al principio del desarrollo
- Debilidades del desarrollo iterativo
- Implica tener un cliente involucrado durante el desarrollo
- La relación con el cliente debe basarse en principios éticos y una colaboración mutua.
- Infunde responsabilidad en el equipo de desarrollo.
- En el desarrollo del producto puede que los requerimientos previamente definidos y cerrados cambien notablemente.
Ciclo de vida en espiral
Es una combinación del ciclo de vida en cascada y el modelo iterativo.
Las fases por las que pasa cada ciclo de la espiral son:
- Planificación: Se determinan los objetivos y el alcance del ciclo. Con cada iteración se ira incrementado el tamaño del software y su funcionalidad.
- Análisis de riesgo: Se evalúa todo aquello que pueda afectar al proyecto. Para ello, se diseñan los prototipos que deberán ser validados en el ciclo.
- Implementación: Se desarrolla y valida el software, el cual está relacionado y condicionado con el análisis de riesgos anterior.
- Evaluación: Antes de pasar a la siguiente iteración se debe analizar si los riesgos detectados anteriormente ya se solucionaron. Esta fase sirve para determinar el avance del proyecto.
Ventajas:
- Los factores de riesgos son reducidos
- El desarrollo es iterativo y se pueden incorporar funcionalidades progresivamente
Inconvenientes:
- La duración de la ejecución no es concreta
- Fallos en el análisis de riesgos podría influir negativamente a todo el proyecto.
Medición:
La medición es fundamental para la estimación de recursos, coste y esfuerzo, la evaluación del personal o la productividad.
Permite durante la ejecución de un proyecto conocer el estado del mismo para realizar ajustes o mejoras.
La medición de los productos y sus características hacen posible la mejora de su calidad.
Herramientas CASE.
Surgen de la necesidad de automatizar parte de las tareas a realizar.
Una herramienta software es un programa de computadora que ayuda a realizar un determinado proceso o lo automatiza completamente.
Una herramienta CASE es una herramienta software que se utiliza en una o más fases de desarrollo de un producto software para apoyo de alguna tarea específica de ingeniería del software.
- Sus objetivos más comunes: desarrollar, probar, analizar, diseñar o mantener un software o su documentación.
- Facilitan la realización de actividades.
- Sin ellas sería muy difícil recopilar, utilizar y mantener el software.
Integración CASE(I-CASE) es la capacidad que tiene una herramienta CASE para compartir datos y cooperar con otras herramientas.