SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
10.Diseño en el nivel de
Componentes
Ramiro Estigarribia Canese
¿Qué es el diseño a
nivel de componentes?
El diseño en el nivel de componentes define las
estructuras de datos, algoritmos y mecanismos de
comunicación asignados a cada componente del
software.
Antes de elaborar el software, tenemos que ser
capaces de determinar si funcionará.
➔ Se busca garantizar la corrección y la consistencia
con otras representaciones del diseño.
➔ Esto proporciona un medio para evaluar si
funcionarán las estructuras de datos, interfaces y
algoritmos.
¿Qué es un Componente?
Un componente es un bloque de construcción de
software.
La Especificación UML define un componente como:
“Es una parte modular, desplegable y sustituible de un
sistema, que incluye la implantación y expone un
conjunto de interfaces”.
Los componentes juegan un papel importante en el
éxito del sistema que se va a construir.
Visión Orientada
a Objetos
➔ Un componente contiene un conjunto de clases que
colaboran.
➔ Cada clase dentro de un componente se elabora
por completo para que incluya todos los atributos y
operaciones relevantes para su implantación.
➔ También deben definirse todas las interfaces que
permiten que las clases se comuniquen y
colaboren.
➔ Para lograr esto, se elaboran clases de análisis y
clases de infraestructura.
Módulos
Se conoce como módulo a una estructura
o bloque de piezas que, en una construcción, se
ubican a fin de hacerla más sencilla.
Tienen tres funciones importantes:
1. Coordina la invocación de los componentes del
dominio del problema.
2. Implanta una necesidad que requiere el cliente.
3. Es responsable de las funciones que dan apoyo al
procesamiento requerido en el dominio del
problema.
Ejemplo:
Sistema de Imprenta.
Considere un software que debe elaborarse para una
imprenta.
El objetivo es obtener los requerimientos que plantea
el cliente en el mostrador, presupuestar un trabajo de
impresión y después pasar éste a una instalación
automatizada de producción.
En la próxima figura: cada rectángulo representa
un componente del software.
Cada operación se representa como módulo aislado
que se invoca como se indica en la figura.
Para controlar el procesamiento se utilizan otros
módulos, por lo que son componentes de control.
Sistema de Imprenta.
Diagrama de componentes:
‘Compute Page Cost’.
El comportamiento del módulo se representa con un
diagrama de estado. Para ilustrar este proceso, considere
el módulo ‘Compute Page Cost’.
El objetivo de este módulo es calcular el costo de
impresión por página con base en las especificaciones
dadas por el cliente.
Los datos requeridos para realizar esta función son:
número de páginas en el documento, número total de
documentos que se va a producir, impresión por uno o dos
lados, color y tamaño.
El costo por página es inversamente proporcional al
tamaño del trabajo y directamente proporcional a su
complejidad.
Diagrama de componentes:
‘Compute Page Cost’.
Reutilización de
Componentes.
➔ En las últimas dos décadas, la comunidad de la
ingeniería de software ha puesto el énfasis en la
necesidad de elaborar sistemas que utilicen
componentes ya existentes.
➔ En esencia, a medida que avanza el trabajo de diseño
se dispone de un catálogo de diseño probado o de
componentes en el nivel de código.
➔ Como estos componentes fueron construidos teniendo
en mente lo reutilizable, se dispone totalmente de la
descripción de su interfaz, de las funciones que realizan
y de la comunicación y colaboración que requieren.
Principios básicos del
diseño
Hay cuatro principios básicos que son aplicables al
diseño en el nivel de componentes y que han
sido ampliamente aceptados para la aplicación de la
ingeniería de software orientada a objetos:
La motivación para aplicar estos principios es crear
diseños que sean más factibles de cambiar, así como
reducir la propagación de efectos colaterales cuando
se hagan cambios.
Estos principios pueden usarse como guía cuando se
desarrolle cada componente del software.
1.Principio Abierto-Cerrado
(PAC).
“Un módulo [componente] debe ser abierto para la
extensión pero cerrado para la modificación” [Mar00].
Este enunciado parece ser una contradicción,
pero representa una de las características más importantes
de un buen diseño en el nivel de componentes.
Dicho en pocas palabras, debe especificarse el
componente en forma tal que permita extenderlo (dentro
del dominio funcional a que está dirigido) sin necesidad de
hacerle modificaciones internas (en el nivel del código o de
la lógica).
Para lograr esto, se crean abstracciones que sirven como
búfer entre la funcionalidad que sea probable extender y la
clase de diseño en sí.
Ejemplo:
Sistema Casa Segura
La función de seguridad CasaSegura utiliza la clase
Detector que debe revisar el estado de cada tipo de sensor
de seguridad.
Es probable que, conforme pase el tiempo, crezca el
número y tipos de sensores de seguridad. Si la lógica de
procesamiento interno se implementa como una secuencia
de comandos si-entonces-en otro caso, cada uno dirigido
a un tipo diferente de sensor, cuando se agregue uno
nuevo se requerirá una lógica de procesamiento
interno adicional (otro si-entonces-en otro caso). Esto sería
una violación del PAC.
Ejemplo:
Sistema Casa Segura
2.Principio de sustitución de
Liskov.
“Las subclases deben ser sustituibles por sus clases
de base”.
Un componente que use una clase de base debe funcionar
bien si una clase derivada de la clase base pasa al
componente.
El PSL demanda que cualquier clase derivada de una
clase de base debe respetar cualquier contrato implícito
entre la clase de base y los componentes
que la usan.
En el contexto de este análisis, un “contrato” es una
precondición que debe ser verdadera antes de que el
componente use una clase de base y una poscondición
que debe ser ver dadera después de ello.
3.Liberación de la
Reutilización
➔ Cuando las clases o componentes se diseñan para
ser reutilizables, existe un contrato implícito que se
establece entre el desarrollador de la entidad
reutilizable y las personas que la emplearán.
➔ El desarrollador se compromete a establecer un
sistema que controle la liberación para que dé
apoyo y mantenimiento a las versiones anteriores
de la entidad mientras los usuarios se actualizan
poco a poco con la versión más nueva.
4.Principio de cierre común.
“Las clases que cambian juntas pertenecen a lo
mismo”. Las clases deben empacarse en forma
cohesiva.
Es decir, cuando las clases se agrupan como parte de
un diseño, deben estar dirigidas a la misma área de
funciones o comportamiento.
Cuando deba cambiar alguna característica de dicha
área, es probable que sólo aquellas clases que haya
dentro del paquete requieran modificación.
Esto lleva a un control de cambios y a un manejo de la
liberación más eficaces.
Componentes - Cohesión.
La cohesión implica que un componente o clase sólo
contiene atributos y operaciones que se relacionan
de cerca uno con el otro y con la clase o componente en sí.
Existen 3 categorías:
1. Funcional. Lo tienen sobre todo las operaciones; este
nivel de cohesión ocurre cuando un componente realiza
un cálculo y luego devuelve el resultado.
2. De capa. Lo tienen los paquetes, componentes y
clases; este tipo de cohesión ocurre cuando una capa
más alta accede a los servicios de otra más baja, pero
ésta no tiene acceso a las superiores.
3. De comunicación. Todas las operaciones que acceden
a los mismos datos se definen dentro de una clase.
Acoplamiento.
Es la medición cualitativa del grado en el que las
clases se conectan una con otra.
Conforme las clases (y componentes) se hacen más
interdependientes, el acoplamiento crece.
Un objetivo importante del diseño en el nivel de
componente es mantener el acoplamiento tan bajo
como sea posible.
I.S. basada en Componetes.
La ISBC (ingeniería del software basada en componentes,
CBSE) es un proceso que se centra en el diseño y
construcción de sistemas basados en computadora que
utilizan componentes de software reutilizables.
Objetivos de la ISBC:
• Desarrollar sistemas a partir de componentes ya
construidos.
• Desarrollar componentes como entidades reusables.
• Mantener y evolucionar el sistema a partir de la
adaptación y reemplazo de sus componentes.
Resumen y Conclusiones
➔ El proceso de diseño en el nivel de componentes
incluye una secuencia de actividades que reduce el
nivel de abstracción con el que se representa el
software.
➔ El diseño en el nivel de componentes ilustra al
software en un nivel de abstracción cercano al
código.
➔ El enfoque orientado a objetos se centra en la
elaboración de clases de diseño que provienen tanto
del dominio del problema como de la infraestructura.

Más contenido relacionado

La actualidad más candente

2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Jose R. Hilera
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de SoftwareRene Guaman-Quinche
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Joan Manuel Zabala
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoMarvin Zumbado
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseGuillermo Díaz
 
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
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?Software Guru
 

La actualidad más candente (20)

Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
UML
UMLUML
UML
 
DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
 
Gestión de riesgos de software
Gestión de riesgos de softwareGestión de riesgos de software
Gestión de riesgos de software
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 

Similar a 10.el diseño en el nivel de componentes

diseno Componente3.ppt
diseno Componente3.pptdiseno Componente3.ppt
diseno Componente3.pptrafael405074
 
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
 
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
 
Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docxKeiberOrtiz1
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Softwarealfmuny
 
Diseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetosDiseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetosFabiola Laguna
 
Tema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptTema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptRafaelAcedo2
 
Arquitectura del desarrollo del software
Arquitectura del desarrollo del softwareArquitectura del desarrollo del software
Arquitectura del desarrollo del softwareJose Morales
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxRunayli
 
Español estructurado
Español estructuradoEspañol estructurado
Español estructuradoJorge Garcia
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturasenlinea70
 
Introducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHPIntroducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHPJuan Belón Pérez
 
Monografia top sw
Monografia top swMonografia top sw
Monografia top swjamoca25
 

Similar a 10.el diseño en el nivel de componentes (20)

Nixon torrealbav
Nixon torrealbavNixon torrealbav
Nixon torrealbav
 
diseno Componente3.ppt
diseno Componente3.pptdiseno Componente3.ppt
diseno Componente3.ppt
 
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...
 
9.diseño de la arquitectura
9.diseño de la arquitectura9.diseño de la arquitectura
9.diseño de la arquitectura
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docx
 
Aplicaciones n–capas en visual net
Aplicaciones n–capas en visual netAplicaciones n–capas en visual net
Aplicaciones n–capas en visual net
 
Aplicaciones n–capas en visual net
Aplicaciones n–capas en visual netAplicaciones n–capas en visual net
Aplicaciones n–capas en visual net
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
 
Diseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetosDiseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetos
 
Tema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptTema 2.UML parte 1.ppt
Tema 2.UML parte 1.ppt
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Arquitectura del desarrollo del software
Arquitectura del desarrollo del softwareArquitectura del desarrollo del software
Arquitectura del desarrollo del software
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptx
 
Español estructurado
Español estructuradoEspañol estructurado
Español estructurado
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturas
 
Introducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHPIntroducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHP
 
Monografia top sw
Monografia top swMonografia top sw
Monografia top sw
 

Más de Ramiro Estigarribia Canese

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdfRamiro Estigarribia Canese
 

Más de Ramiro Estigarribia Canese (20)

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
Servicios web
Servicios webServicios web
Servicios web
 
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
 

Último

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 

Último (20)

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 

10.el diseño en el nivel de componentes

  • 1. 10.Diseño en el nivel de Componentes Ramiro Estigarribia Canese
  • 2. ¿Qué es el diseño a nivel de componentes? El diseño en el nivel de componentes define las estructuras de datos, algoritmos y mecanismos de comunicación asignados a cada componente del software. Antes de elaborar el software, tenemos que ser capaces de determinar si funcionará. ➔ Se busca garantizar la corrección y la consistencia con otras representaciones del diseño. ➔ Esto proporciona un medio para evaluar si funcionarán las estructuras de datos, interfaces y algoritmos.
  • 3. ¿Qué es un Componente? Un componente es un bloque de construcción de software. La Especificación UML define un componente como: “Es una parte modular, desplegable y sustituible de un sistema, que incluye la implantación y expone un conjunto de interfaces”. Los componentes juegan un papel importante en el éxito del sistema que se va a construir.
  • 4. Visión Orientada a Objetos ➔ Un componente contiene un conjunto de clases que colaboran. ➔ Cada clase dentro de un componente se elabora por completo para que incluya todos los atributos y operaciones relevantes para su implantación. ➔ También deben definirse todas las interfaces que permiten que las clases se comuniquen y colaboren. ➔ Para lograr esto, se elaboran clases de análisis y clases de infraestructura.
  • 5. Módulos Se conoce como módulo a una estructura o bloque de piezas que, en una construcción, se ubican a fin de hacerla más sencilla. Tienen tres funciones importantes: 1. Coordina la invocación de los componentes del dominio del problema. 2. Implanta una necesidad que requiere el cliente. 3. Es responsable de las funciones que dan apoyo al procesamiento requerido en el dominio del problema.
  • 6. Ejemplo: Sistema de Imprenta. Considere un software que debe elaborarse para una imprenta. El objetivo es obtener los requerimientos que plantea el cliente en el mostrador, presupuestar un trabajo de impresión y después pasar éste a una instalación automatizada de producción. En la próxima figura: cada rectángulo representa un componente del software. Cada operación se representa como módulo aislado que se invoca como se indica en la figura. Para controlar el procesamiento se utilizan otros módulos, por lo que son componentes de control.
  • 8. Diagrama de componentes: ‘Compute Page Cost’. El comportamiento del módulo se representa con un diagrama de estado. Para ilustrar este proceso, considere el módulo ‘Compute Page Cost’. El objetivo de este módulo es calcular el costo de impresión por página con base en las especificaciones dadas por el cliente. Los datos requeridos para realizar esta función son: número de páginas en el documento, número total de documentos que se va a producir, impresión por uno o dos lados, color y tamaño. El costo por página es inversamente proporcional al tamaño del trabajo y directamente proporcional a su complejidad.
  • 10. Reutilización de Componentes. ➔ En las últimas dos décadas, la comunidad de la ingeniería de software ha puesto el énfasis en la necesidad de elaborar sistemas que utilicen componentes ya existentes. ➔ En esencia, a medida que avanza el trabajo de diseño se dispone de un catálogo de diseño probado o de componentes en el nivel de código. ➔ Como estos componentes fueron construidos teniendo en mente lo reutilizable, se dispone totalmente de la descripción de su interfaz, de las funciones que realizan y de la comunicación y colaboración que requieren.
  • 11. Principios básicos del diseño Hay cuatro principios básicos que son aplicables al diseño en el nivel de componentes y que han sido ampliamente aceptados para la aplicación de la ingeniería de software orientada a objetos: La motivación para aplicar estos principios es crear diseños que sean más factibles de cambiar, así como reducir la propagación de efectos colaterales cuando se hagan cambios. Estos principios pueden usarse como guía cuando se desarrolle cada componente del software.
  • 12. 1.Principio Abierto-Cerrado (PAC). “Un módulo [componente] debe ser abierto para la extensión pero cerrado para la modificación” [Mar00]. Este enunciado parece ser una contradicción, pero representa una de las características más importantes de un buen diseño en el nivel de componentes. Dicho en pocas palabras, debe especificarse el componente en forma tal que permita extenderlo (dentro del dominio funcional a que está dirigido) sin necesidad de hacerle modificaciones internas (en el nivel del código o de la lógica). Para lograr esto, se crean abstracciones que sirven como búfer entre la funcionalidad que sea probable extender y la clase de diseño en sí.
  • 13. Ejemplo: Sistema Casa Segura La función de seguridad CasaSegura utiliza la clase Detector que debe revisar el estado de cada tipo de sensor de seguridad. Es probable que, conforme pase el tiempo, crezca el número y tipos de sensores de seguridad. Si la lógica de procesamiento interno se implementa como una secuencia de comandos si-entonces-en otro caso, cada uno dirigido a un tipo diferente de sensor, cuando se agregue uno nuevo se requerirá una lógica de procesamiento interno adicional (otro si-entonces-en otro caso). Esto sería una violación del PAC.
  • 15. 2.Principio de sustitución de Liskov. “Las subclases deben ser sustituibles por sus clases de base”. Un componente que use una clase de base debe funcionar bien si una clase derivada de la clase base pasa al componente. El PSL demanda que cualquier clase derivada de una clase de base debe respetar cualquier contrato implícito entre la clase de base y los componentes que la usan. En el contexto de este análisis, un “contrato” es una precondición que debe ser verdadera antes de que el componente use una clase de base y una poscondición que debe ser ver dadera después de ello.
  • 16. 3.Liberación de la Reutilización ➔ Cuando las clases o componentes se diseñan para ser reutilizables, existe un contrato implícito que se establece entre el desarrollador de la entidad reutilizable y las personas que la emplearán. ➔ El desarrollador se compromete a establecer un sistema que controle la liberación para que dé apoyo y mantenimiento a las versiones anteriores de la entidad mientras los usuarios se actualizan poco a poco con la versión más nueva.
  • 17. 4.Principio de cierre común. “Las clases que cambian juntas pertenecen a lo mismo”. Las clases deben empacarse en forma cohesiva. Es decir, cuando las clases se agrupan como parte de un diseño, deben estar dirigidas a la misma área de funciones o comportamiento. Cuando deba cambiar alguna característica de dicha área, es probable que sólo aquellas clases que haya dentro del paquete requieran modificación. Esto lleva a un control de cambios y a un manejo de la liberación más eficaces.
  • 18. Componentes - Cohesión. La cohesión implica que un componente o clase sólo contiene atributos y operaciones que se relacionan de cerca uno con el otro y con la clase o componente en sí. Existen 3 categorías: 1. Funcional. Lo tienen sobre todo las operaciones; este nivel de cohesión ocurre cuando un componente realiza un cálculo y luego devuelve el resultado. 2. De capa. Lo tienen los paquetes, componentes y clases; este tipo de cohesión ocurre cuando una capa más alta accede a los servicios de otra más baja, pero ésta no tiene acceso a las superiores. 3. De comunicación. Todas las operaciones que acceden a los mismos datos se definen dentro de una clase.
  • 19. Acoplamiento. Es la medición cualitativa del grado en el que las clases se conectan una con otra. Conforme las clases (y componentes) se hacen más interdependientes, el acoplamiento crece. Un objetivo importante del diseño en el nivel de componente es mantener el acoplamiento tan bajo como sea posible.
  • 20. I.S. basada en Componetes. La ISBC (ingeniería del software basada en componentes, CBSE) es un proceso que se centra en el diseño y construcción de sistemas basados en computadora que utilizan componentes de software reutilizables. Objetivos de la ISBC: • Desarrollar sistemas a partir de componentes ya construidos. • Desarrollar componentes como entidades reusables. • Mantener y evolucionar el sistema a partir de la adaptación y reemplazo de sus componentes.
  • 21. Resumen y Conclusiones ➔ El proceso de diseño en el nivel de componentes incluye una secuencia de actividades que reduce el nivel de abstracción con el que se representa el software. ➔ El diseño en el nivel de componentes ilustra al software en un nivel de abstracción cercano al código. ➔ El enfoque orientado a objetos se centra en la elaboración de clases de diseño que provienen tanto del dominio del problema como de la infraestructura.