Föreläsning 7 Programmeringsmetodik och programmering i ett objektorienterat språk, 5p 2004-11-16
Innehåll Svar på frågor från förra föreläsningen and the winner is Poster-tävlingen avgjord! OOA&D med CRC-kort CRC-häftet, Kapitel 6.2 F7 marie, kallin, jubo, thomasj 2004 2
Vad hette det på engelska? Överlagring = Overloading Två (eller fler) metoder med olika signatur Får vara deklarerade i samma klass Metodval beror på parameterlistan Omdefinition = Overriding Två (eller fler) metoder med samma signatur Deklarerade i olika klasser Originalversionen deklarerad i en superklass Omdefinitioner i olika subklasser Metodval beror på klasstyp F7 marie, kallin, jubo, thomasj 2004 3
Finns inte i Java Vän-klasser/Friend-klasser En lösning i C++ för att komma åt privata attribut En klass säger att den där klassen är min vän och får se/ändra mina attribut bryter idén med inkapsling och normalt inte en bra lösning Likheter/skillnader mellan C++ och Java finns på sidan http://lix.hisvux.se/martinf/kursinfo/java/cplusvsjava.html Obs! Sidan gammal, tar ej hänsyn till Java 1.5 F7 marie, kallin, jubo, thomasj 2004 4
and the Winner is 14 postrar som behandlade 6 olika delkapitel Betygsättning (1=inte alls bra till 5 = mycket bra!) Layout 3 betyg Val av färger och fonter Placering av rubriker, text och bilder Fördelning mellan text och bilder/grafer Innehåll 2 betyg Riktar sig postern till rätt läsare? Hur väl förstår man budskapet? En totalvinnare men först några hedersomnämnanden! Layout-gruppen, Innehålls-gruppen och Total-gruppen F7 marie, kallin, jubo, thomasj 2004 5
Layoutbetyget Poster 5: Fredrich Lindvall Erik Ramos Anders Rånes Olov Vikberg Kjell Winblad Jonas Wulff
Layoutbetyget Poster 12: Sara Johansson Tommy Jonsson Lovisa Pettersson Ann Rosenthal Thomas Sjödin Peter Sundqvist
Layoutbetyget Poster 6: Mika Adler Anne Drewett Jennifer Forssell Helena Gustavsson Helena Marklund Niklas Sandberg
Innehållsbetyget Poster 12: Sara Johansson Tommy Jonsson Lovisa Pettersson Ann Rosenthal Thomas Sjödin Peter Sundqvist
Innehållsbetyget Poster 9: Anders Berggren Magnus Häggkvist Sebastian Jansson Fredrik Nilsson Martin Nilsson John Talling
Innehållsbetyget Poster 6: Mika Adler Anne Drewett Jennifer Forssell Helena Gustavsson Helena Marklund Niklas Sandberg
Totalbetyget Poster 9: Anders Berggren Magnus Häggkvist Sebastian Jansson Fredrik Nilsson Martin Nilsson John Talling
Totalbetyget Poster 12: Sara Johansson Tommy Jonsson Lovisa Pettersson Ann Rosenthal Thomas Sjödin Peter Sundqvist
Totalbetyget Poster 6: Mika Adler Anne Drewett Jennifer Forssell Helena Gustavsson Helena Marklund Niklas Sandberg
OOA&D med CRC-kort Analys Förstå problemet/ uppgiften Utveckla en OO-modell av problemet Design Utveckla en OO-modell av lösningen Modeller underlättar kommunikation Oberoende av programspråk Abstraherar från oväsentliga detaljer Underlättar testning i tidigt skede CRC-kort UML (ett modelleringsspråk för OO utveckling) F7 marie, kallin, jubo, thomasj 2004 15
CRC-kort Class Responsibilities Collaborators Klass ansvar samarbetspartner Ett CRC-kort motsvarar en klassbeskrivning Bok: mängden av objekt som representerar böcker som kan lånas från biblioteket. Class: Bok Responsibilities vet om utlånad vet om försenad beräkna datum för återlämning Collaborators Datum Datum Informellt verktyg för att ta fram och utvärdera olika alternativ F7 marie, kallin, jubo, thomasj 2004 16
Grupparbete (4-6 personer) CRC- Metoden Hitta kandidatobjekt m.h.a. brainstorming Filtrera kandidatobjekten Skapa CRC-kort för kvarvarande kandidatobjekt Definiera scener för testning av modellen ( testfall) Förbereda gruppsessionen Spela in scener m.h.a. CRC-korten ( testning) Dokumentera scener m.h.a. RolePlay-diagram Uppdatera CRC-korten och scenerna F7 marie, kallin, jubo, thomasj 2004 17
RolePlay-diagram Uppdatera CRC-korten samtidigt som man bygger upp diagrammet. F7 marie, kallin, jubo, thomasj 2004 18
Klassdiagram (UML) När CRC-korten är någorlunda stabila kan de göras om till mera formella klassdiagram Game play() addplayer() deleteplayer() 5..* Die value roll() getvalue() 1..* Design 2..* Player name score playturn() getscore() rolls dice Cup getvalue() adddie() deletedie() ComputerPlayer playturn() F7 marie, kallin, jubo, thomasj 2004 19
Problemet: This application will support the operations of a technical library for a university department. This includes the searching for and lending of technical library materials, including books, videos, and technical journals. All library items have registration code (research area code + running number). Each borrower can borrow up to 10 items. Each type of library item can be borrowed for a different period of time (books 6 weeks, journals 3 days, videos 1 week). If returned after their due date, the employee will be charged a fine, based on the type of item (books 5:-/day, journals and videos 20:-/day). Materials will be lent to employees only if they have (1) no overdue lendables, (2) fewer than 10 articles out, and (3) total fines less than 100:-. F7 marie, kallin, jubo, thomasj 2004 20
Scenarios John Doe will borrow the book 1984; John Doe is a registered borrower in the system; currently he has not borrowed any items and has no outstanding fines. The book 1984 is available and not on loan. After borrowing, John Doe will be registered as borrower of 1984 and 1984 will have a valid return date. John Doe returns the book 1984 on time; John Doe is a registered borrower in the system; currently he has no outstanding fines. After borrowing, John Doe will no longer be registered as borrower of 1984. 1984 will no longer be on loan. Plus variationer på dessa! F7 marie, kallin, jubo, thomasj 2004 21