Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pressman Cap 11
Pressman Cap 11
Estos son componentes de un sistema convencional (datos y procesos por separado again)
Esto es UML, diagrama de actividad, en el que se aprecia el nivel de seudocdigo del algoritmo.
Donde dice accesarBDCostos representa una interfaz de comunicacin con la base de datos.
11.1.3 Un concepto relacionado con el proceso
Habla de la necesidad de trabajar con componentes existentes, que se materializa por medio de
una catlogo de componentes que estn probados a nivel de diseo (seudocdigo) o de
cdigo. Se utilizan a medida que se avanza en el diseo. En la Arquitectura se eligen los
componentes o patrones de diseo (tienen una descripcin completa de la interfaz, funciones y
colaboracin que puede prestar o sea que hay que estudiarlos como si uno los programase, una
boludez).
se aplican 4
abstraccin que es fija. Pero el comportamiento del mdulo puede ser extendido
mediante la creacin de clases derivadas.
Conclusin: este pelotudo no sabe una mierda.
Principio de sustitucin de Liscov
Se pueden sustituir subclases por clases principales y seguir funcionando
apropiadamente. Tiene que ver con la herencia en las clases y la posibilidad de que un
mtodo pueda recibir cualquier objeto dentro de la estructura jerrquica. Para cumplir
esto es necesario realizar correctamente las herencias.
Principio de inversin de la independencia
Los mdulos de alto nivel no deben depender de los mdulos de bajo nivel. Ambos
deben depender de las abstracciones. Las abstracciones no deben depender de los
detalles. Los detalles deben depender de las abstracciones.
Cuanto ms dependa un componente de otros componentes concretos (no abstractos,
como la interfaz) ms difcil es extenderlos.
Principio de agregacin de la interfaz (ISP)
Es mejor muchas interfaces de cliente especficas que una sola de propsito general.
( internet )
El ISP no recomienda que cada clase que utilice un servicio tenga una propia clase
interfaz especial de la cual herede el servicio. Lo que indica es que los clientes han de
categorizarse por tipo y crear una interfaz para cada tipo de cliente. Si dos o ms tipos
diferentes de cliente necesitan el mismo mtodo, el mtodo ha de ser aadido en todas
las interfaces.
Principio de equivalencia entre reutilizacin y versin
Agrupar las clases reutilizables en paquetes que puedan manejarse y controlarse a
medida que evolucionan las versiones.
( internet )
La reutilizacin es uno de los ms aclamados principios del DOO. Sin embargo, la
reutilizacin no viene automticamente, no es tan simple como escribir una clase y decir
que es reutilizable. En primer lugar, una clase probablemente tendr una serie de clases
que colaboran con ella. Por tanto, la clase no es reutilizable por s sola, debe reutilizarse
en conjunto con las clases con las que colabora. Por otra parte, los desarrolladores con
reutilizacin no desean tener que mantener los cambios de las clases que ellos
reutilizan.
Por lo tanto se requiere un cierto mecanismo de distribucin de las nuevas revisiones.
Principio del cierre comn
Las clases que cambian juntas deben permanecer juntas. Para esto, las clases, deben
empaquetarse de manera que atiendan la misma rea de funciones o comportamientos.
( internet )
Los cambios que se realizan dentro de un conjunto de clases (paquete) que responde a un
comportamiento no debe extenderse hacia otros paquetes.
Principio comn de la reutilizacin
Las clases que un se reutilizan juntas, no deben agruparse juntas (formando el mismo paquete).
Si cambian una o ms clases en un paquete, tambin cambia el nmero de la versin del mismo.
11.2.2 Lneas generales de diseo al nivel de componentes
Estos son un conjunto prctico que se aplican a componentes, sus interfaces y las
caractersticas de dependencia y herencia que impactan en el diseo.
Componentes: los nombres para componentes deben asignarse mediante convenciones, en el
modelo arquitectnico salen del dominio del problema y deben ser entendibles por todos.
Interfaces: nos dan informacin sobre comunicacin y colaboracin.
1) Representacin de la interfaz mediante lnea y crculo(en lugar del de UML recuadro y lnea
de guiones).
2) Las interfaces deben fluir de izq a der, por razones de consistencia.
3) Solo se muestran las interfaces relevantes del componente en cuestin.
Dependencias y herencias: se modela la dependencia de izq a der y la herencia de abajo
(clases derivadas) hacia arriba (clases principales). Para mejorar las opciones de mantenimiento
del sistema las interdependencias entre los componentes se representan con interfaces.
11.2.3 Cohesin
Es la funcin nica de un componente, implica que un componente o una clase encapsula
atributos y operaciones (propiedades y funciones) relacionadas entre s y con la clase del propio
componente.
Tipos de cohesin ordenados segn su grado.
Funcional: (para operaciones) cuando un mdulo realiza un solo clculo y luego devuelve un
resultado.
De capa: (paquetes, componentes y clases) una capa superior tiene acceso a los servicios de
una inferior, pero no en sentido contrario.
De comunicacin: todas las operaciones (funciones) con acceso a los mismos datos se definen
dentro de una clase.
Los puntos mencionados anteriormente ayudan la implementacin, prueba y mantenimiento de
las clases. Existen otros casos donde se presentan niveles inferiores de cohesin:
Secuencial: para implementar una secuencia de operaciones, se agrupan los componentes de
forma que la salida de uno es la entrada del otro.
Procedimental: el llamado al proceso tiene que ser unvoco (apunte clase).
Temporal: las operaciones que se realizan reflejan un comportamiento o estado especfico,
ejemplo: todas la operaciones que se realizan cuando se detecta un error.
Utilitaria: componentes, clases y operaciones existen dentro de la misma categora pero no
tienen otra relacin.
11.2.4 Acoplamiento
La comunicacin y la colaboracin determinan el grado de conectividad entre las clases. A
medida que esta aumenta se complica la implementacin, prueba y mantenimiento de SW.
El acoplamiento es una medida cualitativa del grado en que las clases se conectan entre s.
Es necesario mantener el acoplamiento lo ms bajo posible.
Categoras de acoplamiento:
Acoplamiento del contenido: cuando un componente modifica datos internos del otro.
Acoplamiento comn: es cuando varios componentes usan una variable global.
Acoplamiento de control: se presenta cuando la operacin A (mtodo o funcin) invoca
(pasaje de parmetros entre los dos mtodos) la operacin B y le pasa una marca (bandera-flag)
de control a este. A dirige a B (controla)
Segn Argibel, A marca a B, mientras pasa esto, C no puede acceder a B y se produce error.
Acoplamiento de estampa: cuando claseB se declara como tipo para un argumento de una
operacin de calseA. Hace ms difcil la modificacin del sistema.
Acoplamiento de datos: se produce en el pasaje de largas cadenas de argumentos de datos,
aumenta el ancho de banda de la comunicacin entre clases, se hace difcil la prueba y
mantenimiento. Aumenta la complejidad de la interfaz.
Acoplamiento de llamada a rutina: cuando una operacin invoca a otra, si bien es necesario,
aumenta la conectividad del sistema (colaboracin y comportamiento).
Acoplamiento de uso de tipo: cuando el componente A usa un tipo de dato definido en el
componente B , si cambia la definicin del tipo, se debern cambiar todos los componentes que
usen esta definicin.
Segn Argibel: si A usa algo de B, debe identificar el cambio o cambiar el componente que lo va
a usar.
Acoplamiento de inclusin o importacin: cuando el componente A importa o incluye un
paquete o el contenido del componente B.
Acoplamiento externo: cuando un componente se comunica o colabora con componentes de
infraestructura. Debe limitarse a un nmero pequeo de componentes o clases.
11.3 CONDUCCIN DEL DISEO AL NIVEL DE COMPONENTES
La informacin del anlisis y los modelos arquitectnicos se deben transformar en una
representacin de diseo que proporcione detalles suficientes para guiar la codificacin y prueba
(construccin).
Conjunto de tareas tpicas para el diseo al nivel de componentes:
Paso 1. Identificar todas las clases del diseo que corresponden al dominio del
problema.
Se emplean lo modelos de anlisis (clase de anlisis) y los modelos arquitectnicos
(componentes arquitectnicos).
Paso 2. Identificar todas las clases de diseo que corresponden al dominio de la
infraestructura.
No se describen en el modelo del anlisis, tienen que estar en esta parte. Aqu se
agregan
componentes de: interfaz grfica de usuario, del sistema operativo, de administracin
de
objetos y datos, etc.
Paso 3. Elaborar todas las clases de diseo que no se adquieran como componentes
reutilizables
Hay que describir detalladamente: interfaces, atributos y operaciones de cada clase.
Aqu
Se debe tener en cuenta el tema de cohesin y acoplamiento, y lo visto en el punto
anterior (se lo llama heurstica).
Paso 3a.Especificar los detalles del mensaje cuando las clases o los componentes
colaboran. En
el modelo del anlisis como colaboran las clases entre s, mediante el diagrama de
colaboracin. Cuando se especifican (detallan) las estructuras de los mensajes que se
pasan entre los objetos del sistema para mostrar los detalles de las colaboraciones. Es
una
actividad opcional, pero sirve como base cuando se especifiquen las interfaces ( es la
manera en que colaboran y comunican los componentes (conectividad).
iteraciones (refinamiento paso a paso). /*en el libro dice interacciones, est mal,
adems est muy mal traducido, por eso no se entiende una mierda*/
En una primera iteracin se define la funcin, ejemplo: calcularCostoPapel().
En una segunda operacin se expande, ejemplo:
calcularCostPapel(peso, tamanio, color): numerico
los atributos son: peso, tamao y color, y numrico es el valor en pesos que devuelve.
La operacin realiza una sola funcin definida manteniendo un alto grado de
cohesin.