M3 - Programació estructurada / Continguts UF2: Disseny modular
De wikiserver
La revisió el 13:05, 8 març 2018 per Rsort (Discussió | contribucions)
Contingut
Descomposició funcional
- L’objectiu serà resoldre el problema general com a una suma de subproblemes més petits.
- La solució a cada subproblema s’anomena subrutina o subprograma, i a Java, mètode.
- Permet la reutilització del codi, facilita la seva lectura i el seu manteniment.
- Escriure codi més genèric facilita la seva reutilització.
Disseny descendent
- El mètode del disseny descendent consisteix en descompondre el problema a resoldre en altres més senzills. A aquests se'ls aplica el mateix procediment fins arribar a problemes prou petits que podem resoldre directament.
- Refinament de l’algorisme (stepwise refinement) és com es coneix aquest procediment de descomposició.
- Representació en forma d'arbre:
- - Cada node és un mòdul, o problema, o solució hipotètica.
- - Cada subarbre depenent d'aquest node es fa servir per a la resolució d'aquest subproblema.
- - El node del nivell més alt és el problema de partida.
- - L’algorisme serà correcte si la solució que es dóna a cada nivell ho és.
- - El programa es pot construir de sota a dalt creant primer procediments que resolguin els mòduls de detall que, un cop comprovats seran utilitzats per altres procediments més generals fins a arribar a la creació del programa.
Reutilització de subproblemes resolts
- La descomposició mitjançant disseny descendent permet reaprofitar la solució de subproblemes idèntics, o força semblants.
- Qualsevol subproblema d’un nivell donat pot ser part de qualsevol subproblema d’un nivell superior. Per remarcar
- En descompondre un problema, s'ha d'intentar fer-ho de manera que es forci l’aparició de subproblemes repetits, i així la seva resolució es pot reaprofitar en diversos llocs.