46
UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIA CARRERA DE INGENIERIA DE SISTEMAS PROYECTO FINAL ARQUITECTURA SOA - MOVIL SISTEMA DE GESTION PARA LA ADMINISTRACION DE PEDIDOS DE LA EMPRESA P&N SA MATERIA: ARQUITECTURA DE SOFTWARE

Arquitectura Soa - Movil

Embed Size (px)

Citation preview

Page 1: Arquitectura Soa - Movil

UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO

FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIA

CARRERA DE INGENIERIA DE SISTEMAS

PROYECTO FINALARQUITECTURA SOA - MOVIL

SISTEMA DE GESTION PARA LA ADMINISTRACION DE

PEDIDOS DE LA EMPRESA P&N SA

MATERIA: ARQUITECTURA DE SOFTWARE

Page 2: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

DOCENTE: ING. VEIZAGA GONZALES JOSUE OBED

ALUMNA: MARIA NATALY GONZALEZ CASTRO

SANTA CRUZ – BOLIVIAENERO-2012

2 INF552 - Arquitectura de Software

Page 3: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

Tabla de contenido

No se encontraron elementos de tabla de contenido.

i INF552 - Arquitectura de Software

Page 4: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

1. FLUJO DE TRABAJO: REQUISITOS

2 INF552 - Arquitectura de Software

Page 5: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

REQUISITOS FUNCIONALES:

1.1. IDENTIFICAR ACTORES

SISTEMA DE GESTION PARA LA ADMINISTRACION DE PEDIDOS DE LA EMPRESA P&N SA

EmpleadoAdminstrador Cliente

1.2. IDENTIFICAR CASOS DE USO

CU1. Gestionar EmpleadoCU2. Gestionar ClienteCU3. Gestionar ProductoCU4. Gestionar Tipo VentaCU5. Registrar Pedido

1.3. PRIORIZAR CASOS DE USO

Nro. Caso de Uso Estado Prioridad RiesgoCU1 Gestionar Empleado Aprobado Importante NormalCU2 Gestionar Cliente Aprobado Importante NormalCU3 Gestionar Producto Aprobado Importante NormalCU4 Gestionar Tipo Venta Aprobado Importante NormalCU5 Registrar Pedido Aprobado Critico Critico

1.4. DETALLAR CASOS DE USO

CU1: Gestionar Empleado

3 INF552 - Arquitectura de Software

Page 6: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

Empleado

Gestionar Empleado

Caso de Uso CU1: Gestionar EmpleadoActores EmpleadoActor Iniciador EmpleadoPre-Condiciones NingunoPost-Condiciones Empleado registrado en el sistemaResumen Este caso de uso registra los datos personales del Empleado para posteriormente

continuar con la emisión como docente y/o la inscripción como alumno.Acciones del Actor Registrar:

1.1.- Solicita crear Nuevo Empleado1.3.- ingreso sus datos personales 1.4.- guardo los datos del EmpleadoModificar:2.1.- Busco al empleado por su código.2.3.- Modifico los datos.2.4.- Presiono botón Modificar.Eliminar:3.1.- Busco al empleado por su código.3.3.- Presiono botón Eliminar.

Acciones del sistema

1.2.- Genera el código automáticamente1.5.- Valida y guarda los datos del Empleado.2.2, 3.2.- busca y muestra los datos del Empleado.2.5.- valida y guarda los datos actualizados del Empleado.3.3.- Elimina al empleado.

Curso Alternativo o Alterno

1.4,2.4.- error al introducir los datos del Empleado2.1,3.1.- no existe ese código en el sistema

Interfaz del Prototipo:

4 INF552 - Arquitectura de Software

Page 7: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

CU2: Gestionar Cliente

Empleado

Gestionar Cliente

Caso de Uso Gestionar Cliente

Actores Empleado, clienteActor Iniciador EmpleadoPre-Condiciones Ninguno

Post-Condiciones Cliente registrado en el sistemaResumen Registrar datos de los clientes.Acciones del Actor 1.1.- Solicita crear Nuevo Cliente

1.3.- ingreso los datos requeridos y Presiono botón Guardar.2.1.- Selecciono el Cliente de la lista.2.3.- y Modifico los datos y Presiono botón Modificar.3.1.- Selecciono el Cliente de la lista y Presiono botón Eliminar.

Acciones del sistema 1.2.- genera el código automáticamente1.5.- Valida los datos y Guarda los datos del Cliente.2.3.- valida y Modifica los datos actualizados del Cliente.3.3.- Elimina al Cliente.

Curso Alternativo o Alterno

1.4 error al introducir los datos del Cliente2.2,3.1.- no existe ese código en el sistema

5 INF552 - Arquitectura de Software

Page 8: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1Interfaz ClienteMovil:

Interfaz ClienteEscritorio:

CU3: Gestionar Producto

6 INF552 - Arquitectura de Software

Page 9: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

Gestionar Producto

Administrador

Caso de Uso CU3: Gestionar ProductoActores AdministradorActor Iniciador AdministradorPre-Condiciones NingunoPost-Condiciones Producto registrado en el sistema.Resumen Este caso de uso registrar los Productos que se llevaran a cabo en algún

Producto determinadoAcciones del Actor 1.1.- Solicita crear Nuevo Producto

1.3.- ingreso los datos requeridos por el sistema.1.4.- guardo los datos del Producto2.1.- Busco al Producto por su código.2.3.- Modifico los datos.2.4.- Presiono botón Modificar.3.1.- Busco al Producto por su código.3.3.- Presiono botón Eliminar.

Acciones del sistema 1.2.- genera el código automáticamente1.5.- Valida los datos.1.6.- Guarda los datos del Producto.2.2.- busca y muestra los datos del Producto.2.5.- valida y guarda los datos actualizados del Producto.3.2.- busca y muestra los datos del Producto.3.3.- Elimina al Producto.

Curso Alternativo o Alterno

1.4,2.4.- error al introducir los datos del Producto2.1,3.1.- no existe ese código en el sistema

Interfaz del Prototipo:

7 INF552 - Arquitectura de Software

Page 10: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

CU4: Gestionar Tipo Venta

Gestionar Tipo Venta

Administrador

