planeacion de software

67

Transcript of planeacion de software

ccomputo
Cuadro de texto
DESARROLLO DE PROYECTOS DE SOFTWARE

UMLUMLUML significa Lenguaje Unificado de ModeladoUML combina lo mejor de:– Conceptos de modelado de datos

(diagramas entidad-relación)– Modelado de negocios (flujos de trabajo) – Modelado de objetos – Modelado de componentes

Notación UMLNotación UML

UML define 9 tipos de diagramas que representan los distintos puntos de vista de modelado.

DiagramasDiagramas

1) Diagramas de casos de uso. Representan las funciones de un sistema desde el punto de vista del usuario.

2) Diagramas de secuencia.Son una representación temporal de los objetos y sus relaciones.

3) Diagramas de colaboración.Son una representación espacial de objetos, uniones e interacciones.

DiagramasDiagramas

4) Diagramas de objeto.Representan objetos y sus relaciones.

5) Diagramas de clase.Representan la estructura estática en términos de clases y relaciones.

6) Diagramas de estado.Representan el comportamiento de una clase en términos de estado.

DiagramasDiagramas

7) Diagramas de actividad.Representan el comportamiento de una operación como un conjunto de acciones.

8) Diagramas de despliegue.Representan la colocación de componentes en piezas particulares de hardware.

9) Diagramas de componenteRepresentan los componentes físicos de una aplicación.

Diagramas de Caso Diagramas de Caso de Usode Uso

Diagramas de Casos de UsoDiagramas de Casos de Uso

Es la descripción de un comportamiento, de acuerdo a la funcionalidad esperado, con el objetivo de completar una tarea del sistema.Modela la funcionalidad del sistema desde el punto de vista de usuarios externos llamados actores.El propósito es definir una pieza de comportamiento coherente, sin revelar la estructura interna del sistema.

Catálogo telefónico

Cliente

Vendedor

Encargado de Envíos

Supervisor

revisarcondiciones

hacer pedido

atender pedidos

establecer créditos

Nombre del Sistema

Actores

Caso de Uso

Comunicación entre Actor y Caso de Uso

EjemploEjemplo

Diagrama de Caso de UsoDiagrama de Caso de UsoActor: representa cualquier persona o sistema que

necesita interactuar con el sistema. Actores principales. Personas que usan funciones del sistema principal. En el caso de un cajero automático, son los clientes.Actores secundarios. Llevan a cabo actividades de administración o mantenimiento. En el caso de un cajero, es la persona que rellena el cajero de dinero.

Maneja

Servicio

Vende

Repara

Cliente

Mecánico

Vendedor

Casos y ActoresCasos y Actores

La misma persona física puede hacer el rol de varios actores . Además, varias personas pueden tener el mismo rol y por lo tanto ser el mismo actor (todos los clientes). El nombre del actor describe el rol hecho por el usuario.

Casos y Actores en “paquetes”Casos y Actores en “paquetes”Para identificar en forma más sencilla a los actores y sus casos de uso, se sugiere organizarlos en “paquetes”, de acuerdo a las principales funciones de sistema:– Ayudan a la modularidad del sistema– Facilitan la identificación de las casos de uso y

los actores principales y secundarios– Mantienen un nivel de complejidad adecuados

RelacionesRelaciones

Relación “usa” (use)Una relación “usa” entre casos significa que

una instancia del caso fuente también incluye el comportamiento descrito por el caso apuntado. Esta relación ocurre cuando tenemos un comportamiento que es similar entre varios casos y no queremos copiar la descripción de ese comportamiento.

RelacionesRelaciones

Relación “extiende” (extend)Relación “extiende” se usa cuando

tenemos un caso que es similar a otro caso pero hace un poco más. También puede verse como un comportamiento opcional al sistema.

Transfiere

Identificación

Transferido por

computadora

Cliente Local

Cliente Remoto

<<extiende>>

<<usa>>

RelacionesRelaciones

EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientesSuponga que se requiere desarrollar el control de una máquina automática paradespachar bebidas calientes. La máquina recibe monedas de 0.50, 1, 2 y 5 pesos. Existen tres tipos de bebidas (café negro, café capucino, chocolate).

Es posible azucarar al gusto el productoseleccionado y la máquina es capaz de darcambio. El dinero que los usuarios introducen se guarda en un recipiente aparte al disponiblepara el cambio, el cual se encuentra ordenadopor denominación.

EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes

EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes

DiagramaDiagrama de de CasosCasos de de UsoUso

introducirDineropedirAzucar

pedirProducto

darCambiocancelar

“uses”

“uses”

“uses”

hacer pedido

pedir producto

<<include>>

datos del cliente

<<include>>

organizar pago

<<include>>

Estas inserciones son explicitas de “hacer pedido!”

Inclusión

solicitar catálogo

<<extend>>

Extensión

EjemploEjemploCatálogo Telefónico

Documentación Documentación de un Caso de Usode un Caso de Uso

Una vez identificados los casos de uso y sus actores es muy importante documentar cada caso de uso.– Ayuda a aclarar la lógica de interacción– Permite detectar los objetos involucrados– Es la base para construir los diagramas de

secuencia y de actividad.

Nombre del caso de usoActor(es)DescripciónPre-condiciónDisparadorEventos normalesExcepciones (Variaciones alternas)

http://members.aol.com/acockburn/papers/uctempla.htm

Documentación Documentación de un Caso de Usode un Caso de Uso

EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes

DocumentaciónDocumentación de un de un CasoCaso de de UsoUso

Nombre del caso de uso: IntroducirDineroActor(es): ClienteDescripción: Solicita el dineroPre-condición: La maquina está lista.Disparador: Recepción de monedasEventos normales: 1. Recibe dinero

2. Cuenta dineroExcepciones : 1. Falla de la máquina(Variaciones alternas)

Diagrama de Diagrama de SecuenciaSecuencia

Diagrama de SecuenciaDiagrama de SecuenciaUn objeto

Nuevo objetoMuestra un conjunto de mensajes dispuestos en una secuencia de tiempo.Muestra el comportamiento secuencial de un caso de uso.

Diagrama de SecuenciaDiagrama de Secuencia

Un objetoNuevo objeto

Línea de Vida

Objetos

Tiempo

Fin de la vida

Mensajes

EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes

DiagramaDiagrama de de SecuenciasSecuencias

:Máquina :Producto :Ingrediente

darCambio()

“destroy”

1:servir()2:*[1..n] servir()

Diagrama de secuenciaDiagrama de secuenciaCatálogo Telefónico

p: Cliente p: Vendedor s: Inventario s: Almacen

1.Solicita Artículo2.Verifica “stack”

3.Indica Cant. de Artículos

4.Indica existencia

5.Hace pedido6.Solicita el Artículo

7.Fecha de Envío8.Fecha de Envío

“9.destroy”

Diagrama de Diagrama de ColaboraciónColaboración

Diagrama de ColaboraciónDiagrama de ColaboraciónDestaca la organización de los objetos que

participan en una interacción.

Tienen dos características que los distinguen de los diagrama de secuencias:

•El camino: Indica como se enlaza un objeto a otro

•El número de secuencia: indica la ordenación temporal de un mensaje.

Objeto 1

Objeto 3Objeto 2

1: acción()

2: acción()

3: acción()

Diagrama de ColaboraciónDiagrama de Colaboración

Enlace

Objetos

Secuencia

Mensaje

:Máquina

:Producto

3:dar_Cambio()

1:servir()

:Ingrediente

2:*[1..n] servir()

EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes

DiagramaDiagrama de de ColaboraciónColaboración

Diagrama de ColaboraciónDiagrama de ColaboraciónCatálogo Telefónico

p: Cliente

p: Vendedor

s: Inventario

s: Almacen

1: Solicita Artículo

2: Verifica “stack”

3: Hace pedido

4: Solicita Artículo

5: “destroy”

Diagramas de Diagramas de ObjetosObjetos

Diagramas de objetosDiagramas de objetosPresentan un conjunto de objetos y sus relaciones identificados en los requerimientos funcionales y casos de uso de un escenario de negocios de un sistema.Cubren una vista de diseño estático desde la perspectiva de casos reales o prototípicos.Para representarlos se parte de un proceso de identificación de sustantivos en la descripción de eventos normales y diagramas de secuencia y colaboración de los casos de uso

Modelo de ObjetosModelo de Objetos

Encontrando OBJETOS. Para evaluar si un objeto candidato realmente es un

objeto del sistema debe tomar en cuenta:– Un objeto debe tener datos que deben ser almacenados– Cada objeto debe tener más de un atributo– Todas las instancias del objeto comparten los mismos

