SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Diseño de software
Clase 13
Arquitectura y estilos
Profesor: Juan José González Faúndez
Arquitectura de Software
• IEEE 1471
El nivel conceptual más alto
de un sistema en su
ambiente.
• Arquitectura es la
organización fundamental de
un sistema descrita en:
– Sus componentes.
– Relación entre ellos y con el
ambiente.
– Principios que guían su diseño
y evolución.
+ Software Architecture in Practice
- Kazman
“La estructura de estructuras de un
sistema, la cual abarca
componentes de software,
propiedades externas visibles de
estos componentes y sus
relaciones”.
Discusión
+ Definir la arquitectura en los proyectos actuales es crítico...
+ Es el “puente” entre los requerimientos del sistema y la
implementación.
+ Las actividades que culminan en la definición de la arquitectura
pueden ubicarse en las fases tempranas del ciclo de desarrollo del
sistema: luego del análisis de los requerimientos y el análisis de
riesgos, y justo antes del diseño detallado.
+ Sirve de MEDIO DE COMUNICACIÓN entre los miembros del equipo
de desarrollo, los clientes y usuarios finales, dado que contempla los
aspectos que interesan a cada uno.
Discusión
+ Existe alguna diferencia entre arquitectura y diseño de software?
Arquitectura Vs. Diseño
Arquitectura Diseño
Nivel de
Abstracción
Alto nivel Bajo nivel. Enfoque
específico en detalles
Entregables Planear subsistemas, interfaces
con sistemas externos,
servicios horizontales,
frameworks, componentes
reutilizables, prototipo
arquitectónico
Diseño detallado
componentes.
Especificaciones de
codificación
Áreas de
Enfoque
Selección de tecnologías,
Requerimientos no funcionales
(QoS),
Manejo de riesgos
Requerimientos
funcionales
+ La arquitectura y el diseño difieren en tres áreas:
Arquitectura Vs. Diseño
• La arquitectura envuelve un conjunto de
decisiones estratégicas de diseño,
lineamientos, reglas y patrones que
restringen el diseño y la implementación
de un software.
Las decisiones
de arquitectura
causan un alto
impacto en los
proyectos de IT
Arquitectura
Diseño
Implementación
Código
Discusión
+ Cuales son los principios fundamentales en los métodos de desarrollo
de software modernos?
Arquitectura y Procesos de Desarrollo
Principios Fundamentales de Procesos Modernos
+ Desarrollo iterativo e incremental.
+ Conducido por las calidades sistémicas.
+ Centrado en la arquitectura.
+ Dirigido por los casos de uso.
+ Basada en Modelos.
+ Mejores prácticas de diseño.
Arquitectura y Procesos de
Desarrollo
• Que es un Proceso de Arquitectura?
• Rational Unified Process:
• Secuencia de actividades
que conllevan a la
producción de artefactos
arquitectónicos:
– Descripción de arquitectura
– Prototipo arquitectónico
Arquitectura y Procesos de
Desarrollo
Rational Unified Process:
En el proceso de definición de
arquitectura se producen:
+ Arquitectura Inicial.
+ Arquitectura de Referencia.
+ Documento de Descripción de
arquitectura (SAD):
– Subsistemas
– Componentes
– Arquitectura Runtime.
+ Guías para el proyecto y
estándares de Diseño.
SunTone AM:
Adicionalmente se producen:
+ Matriz Tecnológica de Layers
y Tiers
+ Template de Arquitectura
Arquitectura de Software -
Introducción
11
Distribución del Costo del Software
Mantenimiento
Diseño
Programación
Test
Costos de Mantenimiento del
Software
Arquitectura de Software -
Introducción
Test y
depuración
Implementar
cambios
Rastrear
lógica
Definir
cambios
Analizar
documentos
Actualizar
documentos
Más del 50% del
tiempo del
programador
encargado de
mantenimiento está
dedicado a
comprender el código
y la documentación
del sistema.
Arquitectura en el proceso de
desarrollo
Arquitectura de Software -
Introducción
Requisitos
Arquitectura
Diseño
Detallado
Programación
Test
Mantenimiento
– Aclarar intenciones.
– Hacer explícitas las decisiones.
– Permitir análisis a nivel de sistemas.
Reducir los costos de
mantenimiento directa e
indirectamente.
Diseño
¿Para qué la Arquitectura de
Software?
 Las personas necesitan pensar, diseñar, codificar,
