Fundamentos de la Ingeniería del Software: Proceso, Metodologías y UML

Fundamentos de la Ingeniería del Software

La ingeniería del software aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones económicas a los problemas de desarrollo del software.

Proceso de la Ingeniería del Software

Conjunto de etapas ordenadas para lograr un producto software de calidad.

Análisis y Diseño Orientado a Objetos (OO)

Método de análisis y diseño que examina los requerimientos desde la perspectiva de las clases y objetos encontrados en el vocabulario del dominio del problema.

Metodología de Desarrollo

Conjunto integrado de técnicas y métodos que permiten obtener de forma sistemática y abierta cada fase del ciclo de vida del software.

Ciclo de Vida del Software

Marco de referencia que contiene los procesos, actividades y tareas involucradas en el desarrollo, operación y mantenimiento de un producto software, abarcando la vida del sistema desde la definición de requisitos hasta la finalización de uso.

  1. Planificación y especificación de requisitos
  2. Análisis de requisitos
  3. Especificación funcional
  4. Diseño del sistema
  5. Codificación y pruebas
  6. Implantación y mantenimiento

Planificación, Especificación de Requisitos y Construcción

La construcción del sistema es la que consume la mayor parte del esfuerzo y del tiempo en un proyecto de desarrollo. Se adopta un enfoque iterativo. Se toma en cada iteración un subconjunto de requisitos y se llevan a su análisis y diseño hasta la implementación y pruebas. El sistema crece en cada ciclo y disminuye el grado de complejidad.

Fases de la Construcción

Análisis

Se analiza el problema a resolver desde la perspectiva del usuario y de entidades externas que van a solicitar servicios. Se intenta llegar a una buena comprensión del problema por parte del equipo de desarrollo, sin entrar en cómo va a ser la solución. Trabajamos con los modelos de casos de uso construidos en la fase anterior, ampliándolos y refinándolos. Se construye un Modelo de Objetos Conceptual mediante un diagrama de clases compuesto de clases y relaciones entre las clases. En el Modelo de Objetos Conceptual se tiene una representación de conceptos del mundo real, es la primera aproximación al modelo de diseño. Se deberán identificar los conceptos más importantes del sistema, los atributos y las relaciones existentes.

Diseño

El sistema se especifica al detalle describiendo cómo va a funcionar por dentro para satisfacer lo especificado en el análisis. Se crea una solución a nivel lógico para satisfacer los requisitos, basándose en el conocimiento reunido en el análisis. Las tareas que se realizan son:

  • Definir el diagrama de clases.
  • Definir las estructuras de datos necesarias para almacenar la información que utiliza el sistema.
  • Definir la Interfaz de Usuario e Informes.

Los diagramas de clases se refinan con la especificación de atributos y operaciones para cada una de las clases y las relaciones con otras clases. Con la información obtenida en los casos de uso, se pueden derivar las operaciones y asignarse a las clases existentes.

Implementación

Se lleva lo especificado en el diseño a un lenguaje de programación.

Pruebas

Se llevan a cabo una serie de pruebas para corroborar que el software funciona correctamente y que satisface lo especificado en la etapa de Planificación y Especificación de Requisitos. Es conveniente dividir el trabajo en fases e iteraciones.

Instalación

Puesta en marcha del sistema en el entorno previsto de uso.

Casos de Uso

Secuencia típica de acciones en un sistema, desde el punto de vista del usuario, muestra cómo el sistema interacciona con el exterior y qué se obtiene como resultado. Son descritos en un documento con: Nombre, Actores participantes, Tipo (primario, secundario), descripción. Representan una unidad funcional coherente dada por el sistema que se manifiesta con un intercambio de mensajes entre el sistema y los interlocutores.

Actor

Representa un rol que un usuario puede representar al interactuar con el sistema.

Diagrama de Casos de Uso (CDU)

Muestran la relación entre actores y los casos de uso del sistema, además de expresar relaciones entre casos de uso. Describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el punto de vista del usuario. Permiten definir límites del sistema y relaciones sistema-entorno.

Unified Modeling Language (UML)

Define un lenguaje de modelado orientado a objetos común para visualizar, especificar, construir y documentar los componentes de un sistema software OO. El UML es una notación que trata de posibilitar el intercambio de modelos de software.

Modelo

Es una simplificación de la realidad creada para comprender mejor un sistema. Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés. Los modelos de UML se utilizan para representar las distintas fases que se plantean en una metodología. UML utiliza modelos OO. UML utiliza diagramas para representación de sistemas. Se utilizan para visualizar un sistema desde diferentes perspectivas.

Interfaces

Conjunto de operaciones que especifican los servicios que puede brindar una clase y no debe especificar sus implementaciones.

Asociaciones

Pueden estar formadas por indeterminadas clases. Las más utilizadas son las binarias, relaciones entre dos clases.

Agregación

Entre clases se expresa mediante un rombo que representa la totalidad.

Composición

Agregación, pero relleno.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.