Caso de Uso CU4: Gestionar Tipo VentaActores AdministradorActor Iniciador AdministradorPre-Condiciones NingunoPost-Condiciones Asignar Tipo Venta a una Edición.Resumen Administrar datos de las Tipo Ventas, donde se llevaran a cabo los cursos.Acciones del Actor 1.1.- Solicita crear Nuevo Tipo Venta

1.3.- ingreso los datos requeridos por el sistema y Presiono Guardar.2.1.- Selecciono el Tipo Venta de la lista y Modifico los datos.2.2.- Presiono botón Modificar.3.1.- Selecciono el Tema de la lista y Presiono botón Eliminar.

Acciones del sistema 1.2.- genera el código automáticamente1.5.- Valida los datos y Guarda los datos del Tipo Venta.2.3.- valida y Modifica los datos actualizados del Tipo Venta.3.3.- Elimina al Tipo Venta.

Curso Alternativo o Alterno

1.5 error al introducir los datos del Tipo Venta2.2,3.1.- no existe ese código en el sistema

8 INF552 - Arquitectura de Software

Page 11: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1Interfaz del Prototipo:

CU5: Registrar Pedido

Registrar Pedido

Empleado

Caso de Uso CU5: Registrar PedidoActores EmpleadoActor Iniciador EmpleadoPre-Condiciones Gestionar Cliente, Gestionar Empleado, Gestionar Producto,

Gestionar TipoVentaPost-Condiciones NingunoResumen Registrar los datos necesarios para crear la Pedido de un ProductoAcciones del Actor 1.1.- Solicita crear Nueva Pedido

1.3.-ingreso los datos requeridos por el sistema.1.4.- Buscar y seleccionar datos del cliente, empleado y tipo venta.1.5.- Introducir los productos para registrar el pedido.1.6.- guardo los datos la Pedido

Acciones del sistema 1.2.- genera el código automáticamente1.6.- Valida los datos.1.7.- Guarda los datos la Pedido.

Curso Alternativo o Alterno

1.6.- error al introducir los datos la Pedido.

9 INF552 - Arquitectura de Software

Page 12: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1Interfaz del Prototipo PedidoMovil:

10 INF552 - Arquitectura de Software

Page 13: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

Interfaz del Prototipo PedidoEscritorio:

11 INF552 - Arquitectura de Software

Page 14: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

1.5. DIAGRAMA GENERAL DE CASOS DE USO

Gestionar Cliente

Gestionar Producto

Gestionar Tipo Venta

Registrar Pedido

Gestionar Empleado

Empleado

Adminstrador

<<include>>

<<include>>

<<include>>

<<include>>

Cliente

12 INF552 - Arquitectura de Software

Page 15: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

REQUISITOS NO FUNCIONALES:

El software será Preciso, ya que contamos con la precisión que el SGBD MySQL nos ofrece, el cual nos brinda el almacenamiento, como en la obtención de información gracias a las consultas que se efectúan constantemente en los formularios y en las transacciones de estas.

El software será recuperable, ya que el sistema cuenta con un plan de contingencia, la cual no tiene dificultad alguna para volver a funcionar en posibles fallas inesperadas

El software trabajara aprovechando el adecuado uso de recursos del sistemas para que de esta manera sea eficiente

Sera de uso portable, ya que se podrá adaptar a diferentes cambios de recursos

El Software será de fácil mantenimiento, ya que contara con un modulo para diagnosticar posibles fallas, y realizar cambios necesarios al software

REQUISITOS DE RESTRICCION:

Tiempo: El tiempo de Desarrollo estimado para el desarrollo de software estará indefinido momentáneamente, ya que está en constante implementación por las necesidades del propietario de la empresa P&N SA.

Pero para el desarrollo de prototipo se espera poder obtenerlo en función de un semestre, con el cual se obtendrá algunos módulos de los puntos establecidos para el completo desarrollo del sistema.

Costo: El costo estimado para el desarrollo de software, basado en tablas de recursos y estimaciones es de “1.000 $us.”

Recursos : Este software será desarrollado mediante las siguientes herramientas Plataforma: se desarrollara en el sistema operativo Windows XP x86 IDE: NetBeans 6.9.1 con el lenguaje JAVA SGBD: El gestor de base de datos será MySQL Case: StarUML para el modelo de diagramas de UML

13 INF552 - Arquitectura de Software

Page 16: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

2. FLUJO DE TRABAJO: ANALISIS

14 INF552 - Arquitectura de Software

Page 17: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

2.1. Análisis de la Arquitectura

2.1.1. Identificar Paquetes

Adm PedidosAdm Recursos

2.1.2. Identificar Casos de Uso por Paquete

Paquete Adm Recursos:

Adm Recursos

Gestionar Empleado

Gestionar Tipo Venta

Gestionar Producto

<<trace>>

<<trace>>

<<trace>>

15 INF552 - Arquitectura de Software

Page 18: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1Adm Recursos

Gestionar Empleado

Gestionar Tipo Venta

Gestionar Producto

Administrador

Paquete Adm Pedidos:

Adm Pedidos

Gestionar Cliente

Registrar Pedido

<<trace>>

<<trace>>

16 INF552 - Arquitectura de Software

Page 19: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1Adm Pedidos

Empleado

Registrar Pedido

Gestionar Cliente

<<include>>

Gestionar Producto

Gestionar Tipo Venta

Gestionar Empleado

<<include>>

<<include>>

<<include>>

2.2. Análisis de Casos de Uso

2.2.1. Diagramas de ColaboraciónCU1. Gestionar Empleado

CU2. Gestionar Cliente

CU3. Gestionar Producto

17 INF552 - Arquitectura de Software

Page 20: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

CU4. Gestionar Tipo Venta

CU5. Registrar Pedido

2.3. Análisis de Paquetes

Adm RecursosAdm Pedidos

18 INF552 - Arquitectura de Software

Page 21: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

3. FLUJO DE TRABAJO: DISEÑO

3.1. Diseño de la Arquitectura3.1.1. Escenario del Usuario y Subsistemas

19 INF552 - Arquitectura de Software

Page 22: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

Sistema de Pedidos de P&N SA.

Adm Recursos

Adm PedidosUsuario