y comunicarse en términos de grandes bloques
conceptuales.
– Abstracción
 Es necesario escapar de los desarrollos
excesivamente personalizados y estandarizar el
diseño.
– Reutilización de patrones de arquitectura
 Es necesario diseñar sistemas de larga vida.
– Reutilización de componentes particulares
Arquitectura de Software -
Introducción
¿Para qué más?
 Productividad en el desarrollo:
actualmente solamente se reutiliza el código y las
estructuras de datos.
 Atacar otros problemas del ciclo de vida del
software:
Modificabilidad, portabilidad, escalabilidad,
seguridad.
A medida que el tamaño del sistema crece, las
soluciones a estos problemas radican más en la
arquitectura.
 Tener un lenguaje común para diseñadores,
desarrolladores y usuarios.
Arquitectura de Software -
Introducción
Ciclo de Vida de la Arquitectura
• Los objetivos de la organización influencian los
requisitos.
• Los requisitos nos llevan a un diseño de
arquitectura.
• La arquitectura da como resultado un sistema.
• Los sistemas construidos sugieren nuevas
oportunidades para la organización y nuevos
requisitos.
Arquitectura de Software -
Introducción
Influencias sobre el Arquitecto de
Software
Arquitectura de Software -
Introducción
Arquitecto
Administrador
de la
organización
desarrolladora
Bajos costos,
mantener a la
gente ocupada
Encargado
de
Marketing
Elementos
atractivos, corto
tiempo para poner
en el mercado,
bajos costos,
comparable con
productos de la
competencia
Usuario Final
Comportamiento
apropiado,
performance,
seguridad,
confiabilidad
Organización
encargada del
mantenimiento
Mantenibilidad
Cliente
Bajos costos,
entrega a tiempo,
sin cambios
frecuentes
Influencias sobre la Arquitectura
Arquitectura de Software - Introducción
Arquitecto
Arquitectura
Sistema
•Cliente y
usuario final
•Organización
desarrolladora
•Ambiente
técnico
•Experiencia
del arquitecto
Requisitos
(cualidades)
Influencias del Arquitecto
Etapas de Desarrollo Basado en
Arquitectura
1. Hacer un caso de negocio para el sistema
2. Comprender los requisitos
3. Crear o seleccionar una arquitectura
4. Representar y comunicar la arquitectura
5. Analizar o evaluar la arquitectura
6. Implementar el sistema basado en la
arquitectura
7. Asegurar que la implementación se ajusta a la
arquitectura Arquitectura de Software -
Introducción
¿Cómo se hace una buena
arquitectura?
• La arquitectura debe ser producida por un solo arquitecto o un
grupo pequeño.
• El arquitecto debe disponer de los requisitos técnicos del sistema
y una lista priorizada de propiedades cualitativas que se espera
que el software satisfaga.
• La arquitectura debe estar bien documentada usando una
notación acordada que todos los interesados puedan comprender
con poco esfuerzo.
• Se debe facilitar la arquitectura a los interesados, los cuales
deben estar involucrados activamente en su revisión.
Arquitectura de Software -
Introducción
¿Cómo se hace una buena
arquitectura?
 La arquitectura debe analizarse para comprobar sus
medidas cuantitativas y propiedades cualitativas antes
de que sea muy tarde para cambiarla.
 La arquitectura debe permitir crear un esqueleto de
sistema donde se reflejen todas las vías de
comunicación pero con mínima funcionalidad.
 El diseño de la arquitectura debe dar como resultado
