SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Semestre: 2022-1
Ciclo: IV
Docente: Godofredo Ayquipa Cordova
PATRONES DE DISEÑOY
ARQUITECTURA DE SOFTWARE
Semana 02
Temas de la clase: Ciclo de desarrollo de arquitectura de software
• Requerimientos de la arquitectura
• Diseño de la arquitectura
• Documentación de la arquitectura
• Evaluación de la arquitectura
• Implementación de la arquitectura
IES WERNHER VON BRAUN 2
Objetivo de la clase
Describir y entender el ciclo de desarrollo de la arquitectura de
software
IES WERNHER VON BRAUN 3
IES WERNHER VON BRAUN 4
Dentro de un proyecto de desarrollo, e
independientemente de la metodología que se
utilice, se puede hablar de “desarrollo de la
arquitectura de software”. Este desarrollo, que
precede a la construcción del sistema, esta
dividido en las siguientes etapas:
requerimientos, diseño, documentación y
evaluación. Cabe señalar que las actividades
relacionadas con el desarrollo de la arquitectura
de software generalmente forman parte de las
actividades definidas dentro de las metodologías
de desarrollo.
IES WERNHER VON BRAUN 5
IES WERNHER VON BRAUN 6
La etapa de requerimientos se enfoca en la
captura, documentación y priorización de
requerimientos que influencian la
arquitectura. Como se mencionó
anteriormente, los atributos de calidad
juegan un papel preponderante dentro de
estos requerimientos, así que esta etapa
hace énfasis en ellos. Otros requerimientos,
sin embargo, son también relevantes para
la arquitectura, estos son los
requerimientos funcionales primarios y las
restricciones.
IES WERNHER VON BRAUN 7
IES WERNHER VON BRAUN 8
Recordemos un poco sobre
qué son los requerimientos.
Generalmente se considera
que los requerimientos de un
sistema se pueden dividir en
dos categorías:
Requerimientos Funcionales
(RFs) y Requerimientos No
Funcionales (RNFs).
IES WERNHER VON BRAUN 9
los RFs engloban los distintos tipos de
requerimientos que se reflejan en los
comportamientos de la aplicación y que incluyen:
• Requerimientos de negocio: Motivación de
negocio para que exista un sistema.
• Requerimientos de usuario: Comportamiento del
sistema, frecuentemente se expresan en forma de
casos de uso.
• Requerimientos funcionales detallados:
Complementan a los casos de uso (generalmente
se describen usando el verbo “deber”).
• Requerimientos de sistema: Describen el mínimo
hardware y software para que un sistema de
información pueda funcionar.
IES WERNHER VON BRAUN 10
Por otra parte, los RNFs tienen que ver con la
manera en que el sistema soporta a los RFs. Estos
incluyen:
• Reglas de negocio: expresan reglas de la
organización que deben ser soportadas por el
sistema.
• Atributos de calidad: se describen más
adelante.
• Restricciones: Expresan aspectos que deben
considerarse al realizar el diseño y limitan las
decisiones que se pueden tomar.
• Interfaces externas: Especificaciones de
interfaces de otros sistemas con los que se
interactúa.
IES WERNHER VON BRAUN 11
IES WERNHER VON BRAUN 12
IES WERNHER VON BRAUN 13
• La etapa de diseño es probablemente la más
compleja del ciclo de desarrollo de la arquitectura.
Durante ella se definen las estructuras de las que se
compone la arquitectura mediante la toma de
decisiones de diseño. Esta creación estructural se
hace por lo habitual con base en dos clases de
soluciones abstractas probadas, llamadas patrones
de diseño y tácticas, al igual que en soluciones
concretas como las elecciones tecnológicas, tales
como los frameworks.
• El diseño que se realiza debe buscar ante todo
satisfacer los requerimientos que influencian a la
arquitectura, y no simplemente incorporar diversas
tecnologías por que están “de moda”.
IES WERNHER VON BRAUN 14
1. Diseño de la arquitectura:
este nivel se enfoca en la
toma de decisiones en
relación con los drivers
(guía) de la arquitectura y la
creación de estructuras para
satisfacerlos.
IES WERNHER VON BRAUN 15
2. Diseño de las interfaces: este nivel ocurre
parcialmente cuando se diseña la
arquitectura, pero la mayor parte del trabajo
ocurre una vez que este proceso ha concluido.
Es en este momento en que:
a) se identifican todos los módulos y
otros elementos faltantes requeridos
para soportar la funcionalidad del
sistema, y
b) se diseñan sus interfaces, es decir, los
contratos que deben satisfacer estos
módulos y otros elementos de acuerdo
con los lineamientos que establece el
propio diseño de la arquitectura.
IES WERNHER VON BRAUN 16
3. Diseño detallado de los
módulos: este nivel ocurre
generalmente durante la
construcción del sistema. Una
vez que se han establecido los
módulos y sus interfaces, se
pueden diseñar los detalles de
implementación de esos
módulos previo a su
codificación y prueba.
IES WERNHER VON BRAUN 17
Este procedimiento consiste en elegir en cada
iteración un subconjunto de todos los drivers
(guía) de la arquitectura y tomar decisiones de
diseño al respecto, lo cual resulta en estructuras
que permiten satisfacerlos.
El diseño resultante se evalúa, se elige
enseguida otro subconjunto de los drivers, y se
procede de la misma manera hasta que se
completa el diseño. El proceso termina cuando
se considera que se han tomado suficientes
decisiones de diseño para satisfacer el conjunto
de drivers, o bien, cuando concluye el tiempo
que el arquitecto tiene asignado para realizar las
actividades de diseño.
IES WERNHER VON BRAUN 18
IES WERNHER VON BRAUN 19
Una vez que ha sido creado el diseño de la arquitectura,
es necesario darlo a conocer a otros interesados en el
sistema, como desarrolladores, responsables de
implantación, líderes de proyecto o el cliente mismo. La
comunicación exitosa depende por lo habitual de que el
diseño sea documentado de forma apropiada. A pesar de
que durante el diseño se hace una documentación inicial
que puede incluir bocetos de las estructuras, o bien
capturas de las decisiones de diseño, la documentación
formal involucra la representación sus estructuras por
medio de vistas.
Una vista representa una estructura y contiene por lo
habitual un diagrama, además de información adicional
que apoya en la comprensión de este.
IES WERNHER VON BRAUN 20
1. Vista lógica. Modela elementos que
soportan la funcionalidad que el sistema
provee al usuario final de un punto de
vista estático o dinámico mediante
diagramas tales como clases, paquetes y
secuencia.
2. Vista de proceso. Esta vista opcional
modela los aspectos dinámicos del
sistema y captura aspectos tales como
concurrencia y sincronización mediante
diagramas tales como el de actividades.
IES WERNHER VON BRAUN 21
3. Vista de desarrollo. Modela la
organización estática del software en su
ambiente de desarrollo, típicamente
mediante diagramas de componentes.
4. Vista física. Modela el mapeo del
software con el hardware, típicamente
con diagramas de implantación.
5. Vista de casos de uso. Esta es la vista
adicional que es central al modelo y que
agrupa escenarios de casos de uso
principales. Para su representación se
puede usar un diagrama de casos de uso
acompañado de descripciones textuales
de los escenarios
IES WERNHER VON BRAUN 22
La documentación de la arquitectura es
una actividad fundamental para poder
realizar una comunicación adecuada del
diseño. Es importante recalcar que no
existen criterios precisos que permitan
determinar el grado exacto de
documentación que se debe realizar, y
esto se debe determinar considerando
diversos aspectos que incluyen a los
involucrados, el tipo de proyecto y la
experiencia del equipo de desarrollo.
IES WERNHER VON BRAUN 23
IES WERNHER VON BRAUN 24
Dado que la arquitectura de software
juega un papel crítico en el desarrollo, es
conveniente evaluar el diseño una vez que
este ha sido documentado con el fin de
identificar posibles problemas y riesgos. La
ventaja de evaluar el diseño es que es una
actividad que se puede realizar de manera
temprana (aún antes de codificar), y que el
costo de corrección de los defectos
identificados a través de la evaluación es
mucho menor al costo que tendría el
corregir estos defectos una vez que el
sistema ha sido construido.
IES WERNHER VON BRAUN 25
1. Análisis de modificabilidad a nivel de
arquitectura (ALMA): El atributo de calidad
que analiza ALMA en una arquitectura de
software es la facilidad de modificación. La
facilidad de modificación en un sistema de
software es la facilidad con la cual éste
puede ser modificado a cambios en el
entorno, cambios en los requerimientos o
cambios a la especificación funcional.
IES WERNHER VON BRAUN 26
Este método se compone de cinco pasos:
1. Definir la meta de evaluación.
Dependiendo del objetivo de la
evaluación se selecciona alguna de las
tres metas (predicción del costo de
mantenimiento, evaluación de riesgos,
selección de un conjunto de
arquitecturas).
2. Describir la arquitectura de software.
En este punto se colecta la información de
las partes más relevantes de la
arquitectura como son la descomposición
de ésta en componentes, las relaciones
entre componentes así como las
relaciones que existen en el entorno del
sistema.
IES WERNHER VON BRAUN 27
3. Obtener escenarios. Una vez que se
cuenta con la información de la
arquitectura se procede a encontrar y
definir los escenarios de cambio, estos
escenarios son agrupados en
categorías. Dependiendo de la meta
de evaluación se seleccionan los
escenarios. Por ejemplo, si la meta es
estimar el esfuerzo de
mantenimiento, se recomienda
seleccionar aquellos escenarios que
corresponden a los cambios que
tienen una alta probabilidad de que
ocurran durante la vida operacional
del sistema.
IES WERNHER VON BRAUN 28
4. Evaluar escenarios. En este punto se
realiza un análisis de impacto que
consiste en identificar los componentes
afectados por los escenarios
previamente definidos, determinar el
efecto del cambio sobre los
componentes así como determinar los
efectos del cambio en otros
componentes. Los resultados de este
análisis se deben expresar ya sea de
manera cuantitativa o cualitativa.
5. Interpretar resultados. Finalmente se
interpretan los resultados así como las
conclusiones del análisis dependiendo de
la meta de evaluación seleccionada.
IES WERNHER VON BRAUN 29
2. Análisis de usabilidad del nivel de
arquitectura basado en escenarios
(SALUTA): SALUTA es el primer
método desarrollado para evaluar en
la arquitectura de software la facilidad
de uso del sistema. La facilidad de uso
es la facilidad con la cual el usuario
puede aprender a operar, preparar
entradas e interpretar las salidas de un
sistema o componente
IES WERNHER VON BRAUN 30
SALUTA está compuesto de cuatro
pasos y que a continuación se
describen.
1. Crear perfiles de uso. En este
punto se identifican los usuarios
y se organizan en categorías. A
continuación se identifican las
tareas más significativas del
sistema, se identifica el
contexto donde será usado el
sistema, se determinan los
valores para los atributos:
facilidad de aprendizaje,
eficiencia de uso, confiabilidad y
satisfacción.
IES WERNHER VON BRAUN 31
2. Describir la facilidad de uso
proporcionada. Se colecta la
información de la arquitectura
de software para determinar
el nivel de soporte en los
escenarios de uso. Esto se
realiza efectuando un análisis
basado en patrones o basado
en propiedades. En ambos
análisis se utiliza el marco de
referencia para determinar la
presencia de patrones o
propiedades de facilidad de
uso en la arquitectura a
evaluar
IES WERNHER VON BRAUN 32
3. Evaluar escenarios. En este paso
se evalúa cada uno de los
escenarios que forman parte del
perfil de uso. Por cada escenario
se analizan los patrones y
propiedades previamente
identificados.
4. Interpretar resultados. En este
paso se obtienen los resultados
de la evaluación que contienen
el grado de facilidad de uso que
soporta la arquitectura
evaluada.
IES WERNHER VON BRAUN 33
3. Análisis de redes sobrevivientes(SNA):
SNA es un método desarrollado por el
CERT (Computer Emergency
ResponseTeam) que forma parte del
SEI (Software Engineering Institute).
Este método ayuda a identificar la
capacidad de supervivencia en un
sistema analizando su arquitectura.
La supervivencia es la capacidad que
tiene un sistema para completar su
misión a tiempo ante la presencia de
ataques, fallas o accidentes.
IES WERNHER VON BRAUN 34
SNA está compuesto de cuatro
pasos que a continuación se
describen.
1. Definición del sistema. En este
paso se obtiene la misión del
sistema, se discute el entorno
de uso en términos de
capacidades y ubicaciones de
los usuarios, se analizan
posibles riesgos que el sistema
pueda presentar en condiciones
adversas, finalmente se analiza
la arquitectura de software.
IES WERNHER VON BRAUN 35
2. Definición de las capacidades
esenciales. A continuación se
seleccionan los servicios
esenciales y los activos que
usan. Se deben de seleccionar
aquellos servicios y activos
que sean críticos para
garantizar en condiciones
adversas la misión del
sistema. Una vez
seleccionados, estos se
trazan a través de la
arquitectura para identificar
los componentes que
participan en proporcionar
los servicios esenciales.
IES WERNHER VON BRAUN 36
3. Definición de las capacidades
que comprometen al sistema.
En este paso se selecciona un
conjunto representativo de
posibles ataques basados en el
entorno de operación del
sistema. Se definen los
escenarios de intrusión y se
trazan a través de la
arquitectura para identificar
componentes que
comprometan la supervivencia
del sistema logrando así el
acceso y daño a éste.
IES WERNHER VON BRAUN 37
4. Analizar la supervivencia.
Finalmente se identifican los
escenarios de intrusión que
contienen los componentes
esenciales y que
comprometen la
supervivencia del sistema.
Por cada componente
identificado se procede a
analizarlo en términos de las
capacidades de resistencia,
reconocimiento y
recuperación.
IES WERNHER VON BRAUN 38
Una vez establecida la
arquitectura, se construye
el sistema. Durante esta
etapa es importante evitar
que ocurran desviaciones
respecto del diseño
definido por el arquitecto.
IES WERNHER VON BRAUN 39
La implementación se hace por lo habitual
con base en arquitecturas preestablecidas,
y las técnicas de diseño y construcción de
sistemas se apegan a ellas. La
implementación es la acción de transformar
especificaciones en programas que serán
funcionales para los usuarios. La
implementación comprende:
1. Diseñar la estructura general del
sistema basándose en la arquitectura.
Lo anterior se refiere a identificar todos
los módulos que permitirán soportar los
requerimientos funcionales.
2. Diseñar de manera detallada los
módulos del sistema basándose en la
arquitectura y los requerimientos
funcionales.
IES WERNHER VON BRAUN 40
3. Desarrollar y/o adquirir los módulos
especificados en el diseño.
a) Programar código de cada uno de los
módulos funcionales que no son
adquiridos, de acuerdo a la especificación
de sus interfaces.
b) Incorporar cada elemento adquirido.
c) Probar de manera individual cada uno de
los módulos
4. Integrar los módulos desarrollados y/o
adquiridos y probar que juntos funcionan
como se espera.
5. Probar los distintos niveles de integración
hasta lograr la totalidad del sistema.
6. Corregir cualquier error detectado en cada
uno de los pasos.
ACTIVIDADES A DESARROLLAR:
IES WERNHER VON BRAUN 41
Investigar todo sobre otros métodos de evaluación de
arquitectura de software:
1. ATAM (ArchitectureTrade-off Analysis Method).
2. SAAM (Software Architecture Analysis Method).
3. ARID (Active Reviews for Intermediate Design).
4. PASA (Performance Assessment of Software Architecture).
Nota:
- Entregar el trabajo en Word
- Enviarlo a mi correo: gayquipa@istvonbraun.edu.pe
Muchas Gracias
IES WERNHER VON BRAUN 42
Versión del archivo: 2022
Autores:

Más contenido relacionado

La actualidad más candente

Gestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el SoftwareGestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el SoftwareJosé Antonio Sandoval Acosta
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareAndresRealp1
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwarepaoaboytes
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasAlex Uhu Colli
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareRoberth Loaiza
 
Crisis del software
Crisis del softwareCrisis del software
Crisis del softwareecasteloc
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitosZuleima
 
3.5.1 Tipos-de-riesgos
3.5.1 Tipos-de-riesgos3.5.1 Tipos-de-riesgos
3.5.1 Tipos-de-riesgosKike Lopez
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de SoftwareDaniel Valdivieso
 
Gestión de riesgos de software
Gestión de riesgos de softwareGestión de riesgos de software
Gestión de riesgos de softwareOmar S. Gomez
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAngel Reyes
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de SoftwareGustavo Bazan Maal
 

La actualidad más candente (20)

Mejores Prácticas en el Desarrollo del Software
Mejores Prácticas en el Desarrollo del SoftwareMejores Prácticas en el Desarrollo del Software
Mejores Prácticas en el Desarrollo del Software
 
Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria Web
 
Gestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el SoftwareGestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el Software
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-software
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de software
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capas
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
 
Crisis del software
Crisis del softwareCrisis del software
Crisis del software
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
3.5.1 Tipos-de-riesgos
3.5.1 Tipos-de-riesgos3.5.1 Tipos-de-riesgos
3.5.1 Tipos-de-riesgos
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Gestión de riesgos de software
Gestión de riesgos de softwareGestión de riesgos de software
Gestión de riesgos de software
 
