Enginyeria del Software 2
Posted: Febrero 13th, 2009 | Author: Jose Raya | Filed under: | Comentarios desactivadosAquesta pàgina conté alguns enllaços i recursos d’utilitat per a l’assignatura d’Enginyeria del Software 2. La finalitat d’aquests enllaços és ajudar-vos en la tasca d’autoestudi completant el material explicat a classe amb referències per tal que pogueu explorar alguns temes amb informació de primera mà i que pogueu veure punts de vista alternatius.
A mesura que vagi afegint nous recursos us ho aniré comunicant a classe. De moment, podem començar amb uns quants enllaços sobre la bibliografia recomanada:
Introducció
Design Patterns: Elements of Reusable Object-Oriented Software
http://c2.com/cgi/wiki?DesignPatternsBook He triat aquest enllaç perquè em servirà per introduïr el wiki de Ward Cunningham i del Portland Pattern Repository, un lloc plè de discussions molt interessants sobre disseny i patrons.
Agile Software Development. Principles, Patterns and Practices
http://blog.objectmentor.com/articles/category/uncle-bobs-blatherings Blog de l’autor del llibre (Robert C. Martin)
Applying UML and Patterns
http://www.craiglarman.com Pàgina web de l’autor (Craig Larman)
Patterns of Enterprise Application Architecture
http://martinfowler.com/eaaCatalog/index.html Resum dels patrons del llibre a la web d’en Martin Fowler (autor del llibre). Molt interessant també la secció bliki de la seva pàgina web.
Disseny orientat a objectes
http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf Article d’en Robert C. Martin on parla de principis de disseny on explica molts dels principis que veiem a l’assignatura (per exemple, el principi Open-Closed) i alguns que no, com ara el principi de substitució de Liskov (Liskov Substitution Principle) que nosaltres veiem des del punt de vista del disseny per contracte (Design By Contract), el principi d’inversió de dependències (Dependency Inversion Principle) que aplicarem durant el curs en alguns punts concrets del temari o el principi de segregació d’interfícies (Interface Segregation Principle). De la resta si que en parlarem, tant dels principis d’arquitectura de paquets, que tracten la problemàtica de com agrupar les classes a la vista de desenvolupament com dels principis sobre l’acoblament entre paquets, ni que sigui per sobre, tot i que no entrarem massa en detall. Voldria afegir, però que alguns d’aquests principis, com ara el principi de dependències acícliques (Acyclic Dependencies Principle) o el principi d’estabilitat de dependències (Stable Dependencies Principle) els cobrirem sota el principi, més general, d’acoblament baix (Low Coupling). Fixeu-vos, però, que en Robert C. Martin no es limita a reduïr l’acoblament sino que fa una classificació per triar quins hem d’evitar a qualsevol preu i amb quins podem estar disposats a conviure.
Com a complement a l’article, podeu sentir al Robert C. Martin comentar els principis que apareixen a l’article (el principis SOLID) en un podcast, o sentir una rèplica una mica crítica (el podcast conté molt més que la rèplica, haureu d’avançar fins a la part on comenten els principis SOLID), la contrarèplica i la recapitulació
Un parell d’enllaços sobre ocultació d’informació (Information Hiding) i encapsulament. El primer, http://www.cs.umd.edu/class/spring2003/cmsc838p/Design/criteria.pdf us portarà a l’article del 1972 on en David Parnas va mencionar el terme per primer cop, el segon http://www.javaworld.com/javaworld/jw-05-2001/jw-0518-encapsulation.html parla sobre la diferència entre encapsulament i ocultació d’informació. En el nostre cas, el principi d’acoblament baix és una altra manera d’aconseguir la ocultació d’informació, per la qual cosa he considerat que us podrien ajudar.

