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:
- Planificación y Especificación de Requisitos
- Análisis de Requisitos del Sistema
- Especificación Funcional del Sistema
- Diseño del Sistema
- Codificación y Pruebas del Sistema
- 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