Presentación proceso del software
Presentación proceso del softwarePresentación proceso del software
Presentación proceso del software
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
PLAN SQA
PLAN SQAPLAN SQA
PLAN SQA
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de software
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 

Similar a CICLO DE DESARROLLO DE ARQUITECTURA DE SOFTWARE.pdf

Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfTALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfMiguelGomez900779
 
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxMaikoUrizar1
 
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-IntroducciónLuis Fernando Aguas Bucheli
 
Fundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfFundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfBibliotecaenlineaUNI
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)David Rosero
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosRafael Fdo Lopez Castillo
 
Introduccion a la ingenieria del software
Introduccion a la ingenieria del softwareIntroduccion a la ingenieria del software
Introduccion a la ingenieria del softwareEdmund Uespadila
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software AlessandreMndez
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaamendez45
 
Analisis requerimientos jose_fernandez
Analisis requerimientos jose_fernandezAnalisis requerimientos jose_fernandez
Analisis requerimientos jose_fernandezJose Fernandez
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccionlandeta_p
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteCAMILO
 
Definición de planificación de proyectos de software presentación
Definición de planificación de proyectos de software presentaciónDefinición de planificación de proyectos de software presentación
Definición de planificación de proyectos de software presentaciónOvidio Fernando Hernández Albarran
 
