Arquitectura de software

1,079 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,079
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Arquitectura de software

  1. 1. Patrón arquitectónico de laplataforma de apoyo para lamejora de procesos softwareen PyMEsRoque Manuel Rueda AnastacioEste documento presenta una descripción de la arquitectura propuesta por laplataforma de apoyo para la mejora de procesos software en las PyMEs la cual sedesprende de la tesis del alumno Roque Manuel Rueda Anastacio para obtener elgrado de Maestro en Sistemas Computacionales 10/24/2012Page 0 of 9
  2. 2. Patrón arquitectónico de la plataformade apoyo para la mejora de procesossoftwareÍndiceÍndice ....................................................................................................................................................... 1Definición de arquitectura de software ....................................................................................... 1Patrones arquitectónicos .................................................................................................................. 2 Influencias en el desarrollo de la arquitectura ..................................................................... 3 Experiencia del arquitecto ........................................................................................................... 3 Modelo/Vista/Controlador .......................................................................................................... 4 Model-View-ViewModel .............................................................................................................. 5Arquitectura Propuesta ..................................................................................................................... 7Referencias ............................................................................................................................................ 9Definición de arquitectura de softwareLa arquitectura de un sistema computacional es una representación que permitecomprender como se comportará el sistema [1].Es un plano para el desarrollo del sistema y el equipo de desarrollo, define loselementos que se deben realizar tanto por el equipo de diseño así como el dePage 1 of 9
  3. 3. implementación. La arquitectura contiene las características del sistema como loson el desempeño, fácil aceptación de cambios y seguridad, los cuales no sepueden lograr sin tener una visión unificada de la arquitectura. La arquitectura esun producto de trabajo para el inicio del análisis para asegurar que la aproximaciónde diseño proporcionara un sistema aceptable.“Es el pegamento que mantiene todos las fases del proyecto juntos para sus diversosimplicados” [2].La arquitectura de software es una pieza central en el desarrollo de un sistema yaque dicta el camino a seguir en el desarrollo de la aplicación. Una arquitecturadebe describir los elementos del sistema y sus relaciones así como también con elambiente en el que se encuentran. Se puede decir entonces que una arquitecturaes una abstracción del sistema que solo incluye la descripción de los detalles másimportantes y permite que conforme se desarrolle el sistema se agrega detallesque crean un sistema funcional. Una arquitectura se puede entender tambiéncomo: la estructura o estructuras del sistema, que componen los elementos desoftware, sus propiedades que son visibles externamente y las relacionesentre ellos [3].Patrones arquitectónicosPatrones arquitectónicos o estilos arquitectónicos son analogías de los estilosarquitectónicos de los edificios, como Gótico, Revival Griego o Queen Anne.Consisten en conjuntos de características claves y reglas para combinarlos conel fin de poder preservar la integridad arquitectónica. Presentan estilos aproblemas arquitectónicos recurrentes [4]. Existen diversas influencias en el diseñoy las influencias cambian de acuerdo al ambiente en el que se desenvuelve.Page 2 of 9
  4. 4. Influencias en el desarrollo de la arquitecturaLa arquitectura de software se define dependiendo de las necesidades específicasdel sistema a desarrollar ya que no existe una arquitectura que cubra todas lasnecesidades. Un mismo arquitecto puede generar una arquitectura diferente paraun sistema similar dependiendo de las necesidades de los involucrados. En lailustración 1 apreciamos una serie de implicados en un sistema dando una serie desugerencias a un arquitecto. Administrador Marketing Usuario final Mantenimiento Clientes del negocio Comportamiento,Bajo costo, Características, poco desempeño, Agregar nuevas Bajo costo, tiempo demantener el tiempo, a la par de seguridad, confianza, características entrega, sin cambiostrabajo otros productos usabilidad continuamente ¡AAAHH! (Este puedes ser tú) Arquitecto Ilustración 1 Influencia de los implicados en la arquitecturaExperiencia del arquitectoSi el arquitecto de un sistema tiene buenos resultados con una aproximaciónarquitectónica, es muy probable que se utilice esa misma aproximación enesfuerzos de desarrollo siguientes. También las decisiones pueden provenir de laeducación y entrenamiento, exposición a patrones arquitectónicos exitosos osistemas que se desempeñaban pobremente o particularmente bien.Page 3 of 9
  5. 5. Modelo/Vista/ControladorEl patrón Modelo Vista Controlador o MVC es una manera práctica de arquitecturainteractiva en sistemas de software. El concepto principal es la separación de lasinterfaces de los datos representados por la interfaz de usuario. El modelo es laporción que representa el problema que se busca solucionar en datos, el modelosolo cambiara cuando cambie la problemática la cual se supone se mantenga porperiodos de tiempo extensos, contienen la información como la lógica paracambiar esa información. El control es responsable entre la comunicación de laVista y los modelos. Y la vista únicamente presenta la información al usuario y pasalas interacciones del usuario a su control [5].Características que se obtienen de este patrón arquitectónico:  La apariencia del sistema puede cambiar de manera drástica sin afectar las estructuras de datos o la lógica del negocio.  La aplicación puede mantener distintas interfaces, así como múltiples lenguajes, o diferentes niveles de permisos.Page 4 of 9
  6. 6. Model-View-ViewModelEl patrón Modelo-Vista-Vista de Modelo consiste de tres componentes principales:La vista es la representación de la interfaz de usuario. Contiene usualmente solocomponentes de interfaz de usuario sin código o solo el código de lógicanecesario, otro elemento es la vista de modelo es un objeto que encapsula losdatos desde su forma de registros hacia a una presentación, Maneja los eventosque se generan desde la vista. Finalmente el modelo se refiere al dominio delproblema y representan la problemática y encapsula el comportamiento delsistema.Características que se obtienen de este patrón arquitectónico:  La vista puede ser cambiada sin ninguna complicación.Page 5 of 9
  7. 7.  Se pueden realizar pruebas unitarias simulando la interacción del usuario con las vistas.  Permite la interacción de diferentes vistas con un mismo modelo de datos.  Se puede modificar las vistas o el modelo sin que se afecte al otro  Se puede dar formato a los datos antes de ser presentados en una vista de manera fácilPage 6 of 9
  8. 8. Arquitectura Propuesta Navegador Cliente Web Dispositivo Android Aplicación Android Interne Presentación de Widget API KSOAP2 Vaadin JAXB resultados Servicios Web Módulo de consultas Constructor de Base Consulta a base cuestionarios de datos Búsqueda por Extracción y Ontologí Servidor de sinónimos estructuración del aplicaciones JBOSS Generación Modulo de matriz Unificación de de reportes de cumplimiento términosPage 7 of 9
  9. 9. La arquitectura propuesta sigue el patrón arquitectónico MVVM cuenta con 3grandes elementos que integran los elementos del sistema, la Plataforma SPI(gris) contiene los elementos que corresponden al modelo y representan elproblema a abordar, así como también encapsulan el comportamiento del sistema,se agrega una capa de servicios web la cual expondrá interfaces (Patron de diseñofacade -> Fachada) para acceder a la funcionalidad del sistema.Al exponer la funcionalidad del sistema mediante servicios web se obtiene, unavista y una vista de modelo que pueden ser modificadas sin alterar ningúnelemento del otro; siempre y cuando se respete la interfaz expuesta por el servicioweb. Además de dar soporte a otros lenguajes y otros dispositivos y plataformasde comunicarse con la plataforma propuesta.Los otros dos elementos importantes Aplicación Android y Cliente Webrepresentan la vista de modelo ya que son quienes cuentan con la vista hacia elusuario y además cuentan con clases para obtener la información de la plataforma,dar formato si es necesario o realizar operaciones con ella antes de ser mostrada alusuario además de que pueden realizar operaciones antes de enviarla a laplataforma.La ventaja que se descubre es entonces que la plataforma podrá interactuar concualquier lenguaje/dispositivo/plataforma capaz de consumir un servicio web(SOAP). Además se denomina plataforma ya que permitirá la derivación de nuevastecnologías o procesos a partir de las funcionalidades contenidas y expuestasmediante los servicios web. [Ref mi tesis]Page 8 of 9
  10. 10. Referencias [1]. (2012) Software Architecture. [Online]. Available: http://www.sei.cmu.edu/architecture/ [2]. (2012) Software Architecture Start [Online] Available: http://www.sei.cmu.edu/architecture/start/?wt.ac=swaGettingStarted nd [3]. Len Bass, Paul Clements, Rick Kazman, Software Architecture in Practice, 2 ed., Addison Wesley, 2003, ISBN: 0-321-15495-9, p. 560. [4]. Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann, Pattern-Oriented Software Architecture—Patterns for Concurrent and Networked Objects, Volume 2, Wiley, 2000. [5]. Avraham Leff, James T. Rayfield, “Web-Application Development Using the Model/View/Controller Desing Pattern”, IBM T.J. Watson Research Center. [6]. P. Tanuska, T. Skripcak “Data-Driven Scenario Test Generation for Information Systems” International Journal of Computer Theory and Engineering, Vol. 3, No. 4, August 2011Page 9 of 9

×