Plantilla Diseño del Sistema Analisis y desarrollo de sistemas de informacion (ADSI) 

 

  1. Introducción

 

El presente documento se quiere dar a conocer el diseño del sistema CONTABSYSTEM, donde se expondrán, sus objetivos, diseño, mejoras e implementación.

 

  • Propósito del sistema.

 

 Crear el diseño de un sistema (CONTABSYSTEM) con el fin de ayudar a sus usuarios en las actividades diarias de la contabilidad de sus negocios, donde puedan tener un manejo más completo de sus ingresos, estará disponible una versión online  y se podrá utilizar en cualquier lugar con un usuario y una contraseña sin necesidad de descargarlo, si el usuario así lo desea, si no podrá trabajar desde los servidores de “CONTABSYSTEM” solo necesitara una conexión a internet de aproximadamente un (1Mb) megabyte para el buen rendimiento del mismo, también contara con una versión instalable para Windows, con requerimientos mínimos, esto con el fin de que en las pequeñas empresas puedan ejecutar el  sistema correctamente sin invertir muchos recursos tecnológicos, para ellos tendremos un servidor dedicado, trabajando con MySQL para almacenar los datos y peticiones que se realicen a través del sistema CS, es primordial la eficiencia, por encima de la portabilidad pero hemos pensado que un sistema debe ser portable y eficaz, para un buen rendimiento.

 

 1.2. Objetivos del diseño

 

CONFIABILIDAD: Este producto le dará al cliente confianza en todas ejecuciones, brindándole madurez tolerancia y seguridad de datos, que por fallas en el sistema se hayan perdido accidentalmente.

 

USABILIDA: Dado que el sistema trabaja con una RED  TECNOLOGICA SIMPLE, esta tiene la característica de adaptabilidad, comprensibilidad, accesibilidad, para que nuestro cliente pueda manejar su base de datos sin emplear mucho esfuerzo en su ejecución

.

EFICIENCIA: que sea un software practico, con excelente rendimiento por ello se pensó en requerimientos mínimos para el desempeño de CB.

  

1.3. Definiciones, acrónimos y abreviaturas

 

CB : abreviatura Nombre del sistema CONTABSYSTEM

MySQL: sistema de manejo de base de datos

 

 

1.4. Referencias

 

Referencias a otros documentos e información de trazabilidad – documento/s de análisis de requisitos relacionados, sistemas existentes, restricciones que afectan a la arquitectura software, etc.

 

  1. Representación de la arquitectura.

 

2.1 Metas y restricciones de la Arquitectura

 

 

SEGURIDAD

 

CB no es un sistema de alto riesgo pero todo sistema tiene sus vulnerabilidades por lo tanto se crea unos requisitos, para así brindar seguridad a la información de nuestros clientes, desde el punto externo se invierte en infraestructura interna de contabsystem es decir en servidores, con protección, la mayor parte de los ataques a servidores se dan por DoS por lo que se crear reglas en el servidor para evitar estos ataques y la caída del servidor.

En lo interno se crea autenticación de 2 pasos, es decir no solo se debe ingresar al sistema con nombre de usuario y contraseña, también deberá responder a la pregunta de seguridad que previamente se ha  configurado.

 

PORTABILIDAD

 

Es un sistema portable al ser basado en la nube, pero la versión de escritorio, tiene la funcionalidad de crear backups en nuestros servidores con el fin de evitar la pérdida de información en caso de un error, daño o falla en el equipo de escritorio.

 

RENDIMIENTO

 

Al ser un sistema  pensado para empresas pequeñas y medianas, se diseña con requisitos mínimos para ejecutarse.

  • 4 Gigabyte de MEMORIA RAM (2Gb para Windows XP,VISTA)
  • Gb De espacio disponible en el disco duro
  • Procesador de 2.0 GHz
  • Sistema operativo Windows 7 (recomendado)
  • Conexión a internet para realizar Backups (copias de seguridad automáticas)

 

2.2 Reutilización

 