Fundamentos del diseno de software jesus marcano
Fundamentos del diseno de software   jesus marcanoFundamentos del diseno de software   jesus marcano
Fundamentos del diseno de software jesus marcanoGalderIL057
 

Similar a CICLO DE DESARROLLO DE ARQUITECTURA DE SOFTWARE.pdf (20)

Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfTALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
 
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
 
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
 
Fundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfFundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdf
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
 
Introduccion a la ingenieria del software
Introduccion a la ingenieria del softwareIntroduccion a la ingenieria del software
Introduccion a la ingenieria del software
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
 
Proceso software
Proceso softwareProceso software
Proceso software
 
Analisis requerimientos jose_fernandez
Analisis requerimientos jose_fernandezAnalisis requerimientos jose_fernandez
Analisis requerimientos jose_fernandez
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccion
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de Coste
 
Ingeniería de Software
Ingeniería de SoftwareIngeniería de Software
Ingeniería de Software
 
Guillermo cárdenas
Guillermo cárdenasGuillermo cárdenas
Guillermo cárdenas
 
Guillermo cárdenas
Guillermo cárdenasGuillermo cárdenas
Guillermo cárdenas
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
Definición de planificación de proyectos de software presentación
Definición de planificación de proyectos de software presentaciónDefinición de planificación de proyectos de software presentación
Definición de planificación de proyectos de software presentación
 
