Uml principios de diseño de software
Principios de diseño
• • • • • • • • Divide y conquistarás Aumente la cohesión cuando sea posible Reduzca el acoplamiento en lo posible Mantenga elevado el nivel deabstracción Incremente la reutilización si es posible Haga diseños flexibles Anticípese a la obsolescencia Diseñe a la defensiva
1
Divide y conquistarás
• Manejar un gran problema complejo es másdifícil que manejar pequeños problemas simples. • Ventajas de dividir
– Grupos o personas separadas pueden trabajar en cada problema pequeño – Los ingenieros pueden especializarse para resolver problemasespecíficos – Cada componente de software será más pequeño y fácil de entender y mantener
Divide y conquistarás
• Formas de dividir la lógica de un sistema
– El sistema se distribuye en capas (ej.Cliente y Servidor) – Cada capa puede a su vez dividirse en subsistemas (paquetes, librerías) – Cada paquete se divide en módulos (clases) – Cada clase se divide en operaciones (métodos)
2Aumente la cohesión cuando sea posible
• Un subsistema o módulo tiene alta cohesión si solamente une elementos relacionados lógicamente entre sí • Un sistema compuesto por subsistemas altamentecohesionados será más fácil de entender y mantaner
Reduzca el acoplamiento en lo posible
• Los subsistemas se acoplan a través de sus interfaces. El acoplamiento no sólo es inevitable sino necesario • Lasinterfaces son contratos y crean dependencias entre subsistemas • Al cambiar la interfaz de un subsistema, muy posiblemente habrá que modificar los subsistemas que dependan de él
3
Reduzca elacoplamiento en lo posible
• La meta es mantener las interfaces lo más simples y pequeñas posibles para reducir al mínimo los efectos de sus modificaciones • También es importante que la red dedependencias tenga pocos “hilos”, es decir, que cada clase no dependa de muchas otras sino de una, o de pocas.
Mantenga elevado el nivel de abstracción
• Las abstracciones le permiten entender la...
Regístrate para leer el documento completo.