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










jueves, 4 de octubre de 2012

Diagrama de Gantt

El diagrama de Ganttgráfica de Gantt o carta Gantt es una popular herramienta gráfica cuyo objetivo es mostrar el tiempo de dedicación previsto para diferentes tareas o actividades a lo largo de un tiempo total determinado. A pesar de que, en principio, el diagrama de Gantt no indica las relaciones existentes entre actividades, la posición de cada tarea a lo largo del tiempo hace que se puedan identificar dichas relaciones e interdependencias. Fue Henry Laurence Gantt quien, entre 1910 y 1915, desarrolló y popularizó este tipo de diagrama en Occidente.


técnicas de revisión y evaluación de programa  

La Técnica de Revisión y Evaluación de Programas (en inglés, Program Evaluation and Review Technique), comúnmente abreviada como PERT, es un modelo para laadministración y gestión de proyectos inventado en 1958 por la Oficina de Proyectos Especiales de la Marina de Guerra del Departamento de Defensa de los EE. UU. como parte del proyecto Polaris de misil balístico móvil lanzado desde submarino. Este proyecto fue una respuesta directa a la crisis del Sputnik.
PERT es básicamente un método para analizar las tareas involucradas en completar un proyecto dado, especialmente el tiempo para completar cada tarea, e identificar el tiempo mínimo necesario para completar el proyecto total.                         

jueves, 20 de septiembre de 2012

UML


Herramientas UML

Pero volviendo a la definición de UML como "conjunto de herramientas", si nos imaginamos UML como una caja de herramientas con su martillo, destornillador, alicates, etc. Veamos qué contiene nuestra caja de herramientas:

Diagrama de casos de uso
Diagrama de clases
Diagrama de estados
Diagrama de secuencias
Diagrama de actividades
Diagrama de colaboraciones
Diagrama de componentes
Diagrama de distribución
Pero siguiendo con la analogía, si vamos a colgar un cuadro no usaremos todas las herramientas de nuestra caja, posiblemente sólo usemos el martillo para clavar el clavo.
Lo mismo pasa con UML, una vez que conozcamos las herramientas usaremos en cada momento las más adecuadas a nuestras necesidades. Nos os voy a decir que esto sea fácil, pues hay que saber para qué sirven y qué limitaciones tienen unas y otras para conocer su utilidad. Pero se puede alcanzar este conocimiento con un poco de práctica y sentido común.

miércoles, 12 de septiembre de 2012

cvsi

CVSI

investigación preliminar 

                 factibilidad
                 operacional
                 económica
                 técnica
                 legal

Análisis
                 requerimientos
                                           requisitos         
                                                          * funcional     
                                                          * no funcional 
Diseño
                 Arquitectura

Desarollo
            Rup: ciclo de vida que determina cuantos desarolladores se necesitan para el desarroyo
                            del software
                  Scrum: ciclo de vida para crear un software en poco tiempo
Implementacion
           prueba 
                mantenimiento


agate

Caso de estudio agate


Agate es una compañía de publicidad, la cual implementaron un sistema de información con el cual solo requerimiento primordiales, ellos querían pasar el software que ya le habían implementado a java ya que en su empresa manejaban barios sistema de computo para cada facultad y java se hace compatible con estos y que cubra todos los requerimientos de la empresa para que así tener mayor eficiencia y eficacia en su compañía.

casos de uso


CASO DE USO


Un Caso de Uso es una representación de una unidad discreta de trabajo realizada por un
usuario (u otro sistema) usando el sistema en operación. Se ejecuta en su totalidad o no se
ejecuta nada, devolviendo algo de valor al usuario. Algunos ejemplos de casos de uso son
Agregar Pedido, Eliminar Pedido, Modificar Pedido.


Una descripción de Caso de Uso generalmente incluirá

Comentarios generales y notas que describen el Caso de Uso;
Requisitos: cosas que el Caso de Uso debe permitir hacer al usuario, tales como <capacidad
de actualizar orden>, <capacidad de modificar orden>, etc.
Restricciones: las reglas sobre qué se puede hacer y qué no se puede. Incluyen
precondiciones que tienen que ser verdaderas antes de que se ejecute el Caso de Uso

Técnicas de recolección de hechos:

*Entrevista
*Observación
*Revisión de archivos

*Encuestas
*Encuestados

Requerimientos Funcionales

Son todas aquellas acciones que se van a realizar en el software o como se va a comportar el software.

Requerimientos no Funcionales
Se refieren a todos los requisitos que ni describen información a guardar, ni funciones a realizar.
Los requisitos no funcionales más habituales son la estabilidad, la portabilidad y el costo.

requisitos


REQUISITOS




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 los inversores, 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.


requerimientos


requerimientos




El conocimiento requerido de un analista de sistemas experimentado puede resumirse bajo los siguientes encabezamientos.

Requerimientos de información: un conocimiento de la industria en la que el analista actúa, la organización y estructura de la compañía, cómo se ejerce el control administrativo, y la naturaleza de la información que necesita la dirección de la compañía para tomar decisiones efectivas.





analista


Como ser un buen analista




El analista de sistemas debe ser una persona que desarrolle rápidamente un conocimiento del ambiente en que se halla. Tiene que ser fundamentalmente un buen pensador, pero no es necesario que tenga diez ideas brillantes por día. No es un hombre de gabinete, sino, preferentemente una persona con mentalidad inquisitiva, capaz de interactuar y comprender y apreciar las ideas ajenas. Debe ser capaz de buscar no simplemente en el plano teórico, sino que debe recogerlas y evaluarlas en relación con el estado actual de la organización en que trabaja.

ing de software

ING. DE SOFTWARE





Ing. de software

Es aquella que ofrece métodos y técnicas para desarrollar y mantener software de calidad.