USUARIOS

Administrador: es el usuario encargado de registrar toda la información relacionada que se maneja sobre los cursos que imparte la empresa

Empleado: Es el usuario encargado de Registrar las inscripciones y notas sobre los cursos que imparte la empresa

3.1.2. Arquitectura Física del Subsistema

MySQL<<Base Datos>>

Pedidos_Movil<<Cliente>>

Pedidos

Usuario

Pedidos_WServidor<<Servidor>>

Pedidos_Escritorio<<Cliente>>

Presentacion

<<conexion>>

<<conexion>>

Modelo

Servicios

Negocio

Datos

Empleado

Diagrama de Despliegue

3.1.3. Arquitectura Lógica del Subsistema

20 INF552 - Arquitectura de Software

Page 23: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

Pedidos_Escritorio: Presentacion<<Cliente>>

IEmpleado<<form>>

IPedido<<form>>

ICliente<<form>>

ITipoVenta<<form>>

IProducto<<form>>

Servidor

Servicios

WSEmpleado<<Web Service>>

WSCliente<<Web Service>>

WSProducto<<Web Service>>

WSTipoVenta<<Web Service>>

WSPedido<<Web Service>>

Modelo

Negocio

NCliente<<class>>

NTipoVenta<<class>>

NProducto<<class>>

NEmpleado<<class>>

NPedido<<class>>

Datos

Pedido<<class>>

Cliente<<class>>

TipoVenta<<class>>

Producto<<class>>

Empleado<<class>>

DetallePedido<<class>>

HibernateUtil<<class>>

Pedidos_Movil: Pedidos<<Cliente>>

FrmPedido<<form>>

FrmCliente<<form>>

21 INF552 - Arquitectura de Software

Page 24: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.13.2. Diseño de casos de uso

3.2.1. Diagrama de Secuencia y Diagrama Parcial de Clases

CU1. Gestionar Empleado

22 INF552 - Arquitectura de Software

Page 25: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

class Empleado

javax.swing.JFrame

IEmpleado

~ empleadows: WSEmpleado- D_FechaIngreso: datechooser.beans.DateChooserCombo- Listar: javax.swing.JTable- RB_Sexo_Femenino: javax.swing.JRadioButton- RB_Sexo_Masculino: javax.swing.JRadioButton- TF_CI: javax.swing.JTextField- TF_Cod: javax.swing.JTextField- TF_Direccion: javax.swing.JTextField- TF_Nombre: javax.swing.JTextField- TF_Telefono: javax.swing.JTextField- btnEliminar: javax.swing.JButton- btnModificar: javax.swing.JButton- btnNuevo: javax.swing.JButton- btnRegistrar: javax.swing.JButton- btnSalir: javax.swing.JButton

+ IEmpleado()- initComponents() : void- btnNuevoActionPerformed(java.awt.event.ActionEvent) : void- btnRegistrarActionPerformed(java.awt.event.ActionEvent) : void- btnModificarActionPerformed(java.awt.event.ActionEvent) : void- btnEliminarActionPerformed(java.awt.event.ActionEvent) : void- btnSalirActionPerformed(java.awt.event.ActionEvent) : void- ListarMouseClicked(java.awt.event.MouseEvent) : void+ main(String[]) : void+ Nuevo() : void+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ Listar() : void+ validar() : boolean+ ObtenerCantFilas(String) : int+ getFecha(DateChooserCombo) : String+ setFecha(DateChooserCombo, String) : void+ obtenerFechadelSistema(DateChooserCombo) : void

WSEmpleado

~ cempleado: CEmpleado = new CEmpleado()

+ nuevoEmpleado() : int+ insertarEmpleado(int, String, int, String, String, String, int) : void+ modificarEmpleado(int, String, int, String, String, String, int) : void+ eliminarEmpleado(int) : void+ l istEmpleados() : String+ listNombresEmpleados() : String+ obtCodEmpleado(String) : int+ obtNombreEmpleado(int) : String

CEmpleado

~ empleado: Empleado = new Empleado()

+ CEmpleado()+ NuevoCodEmpleado() : int+ RegistrarEmpleado(int, String, int, String, String, String, int) : void+ ModificarEmpleado(int, String, int, String, String, String, int) : void+ EliminarEmpleado(int) : void+ ListarEmpleados() : String+ ListarNombresEmpleados() : String+ ObtenerCodEmpleado(String) : int+ ObtenerNombreEmpleado(int) : String+ ValidarEmpleado(String) : boolean

Empleado

- cod: int- nombre: String- ci: int- sexo: String- fechaI: String- dir: String- telef: int- estado: int- conexion: Conexion- sta: Statement