un conjunto específico de áreas críticas de consumo de
recursos, cuya resolución estará claramente
documentada y mantenida.
Arquitectura de Software -
Introducción
¿Cómo es una buena arquitectura?
• Los módulos deben diseñarse con el principio de separación de
intereses
– distintos grupos de trabajo pueden desarrollarlos
independientemente
• La información oculta incluirá todo aquello dependiente de la
infraestructura tecnológica.
• Cada módulo tendrá una interfaz definida que oculta a los otros
módulos los aspectos cambiables.
• La arquitectura no debe depender de una versión particular de
un producto comercial. De ser así, éste debe estar estructurado
de modo que sea fácil y barato cambiarlo.
Arquitectura de Software -
Introducción
¿Cómo es una buena
arquitectura?
• Los módulos que producen y los que consumen
datos deben estar separados:
– esto tiende a aumentar la mantenibilidad porque en
general sólo una parte cambia.
• Cada tarea o proceso debe describirse de modo que
su asignación a un procesador específico pueda ser
fácilmente cambiada, aún durante su ejecución.
• La arquitectura debe seguir uno o unos pocos
patrones de interacción:
– mayor comprensión, menor tiempo de desarrollo, mayor
confiabilidad, mayor modificabilidad.
Arquitectura de Software -
Introducción
Importancia de la Arquitectura
• comunicación entre las
personas involucradas,
• documentación temprana de
las decisiones de diseño,
• restricción de la
implementación,
• la arquitectura dicta la
estructura organizacional,
• facilita o inhibe propiedades
del sistema,
• permite predecir cualidades del
sistema,
• facilita la administración de la
evolución,
• una abstracción transferible del
sistema,
• las líneas de productos comparten
arquitectura,
• puede usarse COTS (componentes
software ya desarrollados y de índole
comercial),
• base para el entrenamiento de nuevo
personal.
Arquitectura de Software -
Introducción
Ejemplo - Grabadora IP
 Una empresa desea desarrollar un software de grabación
de conversaciones sobre telefonía IP para un centro de
llamados.
 Existen soluciones comerciales para esta funcionalidad,
pero tienen altos costos de licencias.
 La empresa quiere hacer este desarrollo para
– usarlo en sus instalaciones
– venderlo a otras empresas
 Se desea que la aplicación tenga un módulo adicional
para oír las conversaciones en tiempo real, eligiendo la
operadora a través de una interfaz web.
Arquitectura de Software -
Introducción
Grabadora IP: Stakeholders y Cualidades
• Usuarios: operadoras
– Desean que la grabadora no
entorpezca su labor
– Debe consumir pocos recursos
para no constituir un cuello de
botella
• Cliente: dueño del centro de
llamadas
– Bajo costo y rápido desarrollo
– Flexible para adaptarse a distintos
centros de llamados
– Escalable, portable
• Marketing: encargado de
venderlo
– Fácil de instalar
• Desarrolladores
– Desarrollo en plataforma y
tecnología conocida
• Mantenedores
– Desarrollo en plataforma y
tecnología estándar
Arquitectura de Software -
Introducción
Grabadora IP
Arquitectura de Software -
Introducción
Operadoras
Central IP
Red telefónica
exteriorCentro de
Llamadas
guardar
sniffer
Arquitectura:components, layers, client/server,
dependencies, invocations, exchanged data.
Arquitectura:components, layers, client/server,
dependencies, invocations, exchanged data.
Arquitectura: .NET Remoting
Arquitectura: sistema empresarial
en 3 capas. ¿Diagrama útil?
AUTOSAR Architecture. ¿Están
las capas realmente aquí?
Otra arquitectura. ¿Es útil el diagrama?.
(ciertamente, es muy bonito ☺)
Uno más. ¿Útil?
(ciertamente, es muy feo)
Y usted no necesita una herramienta de lujo, se puede
utilizar un rotafolio
(asumiendo que su escritura es legible!)
XWA architectural framework
Informatyka portal architecture
http://www.e-informatyka.pl/
http://cocoon.apache.org/
DAO Pattern
Transfer Object
Repository
cmp Components
ReservaDAO
IReservaDAO
RequiredInterface
ReservaBLL
RequiredInterface
com.mysql.jdbc
Connection
Librería de Java para
conectarse a Mysql
Connection conn =
DriverManager.getConnection(
"jdbc:mysql://localhost/database",
"myLogin",
"myPassword" );
Statement stmt =
conn.createStatement();
SELECT
INSERT
UPDATE
DELETE
Lógica de negocio
para una reserva
app.ejemplo.View
ReservaView
app.ejemplo.controller
ReservaController
Capa de presentación
getReservas() List<Reserva>
¿Preguntas?