El uso de frameworks facilita el diseño del programa, como escuche alguna vez, “porque Re-Inventar la rueda, hay que mejorarla e innovar”, a que quiero llegar con esto, en el sistema se van a usar clases, conexiones gestor de bases de datos etc. para no desarrollar de nuevo estas, se usan los framework para normalizar la información

.

  1. Vista lógica

 

Aquí se describe la descomposición funcional de la aplicación basándose en una ordenación lógica de los requisitos de la aplicación. Los aspectos de la aplicación con una funcionalidad similar se deben agrupar en un subsistema. Se deben representar las dependencias entre los subsistemas.

 

  • Identificación de Subsistemas

 

INFORME:

  • Artículos Vendidos
  • Artículos en Stock o Bodega

 

REGISTROS:

  • Registro de Proveedores
  • Registro de Clientes
  • Registrar códigos de cuentas nuevas

 

  • Estructuración por capas.

 

Una vez que se han determinado los subsistemas, agruparlos mediante una estructuración por capas, donde cada una determina un nivel de abstracción.

  • Determinar el número de capas a implementar, acorde con el sistema
  • Nombrar cada capa y definir su funcionalidad
  • Asignar los subsistemas / paquetes /clases que corresponden con cada capa
  • Se pueden utilizar diagramas de paquetes

   

 Diagrama de Clases del diseño

 

Presentar las clases significativas de la arquitectura y describir sus responsabilidades, así como las relaciones importantes basadas en la arquitectura, operaciones y atributos. Especificar los patrones de diseño que pueden estar incluidos.

 Una de las clases más importantes es FACTURA ya que es la encargada de llamar y recibir información de las demás clases, con el fin de tener un registro detallado tanto para la empresa como para el cliente.

 

  1. Vista del proceso

Describe la descomposición del sistema en procesos, se debe representar la información solicitada utilizando diagramas de secuencia  para tres de los casos de uso más representativos del negocio.

 

 Diagramas de secuencia

DIAGRAMA DE SECUENCIA GENERAL

REGISTROS DE  PRODUCTOS

 REGISTRO DE VENTAS

 

  1. Vista de datos

 

Describe el modelo de datos del sistema que se va a desarrollar. Se realiza la identificación a través de diagramas relacionales que presenten el modelo de base de datos a implementar y su descripción usando el diccionario de datos.

 

  • Modelo de datos

 

 

  • Diccionario de datos

 

Database Model plugin_tmp.xml

CLIENTES
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idClientesINTEGERPKNNUNSIGNEDclave primaria identificador de tablaAI
codigoClienteINTcodigo del cliente
nombreVARCHAR(255)nombre del cliente
tipoDocumentoINTtipo de documento
numeroIdentificacionINTnumero de identificacion
IndexNameIndexTypeColumns
PRIMARYPRIMARYidClientes

 

EMPLEADO
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idEMPLEADOINTEGERPKNNUNSIGNEDclave primaria id de la tabla empleadoAI
TipoEmpleado_idTipoEmpleadoINTEGERNNUNSIGNED
codigoEmINTcodigo del Empleado
tipoIdentificacionINTEGERUNSIGNEDtipo de identificacion cedula, tarjeta id, pasaporte
numeroIdentificacionEmINTnumero de identificacion
nombreEmVARCHARnombre empleado
areaINTarea en la que se desempeña
IndexNameIndexTypeColumns
PRIMARYPRIMARYidEMPLEADO
EMPLEADO_FKIndex1IndexTipoEmpleado_idTipoEmpleado

 

 

 

