El diseño a nivel de componentes define las estructuras de datos, los algoritmos y las interfaces de cada componente de software para traducir el diseño arquitectónico en software operacional. Este proceso permite revisar que los detalles de diseño sean consistentes con las representaciones iniciales y que los componentes encapsulen su implementación y expongan un conjunto de interfaces.
El diseño a nivel de componentes define las estructuras de datos, los algoritmos y las interfaces de cada componente de software para traducir el diseño arquitectónico en software operacional. Este proceso permite revisar que los detalles de diseño sean consistentes con las representaciones iniciales y que los componentes encapsulen su implementación y expongan un conjunto de interfaces.
El diseño a nivel de componentes define las estructuras de datos, los algoritmos y las interfaces de cada componente de software para traducir el diseño arquitectónico en software operacional. Este proceso permite revisar que los detalles de diseño sean consistentes con las representaciones iniciales y que los componentes encapsulen su implementación y expongan un conjunto de interfaces.
El diseo a nivel de componentes se presenta a menudo despues que se ha terminado la
primera iteracion del diseo arquitectonico. y el objetivo de esta fase es traducir el diseo en software operaciona. El diseo 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 diseo son correctos y consistentes con las representaciones iniciales de diseo QE E! " #$%&$"E"'E( Es un bloque de construccion modular par el software de computo. una parte modular desplegable y reemplazable de un sistema que encapsula implementacion y e)pone 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 conte)to 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 *. componente de control que coordina la invocacion de todos los demas componentes del dominio del problema. +. un componente del dominio del problema que implementa una funcion parcial o completa requerida por el cliente. ,. 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 diseo a nivel de componentes utilizando %- ./!E0$ .E #$%&$"E"'E! 12!2.$! E" #-2!E! cuando se elige un metodo de ingenieria de software basado en componentes el nivel de diseo 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 diseo de componentes *. El principio abierto ceraddo &2# un modulo debe estar abiero para e)tenciones pero cerrado para modificaciones. +. &rincipio de sustitucion de -is3ov &!- debe tenerse la opcion de sustituir las subclases con sus clases principales. ,. &rincipio de la inversion de la dependencia &/. dependa de las abstracciones no de las concreciones, mientras un componentes dependa mas de de otros componentes concretos es mas dificil e)tenderlos. 4. &rincipio de la segregacion de la interfaz es mejor tener tener muchas interfaces especificas del cliente que una interfaz de proposito general. e)isten tambien principios de empaquetamiento los cuales son &rincipio de equivalencia entre reutilizacion y version, la esencia de la reutilizacion es la misma que la version &rincipio del cierre comun, las clases que cambian juntas deben mantenerse juntas &rincipio comun de la reutilizaicon  las clases que no se reutilizan juntas no deben mantenerse juntas E)isten distintas lineas generales que se pueden seguir durante el diseo de componentes *. los componentes deben definirse convensiones de asignacion de nombres, los cuales provengan del dominio del sistema y tener algun significado para los participantes +. 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 ,. las dependencias de izquierda a derecha y las herencias la clase principal arriba y deribadas abajo #$6E!/$" /mplica que un componente o una clase encapsula unicamente atributos y operaciones relacionadas estrechamente entre si y con la clase del propio componente. e)isten distintos tipos de cohesion 7uncional, cuando un modulo realiza un solo calculo y devuelve el resultado .e capa, cuando una capa superior tienen acceso a una inferior pero no al reves .e comunicacion, todas las operaciones con acceso a los mismos datos se definen dentro de una clase. !ecuencial, las operaciones estan agrupadas de manera que primero permita la entrada al siguiente y asis sucesivamente. &rocedimental 'emporal tilitaria 2#$&-2%/E"'$ 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. 2coplamiento comun 2coplamiento del contenido 2coplamiento de control 2coplamiento de estampa 2coplamiento de datos 2coplamiento de llamada a rutina 2coplamiento de uso de tipo 2coplamiento de incursion o aportacion 2coplamiento e)terno "$'2#/$" 8527/#2 .E- ./!E0$