jueves, 22 de noviembre de 2012

Arquitectura cliente-servidor


Arquitectura cliente-servidor


Esta arquitectura se divide en dos partes claramente diferenciadas, la primera es la parte del servidor y la segunda la de un conjunto de clientes. 
Normalmente el servidor es una máquina bastante potente que actúa de depósito de datos y funciona como un sistema gestor de base de datos (SGBD). 
Por otro lado los clientes suelen ser estaciones de trabajo que solicitan varios servicios al servidor. 
Ambas partes deben estar conectadas entre sí mediante una red. Una representación gráfica de este tipo de arquitectura sería la siguiente. 




Este tipo de arquitectura es la más utilizada en la actualidad, debido a que es la más avanzada y la que mejor ha evolucionado en estos últimos años. 

jueves, 15 de noviembre de 2012

ARQUITECTURA DE SOFTWARE


Una definición de arquitectura de software, según "El proceso unificado de desarrollo de software" de Jacobson-Grady-Rumbaugh, lo compara a la arquitectura en la construcción. La aquitectura de software es el conjunto de planos de un desarrollo de software. Planos con las características más importantes resaltadas dejando de lado los detalles. Características como requisitos de los usuarios e inversores, plataforma (sistema operativo, harware, base de datos, protocolos de red), bloques de construcción reutilizables, condideraciones de implantación, sistemas heredados y requisitos no funcionales.
se les ha denominado Arquitectura de Software, porque, a semejanza de los planos de un edificio o construcción, estas indican la estructura, funcionamiento e interacción entre las partes del software; generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto

Ventajas


Las ventajas de diseñar y documentar explicitamente una arquitectura de software:


* Decisiones tempranas de diseño
* Reuso a gran escala
* Comunicaciones entre stakeholders

Arquitecturas más comunes 


Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto. Así, las arquitecturas más universales son:

  • Monolítica. Donde el software se estructura en grupos funcionales muy acoplados.
  • Cliente-servidor. Donde el software reparte su carga de cómputo en dos partes independientes pero sin reparto claro de funciones.
  • Arquitectura de tres niveles. Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente.




Conclusión

El tema de la arquitectura tomó mucha preponderancia es los últimos años como algo clave a la hora de diseñar una solución informática. Lo importante es comprender que para la arquitectura existen varias perspectivas y que dentro de estás podemos mostrar vistas dependiendo de los puntos de vista interesados en la misma y qué, al diseñar una solución debemos pensar en ellos y dejar plasmado en algún documento las decisiones arquitectónicas que tomamos. 

jueves, 8 de noviembre de 2012

¿ Qué es la Computación en Nube ?

¿ Qué es la Computación en Nube ?


La computación en nube es un sistema informático basado en Internet y centros de datos remotos para gestionar servicios de información y aplicaciones. La computación en nube permite que los consumidores y las empresas gestionen archivos y utilicen aplicaciones sin necesidad de instalarlas en cualquier computadora con acceso a Internet. Esta tecnología ofrece un uso mucho más eficiente de recursos, como almacenamiento, memoria, procesamiento y ancho de banda, al proveer solamente los recursos necesarios en cada momento. El término “nube” se utiliza como una metáfora de Internet..



jueves, 1 de noviembre de 2012

DIAGRAMAS DE SECUENCIA

DIAGRAMAS DE SECUENCIA


En un diagrama de secuencia se indicarán los módulos o clases que forman parte del programa
y las llamadas que se hacen en cada uno de ellos para realizar una tarea determinada.
Se realizan diagramas de secuencia para definir acciones que se pueden realizar en la aplicación
en cuestión. Así, en el caso de una aplicación para jugar al ajedrez, se podrían realizar
diagramas de secuencia para “jugar una partida” o bien para acciones más específicas como
“mover pieza”.
El detalle que se muestre en el diagrama de secuencia debe estar en consonancia con lo que se
intenta mostrar o bien con la fase de desarrollo en la que esté el proyecto, no es lo mismo un
diagrama de secuencia que muestre la acción de “mover pieza” a otro que sea “mover caballo”,
o bien no es lo mismo un diagrama de secuencia “mover pieza” que verifique ciertos parámetros
antes de mover como la viabilidad del movimiento con respecto a una estrategia marcada a una
diagrama que no muestre este nivel de detalle por estar en una fase inicial de diseño del
sistema.