FACTURA
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idFacturaINTEGERPKNNUNSIGNEDidentificador tabla facturaAI
TipoFactura_idTipoFacturaINTEGERPKNNUNSIGNED
TipoEmpleado_idTipoEmpleadoINTEGERPKNNUNSIGNED
Pago_idPagoINTEGERPKNNUNSIGNED
PRODUCTOS_idPRODUCTOSINTEGERNNUNSIGNED
CLIENTES_idClientesINTEGERNNUNSIGNED
codigoFacturaINTEGERUNSIGNEDcodigo de la factura generado
codEmpleadoINTcodigo del empleado que esta vendiendo
fechaFacturaDATEfecha actual de la factura
productosINTcodigo de los productos a la venta
clienteINTnombre del cliente
numeroIdentificacionINTnumero del documento de identificacion del cliente
PagoINTvalor y tipo de pago
IndexNameIndexTypeColumns
PRIMARYPRIMARYidFactura
TipoFactura_idTipoFactura
TipoEmpleado_idTipoEmpleado
Pago_idPago
FACTURA_FKIndex1IndexCLIENTES_idClientes
FACTURA_FKIndex2IndexPRODUCTOS_idPRODUCTOS
FACTURA_FKIndex3IndexTipoFactura_idTipoFactura
FACTURA_FKIndex4IndexTipoEmpleado_idTipoEmpleado
FACTURA_FKIndex5IndexPago_idPago

 

Pago
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idPagoINTEGERPKNNUNSIGNEDidentificador tabla pagoAI
ValorPagoINTvalor total de la factura
codFacturaINTEGERUNSIGNEDcodigo generado en la factura
IndexNameIndexTypeColumns
PRIMARYPRIMARYidPago

 

 

PRODUCTOS
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idPRODUCTOSINTEGERPKNNUNSIGNEDidentificador productosAI
PROVEEDOR_idProveedorINTEGERNNUNSIGNED
codigoProductoINTcodigo de producto
tipoProductoINTcategoria del producto
valorINTcosto del producto
proveedorINTentidiad o persona que provee del producto
IndexNameIndexTypeColumns
PRIMARYPRIMARYidPRODUCTOS
PRODUCTOS_FKIndex2IndexPROVEEDOR_idProveedor

 

PROVEEDOR
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idProveedorINTEGERPKNNUNSIGNEDidentificador tabla proveedorAI
codigoProveedorINTcodigo nit del proveedor
nombreProveedorVARCHARnombre o razon social del proveedor
IndexNameIndexTypeColumns
PRIMARYPRIMARYidProveedor

 

TipoEmpleado
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idTipoEmpleadoINTEGERPKNNUNSIGNEDAI
tipoVARCHAR
IndexNameIndexTypeColumns
PRIMARYPRIMARYidTipoEmpleado

 

TipoFactura
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idTipoFacturaINTEGERPKNNUNSIGNEDidentificador tabla tipo de facturaAI
tipoVARCHARtipo de factura ya sea se compra o venta
IndexNameIndexTypeColumns
PRIMARYPRIMARYidTipoFactura

 

tipoIdentificacion
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idtipoIdentificacionINTEGERPKNNUNSIGNEDclave primaria tabla identificadorAI
EMPLEADO_idEMPLEADOINTEGERPKNNUNSIGNED
CLIENTES_idClientesINTEGERNNUNSIGNED
tipoDocumentoVARCHARtipo de documento Cedula, pasaporte, tarjeta de identidad etc
IndexNameIndexTypeColumns
PRIMARYPRIMARYidtipoIdentificacion
EMPLEADO_idEMPLEADO
tipoIdentificacion_FKIndex1IndexCLIENTES_idClientes
tipoIdentificacion_FKIndex2IndexEMPLEADO_idEMPLEADO

 

 

TipoPago
ColumnNameDataTypePrimaryKey  NotNull  FlagsDefault ValueCommentAutoInc
idTipoPagoINTEGERPKNNUNSIGNEDidentificador de la tabla tipo de pagoAI
Pago_idPagoINTEGERNNUNSIGNED
tipoPagoVARCHARtipo de pago como efectivo, credito, tarjeta debito etc
IndexNameIndexTypeColumns
PRIMARYPRIMARYidTipoPago
TipoPago_FKIndex1IndexPago_idPago

 

 

  1. Vista de Interacción

 

  

  • Interfaces de Usuario.

 

A continuación se exponen las vistas de la interface de usuario, empezando con el login.

 

  1. Login

 

 

  1. MENÚ DE NAVEGACION

 

 

  1. MODULO DE VENTAS

 

 

 

