lunes, 30 de noviembre de 2015

ARQUITECTURA DE SOFTWARE

La arquitectura de software es un conjunto de patrones que proporcionan un marco de referencia necesario para guiar la construcción de un software,permitiendo a los programadores, analistas y todo el conjunto de desarrolladores del software compartir una misma línea de trabajo y cubrir todos los objetivos y restricciones de la aplicación.Es considerada el nivel más alto en el diseño de la arquitectura de un sistema puesto que establecen la estructura,funcionamiento e interacción entre las partes del software.

Componentes e interacciones

La arquitectura de software se compone por:

* clientes y servidores.
* bases de datos.
* filtros.
* niveles en sistemas jerárquico.

Interacciones
Entre los componentes de la arquitectura de software existe un conjunto de interacciones entre las que sobresalen :

* llamadas a procedimientos.
* comportamiento de variables.
* protocolos cliente servidor.
* transmisión asíncrona de eventos.

Características
La arquitectura de software forma la columna vertebral para construir un sistema de software,es en gran medida responsable de permitir o no ciertos atributos de calidad del sistema entre los que se destacan la confiabilidad y el rendimiento del software.Además es un modelo abstracto reutilizable que puede transferirse de un sistema a otro y que representa un medio de comunicación y discusión entre participantes del proyecto,permitiendo así la interacción e intercambio entre los desarrolladores con el objetivo final de establecer el intercambio de conocimientos y puntos de vista entre ellos.

Tipos de arquitecturas
Para utilizar la arquitectura de software se sigue un conjunto de patrones arquitectónicos,entre los cuales podemos encontrar:

Cliente-Servidor
Blackboard.
Modelo entre capas.
Intérprete.
Orientado a servicios.




DESCOMPOSICIÓN DEL SISTEMA

