Utveckla en applikation Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar

Slides:



Advertisements
Liknande presentationer
HÄR BOR JAG Skogstrollen vt 2013
Advertisements

Hur kan vi arbeta mot mobbning. eller Hur kan vi arbeta för vänskap
Om ett ögonblick kommer Du in i en magisk värld!.
Varför är det viktigt att mäta?
Solanderskolan presenterar
Syo PRAO ver. 3.0 Välkommen till presentationen av Syo PRAO Vi kommer att gå igenom de flesta funktionerna i Syo PRAO.
Att skriva en argumenterande text
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Klasser och objekt.
Bäst i klassen En bok om lönsamt inneklimat Huvudbudskap
AU Digital samverkan LO Process
Att skriva en artikel.
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Fortsättningskurs i Programmering lektion 6
Klassarv och inkapsling
Next previous Refactoring och lite mönster kodade i Java Innehåll Vad är refactoring? Ett större refactoringexempel Några mönster kodade i Java OOMPA 2000.
Objektorienterad tänkande
En övning i att analysera ett tal
Alice in Action with Java
i olika programmeringsspråk
Föreläsning 4, Kapitel 4 Gruppera objekt Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Workshop inför Projektet
Föreläsning 2, Kapitel 2 Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Föreläsning 6, kapitel 6 Objekt som uppför sig som de skall Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes.
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Sid 41 Fordon int antalhjul; int vikt;
Datasamlingar och generiska enheter
Föreläsning 8, kapitel 8 Förbättra strukturen med arv Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Metodik för problemlösning Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar.
Vektorer (klassen Vector) Sortering
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
Linnéa. Gode Gud Jag skriver för att säga förlåt för att jag var arg igår när du ignorera mina böner och ingenting blev som jag ville.
Arv.
Programmeringsteknik för Media1 & K1
Att sälja Lions Quest-kurser till skolor /14.
1. Har du en idé? 2. LeaderGotland har projektpengar! 3. Är du under 25? 4. Vi hjälper dig till Triggerpengen!
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
OOPJ I, 5p Objektorienterad Programmering i Java.
Bygg strukturen Skapa en kunddatabas på företagsnivå
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Val av transport till resmålet.
Föreläsning 5, Kapitel 5 Använda Java-bibliotek för att få avancerad funktionalitet Kursbok: “Objects First with Java - A Practical Introduction using.
Föreläsning 14 ”Enkel” Filhantering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 11 J-uppgiften. Nästa period ägnas åt J-uppgiften. Den är individuell, dvs man jobbar på egen hand med uppgiften (inte tillsammans med labbkompisen).
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Java paket och jar-filer
Utvecklingsprocessen Webbutveckling. Utvecklingsprocessen Bli inte rädd för alla begrepp och alla verktyg man verkar behöva kunna. Du måste inte använda.
Introduktion till klasser, objekt och BlueJ Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
Föreläsning 10, kapitel 10 Abstrahera mera! Abstrakta klasser och interface Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”,
om företaget där du gör din praktik!
pedagogisk dokumentation
Föreläsning 3, Kapitel 3 Objektinteraktion - Skapa objekt som samarbetar Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David.
7. Delegerare och notifierare
Välkommen till kursen objektorienterad programmering med Java Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( )‏ Innehåll:Trådar: - Avbrott (”interrupts”)‏ - Metoden join()‏ Högnivå objekt för.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
Ett system är perfekt designat för att nå precis det resultat det alltid givit…Gäller det förbättringsarbete också?
Föreläsning 1 Introduktion till kursen. Algoritmer
OOP&M - teori1 OOP del II– Föreläsning 2 vecka 46 Konstruktorer Instansmetoder Kapitel 14 i kursboken.
Föreläsningsanteckningar Kortfattat om programmeringsmetodik Ola Ågren Hur det går till att göra ett program.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
4 processer att behärska:
RMI Av: Josefina & Sarah DS04.
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

Utveckla en applikation Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar Telefon Andreas Hedrén Telefon Föreläsning 13, Kapitel 14

Applikationen •Ett taxibolag funderar på att expandera •Är expansionen lönsam? •Hur många fordon kommer de att behöva?

Problembeskrivning •Företaget har ett antal taxibilar som används för att köra taxi (transportera en eller flera passagerare från en plats till en annan) och skyttel (transportera individer från olika platser till andra platser). •När en person, ett hotell, ett nöjesställe eller en turistorganisation ringer efter en taxi försöker företaget skicka en bil om det finns en ledig. •Det finns ingen kö, så det är endast om det finns några lediga bilar som bolaget tar körningen. •När en bil anländer till platsen för att hämta en person meddelas detta till företaget. Företaget meddelas sedan när körningen är avslutad.

Syfte •Syftet med modellering är att ge företaget statistik över: –Förlorade körningar –Utnyttjandegraden av varje taxi •Dessa faktorer kommer hjälpa oss att beräkna om det är lönsamt att expandera •Fokus här är dock att hitta klasserna och deras ansvar

Hitta klasser •Substantiv i singularis •Identifiera synonymer •Ta bort onödiga detaljer

Potentiella klasser och ansvar •Företag Har ett antal taxis och skyttlar Tar emot förfrågan om transport Bokar en bil •Bil Hämtar och släpper av passagerare Anländer till plats Meddelar företag vid ankomst •Taxi Transporterar passagerare mellan platser •Skyttel Transorterar flera oberoende passagerare mellan platser •Passagerare •Plats •Passagerarkälla Ringer företaget (Skapar passagerare)

Scenario •Hämta och lämna en passagerare PassagerarKälla Samarbetar med Skapa en passagerare Passagerare Begär en taxi TaxiFöretag Generera upphämtning Plats och destination

Designa klassers interface •Skapa klassernas interface (publika metoder) •Utgå från klassernas ansvar •Arbeta med ett antal scenarios (användarfall) •Fundera kring vilka klasser som känner till och skapar andra klasser

Relationer till andra klasser •Genom konstruktor: new PassengerSource(taxiCompany) •Genom en metod: taxiCompany.requestPickup(passenger) •Inom objektet: –Företagets bilar –Objekt som skapas inom objekt kan sedan skickas till andra klasser genom metoderna ovan

Implementation •När klassernas interface är färdiga kan man börja med implementationen •Implementationen kommer att visa om interfacet var korrekt –Räkna med att behöva förändra din design •Gör ett antal test som kan upprepas under utvecklingen. Även dessa måste ibland förändras när designen förändras

Iterativ utveckling •Dela upp problemet i mindre delar •Arbeta i små steg •Avsluta varje steg med en period av testning –Regressionstest –Åtgärda fel tidigt –Var beredd att hela tiden omvärdera din design –Att hitta fel tidigt är något positivt

Sammanfattning •Stabila program kräver att en genomtänkt process följs: –Analysera noga –Specificera tydligt –Designa genomtänkt –Implementera och testa inkrementellt –Granska, ändra och lär av det. Ingen är perfekt!

Det var sista föreläsningen Nu har vi tittat på: •Java syntax •Klasser och objekt •Javas klassbibliotek •Samlingar •Felhantering •Systemutvecklingsmetoder

Därefter kommer det nya saker •Filhantering •Grafikprogrammering •Multimedia •Trådar •Webtjänster •Databasprogrammering •Andra programmeringsspråk: –Python –C++ •Andra programmeringsparadigm –Procedurella språk – C, Pascal... –Deklarativa språk – Erlang, Prolog...