Diferencia entre revisiones de «Usuario:ManuelRomero/CasosUso»
(4 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
+ | {{TEP}} | ||
+ | {{:Usuario:ManuelRomero/CursoJavaUml/IS/nav}} | ||
+ | <br> | ||
=Casos de Uso= | =Casos de Uso= | ||
*Es tipo de diagrama de '''UML''' muy utilizado sobre todo en la fase de análisis | *Es tipo de diagrama de '''UML''' muy utilizado sobre todo en la fase de análisis | ||
Línea 31: | Línea 34: | ||
[[Archivo:Asociacion.png]] | [[Archivo:Asociacion.png]] | ||
:Denota que un actor o un caso de uso invoca a una operación representada por un caso de usoEs una fecha | :Denota que un actor o un caso de uso invoca a una operación representada por un caso de usoEs una fecha | ||
− | [[Archivo: | + | [[Archivo:CasoDeUso1.png]] |
+ | ;Dependencia o Instanciación ('''<<extends>>,<<include>> | ||
+ | :Si además en la invocación un caso de uso '''instancia'' o crea un objeto para la operación del otro caso de uso se representac on una instanciacion o dependencia | ||
+ | :Este tipo de relación se suele producir de forma más natural entre diferentes Casos de uso | ||
+ | :Tenemos dos tipos de dependencia | ||
+ | #extension <<extends>> Un caso de uso que se puede o no realizar para realizar el primero entonces decimos que se extiende al segundo | ||
+ | #inclusion <<included>> Un caso de uso que siempre tienes que reealizar para realizar el primero entonces decimos que incluye a este | ||
+ | [[Archivo:Instaciacion.png]] | ||
+ | ;Generalización | ||
+ | :Cuando un caso de uso se puede especializar en dos o más casos de uso | ||
+ | [[Archivo:Generalizacion.png]] | ||
+ | ==Ejemplo == | ||
+ | Un programa que gestione Cuentas bancarias para diferentes personas en una entidad bancaria. | ||
− | + | Una persona puede acercarse a un banco para darse de alta como cliente. | |
− | + | ||
+ | El banco verifica con una base de datos de morosos un informe que debe de ser favorable para dar de alta a la persona como cliente del banco. una vez verificada la validez del la persona se procede a darla de alta en nuestra entidad. Por el hecho de darla de alta se le creará una cuenta bancaria con un importe inicial de 50 € a cargo del banco. La gestión interna de la economía del banco no es competencia de esta aplicación por lo que ese importe ya será tenido en cuenta en la gestión económica interna del banco. | ||
+ | Posteriormente la persona puede realizar las siguientes acciones. Ingresar dinero, hacer transferencias internas, Sacar dinero, Abrir una cuenta, Cerrar una cuenta o darse de baja en la entidad bancaria. | ||
+ | Se pide hacer un diagrama de casos de uso de este sistema. | ||
+ | |||
+ | <source lang=java> | ||
+ | package calucladora; | ||
+ | import javax.swing.*; | ||
+ | import java.awt.*; | ||
+ | import java.awt.event.*; | ||
+ | |||
+ | |||
+ | |||
+ | public class VantanaCaluladora extends JFrame implements ActionListener{ | ||
+ | //Definimos atributos de mi clase | ||
+ | JTextField tPantalla = new JTextField(); | ||
+ | |||
+ | //Definimos botones | ||
+ | Character [] botones ={'7','8','9','C',(char)8592, //Caracter retroceso | ||
+ | '4','5','6','+','%', | ||
+ | '1','2','3','-',(char)177,//caracter +/- | ||
+ | '0','*','/','.','='}; | ||
+ | |||
+ | |||
+ | Font fuente = new Font("Arial", Font.BOLD,18); | ||
+ | |||
+ | GridLayout lBotones = new GridLayout(4,4,5,5); | ||
+ | BorderLayout lPpal = new BorderLayout(); | ||
+ | |||
+ | JPanel pBotones = new JPanel(); | ||
+ | |||
+ | //Menus | ||
+ | JMenuBar barraMenu = new JMenuBar(); | ||
+ | JMenu mEstilo = new JMenu("Estilo"); | ||
+ | JMenu mAyuda = new JMenu("Ayuda"); | ||
+ | JMenu mSalir = new JMenu("Salir"); | ||
+ | |||
+ | JRadioButtonMenuItem bRacional = new JRadioButtonMenuItem("Racionall"); | ||
+ | JRadioButtonMenuItem bReal = new JRadioButtonMenuItem("Real"); | ||
+ | |||
+ | ButtonGroup grupo = new ButtonGroup(); | ||
+ | |||
+ | VentanaCalculadora(){ | ||
+ | addBotones(); | ||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | public | ||
+ | |||
+ | public void actionPerformed(ActionEvent arg0) { | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | </source> |
Última revisión de 09:31 20 sep 2012
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Casos de Uso
- Es tipo de diagrama de UML muy utilizado sobre todo en la fase de análisis
- Muy util también para recoger requisitos
- El diagrama de casos de uso representa la forma en como un Usuario Actor interactúa con el sistema
- realizando un uso de él
- visualiza los casos de uso que se hacen del sistema
- También puede visualizar como los elementos interactuan (operaciones o casos de uso).
Elementos
- Al se un diagrama nos transmite una información.(Como lo hacen los lenguajes
- Como cualquier lenguaje usa un léxico (elementos), sintaxis (reglas de construccion) y semántica o significado
- Elementos
- Actor
- Caso de uso
- Relaciones de Uso:( Herencia y Comunicación).
Actor
- Es el rol que desempeña un elemento externo utilizando el sistema
- Puede ser concreto como una persona o una impresora. También podría ser un programa
Representa una labor que se realiza frente al sistema.
Caso de uso
Es una operación o acción que se realiza tras una orden o solicitud La solicituad de que se ejecute puede venir de
- Un actor
- Otro caso de uso
Relaciones
Es la manera en la que un 'actor entra en contacto con 'un caso de uso' o 'un caso de uso' con 'otro' Tenemos tres tipos diferentes de relaciones:
- Asociación
- Se representa por una flecha.
- Denota que un actor o un caso de uso invoca a una operación representada por un caso de usoEs una fecha
- Dependencia o Instanciación (<<extends>>,<<include>>
- Si además en la invocación un caso de uso 'instancia o crea un objeto para la operación del otro caso de uso se representac on una instanciacion o dependencia
- Este tipo de relación se suele producir de forma más natural entre diferentes Casos de uso
- Tenemos dos tipos de dependencia
- extension <<extends>> Un caso de uso que se puede o no realizar para realizar el primero entonces decimos que se extiende al segundo
- inclusion <<included>> Un caso de uso que siempre tienes que reealizar para realizar el primero entonces decimos que incluye a este
- Generalización
- Cuando un caso de uso se puede especializar en dos o más casos de uso
Ejemplo
Un programa que gestione Cuentas bancarias para diferentes personas en una entidad bancaria.
Una persona puede acercarse a un banco para darse de alta como cliente.
El banco verifica con una base de datos de morosos un informe que debe de ser favorable para dar de alta a la persona como cliente del banco. una vez verificada la validez del la persona se procede a darla de alta en nuestra entidad. Por el hecho de darla de alta se le creará una cuenta bancaria con un importe inicial de 50 € a cargo del banco. La gestión interna de la economía del banco no es competencia de esta aplicación por lo que ese importe ya será tenido en cuenta en la gestión económica interna del banco. Posteriormente la persona puede realizar las siguientes acciones. Ingresar dinero, hacer transferencias internas, Sacar dinero, Abrir una cuenta, Cerrar una cuenta o darse de baja en la entidad bancaria. Se pide hacer un diagrama de casos de uso de este sistema.
package calucladora; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class VantanaCaluladora extends JFrame implements ActionListener{ //Definimos atributos de mi clase JTextField tPantalla = new JTextField(); //Definimos botones Character [] botones ={'7','8','9','C',(char)8592, //Caracter retroceso '4','5','6','+','%', '1','2','3','-',(char)177,//caracter +/- '0','*','/','.','='}; Font fuente = new Font("Arial", Font.BOLD,18); GridLayout lBotones = new GridLayout(4,4,5,5); BorderLayout lPpal = new BorderLayout(); JPanel pBotones = new JPanel(); //Menus JMenuBar barraMenu = new JMenuBar(); JMenu mEstilo = new JMenu("Estilo"); JMenu mAyuda = new JMenu("Ayuda"); JMenu mSalir = new JMenu("Salir"); JRadioButtonMenuItem bRacional = new JRadioButtonMenuItem("Racionall"); JRadioButtonMenuItem bReal = new JRadioButtonMenuItem("Real"); ButtonGroup grupo = new ButtonGroup(); VentanaCalculadora(){ addBotones(); } public public void actionPerformed(ActionEvent arg0) { } }