You are on page 1of 40

Universidad

Diseño de San
e Implementación Martín
de Sistemas de Porres

Facultad de Ingeniería y Arquitectura

Diseño e Implementación de Sistemas


Análisis y Diseño - II
Sesión: 05

Ing. Géner Zambrano L.


Ing. Héctor Henríquez T.
gzambrano@usmp.edu.pe
hhenriquez@usmp.edu.pe

Semestre: 2010_I
Diseño e Implementación de Sistemas

Flujo de trabajo

• Fases
– Iniciación: la idea inicial se lleva al punto de estar
suficientemente bien fundamentada para garantizar la
entrada en la fase de elaboración.
– Elaboración: se definen la visión del producto y su
arquitectura. Se expresan con claridad los requisitos del
sistema, se priorizan se usan para producir una base
arquitectónica
– Construcción: el software se lleva desde una base
arquitectónica ejecutable hasta su disponibilidad para los
usuarios.
– Transición: el software es puesto en manos de los
usuarios, se erradican errores y se añaden características
nuevas.
• Cada fase contiene una o más iteraciones
Diseño e Implementación de Sistemas
Diseño e Implementación de Sistemas
TRAZABILIDAD CON UML

Análisis Diseño

JSP

<<Build>>
Boundary

Form
JSP_Client
(from JSP) (from JSP_Client)
Diseño e Implementación de Sistemas
TRAZABILIDAD CON UML

Análisis Diseño

C o ntrol
Diseño e Implementación de Sistemas
TRAZABILIDAD CON UML

Análisis Diseño

Bean

Entity
ClaseDAO
Diseño e Implementación de Sistemas

SERVLET´s en las aplicaciones


WEB

SISTEMA DE VENTAS SELISA

Ejemplo
Diseño e Implementación de Sistemas
Modelo de Caso de Uso de Negocio

CUN_Vender Producto
Proveedor
(from Casos de uso del negocio)
(from Actores del Negocio)

Cliente
(from Actores del Negocio)
CUN_Gestionar pedido
(from Casos de uso del negocio)

CUN_Registrar cliente
(from Casos de uso del negocio)

CUN_Regis trar proveedor


Representante de ventas
(from Casos de uso del negocio)
(from Actores del Negocio)
Diseño e Implementación de Sistemas

Análisis del Negocio

CUN_Vender Producto R_N_Vender producto


(f rom Casos de uso del negocio)

CUN_Gestionar pedido R_N_Gestionar pedido


(f rom Casos de uso del negocio)

CUN_Registrar cliente R_N_Registrar cliente


(f rom Casos de uso del negocio)

CUN_Registrar proveedor R_N_Registrar proveedor


(f rom Casos de uso del negocio)
Diseño e Implementación de Sistemas
<<Business Use Case Realization>> R_N_Registrar cliente
: Vendedor : Cliente

Solicita datos Proporciona datos

Registra datos
Este proceso se
automatizara dentro del
CU Vender Producto.

: Cuaderno de registro
<<Business Use Case Realization>> R_N_Vender producto
Diseño e Implementación de Sistemas
: Cl iente : Vendedor

Consu l ta l i sta
de prod uctos
Sol i ci ta p ro ductos

¿Acepta
: Li sta de productos
productos?
NO Inform a di sp oni bi l i dad de productos y preci os
SI

Este proceso se
Se auto m ati zara en
autom ati zara dentro del
CU Consul tar Cl i en te
CU Vender Producto.
Acepta producto s

¿Cl i ente SI Regi stra


nuevo? cl i ente

: Cuaderno de regi stro


NO

Cancel a producto

Genera com probante de pago

Reci be co m probante de pago : Com probante de pago

Regi stra
venta
Re ci be producto s

Este proceso se
autom ati zara dentro del
: Cu aderno de ventas
CU Vender Producto.
Diseño e Implementación de Sistemas
Matriz de Proceso y Requerimiento

Nivel de
Código CUN Requerimientos Usuario Riesgos CU Descripción CU
Riesgo

1 Gestionar Cubrir el stock faltante Administrador 1. no contar con stock necesario para las ventas 8
Pedido