+ Empleado()+ Empleado(Conexion)+ getCi() : int+ setCi(int) : void+ getCod() : int+ setCod(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getDir() : String+ setDir(String) : void+ getEstado() : int+ setEstado(int) : void+ getFechaI() : String+ setFechaI(String) : void+ getNombre() : String+ setNombre(String) : void+ getSexo() : String+ setSexo(String) : void+ getSta() : Statement+ setSta(Statement) : void+ getTelef() : int+ setTelef(int) : void+ NuevoCod() : int+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ ObtenerPorNombre(String) : void+ ObtenerPorCod(int) : void+ ObtenerEmpleados() : String+ ObtenerTodoEmpleados() : String+ toString() : String- CargarDatos(ResultSet) : void

Conexion

+ DRIVER: String = "com.mysql.jdbc...+ BASEDEDATOS: String = "jdbc:mysql://l...+ USUARIO: String = "root"+ PASSWORD: String = ""- con: Connection- res: ResultSet- sta: Statement

+ Conexion()+ conectar() : void+ desconectar() : void+ getCon() : Connection+ setCon(Connection) : void+ getRes() : ResultSet+ setRes(ResultSet) : void+ getSta() : Statement+ setSta(Statement) : void+ CantidadTuplas(String) : int+ main(String[]) : void

+conexion

+empleado

+cempleado

+empleadows

23 INF552 - Arquitectura de Software

Page 26: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

CU2. Gestionar Cliente

24 INF552 - Arquitectura de Software

Page 27: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

25 INF552 - Arquitectura de Software

Page 28: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

class Cliente

Cliente

- cod: int- nombre: String- ci: int- dir: String- telef: int- estado: int- conexion: Conexion- sta: Statement

+ Cliente()+ Cliente(Conexion)+ getCi() : int+ setCi(int) : void+ getCod() : int+ setCod(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getDir() : String+ setDir(String) : void+ getEstado() : int+ setEstado(int) : void+ getNombre() : String+ setNombre(String) : void+ getTelef() : int+ setTelef(int) : void+ NuevoCod() : int+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ Listar() : String+ ObtenerPorNombre(String) : void+ ObtenerPorCod(int) : void+ ObtenerClientes() : String- CargarDatos(ResultSet) : void+ toString() : String

CCliente

- cliente: Cliente

+ CCliente()+ NuevoCodCliente() : int+ RegistrarCliente(int, String, int, String, int) : void+ ModificarCliente(int, String, int, String, int) : void+ EliminarCliente(int) : void+ ListarClientes() : String+ ObtenerCliente(int) : String+ ListarNombresClientes() : String+ ObtenerCodCliente(String) : int+ ObtenerNombreCliente(int) : String+ ValidarCliente(String) : boolean

WSCliente

~ ncliente: CCliente = new CCliente()

+ nuevoCliente() : int+ insertarCliente(int, String, int, String, int) : void+ modificarCliente(int, String, int, String, int) : void+ eliminarCliente(int) : void+ ListClientes() : String+ ListNombresClientes() : String+ obtCliente(int) : String+ obtCodCliente(String) : int+ obtNombreCliente(int) : String

javax.swing.JFrame

ICliente

~ clientews: WSCliente- Listar: javax.swing.JTable- TF_CI: javax.swing.JTextField- TF_Cod: javax.swing.JTextField- TF_Direccion: javax.swing.JTextField- TF_Nombre: javax.swing.JTextField- TF_Telefono: javax.swing.JTextField- btnEliminar: javax.swing.JButton- btnModificar: javax.swing.JButton- btnNuevo: javax.swing.JButton- btnRegistrar: javax.swing.JButton- btnSalir: javax.swing.JButton

+ ICliente()- initComponents() : void- btnNuevoActionPerformed(java.awt.event.ActionEvent) : void- btnRegistrarActionPerformed(java.awt.event.ActionEvent) : void- btnModificarActionPerformed(java.awt.event.ActionEvent) : void- btnEliminarActionPerformed(java.awt.event.ActionEvent) : void- btnSalirActionPerformed(java.awt.event.ActionEvent) : void- ListarMouseClicked(java.awt.event.MouseEvent) : void+ main(String[]) : void+ Nuevo() : void+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ Listar() : void+ validar() : boolean+ ObtenerCantFilas(String) : int

MIDletCommandListener

Pedidos: FrmCliente

+ wc: WebToMobileClient = new WebToMobile...- midletPaused: boolean = false- exitCommand: Command- RegistrarCliente: Command- BuscarCliente: Command- EliminarCliente: Command- ModificarCliente: Command- okCommand: Command- Atras: Command- exitCommand1: Command- okListarCliente: Command- MenuCliente: List- FrmCliente: Form- TF_Nombre: TextField- TF_CI: TextField- TF_Cod: TextField- TF_Telefono: TextField- TF_Direccion: TextField- ListarClientes: Form- tableItem1: TableItem

+ Pedidos()- initialize() : void+ startMIDlet() : void+ resumeMIDlet() : void+ switchDisplayable(Alert, Displayable) : void+ commandAction(Command, Displayable) : void+ getExitCommand() : Command+ MenuPrincipalAction() : void+ «property get» getMenuCliente() : List+ MenuClienteAction() : void+ «property get» getFrmCliente() : Form+ «property get» getTF_Cod() : TextField+ «property get» getTF_Nombre() : TextField+ «property get» getTF_CI() : TextField+ «property get» getTF_Direccion() : TextField+ «property get» getTF_Telefono() : TextField+ «property get» getBuscarCliente() : Command+ «property get» getRegistrarCliente() : Command+ «property get» getModificarCliente() : Command+ «property get» getEliminarCliente() : Command+ «property get» getAtras() : Command+ «property get» getListarClientes() : Form+ getOkCommand() : Command+ getExitCommand1() : Command+ getOkListarCliente() : Command+ getDisplay() : Display+ exitMIDlet() : void+ startApp() : void+ pauseApp() : void+ destroyApp(boolean) : void+ validar() : boolean+ ObtenerCantFilas(String) : int

Conexion

+ DRIVER: String = "com.mysql.jdbc...+ BASEDEDATOS: String = "jdbc:mysql://l...+ USUARIO: String = "root"+ PASSWORD: String = ""- con: Connection- res: ResultSet- sta: Statement

+ Conexion()+ conectar() : void+ desconectar() : void+ getCon() : Connection+ setCon(Connection) : void+ getRes() : ResultSet+ setRes(ResultSet) : void+ getSta() : Statement+ setSta(Statement) : void+ CantidadTuplas(String) : int+ main(String[]) : void

~clientews

~ncliente

-cliente -conexion

26 INF552 - Arquitectura de Software

Page 29: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

CU3. Gestionar Producto

27 INF552 - Arquitectura de Software

Page 30: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

class Producto

WSProducto

~ cproducto: CProducto = new CProducto()

+ nuevoProducto() : int+ insertarProducto(int, String, int, float) : void+ modificarProducto(int, String, int, float) : void+ eliminarProducto(int) : void+ listProductos() : String+ listNombresProducto() : String+ obtCodProducto(String) : int+ obtNombreProducto(int) : String+ obtProducto(String) : String

CProducto

~ producto: Producto = new Producto()

+ CProducto()+ NuevoCodProducto() : int+ RegistrarProducto(int, String, int, float) : void+ ModificarProducto(int, String, int, float) : void+ EliminarProducto(int) : void+ ListarProductos() : String+ ListarNombresProducto() : String+ ObtenerCodProducto(String) : int+ ObtenerNombreProducto(int) : String+ ObtenerProducto(String) : String

Producto

- cod: int- nombre: String- cantidad: int- precioV: float- estado: int- conexion: Conexion- sta: Statement

+ Producto()+ Producto(Conexion)+ getCantidad() : int+ setCantidad(int) : void+ getCod() : int+ setCod(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getEstado() : int+ setEstado(int) : void+ getNombre() : String+ setNombre(String) : void+ getPrecioV() : float+ setPrecioV(float) : void+ NuevoCod() : int+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ ObtenerPorNombre(String) : void+ ObtenerPorCod(int) : void+ ObtenerProductos() : String+ ObtenerTodoProductos() : String- CargarDatos(ResultSet) : void+ toString() : String

javax.swing.JFrame

IProducto

~ productows: WSProducto- Listar: javax.swing.JTable- TF_Cantidad: javax.swing.JTextField- TF_Cod: javax.swing.JTextField- TF_Nombre: javax.swing.JTextField- TF_PrecioV: javax.swing.JTextField- btnEliminar: javax.swing.JButton- btnModificar: javax.swing.JButton- btnNuevo: javax.swing.JButton- btnRegistrar: javax.swing.JButton- btnSalir: javax.swing.JButton

+ IProducto()- initComponents() : void- btnNuevoActionPerformed(java.awt.event.ActionEvent) : void- btnRegistrarActionPerformed(java.awt.event.ActionEvent) : void- btnModificarActionPerformed(java.awt.event.ActionEvent) : void- btnEliminarActionPerformed(java.awt.event.ActionEvent) : void- btnSalirActionPerformed(java.awt.event.ActionEvent) : void- ListarMouseClicked(java.awt.event.MouseEvent) : void+ main(String[]) : void+ Nuevo() : void+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ Listar() : void+ validar() : boolean+ ObtenerCantFilas(String) : int

Conexion

+ DRIVER: String = "com.mysql.jdbc...+ BASEDEDATOS: String = "jdbc:mysql://l...+ USUARIO: String = "root"+ PASSWORD: String = ""- con: Connection- res: ResultSet- sta: Statement

+ Conexion()+ conectar() : void+ desconectar() : void+ getCon() : Connection+ setCon(Connection) : void+ getRes() : ResultSet+ setRes(ResultSet) : void+ getSta() : Statement+ setSta(Statement) : void+ CantidadTuplas(String) : int+ main(String[]) : void

~productows

+producto

+cproducto

-conexion

28 INF552 - Arquitectura de Software

Page 31: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

CU4. Gestionar Tipo Venta

29 INF552 - Arquitectura de Software

Page 32: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

class TipoVenta

Conexion

+ DRIVER: String = "com.mysql.jdbc...+ BASEDEDATOS: String = "jdbc:mysql://l...+ USUARIO: String = "root"+ PASSWORD: String = ""- con: Connection- res: ResultSet- sta: Statement

+ Conexion()+ conectar() : void+ desconectar() : void+ getCon() : Connection+ setCon(Connection) : void+ getRes() : ResultSet+ setRes(ResultSet) : void+ getSta() : Statement+ setSta(Statement) : void+ CantidadTuplas(String) : int+ main(String[]) : void

javax.swing.JFrame

ITipoVenta

~ tipoventaws: WSTipoVenta- JTextField11: javax.swing.JLabel- Listar: javax.swing.JTable- TF_Cod: javax.swing.JTextField- TF_Descripcion: javax.swing.JTextField- TF_Interes: javax.swing.JTextField- TF_Nombre: javax.swing.JTextField- TF_Plazo: javax.swing.JTextField- btnEliminar: javax.swing.JButton- btnModificar: javax.swing.JButton- btnNuevo: javax.swing.JButton- btnRegistrar: javax.swing.JButton- btnSalir: javax.swing.JButton

+ ITipoVenta()- initComponents() : void- btnNuevoActionPerformed(java.awt.event.ActionEvent) : void- btnRegistrarActionPerformed(java.awt.event.ActionEvent) : void- btnModificarActionPerformed(java.awt.event.ActionEvent) : void- btnEliminarActionPerformed(java.awt.event.ActionEvent) : void- btnSalirActionPerformed(java.awt.event.ActionEvent) : void- ListarMouseClicked(java.awt.event.MouseEvent) : void+ main(String[]) : void+ Nuevo() : void+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ Listar() : void+ ObtenerCantFilas(String) : int+ validar() : boolean

WSTipoVenta

~ ctv: CTipoVenta = new CTipoVenta()

+ nuevoTV() : int+ insertarTV(int, String, String, int, String) : void+ modificarTV(int, String, String, int, String) : void+ eliminarTV(int) : void+ listTV() : String+ listNombresTV() : String+ obtCodTV(String) : int+ obtNombreTV(int) : String

TipoVenta

- cod: int- nombre: String- descripcion: String- interes: int- plazo: String- estado: int- conexion: Conexion- sta: Statement

+ TipoVenta()+ TipoVenta(Conexion)+ getCod() : int+ setCod(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getDescripcion() : String+ setDescripcion(String) : void+ getEstado() : int+ setEstado(int) : void+ getInteres() : int+ setInteres(int) : void+ getNombre() : String+ setNombre(String) : void+ getPlazo() : String+ setPlazo(String) : void+ getSta() : Statement+ setSta(Statement) : void+ NuevoCod() : int+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ ObtenerPorNombre(String) : void+ ObtenerPorCod(int) : void+ ObtenerTipoVentas() : String+ Listar() : String- CargarDatos(ResultSet) : void+ toString() : String

CTipoVenta

~ tipoVenta: TipoVenta = new TipoVenta()

+ CTipoVenta()+ NuevoCodTipoVenta() : int+ RegistrarTipoVenta(int, String, String, int, String) : void+ ModificarTipoVenta(int, String, String, int, String) : void+ EliminarTipoVenta(int) : void+ ListarTipoVentas() : String+ ListarNombresTipoVentas() : String+ ObtenerCodTipoVenta(String) : int+ ObtenerNombreTipoVenta(int) : String

+tipoVenta

-conexion

+ctv

+tipoventaws

30 INF552 - Arquitectura de Software

Page 33: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

CU5. Registrar Pedido

31 INF552 - Arquitectura de Software

Page 34: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

32 INF552 - Arquitectura de Software

Page 35: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

class Pedido

Pedido

- cod: int- codClie: int- codEmp: int- fechaPedido: String- fechaEntrega: String- codTV: int- monto: float- obs: String- conexion: Conexion- sta: Statement

+ Pedido()+ Pedido(Conexion)+ getCod() : int+ setCod(int) : void+ getCodClie() : int+ setCodClie(int) : void+ getCodEmp() : int+ setCodEmp(int) : void+ getCodTV() : int+ setCodTV(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getFechaEntrega() : String+ setFechaEntrega(String) : void+ getFechaPedido() : String+ setFechaPedido(String) : void+ getMonto() : float+ setMonto(float) : void+ getObs() : String+ setObs(String) : void+ NuevoCod() : int+ Registrar() : void+ Listar() : String- CargarDatos(ResultSet) : void+ getDate(String) : Date+ toString() : String

CPedido

- pedido: Pedido- detallePedido: DetallePedido

+ CPedido()+ NuevoCodPedido() : int+ RegistrarPedido(int, int, int, String, String, int, float, String) : void+ NuevoCodDetallePedido() : int+ RegistrarDetallePedido(int, int, int, int, float) : void+ ListarPedidos() : String+ main(String[]) : void

WSPedidos

~ cpedido: CPedido = new CPedido()

+ nuevoPedido() : int+ insertarPedido(int, int, int, String, String, int, float, String) : void+ insertarDetallePedido(int, int, int, float) : void+ listPedidos() : String

javax.swing.JFrame

IPedido

~ pedido: WSPedidos~ cliente: WSCliente~ empleado: WSEmpleado~ tipoVenta: WSTipoVenta~ producto: WSProducto- CB_Clientes: javax.swing.JComboBox- CB_Empleados: javax.swing.JComboBox- CB_Producto: javax.swing.JComboBox- CB_tipoVenta: javax.swing.JComboBox- JTextField11: javax.swing.JLabel- Listar: javax.swing.JTable- ListarDetalle: javax.swing.JTable- TF_Cod: javax.swing.JTextField- TF_FechaE: javax.swing.JTextField- TF_FechaP: javax.swing.JTextField- TF_monto: javax.swing.JTextField- TF_obs: javax.swing.JTextField- btnAddProducto: javax.swing.JButton- btnNuevo: javax.swing.JButton- btnRegistrar: javax.swing.JButton- btnSalir: javax.swing.JButton

+ IPedido()- initComponents() : void- btnNuevoActionPerformed(java.awt.event.ActionEvent) : void- btnRegistrarActionPerformed(java.awt.event.ActionEvent) : void- btnSalirActionPerformed(java.awt.event.ActionEvent) : void- ListarMouseClicked(java.awt.event.MouseEvent) : void- ListarDetalleMouseClicked(java.awt.event.MouseEvent) : void- btnAddProductoActionPerformed(java.awt.event.ActionEvent) : void- ListarDetalleKeyReleased(java.awt.event.KeyEvent) : void+ main(String[]) : void+ Nuevo() : void+ Registrar() : void+ Listar() : void+ CargarCombos() : void+ obtenerFechadelSistema() : String+ ObtenerCantFilas(String) : int- validar() : boolean

MIDletCommandListener

Pedidos

+ wc: WebToMobileClient = new WebToMobile...- midletPaused: boolean = false- exitCommand: Command- LimpiarDetalle: Command- SeleccionarProducto: Command- RegistrarPedido: Command- cancelCommand: Command- backListPedidos: Command- okListPedidos: Command- okalertSelecCliente: Command- okAlertRegPedido: Command- backFrmPedido: Command- okAddProducto: Command- cancelAddProducto: Command- backCommand: Command- okAlertGuardar: Command- okCommand1: Command- MenuPrincipal: List- MenuPedidos: List- FrmPedido: Form- CG_Cliente: ChoiceGroup- TF_CodPedido: TextField- CG_TipoVenta: ChoiceGroup- TF_FechaE: TextField- TF_FechaP: TextField- TF_Empleado: TextField- TF_Obs: TextField- TF_MontoTotal: TextField- tableItem: TableItem- ListarPedidos: Form- tableItem2: TableItem- AddProducto: Form- CG_Producto1: ChoiceGroup- TF_Cantidad: TextField- alertRegistrarPedido: Alert- tableModel3: SimpleTableModel- tableModel2: SimpleTableModel

+ Pedidos()- initialize() : void+ startMIDlet() : void+ resumeMIDlet() : void+ switchDisplayable(Alert, Displayable) : void+ commandAction(Command, Displayable) : void+ getExitCommand() : Command+ «property get» getMenuPrincipal() : List+ MenuPrincipalAction() : void+ «property get» getMenuPedidos() : List+ MenuPedidosAction() : void+ getOkAlertListprod() : Command+ «property get» getSeleccionarProducto() : Command+ «property get» getLimpiarDetalle() : Command+ «property get» getFrmPedido() : Form+ «property get» getTF_CodPedido() : TextField+ «property get» getCG_Cliente() : ChoiceGroup+ «property get» getTF_Empleado() : TextField+ «property get» getTF_FechaP() : TextField+ «property get» getTF_FechaE() : TextField+ «property get» getCG_TipoVenta() : ChoiceGroup+ getTableItem() : TableItem+ «property get» getTF_MontoTotal() : TextField+ «property get» getTF_Obs() : TextField+ getTableModel1() : SimpleTableModel+ getCancelCommand() : Command+ «property get» getRegistrarPedido() : Command+ getOkListPedidos() : Command+ getBackListPedidos() : Command+ getOkAlertRegPedido() : Command+ «property get» getListarPedidos() : Form+ getAlertRegistrarPedido() : Alert+ getOkAddProducto() : Command+ getBackCommand() : Command+ getCancelAddProducto() : Command+ «property get» getAddProducto() : Form+ «property get» getCG_Producto1() : ChoiceGroup+ «property get» getTF_Cantidad() : TextField+ getBackFrmPedido() : Command+ getOkAlertGuardar() : Command+ getTableItem2() : TableItem+ getTableModel3() : SimpleTableModel+ getDisplay() : Display+ exitMIDlet() : void+ startApp() : void+ pauseApp() : void+ destroyApp(boolean) : void+ CargarCombos() : void+ obtenerFechadelSistema() : String+ ObtenerCantFilas(String) : int+ LimpiarPedido() : void+ LimpiarDetalle() : void

DetallePedido

- cod: int- codPed: int- codProd: int- cantidad: int- montoP: float- conexion: Conexion- sta: Statement

+ DetallePedido()+ getCantidad() : int+ setCantidad(int) : void+ getCod() : int+ setCod(int) : void+ getCodPed() : int+ setCodPed(int) : void+ getCodProd() : int+ setCodProd(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getMontoP() : float+ setMontoP(float) : void+ NuevoCod() : int+ Registrar() : void

Conexion

+ DRIVER: String = "com.mysql.jdbc...+ BASEDEDATOS: String = "jdbc:mysql://l...+ USUARIO: String = "root"+ PASSWORD: String = ""- con: Connection- res: ResultSet- sta: Statement

+ Conexion()+ conectar() : void+ desconectar() : void+ getCon() : Connection+ setCon(Connection) : void+ getRes() : ResultSet+ setRes(ResultSet) : void+ getSta() : Statement+ setSta(Statement) : void+ CantidadTuplas(String) : int+ main(String[]) : void

WSCliente

~ ncliente: CCliente = new CCliente()

+ nuevoCliente() : int+ insertarCliente(int, String, int, String, int) : void+ modificarCliente(int, String, int, String, int) : void+ eliminarCliente(int) : void+ ListClientes() : String+ ListNombresClientes() : String+ obtCliente(int) : String+ obtCodCliente(String) : int+ obtNombreCliente(int) : String

WSEmpleado

~ cempleado: CEmpleado = new CEmpleado()

+ nuevoEmpleado() : int+ insertarEmpleado(int, String, int, String, String, String, int) : void+ modificarEmpleado(int, String, int, String, String, String, int) : void+ eliminarEmpleado(int) : void+ listEmpleados() : String+ listNombresEmpleados() : String+ obtCodEmpleado(String) : int+ obtNombreEmpleado(int) : String

WSProducto

~ cproducto: CProducto = new CProducto()

+ nuevoProducto() : int+ insertarProducto(int, String, int, float) : void+ modificarProducto(int, String, int, float) : void+ eliminarProducto(int) : void+ listProductos() : String+ listNombresProducto() : String+ obtCodProducto(String) : int+ obtNombreProducto(int) : String+ obtProducto(String) : String

WSTipoVenta

~ ctv: CTipoVenta = new CTipoVenta()

+ nuevoTV() : int+ insertarTV(int, String, String, int, String) : void+ modificarTV(int, String, String, int, String) : void+ eliminarTV(int) : void+ listTV() : String+ listNombresTV() : String+ obtCodTV(String) : int+ obtNombreTV(int) : String

CCliente

- cliente: Cliente

+ CCliente()+ NuevoCodCliente() : int+ RegistrarCliente(int, String, int, String, int) : void+ ModificarCliente(int, String, int, String, int) : void+ EliminarCliente(int) : void+ ListarClientes() : String+ ObtenerCliente(int) : String+ ListarNombresClientes() : String+ ObtenerCodCliente(String) : int+ ObtenerNombreCliente(int) : String+ ValidarCliente(String) : boolean

CEmpleado

~ empleado: Empleado = new Empleado()

+ CEmpleado()+ NuevoCodEmpleado() : int+ RegistrarEmpleado(int, String, int, String, String, String, int) : void+ ModificarEmpleado(int, String, int, String, String, String, int) : void+ EliminarEmpleado(int) : void+ ListarEmpleados() : String+ ListarNombresEmpleados() : String+ ObtenerCodEmpleado(String) : int+ ObtenerNombreEmpleado(int) : String+ ValidarEmpleado(String) : boolean

CProducto

~ producto: Producto = new Producto()

+ CProducto()+ NuevoCodProducto() : int+ RegistrarProducto(int, String, int, float) : void+ ModificarProducto(int, String, int, float) : void+ EliminarProducto(int) : void+ ListarProductos() : String+ ListarNombresProducto() : String+ ObtenerCodProducto(String) : int+ ObtenerNombreProducto(int) : String+ ObtenerProducto(String) : String

CTipoVenta

~ tipoVenta: TipoVenta = new TipoVenta()

+ CTipoVenta()+ NuevoCodTipoVenta() : int+ RegistrarTipoVenta(int, String, String, int, String) : void+ ModificarTipoVenta(int, String, String, int, String) : void+ EliminarTipoVenta(int) : void+ ListarTipoVentas() : String+ ListarNombresTipoVentas() : String+ ObtenerCodTipoVenta(String) : int+ ObtenerNombreTipoVenta(int) : String

Cliente

- cod: int- nombre: String- ci: int- dir: String- telef: int- estado: int- conexion: Conexion- sta: Statement

+ Cliente()+ Cliente(Conexion)+ getCi() : int+ setCi(int) : void+ getCod() : int+ setCod(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getDir() : String+ setDir(String) : void+ getEstado() : int+ setEstado(int) : void+ getNombre() : String+ setNombre(String) : void+ getTelef() : int+ setTelef(int) : void+ NuevoCod() : int+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ Listar() : String+ ObtenerPorNombre(String) : void+ ObtenerPorCod(int) : void+ ObtenerClientes() : String- CargarDatos(ResultSet) : void+ toString() : String

Empleado

- cod: int- nombre: String- ci: int- sexo: String- fechaI: String- dir: String- telef: int- estado: int- conexion: Conexion- sta: Statement

+ Empleado()+ Empleado(Conexion)+ getCi() : int+ setCi(int) : void+ getCod() : int+ setCod(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getDir() : String+ setDir(String) : void+ getEstado() : int+ setEstado(int) : void+ getFechaI() : String+ setFechaI(String) : void+ getNombre() : String+ setNombre(String) : void+ getSexo() : String+ setSexo(String) : void+ getSta() : Statement+ setSta(Statement) : void+ getTelef() : int+ setTelef(int) : void+ NuevoCod() : int+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ ObtenerPorNombre(String) : void+ ObtenerPorCod(int) : void+ ObtenerEmpleados() : String+ ObtenerTodoEmpleados() : String+ toString() : String- CargarDatos(ResultSet) : void

Producto

- cod: int- nombre: String- cantidad: int- precioV: float- estado: int- conexion: Conexion- sta: Statement

+ Producto()+ Producto(Conexion)+ getCantidad() : int+ setCantidad(int) : void+ getCod() : int+ setCod(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getEstado() : int+ setEstado(int) : void+ getNombre() : String+ setNombre(String) : void+ getPrecioV() : float+ setPrecioV(float) : void+ NuevoCod() : int+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ ObtenerPorNombre(String) : void+ ObtenerPorCod(int) : void+ ObtenerProductos() : String+ ObtenerTodoProductos() : String- CargarDatos(ResultSet) : void+ toString() : String

TipoVenta

- cod: int- nombre: String- descripcion: String- interes: int- plazo: String- estado: int- conexion: Conexion- sta: Statement

+ TipoVenta()+ TipoVenta(Conexion)+ getCod() : int+ setCod(int) : void+ getConexion() : Conexion+ setConexion(Conexion) : void+ getDescripcion() : String+ setDescripcion(String) : void+ getEstado() : int+ setEstado(int) : void+ getInteres() : int+ setInteres(int) : void+ getNombre() : String+ setNombre(String) : void+ getPlazo() : String+ setPlazo(String) : void+ getSta() : Statement+ setSta(Statement) : void+ NuevoCod() : int+ Registrar() : void+ Modificar() : void+ Eliminar() : void+ ObtenerPorNombre(String) : void+ ObtenerPorCod(int) : void+ ObtenerTipoVentas() : String+ Listar() : String- CargarDatos(ResultSet) : void+ toString() : String

+detallePedido

~pedido

~cpedido

-pedido

-conexion

-conexion

~cliente

~empleado

~producto ~tipoVenta

~ncliente

+cempleado+cproducto

+ctv

-conexion

-cliente

+empleado

+conexion

-conexion

+producto+tipoVenta

-conexion

33 INF552 - Arquitectura de Software

Page 36: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1

3.3. Diseño de Datos

3.3.1. Diseño Lógico(a) Diagrama Final de Clases

class Class Mo...

EMPLEADO

- CI: int- COD: int- DIR: STRING- ESTADO: int- NOMBRE: STRING- SEXO: STRING- TEL: int

CLIENTE

- CI: int- COD: int- DIR: STRING- ESTADO: int- NOMBRE: STRING- TEL: int

TIPOVENTA

- COD: int- DESCRIPCION: STRING- ESTADO: int- INTERES: int- NOMBRE: STRING- PLAZO: STRING

PRODUCTO

- CANTIDAD: int- COD: int- ESTADO: int- NOMBRE: STRING- PRECIOV: int

PEDIDO

- COD: int- CODCLIE: int- CODEMP: int- CODTV: int- FECHAENTREGA: DATE- FECHAPEDIDO: DATE- MONTO: FLOAT- OBS: STRING

DETALLEPEDIDO

- CANTIDAD: int- COD: int- CODPED: int- CODPROD: int- MONTOP: FLOAT

1..* 1..*

1..*

ESTA

1

1 1..*

0..*

1

(b) MapeoEmpleadoCód Nombre CI Sex

oFechaI Dirección tel Estado

ClienteCód Nombre CI Dir tel Estado

TipoVentaCód Nombr

edescripción Interes Plaz

oEstado

ProductoCód Nombr

eCantidad preciov estado

PedidoCód codclie codemp Fechapedido Fechaentrega codt monto obs

34 INF552 - Arquitectura de Software

Page 37: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1v

Detalle PedidoCód codped codprod Cantida

dMontop

3.3.2. Diseño Físico(a) Tabla de Volumen

EmpleadoNombre Tipo de Dato Amplitu

dLlave Descripción

Código Entero 5 PK Código del empleadoNombre Texto 50 Nombre del empleado

CI Entero 10 CI del empleadoSexo Texto 2 Seco del empleado

fechai Fecha 8 Fecha inicioDirecció

nTexto 20 Dirección de su domicilio

Teléfono Entero 8 Número de teléfonoestado entero 8 Estado activado

Cliente Nombre Tipo de Dato Amplitu

dLlave Descripción

Código Entero 5 PK Código del clienteNombre Texto 50 Nombre del cliente

CI Entero 10 CI del clienteDirecció

nTexto 20 Dirección de su domicilio

Teléfono Entero 8 Numero de teléfonoestado entero 8 Estado activado

Producto Nombre Tipo de Dato Amplitu

dLlave Descripción

Código Entero 5 PK Código del productoNombre Texto 50 Nombre del productoCantidad Entero 10 Cantidad de productopreciov entero 20 Precio venta

estado entero 8 Estado activadoTipo Venta

Nombre Tipo de Dato Amplitud Llave DescripciónCódigo Entero 5 PK Código del tipo ventaNombre Texto 50 Nombre del tipo venta

descripcio texto 20 Descripcion del tipo venta

35 INF552 - Arquitectura de Software

Page 38: Arquitectura Soa - Movil

Sistema de Pedidos de Productos P&N SA. – Arquitectura SOA + Aplicación Móvil

PARCIAL 1.1n

interes texto 20 Interés de la tipoplazo Entero 8 Tiempo de pagoestado entero 8 Estado activado

Pedido Nombre Tipo de Dato Amplitud Llave DescripciónCódigo Entero 5 PK Código del pedido

Código cliente Entero 5 FK Código del clienteCódigo

empleadoEntero 5 FK Código del empleado

Código tipoventa Entero 5 FK Código de tipo ventaFecha pedido fecha 8 Fecha pedidoFecha entrega Fecha 8 Fecha entrega

monto flotante 8 Monto total

Detalle pedidoNombre Tipo de Dato Amplitu

dLlave Descripción

Código Entero 5 PK Código de detalle pedidoCódigo pedido Entero 5 FK Código del pedido

Código producto

Entero 5 FK Código del producto

Cantidad Entero 5 Cantidad del pedidomonto flotante 5 Monto a pagar

36 INF552 - Arquitectura de Software