REGISTRAR NUEVOREGISTRO DE CLIENTE

 

CONSULTAR O MODIFICAR PRODUCTOS

 

 

REGISTRAR FACTURA

 

 

GENERAR INFORME DE STOCK INVENTARIO

 

CUENTAS POR COBRAR

REGISTRO DE PROVEEDOR

REGISTRO DE VENDEDOR

 

 Mapa de Navegación

 

Presenta la estructura global de navegación de la aplicación.

 

  1. Vista de seguridad

 

MECANISMO DE AUTENTICACIÓN

El sistema usa mecanismos de autenticación para definir si un usuario en realidad es quien dice ser, por  para validar esta información se usa un sistema de usuario y contraseña para autenticarse.

Por lo tanto es importante que ningún usuario preste su nombre de usuario y contraseña.

El nombre de usuario se generara en base el nombre del usuario por ejemplo:

 

Si el administrador se llama: JAIRO ALEXIS CARDENAS VALENCIA  se tomara las dos primeras letras del primer nombre y el primer apellido. Es decir para nuestro caso quedaría así: JACARDENAS

Para la contraseña, cuando el administrador crea un nuevo usuario se envía la contraseña nueva generada al azar al  correo del nuevo usuario, cuando el usuario ingrese por primera vez se redirigirá a una ventana de cambio de contraseña, en la cual generara una contraseña a su gusto que cumpla con los siguientes requisitos:

  • más de 6 caracteres
  • 1 letra Mayúscula
  • 1 minúscula
  • 1 numero

 

En nuestro sistema se pensó en un cifrado de datos almacenados en el sistema de archivos del ordenador y servidor. Aunque el sistema no requiere de mucha seguridad por ser un sistema de bajo riesgo siempre es bueno aplicar normas de seguridad, para este fin se puede crear un auto cifrado de los datos y backups (copias de seguridad) que almacene el sistema de información en el disco duro local.

Para realizar las copias de seguridad en nuestros servidores se deberá usar una conexión cifrados de datos de 256 bits, para ello se contara con un certificado SSL.

PROCEDIMIENTOS ADICIONALES DE SEGURIDAD

  • Nunca revelar datos de acceso ya que son personales
  • realizar el mantenimiento a través de empresas profesionales en el área para evitar que técnicos inescrupulosos instalen códigos maliciosos en el ordenador
  1. Vista de Implementación

 

Describe la estructura general del modelo de implementación y la descomposición del sistema.

 

  • Herramientas de Desarrollo e implementación

 

Describe las herramientas tecnológicas que se deben utilizar para el desarrollo del sistema, incluye: IDE, Lenguaje de Programación,  base de datos, framework, etc.  Además el software que se requiere para su ejecución y puesta en marcha: servidor de aplicaciones/web, Sistema de base de datos, Librerias, plugins, etc.

 

Para desarrollar CS, se usara el IDE NETBEANS ya que es uno de los mejores para trabajar con PHP, librerías y plugins, pero por otro lado para el diseño de interfaces, se puede usar el IDE BRACKETS, que permite editar código en tiempo real, es decir ver y actualizar el diseño, mientras se introduce código.

  • Paquetes/Componentes

 

Describir el modo principal de comunicación entre los procesos del sistema operativo. Incluir diagramas de componentes.

 

  Despliegue

 

Describir la configuración de la plataforma física (procesador/almacenamiento) en la que el software va a ser desplegado. Si el sistema se va a desplegar en varios sitios, proporcionar una vista de despliegue para cada sitio diferente. Como mínimo, para cada configuración, se deben indicar los nodos físicos (ej.: ordenadores, CPUs, memorias) que ejecutan el software y sus interconexiones (ej.: bus, topología LAN, punto a punto, WAN).

Incluir un mapeo entre los procesos de la vista de proceso y los nodos físicos. La notación preferida es UML para la vista de despliegue.

 

  • Vista de Administración

 

Describe las distintas opciones de la administración del software.