2 Registrar Control de los proveedores con cual Administrador 1. perder la información de los proveedores para 9
Proveedor cuenta la empresa futuros pedidos de mercadería
2. pagar demás a los proveedores

3 Registrar Contar con un registro de todos los Vendedor 1. perdida del documento donde se guarda a los 7 Mantenimiento El Vendedor tendrá la opción de realizar
Cliente clientes potenciales clientes. de Cliente
las Ventas de la empresa.(en este caso de
uso se encuentra el registro de cliente)

4 Vender Contar con una base de datos de los Vendedor 1. perdida de las facturas de ventas. 8 Vender El Vendedor tendrá la opción de realizar las
Producto productos existentes en Almacén. 2. perdida de clientes por tener una atención 7 Producto Ventas de la empresa
muy lenta Consultar
Producto
Consultar
Cliente
Mantenimiento
Producto
Gestionar
Reportes
Diseño e Implementación de Sistemas
Modelo de Caso de Uso

Usuario
(f rom Actores)

CU_Gestionar Reportes Administrador Vendedor


(from Casos de uso) (f rom Actores)
(f rom Actores)

CU_Mantenimiento de CU_Vender Producto CU_Mantenimiento de


productos clientes
(from Casos de uso) (from Casos de uso) (from Casos de uso)

<<include>> <<include>>
<<include>> <<include>>

CU_Consultar producto CU_Consultar cliente

(from Casos de uso) (from Casos de uso)

CU Buscar Producto CU Buscar Cliente


Diseño e Implementación de Sistemas
La Arquitectura de Análisis
RCUA_Gestionar Reportes RCUA_Vender Producto

Gestionar Vender
Reportes Producto

________________________________________________

Mantenimiento
Mantenimiento de
de Clientes
Productos

Consultar Cliente Consultar Producto


Mantenimiento de Clientes Mantenimiento de Productos

¿Cómo sale? Buscar Producto Buscar Cliente

Relaciones de includes
Diseño e Implementación de Sistemas
<<use-case realization>> RCUA - Mantenimiento de Productos
Registro satisfactorio
Incluye al CU
consultar producto
: I. Menu Principal

2: Muestra
Buscar Producto
1: Solicita Mantenimiento de Productos
11: muestra msg
6: Muestra formulario "Registrar Producto"

3: Muestra formulario "Consultar Producto"

5: seleciona buscar
7: ingresa datos del producto
9: registra producto
: Administrador 4: Ingresa datos del producto
8: seleciona registrar
: CRegistroProducto
: I.Mantenimiento de Productos

nombre, marca
codigo, nombre, marca,
descripcion, cantidad
precio unitario
RCUA Mantenimiento de Productos 10: registra producto
Flujo Basico
Registrar Producto

: Producto
Diseño e Implementación de Sistemas
Diagrama de Colaboracion- SB modificar Producto
Mensajes

6: Datos del producto

: I. Menu Principal 11: Modificacion Satisfactoria


CU Buscar Producto
2: Muestra 10: Muestra MSG
Incluye al CU
1: Solicita Mantenimiento de productos consultar producto
6: Muestra
4: Muestra formulario "Modificar producto" codigo, nombre, marca,
descripcion, cantidad
precio unitario
3: Solicita modificar producto
5: Busca producto
7: Modifica datos
: Administrador
8: Graba datos modificados
: I.Mantenimiento de Productos
: CModifProducto

RCUA Mantenimiento de Productos 9: Graba


SubFlujo
Modificar Producto

: Producto
Diseño e Implementación de Sistemas

Capas

<<layer>> <<layer>>
Presentacion Negocio

<<layer>> <<layer>>
Midleware Software
Diseño e Implementación de Sistemas

Capa - Presentación

<<subsystem>> <<subsystem>>
Gestionar Vender
Reporte Productos

<<subsystem>>
Mantenimiento <<subsystem>>
de Clientes Mantenimiento de
Productos

<<library>>
GUI_Comun
Diseño e Implementación de Sistemas
Configurar Rational Rose
Diseño e Implementación de Sistemas
Capa de Presentación

Server Page

Boundary

Client Page

Form
Diseño e Implementación de Sistemas

Relaciones entre JSP

