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
- Análisis Léxicográfico: Se leen de manera secuencial todos los caracteres de nuestro código fuente.
- Análisis Sintáctico-Semántico: Agrupa todos los componentes léxicos y analiza su significado.
- Generación de Código Intermedio: Se genera una representación intermedia a modo de pseudoensamblador.
- Optimización de Código: Se revisa el código pseudoensamblador y se optimiza para mejorar su eficiencia.
- Generación de Código: Se genera el código objeto en un código en lenguaje máquina.
- 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
- Análisis de Requisitos
- Diseño y Arquitectura
- Programación
- Pruebas
- Documentación
- Mantenimiento
Modelo en Espiral
- Toma de Requisitos
- Análisis
- Diseño
- Implementación
- Pruebas
- Implantación
- 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:
- Corrección de errores
- Adaptación a nuevas necesidades
- Mejora de funcionalidades
- 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.