SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Arquitectura en el desarrollo
de software
Integrantes: Jorge Pereira
Wladimir Tapia
Arquitectura de software
El diseño del sistema se centra en proporcionar la funcionalidad del sistema a
través de sus diferentes componentes. Las actividades que se realizan en este
proceso son:
1. Dividir requerimientos. Analice los requerimientos y organícense en
grupos afines. Normalmente existen varias opciones posibles de división,
y puede sugerir varias alternativas en esta etapa del proceso.
2. Identificar subsistemas. Debe identificar los diferentes subsistemas que
pueden, individual o colectivamente, cumplir los requerimientos. Los
grupos de requerimientos están normalmente relacionados con los
subsistemas, de tal forma que esta actividad y la de división de
requerimientos se pueden fusionar. Sin embargo, la identificación de
subsistemas se puede ver influenciada por otros factores
organizacionales y del entorno.
3. Asignar requerimientos a los subsistemas. Asigne los requerimientos a
los subsistemas. En principio, esto debe ser sencillo si la división de
requerimientos se utiliza para la identificación de subsistemas. En la
práctica, no existe igualdad entre las divisiones de requerimientos y la
identificación de subsistemas. Las limitaciones de los subsistemas
comerciales pueden significar que tenga que cambiar los requerimientos
para acomodarlos a estas restricciones.
4. Especificar la funcionalidad de los subsistemas. Debe enumerar las
funciones específicas asignadas a cada subsistema. Esto puede verse
como parte de la fase de diseño del sistema o, si el subsistema es un
sistema de software, como parte de la actividad de especificación de
requerimientos para ese sistema. También debe intentar especificar las
relaciones entre los subsistemas en esta etapa.
5. Definir las interfaces del subsistema. Defina las interfaces necesarias y
requeridas por cada subsistema. Una vez que estas interfaces se han
acordado, es posible desarrollar estos subsistemas en paralelo.
En este proceso de diseño existe mucha realimentación e iteración de una
etapa a la otra. Cuando surgen problemas y preguntas, a menudo tiene que
rehacer el trabajo hecho en etapas anteriores. Aunque se han separado los
procesos de ingeniería de requerimientos y de diseño en este análisis, en la
práctica están inextricablemente relacionados. Restricciones planteadas por
sistemas existentes pueden limitar elecciones de diseño, y estas elecciones
pueden ser especificadas en los requerimientos. Puede tener que hacer algún
diseño inicial para estructurar y organizar el proceso de la ingeniería de
requerimientos. A medida que el proceso de diseño continúa, puede descubrir
problemas con los requerimientos existentes y pueden surgir nuevos
requerimientos. Por consiguiente, una manera de representar estos procesos
relacionados es en forma de espiral. El proceso en espiral refleja la realidad de
que los requerimientos afectan a las decisiones de diseño y viceversa, y de esta
forma tiene sentido entrelazar estos procesos. Comenzando en el centro, cada
vuelta de la espiral añade algún detalle a los requerimientos y al diseño.
Algunas vueltas se centran en los requerimientos; otras, en el diseño. A veces,
nuevo conocimiento recopilado durante los procesos de requerimientos y
diseño significa que la declaración del problema en sí misma tiene que ser
cambiada. Para la mayoría de los sistemas, existen muchos diseños posibles
que cumplen los requerimientos. Estos comprenden una amplia gama de
soluciones que combinan hardware, software y operaciones humanas. La
solución que elija para el desarrollo futuro deberá ser la solución técnica más
apropiada que cumpla los requerimientos. Sin embargo, las intervenciones
organizacionales y políticas pueden influir en la elección de la solución. Por
ejemplo, un cliente del gobierno puede preferir usar proveedores nacionales
antes que los extranjeros para su sistema, aun cuando el producto nacional sea
técnicamente inferior. Estas influencias normalmente tienen efecto en la fase
de revisión y valoración en el modelo en espiral, donde los diseños y
requerimientos pueden ser aceptados o rechazados. El proceso finaliza cuando
la revisión y evaluación muestra que los requerimientos y el diseño de alto
nivel son suficientemente detallados para permitir empezar la siguiente fase
del proceso.
Arquitecturas más comunes
Generalmente, no es necesario inventar una nueva arquitectura de software
para cada sistema de información. Lo habitual es adoptar una arquitectura
conocida en función de sus ventajas e inconvenientes para cada caso en
concreto. Así, las arquitecturas más universales son:
❏ Descomposición Modular. Donde el software se estructura en grupos
funcionales muy acoplados.
❏ Cliente-servidor. Donde el software reparte su carga de cómputo en
dos partes independientes pero sin reparto claro de funciones.
❏ Arquitectura de tres niveles. Especialización de la arquitectura
cliente-servidor donde la carga se divide en tres partes (o capas) con
un reparto claro de funciones: una capa para la presentación (interfaz
de usuario), otra para el cálculo (donde se encuentra modelado el
negocio) y otra para el almacenamiento (persistencia). Una capa
solamente tiene relación con la siguiente.
Otras arquitecturas menos conocidas son:
❏ Modelo Vista Controlador.
❏ En ​pipeline​.
❏ Entre pares​.
❏ En pizarra.
❏ Orientada a servicios (SOA del inglés ​Service-Oriented Architecture​).
❏ Arquitectura de microservicios (MSA del inglés ​MicroServices
Architecture​). Algunos consideran que es una especialización de una
forma de implementar SOA.
❏ Dirigida por eventos.
❏ Máquinas virtuales
ejemplo
aquí se puede apreciar una arquitectura simple de un sistema de alarma contra
ladrones.
Artefactos que se generan en la arquitectura
Se generan 13 artefactos que los nombraremos y definiremos:
● Modelo de Desarrollo: ​Muestra la configuración de nodos de proceso en
tiempo de ejecución, los enlaces de comunicación entre ellos y las
instancias de componentes y objetos que residen en ellos.
Su objetivo es capturar la configuración de elementos de proceso y la
conexión entre ellos en el sistema.
Consiste en uno o más nodos (los cuales son elementos de proceso con
al menos un procesador, memoria y posiblemente otros dispositivos)
dispositivos (nodos estereotipados sin posibilidad de procesamiento en
el nivel de modelado de abstracción), y conectores entre nodos, y entre
nodos y dispositivos. El modelo de desarrollo también muestra procesos
en sus elementos de proceso, permitiendo la distribución del
comportamiento a través de nodos para ser representados.
Esperemos que quede más claro con la siguiente imagen:
● Modelo de Análisis​: Contiene los resultados del análisis de los casos de
uso. Este artefacto es opcional. El modelo de análisis puede ser un
artefacto temporal, como lo es en el caso de que evolucione para
convertirse en un modelo de diseño, o puede seguir viviendo a través de
algunos o todos los proyectos, y tal vez más que eso, sirviendo como una
visión general conceptual del sistema.
● Modelo de Diseño​: Es un objeto de modelado que describe la realización
de los Casos de Uso y sirve como una abstracción del modelo de
implementación y su código fuente.
❏ Es usado como entrada esencial a las actividades de la
implementación y las pruebas.
❏ Es una abstracción de la implementación de un sistema; es
utilizado para crear y documentar el diseño del sistema de
Software.
❏ Se trata de un artefacto compuesto que abarca todas las clases de
diseño, subsistemas, paquetes, colaboraciones, y las relaciones
entre ellos.
Contiene los siguientes Artefactos:
❏ Protocolo: ​Es una especificación del comportamiento deseado que
puede tener lugar a través de una conexión (una especificación explícita
del acuerdo contractual entre los participantes en el protocolo. Es puro
comportamiento y no se especifica ningún elemento estructural. Un
protocolo comprende un conjunto de los participantes, cada uno de los
cuales desempeña un papel específico en el protocolo. Los protocolos
permiten la especificación de un conjunto de Cápsulas (una Cápsula es
otro artefacto) para ser definidas y usadas. El protocolo define un
conjunto de tipos de mensajes entrantes y salientes (como lo pueden ser
operaciones y señales) y opcionalmente una colaboración (por lo
regular, consiste en un conjunto de diagramas de secuencia) la cual
define los pedidos de los mensajes y una "máquina de estados" (descrita
por un conjunto de diagramas de estado), que especifica el
comportamiento abstracto que los participantes en un protocolo deben
proveer.
❏ Interfaz: ​Es un artefacto que define un conjunto de comportamientos,
propuesto por un modelo clasificador. Un clasificador puede realizar una
o más interfaces y una interfaz puede ser realizada por uno o más
clasificadores. Cualquier clasificador que realice las mismas interfaces
puede ser sustituido por otro en el sistema. Cada interfaz, debería
ofrecer un único y bien definido conjunto de operaciones. Declara un
conjunto de operaciones, incluyendo sus firmas y parámetros, que son
usados para especificar los servicios ofrecidos por un modelo
clasificador. (Por ejemplo una clase, componente o subsistema).
❏ Evento: ​Es la especificación de una ocurrencia en el espacio y tiempo; o
en el buen español: un suceso o algo que a lo que el sistema debe
responder.Identifica y captura información sobre eventos externos de
que el sistema es consciente, y para la que debe responder. Los eventos
pueden también ser usados para modelar eventos internos,
especialmente excepciones.
❏ Señal: ​Es una entidad de comunicación asíncrona que puede ocasionar
un estado transitorio en la máquina de estados de un objeto que recibe
dicha señal.Provee una comunicación asíncrona de un solo sentido de un
objeto a otro.
❏ Cápsula: ​ "Una cápsula es un patrón de diseño, lo que representa un
encapsulado hilo de control en el sistema. Las cápsulas tienen puertos, a
través de los cuales se comunican con otras cápsulas". Se representa
como una clase, con el estereotipo <<capsule>>. Está compuesta por Sub
cápsulas, Clases Pasivas, Conectores, Puertos, Especificación de
Colaboración y Estado de Máquina. En RUP se representa de la siguiente
forma:
● Documento de Arquitectura de Software:​ Es un documento que provee
una visión amplia arquitectónica del sistema, usando diferentes vistas
arquitectónicas para representar diferentes aspectos del sistema. Sirve
como un medio de comunicación entre el Arquitecto de Software y los
demás miembro del proyecto respecto a decisiones importantes sobre la
arquitectura que se han estado haciendo en el proyecto.
● Arquitectura de Referencia: ​Es en esencia un patrón arquitectónico
pre-definido o conjunto de patrones, posiblemente parcial o
completamente instanciado, diseñado y probado para su uso en
negocios particulares y contextos técnicos​.​ Frecuentemente, estos
artefactos son cosecha de proyectos anteriores. Crea un punto de
comienzo para el desarrollo arquitectónico. Su gama puede estar desde
pautas de arquitectura preestablecidas, arquitectura de mecanismos y
marcos, hasta sistemas completos, con características conocidas
demostradas en uso. La utilización de arquitecturas de referencia
probadas es una forma eficaz para hacer frente a muchos no los
requisitos funcionales, en particular los requisitos de calidad, por la
elección de las arquitecturas de referencia, que son conocidas a través
de uso para satisfacer esos requisitos. La arquitectura de referencia,
puede existir o ser usada en diferentes niveles de abstracción y desde
distintos puntos de vista.
● Directrices de Diseño​: Es un producto de la definición de arquitectura.
Muchas personas necesitarán este documento, puesto que describe las
directrices para ser seguidas durante el diseño e implementación.
○ Es un artefacto creado y actualizado por el arquitecto de Software,
y sirve como un medio de comunicación entre el arquitecto de
software y otros desarrolladores.
○ Los diseñadores lo utilizarán como referencia la hora de definir las
operaciones de diseño en las clases y la hora de adaptar las clases
de diseño al ambiente de implementación.
○ Los dueños de lo paquetes, lo usarán como referencia cuando
describen dependencias entre paquetes.
○ Los "implementadores" la usarán como referencia en la
implementación del modelado de las clases.
○ Los "revisadores" lo usarán como referencia al momento de
revisar la arquitectura del Software, el diseño del modelo y la
implementación del mismo.
○ Los recién llegados al proyecto lo usarán para entender qué es lo
que se está produciendo.
● Modelo de implementación: ​El modelo de implantación es una colección
de componentes y subsistemas de la aplicación que los contengan. Los
componentes incluyen tanto a entregar los componentes, tales como
ejecutables, y los componentes de los productos que se producen, tales
como archivos de código fuente.
● Prueba-de-Concepto arquitectónico: ​Es una solución que simplemente
puede ser conceptual, para los requerimientos de significado
arquitectónico que son identificados en la concepción.Determina donde
pueda existir, una solución para satisfacer los requerimientos de
significado arquitectónico.
● Directrices de Programación: ​Describe los convenios a ser usados cuando
se trabaje con el lenguaje de programación. Describe los lineamientos de
cómo se debe de escribir el código fuente.
bibliografía
libro guia de ​Ian Sommerville - Ingeniería de software
http://clases3gingsof.wikifoundry.com/page/Artefactos+Arquitectura+de+Soft
ware
https://es.wikipedia.org/wiki/Arquitectura_de_software

Más contenido relacionado

La actualidad más candente

Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using SeleniumWeifeng Zhang
 
Angular 10 course_content
Angular 10 course_contentAngular 10 course_content
Angular 10 course_contentNAVEENSAGGAM1
 
Arquitectura SOA
Arquitectura SOAArquitectura SOA
Arquitectura SOAGoNet
 
Diseño web responsive
Diseño web responsiveDiseño web responsive
Diseño web responsiveDE_Marketing
 
Python selenium
Python seleniumPython selenium
Python seleniumDucat
 
Setting up Page Object Model in Automation Framework
Setting up Page Object Model in Automation FrameworkSetting up Page Object Model in Automation Framework
Setting up Page Object Model in Automation Frameworkvaluebound
 
Selenium introduction
Selenium introductionSelenium introduction
Selenium introductionPankaj Dubey
 
What-is-Laravel-23-August-2017.pptx
What-is-Laravel-23-August-2017.pptxWhat-is-Laravel-23-August-2017.pptx
What-is-Laravel-23-August-2017.pptxAbhijeetKumar456867
 
SignalR for ASP.NET Developers
SignalR for ASP.NET DevelopersSignalR for ASP.NET Developers
SignalR for ASP.NET DevelopersShivanand Arur
 
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...Simplilearn
 
Boost your App with Gatling
Boost your App with GatlingBoost your App with Gatling
Boost your App with GatlingKnoldus Inc.
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해중선 곽
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareGustavo Cuen
 

La actualidad más candente (20)

Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
 
Angular 10 course_content
Angular 10 course_contentAngular 10 course_content
Angular 10 course_content
 
Ingeniería Web
Ingeniería WebIngeniería Web
Ingeniería Web
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Arquitectura SOA
Arquitectura SOAArquitectura SOA
Arquitectura SOA
 
Diseño web responsive
Diseño web responsiveDiseño web responsive
Diseño web responsive
 
Top java script frameworks ppt
Top java script frameworks pptTop java script frameworks ppt
Top java script frameworks ppt
 
Python selenium
Python seleniumPython selenium
Python selenium
 
Introduction to Selenium Web Driver
Introduction to Selenium Web DriverIntroduction to Selenium Web Driver
Introduction to Selenium Web Driver
 
Setting up Page Object Model in Automation Framework
Setting up Page Object Model in Automation FrameworkSetting up Page Object Model in Automation Framework
Setting up Page Object Model in Automation Framework
 
Selenium
SeleniumSelenium
Selenium
 
Selenium introduction
Selenium introductionSelenium introduction
Selenium introduction
 
What-is-Laravel-23-August-2017.pptx
What-is-Laravel-23-August-2017.pptxWhat-is-Laravel-23-August-2017.pptx
What-is-Laravel-23-August-2017.pptx
 
SignalR for ASP.NET Developers
SignalR for ASP.NET DevelopersSignalR for ASP.NET Developers
SignalR for ASP.NET Developers
 
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
 
Boost your App with Gatling
Boost your App with GatlingBoost your App with Gatling
Boost your App with Gatling
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
 
8 funciones de blogger
8 funciones de blogger8 funciones de blogger
8 funciones de blogger
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 

Similar a Arquitectura software desarrollo

Clase De Fds22
Clase De Fds22Clase De Fds22
Clase De Fds22masa832
 
Slideshare 2do corte, luismortell
Slideshare 2do corte, luismortellSlideshare 2do corte, luismortell
Slideshare 2do corte, luismortellforwer1223
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...negroues
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...negroues
 
Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docxKeiberOrtiz1
 
Presentación de Sistemas II
Presentación de Sistemas IIPresentación de Sistemas II
Presentación de Sistemas IIAnthoni Cedeno
 
Documentacion_de_proyectos_de_software
Documentacion_de_proyectos_de_softwareDocumentacion_de_proyectos_de_software
Documentacion_de_proyectos_de_softwarefernaik
 
Metodología Cascada
Metodología CascadaMetodología Cascada
Metodología CascadaJesus Zuñiga
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSValentina
 
Fundamentos de desarrollo de sistemas
Fundamentos de desarrollo de sistemasFundamentos de desarrollo de sistemas
Fundamentos de desarrollo de sistemasflaco_mendez
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitosKleo Jorgee
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturasenlinea70
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidosMargarita Labastida
 

Similar a Arquitectura software desarrollo (20)

Clase De Fds22
Clase De Fds22Clase De Fds22
Clase De Fds22
 
Slideshare 2do corte, luismortell
Slideshare 2do corte, luismortellSlideshare 2do corte, luismortell
Slideshare 2do corte, luismortell
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docx
 
Presentación de Sistemas II
Presentación de Sistemas IIPresentación de Sistemas II
Presentación de Sistemas II
 
Documentacion_de_proyectos_de_software
Documentacion_de_proyectos_de_softwareDocumentacion_de_proyectos_de_software
Documentacion_de_proyectos_de_software
 
Metodología Cascada
Metodología CascadaMetodología Cascada
Metodología Cascada
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
 
1127082.ppt
1127082.ppt1127082.ppt
1127082.ppt
 
Taller en clases
Taller en clases Taller en clases
Taller en clases
 
Taller en clases
Taller en clases Taller en clases
Taller en clases
 
Fundamentos de desarrollo de sistemas
Fundamentos de desarrollo de sistemasFundamentos de desarrollo de sistemas
Fundamentos de desarrollo de sistemas
 
Ciclo de vida cascada
Ciclo de vida cascadaCiclo de vida cascada
Ciclo de vida cascada
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitos
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturas
 
AMSI
AMSIAMSI
AMSI
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 

Arquitectura software desarrollo

  • 1. Arquitectura en el desarrollo de software Integrantes: Jorge Pereira Wladimir Tapia
  • 2. Arquitectura de software El diseño del sistema se centra en proporcionar la funcionalidad del sistema a través de sus diferentes componentes. Las actividades que se realizan en este proceso son: 1. Dividir requerimientos. Analice los requerimientos y organícense en grupos afines. Normalmente existen varias opciones posibles de división, y puede sugerir varias alternativas en esta etapa del proceso. 2. Identificar subsistemas. Debe identificar los diferentes subsistemas que pueden, individual o colectivamente, cumplir los requerimientos. Los grupos de requerimientos están normalmente relacionados con los subsistemas, de tal forma que esta actividad y la de división de requerimientos se pueden fusionar. Sin embargo, la identificación de subsistemas se puede ver influenciada por otros factores organizacionales y del entorno. 3. Asignar requerimientos a los subsistemas. Asigne los requerimientos a los subsistemas. En principio, esto debe ser sencillo si la división de requerimientos se utiliza para la identificación de subsistemas. En la práctica, no existe igualdad entre las divisiones de requerimientos y la identificación de subsistemas. Las limitaciones de los subsistemas comerciales pueden significar que tenga que cambiar los requerimientos para acomodarlos a estas restricciones. 4. Especificar la funcionalidad de los subsistemas. Debe enumerar las funciones específicas asignadas a cada subsistema. Esto puede verse como parte de la fase de diseño del sistema o, si el subsistema es un sistema de software, como parte de la actividad de especificación de requerimientos para ese sistema. También debe intentar especificar las relaciones entre los subsistemas en esta etapa. 5. Definir las interfaces del subsistema. Defina las interfaces necesarias y requeridas por cada subsistema. Una vez que estas interfaces se han acordado, es posible desarrollar estos subsistemas en paralelo.
  • 3. En este proceso de diseño existe mucha realimentación e iteración de una etapa a la otra. Cuando surgen problemas y preguntas, a menudo tiene que rehacer el trabajo hecho en etapas anteriores. Aunque se han separado los procesos de ingeniería de requerimientos y de diseño en este análisis, en la práctica están inextricablemente relacionados. Restricciones planteadas por sistemas existentes pueden limitar elecciones de diseño, y estas elecciones pueden ser especificadas en los requerimientos. Puede tener que hacer algún diseño inicial para estructurar y organizar el proceso de la ingeniería de requerimientos. A medida que el proceso de diseño continúa, puede descubrir problemas con los requerimientos existentes y pueden surgir nuevos requerimientos. Por consiguiente, una manera de representar estos procesos relacionados es en forma de espiral. El proceso en espiral refleja la realidad de que los requerimientos afectan a las decisiones de diseño y viceversa, y de esta forma tiene sentido entrelazar estos procesos. Comenzando en el centro, cada vuelta de la espiral añade algún detalle a los requerimientos y al diseño. Algunas vueltas se centran en los requerimientos; otras, en el diseño. A veces, nuevo conocimiento recopilado durante los procesos de requerimientos y diseño significa que la declaración del problema en sí misma tiene que ser cambiada. Para la mayoría de los sistemas, existen muchos diseños posibles que cumplen los requerimientos. Estos comprenden una amplia gama de soluciones que combinan hardware, software y operaciones humanas. La solución que elija para el desarrollo futuro deberá ser la solución técnica más apropiada que cumpla los requerimientos. Sin embargo, las intervenciones organizacionales y políticas pueden influir en la elección de la solución. Por ejemplo, un cliente del gobierno puede preferir usar proveedores nacionales antes que los extranjeros para su sistema, aun cuando el producto nacional sea técnicamente inferior. Estas influencias normalmente tienen efecto en la fase de revisión y valoración en el modelo en espiral, donde los diseños y requerimientos pueden ser aceptados o rechazados. El proceso finaliza cuando la revisión y evaluación muestra que los requerimientos y el diseño de alto nivel son suficientemente detallados para permitir empezar la siguiente fase del proceso.
  • 4. Arquitecturas más comunes Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto. Así, las arquitecturas más universales son: ❏ Descomposición Modular. Donde el software se estructura en grupos funcionales muy acoplados. ❏ Cliente-servidor. Donde el software reparte su carga de cómputo en dos partes independientes pero sin reparto claro de funciones. ❏ Arquitectura de tres niveles. Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente. Otras arquitecturas menos conocidas son: ❏ Modelo Vista Controlador. ❏ En ​pipeline​. ❏ Entre pares​. ❏ En pizarra. ❏ Orientada a servicios (SOA del inglés ​Service-Oriented Architecture​). ❏ Arquitectura de microservicios (MSA del inglés ​MicroServices Architecture​). Algunos consideran que es una especialización de una forma de implementar SOA. ❏ Dirigida por eventos. ❏ Máquinas virtuales
  • 5. ejemplo aquí se puede apreciar una arquitectura simple de un sistema de alarma contra ladrones. Artefactos que se generan en la arquitectura Se generan 13 artefactos que los nombraremos y definiremos: ● Modelo de Desarrollo: ​Muestra la configuración de nodos de proceso en tiempo de ejecución, los enlaces de comunicación entre ellos y las instancias de componentes y objetos que residen en ellos. Su objetivo es capturar la configuración de elementos de proceso y la conexión entre ellos en el sistema. Consiste en uno o más nodos (los cuales son elementos de proceso con al menos un procesador, memoria y posiblemente otros dispositivos) dispositivos (nodos estereotipados sin posibilidad de procesamiento en el nivel de modelado de abstracción), y conectores entre nodos, y entre nodos y dispositivos. El modelo de desarrollo también muestra procesos
  • 6. en sus elementos de proceso, permitiendo la distribución del comportamiento a través de nodos para ser representados. Esperemos que quede más claro con la siguiente imagen: ● Modelo de Análisis​: Contiene los resultados del análisis de los casos de uso. Este artefacto es opcional. El modelo de análisis puede ser un artefacto temporal, como lo es en el caso de que evolucione para convertirse en un modelo de diseño, o puede seguir viviendo a través de algunos o todos los proyectos, y tal vez más que eso, sirviendo como una visión general conceptual del sistema. ● Modelo de Diseño​: Es un objeto de modelado que describe la realización de los Casos de Uso y sirve como una abstracción del modelo de implementación y su código fuente. ❏ Es usado como entrada esencial a las actividades de la implementación y las pruebas. ❏ Es una abstracción de la implementación de un sistema; es utilizado para crear y documentar el diseño del sistema de Software. ❏ Se trata de un artefacto compuesto que abarca todas las clases de diseño, subsistemas, paquetes, colaboraciones, y las relaciones entre ellos.
  • 7. Contiene los siguientes Artefactos: ❏ Protocolo: ​Es una especificación del comportamiento deseado que puede tener lugar a través de una conexión (una especificación explícita del acuerdo contractual entre los participantes en el protocolo. Es puro comportamiento y no se especifica ningún elemento estructural. Un protocolo comprende un conjunto de los participantes, cada uno de los cuales desempeña un papel específico en el protocolo. Los protocolos permiten la especificación de un conjunto de Cápsulas (una Cápsula es otro artefacto) para ser definidas y usadas. El protocolo define un conjunto de tipos de mensajes entrantes y salientes (como lo pueden ser operaciones y señales) y opcionalmente una colaboración (por lo regular, consiste en un conjunto de diagramas de secuencia) la cual define los pedidos de los mensajes y una "máquina de estados" (descrita por un conjunto de diagramas de estado), que especifica el comportamiento abstracto que los participantes en un protocolo deben proveer. ❏ Interfaz: ​Es un artefacto que define un conjunto de comportamientos, propuesto por un modelo clasificador. Un clasificador puede realizar una o más interfaces y una interfaz puede ser realizada por uno o más clasificadores. Cualquier clasificador que realice las mismas interfaces puede ser sustituido por otro en el sistema. Cada interfaz, debería ofrecer un único y bien definido conjunto de operaciones. Declara un conjunto de operaciones, incluyendo sus firmas y parámetros, que son
  • 8. usados para especificar los servicios ofrecidos por un modelo clasificador. (Por ejemplo una clase, componente o subsistema). ❏ Evento: ​Es la especificación de una ocurrencia en el espacio y tiempo; o en el buen español: un suceso o algo que a lo que el sistema debe responder.Identifica y captura información sobre eventos externos de que el sistema es consciente, y para la que debe responder. Los eventos pueden también ser usados para modelar eventos internos, especialmente excepciones. ❏ Señal: ​Es una entidad de comunicación asíncrona que puede ocasionar un estado transitorio en la máquina de estados de un objeto que recibe dicha señal.Provee una comunicación asíncrona de un solo sentido de un objeto a otro. ❏ Cápsula: ​ "Una cápsula es un patrón de diseño, lo que representa un encapsulado hilo de control en el sistema. Las cápsulas tienen puertos, a través de los cuales se comunican con otras cápsulas". Se representa como una clase, con el estereotipo <<capsule>>. Está compuesta por Sub cápsulas, Clases Pasivas, Conectores, Puertos, Especificación de Colaboración y Estado de Máquina. En RUP se representa de la siguiente forma:
  • 9. ● Documento de Arquitectura de Software:​ Es un documento que provee una visión amplia arquitectónica del sistema, usando diferentes vistas arquitectónicas para representar diferentes aspectos del sistema. Sirve como un medio de comunicación entre el Arquitecto de Software y los demás miembro del proyecto respecto a decisiones importantes sobre la arquitectura que se han estado haciendo en el proyecto. ● Arquitectura de Referencia: ​Es en esencia un patrón arquitectónico pre-definido o conjunto de patrones, posiblemente parcial o completamente instanciado, diseñado y probado para su uso en negocios particulares y contextos técnicos​.​ Frecuentemente, estos artefactos son cosecha de proyectos anteriores. Crea un punto de comienzo para el desarrollo arquitectónico. Su gama puede estar desde pautas de arquitectura preestablecidas, arquitectura de mecanismos y marcos, hasta sistemas completos, con características conocidas demostradas en uso. La utilización de arquitecturas de referencia probadas es una forma eficaz para hacer frente a muchos no los requisitos funcionales, en particular los requisitos de calidad, por la elección de las arquitecturas de referencia, que son conocidas a través de uso para satisfacer esos requisitos. La arquitectura de referencia, puede existir o ser usada en diferentes niveles de abstracción y desde distintos puntos de vista. ● Directrices de Diseño​: Es un producto de la definición de arquitectura. Muchas personas necesitarán este documento, puesto que describe las directrices para ser seguidas durante el diseño e implementación. ○ Es un artefacto creado y actualizado por el arquitecto de Software, y sirve como un medio de comunicación entre el arquitecto de software y otros desarrolladores. ○ Los diseñadores lo utilizarán como referencia la hora de definir las operaciones de diseño en las clases y la hora de adaptar las clases de diseño al ambiente de implementación. ○ Los dueños de lo paquetes, lo usarán como referencia cuando describen dependencias entre paquetes.
  • 10. ○ Los "implementadores" la usarán como referencia en la implementación del modelado de las clases. ○ Los "revisadores" lo usarán como referencia al momento de revisar la arquitectura del Software, el diseño del modelo y la implementación del mismo. ○ Los recién llegados al proyecto lo usarán para entender qué es lo que se está produciendo. ● Modelo de implementación: ​El modelo de implantación es una colección de componentes y subsistemas de la aplicación que los contengan. Los componentes incluyen tanto a entregar los componentes, tales como ejecutables, y los componentes de los productos que se producen, tales como archivos de código fuente. ● Prueba-de-Concepto arquitectónico: ​Es una solución que simplemente puede ser conceptual, para los requerimientos de significado arquitectónico que son identificados en la concepción.Determina donde pueda existir, una solución para satisfacer los requerimientos de significado arquitectónico. ● Directrices de Programación: ​Describe los convenios a ser usados cuando se trabaje con el lenguaje de programación. Describe los lineamientos de cómo se debe de escribir el código fuente.
  • 11. bibliografía libro guia de ​Ian Sommerville - Ingeniería de software http://clases3gingsof.wikifoundry.com/page/Artefactos+Arquitectura+de+Soft ware https://es.wikipedia.org/wiki/Arquitectura_de_software