Capa Presentación: 
es la que ve el usuario (también se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario. También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa Facade.
Capa Facade: 
es la que se comunica con la capa del negocio para obtener de ella sus múltiples operaciones o métodos por medio de un llamado, en esta capa no debe existir ningún método en base a la lógica del negocio. De igual manera se comunica con la capa de presentación para obtener las entradas del usuario y presentar la información resultante.
 Capa de Negocio: 
es donde se reciben las peticiones o solicitudes del usuario y se envían las respuestas a la capa Facade, para que esta se las envié a la capa presentación. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa DAO y con la capa DTO, para solicitar al gestor de base de datos almacenar o recuperar datos del objeto.
Capa DAO: 
es la capa que visualiza al modelo de entidad-relación y es la que se encarga de encapsular el acceso a la base de datos (persistencia). Esta capa recibe solicitudes de almacenamiento o recuperación de la información desde la capa de negocio. Los DAO se comunican los DTOs para transportar los datos desde la base de datos.
 Capa DTO: 
es la capa que visualiza al diagrama de clases de la
aplicación y que contiene solo los atributos de las clases con sus
respectivos métodos los métodos getter y setter, por tanto los DTOs son objetos simples que no contienen lógica del negocio, es decir no tienen comportamiento.

Servicios de Subsistemas



Subsistema físico

El sistema de información requiere del subsistema físico, ya que por medio de las disposiciones físicas es posible captar, almacenar, procesar y emitir datos e información de acuerdo con las instrucciones que le hayan sido suministradas al efecto por el subsistema lógico.

 Subsistema lógico

El sistema de información requiere del subsistema lógico, ya que con este se pueden realizar instrucciones escritas en un lenguaje especial y organizado en programas, que por una parte, dictan al sistema físico qué tareas debe realizar, y por otra permiten la relación entre el usuario y el ordenador.

 Subsistema De Comunicaciones

El sistema de información requiere del subsistema de comunicaciones, ya que este permite que el sistema se oriente a la web con una cantidad significativa de usuarios que transfieren información día a día.

 Subsistema De Datos

El sistema de información requiere del subsistema de datos, ya que este permite el almacenamiento y la salida de la información contenida en una base de datos.

Subsistema Humano

El sistema de información requiere del subsistema humano, ya que estas personas son las que hacen posible la realización del análisis, diseño, desarrollo, e implantación del sistema, con el fin de que otras personas lo apliquen.

viernes, 20 de noviembre de 2015

DISEÑO DE SISTEMAS

Diseño de sistemas

El diseño de sistemas es el arte de definir la arquitectura de hardware y software, componentes, módulos y datos de un sistema de cómputo, a efectos de satisfacer ciertos requerimientos. Es la etapa posterior al análisis de sistemas.

El diseño de sistemas tiene un rol más respetado y crucial en la industria de procesamiento de datos. La importancia del software multiplataforma ha incrementado la ingeniería de software a costa de los diseños de sistemas.


Los métodos de análisis y diseño orientado a objetos están siendo los métodos más ampliamente utilizados para el diseño de sistemas. El UML se ha vuelto un estándar en el Análisis y diseño orientado a objetos. Es ampliamente utilizado para el modelado de sistemas de software y se ha incrementado su uso para el diseño de sistemas que no son software así como organizaciones.


viernes, 13 de noviembre de 2015

ANÁLISIS DE SISTEMAS

Análisis de sistemas

El análisis de sistemas es la ciencia encargada del análisis de sistemas grandes y complejos, y la interacción entre los mismos. Esta área se encuentra muy relacionada con la Investigación operativa. También se denomina análisis de sistemas a una de las etapas de construcción de un sistema informático, que consiste en relevar la información actual y proponer los rasgos generales de la solución futura.

Los sistemas en relación con el análisis de sistemas están relacionados con cualquier campo, tales como: procesos industriales, administracióntoma de decisiones, procesos, protección al medio ambiente, etc. En 1953 los hermanos Howard T. Odum y Eugene Odum empezaron a aplicar una visión de sistemas a la ecología biológica, basándose en los trabajos de Raymond Lindeman (1942) y Arthur Tansley (1935).

Los analistas de sistemas utilizan la metodología matemática para obtener los detalles de los sistemas que están analizando.

Modelado

Teoría de sistemas de cómputo es la base de modelado para sistemas complejos, los cuales se dividen en tres conceptos básicosunidadesprocesos y estructuras. Una vez que se han identificado esos componentes, se genera un modelo de teoría de juegos. Este modelo después puede ser llevado a la simulación.

Análisis de sistemas es impartida en la Universidad y tiene mucha relación con la Ingeniería de Software; en resumen, un sistema es un conjunto de elementos interrelacionados o componentes entrelazados entre sí para lograr un objetivo común entre ellos.
Personajes relacionados con el análisis y diseño de sistemas:

  • kendal & kendal
  • James Senn
  • Robert S. McNamara
  • Buckminster Fuller
  • Gregory Bateson
  • Stewart Brand
  • Liaison job


jueves, 5 de noviembre de 2015

PROYECTO APP-PERFECT BODY GYM

BASE DE DATOS

Este es el modelo de la base de datos de la aplicación del gimnasio , con sus diferentes relaciones entre sus tablas.

viernes, 23 de octubre de 2015

INGENIERÍA DE REQUERIMIENTOS

Ingeniería de Requerimientos

En la ingeniería de sistemas y la ingeniería de software, la Ingeniería de requisitos o Ingeniería de requerimientos comprende todas las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requisitos de las partes interesadas, que pueden entrar en conflicto entre ellos.
Muchas veces se habla de requerimientos en vez de requisitos; esto se debe a una mala traducción del inglés. La palabra requirement debe ser traducida como requisito, mientras que requerimiento se traduce al inglés como request.
El propósito de la ingeniería de requisitos es hacer que los mismos alcancen un estado óptimo antes de alcanzar la fase de diseño en el proyecto. Los buenos requisitos deben ser medibles, comprobables, sin ambigüedades o contradicciones, etc.

Implicaciones

La Ingeniería de Requisitos implica todas las actividades del ciclo de vida dedicadas a:
  • La educción (a veces llamada "elicitación", debido a una mala traducción de "elicitation") de los requisitos de usuario.
  • El análisis y negociación de requisitos para derivar requisitos adicionales.
  • La documentación de los requisitos como especificación.
  • La validación de los requisitos documentados contra las necesidades de usuario.
  • Así como los procesos que apoyan estas actividades.
Fases de implementación

Desde un punto de vista conceptual, las actividades son de cinco clases.
  • Obtener requisitos: a través de entrevistas o comunicación con clientes o futuros usuarios, para saber cuáles son sus expectativas.
  • Analizar requisitos: detectar y corregir las carencias o falencias comunicativas, transformando los requisitos obtenidos de entrevistas y requisitos, en condiciones apropiadas para ser tratados en el diseño.
  • Documentar requisitos: igual que todas las etapas, los requisitos deben estar debidamente documentados.
  • Verificar los requisitos: consiste en comprobar la implementación de los requerimientos.
  • Validar los requisitos: comprobar que los requisitos implementados sean funcionales para lo que inicialmente se construyó el producto.
Técnicas principales

La ingeniería de requisitos puede ser un proceso largo y arduo para el que se requiere de habilidades psicológicas. Los nuevos sistemas cambian el entorno y las relaciones entre la gente, así que es importante identificar a todos los actores involucrados, considerar sus necesidades y asegurar que entienden las implicaciones de los nuevos sistemas. Los analistas pueden emplear varias técnicas para obtener los requisitos del cliente. Históricamente, esto ha incluido técnicas tales como las entrevistas, o talleres con grupos para crear listas de requisitos. Técnicas más modernas incluyen los prototipos, y utilizan casos de uso. Cuando sea necesario, el analista empleará una combinación de estos métodos para establecer los requisitos exactos de las personas implicadas, para producir un sistema que resuelva las necesidades del negocio.

Entrevistas

Las entrevistas son un método común. Por lo general no se entrevista a toda la gente que se relacionará con el sistema, sino a una selección de personas que represente a todos los sectores críticos de la organización, con el énfasis puesto en los sectores más afectados o que harán un uso más frecuente del nuevo sistema.

Talleres

Los requisitos tienen a menudo implicaciones cruzadas desconocidas para las personas implicadas individuales y que a menudo no se descubren en las entrevistas o quedan incompletamente definidas durante la misma. Estas implicaciones cruzadas pueden descubrirse realizando en un ambiente controlado, talleres facilitados por un analista del negocio, en donde las personas implicadas participan en discusiones para descubrir requisitos, analizan sus detalles y las implicaciones cruzadas. A menudo es útil la selección de un secretario dedicado a la documentación de la discusión, liberando al analista del negocio para centrarse en el proceso de la definición de los requisitos y para dirigir la discusión.
Existen dos técnicas de este tipo que son las más utilizadas: Brainstorming (Lluvia de ideas) y JAD (Joint Application Development, Diseño de Aplicación Conjunta). La diferencia que existe entre ambas técnicas es que durante la tormenta de ideas se tiene como objetivo generar una gran cantidad de ideas, es desestructurada y la información que se obtiene puede ser visual, textual ó coloquial; mientras que en el JAD el taller es ordenado, la información que se obtiene es visual y su objetivo es generar requisitos y la interfaz del sistema.
Durante una sesión de Lluvia de ideas, todos los participantes pueden aportar distintas ideas en un ambiente libre de prejuicios. Ningún participante debe juzgar negativamente la propuesta de otros, sino que se anotan todas las ideas en una pizarra y serán evaluadas al final de la sesión. El principio básico es no descartar de manera apresurada ningún planteo, de modo que existe la posibilidad de que surjan otras ideas derivadas de la idea original y se generan varios puntos de vista del problema.
En el Joint application development se trabaja directamente sobre los documentos a generar, las temáticas que se tratan durante las reuniones siguen un esquema y se busca que la misma sea ordenada y racional. Se define una agenda con los puntos principales a tratar durante la jornada. Este tipo de taller tiene el inconveniente de que es muy difícil poder reunir a todas los participantes, es costoso y generalmente es necesaria más de una reunión para establecer los requisitos del sistema.

Forma de contrato

En lugar de una entrevista, se pueden llenar formularios o contratos indicando los requisitos. En sistemas muy complejos éstos pueden tener centenares de páginas.

Objetivos medibles

Los requisitos formulados por los usuarios se toman como objetivos generales, a largo plazo, y en cambio se los debe analizar una y otra vez desde el punto de vista del sistema hasta determinar los objetivos críticos del funcionamiento interno que luego darán forma a los comportamientos apreciables por el usuario. Luego, se establecen formas de medir el progreso en la construcción, para evaluar en cualquier momento qué tan avanzado se encuentra el proyecto.

Prototipos y Casos de uso

Un prototipo es una pequeña muestra, de funcionalidad limitada, de cómo sería el producto final una vez terminado. Ayudan a conocer la opinión de los usuarios y rectificar algunos aspectos antes de llegar al producto terminado.
Un caso de uso es una técnica para documentar posibles requisitos, graficando la relación del sistema con los usuarios u otros sistemas. Dado que el propio sistema aparece como una caja negra, y sólo se representa su interacción con entidades externas, permite omitir dichos aspectos y determinar los que realmente corresponden a las entidades externas. El objetivo de esta práctica es mejorar la comunicación entre los usuarios y los desarrolladores, mediante la prueba temprana de prototipos para minimizar cambios hacia el final del proyecto y reducir los costes finales. Esta técnica se enfrenta a los siguientes peligros potenciales.
  • A los directivos, una vez que ven un prototipo, les cuesta comprender que queda mucho trabajo por hacer para completar el diseño final.
  • Los diseñadores tienden a reutilizar el código de los prototipos por temor a “perder el tiempo” al comenzar otra vez.
  • Los prototipos ayudan principalmente a las decisiones del diseño y de la interfaz de usuario. Sin embargo, no proporcionan explícitamente cuáles son los requisitos.
  • Los diseñadores y los usuarios finales pueden centrarse demasiado en el diseño de la interfaz de usuario y demasiado poco en producir un sistema que sirva el proceso del negocio.
Los prototipos pueden ser: diagramas, aplicaciones operativas con funcionalidades sintetizadas. Los diagramas, en los casos donde se espera que el software final tenga diseño gráfico, se realizan en una variedad de documentos de diseño gráficos y a menudo elimina todo el color del diseño del software (es decir utilizar una gama de grises). Esto ayuda a prevenir la confusión sobre la apariencia final de la aplicación.

Especificación de requisitos del software

Una especificación de requisitos del software es una descripción completa del comportamiento del sistema a desarrollar. Incluye un conjunto de casos de uso que describen todas las interacciones que se prevén que los usuarios tendrán con el software. También contiene requisitos no funcionales (o suplementarios). Los requisitos no funcionales son los requisitos que imponen restricciones al diseño o funcionamiento del sistema (tal como requisitos de funcionamiento, estándares de calidad, o requisitos del diseño).
Las estrategias recomendadas para la especificación de los requisitos del software están descritas por IEEE 830-1998. Este estándar describe las estructuras posibles, contenido deseable, y calidades de una especificación de requisitos del software.

Los requisitos se dividen en tres:

  • Funcionales: son los que el usuario necesita que efectúe el software. Normalmente se identifican como los requisitos que responden a la pregunta ¿qué hace? e.g. El sistema debe emitir un comprobante al asentar la entrega de mercadería.
  • No funcionales: son los "recursos" para que trabaje el sistema de información (redes, tecnología). Ej: el soporte de almacenamiento a usar debe ser MySQL. Normalmente se identifican como los requisitos que responden a la pregunta ¿cómo lo hace? e.g. rápido, fácil etc.
  • Empresariales u Organizacionales: son el marco contextual en el cual se implantará el sistema para conseguir un objetivo macro. Ej: abaratar costos de expedición.
Identificación de las personas involucradas

Debido a que los cambios que introduce un sistema nuevo tienden a afectar a más de un tipo de usuario, los analistas de requisitos han de tomar en consideración a todos los implicados para que se obtengan y depuren sus requisitos de la forma más fidedigna posible. Entre las personas implicadas hay que considerar:

  • Organizaciones que integran la organización del analista que está diseñando el sistema
  • Organizaciones o sistemas de respaldo
  • Dirección
  • Usuarios.

miércoles, 14 de octubre de 2015

PROYECTO APP-PERFECT BODY GYM

REQUERIMIENTOS


ID
NOMBRE
DESCRIPCION
RF1


Registrar clientes
Permite al administrador  registrar un cliente nuevo, obteniendo carnet de cliente con código único
RF2

Actualizar los datos del cliente
permitirá al administrador actualizar los datos del cliente en cualquier momento
RF3

Historial del cliente
Permite  al administrador  tener un historial de medidas del cliente a través del tiempo
RF4


Caducidad del contrato del cliente
Permite al administrador  saber cuándo vence el pago del cliente (mensualidad)
RF5


Registrar instructores
Permite al administrador registrar un nuevo instructor, obteniendo carnet de empleado con código único
RF6

Actualizar los datos del instructor
Permite al administrador actualizar los datos del instructor en cualquier momento
RF7


Establecer los horarios de turnos de instructor
Permite al administrador asignar el horario de turno de trabajo del instructor
RF8

Caducidad del contrato de los instructores
Permite al administrador saber cuándo vence el contrato de los empleado
RF9


Manejo de clientes, instructores y productos
permite al administrador manipular la información de clientes, instructores y productos y al instructor consultar la información de clientes e instructores
RF10


Consultar asistencia de los clientes
permite  al administrador consultar si el cliente asiste en sus días vigentes de pago
RF11

Consultar asistencia de los instructores
Permite administrador la asistencia de los instructores a sus horarios de trabajo
RF12
Registro de venta diario
Permite al administrador y al empleado vender productos que se ofrecen en el gimnasio
RF13
Contacto vía e-mail por el administrador
Permite al administrador el envió de correos a sus clientes e instructores y recibirlos de los mismos
RF15
Registrar productos
Permite al administrador registrar un nuevo producto, obteniendo un código único
RF16
Actualizar datos de los productos
Permite al administrador actualizar los datos del producto en cualquier momento
RF17
Pago de nomina
El sistema calcula el pago de nómina a sus instructores
FR18
Cifra de venta diaria
El sistema calcula de forma efectiva los ingresos de dinero
RF19
Realizar consultas
El sistema Permitirá al cliente consultar horario del gimnasio, al instructor consultar sus horarios de turno y al administrador consultar todos los datos del sistema
RF20
Administrar rutinas de ejercicios
Permite a los clientes observar sus rutinas establecidas por sus instructores.
RF21
Ingresar rutina de ejercicio
El sistema debe permitir ingresar una rutina de ejercicio por parte del instructor hacia el usuario
RF22
Validar estado de un cliente
El sistema debe permitir validar el estado de un cliente con un carnet que contiene un código de barras y se pasa por un lector, de esta manera cuando un cliente llega al gimnasio pasa el carnet por el lector y deberá mostrar en pantalla si se le debe permitir el ingreso a ese cliente o no
RF23
El sistema deberá permitir un apartado de los productos
Permitirá realizar un apartado de los diferentes productos que ofrecen en el gimnasio
RF24
Consultar información financiera
El sistema permitirá administrar la información financiera y bancaria del gimnasio.
RF25
Reconocer tarjeta de acceso
El sistema permitirá verificar la tarjeta del usuario para el debido ingreso al establecimiento.