Fundamentos de Ingeniería de Software: Modelado, Procesos y Gestión de Requisitos
Introducción a ADOO: Desarrollo Orientado a Objetos
ADOO es un enfoque sistemático en la Ingeniería de Software que permite modelar un sistema valiéndose de objetos que interactúan entre sí. Su significado radica en cambiar la forma de pensar sobre los programas, viéndolos como «cosas» que se mandan mensajes.
Fases Clave en Ingeniería de Software
Análisis
En Ingeniería de Software, el análisis es la fase que investiga el problema y los requerimientos, poniendo énfasis en entender qué se necesita construir, no cómo se va a construir.
Diseño
El diseño es la fase que desarrolla una solución conceptual para los requerimientos. Se centra en el «cómo» se va a resolver el problema, pero sin llegar a la implementación real en código.
Conceptos Fundamentales de la Orientación a Objetos
Objeto: Definición Inicial
Un objeto es cualquier elemento del mundo real que posee características (datos) y comportamientos (acciones) dentro de un contexto específico. Por ejemplo, un objeto puede ser un cliente o un producto.
Importancia de ADOO en el Desarrollo de Software
El desarrollo de software es complejo y requiere muchas herramientas. ADOO ayuda a organizar la información y a establecer una base sólida para el proyecto.
Metodologías de Desarrollo de Sistemas
Las metodologías de desarrollo de sistemas son enfoques estructurados para abordar el análisis y diseño de sistemas. Existen la Metodología Estructurada (más antigua) y la Metodología Orientada a Objetos.
Datos e Información en Sistemas de Software
El Rol de Datos e Información
Los datos se procesan en los sistemas de información para generar información útil para la toma de decisiones.
El objetivo principal es poder reconocer los datos necesarios para que un proceso funcione correctamente.
Definición y Rol de los Datos
Los datos son la base para analizar situaciones, tomar decisiones y mejorar procesos.
Permiten encontrar patrones y comprender las necesidades de los clientes.
Si se pierden, se modifican incorrectamente o son erróneos, pueden causar graves problemas.
Datos en Contexto
El mismo dato puede ser importante o no dependiendo de la situación en que se use (por ejemplo, el tipo de sangre en una operación).
Estructura de Datos
Los datos se organizan en pares de «atributo» (qué información es) y «valor» (cuál es esa información). Por ejemplo: «Nombre»: «Juan».
Diferencia Clave entre Datos e Información
Es crucial entender que los datos son elementos brutos y sin procesar, mientras que la información son esos mismos datos procesados, contextualizados y dotados de un significado específico.
Los objetos tienen un papel específico dentro de un sistema y se relacionan con otros objetos para cumplir funcionalidades.
Objeto: Una Perspectiva Simplificada
En términos más sencillos, un objeto es una «cosa» del mundo real que encapsula características (atributos) y comportamientos (métodos).
Es fundamental poder identificar los objetos que participan en un proceso y comprender la importancia de sus relaciones para el funcionamiento del sistema.
Ejemplo de Objetos: Equipo de Baloncesto
En un equipo de baloncesto, los objetos podrían ser: jugadores, pelota, marcador, árbitros. Es importante notar que los jugadores son instancias del mismo tipo de objeto que se repite varias veces.
Herramientas y Metodologías para el Desarrollo Orientado a Objetos: UML y RUP
Lenguaje Unificado de Modelado (UML)
El Lenguaje Unificado de Modelado (UML) es un lenguaje de diagramas estándar para la orientación a objetos, utilizado para visualizar, especificar, construir y documentar software. Su objetivo es que los diagramas tengan un significado claro y sean fáciles de entender por todos los involucrados en el proyecto.
Proceso Unificado de Rational (RUP)
El Proceso Unificado de Rational (RUP) es una metodología de desarrollo de software iterativa e incremental que organiza el trabajo, definiendo quién hace cada tarea, cuándo y cómo. Es adaptable a las necesidades de cada proyecto y sirve como marco para utilizar UML de manera efectiva. Las fases de RUP son:
Fases de RUP
- Inicio: Se define el alcance del proyecto, se identifican los casos de uso clave, se evalúa la viabilidad y se elabora un plan inicial. La pregunta central es: ¿Vale la pena invertir en este proyecto?
- Elaboración: Se establece la arquitectura del sistema, se identifican y mitigan los riesgos principales, se desarrolla un prototipo y se detalla el plan. El objetivo es: Planificar y establecer una base sólida.
- Construcción: Es la fase de desarrollo principal, donde se realiza el diseño detallado, la implementación del código, las pruebas unitarias y de integración, y la documentación. La pregunta clave es: ¿Está el producto listo para ser entregado?
- Transición: Se entrega el sistema a los usuarios finales, se realizan pruebas de aceptación, se proporciona capacitación y soporte, y se lleva a cabo la instalación. El objetivo es: Satisfacer las necesidades de los usuarios.
Los diagramas de UML son herramientas esenciales para representar visualmente las diferentes partes y artefactos generados durante el proceso de RUP.
Gestión de Requisitos en Ingeniería de Software
Técnicas de Captura de Requisitos
Las técnicas de captura de requisitos son métodos utilizados para obtener la información detallada sobre lo que el sistema debe hacer. A menudo, los usuarios no saben exactamente qué quieren o tienen ideas divergentes.
Estrategias para la Captura de Requisitos
- Elaborar una lista exhaustiva de los requisitos de cada persona interesada (stakeholder).
- Crear una visión general clara y concisa de las funcionalidades que debe ofrecer el sistema.
- Redactar cada requisito de forma clara, precisa y sin ambigüedades.
La captura de requisitos es una parte fundamental de la Ingeniería de Requisitos (IR). Es crucial definir correctamente los requisitos al principio del proyecto, ya que corregir errores en esta fase posterior es significativamente más costoso.