Trabajoartemio

Post on 23-Jun-2015

269 views 0 download

Transcript of Trabajoartemio

UNIVERSIDAD JOSE CARLOS MARIATEGUI

CARRERA : INGENIERIA DE SISTEMAS E INFORMATICA

CURSO : TOPICOS AVANZADOS DE INGENIERIA DE SISTEMAS

PROFESOR : JAVIER CLEMENTE BAQUERIZO

ALUMNO : PEREZ DEL CASTILLO ARTEMIO

CICLO : X

PERIODO : 2011 - II

ARQUITECTURAS DE SOFTWARE

DEFINICIONES:Son el conjunto de decisiones de diseño que, si son tomadas de forma equivocada, pueden provocar que su proyecto sea cancelado, por no cumplir con los servicios y la funcionalidad que espera el usuario.Es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución.

La arquitectura de un sistema de software define al sistema en términos de componentes computacionales e interacciones entre estos componentes.

COMPONENTES INTERACCIONES

• Clientes y Servidores.• Base de Datos.• Filtros.• Niveles de un sistema jerárquico.

• Llamadas a procedimientos.• Compartimiento de variables.• Protocolos cliente servidor.• Protocolos de acceso a BB.DD.

CUALIDADES DEL SOFTWARE

• Correctitud.- Un programa es funcionalmente correcto, si se comporta de acuerdo a la especificación de las funciones que debería proveer.

• Confiabilidad.- Se define en términos del comportamiento estadístico: la probabilidad de que el software opere como es esperado en un intervalo de tiempo especificado. Contrariamente a la correctitud que es una cualidad absoluta, la confiabilidad es relativa.

• Robustez.- Un programa es robusto si se comporta en forma razonable aún en circunstancias que no fueron anticipadas en la especificación de requerimientos.

• Performance.- En la ingeniería de software generalmente performance equivale a eficiencia. Un sistema de software es eficiente si utiliza los recursos computacionales en forma económica. La performance de un sistema es importante porque afecta su usabilidad.

• Amigabilidad.- Un sistema de software es amigable si un usuario humano lo encuentra fácil de usar.

• Mantenibilidad.- Es utilizado generalmente para referirse a las modificaciones que se realizan a un sistema de software luego de su liberación inicial.

• Reparabilidad.- Debe permitir la reparación de sus defectos con una carga limitada de trabajo. La modularidad juega un rol importante en este punto.

• Evolucionabilidad.- Un sistema es evolucionable si acepta cambios que le permitan satisfacer nuevos requerimientos.

• Reusabilidad.- Es similar a la evolucionabilidad, aquí se modifica un producto para construir una nueva versión del producto.

• Portabilidad.- El software es portable si puede ser ejecutado en distintos ambientes, de plataforma de hardware y software.

• Interoperabilidad.- Se refiere a la habilidad de un sistema de coexistir y cooperar con otros sistemas.

• Productividad.- Es una cualidad del proceso de producción de software, mide la eficiencia del proceso y como se vio antes.

• Oportunidad.- Es una cualidad del proceso que se refiere a la habilidad de entregar un producto a tiempo.

ESTILOS DE ARQUITECTURA

• Sirven para sintetizar estructuras de soluciones.

• Definen los patrones posibles de las aplicaciones.

• Permiten evaluar arquitecturas alternativas con ventajas y desventajas conocidas ante diferentes conjuntos de requerimientos no funcionales.

DATOS CENTRALIZADOS

Sistemas en los cuales cierto numero de clientes accede y actualiza datos compartidos de un repositorio de manera frecuente.

• Bases de datos.• Sistemas de hipertexto.• Pizarras.

FLUJO DE DATOS

El sistema es visto como una serie de transformaciones sobre piezas sucesivas de datos de entrada. El dato ingresa en el sistema, y fluye entre los componentes, de uno en uno, hasta que se le asigne un destino final (salida o repositorio).

• Secuencial en lote.• Tubos y filtros.

MAQUINAS VIRTUALES

Simulan alguna funcionalidad que no es nativa al hardware o software sobre el que esta implementado.

• Interpretes.• Sistemas basados en reglas.

LLAMADA Y RETORNO

El sistema se constituye de un programa principal que tiene el control del sistema y varios subprogramas que se comunican con este mediante el uso de llamadas.

• Programa principal y subrutina.• Sistemas orientados al objeto.• Capas jerárquicas.

COMPONENTES INDEPENDIENTES

Consiste en un numero de procesos u objetos independientes que se comunican a través de mensajes.

• Procesos comunicativos.• Sistemas de eventos.