ingeniería de software

30
Ingeniería de software Equipo 3 – Unidad 3: Arquitecturas de software Integrantes: Bautista Aguilar Marcos Enríquez Pérez Genaro González Contreras Santos Fortino Hernandez Mendoza David López Acevedo Luis Armando Orduña Olguín Elesito Sánchez Mata Cindy Villavicencio Arellano Roberto Docente: Lic. Nelly Rosina Izaguirre Cárdenas A 16 de Abril del 2014

description

administración de flota vehicular

Transcript of ingeniería de software

Presentacin de PowerPoint

Ingeniera de softwareEquipo 3 Unidad 3: Arquitecturas de software Integrantes:Bautista Aguilar MarcosEnrquez Prez GenaroGonzlez Contreras Santos FortinoHernandez Mendoza DavidLpez Acevedo Luis ArmandoOrdua Olgun ElesitoSnchez Mata CindyVillavicencio Arellano RobertoDocente: Lic. Nelly Rosina Izaguirre CrdenasA 16 de Abril del 2014CONTENIDODESCOMPOSCISION MODULAR.PATRONES DE DISEO.ARQUITECTURA DE DOMINIO ESPECIFICODISEO DE ARQUITECTURA DE SOFTWARE MULTIPROCESADOR.DISEO DE SOFTWARE DE ARQUITECTURA CLIENTE-SERVIDOR.DISEO DE SOFTWARE DE ARQUITECTURA DISTRIBUIDA.DISEO DE SOFTWARE DE ARQUITECTURA DE TIEMPO REAL.INTRODUCCION.En el mbito del software cada vez es ms comn escuchar el trmino arquitectura de software, y encontrar oportunidades de empleo para arquitectos de software. Aun as, este concepto tiende a ser malentendido y la falta de comprensin al respecto de sus principios frecuentemente repercute de manera negativa en la construccin de sistemas de software.

El concepto de arquitectura de software se refiere a la estructuracin del sistema que, idealmente, se crea en etapas tempranas del desarrollo. Esta estructuracin representa un diseo de alto nivel del sistema que tiene dos propsitos primarios: satisfacer los atributos de calidad (desempeo, seguridad, modificabilidad), y servir como gua en el desarrollo

Qu es la arquitectura de software?

De acuerdo al Software Engineering Institute (SEI), la Arquitectura de Software se refiere a las estructuras de un sistema, compuestas de elementos con propiedades visibles de forma externa y las relaciones que existen entre ellos.Por qu es importante la arquitectura de software?La arquitectura de software es de especial importancia ya que la manera en que se estructura un sistema tiene un impacto directo sobre la capacidad de este para satisfacer lo que se conoce como los atributos de calidad del sistemaLa Arquitectura del Software es el diseo de ms alto nivel de la estructura de un sistema.

Una Arquitectura de Software, tambin denominada Arquitectura lgica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan el marco.

Una arquitectura de software se selecciona y disea con base en objetivos y restricciones.Las ventajas que ofrece son: Claridad, reduccin de costos y reutilizacin.DESCOMPOSCISION MODULAR.Capacidad de empleo de componentes modulares. Si un mtodo de diseo permite ensamblar los componentes de diseo (reusables) existentes en un sistema nuevo, producir una solucin modular que no inventa nada ya inventado.Continuidad modular: Si pequeos cambios en los requisitos del sistema provocan cambios en los mdulos individuales se minimizar el impacto de los efectos secundarios de los cambios.Proteccin modular: Si dentro de un mdulo se produce una condicin aberrante y sus efectos se limitan a ese mdulo, se minimizar el impacto de los efectos secundarios inducidos por los errores.El diseo modular propone dividir el sistema en partes diferenciadas y definir sus interfaces.Los pasos a seguir son:1. Identificar los mdulos.2. Describir cada mdulo.3. Describir las relaciones entre mdulos.Una descomposicin modular debe poseer ciertas cualidades mnimas para que se pueda considerar suficiente validad.

Independencia funcional.Acoplamiento.Cohesin.ComprensibilidadAdaptabilidad2. PATRONES DE DISEO.Los patrones de diseo son la base para la bsqueda de soluciones a problemas comunes en el desarrollo desoftware y otros mbitos referentes al diseo de interaccin o interfaces.

Un patrn de diseo resulta ser una solucin a un problema de diseo.caractersticasDebe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores.

2. Debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseo en distintas circunstancias.Los patrones de diseo pretenden:

Proporcionar catlogos de elementos reusables en el diseo de sistemas software.Evitar la reiteracin en la bsqueda de soluciones a problemas ya conocidos y solucionados anteriormente.Formalizar un vocabulario comn entre diseadores.Estandarizar el modo en que se realiza el diseo.Facilitar el aprendizaje de las nuevas generaciones de diseadores condensando conocimiento ya existente.Categoras de patronesSegn la escala o nivel de abstraccin:

