04 Jul

Conceptos Fundamentales de Ingeniería de Software

  • Ingeniería de Software

    La Ingeniería de Software aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas a los problemas de desarrollo de software.

  • Proceso de Ingeniería de Software

    Conjunto de etapas parcialmente ordenadas con la intención de lograr un producto software de calidad.

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

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

  • Metodología de Desarrollo

    Es un conjunto integrado de técnicas y métodos (actividades) que permiten obtener de forma homogénea (sistemática) y abierta (a cambios y adaptaciones) cada una de las fases del ciclo de vida del software.

El Ciclo de Vida del Software

El Ciclo de Vida del Software es el 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 los requisitos hasta la finalización de su uso.

Fases del Ciclo de Vida del Software:

  1. Planificación y Especificación de Requisitos
  2. Análisis de Requisitos del Sistema
  3. Especificación Funcional del Sistema
  4. Diseño del Sistema
  5. Codificación y Pruebas del Sistema
  6. Implantación y Mantenimiento del Sistema

Fases Detalladas del Desarrollo (Construcción)

La fase de Construcción es la que va a consumir la mayor parte del esfuerzo y del tiempo en un proyecto de desarrollo. Para ello, se adopta un enfoque iterativo: se toma en cada iteración un subconjunto de los 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, obteniendo una parte del sistema funcionando que se contrasta con el usuario/cliente. La construcción del sistema se subdivide en las siguientes etapas:

  • Planificación y Especificación de Requisitos

    Incluye la planificación, definición de requisitos, conocimiento de los procesos del dominio, etc.

  • Análisis

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

  • Diseño

    El sistema se especifica en detalle, describiendo cómo va a funcionar internamente 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 la fase de análisis. Las tareas que se realizan son: definir diagramas de clases, definir estructuras de datos para almacenar la información que utiliza el sistema, definir la interfaz de usuario e informes. Los diagramas de clase se pueden refinar con la especificación de atributos y operaciones para cada una de las clases y la relación con otras clases.

  • 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.

  • Instalación

    La puesta en marcha del sistema en el entorno previsto de uso.

Modelado de Sistemas: Casos de Uso y UML

  • Caso de Uso

    Es una secuencia típica de acciones en un sistema desde el punto de vista del usuario, que muestra cómo el sistema interactúa con el exterior y qué se obtiene como resultado del uso del sistema. Los casos de uso son descritos en un documento que incluye:

    • Nombre del caso de uso
    • Actores participantes
    • Tipo de caso
    • Descripción
  • Diagrama de Caso de Uso

    Muestra la relación entre actores (elementos externos al sistema que interactúan con él) y los casos de uso (funciones que deben ser realizadas por el sistema), además de poder expresar las relaciones entre casos de uso. Los casos de uso describen, bajo la forma de acciones y reacciones, el comportamiento de un sistema desde el punto de vista de un usuario; permiten definir los límites del sistema y las relaciones entre el sistema y el entorno. Un caso de uso es un concepto que representa una unidad funcional coherente, proporcionada por el sistema y que se manifiesta con un intercambio de mensajes entre el sistema y los interlocutores exteriores.

  • 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 orientado a objetos. UML es una notación que trata de posibilitar el intercambio de modelos de software. Un modelo es una simplificación de la realidad creada para comprender mejor un sistema. Un proceso de desarrollo del software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés. Los modelos UML se utilizan para representar las distintas fases o etapas que se plantean en una metodología de desarrollo de software. UML utiliza modelos orientados a objetos y es un lenguaje de modelado visual que emplea diagramas para la representación de los sistemas. Los diagramas se utilizan para visualizar un sistema desde diferentes perspectivas, de forma que un diagrama es una proyección de un sistema.

Conceptos de Modelado Orientado a Objetos en UML

  • Interfaces

    Representan un conjunto de operaciones que especifican los servicios que puede brindar una clase o componente y nunca deben especificar sus implementaciones.

  • Asociaciones

    Pueden estar formadas por un número indeterminado de clases, pero las más comunes y utilizadas son las asociaciones binarias, aquellas relaciones entre dos clases.

  • Agregación

    (Relación del tipo todo/parte) entre clases se expresa mediante un rombo adyacente a la clase que representa la totalidad, y de dicho rombo parten las asociaciones al resto de clases que forman dicha agregación.

  • Composición

    (Relación de pertenencia) es representada de igual forma que la agregación, pero con el interior del rombo pintado de negro.

Deja un comentario