martes, enero 16, 2007

Casos de Uso - Introducción

Un caso de uso es una herramienta que sirve para representar la forma como un cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en la cual, los elementos interactuan, a estas acciones se les llama operaciones o Casos de uso.


Los casos de uso se utilizan básicamente en el proceso de modelado de sistemas, partiendo de una percepción o perspectiva que nos plantea el paradigma de la orientación a objetos, y en este caso el analisis y diseño orientados a objetos.


Los casos de uso forman parte del Lenguaje Unificado de Modelado UML por sus siglas en ingles (Unified Modeling Languaje) el cual a su vez se compone de muchas otras herramientas, básicamente diagramas como: Diagramas de Clase, Diagramas de Secuencia, Colaboracíón, Transición de Estados, Diagramas de Actividad, Componentes, Deployment, entre otros. Todas ellas usadas a lo largo de las etapas o ciclo de vida del proceso de desarrollo.


La aplicación principal de los casos de uso es en el proceso de análisis y diseño pero de manera particular en la definición de requerimientos del usuario. Es una excelente herramienta de comunicación debido a la sencillez de su elaboración asi como su comprensión. En teoría los usuarios deberían conocer como hacer sus propios casos de uso, pero eso solo es en "teoría".


Un diagrama de casos de uso consta de los siguientes elementos: Actor, Casos de Uso y Relaciones.


Elementos


l Actor:


Una definición previa, es que un Actor es un rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra rol, pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.Como ejemplo para ilustrar la definición anterior, tenemos el caso de un sistema de ventas en que el rol de Vendedor con respecto al sistema puede ser realizado por un Vendedor o bien por el Jefe de Local.


l Caso de Uso:


Es una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.


l Relaciones:



¡ Asociación. Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple.


¡ Dependencia o Instanciación. Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada.


¡ Generalización. Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su estereotipo, que puede ser de:



Uso (<<uses>>) o de Herencia (<<extends>>). Este tipo de relación esta orientado exclusivamente para casos de uso (y no para actores).



extends. Se recomienda utilizar cuando un caso de uso es similar a otro (características).


uses. Se recomienda utilizar cuando se tiene un conjunto de características que son similares en más de un caso de uso y no se desea mantener copiada la descripción de la característica. De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelamiento de clases, en donde esta la duda clásica de usar o heredar.







Technorati : ,
Del.icio.us : ,

4 comentarios:

  1. haber haber XD

    soy algo lento...
    osea que los casos de uso son diagramas que se hacen cuando programar en lenguajes orientados a objetos?

    osease que se pueden hacer casos de uso de alguna aplicacion hecha en python (es orientado a objetos)

    MMM suena bastante interesante.

    ResponderBorrar
  2. En realidad el caso de uso no es solamente el diagrama. Es solo una parte del caso de uso. Este tiene varios elementos que mas delante describiremos (en otro post). Aunque hay varios estilos o formas de hacerlos, existen ciertos rasgos que se repiten generalmente como el objetivo, la descripcion, el flujo principal, los flujos alternos, diagrama de flujo, diagrama de contexto, reglas de negocio, etc.

    Casos de Uso es una herramienta de análisis y diseño, pero más de análisis, porque permite recavar las "necesidades" o requerimientos del usuario.

    A partir de un Caso de Uso se trabaja con los demas elementos de diseño, como el diagrama de clases que te da la estructura visual y lógica de tus elementos de software, osea las clases, de ahi te vas a cualquier lenguaje como Java, C#, y un largo etcetera. Y si phyton es uno de ellos, aunque no tengo el dato exacto si es 100% orientado a objetos.

    ResponderBorrar
  3. haaaaaa

    Todavia estoy verde jajajajajaja

    y sip... asegun python es un lenguaje interpretado y orientado a objetos, creo, pork todo lo defines como objeto...

    tambien ruby on rails donde se pasan de lanza... =S un pinche numero es un pinche objeto.

    tnkx

    ResponderBorrar
  4. Ruby es un lenguaje interesante, es excelente para hacer generadores de código. Checate el libro "Code Generation in Action". Muy recomendable.

    ResponderBorrar