los métodos y atributos.

EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes

DiagramaDiagrama de de ObjetosObjetos

MáquinavalorRecolectado: 10.00

IngredienteCantidad: 1cNombre:cafe

ProductoCosto: 10.00Nombre: Cafe

DepositoMonedasnumMonedas: 1

DepositoMonedasIguales

Denominacion: 1.00, 5.00, 10.00PanelControl

EjemploEjemplo

d1:Departamento

d2:Departamento

Nombre=“Ventas”

Nombre=“Conta”

p:Persona

Nombre=Fco. LópezId: 121415

director

Reporta Paga

Rol

Enlace

Valor al Atributo

Comportamiento: se refiere a aquellas cosas que el objeto puede realizar.

Conceptos Básicos Conceptos Básicos ClasesClases

Cliente

Alta()Baja()Modificación()Consulta()

NombreDirecciónTeléfono

Nombre

Atributos

Operaciones

Clase

Objeto:Es cualquier cosa, lugar, persona acerca de

la cual el usuario puede guardar información y asociar un comportamiento.

Conceptos Básicos Conceptos Básicos Clases y Objetos Clases y Objetos

:Cliente

Nombre=“Ventas”

Representación en UML

Clase 1

Clase 2 Clase 3

Herencia: significa que el comportamiento y/o atributos definidos en una clase pueden ser reusadosen otra clase distinta.

Generalización: es una relación que describe la forma que que dos clases interactuan es decir la subclase hereda los atributos y métodos de la superclase.

Relaciones 00 Relaciones 00

Clase 1

Clase 2 Clase 3

Composición: es una relación que describe cuando un objeto esta compuesto de uno o más objetos.

Relaciones OO Relaciones OO

Clase 1 Clase 2

Clase 1 Clase 2

Relaciones de colaboraciónRelaciones de colaboración

Cardinalidad: relación entre objetos que denota el número de instancias de A que pueden ser relacionadas a una instancias de B – Cada instancia de la clase1 es asociada con cero o una

instancia de la clase2

– Cada instancia de la clase1 es asociada con exactamente una instancia de la clase2

0..1

1

Clase 1 Clase 2

Clase 1 Clase 2

Relaciones de colaboración y su cardinalidad– Cada instancia de la clase1 es asociada con cero o

muchas instancias de la clase2

– Cada instancia de la clase1 es asociada con una o muchas instancias de la clase2

*

1..*

Relaciones de colaboraciónRelaciones de colaboración

Especificación de ClasesEspecificación de ClasesPara cada clase del modelo de objetos se debe

realizar una especificación de clases que contenga:

– Nombre de la clase– Definición de negocio para la clase (significado

para el usuario)– Relaciones, especificar si es una colaboración,

especialización o composición.

Especificación de ClasesEspecificación de Clases– Atributos, especificando como mínimo el tipo

de dato.– Definición de los métodos, incluyendo como el

método se lleva a cabo y que datos necesita. Recomendable utilizar texto estructurado.

EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes

DiagramaDiagrama de de ClasesClases

MáquinavalorRecolectadorecibirPeticion()recibirDinero()darCambio()….

Ingredientecantidadnombreservir()

Productocostonombreservir()

DepositoMonedasnumMonedasagregarMoneda()

DepositoMonedasIgualesdenominaciondarMoneda()…..

1..4

1

4

1..*

1..*

1..*

PanelControl

Ejemplo: Diagrama de ClasesEjemplo: Diagrama de Clases

EmpleadoNombreIdRegistro()

DepartamentoNombreClaveConsulta()Solicitud()

1..*

EmpresaNombreRFC

1..*

1

* 1

Depto. Contabilidad

directormiembro

Paga

Rol

DependenciaGeneralización

Cardinalidad

Agregación

Diagrama de EstadoDiagrama de Estado

Estado 3

Modela los posibles cambios de un objeto.

También es útil para describir el comportamiento del sistema.

Estado 1

Estado 2

Estado inicial

Estado final

Diagrama de EstadoDiagrama de Estado

EjemploEjemplo: : MáquinaMáquina de de BebidasBebidas CalientesCalientesDiagramaDiagrama de de EstadosEstados

Lista RecibiendoMonedas

Elección Productoy azucar

Sirviendo Producto

Desperfecto