Fundamentos del diseno de software jesus marcano
Fundamentos del diseno de software   jesus marcanoFundamentos del diseno de software   jesus marcano
Fundamentos del diseno de software jesus marcano
 

Más de DavidVeraOlivera

U3_Leguaje PHP-Semana 07.pdf
U3_Leguaje PHP-Semana 07.pdfU3_Leguaje PHP-Semana 07.pdf
U3_Leguaje PHP-Semana 07.pdfDavidVeraOlivera
 
introduccion-seguridad-informc3a1tica.pptx
introduccion-seguridad-informc3a1tica.pptxintroduccion-seguridad-informc3a1tica.pptx
introduccion-seguridad-informc3a1tica.pptxDavidVeraOlivera
 
ES.ASW.Te11_DistribuidosBigData.pdf
ES.ASW.Te11_DistribuidosBigData.pdfES.ASW.Te11_DistribuidosBigData.pdf
ES.ASW.Te11_DistribuidosBigData.pdfDavidVeraOlivera
 
ES.ASW.Te02_Definiciones.pdf
ES.ASW.Te02_Definiciones.pdfES.ASW.Te02_Definiciones.pdf
ES.ASW.Te02_Definiciones.pdfDavidVeraOlivera
 
ARQUITECTURA CLIENTE SERVIDOR.pdf
ARQUITECTURA CLIENTE SERVIDOR.pdfARQUITECTURA CLIENTE SERVIDOR.pdf
ARQUITECTURA CLIENTE SERVIDOR.pdfDavidVeraOlivera
 
Software Architecture & Design of Modern Large Scale.pptx
Software Architecture & Design of Modern Large Scale.pptxSoftware Architecture & Design of Modern Large Scale.pptx
Software Architecture & Design of Modern Large Scale.pptxDavidVeraOlivera
 

Más de DavidVeraOlivera (10)

U3_Leguaje PHP-Semana 07.pdf
U3_Leguaje PHP-Semana 07.pdfU3_Leguaje PHP-Semana 07.pdf
U3_Leguaje PHP-Semana 07.pdf
 
introduccion-seguridad-informc3a1tica.pptx
introduccion-seguridad-informc3a1tica.pptxintroduccion-seguridad-informc3a1tica.pptx
introduccion-seguridad-informc3a1tica.pptx
 
ES.ASW.Te11_DistribuidosBigData.pdf
ES.ASW.Te11_DistribuidosBigData.pdfES.ASW.Te11_DistribuidosBigData.pdf
ES.ASW.Te11_DistribuidosBigData.pdf
 
ES.ASW.Te02_Definiciones.pdf
ES.ASW.Te02_Definiciones.pdfES.ASW.Te02_Definiciones.pdf
ES.ASW.Te02_Definiciones.pdf
 
ARQUITECTURA EN CAPAS.pdf
ARQUITECTURA EN CAPAS.pdfARQUITECTURA EN CAPAS.pdf
ARQUITECTURA EN CAPAS.pdf
 
ARQUITECTURA CLIENTE SERVIDOR.pdf
ARQUITECTURA CLIENTE SERVIDOR.pdfARQUITECTURA CLIENTE SERVIDOR.pdf
ARQUITECTURA CLIENTE SERVIDOR.pdf
 
sesion01-traspas.pdf
sesion01-traspas.pdfsesion01-traspas.pdf
sesion01-traspas.pdf
 
ARQII_00-Repaso2.pdf
ARQII_00-Repaso2.pdfARQII_00-Repaso2.pdf
ARQII_00-Repaso2.pdf
 
ARQII_00-Repaso-2012.pdf
ARQII_00-Repaso-2012.pdfARQII_00-Repaso-2012.pdf
ARQII_00-Repaso-2012.pdf
 
Software Architecture & Design of Modern Large Scale.pptx
Software Architecture & Design of Modern Large Scale.pptxSoftware Architecture & Design of Modern Large Scale.pptx
Software Architecture & Design of Modern Large Scale.pptx
 

