Ingeniería de Software: ciclo de vida, metodologías y conceptos básicos

InformáticaActualizado el 4,36 KB

Resumen

El documento presenta los conceptos fundamentales del software, su clasificación por función y licencia, y los niveles de lenguaje y formas de ejecución (compilados, interpretados y Java). También describe metodologías de gestión como Kanban y Scrum, los modelos de desarrollo y las fases del ciclo de vida del software, desde el análisis hasta el mantenimiento.

Puntos clave

  • El software es el conjunto de programas, procedimientos, reglas, documentación y datos de un sistema de computación.
  • Los lenguajes se dividen en bajo nivel (máquina y ensamblador) y alto nivel (Java, Python, C++).
  • Los lenguajes compilados traducen todo el código antes de ejecutarlo; los interpretados lo traducen y ejecutan línea a línea.
  • Kanban visualiza el flujo de trabajo con tres columnas: To Do, Doing y Done, y limita el trabajo en proceso (WIP).
  • Scrum organiza el trabajo en Sprints de 1 a 4 semanas con los roles Product Owner, Scrum Master y Team.
  • Las fases del ciclo de vida son análisis, diseño, codificación, pruebas, explotación y mantenimiento.

Ponte a prueba

Conceptos Fundamentales de Software

El Software es el conjunto de programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.

Clasificación por Función

  • Sistema: Permite que el ordenador funcione (SO, drivers).
  • Aplicación: Tareas específicas (ofimática, navegadores).
  • Desarrollo: Herramientas para escribir código (editores, compiladores, IDEs).

Licenciamiento

  • Software Propietario: Comercializado bajo licencia; se prohíbe su copia o distribución.
  • Software Libre: Permite usar, estudiar, modificar y distribuir el código.

Niveles de Abstracción y Ejecución

Niveles de Lenguaje

  • Bajo nivel: Lenguaje máquina (bits 0 y 1) o lenguaje ensamblador (usa mnemotécnicos).
  • Alto nivel: Cercano al lenguaje humano e independiente de la arquitectura (Java, Python, C++).

Formas de Ejecución

  • Compilados: Un software (compilador) traduce todo el código fuente globalmente de una sola vez y genera un archivo objeto. Son más rápidos de ejecutar (ej. C, C++, Rust).
  • Interpretados: Un programa (intérprete) traduce y ejecuta el código instrucción a instrucción, línea a línea, en tiempo real. Son más lentos pero más portables (ej. Python, JavaScript).
  • Java: El código fuente se compila a un código intermedio llamado bytecode y luego este se interpreta mediante la Máquina Virtual de Java.

Propósito y Paradigmas

  • Propósito general: Sirven para cualquier programa (Java, C++, Python).
  • Propósito específico: Diseñados para un área concreta (SQL para bases de datos, MATLAB).
  • Paradigmas: Estructurados (secuencias, selecciones e iteraciones), Modulares (módulos reutilizables) u Orientados a Objetos (POO) (objetos que colaboran entre sí).

Metodologías de Gestión de Proyectos

Kanban

Visualiza el flujo de trabajo para detectar cuellos de botella y solucionarlos. La Pizarra Kanban consta de 3 columnas: To Do (Por hacer), Doing (Haciendo) y Done (Hecho).

  • Limitar el trabajo en proceso (WIP): Fuerza al equipo a terminar una tarea antes de empezar la siguiente.
  • Reglas explícitas: El proceso debe ser visible para todos.

Scrum

Se basa en bloques de tiempo fijos llamados Sprints (1 a 4 semanas). Roles obligatorios: Product Owner, Scrum Master y el Team.

Modelos de Desarrollo

  • Modelo en Cascada (Clásico o Lineal): Fases ejecutadas de manera estrictamente secuencial.
  • Modelo en V: Asocia fases de desarrollo con fases de verificación o pruebas.
  • Metodologías Ágiles: Centradas en la entrega de valor continua mediante ciclos adaptativos y retroalimentación rápida.

Fases del Ciclo de Vida del Software

  1. Análisis: Comunicación con el cliente para recopilar necesidades. Se divide en Requerimientos Funcionales y No Funcionales. Se plasma en el documento ERS.
  2. Diseño: Se analiza el ERS para describir la estructura interna. Resultado: documento SDD.
  3. Codificación: Conversión del diseño en un sistema real. Estados del código: Fuente, Objeto y Ejecutable.
  4. Pruebas: Estrategia progresiva: Unitarias, de Integración, del Sistema y de Aceptación.
  5. Explotación: Instalación y puesta en funcionamiento (Beta Test).
  6. Mantenimiento: Fase más larga. Puede ser: Correctivo, Evolutivo o Perfectivo.

Traductores

Un traductor recibe código fuente y produce código objeto. El compilador traduce todo el bloque antes de ejecutar, mientras que el intérprete traduce y ejecuta línea a línea.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Cuál es la diferencia entre un compilador y un intérprete?

El compilador traduce todo el código fuente de una vez y genera un código objeto antes de ejecutar. El intérprete traduce y ejecuta el código instrucción a instrucción, en tiempo real.

¿Qué documentos se generan en el análisis y en el diseño?

En el análisis se elabora el documento ERS, que recoge los requerimientos. En el diseño se genera el documento SDD, que describe la estructura interna del sistema.

¿Qué tipos de mantenimiento existen?

El mantenimiento puede ser correctivo, evolutivo o perfectivo. Es la fase más larga del ciclo de vida.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué tipo de software permite que el ordenador funcione, como el sistema operativo?
2. ¿Qué característica tienen los lenguajes compilados?
3. ¿Cuántas columnas tiene la pizarra Kanban?
4. ¿Cuál es la duración habitual de un Sprint en Scrum?
5. ¿Qué modelo de desarrollo ejecuta sus fases de manera estrictamente secuencial?
6. ¿Qué documento resulta de la fase de diseño?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.