You are on page 1of 4

INSTITUTO TECNOLGICO DE CULIACN

INGENIERA EN SISTEMAS COMPUTACIONALES

Arquitectura del software Ensayo: La arquitectura del software

Profesora: Dra. Barrn Estrada Mara Luca

Alumno: Contreras Nieblas Alberto Leonel

Fecha de entrega: 11/02/2013

1. Introduccin:
A diferencia de cualquier otro producto, el software es un producto intelectual, ms que material, lo cual complica enormemente todo el proceso de produccin. En un afn de volver ms sencillo este proceso el hombre con base en la prctica y la experiencia, empez a desarrollar nuevas herramientas y mtodos formales de produccin, entre los cuales surge la arquitectura del software, la cual estaremos tratando en este artculo.

2. Arquitectura del software:


La arquitectura del software es una manera de visualizar el sistema atreves de una serie de elementos primordiales conocidos como componentes, adems de definir la manera en que estos componentes se comportan y se comunican para lograr el objetivo primordial del sistema de cmputo. Adems la arquitectura de software define la manera en que un componente es percibido por los dems componentes. Existen un sinfn de definiciones acerca de la arquitectura de software cada una agrega, resta o combina elementos, todo depender de la forma en que el arquitecto de software desarrolle el sistema de cmputo. A pesar de la gran diversidad de definiciones en cada una podemos identificar claramente dos conceptos primordiales componentes y relaciones, esto se debe a que la arquitectura del software trata de resolver un problema de la manera ms sencilla posible, y lo logra aplicando un concepto muy bsico, dividir un problema grande en problemas ms pequeos, es por eso que cualquier definicin de arquitectura del software que involucre estos dos conceptos podr ser calificada como correcta. Una vez teniendo claro el significado de la ingeniera del software, podemos decir que se encarga de los siguientes puntos: Diseo preliminar o de alto nivel. Organizacin a alto nivel del sistema, incluyendo aspectos como la descripcin y anlisis de propiedades relativas a su estructura y control global, los protocolos de comunicacin y sincronizacin utilizados, la distribucin fsica del sistema y sus componentes. Otros aspectos relacionados con el desarrollo del sistema y su evolucin y adaptacin al cambio.

De lo que no se encarga la ingeniera del software: Diseo detallado. Diseo de algoritmos. Diseo de estructuras de datos.

Como vemos la ingeniera del software se encarga de determinar la estructura general del sistema, sin preocuparse por el diseo detallado de cada componente, mucho menos por algoritmos y persistencia de datos, si esta. Si esta metodologa es tan general, por qu surge?, por qu es tan importante?

3. Surgimiento de la Arquitectura del software:


En un principio el desarrollo del software era considerado un arte, los programadores eran como hechiceros con poderos mgicos, instruidos en las artes ms secretas las cuales pocos conocan, debido a esto es que no se seguan metodologas bien definidas para el desarrollo del software, de hecho se crean innecesarias, lo cual trajo serias consecuencias, entre las que podemos notar las siguientes: 1. Costos excesivos: El desarrollo del software era altamente costoso y en ocasiones debido a la mala planificacin se tena que abandonar el proyecto, ya que el desarrollo era excesivamente caro. 2. Mala administracin y desarrollo del software: 2.1. Solo se hablaba de los requisitos funcionales. 2.2. No exista una delimitador entre el diseo, implementacin, 2.3. No se realizaba una estructuracin del software, simplemente se programaba. 2.4. No exista un control conceptual del sistema. 2.5. No exista una medida de calidad de acuerdo a costos, procesos y mantenimiento. 2.6. Carencia de flexibilidad en los procesos de desarrollo. 2.7. Los tiempos de desarrollo eran demasiado elevados. 3. Perdurabilidad del proceso: 3.1. El software no se planeaba para posibles cambios en infraestructura. 3.2. El software no se planeaba para facilitar el proceso de mantenimiento. Es debido a todos estos problemas que surge la arquitectura del software, con la finalidad de disminuir todos estos conflictos, separando el proceso de produccin en distintas fases.