Patrones de arquitectura: Aquellos que expresan un esquema organizativo estructural fundamental para sistemas de software.

Patrones de diseo: Aquellos que expresan esquemas para definir estructuras de diseo (o sus relaciones) con las que construir sistemas de software.Adems de los patrones ya vistos actualmente existen otros patrones como el siguiente:

Interaccin: Son patrones que nos permiten el diseo de interfaces web.Estructuras o plantillas de patronesPara describir un patrn se usan plantillas ms o menos estandarizadas, de forma que se expresen uniformemente y puedan constituir efectivamente un medio de comunicacin uniforme entre diseadoresLa plantilla ms comn es la utilizada precisamente por elGoFy consta de los siguientes apartados:Nombre del patrn: nombre estndar del patrn por el cual ser reconocido en la comunidad (normalmente se expresan en ingls).Clasificacin del patrn: creacional, estructural o de comportamiento.Intencin: Qu problema pretende resolver el patrn?Tambin conocido como: Otros nombres de uso comn para el patrn.Motivacin: Escenario de ejemplo para la aplicacin del patrn.Aplicabilidad: Usos comunes y criterios de aplicabilidad del patrn.Estructura: Diagramas de clases oportunos para describir las clases que intervienen en el patrn.Participantes: Enumeracin y descripcin de las entidades abstractas (y sus roles) que participan en el patrn.Colaboraciones: Explicacin de las interrelaciones que se dan entre los participantes.Relacin de principales patronesGoF(Gang Of).3. ARQUITECTURA DE DOMINIO ESPECIFICOExisten dos modelos de dominio especfico:Modelos genricos que son abstracciones de varios sistemas reales. Modelos de referencia que son modelos abstractos y describen a una clase mayor de sistemas.