Weitere ähnliche Inhalte

Was ist angesagt?

Documentación de Software
Documentación de Software Documentación de Software
Documentación de Software waqoak
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftChuyito Alvarado
 
IEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareIEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareJesús Navarro
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software Brihany Rossell
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de RequerimientosUTPL UTPL
 
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOUnidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOGuillermo Hernandez Miranda
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareJennifer Andrea Cano Guevara
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitosKleo Jorgee
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp deborahgal
 

Was ist angesagt? (20)

Rup disciplinas
Rup disciplinasRup disciplinas
Rup disciplinas
 
Documentación de Software
Documentación de Software Documentación de Software
Documentación de Software
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Herramientas case full informacion
Herramientas case full informacionHerramientas case full informacion
Herramientas case full informacion
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoft
 
IEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareIEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de software
 
Capas de la ingenieria de software
Capas de la ingenieria de softwareCapas de la ingenieria de software
Capas de la ingenieria de software
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de Requerimientos
 
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOUnidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
9.diseño de la arquitectura
9.diseño de la arquitectura9.diseño de la arquitectura
9.diseño de la arquitectura
 
Requerimientos del software
Requerimientos del software Requerimientos del software
Requerimientos del software
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitos
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
5.comprensión de los requerimientos
5.comprensión de los requerimientos5.comprensión de los requerimientos
5.comprensión de los requerimientos
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp
 

Ähnlich wie Arquitectura de Software

Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccionlandeta_p
 
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
 
Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicionjuca piro
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 
M.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptx
M.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptxM.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptx
M.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptxHawkMartnez
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranMarijoalbarranb
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoCoesi Consultoria
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareLuis Fernández
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdfssuser20fade
 
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
 
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxMaikoUrizar1
 

Ähnlich wie Arquitectura de Software (20)

Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccion
 
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
 
Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicion
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 
M.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptx
M.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptxM.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptx
M.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptx
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de software
 
Arquitectura. de Software. en ambientes distribuidos.
Arquitectura. de Software. en ambientes distribuidos.Arquitectura. de Software. en ambientes distribuidos.
Arquitectura. de Software. en ambientes distribuidos.
 
3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso
 
2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
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
 
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
 

Mehr von Juan Jose Gonzalez Faundez

Mehr von Juan Jose Gonzalez Faundez (9)

Asp Net Architecture
Asp Net ArchitectureAsp Net Architecture
Asp Net Architecture
 
El embrion humano
El embrion humanoEl embrion humano
El embrion humano
 
Ejercicio UML simple
Ejercicio UML simpleEjercicio UML simple
Ejercicio UML simple
 
La antigua idea de un gobierno mundial Israelí
La antigua idea de un gobierno mundial IsraelíLa antigua idea de un gobierno mundial Israelí
La antigua idea de un gobierno mundial Israelí
 
Orígenes del orden mundial y lo que se viene
Orígenes del orden mundial y lo que se vieneOrígenes del orden mundial y lo que se viene
Orígenes del orden mundial y lo que se viene
 
Diseños estructurales usando uml con clases de análisis y modelos de diseño
Diseños estructurales usando uml con clases de análisis y modelos de diseñoDiseños estructurales usando uml con clases de análisis y modelos de diseño
Diseños estructurales usando uml con clases de análisis y modelos de diseño
 
Principales estilos arquitectónicos
Principales estilos arquitectónicosPrincipales estilos arquitectónicos
Principales estilos arquitectónicos
 
Un problema de diseño Orientado a Objetos
Un problema de diseño Orientado a ObjetosUn problema de diseño Orientado a Objetos
Un problema de diseño Orientado a Objetos
 
Fuerza Chile!4
Fuerza Chile!4Fuerza Chile!4
Fuerza Chile!4
 

Kürzlich hochgeladen

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 

Kürzlich hochgeladen (20)

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 

Arquitectura de Software

  • 1. Diseño de software Clase 13 Arquitectura y estilos Profesor: Juan José González Faúndez
  • 2. Arquitectura de Software • IEEE 1471 El nivel conceptual más alto de un sistema en su ambiente. • Arquitectura es la organización fundamental de un sistema descrita en: – Sus componentes. – Relación entre ellos y con el ambiente. – Principios que guían su diseño y evolución. + Software Architecture in Practice - Kazman “La estructura de estructuras de un sistema, la cual abarca componentes de software, propiedades externas visibles de estos componentes y sus relaciones”.
  • 3. Discusión + Definir la arquitectura en los proyectos actuales es crítico... + Es el “puente” entre los requerimientos del sistema y la implementación. + Las actividades que culminan en la definición de la arquitectura pueden ubicarse en las fases tempranas del ciclo de desarrollo del sistema: luego del análisis de los requerimientos y el análisis de riesgos, y justo antes del diseño detallado. + Sirve de MEDIO DE COMUNICACIÓN entre los miembros del equipo de desarrollo, los clientes y usuarios finales, dado que contempla los aspectos que interesan a cada uno.
  • 4. Discusión + Existe alguna diferencia entre arquitectura y diseño de software?
  • 5. Arquitectura Vs. Diseño Arquitectura Diseño Nivel de Abstracción Alto nivel Bajo nivel. Enfoque específico en detalles Entregables Planear subsistemas, interfaces con sistemas externos, servicios horizontales, frameworks, componentes reutilizables, prototipo arquitectónico Diseño detallado componentes. Especificaciones de codificación Áreas de Enfoque Selección de tecnologías, Requerimientos no funcionales (QoS), Manejo de riesgos Requerimientos funcionales + La arquitectura y el diseño difieren en tres áreas:
  • 6. Arquitectura Vs. Diseño • La arquitectura envuelve un conjunto de decisiones estratégicas de diseño, lineamientos, reglas y patrones que restringen el diseño y la implementación de un software. Las decisiones de arquitectura causan un alto impacto en los proyectos de IT Arquitectura Diseño Implementación Código
  • 7. Discusión + Cuales son los principios fundamentales en los métodos de desarrollo de software modernos?
  • 8. Arquitectura y Procesos de Desarrollo Principios Fundamentales de Procesos Modernos + Desarrollo iterativo e incremental. + Conducido por las calidades sistémicas. + Centrado en la arquitectura. + Dirigido por los casos de uso. + Basada en Modelos. + Mejores prácticas de diseño.
  • 9. Arquitectura y Procesos de Desarrollo • Que es un Proceso de Arquitectura? • Rational Unified Process: • Secuencia de actividades que conllevan a la producción de artefactos arquitectónicos: – Descripción de arquitectura – Prototipo arquitectónico
  • 10. Arquitectura y Procesos de Desarrollo Rational Unified Process: En el proceso de definición de arquitectura se producen: + Arquitectura Inicial. + Arquitectura de Referencia. + Documento de Descripción de arquitectura (SAD): – Subsistemas – Componentes – Arquitectura Runtime. + Guías para el proyecto y estándares de Diseño. SunTone AM: Adicionalmente se producen: + Matriz Tecnológica de Layers y Tiers + Template de Arquitectura
  • 11. Arquitectura de Software - Introducción 11 Distribución del Costo del Software Mantenimiento Diseño Programación Test
  • 12. Costos de Mantenimiento del Software Arquitectura de Software - Introducción Test y depuración Implementar cambios Rastrear lógica Definir cambios Analizar documentos Actualizar documentos Más del 50% del tiempo del programador encargado de mantenimiento está dedicado a comprender el código y la documentación del sistema.
  • 13. Arquitectura en el proceso de desarrollo Arquitectura de Software - Introducción Requisitos Arquitectura Diseño Detallado Programación Test Mantenimiento – Aclarar intenciones. – Hacer explícitas las decisiones. – Permitir análisis a nivel de sistemas. Reducir los costos de mantenimiento directa e indirectamente. Diseño
  • 14. ¿Para qué la Arquitectura de Software?  Las personas necesitan pensar, diseñar, codificar, y comunicarse en términos de grandes bloques conceptuales. – Abstracción  Es necesario escapar de los desarrollos excesivamente personalizados y estandarizar el diseño. – Reutilización de patrones de arquitectura  Es necesario diseñar sistemas de larga vida. – Reutilización de componentes particulares Arquitectura de Software - Introducción
  • 15. ¿Para qué más?  Productividad en el desarrollo: actualmente solamente se reutiliza el código y las estructuras de datos.  Atacar otros problemas del ciclo de vida del software: Modificabilidad, portabilidad, escalabilidad, seguridad. A medida que el tamaño del sistema crece, las soluciones a estos problemas radican más en la arquitectura.  Tener un lenguaje común para diseñadores, desarrolladores y usuarios. Arquitectura de Software - Introducción
  • 16. Ciclo de Vida de la Arquitectura • Los objetivos de la organización influencian los requisitos. • Los requisitos nos llevan a un diseño de arquitectura. • La arquitectura da como resultado un sistema. • Los sistemas construidos sugieren nuevas oportunidades para la organización y nuevos requisitos. Arquitectura de Software - Introducción
  • 17. Influencias sobre el Arquitecto de Software Arquitectura de Software - Introducción Arquitecto Administrador de la organización desarrolladora Bajos costos, mantener a la gente ocupada Encargado de Marketing Elementos atractivos, corto tiempo para poner en el mercado, bajos costos, comparable con productos de la competencia Usuario Final Comportamiento apropiado, performance, seguridad, confiabilidad Organización encargada del mantenimiento Mantenibilidad Cliente Bajos costos, entrega a tiempo, sin cambios frecuentes
  • 18. Influencias sobre la Arquitectura Arquitectura de Software - Introducción Arquitecto Arquitectura Sistema •Cliente y usuario final •Organización desarrolladora •Ambiente técnico •Experiencia del arquitecto Requisitos (cualidades) Influencias del Arquitecto
  • 19. Etapas de Desarrollo Basado en Arquitectura 1. Hacer un caso de negocio para el sistema 2. Comprender los requisitos 3. Crear o seleccionar una arquitectura 4. Representar y comunicar la arquitectura 5. Analizar o evaluar la arquitectura 6. Implementar el sistema basado en la arquitectura 7. Asegurar que la implementación se ajusta a la arquitectura Arquitectura de Software - Introducción
  • 20. ¿Cómo se hace una buena arquitectura? • La arquitectura debe ser producida por un solo arquitecto o un grupo pequeño. • El arquitecto debe disponer de los requisitos técnicos del sistema y una lista priorizada de propiedades cualitativas que se espera que el software satisfaga. • La arquitectura debe estar bien documentada usando una notación acordada que todos los interesados puedan comprender con poco esfuerzo. • Se debe facilitar la arquitectura a los interesados, los cuales deben estar involucrados activamente en su revisión. Arquitectura de Software - Introducción
  • 21. ¿Cómo se hace una buena arquitectura?  La arquitectura debe analizarse para comprobar sus medidas cuantitativas y propiedades cualitativas antes de que sea muy tarde para cambiarla.  La arquitectura debe permitir crear un esqueleto de sistema donde se reflejen todas las vías de comunicación pero con mínima funcionalidad.  El diseño de la arquitectura debe dar como resultado un conjunto específico de áreas críticas de consumo de recursos, cuya resolución estará claramente documentada y mantenida. Arquitectura de Software - Introducción
  • 22. ¿Cómo es una buena arquitectura? • Los módulos deben diseñarse con el principio de separación de intereses – distintos grupos de trabajo pueden desarrollarlos independientemente • La información oculta incluirá todo aquello dependiente de la infraestructura tecnológica. • Cada módulo tendrá una interfaz definida que oculta a los otros módulos los aspectos cambiables. • La arquitectura no debe depender de una versión particular de un producto comercial. De ser así, éste debe estar estructurado de modo que sea fácil y barato cambiarlo. Arquitectura de Software - Introducción
  • 23. ¿Cómo es una buena arquitectura? • Los módulos que producen y los que consumen datos deben estar separados: – esto tiende a aumentar la mantenibilidad porque en general sólo una parte cambia. • Cada tarea o proceso debe describirse de modo que su asignación a un procesador específico pueda ser fácilmente cambiada, aún durante su ejecución. • La arquitectura debe seguir uno o unos pocos patrones de interacción: – mayor comprensión, menor tiempo de desarrollo, mayor confiabilidad, mayor modificabilidad. Arquitectura de Software - Introducción
  • 24. Importancia de la Arquitectura • comunicación entre las personas involucradas, • documentación temprana de las decisiones de diseño, • restricción de la implementación, • la arquitectura dicta la estructura organizacional, • facilita o inhibe propiedades del sistema, • permite predecir cualidades del sistema, • facilita la administración de la evolución, • una abstracción transferible del sistema, • las líneas de productos comparten arquitectura, • puede usarse COTS (componentes software ya desarrollados y de índole comercial), • base para el entrenamiento de nuevo personal. Arquitectura de Software - Introducción
  • 25. Ejemplo - Grabadora IP  Una empresa desea desarrollar un software de grabación de conversaciones sobre telefonía IP para un centro de llamados.  Existen soluciones comerciales para esta funcionalidad, pero tienen altos costos de licencias.  La empresa quiere hacer este desarrollo para – usarlo en sus instalaciones – venderlo a otras empresas  Se desea que la aplicación tenga un módulo adicional para oír las conversaciones en tiempo real, eligiendo la operadora a través de una interfaz web. Arquitectura de Software - Introducción
  • 26. Grabadora IP: Stakeholders y Cualidades • Usuarios: operadoras – Desean que la grabadora no entorpezca su labor – Debe consumir pocos recursos para no constituir un cuello de botella • Cliente: dueño del centro de llamadas – Bajo costo y rápido desarrollo – Flexible para adaptarse a distintos centros de llamados – Escalable, portable • Marketing: encargado de venderlo – Fácil de instalar • Desarrolladores – Desarrollo en plataforma y tecnología conocida • Mantenedores – Desarrollo en plataforma y tecnología estándar Arquitectura de Software - Introducción
  • 27. Grabadora IP Arquitectura de Software - Introducción Operadoras Central IP Red telefónica exteriorCentro de Llamadas guardar sniffer
  • 31. Arquitectura: sistema empresarial en 3 capas. ¿Diagrama útil?
  • 32. AUTOSAR Architecture. ¿Están las capas realmente aquí?
  • 33. Otra arquitectura. ¿Es útil el diagrama?. (ciertamente, es muy bonito ☺)
  • 35. Y usted no necesita una herramienta de lujo, se puede utilizar un rotafolio (asumiendo que su escritura es legible!)
  • 38. cmp Components ReservaDAO IReservaDAO RequiredInterface ReservaBLL RequiredInterface com.mysql.jdbc Connection Librería de Java para conectarse a Mysql Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/database", "myLogin", "myPassword" ); Statement stmt = conn.createStatement(); SELECT INSERT UPDATE DELETE Lógica de negocio para una reserva app.ejemplo.View ReservaView app.ejemplo.controller ReservaController Capa de presentación getReservas() List<Reserva>