userInput(BotonOn)[todoOk=true] userInput(BotonOn)[todoOk=false]

[todoOk=false

]

Apagada

userInput(BotonOff)

use

rIn

put(

Bot

onO

ff)

userInput(BotonOn)[todoOk=true]/MostrarDineroActual

userInput(Boton)[todoOk=true]/MostrarNivelAzucar, MostrarProducto

[todoOk=true]/ServirProducto

[todoOk=true]/IniciarIndicadores

BuenFuncionamiento

Diagrama de Diagrama de ActividadesActividades

Diagrama de actividadesDiagrama de actividadesCombina el diagrama de eventos de JimOdell, las técnicas de modelado de estados y las redes de Petri.Son útiles en conexión con el flujo de trabajo donde una actividad es un método sobre una clase.Permite documentar la lógica de cada caso de uso.

*[Para todo caso]

ActividadActividad

Actividad

Actividad

Actividad

[Condición 1]

[Condición 2]

[Condición de sincronización]

Diagrama de ActividadDiagrama de Actividad

EjemploEjemplo: : MáquinaMáquina de de BebidasBebidas CalientesCalientesDiagramaDiagrama de de ActividadActividad

Servir productos Servir azucar Servir AguaCaliente

Indicar que la bebida esta lista

Preparar vaso

Lista

EjemploEjemplo: : DiagramaDiagrama de de ActividadActividadMétodoMétodo: : hacerhacer pedidopedido

Cancela orden Autoriza pago Verificaexistencias

Asigna orden

Despacha orden

Recibe orden

Reordena

Inicio

*[Para cada artículo]

[fallo] [éxito]

[en existencia] [falta mercancia]

Diagrama de Diagrama de DespliegueDespliegue

Diagrama de DespliegueDiagrama de Despliegue

El diagrama de despliegue (deployment) muestra la configuración de los elementos de procesamiento en tiempo de ejecución (run-time) con sus respectivos procesos de softwareVisualiza la distribución de componentes

DirecciónBase dedatos

Biblioteca

Jardines

Edificio Principal

Diagrama de DespliegueDiagrama de Despliegue

EjemploEjemplo: : MáquinaMáquina de de BebidasBebidas CalientesCalientesDiagramaDiagrama de de DespliegueDespliegue

PCMáquina

DepositoMonedas

DepositoMonedasIguales

DespachadorProductos

PanelControl

1 4

1

11

3

1

1

Diagramas de Diagramas de ComponentesComponentes

Diagramas de ComponentesDiagramas de ComponentesEl mundo físicoEl mundo físico

Los diagramas de componentes ilustran la organización y dependencia entre los componentes de software

Un componente puede ser:– Código fuente– Código ejecutable– Código interpretado

Curso CursoOfertado

Alumno Profesor

Diagrama de ComponentesDiagrama de Componentes

Curso.dllPersona.dll

CursoUsuario

Inscribe.exeFactura.exeSistema

facturación

EjemploMáquina de Bebidas CalientesDiagrama de Componentes

Despachador.dll

Control de dinero.dll

Panel de Control.dll

Forma icónica

Despachador

MetamodeloMetamodelo

Para dar más rigor, sin perder la utilidad se crea el metamodelo. Un metamodelo es un diagrama, usualmente un diagrama de clase, que define la notación.Se dice que UML es un lenguaje Metamodelo.

Diagrama

Componente Clase Secuencia

ActividadObjetoCaso de Uso

ColaboraciónEstadoDistribución

BibliografíaBibliografíaBooch G. , Rumbaugh J., Jacobson I. “El Lenguaje Unificado de Modelado”,

Addison Wesley Iberoamericana, Madrid 1999Rational Software Co.,

“Analysis and Design with UML”, 1997Figueroa P., “Elementos notacionales de UML”, Univ. Los Andes, Bogotá, Colombia1997 http://agamenon.uniandes.edu.co/~pfiguero/soo/uml/

BibliografíaBibliografíaMuller P. , “Instant UML”, Wrox. 1997Fowler M. , Scott K., “UML gota a gota”, 1997Pressman R. , “Software Engineering. A practitioner´s Approach Ed. Mc Graw Hill. Cuarta edición. 1997Larman C. “UML y patrones”. Ed. Prentice Hall. 1999.Página de Rational Rose en México:– http://www.abits.com.mx/