tag:blogger.com,1999:blog-107686332008-01-24T01:57:43.168+01:00Aprendre plegatsAntonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comBlogger32125tag:blogger.com,1999:blog-10768633.post-1116943766808765162005-05-24T16:02:00.000+02:002005-05-24T16:09:26.813+02:00ES2(40) Pla de la tretzena setmana<span style="font-size:85%;">Ja estem acabant el quadrimestre. Aquesta setmana farem:<br /></span> <ul> <li><span style="font-size:85%;">Dimarts dia 24: Recollim l'exercici 16.14 del recull, i demanarem voluntaris per explicar-nos les seves solucions.</span></li> <li><span style="font-size:85%;">Dijous dia 26: Problemes a classe.</span></li> <li><span style="font-size:85%;">Divendres dia 27: Darrera classe de teoria. És el Tema 8, Proves. No farem problemes d'aquest tema, però "entra" a la teoria del segon exercici de control (previst per al dia ) i a la de l'examen final. Ull. Abans es deia "qui avisa no és traïdor".</span><br /> </li> </ul>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1116496088830489222005-05-19T11:42:00.000+02:002005-05-19T11:48:08.833+02:00ES2(40) Pla de la dotzena setmana<span style="font-size:85%;">Aquesta setmana és més curta perquè el dimarts no era dimarts. La FIB dixit. Només ens veurem dos dies:<br /></span> <ul> <li><span style="font-size:85%;">Dijous dia 19. EJB: Farem els BMP i les relacions. Exercicis.</span></li> <li><span style="font-size:85%;">Divendres dia 20. Transaccions. Preguntes i exercicis.</span></li> </ul> <span style="font-size:85%;">Aquesta setmana no recollim cap exercici. Cal fer pel proper dimarts dia 24 l'exercici 14 del tema 16 del recull d'exercicis. Serà el novè exercici del curs, el darrer dels fets a casa.</span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1115888881752670512005-05-12T10:57:00.000+02:002005-05-12T11:08:01.790+02:00ES2(40) Què són els Session Contexts?<span style="font-size:85%;">Uns dels objectes importants dels Enterprise Java Beans (i que a l'assignatura no tenim gaire temps per explicar-los) són els anomenats EJB Context Objects. En particular, hi ha els EJB Session Context Objects. Us proposo que respongueu el següent:<br /></span> <ol> <li><span style="font-size:85%;">Què són els EJB Session Context Objects?.</span></li> <li><span style="font-size:85%;">Com estan definits? (atributs, operacions).</span></li> <li><span style="font-size:85%;">Qui els defineix?.</span></li> <li><span style="font-size:85%;">Qui els usa?. Per a què?. S'han d'usar sempre?.<br /> </span></li> <li><span style="font-size:85%;">Expliqueu un exemple concret (i raonable) d'ús d'aquests objectes en un cas particular.</span><br /> </li> </ol>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1115716716799301662005-05-10T11:11:00.000+02:002005-05-10T11:18:36.860+02:00ES2(40) Pla de l'onzena setmana<span style="font-size:85%;">Aquesta setmana iniciem el tema 7 (Disseny sobre plataformes de sistemes distribuïts). És el tema central de la segona part de l'assignatura. Esperem que us agradi. La teoria l'acabarem la setmana propera.<br /></span> <ul> <li><span style="font-size:85%;">Dimarts dia 10: Introducció, i fins a beans de sessió. Exercicis.<br /> </span></li> <li><span style="font-size:85%;">Dijous dia 12: Beans d'entitat. Exercicis.</span></li> <li><span style="font-size:85%;">Divendres dia 13: Farem un exercici a classe, que recollirem (serà el viutè).</span><br /> </li> </ul>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1115133295010077432005-05-03T17:11:00.000+02:002005-05-03T17:14:55.010+02:00ES2(40) Pla de la desena setmana<span style="font-size:85%;">Aquesta setmana només fem classe dos dies (el divendres és la festa de la FIB):<br /></span> <ul> <li><span style="font-size:85%;">Dimarts dia 3 de maig. Recollim els problemes de persistència en base de dades relacionals. Comentem solucions. Fem ampliacions dels exercicis.</span></li> <li><span style="font-size:85%;">Dijous dia 5 de maig. Teoria: Acabem el tema 6 amb la capa de presentació. Exercicis a classe.</span><br /> </li> </ul>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1114698663073283792005-04-28T16:19:00.000+02:002005-04-28T16:31:03.076+02:00ES2(40) Exercicis per al dia 3 de maig<span style="font-size:85%;">L'objectiu dels dos exercicis és el mateix: Dissenyar l'esquema d'una base de dades per a la persistència del sistema. Indiqueu les claus, les claus alternatives, les claus foranes i els atributs amb possible valor nul.<br />Els dos sistemes els hem fet durant el curs, a classe. El primer, concretament, és el de l'exercici de control. Suposem que els articles (matèries primeres o compostos) s'identifiquen pel codi de barres (Char(13)). Els diagrames de classe de sistema que hem d'usar són:<br /></span><ul> <li><span style="font-size:85%;">Composicions sense quantitat</span></li> </ul><br /><img alt="Diagrama de classes" src="http://www-lsi.upc.es/%7Eolive/fotos/Comp.gif" /><br /><ul> <li><span style="font-size:85%;">Composicions amb quantitat<br /> </span> </li> </ul><br /><img alt="Diagrama de classes" src="http://www-lsi.upc.es/%7Eolive/fotos/CompQ.gif" />Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1114528299555926242005-04-26T16:50:00.000+02:002005-04-26T17:11:39.556+02:00ES2(40) Patró Data Transfer Object (DTO)<span style="font-size:85%;">El tercer, i darrer, patró que us demanem d'aprendre autònomament és l'anomenat Data Transfer Object (DTO). També s'anomena Transfer Object o Value Object. Hi ha diversos llocs on podreu trobar informació d'aquest patró. Per exemple:<br /></span> <ul> <li><span style="font-size:85%;"><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpatterns/html/DesDTO.asp">MSDN Library</a>.<br /> </span></li> <li><span style="font-size:85%;"><a href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html">Sun</a>.</span></li> </ul> <span style="font-size:85%;">Si voleu, podeu usar aquesta entrada del blog per compartir el vostre estudi del tema. En particular, podeu mirar de respondre aquesta pregunta:<br /><span style="font-weight: bold;"><br /></span><span lang="CA" style="font-size: 12pt; font-family: "Times New Roman";"><blockquote>Expliqueu els trets principals del Patró de Disseny Data <u style="">Transfer</u> <u style="">Object</u> (<u style="">DTO</u>): en quin context s’aplica, quin problema vol resoldre i en què consisteix la solució que proposa. Ajudeu-vos d’un exemple il·lustratiu.</blockquote></span></span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1114523607133314642005-04-26T15:49:00.000+02:002005-04-26T15:53:27.133+02:00ES2(40) Pla de la novena setmanaAquesta setmana farem:<br /><ul> <li><span style="font-size:85%;">Dimarts dia 26: Disseny de la capa del domini. Exercicis.</span></li> <li><span style="font-size:85%;">Dijous dia 28: Disseny de la capa de gestió de dades/persistència. Exercicis. Anunci d'un exercici per al dimarts 3 de maig.</span></li> <li><span style="font-size:85%;">Divendres dia 29: Exercicis.</span><br /> </li> </ul>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1113906296470831502005-04-19T12:18:00.000+02:002005-04-19T12:24:56.470+02:00ES2(40) Pla de la vuitena setmana<span style="font-size:85%;">Aquesta setmana farem:<br /></span> <ul> <li><span style="font-size:85%;">Dimarts dia 19: El primer exercici de control.</span></li> <li><span style="font-size:85%;">Dijous 21: Comentaris i discussions sobre les diverses solucions del problema de l'exercici de control. A continuació farem un exercici a classe, que recollirem (serà el sisè dels 10 que hem de recollir).</span></li> <li><span style="font-size:85%;">Divendres 22: Comencem el tema 6 (Disseny orientat a objectes en UML). Farem la introducció i estudiarem l'arquitectura en capes.</span><br /> </li> </ul>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1113314846363025022005-04-12T16:02:00.000+02:002005-04-12T16:07:26.363+02:00ES2(40) Pla de la setena setmana<p><span style="font-size:85%;">Aquesta setmana farem exercicis per practicar els temes vistos fins ara, i per preparar-nos de cara a l'exercici de control del dimarts dia 19 d'abril:</span></p><ul><li><span style="font-size:85%;">Dimarts dia 12: Exercici a classe.</span></li><li><span style="font-size:85%;">Dijous dia 14: Exercici a classe.</span></li><li><span style="font-size:85%;">Divendres 15: Recollim exercici 9 del tema 12 del Recull d'exercicis. Es demanaran voluntaris per explicar la seva solució.<br /></span></li></ul>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1112964483590807802005-04-08T14:40:00.000+02:002005-04-08T14:48:03.593+02:00ES2(40) Estratègies<span style="font-size:85%;">Com ja sabeu, el programa de l'assignatura ES2 inclou tres patrons de disseny que els estudiants han d'aprendre pel seu compte. Un d'aquests patrons és el patró estratègia. Segons el diccionari, en esports l'estratègia és "Conjunt de regles, de jugades i de decisions mitjançant les quals un jugador o un equip de jugadors intenta d'aconseguir la vistòria o la solució" Què és en patrons de disseny de programari?.<br /><br />Si voleu, podeu usar aquesta entrada del blog per "aprendre plegats" aquest patró de disseny. Idees de coses que podeu comentar (si ho creieu útil):<br /></span><ol> <li><span style="font-size:85%;">Bibliografia que considereu bona.<br /> </span> </li><li><span style="font-size:85%;">Descriure què fa el patró.</span></li><li><span style="font-size:85%;">Indicar exemples d'utilització del patró.</span></li><li><span style="font-size:85%;">Quines alternatives hi ha a l'ús del patró. Val la pena usar el patró?.<br /></span></li> </ol> <span style="font-size:85%;">Mireu d'aprendre el patró abans del proper exercici de control (poden sortir-ne preguntes). Per altra banda, aviat el farem servir en els exercicis del curs.</span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1112959013891138432005-04-08T13:10:00.000+02:002005-04-08T13:16:53.893+02:00ES2(40) Exercici per al dia 15 d'abril<span style="font-size: 85%;"><span style="font-size:85%;">El dia 15 d'abril farem l'exercici 9 del Tema 12 (patró Observador) del recull d'Exercicis. L'exercici va de fans i d'ídols. S'ha d'usar el patró Observador. Maco de fer (espero). Farem tots els punts: (a), (b) i (c). Recollirem l'exercici en començar la classe, i demanarem voluntaris per explicar-nos llur solució. Aquest serà el tercer exercici dels fets a casa. En total n'hi haurà cinc d'aquests.</span><br /></span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1112711348727330542005-04-05T16:24:00.000+02:002005-04-05T16:29:08.726+02:00ES2(40) Pla de la sisena setmana<p><span style="font-size:85%;">Aquesta setmana farem:</span></p><ul><li><span style="font-size:85%;">Dimarts dia 5 d'abril: Patró representant (amb exercici).</span></li><li><span style="font-size:85%;">Dijous dia 7: Patró estat (amb exercici).</span></li><li><span style="font-size:85%;">Divendres 8: Recollim l'exercici 3 del tema 12 del Recull d'exercicis. Es demanaran voluntaris per explicar la seva solució. Ànim.</span></li></ul><p> </p>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1112362728332515362005-04-01T15:28:00.000+02:002005-04-01T15:38:48.333+02:00ES2(40) Exercici per al dia 8 d'abril<span style="font-size:85%;">El dia 8 d'abril farem l'exercici 3 del Tema 12 (patró Observador) del recull d'Exercicis. L'exercici va de Comissions i Reunions. S'ha d'usar el patró Observador. L'aplicació del model empenta (i altres patrons -que ja coneixeu-, i una mica d'imaginació -que ja teniu) permet solucions molt elegants. Qui vulgui, s'hi pot lluir. Farem només els punts (a), (b) i (c). El punt (d) i l'ampliació ho deixem per un altre dia.<br /><br /></span><span style="font-size:85%;">El dia 8 recollirem aquest exercici i en comentarem les solucions a la classe.</span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1112346899877273332005-04-01T10:59:00.000+02:002005-04-01T11:14:59.880+02:00ES2(40) Singletons<span style="font-size:85%;">El programa de l'assignatura ES2 inclou tres patrons de disseny que els estudiants han d'aprendre pel seu compte. La justificació és que hi ha molts patrons de disseny, que no els podem explicar tots a classe i que, per tant, és important que sapiguem aprendre nous patrons de manera autònoma.<br /><br />Un d'aquests patrons és el patró <span style="font-style: italic;">singletó</span>. En Matemàtiques, un singletó és un conjunt format per un sol element. Què és en patrons de disseny de programari?.<br /><br />Si voleu podeu usar aquesta entrada del blog per "aprendre plegats" aquest patró de disseny. Idees de coses que podeu comentar (si ho creieu útil):<br /></span><ol> <li><span style="font-size:85%;">Bibliografia que considereu bona.<br /> </span> </li> <li><span style="font-size:85%;">Descriure què fa el patró.</span></li> <li><span style="font-size:85%;">Indicar exemples d'utilització del patró.</span></li> <li><span style="font-size:85%;">És pot garantir que una classe no tindrà mai més d'una instància?. Com?.</span></li> <li><span style="font-size:85%;">És millor un singletó que una classe amb operacions (i atributs) de classe?. Per què?.</span></li> <li><span style="font-size:85%;">Té sentit definir subclasses de singletons?</span></li> </ol><span style="font-size:85%;">Mireu d'aprendre el patró abans del proper exercici de control (poden sortir-ne preguntes). Per altra banda, aviat el farem servir en els exercicis del curs.<br /></span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1112110237313754022005-03-29T17:21:00.000+02:002005-03-29T17:30:37.316+02:00ES2(40) El patró observador i el principi Obert-Tancat<span style="font-size:85%;">El principi Obert-Tancat, establert per en Bertrand Meyer diu que "Els mòduls haurien de ser alhora oberts i tancats". En el disseny orientat a objectes, les classes són la forma bàsica dels mòduls. Per tant, també podem dir que "Les classes haurien de ser alhora obertes i tancades".<br><br />La pregunta és: hi ha alguna relació entre aquest principi i el patró observador?. Argumenteu-ho i exemplifiqueu-ho.<br /></span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1112106185906018052005-03-29T16:19:00.000+02:002005-03-29T16:23:05.906+02:00ES2(40) Pla de la cinquena setmana<span style="font-size:85%;">Aquesta setmana farem:<br /></span><blockquote><span style="font-size:85%;">Dimarts dia 29 de març: Patró observador (amb exercici).<br />Dijous dia 31: Recollirem l'exercici anunciat. Es demanaran voluntaris per explicar la seva solució.<br />Divendres dia 1: Patró mètode plantilla (amb exercici).<br /> </span></blockquote>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1111626172441720762005-03-24T01:44:00.000+01:002005-03-24T02:11:51.136+01:00ES2(40) Exercici per al dia 31 de març<span style="font-size:85%;">Considereu el diagrama de classes següent:</span><br /><br /><img alt="Diagrama de classes" src="http://www-lsi.upc.es/%7Eolive/fotos/DiagramaCinema1.gif" /><br /><br /><br /><span style="font-size:85%;">Suposeu que el sistema inclou (entre d’altres) els dos casos d’ús (operacions del sistema) següents: </span><br /><span style="font-size:85%;">novaSessió (títol:String, sala:Sala, dia:Date, hora:Hora)<br /></span><blockquote><p><span style="font-size:85%;">pre: --en el cinema fan la pel·lícula<br />sala.cinema.pel·lícula.títol -> includes(títol)<br />post: --creem una sessió<br />let peli:Pel·lícula = Pel·lícula.allInstances ()-> any (p p.títol = títol) </span><span style="font-size:85%;">in<br />s.oclIsNew() and s.oclIsTypeOf(Sessió) and<br />s.entradesDisponibles = sala.capacitat and s.dia = dia and s.hora = hora and s.sala = sala and s.pel·lícula = peli<br /><br /></span></p></blockquote><br /><span style="font-size:85%;">OnLaFan (títol: String, dia:Date, preuMàxim:Diner) : Set(String)<br /><br /></span><span style="font-size:85%;"></span><blockquote><span style="font-size:85%;">body: -- dóna els noms dels cinemes (amb preu de les entrades inferior a preuMàxim) on fan la pel·lícula del títol indicat en el dia indicat i amb sessions on encara hi ha entrades<br />Pel·lícula.allInstances()-><br />select(p p.títol = títol).sessió -> select(s s.hiHaEntrades() and s.dia = dia).sala.cinema -> select(c preuMàxim > c.preuEntrada).nom ->asSet()<br /><br /></span></blockquote><span style="font-size:85%;">(Observeu que aquests contractes provenen de l’especificació del sistema i, per tant, no tenen en compte els aspectes propis del disseny com són la navegabilitat de les associacions o la visibilitat de les operacions, atributs i rols).<br /><br />Es demana:<br /><br /></span><span style="font-size:85%;"></span><blockquote><span style="font-size:85%;">1. Dissenyeu dos controladors del tipus transacció per a aquestes dues operacions del sistema.<br />2. Analitzeu la responsabilitat de les operacions executar dels dos controladors anteriors. Decidiu quins altres objectes intervindran en la seva execució. Documenteu amb diagrames de seqüència l’execució de les operacions executar. Aquests diagrames han de mostrar tots els objectes que intervenen directament o indirecta en l’execució, i les operacions que s’invoquen dels objectes que intervenen.<br />3. Completeu el diagrama de classes de disseny, mostrant totes les operacions que heu decidit en el punt anterior. Hi heu d’incloure les operacions constructores que hagueu definit (si és el cas), amb els seus paràmetres.<br /></span></blockquote><br /><span style="font-size:85%;">Notes:<br />Per fer aquest exercici es pot usar com a màxim un diccionari (per a les pel·lícules).<br />Les quatre associacions indicades al diagrama de classes tenen doble navegabilitat. </span><br /><span style="font-size:85%;">El dia 31 recollirem aquest exercici i en comentarem les solucions a la classe.</span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1111053385885445452005-03-17T10:43:00.000+01:002005-03-17T11:09:23.156+01:00ES2(40) Disseny clar o provable?<span style="font-size:85%;">No fa gaire, Michael Feathers ha publicat un <a href="http://www.martinfowler.com/ieeeSoftware/beforeClarity.pdf">article</a> a IEEE Software sobre la importància de la claredat en el disseny. Presenta un cas de disseny clar, però que és poc provable (en anglès "testable"). Conclou que la claredat és important, però que encara ho és més la capacitat de ser provable.<br />Us proposo que estudieu l'article i que comenteu quin és exactament el problema que descriu, per què es produeix el problema i com el resol. Esteu d'acord en la solució al problema concret?. Esteu d'acord en les conclusions generals que en treu l'autor?.</span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1110904095789820372005-03-15T17:24:00.000+01:002005-03-15T17:28:15.790+01:00ES2(40) Pla de la quarta setmana<span style="font-size:85%;">Aquesta setmana començarem el tema dels patrons de disseny. Estudiarem els patrons Iterador, Controlador i Assignació de responsabilitats a objectes. També estudiarem la normalització de l'esquema conceptual. Farem diversos exercicis. El divendres (dia 18) farem un exercici a classe que recollirem. Serà el segon dels exercicis que es recullen.</span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1110467170198035522005-03-10T15:53:00.000+01:002005-03-10T16:06:10.203+01:00ES2(40) Anem al cinema?<span style="font-size:85%;">Considereu l'exemple següent (totes les associacions tenen doble navegabilitat):<br /><br /></span><img src="http://www-lsi.upc.es/%7Eolive/fotos/DiagramaCinema1.gif" alt="Diagrama de classes" /><br /><br /><br /><span style="font-size:85%;">amb l'operació que, de moment, té el contracte:<br /><span style="font-weight: bold;">Context</span> Sessió::novaEntrada():Diner<br /><span style="font-weight: bold;"> pre</span>: hiHaEntrades()<br /> <span style="font-weight: bold;">post</span>: entradesDisponibles = entradesDisponibles@pre-1<br /> <span style="font-weight: bold;">post</span>: <span style="font-weight: bold;">return </span>= sala.dónaCinema().dónaPreuEntrada()<br /><br />En el futur, és possible que alguns cinemes vulguin que el preu de l’entrada no sigui el mateix per a totes les sessions, sinó que depengui de la pel·lícula que es projecta a la sessió. Alguns cinemes voldran continuar venent a preu únic, mentre que d'altres voldran vendre a preu diferent, segons quina pel·lícula s'emeti a la sessió.<br /><br /><br />1. Redissenyeu el sistema aplicant el principi Obert-Tancat (respecte d’aquest possible canvi). Especifiqueu les operacions que siguin noves, o que hagin canviat. Naturalment, no heu d'introduir encara el canvi indicat.<br /><br /><br />2. Indiqueu quin canvi caldrà introduir en el futur si és que, efectivament, algun dia algun cinema vol començar a vendre entrades amb preu diferent per pel·lícula.<br /><br /></span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1110292353049752502005-03-08T14:57:00.000+01:002005-03-08T15:32:33.053+01:00ES2(40) Una mica d'OCL<span style="font-size:85%;">Considereu el mateix exemple del dia anterior:</span><br /><br /><img src="http://www-lsi.upc.es/%7Eolive/fotos/Es2Dem.gif" alt="Diagrama de classes" /><br /><br /><br /><span style="font-size:85%;">amb les operacions:<br />context Persona::onVius():String<br />body: llocDeResidència.dónaNom()<br /><br />context Persona::onTreballes():String<br />body: empresa.onSituada().dónaNom()<br /><br />context Població::dónaNom():String<br />body: nom<br /><br />context Empresa::onSituada():Població<br />body: població<br /><br />Comenteu, si voleu, la resposta a almenys una (no és imprescindible totes) de les preguntes següents</span><span style="font-size:85%;">.<br />(Nota: En algun cas, potser s'han de fer canvis en el diagrama (o afegir-hi altres operacions) per tal de respectar les regles de navegabilitat i visibilitat, i la llei de Demeter. Indiqueu quins són)</span><span style="font-size:85%;"><br /><br /><br />1- Suposeu que les poblacions s'identifiquen pel seu nom. Com s'expressa això en OCL?.<br /><br /><br />2- Considereu l'operació: Empresa::hiTreballaGentDeFora():Boolean, que dóna True si l'empresa té un o més treballadors que viuen en una població diferent de la d'on està situada l'empresa. Com s'expressaria en OCL la postcondició d'aquesta operació?.<br /><br /><br />3- Considereu l'operació: Empresa::hiTreballaTotElPoble():Boolean, que dóna True si totes les persones que viuen a la població de l'empresa, treballen en l'empresa (hi pot haver també treballadors d'altres poblacions). Com s'expressaria en OCL la postcondició d'aquesta operació?.<br /><br /><br />4- Considereu l'operació: quantesPersonesViuenOnTreballen():Natural, que dóna el nombre de persones (pot ser zero) que tenim al sistema i que viuen i treballen a la mateixa població, sigui quina sigui aquesta població. Indiqueu en quina classe definiríeu aquesta operació, si seria operació de classe o d'instància, i com s'expressaria en OCL.<br /><br /><br /></span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1110289323388132822005-03-08T14:37:00.000+01:002005-03-08T14:42:03.390+01:00ES2(40) Pla de la tercera setmana<span style="font-size:85%;">Aquesta setmana ens dedicarem a fer exercicis sobre els quatre primers temes de l'assignatura.<br />El divendres (dia 11) farem un exercici a classe que recollirem (de qui el vulgui donar), i en comentarem les solucions. Aquest serà el primer exercici que recollirem, d'un total de 10 durant el quadrimestre (uns cinc fets a casa, i els altres a classe). Recordeu que per poder ser avaluats de participació cal presentar un mínim de cinc problemes.</span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1109946208394570982005-03-04T15:03:00.000+01:002005-03-04T15:23:28.396+01:00ES2(40) La llei de Demeter i l'acoblament<span style="font-size:85%;">Considereu l'exemple següent</span><br /><img src="http://www-lsi.upc.es/%7Eolive/fotos/Es2Dem.gif" ALT = "Diagrama de classes"><br /><span style="font-size:85%;">amb les operacions:<br />context Persona::onVius():String<br /> body: llocDeResidència.dónaNom()<br /><br />context Persona::onTreballes():String<br /> body: empresa.onSituada().dónaNom()<br /><br />context Població::dónaNom():String<br /> body: nom<br /><br />context Empresa::onSituada():Població<br /> body: població<br /><br />Les preguntes són:<br />1. Alguna d'aquestes operacions vulnera la llei de Demeter?.<br />2. Si és així, quines modificacions caldria fer per evitar-ho?.<br />3. (Si hi ha hagut modificacions) El disseny resultant té menys acoblament que l'original?<br /></span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.comtag:blogger.com,1999:blog-10768633.post-1109862346811933232005-03-03T15:59:00.000+01:002005-03-03T16:05:46.813+01:00ES2(40) Mètriques per mesurar l'acoblament<span style="font-size:85%;">A classe expliquem què és l'acoblament (coupling), però no proposem una manera concreta de mesurar-lo. Podria ser interessant veure quines mètriques s'han proposat per mesurar l'acoblament. Mireu de trobar-ne almenys una i digueu-nos:<br />- Qui la proposa?. Doneu les referències bibliogràfiques.<br />- En què consisteix?.<br />- Es pot calcular automàticament?.<br />- Us sembla útil mesurar l'acoblament d'aquesta manera?. Per què?<br /><br /></span>Antonihttp://www.blogger.com/profile/04179674020928991731noreply@blogger.com