Modelo genrico: flujo de datos de un compiladorModelo de referencia: la arquitectura OSIAqu se tratan dos tipos genricos de arquitecturas de sistemas distribuidos:Arquitectura cliente-servidor:En este caso el sistema puede ser visto como un conjunto de servicios que se proporcionan a los clientes que hacen uso de dichos servicios. Los servidores y los clientes se tratan de forma diferente en estos sistemas.Arquitecturas de objetos distribuidos:Para esta arquitectura no hay distincin entre servidores y clientes, y el sistema puede ser visto como un conjunto de objetos que interaccionan cuya localizacin es irrelevante. No hay distincin entre un proveedor de servicios y el usuario de estos servicios.Los sistemas peer-to-peer han sido usados principalmente para sistemas personales, pero estn comenzando a usarse para aplicaciones de empresa. Los componentes en un sistema distribuido pueden implementarse en diferentes lenguajes de programacin y pueden ejecutarse en tipos de procesadores completamente diferentes. Los modelos de datos, la representacin de la informacin y los protocolos de comunicacin pueden ser todos diferentes. Un sistema distribuido, por lo tanto, requiere software que pueda gestionar estas partes distintas, y asegurar que dichas partes se puedan comunicar e intercambiar datosTambin se pueden tomar dos tipos ms de arquitecturas distribuidas que son: arquitectura de sistemas peer-to-peer (p2p) y arquitecturas orientadas a servicios.El trmino middleware se usa para hacer referencia a ese software; se ubica en medio de los diferentes componentes distribuidos del sistema..Nota: Bernstein (Bernstein, 1996) resume los tipos de middleware disponibles para soportar computacin distribuidaEl middleware es un software de propsito general que normalmente se compra como un componente comercial ms que escribirse especialmente por los desarrolladores de la aplicacin. Ejemplos de middleware son software para gestionar comunicaciones con bases de datos, administradores de transacciones, convertidores de datos y controladores de comunicacin. Los sistemas distribuidos se desarrollan normalmente utilizando una aproximacin orientada a objetos.4. DISEO DE ARQUITECTURA DE SOFTWARE MULTIPROCESADOR.Los sistemas multiprocesador (MP) son un tipo de arquitectura con una importancia creciente y ampliamente difundido. Un sistema multiproceso o multitarea es aquel que permite ejecutar varios procesos de forma concurrente, la razn es porque actualmente la mayora de las cpus solo pueden ejecutar un proceso cada vezLa ventaja de un sistema multiproceso reside en la operacin llamada cambio de contexto y consiste en quitar a un proceso de la cpu, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada.El multiproceso no es difcil de entender: ms procesadores significa ms potencia computacional.Un conjunto de tareas puede ser completado ms rpidamente si hay varias unidades de proceso ejecutndolas en paralelo.VENTAJASEs econmicaLas computadoras paralelas son inherentes escalables permitiendo actualizarlas para adecuarse a la necesidadDESVENTAJASPuede ser limitante fsica, existen factores que limitan la velocidad mxima de un procesador independiente del factor econmicoLas barreras fsicas infranqueables tales como la velocidad de la luz, efectos de tamao, la capacidad.5. DISEO DE SOFTWARE DE ARQUITECTURA CLIENTE-SERVIDOR.Laarquitectura cliente-servidores un modelo de aplicacin distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamadosclientes. En esta arquitectura la capacidad de proceso est repartida entre los clientes y los servidores, aunque son ms importantes las ventajas de tipo organizativo debidas a la centralizacin de la gestin de la informacin y la separacin de responsabilidades, lo que facilita y clarifica el diseo del sistema.CaractersticasEn la arquitectura C/S elremitente de una solicitudes conocido comocliente. Sus caractersticas son:Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicacin (dispositivomaestrooamo).Espera y recibe las respuestas del servidor.Por lo general, puede conectarse a varios servidores a la vez.Normalmente interacta directamente con los usuarios finales mediante unainterfaz grfica de usuario.En esta arquitectura la capacidad de proceso est repartida entre los clientes y los servidores, aunque son ms importantes las ventajas de tipo organizativo debidas a la centralizacin de la gestin de la informacin y la separacin de responsabilidades, lo que facilita y clarifica el diseo del sistema.La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes estn conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposicin de los clientes cada vez que estos son solicitados.6. DISEO DE SOFTWARE DE ARQUITECTURA DISTRIBUIDA.La utilizacin de la arquitectura distribuida basada en una red de ordenadores personales tiene como objetivo global: obtener prestaciones razonables a un costo bajo.Fue creada a partir de la Arquitectura n-Layer desacoplada, donde intervienen las capas de presentacin, de negocio, de servicios y datos. Adems de las tecnologas para su implementacin, Workflows, Servicios Web e Interfaces Grficas declarativas. Ventajas: Evita la sobrecarga de procesador con clculos sobre los modelos matemticos y generacin de la escena. Permite una mayor reutilizacin del cdigo: al ser compartimentos ms o menos estancos, las mayores variaciones se realizan en interfase de usuario. El uso de ordenadores personales reduce el coste inicial de implantacin. Los ordenadores personales son altamente fiables, se reparan fcilmente y se sustituyen de forma inmediata. Es software empleado es de gran difusin y se encuentra fcilmente software desarrollado y personal cualificado. El uso del mismo tipo de ordenador para tareas distintas permite un coste de mantenimiento ms reducido.Inconvenientes de la arquitectura distribuida: Es ms difcil disear y desarrollar el software para el trabajo en paralelo que para una aplicacin nica lineal. Hay adquirir y aprender un software para las comunicaciones entre los distintos ordenadores. Los problemas de organizacin del trfico de informacin para garantizar la consistencia de las comunicaciones es una tarea bien compleja. Se necesita un hardware de red de suficiente fiabilidad. La depuracin de los programas en este tipo de arquitectura se dificulta enormemente. En algunos casos es necesario desarrollar herramientas ad-hoc para obtener datos que puedan ayudar a la depuracin.7. DISEO DE SOFTWARE DE ARQUITECTURA DE TIEMPO REALUn sistema de tiempo real es un sistema de procesamiento de informacin el cual tiene que responder a estmulos de entrada generados externamente en un perodo finito y especfico.Un sistema en tiempo real es una combinacin de computadoras, dispositivos de E/S, hardware y software de propsito especfico en donde:Existe una fuerte interaccin con el ambiente.El ambiente cambia con el tiempoEl sistema debe controlar y/o reaccionar a diferentes aspectos del ambiente.Los estmulos pueden pertenecer a dos clases:Estmulos peridicos. Ocurren a intervalos de tiempo predecibles. Por ejemplo, si el sistema debe examinar un sensor cada 50 milisegundos y realizar una accin (respuesta) dependiendo del valor de ese sensor (estmulo).Estmulos aperidicos.Ocurren de forma regular. Normalmente son provocados utilizando el mecanismo de interrupciones de la computadora. Un ejemplo de dicho estmulo podra ser una interrupcin para indicar que una transferencia de E/S se ha completado y que los datos estn disponibles en el bfer.CONCLUSION:BIBLIOGRAFIAhttp://metodoz.blogspot.mx/2013/05/diseno-de-software-de-arquitectura-de.htmlhttp://ederjacielsantos.blogspot.mx/2013/05/3_2.htmlhttp://es.slideshare.net/j0k3rb4ck/diseno-desoftwareenarquitecturaclienteservidorhttp://arquitecturamultiprocesador.blogspot.mx/2013/04/diseno-de-software-de-la-arquitectura.htmlhttp://c3l3sp4s4t.blogspot.mx/