lunes, 15 de octubre de 2012

Web service


Es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones, permite interoperatibilidad  máquina a máquina en una red.

Diagrama de colaboración


Es una forma de representar interacción entre objetos. Este  resalta la organización estructural de los objetos que envían y reciben los mensajes. Este tipo de diagrama muestra un conjunto de objetos, enlaces entre ellos y los mensajes que intercambian. Un diagrama de colaboración es un grafo, donde los nodos del grafo son los objetos y los arcos son los enlaces. Un enlace es una instancia de una asociación o una dependencia entre clases.

Diagrama de componentes y despliegue

Diagrama de componentes:  Es un esquema o diagrama que muestra las interacciones y relaciones de los componentes de un modelo. Entendiéndose como componente a una clase de uso específico, que puede ser implementada desde un entorno de desarrollo, ya sea de código binario, fuente o ejecutable; dichos componentes poseen tipo, que indican si pueden ser útiles en tiempo de compilación, enlace y ejecución.

Diagrama de despliegue: muestran las relaciones físicas de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos.
La vista de despliegue representa la disposición de las instancias de componentes de ejecución en instancias de nodos conectados por enlaces de comunicación. Un nodo es un recurso de ejecución tal como un computador, un dispositivo o memoria.

SAAS

Es una forma de distribuir el software por el cual el proveedor aloja la aplicación en sus propios servidores, dándole al cliente acceso a ella a través de una licencia. La empresa provee del servicio de mantenimiento diario, almacenamiento de la información y seguridad de los datos, liberando así al cliente del mantenimiento y los gastos asociados. Esto significa que el cliente puede externalizar los servicios de alojamiento y no tiene que comprar la aplicación permitiendo un ahorro de costes considerable y el acceso a mejores aplicaciones, antes vetadas a la pyme por coste y mantenimiento.

SOA


La Arquitectura Orientada a Servicios es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio.
Permite la creación de sistemas altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma estándar de exposición e invocación de servicios, lo cual facilita la interacción entre diferentes sistemas propios o de terceros.
SOA proporciona una metodología y un marco de trabajo para documentar las capacidades de negocio y puede dar soporte a las actividades de integración y consolidación.

Patrón MVC


es un patrón de diseño es  uno de los patrones de diseño el cual es utilizado en la Ingeniería de Software y consta de 3 niveles.

  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema también puede operar con más datos no relativos a la presentación, haciendo uso integrado de otras lógicas de negocio y de datos afines con el sistema modelado.
  • Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.
  • Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista.

Estilos arquitectónicos


Cada estilo arquitectónico describe una categoría del sistema que contiene: un conjunto de componentes, que realiza una función requerida por el sistema, un conjunto de conectores que posibilitan la comunicación, la coordinación y la cooperación entre los componentes; restricciones que definen como se puede integrar los componentes que forman el sistema; y modelos semánticos que permiten al diseñador entender las propiedades globales de un sistema para analizar las propiedades conocidas de sus partes constituyentes.

Arquitectura lógica

La arquitectura de software de un programa o sistema de computadora, es la estructura de ese sistema, que incluye componentes de software, las propiedades visibles externas de esos componentes, y las relaciones entre estos.

miércoles, 12 de septiembre de 2012

GENEXUS


Es una herramienta de desarrollo de software multiplataforma, basada en conocimiento orientada principalmente a aplicaciones web empresariales, plataformas Windows y dispositivos móviles. 

herramientas CASE


Las herramientas CASE son diversas aplicaciones informáticas que se usan para aumentar la productividad en el desarrollo de software, reduciendo el costo en términos de tiempo y dinero

patrones GOF


 Son patrones basados en el campo orientado a objeto y en la actualidad son los más conocidos y utilizados.

Se subdividen en tres:

PATRONES CREACIONALES
Ejemplo

Fábrica Abstracta ( Abstract Factory ):Este patrón soluciona problemas como crear diferentes familias de objetos, un ejemplo es la creación de interfaces en distintos tipos de ventanas, menús ,botones, etc.

PATRONES ESTRUCTURALES

Ejemplo

Puente (Bridge): Desenlaza una  implementación permitiendo modificarlas independientemente.

PATRONES DE COMPORTAMIENTO

Ejemplo

Cadena de responsabilidad (Chain of responsibility): La base es permitir que más de un objeto tenga la posibilidad de atender una petición.

TDD (test-driven development)

Desarrollo guiado por pruebas es  un proceso de desarrollo de software que se basa en la idea de desarrollar pruebascodificar y refactorizar el código construido.

manifiesto agíl

Las metodologías agiles forman parte del movimiento de desarrollo ágil de software, y se basan en la adaptabilidad de cualquier cambio como medio para aumentar las posibilidades de éxito de un proyecto.

prince2

Es un método para la gestión de proyectos que cubre administración, control y organización de un proyecto.

ITIL

es un conjunto de conceptos y prácticas usadas para la gestión de servicios de tecnologías de información, desarrollo de tecnologías de la información y las operaciones relacionadas con la misma en general, da un extenso de procedimientos de gestión ideados para ayudar a las organizaciones a lograr calidad y eficiencia en las operaciones de TI.

SCRUM

es un marco de trabajo diseñado para la gestión y desarrollo de software basada en un proceso iterativo e incremental que se usa comúnmente en entornos basados en el desarrollo ágil de software.

PROGRAMACIÓN EXTREMA

XP es una metodología de desarrollo ligera que se basa en una serie de valores y prácticas que proporcionan un aumento en la productividad a la hora de crear software.

Patrones GRASP


Patrones generales de software para asignación de responsabilidades.

Experto en información es el principio básico de asignación de responsabilidades. La responsabilidad de la creación de un objeto o la implementación de un método, debe recaer sobre la clase que conoce toda la información necesaria para crearlo.

Creador nos ayuda a identificar quién debe ser el responsable de la creación de nuevos objetos o clases.

Controlador es un patrón que sirve como intermediario entre una determinada interfaz y el algoritmo que la implementa, de tal forma que es la que recibe los datos del usuario y la que los envía a las distintas clases según el método llamado.

Alta cohesión y bajo acoplamiento se recomienda tener un mayor grado de cohesión con un menor grado de acoplamiento.

ejemplo 
Este es un ejemplo muy sencillo del patrón experto este define la clase que conoce toda la información necesaria para crear un objeto en este ejemplo el experto seria ventas.

Patrones


los patrones son soluciones genéricas para problemas comunes en el desarrollo de software, estos pueden ser de arquitectura que ofrecen soluciones a problemas de arquitectura de software y de diseño que expresan un esquema para definir una serie de estructuras de diseño con las que construir software.

Swebok


Es una guía que provee  acceso a través de las temáticas al conjunto de conocimientos de la Ingeniería del Software, promueve una visión consistente de la Ingeniería del Software en todo el mundo, Clarifica la posición de la Ingeniería del Software respecto a otras disciplinas y Proveer una base para su desarrollo curricular y la creación de materiales de certificación.

Refactorización

se define refactorización como una tecnica para reestructurar el codigo fuente , alterando su extructura interna sin cambiar su comportamiento externo.