<<Build>>

NewClass NewClass_Client
(f rom NewClass)

<<Link>>

NewClass4
NewClass2

Form
(f rom NewClass2)
<<Link>>

NewClass3 NewClass5
<<Server Page>>
Diseño e Implementación
JSP_MantenimientoProductos de Sistemas
Form_ConsultarPr
oducto
(from JSP_Mantenim
...)
Nombre
Marca

<<Build>>

JSP_MantenimientoProdu Form_RegistrarProducto
ctos JSP_MantenimientoProductos_Client (from JSP_MantenimientoProduc
. ..)
(from JSP_MantenimientoProductos)
Nombre
Marca
Descripcion
Cantidad
Precio Unitario

Form_ModificarProducto Form_EliminarProducto
(from JSP_MantenimientoProdu...) (from JSP_MantenimientoP...)
Codigo Codigo
Nombre Nombre
Marca Marca
Descripcion Descripcion
Cantidad Cantidad
Precio Unitario Precio Unitario
<<Server Page>>
Diseño e Implementación de Sistemas
JSP_MantenimientoCliente
Form_ConsultarCli
ente
(from JSP_Mantenim
...)
Dni/RUC

<<Build>>

JSP_MantenimientoClient Form_ModificarDatosCliente
e JSP_MantenimientoCliente_Client
(from JSP_MantenimientoCliente) (from JSP_MantenimientoCliente
. ..)
Nombre/Razon Social
Direccion
Dni/RUC
Telefono

Form_EliminarDatosCliente
(from JSP_MantenimientoCliente...)
Nombre/Razon Social
Direccion
Dni/RUC
Telefono
Diseño e Implementación de Sistemas
Capa de Negocio
Capa de Negocio
Diseño e Implementación de Sistemas

<<subsystem>> <<subsystem>>
Gestionar Vender
Reporte Producto

<<subsystem>> <<subsystem>>
Mantenimiento de Mantenimiento
Productos de Clientes

<<library>> <<library>>
Sql Utilitarios
Diseño e Implementación de Sistemas
Diseño e Implementación de Sistemas
<<use-case realization>> RCUD -
Mantenimiento de Clientes Error……….!!!!!!