4. Modelos arquitectnicos:
Un modelo arquitectnico es aquel que define la interaccin entre componentes, que patrn es el que seguirn para comunicarse y que rol ejercer cada componente dentro del sistema. Podemos identificar 7 modelos arquitectnicos bsicos: 1. Paso de mensajes: Este modelo representa el pase de mensajes entre componentes ya sea de forma sncrona, asncrona o transitoria. No toleran la cada de los procesos ni los cortes de red prolongados. 2. Cliente-servidor: Representa la comunicacin cliente-servidor, es decir un componente solicita informacin (cliente) mientras que otro componente responde la peticin (servidor), Muy habitual en DNS, Web, ftp, telnet. 3. Modelo de fallos: Este modelo abarca los casos cuando un componente no cumple sus funciones ya sea por omisin, temporizacin o fallo arbitrario.

4. Modelo de seguridad: El modelo de seguridad se encarga de proteger los siguientes puntos: Acceso indebido a los recursos, Ataque a la integridad del proceso, Suplantacin de los principales interlocutores, Falsificacin de servicios, Falsificacin de peticiones 5. Peer-to-peer: Este modelo sirve para la representacin de componentes que pueden desempear tanto el papel de cliente como el de servidor. til al descomponer aplicaciones en tareas coordinadas. 6. MOM(Message-Oriented Middleware): Implementa un esquema de mensajera persistente es decir sin prdida de mensajes con comunicacin asncrona 7. RPC (Remote Procedure Call): Funciona con comunicacin sncrona, el cliente pasa a un estado de bloqueo hasta que recibe la respuesta del servidor.

5. Conclusiones: El proceso de desarrollo de software es muy complicado y costoso, el no seguir una metodologa de desarrollo seguramente conducir al fracaso, es por eso que es muy importante aplicar alguna herramienta para el desarrollo; la arquitectura de software es una herramienta muy poderosa ya que nos permite visualizar el sistema como un conjunto de elementos o componentes que se relacionan entre s, nos da una visin panormica de la estructura general del sistema, lo cual nos permite familiarizarnos rpida y sencillamente con el sistema a desarrollar, facilita la deteccin de errores en etapas tempranas del proceso de desarrollo, lo cual ahorra costos adems sirve como una herramienta base para las siguientes etapas de desarrollo; en general es una herramienta que trae muchos beneficios y ahorra muchos problemas por lo cual deberamos de pensar en incluirla en nuestros procesos de desarrollo. 6. Referencias:
1. 2. 3. 4. ROGER S. PRESSMAN. "INGENIERA DEL SOFTWARE. UN ENFOQUE PRACTICO". MC GRAW HILL EDITORIAL. 6TA EDICIN. Pgina web de software Engineering Institute: http://www.sei.cmu.edu/architecture/start/glossary/community.cfm. Recuperado (08 de febrero Del 2013). Gonzalo Mndez Pozo (Septiembre 2008). Una Arquitectura Software Basada en Agentes y Recomendaciones Metodologicas. UNIVERSIDAD POLITECNICA DE MADRID FACULTAD DE INFORMATICA. TESIS DOCTORAL. FERNANDA SCALONE (JUNIO 2006). ESTUDIO COMPARATIVO DE LOS MODELOS Y ESTANDARES DE CALIDAD DEL SOFTWARE. UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL BUENOS AIRES. MAESTRIA EN INGENIERIA EN CALIDAD. Pgina web de Microsoft: http://msdn.microsoft.com/en-us/library/ff650706.aspx. Recuperado (08 de febrero). CRAIG LARMAN. UML Y PATRONES UNA INTRODUCCIN AL ANLISIS Y DISEO ORIENTADO A OBJETOS Y AL PROCESO UNIFICADO.PEARSON EDUCACIN. 2DA EDICIN.PG. (418).

5. 6.

You might also like