CICLO DE DESARROLLO DE ARQUITECTURA DE SOFTWARE.pdf

  • 1. Semestre: 2022-1 Ciclo: IV Docente: Godofredo Ayquipa Cordova PATRONES DE DISEÑOY ARQUITECTURA DE SOFTWARE
  • 2. Semana 02 Temas de la clase: Ciclo de desarrollo de arquitectura de software • Requerimientos de la arquitectura • Diseño de la arquitectura • Documentación de la arquitectura • Evaluación de la arquitectura • Implementación de la arquitectura IES WERNHER VON BRAUN 2
  • 3. Objetivo de la clase Describir y entender el ciclo de desarrollo de la arquitectura de software IES WERNHER VON BRAUN 3
  • 4. IES WERNHER VON BRAUN 4 Dentro de un proyecto de desarrollo, e independientemente de la metodología que se utilice, se puede hablar de “desarrollo de la arquitectura de software”. Este desarrollo, que precede a la construcción del sistema, esta dividido en las siguientes etapas: requerimientos, diseño, documentación y evaluación. Cabe señalar que las actividades relacionadas con el desarrollo de la arquitectura de software generalmente forman parte de las actividades definidas dentro de las metodologías de desarrollo.
  • 5. IES WERNHER VON BRAUN 5
  • 6. IES WERNHER VON BRAUN 6 La etapa de requerimientos se enfoca en la captura, documentación y priorización de requerimientos que influencian la arquitectura. Como se mencionó anteriormente, los atributos de calidad juegan un papel preponderante dentro de estos requerimientos, así que esta etapa hace énfasis en ellos. Otros requerimientos, sin embargo, son también relevantes para la arquitectura, estos son los requerimientos funcionales primarios y las restricciones.
  • 7. IES WERNHER VON BRAUN 7
  • 8. IES WERNHER VON BRAUN 8 Recordemos un poco sobre qué son los requerimientos. Generalmente se considera que los requerimientos de un sistema se pueden dividir en dos categorías: Requerimientos Funcionales (RFs) y Requerimientos No Funcionales (RNFs).
  • 9. IES WERNHER VON BRAUN 9 los RFs engloban los distintos tipos de requerimientos que se reflejan en los comportamientos de la aplicación y que incluyen: • Requerimientos de negocio: Motivación de negocio para que exista un sistema. • Requerimientos de usuario: Comportamiento del sistema, frecuentemente se expresan en forma de casos de uso. • Requerimientos funcionales detallados: Complementan a los casos de uso (generalmente se describen usando el verbo “deber”). • Requerimientos de sistema: Describen el mínimo hardware y software para que un sistema de información pueda funcionar.
  • 10. IES WERNHER VON BRAUN 10 Por otra parte, los RNFs tienen que ver con la manera en que el sistema soporta a los RFs. Estos incluyen: • Reglas de negocio: expresan reglas de la organización que deben ser soportadas por el sistema. • Atributos de calidad: se describen más adelante. • Restricciones: Expresan aspectos que deben considerarse al realizar el diseño y limitan las decisiones que se pueden tomar. • Interfaces externas: Especificaciones de interfaces de otros sistemas con los que se interactúa.
  • 11. IES WERNHER VON BRAUN 11
  • 12. IES WERNHER VON BRAUN 12
  • 13. IES WERNHER VON BRAUN 13 • La etapa de diseño es probablemente la más compleja del ciclo de desarrollo de la arquitectura. Durante ella se definen las estructuras de las que se compone la arquitectura mediante la toma de decisiones de diseño. Esta creación estructural se hace por lo habitual con base en dos clases de soluciones abstractas probadas, llamadas patrones de diseño y tácticas, al igual que en soluciones concretas como las elecciones tecnológicas, tales como los frameworks. • El diseño que se realiza debe buscar ante todo satisfacer los requerimientos que influencian a la arquitectura, y no simplemente incorporar diversas tecnologías por que están “de moda”.
  • 14. IES WERNHER VON BRAUN 14 1. Diseño de la arquitectura: este nivel se enfoca en la toma de decisiones en relación con los drivers (guía) de la arquitectura y la creación de estructuras para satisfacerlos.
  • 15. IES WERNHER VON BRAUN 15 2. Diseño de las interfaces: este nivel ocurre parcialmente cuando se diseña la arquitectura, pero la mayor parte del trabajo ocurre una vez que este proceso ha concluido. Es en este momento en que: a) se identifican todos los módulos y otros elementos faltantes requeridos para soportar la funcionalidad del sistema, y b) se diseñan sus interfaces, es decir, los contratos que deben satisfacer estos módulos y otros elementos de acuerdo con los lineamientos que establece el propio diseño de la arquitectura.
  • 16. IES WERNHER VON BRAUN 16 3. Diseño detallado de los módulos: este nivel ocurre generalmente durante la construcción del sistema. Una vez que se han establecido los módulos y sus interfaces, se pueden diseñar los detalles de implementación de esos módulos previo a su codificación y prueba.
  • 17. IES WERNHER VON BRAUN 17 Este procedimiento consiste en elegir en cada iteración un subconjunto de todos los drivers (guía) de la arquitectura y tomar decisiones de diseño al respecto, lo cual resulta en estructuras que permiten satisfacerlos. El diseño resultante se evalúa, se elige enseguida otro subconjunto de los drivers, y se procede de la misma manera hasta que se completa el diseño. El proceso termina cuando se considera que se han tomado suficientes decisiones de diseño para satisfacer el conjunto de drivers, o bien, cuando concluye el tiempo que el arquitecto tiene asignado para realizar las actividades de diseño.
  • 18. IES WERNHER VON BRAUN 18
  • 19. IES WERNHER VON BRAUN 19 Una vez que ha sido creado el diseño de la arquitectura, es necesario darlo a conocer a otros interesados en el sistema, como desarrolladores, responsables de implantación, líderes de proyecto o el cliente mismo. La comunicación exitosa depende por lo habitual de que el diseño sea documentado de forma apropiada. A pesar de que durante el diseño se hace una documentación inicial que puede incluir bocetos de las estructuras, o bien capturas de las decisiones de diseño, la documentación formal involucra la representación sus estructuras por medio de vistas. Una vista representa una estructura y contiene por lo habitual un diagrama, además de información adicional que apoya en la comprensión de este.
  • 20. IES WERNHER VON BRAUN 20 1. Vista lógica. Modela elementos que soportan la funcionalidad que el sistema provee al usuario final de un punto de vista estático o dinámico mediante diagramas tales como clases, paquetes y secuencia. 2. Vista de proceso. Esta vista opcional modela los aspectos dinámicos del sistema y captura aspectos tales como concurrencia y sincronización mediante diagramas tales como el de actividades.
  • 21. IES WERNHER VON BRAUN 21 3. Vista de desarrollo. Modela la organización estática del software en su ambiente de desarrollo, típicamente mediante diagramas de componentes. 4. Vista física. Modela el mapeo del software con el hardware, típicamente con diagramas de implantación. 5. Vista de casos de uso. Esta es la vista adicional que es central al modelo y que agrupa escenarios de casos de uso principales. Para su representación se puede usar un diagrama de casos de uso acompañado de descripciones textuales de los escenarios
  • 22. IES WERNHER VON BRAUN 22 La documentación de la arquitectura es una actividad fundamental para poder realizar una comunicación adecuada del diseño. Es importante recalcar que no existen criterios precisos que permitan determinar el grado exacto de documentación que se debe realizar, y esto se debe determinar considerando diversos aspectos que incluyen a los involucrados, el tipo de proyecto y la experiencia del equipo de desarrollo.
  • 23. IES WERNHER VON BRAUN 23
  • 24. IES WERNHER VON BRAUN 24 Dado que la arquitectura de software juega un papel crítico en el desarrollo, es conveniente evaluar el diseño una vez que este ha sido documentado con el fin de identificar posibles problemas y riesgos. La ventaja de evaluar el diseño es que es una actividad que se puede realizar de manera temprana (aún antes de codificar), y que el costo de corrección de los defectos identificados a través de la evaluación es mucho menor al costo que tendría el corregir estos defectos una vez que el sistema ha sido construido.
  • 25. IES WERNHER VON BRAUN 25 1. Análisis de modificabilidad a nivel de arquitectura (ALMA): El atributo de calidad que analiza ALMA en una arquitectura de software es la facilidad de modificación. La facilidad de modificación en un sistema de software es la facilidad con la cual éste puede ser modificado a cambios en el entorno, cambios en los requerimientos o cambios a la especificación funcional.
  • 26. IES WERNHER VON BRAUN 26 Este método se compone de cinco pasos: 1. Definir la meta de evaluación. Dependiendo del objetivo de la evaluación se selecciona alguna de las tres metas (predicción del costo de mantenimiento, evaluación de riesgos, selección de un conjunto de arquitecturas). 2. Describir la arquitectura de software. En este punto se colecta la información de las partes más relevantes de la arquitectura como son la descomposición de ésta en componentes, las relaciones entre componentes así como las relaciones que existen en el entorno del sistema.
  • 27. IES WERNHER VON BRAUN 27 3. Obtener escenarios. Una vez que se cuenta con la información de la arquitectura se procede a encontrar y definir los escenarios de cambio, estos escenarios son agrupados en categorías. Dependiendo de la meta de evaluación se seleccionan los escenarios. Por ejemplo, si la meta es estimar el esfuerzo de mantenimiento, se recomienda seleccionar aquellos escenarios que corresponden a los cambios que tienen una alta probabilidad de que ocurran durante la vida operacional del sistema.
  • 28. IES WERNHER VON BRAUN 28 4. Evaluar escenarios. En este punto se realiza un análisis de impacto que consiste en identificar los componentes afectados por los escenarios previamente definidos, determinar el efecto del cambio sobre los componentes así como determinar los efectos del cambio en otros componentes. Los resultados de este análisis se deben expresar ya sea de manera cuantitativa o cualitativa. 5. Interpretar resultados. Finalmente se interpretan los resultados así como las conclusiones del análisis dependiendo de la meta de evaluación seleccionada.
  • 29. IES WERNHER VON BRAUN 29 2. Análisis de usabilidad del nivel de arquitectura basado en escenarios (SALUTA): SALUTA es el primer método desarrollado para evaluar en la arquitectura de software la facilidad de uso del sistema. La facilidad de uso es la facilidad con la cual el usuario puede aprender a operar, preparar entradas e interpretar las salidas de un sistema o componente
  • 30. IES WERNHER VON BRAUN 30 SALUTA está compuesto de cuatro pasos y que a continuación se describen. 1. Crear perfiles de uso. En este punto se identifican los usuarios y se organizan en categorías. A continuación se identifican las tareas más significativas del sistema, se identifica el contexto donde será usado el sistema, se determinan los valores para los atributos: facilidad de aprendizaje, eficiencia de uso, confiabilidad y satisfacción.
  • 31. IES WERNHER VON BRAUN 31 2. Describir la facilidad de uso proporcionada. Se colecta la información de la arquitectura de software para determinar el nivel de soporte en los escenarios de uso. Esto se realiza efectuando un análisis basado en patrones o basado en propiedades. En ambos análisis se utiliza el marco de referencia para determinar la presencia de patrones o propiedades de facilidad de uso en la arquitectura a evaluar
  • 32. IES WERNHER VON BRAUN 32 3. Evaluar escenarios. En este paso se evalúa cada uno de los escenarios que forman parte del perfil de uso. Por cada escenario se analizan los patrones y propiedades previamente identificados. 4. Interpretar resultados. En este paso se obtienen los resultados de la evaluación que contienen el grado de facilidad de uso que soporta la arquitectura evaluada.
  • 33. IES WERNHER VON BRAUN 33 3. Análisis de redes sobrevivientes(SNA): SNA es un método desarrollado por el CERT (Computer Emergency ResponseTeam) que forma parte del SEI (Software Engineering Institute). Este método ayuda a identificar la capacidad de supervivencia en un sistema analizando su arquitectura. La supervivencia es la capacidad que tiene un sistema para completar su misión a tiempo ante la presencia de ataques, fallas o accidentes.
  • 34. IES WERNHER VON BRAUN 34 SNA está compuesto de cuatro pasos que a continuación se describen. 1. Definición del sistema. En este paso se obtiene la misión del sistema, se discute el entorno de uso en términos de capacidades y ubicaciones de los usuarios, se analizan posibles riesgos que el sistema pueda presentar en condiciones adversas, finalmente se analiza la arquitectura de software.
  • 35. IES WERNHER VON BRAUN 35 2. Definición de las capacidades esenciales. A continuación se seleccionan los servicios esenciales y los activos que usan. Se deben de seleccionar aquellos servicios y activos que sean críticos para garantizar en condiciones adversas la misión del sistema. Una vez seleccionados, estos se trazan a través de la arquitectura para identificar los componentes que participan en proporcionar los servicios esenciales.
  • 36. IES WERNHER VON BRAUN 36 3. Definición de las capacidades que comprometen al sistema. En este paso se selecciona un conjunto representativo de posibles ataques basados en el entorno de operación del sistema. Se definen los escenarios de intrusión y se trazan a través de la arquitectura para identificar componentes que comprometan la supervivencia del sistema logrando así el acceso y daño a éste.
  • 37. IES WERNHER VON BRAUN 37 4. Analizar la supervivencia. Finalmente se identifican los escenarios de intrusión que contienen los componentes esenciales y que comprometen la supervivencia del sistema. Por cada componente identificado se procede a analizarlo en términos de las capacidades de resistencia, reconocimiento y recuperación.
  • 38. IES WERNHER VON BRAUN 38 Una vez establecida la arquitectura, se construye el sistema. Durante esta etapa es importante evitar que ocurran desviaciones respecto del diseño definido por el arquitecto.
  • 39. IES WERNHER VON BRAUN 39 La implementación se hace por lo habitual con base en arquitecturas preestablecidas, y las técnicas de diseño y construcción de sistemas se apegan a ellas. La implementación es la acción de transformar especificaciones en programas que serán funcionales para los usuarios. La implementación comprende: 1. Diseñar la estructura general del sistema basándose en la arquitectura. Lo anterior se refiere a identificar todos los módulos que permitirán soportar los requerimientos funcionales. 2. Diseñar de manera detallada los módulos del sistema basándose en la arquitectura y los requerimientos funcionales.
  • 40. IES WERNHER VON BRAUN 40 3. Desarrollar y/o adquirir los módulos especificados en el diseño. a) Programar código de cada uno de los módulos funcionales que no son adquiridos, de acuerdo a la especificación de sus interfaces. b) Incorporar cada elemento adquirido. c) Probar de manera individual cada uno de los módulos 4. Integrar los módulos desarrollados y/o adquiridos y probar que juntos funcionan como se espera. 5. Probar los distintos niveles de integración hasta lograr la totalidad del sistema. 6. Corregir cualquier error detectado en cada uno de los pasos.
  • 41. ACTIVIDADES A DESARROLLAR: IES WERNHER VON BRAUN 41 Investigar todo sobre otros métodos de evaluación de arquitectura de software: 1. ATAM (ArchitectureTrade-off Analysis Method). 2. SAAM (Software Architecture Analysis Method). 3. ARID (Active Reviews for Intermediate Design). 4. PASA (Performance Assessment of Software Architecture). Nota: - Entregar el trabajo en Word - Enviarlo a mi correo: gayquipa@istvonbraun.edu.pe
  • 42. Muchas Gracias IES WERNHER VON BRAUN 42 Versión del archivo: 2022 Autores: