Ingeniería del Software: Desarrollo, Metodologías y Arquitecturas

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,92 KB

¿Qué es un Programa Informático?

Un programa informático es un conjunto de instrucciones que, una vez ejecutadas, realizarán una o varias tareas en un ordenador.

Las instrucciones se escriben en lenguaje de programación y son traducidas a ceros y unos, lo que se conoce como código máquina.

Tipos de Código

  • Código Fuente: Son las instrucciones escritas en un lenguaje de programación.
  • Código Objeto: Es el código resultante de compilar el código fuente.
  • Código Ejecutable: Es el resultado de enlazar nuestro código con las librerías. Este código ya es un ejecutable.

La Plataforma Java

La plataforma Java tiene dos componentes principales:

  • La Máquina Virtual de Java (JVM)
  • El Java API (Interfaz de Programación de Aplicaciones)

Fases de Compilación

  1. Análisis Léxicográfico: Se leen de manera secuencial todos los caracteres de nuestro código fuente.
  2. Análisis Sintáctico-Semántico: Agrupa todos los componentes léxicos y analiza su significado.
  3. Generación de Código Intermedio: Se genera una representación intermedia a modo de pseudoensamblador.
  4. Optimización de Código: Se revisa el código pseudoensamblador y se optimiza para mejorar su eficiencia.
  5. Generación de Código: Se genera el código objeto en un código en lenguaje máquina.
  6. Enlazador de Librerías: Enlaza el código objeto con las librerías, produciendo el código ejecutable.

Lenguajes de Programación

Lenguajes de Alto Nivel

Son aquellos en los que las instrucciones se escriben con palabras similares al lenguaje humano, lo que facilita su comprensión y escritura.

Ingeniería del Software

La ingeniería del software trata de las técnicas para desarrollar software desde que es concebido hasta que está listo para usarse.

Fases del Proceso de Desarrollo de Software

  • Cascada
  • Incremental
  • Evolutivo
  • En Espiral
  • Concurrente

Modelo en Cascada

  1. Análisis de Requisitos
  2. Diseño y Arquitectura
  3. Programación
  4. Pruebas
  5. Documentación
  6. Mantenimiento

Modelo en Espiral

  1. Toma de Requisitos
  2. Análisis
  3. Diseño
  4. Implementación
  5. Pruebas
  6. Implantación
  7. Mantenimiento

Análisis de Requisitos

En esta fase se busca responder a las siguientes preguntas:

  • ¿Qué función ha de ser procesada?
  • ¿Qué función y rendimiento se desea?
  • ¿Qué interfaces van a ser establecidas?

Técnicas para Representar los Requisitos

  • Diagrama de Flujo de Datos
  • Diagrama de Flujo de Control
  • Diagrama de Transición de Estados
  • Diagrama Entidad-Relación
  • Diccionario de Datos

Pruebas de Software

  • Caja Blanca: Se analiza la estructura interna del código.
  • Caja Negra: Se prueba el software sin conocer su estructura interna.
  • Pruebas Unitarias: Se verifica el funcionamiento de cada módulo del software por separado.

Verificación y Validación

  • Verificar: Las pruebas buscan confirmar que el software no tiene errores.
  • Validar: Se comprueba que el software hace lo que debe hacer según los requisitos.

Documentación

La documentación es esencial en todas las etapas del desarrollo de software.

Implantación y Mantenimiento

Existen cuatro tipos de mantenimiento:

  1. Corrección de errores
  2. Adaptación a nuevas necesidades
  3. Mejora de funcionalidades
  4. Soporte técnico

Metodología de Desarrollo de Software

Una metodología de desarrollo de software es un conjunto de prácticas y procedimientos utilizados para estructurar, planificar y controlar el proceso de desarrollo de sistemas de información.

Elementos de una Metodología

  • Estructura de proyecto
  • Productos a desarrollar
  • Técnicas para obtener los productos finales
  • Responsabilidades y funciones de los miembros del equipo y usuarios

Relación del Software con los Componentes de Hardware

Existen cuatro tipos de hardware que interactúan con el software:

  • Dispositivos de Entrada: Permiten introducir información al ordenador (teclado, ratón, etc.).
  • Dispositivos de Salida: Envían información del ordenador al exterior (monitor, impresora, etc.).
  • Procesador: Es la parte más importante del sistema computacional, encargado de ejecutar las instrucciones.
  • Memoria Principal y Secundaria: Áreas de almacenamiento interno y externo para datos e instrucciones.

Roles en el Desarrollo de Software

  • Analista de Sistemas
  • Diseñador del Software
  • Analista Programador
  • Programador
  • Arquitecto del Software

Arquitectura del Software

La arquitectura del software es el diseño de más alto nivel de la estructura de un sistema. Su objetivo principal es proporcionar elementos que ayuden a la toma de decisiones. Se organiza en patrones y modelos.

Componentes de una Aplicación

  • Interfaz de Usuario
  • Lógica
  • Gestión de Datos

Arquitecturas Universales

  • Monolítica
  • Cliente-Servidor
  • Arquitectura de 3 Capas

Patrones de Diseño

Los patrones de diseño ofrecen soluciones a problemas comunes en el desarrollo de software. Establecen los componentes de la arquitectura y las directrices para su diseño.

  • Patrones Creacionales: Definen el modo en que se construyen los objetos.
  • Patrones Estructurales: Establecen las relaciones entre los distintos componentes.
  • Patrones de Comportamiento: Describen la comunicación entre objetos y clases.
  • Patrones de Interacción: Definen directrices para la creación de interfaces.
  • Antipatrones: Son la contraparte de los patrones, representan soluciones que deben evitarse.

Desarrollo en 3 Capas

Este modelo divide la aplicación en tres capas principales:

  • Capa de Presentación: Es la que ve el usuario final.
  • Capa de Negocio: Es el corazón del software, su función es aplicar las reglas de negocio para la gestión de datos.
  • Capa de Datos: Es donde los datos están preparados para ser guardados en una base de datos. Devuelve la confirmación del proceso o un error en caso contrario.

Entradas relacionadas: