El diseño a nivel de componentes se presenta a menudo despues que se ha terminado la primera iteracion del diseño arquitectonico. y el objetivo de esta fase es traducir el diseño en software operaciona.
El diseño a nivel de componentes define las estructuras de datos, los algoritmos, las caracteristicas de la interfaz y los mecanismos de comunicacion asignados a cada componente de software. esta fase permite revisar si los detalles de diseño son correctos y consistentes con las representaciones iniciales de diseño
¿QUE ES UN COMPONENTE?
Es un bloque de construccion modular par el software de computo. una parte modular desplegable y reemplazable de un sistema que encapsula implementacion y expone un conjunto de interfaces.
desde el punto de vista orientado a objetos un componente es un conjunto de clases ques se interrelacionan entre si.
en el contexto convencional de ingenieria de software un componente es un elemento funcional que incorpora la logica del procesamiento y las estructuras internas de datos necesarios para implementar dicha logica y una interfaz que permita la invocacion del componente y el paso de los datos.
los componentes pueden ser de tres tipos
1. componente de control que coordina la invocacion de todos los demas componentes del dominio del problema.
2. un componente del dominio del problema que implementa una funcion parcial o completa requerida por el cliente.
3. un componente de infraestructura responsable de funciones que soportan el procesamiento requerido en el dominio del problema.
a continuacion se presenta un ejemplo de un diseño a nivel de componentes utilizando UML
DISEÑO DE COMPONENTES BASADOS EN CLASES
cuando se elige un metodo de ingenieria de software basado en componentes el nivel de diseño de estos se concentra en la elaboracion de clases de analisis y la definicion y afinacion de clases de infraestructura.
hay cuatro principios basicos basados en el nivel de diseño de componentes
1. El principio abierto ceraddo PAC un modulo debe estar abiero para extenciones pero cerrado para modificaciones.
2. Principio de sustitucion de Liskov PSL debe tenerse la opcion de sustituir las subclases con sus clases principales.
3. Principio de la inversion de la dependencia PID dependa de las abstracciones no de las concreciones, mientras un componentes dependa mas de de otros componentes concretos es mas dificil extenderlos.
4. Principio de la segregacion de la interfaz es mejor tener tener muchas interfaces especificas del cliente que una interfaz de proposito general.
existen tambien principios de empaquetamiento los cuales son
Principio de equivalencia entre reutilizacion y version, la esencia de la reutilizacion es la misma que la version
Principio del cierre comun, las clases que cambian juntas deben mantenerse juntas
Principio comun de la reutilizaicon PCR las clases que no se reutilizan juntas no deben mantenerse juntas
Existen distintas lineas generales que se pueden seguir durante el diseño de componentes
1. los componentes deben definirse convensiones de asignacion de nombres, los cuales provengan del dominio del sistema y tener algun significado para los participantes
2. interfaces proporcionan informacion importante acerca de la comunicacion y colaboracion, aun que al tener muchas se puede crear confucion en el diagrama uml por lo que se recomienda entre otras cosas al tener demasiadas usar circulos en ves de rectangulos y mostrar solo las mas importantes
3. las dependencias de izquierda a derecha y las herencias la clase principal arriba y deribadas abajo
COHESION
Implica que un componente o una clase encapsula unicamente atributos y operaciones relacionadas estrechamente entre si y con la clase del propio componente.
existen distintos tipos de cohesion
Funcional, cuando un modulo realiza un solo calculo y devuelve el resultado
De capa, cuando una capa superior tienen acceso a una inferior pero no al reves
De comunicacion, todas las operaciones con acceso a los mismos datos se definen dentro de una clase.
Secuencial, las operaciones estan agrupadas de manera que primero permita la entrada al siguiente y asis sucesivamente.
Procedimental
Temporal
Utilitaria
ACOPLAMIENTO
Es una medida cualitativa del grado al que las clases se conectan entre si a medida que las clases se vuelven mas interdependientes el acoplamiento aumenta.
Acoplamiento comun
Acoplamiento del contenido
Acoplamiento de control
Acoplamiento de estampa
Acoplamiento de datos
Acoplamiento de llamada a rutina
Acoplamiento de uso de tipo
Acoplamiento de incursion o aportacion
Acoplamiento externo
NOTACION GRAFICA DEL DISEÑO
El diseño a nivel de componentes define las estructuras de datos, los algoritmos, las caracteristicas de la interfaz y los mecanismos de comunicacion asignados a cada componente de software. esta fase permite revisar si los detalles de diseño son correctos y consistentes con las representaciones iniciales de diseño
¿QUE ES UN COMPONENTE?
Es un bloque de construccion modular par el software de computo. una parte modular desplegable y reemplazable de un sistema que encapsula implementacion y expone un conjunto de interfaces.
desde el punto de vista orientado a objetos un componente es un conjunto de clases ques se interrelacionan entre si.
en el contexto convencional de ingenieria de software un componente es un elemento funcional que incorpora la logica del procesamiento y las estructuras internas de datos necesarios para implementar dicha logica y una interfaz que permita la invocacion del componente y el paso de los datos.
los componentes pueden ser de tres tipos
1. componente de control que coordina la invocacion de todos los demas componentes del dominio del problema.
2. un componente del dominio del problema que implementa una funcion parcial o completa requerida por el cliente.
3. un componente de infraestructura responsable de funciones que soportan el procesamiento requerido en el dominio del problema.
a continuacion se presenta un ejemplo de un diseño a nivel de componentes utilizando UML
DISEÑO DE COMPONENTES BASADOS EN CLASES
cuando se elige un metodo de ingenieria de software basado en componentes el nivel de diseño de estos se concentra en la elaboracion de clases de analisis y la definicion y afinacion de clases de infraestructura.
hay cuatro principios basicos basados en el nivel de diseño de componentes
1. El principio abierto ceraddo PAC un modulo debe estar abiero para extenciones pero cerrado para modificaciones.
2. Principio de sustitucion de Liskov PSL debe tenerse la opcion de sustituir las subclases con sus clases principales.
3. Principio de la inversion de la dependencia PID dependa de las abstracciones no de las concreciones, mientras un componentes dependa mas de de otros componentes concretos es mas dificil extenderlos.
4. Principio de la segregacion de la interfaz es mejor tener tener muchas interfaces especificas del cliente que una interfaz de proposito general.
existen tambien principios de empaquetamiento los cuales son
Principio de equivalencia entre reutilizacion y version, la esencia de la reutilizacion es la misma que la version
Principio del cierre comun, las clases que cambian juntas deben mantenerse juntas
Principio comun de la reutilizaicon PCR las clases que no se reutilizan juntas no deben mantenerse juntas
Existen distintas lineas generales que se pueden seguir durante el diseño de componentes
1. los componentes deben definirse convensiones de asignacion de nombres, los cuales provengan del dominio del sistema y tener algun significado para los participantes
2. interfaces proporcionan informacion importante acerca de la comunicacion y colaboracion, aun que al tener muchas se puede crear confucion en el diagrama uml por lo que se recomienda entre otras cosas al tener demasiadas usar circulos en ves de rectangulos y mostrar solo las mas importantes
3. las dependencias de izquierda a derecha y las herencias la clase principal arriba y deribadas abajo
COHESION
Implica que un componente o una clase encapsula unicamente atributos y operaciones relacionadas estrechamente entre si y con la clase del propio componente.
existen distintos tipos de cohesion
Funcional, cuando un modulo realiza un solo calculo y devuelve el resultado
De capa, cuando una capa superior tienen acceso a una inferior pero no al reves
De comunicacion, todas las operaciones con acceso a los mismos datos se definen dentro de una clase.
Secuencial, las operaciones estan agrupadas de manera que primero permita la entrada al siguiente y asis sucesivamente.
Procedimental
Temporal
Utilitaria
ACOPLAMIENTO
Es una medida cualitativa del grado al que las clases se conectan entre si a medida que las clases se vuelven mas interdependientes el acoplamiento aumenta.
Acoplamiento comun
Acoplamiento del contenido
Acoplamiento de control
Acoplamiento de estampa
Acoplamiento de datos
Acoplamiento de llamada a rutina
Acoplamiento de uso de tipo
Acoplamiento de incursion o aportacion
Acoplamiento externo
NOTACION GRAFICA DEL DISEÑO
Comentarios