Ejemplos aplicados de flip flops para la ingenieria
Arquitectura depaquetes
1. > PAPER #2 < 1
Abstract - Design patterns are descriptions of related classes and
objects that are adapted to solve a general design problem in a given
context.
Design patterns in a series of criteria, which allow to give a superior
quality to the program.
Key Words: Design, Criteria, Packages, Classes.
Resumen – Las arquitecturas de diseño de paquetes son
agrupaciones de clases relacionadas que están adaptadas para
resolver un problema de diseño general en un contexto determinado.
Las arquitecturas de diseño de paquetes nos dan una serie de
criterios, que permiten dar una calidad superior al programa.
Palabras Clave: Diseño, Criterios, Paquetes, Clases.
I. INTRODUCCIÓN
Las clases son un medio necesario, pero insuficiente, para
organizar un diseño. La Granularidad de paquetes se necesita
para ayudar a poner orden. Pero, ¿cómo elegimos qué clases
pertenecen a qué paquetes?, ¿cómo podemos saber que está
bien diseñada la estructura de paquetes?
A continuación, se resuelven las dudas enunciadas desde la
perspectiva del libro Principles and Patterns de Robert C.
Martin.
II. DESARROLLO DE CONTENIDOS
En los principios de arquitectura de paquetes se encuentran
dos grandes apartados, que se muestran a continuación:
A. Principios de Cohesión de Paquetes
Este apartado establece que las clases en un mismo paquete se
usan juntas.
1. The Release Reuse Equivalency Principle (REP):
(principio de equivalencia de reutilización de liberación)
Un elemento reutilizable, ya sea un componente, una
clase o un grupo de clases, no puede ser reutilizado a
menos que sea administrado por un sistema de
liberación de algún tipo.
El autor debe llevar un registro de los números de
versión y versiones por un tiempo.
Por lo tanto, un criterio para agrupar clases en
paquetes es reutilizar. Dado que los paquetes son la
unidad de liberación, son también la unidad de
reutilización. En consecuencia, los arquitectos deben
agrupar las clases reutilizables en paquetes
2. The Common Closure Principle (CCP):
(Principio de cierre común)
Cuantos más Paquetes cambien en una versión dada,
mayor es el trabajo para reconstruir y probar al
momento de lanzamiento.
Por lo tanto, nos gustaría minimizar el número de
paquetes que cambian en cualquier ciclo de liberación
dado del producto.
Para lograrlo, agruparemos clases que pensamos
que cambiarán juntas.
3. The Common Reuse Principle (CRP):
(Principio de reusó común)
Si las clases que no se usan juntas se agrupan juntas.
Los cambios en clases que no tienen nada que ver con
el paquete, seguirán forzando una nueva versión del
paquete.
B. Principios de Acoplamiento de Paquetes
1. The Acyclic Dependencies Principle (ADP):
(Principio de dependencia acíclica)
Las dependencias entre paquetes no deben formar
ciclos cerrados.
2. The Stable Dependencies Principle (SDP):
(Principio de dependencia estable)
Las dependencias deben apuntar hacia la estabilidad,
entendiendo estabilidad como la cantidad de trabajo
necesario para realizar un cambio. Un buen camino
para hacer que un paquete sea difícil de cambiar, es
hacer que muchos paquetes dependan de él (muchos
paquetes inestables dependen de uno estable).
Métrica de estabilidad
I = Ce / (Ca + Ce)
Donde:
• Ca (Afferent Coupling): dependencias entrantes, es
decir, número de clases externas al paquete que
dependen de clases internas al paquete.
• Ce (Efferent Coupling): dependencias salientes, es decir,
número de clases internas que dependen de clases
externas.
• I: inestabilidad. Toma valores en el intervalo [0, 1].
Cuanto menor sea su valor, mayor es la estabilidad del
paquete.
Oscar Hernandez Cepeda – 20152020019
Universidad Francisco José de Caldas
Bogotá, Colombia.
ojhernandezc@correo.udistrital.edu.co
Principios de Arquitectura de Paquetes
2. > PAPER #2 < 2
Aplicación de la métrica en el paquete lógica
perteneciente al proyecto Figuras webs.
Figura 1. Proyecto Java Web Figuras dibujables
𝐼 =
0
(1 + 0)
= 0
3. The Stable Abstractions Principle (SAP):
(Principio de abstracción estable)
Los paquetes más estables deberían ser los paquetes
más abstractos o los que contienen más abstracciones.
Métrica de abstracción (abstractness)
A = Na / Nc
Donde:
• Nc: número de clases en el paquete.
• Na: número de clases abstractas o interfaces
en el paquete.
• A: abstracción (abstractness). Toma valores
en el intervalo [0, 1].
Aplicación de la métrica en el paquete lógica
perteneciente al proyecto Figuras webs (Figura 1).
𝐴 =
1
4
= 0.25
III. VENTAJAS
• Todas estas métricas miden características
de una arquitectura y nos pueden ayudar a
analizar y cuantificar la estructura de
dependencias de una aplicación.
Aplicar los principios de diseño de paquetes
permiten:
• Alargar la vida útil del código.
• Brindar soporte fácilmente al código.
IV. CONCLUSIONES
Al aplicar principios de arquitecturas de paquetes nos
aseguramos de dar calidad al programa, pues un programa
bien estructurado permite dar mayor facilidad de comprensión,
y extensión.
Las ideas fundamentales del texto de Robert Martin son:
• Agrupar las clases reusables en paquetes que se
puedan administrar y controlar.
• Clases que cambian juntas pertenecen a un mismo
grupo.
• Clases que no son rehusadas juntas no deben ser
agrupadas.
• La dependencia entre paquetes no debe formar ciclos.
• Entre más clases abstractas, mayor estabilidad del
código.
REFERENCIAS
[1] Robert C Martin (2000), Principles and Patterns.
First Author: Oscar Javier Hernandez Cepeda, estudiante
Ingeniería de Sistemas Universidad Distrital Francisco José de
Caldas, Bogotá.