Les quiero dar la bienvenida a este Blog que tiene como fin publicar algunos apuntes sobre diseño de software. Esencialmente el blog se enfoca en modelado desde los conceptos más básicos y como estos modelos pueden llevarse a una implementación.
Para empezar quiero hacer una introducción al análisis y diseño orientado a objetos.
Análisis y diseño OO.
Introducción.
En los modelos de procesos del software como el modelo en cascada, desarrollo evolutivo, desarrollo en espiral y en modelos iterativos, las etapas de análisis y diseño son consideradas como los dos primeros pasos para abordar un proyecto software, sin embargo en muchos modelos denominados agiles se enfocan menos esfuerzos en el análisis y diseño detallado destinando más esfuerzo y tiempo en la codificación y pruebas, lo que ha despertado una discusión interesante a partir de si es importante o no tener un diseño detallado que requiere mucho tiempo y esfuerzo, en este sitio no se pretende tomar una postura en la discusión, solo se ilustran algunos conceptos basicos.
En la figura se ilustran las etapas del modelo en cascada y sobresalen en color rojo las etapas de análisis y diseño.
Como su nombre lo indica el análisis y diseño OO, están fuertemente relacionado con la programación OO, en el pasado y aun en algunos sistemas de actuales se usa el modelo estructurado y se hablaba de análisis y diseño estructurado. El análisis y diseño OO, están destinados a ofrecer mecanismos que permitan abordar un proyecto software cualesquiera independiente del lenguaje de implementación siempre y cuando se ajuste al paradigma objeto.
Análisis OO.
El análisis OO comprende el desarrollo de un modelo OO del dominio de la aplicación. Los objetos identificados reflejan las entidades y operaciones que se asocian con el problema a resolver.Sommerville, 2005
Típicamente el análisis OO se enfoca en los requerimientos y las actividades que tienen que ver con ellos tales como el levantamiento (recolección), análisis, especificación, validación y control de cambios.
Diseño OO.
El diseño orientado a objetos comprende el desarrollo de un modelo OO de un sistema de software para implementar los requerimientos identificados. Los objetos en un diseño OO están relacionados con la solución del problema por resolver. Pueden existir relaciones estrechas entre muchos objetos del problema y algunos objetos de la solución, pero inevitablemente el diseñador tiene agregar nuevos objetos para transformar los objetos del problema e implementar la solución.
Sommerville, 2005
El diseño OO está enfocado en el “cómo” y su “solución lógica”, apoyado en el análisis el diseño se encarga de establecer elementos arquitectónicos que permitan implementar la solución al problema en cuestión, para lo cual se vale de diferentes vistas que proporcionan perspectivas orientadas a usuarios, programadores, probadores y de mas actores implicados en el proceso del software.
Fuentes
- Sommerville, Ian. 2005. Ingeniería del software