DAOFactory
(from Administracion DAO)
MySql : int = 1
JSP_MantenimientoCliente
<<Build>>de Clientes)
(from Mantenimiento getDAOFactory()
getClienteDAO()
getProductoDAO()

HS
getVentaDAO()

JSP_MantenimientoCliente_Cl...
(from JSP_MantenimientoCliente) ServletModifClient
e
Vendedor (from servlets) MySqlDAOFactory
(from Administracion DAO) MySqlDBConn
(from Actores)
ServletModifCliente() (from Conexiones)
init() MySqlDAOFactory()
service() getConnection: Connection()
doGet()
doPost()
Form_ModificarDatosCliente
destroy()
(from JSP_MantenimientoCliente_Cli...)
Nombre/Razon Social
ClienteDAO
Direccion MySQLClienteDAO
HS
(from Interface)
Dni/RUC (from DAO)
Telefono
eliminar()
MySQLClienteDAO()
modificar()
ServletElimCliente obtener()

(from servlets)

ServletElimCliente() BeanCliente
(from beans)
init()
service() idCliente
doGet() tipoDoc
Form_EliminarDatosCliente doPost() nombre
destroy() direccion
(from JSP_MantenimientoCliente_Client)
telefono
Nombre/Razon Social distrito
Direccion
Dni/RUC
Telefono
Diseño e Implementación de Sistemas

HS
ServletBuscaCl
iente

ServletBuscaCliente()
init()
service()
doGet()
doPost()
destroy()

HS HS
ServletModifCliente ServletCliente

ServletModifCliente() buscarCliente()
init() modificarCliente()
service() EliminarCliente()
doGet() service()
init()
doPost()
destroy()
destroy()

HS
ServletElimCliente

ServletElimCliente()
init()
service()
doGet()
doPost()
destroy()
Diseño e Implementación de Sistemas
<<use-case realization>> RCUD - Mantenimiento de Clientes

<<Build>>
DAOFactory
(from Administracion DAO)
MySql : int = 1
JSP_MantenimientoCliente
JSP_MantenimientoCliente_Cl...
(from Mantenimiento de Clientes)
getDAOFactory()
(from JSP_MantenimientoCliente)
getClienteDAO()
getProductoDAO()
getVentaDAO()

HS MySqlDBConn
(from Conexiones)

Vendedor MySqlDAOFactory
getConnection: Connection()
(from Actores)
ServletCliente (from Administracion DAO)

(from servlets)
MySqlDAOFactory()
buscarCliente()
modificarCliente() ClienteDAO
EliminarCliente() (from Interface)
Form_ModificarDatosCliente service()
init()
(from JSP_MantenimientoCliente_Cli...) destroy() eliminar()
Nombre/Razon Social modificar()
Direccion obtener()
MySQLClienteDAO
Dni/RUC (from DAO)
Telefono
MySQLClienteDAO()

BeanCliente
(from beans)
idCliente
tipoDoc
Form_EliminarDatosCliente nombre
direccion
(from JSP_MantenimientoCliente_Client) telefono
Nombre/Razon Social distrito
Direccion
Dni/RUC
T elefono
HS
Diseño e Implementación de Sistemas
:
Form_Modif ic... :
:
DAOFactory
:
My SqlDAOFactory
:
ClienteDAO
: My SQLClienteDAO :
My SqlDBConn
: BeanCliente
: T_Cliente
: Vendedor Serv letMod...
1: busca cliente

2: carga datos incluidos

incluy e datos
consultar cliente
3: modif ica datos
4: serv ice( )

5: getDAOFactory ( )
6: getDAOFactory ( )

el id producto
no v aria
7: getClienteDAO( )
8: getClienteDAO( )
9: My SQLClienteDAO( )

10: //implementa

11: BeanCliente( )

12:

13:

14:

15: setDescripcion( )

16:

17: modif icar( )


18: modif icar( )

19: getConnection: Connection( )

20: BeanCliente( )

21:

22:

23:

24:

25: //update

se muestra mensaje
"modif icacion
flujo básico - modificar cliente satisf actoria"
Diseño e Implementación de Sistemas

subFlujo - eliminar cliente

HS
: : : MySQLClienteDAO : : BeanCliente
: Vendedor : : : T_Cliente
DAOFactory MySqlDAOFactory MySqlDBConn
Form_Elimina... : ClienteDAO
ServletEli...
1: busca cliente

2: cargan datos incluidos


incluye datos
consultar cliente

3: elimina datos
4: service( )
5: getDAOFactory( )
6: getDAOFactory( )

7: getClienteDAO( )
8: getClienteDAO( )
9: MySQLClienteDAO( )

10: //implementa

11: BeanCliente( )

12:

13: eliminar( )
14: eliminar( )
15: getConnection: Connection( )

16: BeanCliente( )

17:

18: //delete

se muestra mensaje
"eliminacion satisfactoria"
Diseño e Implementación de Sistemas
<<Build>>

Error……….!!!!!!
JSP_MantenimientoProductos
JSP_MantenimientoProductos_Cl...
(from Mantenimiento de Productos) (from JSP_MantenimientoProductos)

Form_EliminarProducto
(from JSP_MantenimientoProductos_Client)
Codigo
Nombre
Marca
DAOFactory
Descripcion
(from Administracion DAO)
Cantidad
My Sql : int = 1

HS
Precio Unitario
getDAOFactory ()
getClienteDAO()
getProductoDAO()
Serv letElimProduct getVentaDAO()
o
(from servlets)

Serv letElimProducto() My SqlDAOFactory


init() (from Administracion DAO)
serv ice()
Vendedor doGet()
My SqlDAOFactory ()
doPost()
(from Actores)
destroy ()
Form_Modif icarProducto ProductoDAO My SQLProductoDAO
(from Interface) (from DAO)
(from JSP_MantenimientoProductos_Client)
Codigo M
insertar() My SQLProductoDAO() (fr

HS
Nombre
modif icar() registrarProducto()
Marca
eliminar() obtener() getConnect
Descripcion
obtener()
Cantidad
registrarProducto()
Precio Unitario
Serv letModif Produ
cto
modif icar()
(from servlets)

Serv letModif Producto()


init()
serv ice()
doGet()
doPost()
destroy ()

HS
BeanProducto
Form_RegistrarProducto (from beans)
Serv letRegistroPro
(from JSP_MantenimientoProductos_Client) ducto
Nombre (from servlets)
Marca
Descripcion Serv letRegistroProducto()
Cantidad
Precio Unitario
init()
serv ice()
<<use-case realization>> RCU
doGet()
registrar() doPost()
destroy ()
Mantenimiento de Productos
Diseño e Implementación de Sistemas

HS HS HS HS
ServletRegistroProducto ServletBuscaProducto ServletModifProducto ServletElimProducto

ServletRegistroProducto() ServletBuscaProductos() ServletModifProducto() ServletElimProducto()


init() init() init() init()
service() service() service() service()
doGet() doGet() doGet() doGet()
doPost() doPost() doPost() doPost()
destroy() destroy() destroy() destroy()

HS
ServletProducto

service()
init()
destroy()
ServletRegProducto()
ServletBuscarProducto()
ServletModProducto()
ServletElimProducto()
Diseño e Implementación de Sistemas
<<Build>>

JSP_MantenimientoProductos Form_EliminarProducto DAOFactory


JSP_MantenimientoProductos_Cl...
(from Mantenimiento de Productos) (from JSP_MantenimientoProductos) (from JSP_MantenimientoProductos_Cli...) (from Administracion DAO)
My Sql : int = 1
Codigo
Nombre
getDAOFactory ()
Marca
getClienteDAO()
Descripcion
getProductoDAO()
Cantidad
getVentaDAO()
Precio Unitario

My SqlDBConn
(from Conexiones)

getConnection: Connection()

My SqlDAOFactory
(from Administracion DAO)
HS My SqlDAOFactory ()

Vendedor Form_Modif icarProducto


Serv letProducto
(from Actores) (from JSP_MantenimientoProductos_Cli...)
(from servlets)
Codigo
Nombre
service()
Marca init()
Descripcion destroy() ProductoDAO
Cantidad ServletRegProducto()
(from Interface) My SQLProductoDAO
Precio Unitario ServletBuscarProducto()
(from DAO)
ServletModProducto()
ServletElimProducto() insertar()
modif icar() My SQLProductoDAO()
modif icar()
eliminar() registrarProducto()
obtener() obtener()
registrarProducto()

BeanProducto
(from beans)

BeanProducto()
setNombre()
getNombre()
setMarca()
getMarca()
Form_RegistrarProducto setDescripcion()
(from JSP_MantenimientoProductos_Cli...) getDescripcion()
setStock()
Nombre
getStock()
Marca
setPUnitario()
Descripcion
getPUnitario()
Cantidad
setIdProducto()
Precio Unitario
getIdProducto()
registrar() <<use-case realization>> RCUD -
Mantenimiento de Productos
Diseño e Implementación
HS de Sistemas
: : : : :
: Administrador : :
DAOFactory MySqlDAOFactory MySQLProductoDAO MySqlDBConn BeanProducto : T _Producto
Form_Registr... : Produc...
ServletProducto
1: registrar producto
2: service( )
3: getDAOFactory( )

4: MySqlDAOFactory( )

5: getProductoDAO( )
6: getProductoDAO( )
7: MySQLProductoDAO( )

8: //implementa

9: BeanProducto( )

10: setIdProducto( )

11: setNombre( )
12: setMarca( )

13: setDescripcion( )

14: setStock( )
15: setPUnitario( )

16: registrarProducto( )
17: registrarProducto( )

18: getConnection: Connection( )

19: BeanProducto( )

20: getIdProducto( )

21: getNombre( )
22: getMarca( )
23: getDescripcion( )
24: getStock( )
25: getPUnitario( )

26: //insert into

flujo básico - registrar producto


Diseño e Implementación
HS de Sistemas : : : : :
: Administrador : :
: DAOFactory My SqlDAOFactory My SQLProductoDAO My SqlDBConn BeanProducto : T_Producto
Form_Modif ic... Produc...
Serv letProducto
1: busca producto

2: carga datos incluidos

incluy e datos
consultar
productos

3: modif ica datos


4: serv ice( )
5: getDAOFactory ( )
el id producto
no v aria
6: getDAOFactory ( )

7: getProductoDAO( )
8: getProductoDAO( )
9: My SQLProductoDAO( )

10: //implementa

11: BeanProducto( )

12: setIdProducto( )

13: setNombre( )

14: setMarca( )
15: setDescripcion( )
16: setStock( )
17: setPUnitario( )
18: modif icar( )
19: modif icar( )

20: getConnection: Connection( )

21: BeanProducto( )

22: getIdProducto( )
23: getNombre( )
24: getMarca( )

25: getDescripcion( )
26: getStock( ) se muestra mensaje
"modif icacion
27: getPUnitario( ) satisf actoria"

28: //update

subFlujo - modificar producto


Diseño e Implementación
HS de Sistemas
: : : : :
: Administrador : : : T_Producto
DAOFactory MySqlDAOFactory MySQLProductoDAO MySqlDBConn BeanProducto
Form_Elimina... : Produc...
ServletProducto
1: busca producto

2: cargan datos incluidos

incluye datos
consultar
productos

3: elimina datos
4: envia
5: getDAOFactory( )
6: getDAOFactory( )

7: getProductoDAO( )
8: getProductoDAO( )

9: MySQLProductoDAO( )

10: //implementa

11: BeanProducto( )

12: setIdProducto( )

13: setNombre( )

14: eliminar( )

15: eliminar( )

16: getConnection: Connection( )

17: BeanProducto( ) se muestra mensaje


"eliminacion satisfactoria"
18: getIdProducto( )

19: //delete

subFlujo - eliminar producto


Diseño e Implementación de Sistemas
Persistencia
Diseño e Implementación de Sistemas

T_Venta
T_Cliente IdVenta : VARCHAR2(15)
T_Empleado
IdEmpleado : VARCHAR2(15) <<Non-Identifying>>
IdCliente : VARCHAR2(15) <<Non-Identifying>> IdEmpleado : VARCHAR2(15)
IdCliente : VARCHAR2(15)
TipoDoc : NUMBER(10, 0) 0..* 1 Nombre : VARCHAR2(45)
SubTotal : NUMBER(8, 2)
Direccion : VARCHAR2(45) Usuario : VARCHAR2(20)
Igv : NUMBER(8, 2)
Nombre : VARCHAR2(45) 1 0..* Password : VARCHAR2(20)
Total : NUMBER(8, 2)
Telefono : VARCHAR2(45) Tipo : VARCHAR2(15)
Fecha : DATE
Distrito : VARCHAR2(20)
<<PK>> PK_T_Venta() <<PK>> PK_T_Usuario()
<<PK>> PK_T_Cliente()
<<FK>> FK_T_Usuario()
1 <<FK>> FK_T_Venta299()
1

<<Identifying>>
<<Non-Identifying>>

1..*
0..*

T_Producto
T_DetalleVenta
IdProducto : VARCHAR2(15)
IdDetalle : VARCHAR2(15)
IdCliente : VARCHAR2(15) <<Identifying>>
IdProducto : VARCHAR2(15)
Nombre : VARCHAR2(45)
IdVenta : VARCHAR2(15)
Marca : VARCHAR2(45)
Importe : NUMBER(8, 2)
Descripcion : VARCHAR2(45) 1 0..*
Cantidad : NUMBER(10, 0)
Stock : NUMBER(10, 0)
PUnitario : NUMBER(8, 2)
<<PK>> PK_T_DetalleVenta()
<<FK>> FK_T_Producto()
<<PK>> PK_T_Producto()
<<FK>> FK_T_Venta()
<<FK>> FK_T_Cliente()
Modelo Físico
Universidad
Diseño de San
e Implementación Martín
de Sistemas de Porres

Facultad de Ingeniería y Arquitectura

Diseño e Implementación de Sistemas


Análisis y Diseño - II
Sesión: 05

Ing. Géner Zambrano L.


Ing. Héctor Henríquez T.
gzambrano@usmp.edu.pe
hhenriquez@usmp.edu.pe

Semestre: 2010_I

You might also like