El siguiente puede ser un diagrama de secuencia del ejemplo del ajedrez a un nivel de diseño
muy preliminar.



jueves, 25 de octubre de 2012

DIAGRAMA DE CLASES


Un diagrama de clases es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro.
Representación de: - Requerimientos en entidades y actuaciones. - La arquitectura conceptual de un dominio - Soluciones de diseño en una arquitectura - Componentes de software orientados a objetos

Definiciones

  • Propiedades también llamados atributos o características, son valores que corresponden a un objeto, como color, material, cantidad, ubicación. Generalmente se conoce como la información detallada del objeto. Suponiendo que el objeto es una puerta, sus propiedades serían: la marca, tamaño, color y peso.
  • Operaciones comúnmente llamados métodos, son aquellas actividades o verbos que se pueden realizar con/para este objeto, como por ejemplo abrir, cerrar, buscar, cancelar, acreditar, cargar. De la misma manera que el nombre de un atributo, el nombre de una operación se escribe con minúsculas si consta de una sola palabra. Si el nombre contiene más de una palabra, cada palabra será unida a la anterior y comenzará con una letra mayúscula, a excepción de la primera palabra que comenzará en minúscula. Por ejemplo: abrirPuerta, cerrarPuerta, buscarPuerta, etc.
  • Interfaz es un conjunto de operaciones que permiten a un objeto comportarse de cierta manera, por lo que define los requerimientos mínimos del objeto. Hace referencia a polimorfismo.
  • Herencia se define como la reutilización de un objeto padre ya definido para poder extender la funcionalidad en un objeto hijo. Los objetos hijos heredan todas las operaciones y/o propiedades de un objeto padre. Por ejemplo: Una persona puede especializarse en Proveedores, Acreedores, Clientes, Accionistas, Empleados; todos comparten datos básicos como una persona, pero además cada uno tendrá información adicional que depende del tipo de persona, como saldo del cliente, total de inversión del accionista, salario del empleado, etc.
Al diseñar una clase se debe pensar en cómo se puede identificar un objeto real, como una persona, un transporte, un documento o un paquete. Estos ejemplos de clases de objetos reales, es sobre lo que un sistema se diseña. Durante el proceso del diseño de las clases se toman las propiedades que identifican como único al objeto y otras propiedades adicionales como datos que corresponden al objeto. Con los siguientes ejemplos se definen tres objetos que se incluyen en un diagrama de clases:

Ejemplo 1: Una persona tiene número de documento de identificación, nombres, apellidos, fecha de nacimiento, género, dirección postal, posiblemente también tenga número de teléfono de casa, del móvil, FAX y correo electrónico.
Ejemplo 2: Un sistema informático puede permitir administrar la cuenta bancaria de una persona, por lo que tendrá un número de cuenta, número de identificación del propietario de la cuenta, saldo actual, moneda en la que se maneja la cuenta.
Ejemplo 3: Otro objeto pueden ser "Manejo de Cuenta", dónde las operaciones bancarias de una cuenta (como en el ejemplo 2) se manejarán realizando diferentes operaciones que en el diagrama de clases de balurdes sólo se representan como operaciones, que pueden ser:
  • Abrir
  • Cerrar
  • Depósito
  • Retiro
  • Acreditar Inerese
Estos ejemplos constituyen diferentes clases de objetos que tienen propiedades y/u operaciones que contienen un contexto y un dominio, los primeros dos ejemplos son clases de datos y el tercero clase de lógica de negocio, dependiendo de quién diseñe el sistema se pueden unir los datos con las operaciones.
El diagrama de clases incluye mucha más información como la relación entre un objeto y otro, la herencia de propiedades de otro objeto, conjuntos de operaciones/propiedades que son implementadas para una interfaz gráfica.

jueves, 11 de octubre de 2012

CICLO DE VIDA RUP Y SCRUM

SCRUM

Es un método adaptativo de gestión de proyectos que se basa en los principios ágiles:

* Colaboración estrecha con el cliente.
* Predisposición  respuesta al cambio.
* Prefiere el conocimiento táctico de las personas al explicito del procesos.
* Desarrollo incremental con entregas funcionales frecuentes.
* Comunicación verbal directa entre los implicados en el proyecto.
* Motivación y responsabilidad de los equipos por la Auto-gestión, auto-organización y compromiso.
* Simplicidad. suspenso de artefactos innecesarios en la gestión del proyecto.


RUP