Videregående programmering i Java

Dag 3 - Avancerede komponenter

Javabønner fortsat

Designmønstret Observatør/Lytter

Fremlæggelse af emne for kursusopgave

Objektorienteret ananyse

Læsning: VP 4.7, VP 17.5

Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Valgfrie emner i kurset - status

Designmønstret Observatør/Lytter

(eng.: Observer/Listener)
eller Abonnent (eng.: Publisher-Subscriber)

('abonnere' på, at en ting (hændelse) sker)

Problem: Et objekt skal kunne underrette nogle andre objekter om en eller anden ændring eller hændelse, men det er ikke hensigtsmæssigt, at objektet kender direkte til de andre objekter.

Løsning: Lad lytterne (observatørerne) implementere et fælles interface (eller arve fra en fælles superklasse) og registrere sig hos det observable (observerbare) objekt. Det observable objekt kan herefter underrette lytterne gennem interfacet, når der er brug for det.

Designmønstret Observatør/Lytter

Eksempel: Fælles kalender for en forening, der udbyder foredrag

Hvis der sker ændringer i planen, skal kun de interesserede medlemmer have besked, dvs. de, som har tilmeldt sig et givent foredrag.

xxx Interface Observerbar slettes, MedlemsIF omdøbes til Observatoer

Karakteristika ved javabønner

Designmønstret Observatør/Lytter

Programkode til observabelt objekt (og javabønne)

Løsning: Adresseindtastning

Kursusopgaver - status

Faser i programudvikling

1) Kravene til programmet bliver afdækket.

2) Analyse - hvad det er for ting og begreber, programmet handler om.

3) Design - hvordan programmet skal fungere.

4) Programmering.

5) Afprøvning (test).

Forskellige metoder har vidt forskelligt tidsforbrug og antal gentagelser af faserne!

(Uigennemtænkt) programmering (3 min, gentag uendeligt)

Vandfaldsmodellen (3 måneder, gør kun én gang)

UP (Unified Process)

XP (Ekstremprogrammering)

Faser i programudvikling

OBS! Det følgende er ikke under Åben Dokumentlicens

Software Engineering

Software engineering is the systematic process of transforming requirements into high quality software, on time and at cost.

Software Engineering

The software development process involves:

Requirements

Capturing what the system should do.

Analysis

Refining and structuring the requirements.

Design

Realizing the requirements in system architecture.

Implementation

Building the software.

Test

Verifying that the implementation works.

Iterative and Incremental Process

Software development is an iterative process.

The requirements, analysis, design, implementation and test steps are repeated several times during the project.

Software development is an incremental process.

After each iteration, another part of the program is completed. The program gets larger, is incremented.

Iterative and Incremental Process

Requirements

Design

Implementation &

Test & Integration

& More Design

Final Integration

& System Test

Requirements

Design

4 weeks (for example)

The system grows

incrementally.

Feedback from

iteration N leads to

refinement and

adaptation of the

requirements and

design in iteration

N+1.

Iterations are fixed in

length, or

timeboxed

.

Time

Implementation &

Test & Integration

& More Design

Unified Process

Analysefase

Hvad det er for ting og begreber, programmet handler om

Redskaber til objektorienteret analyse

Skrive vigtige ord op

Brugssituationer (eng.: Use Case)

Aktivitetsdiagrammer, systemsekvensdiagrammer o.lign.

Skærmbilleder

Vi bruger nu 10 minutter til hvert punkt!

Fremlæggelse næste gang!

Skrive vigtige ord op

Skriv alle de navneord (i ental) eller ting op, man kan komme i tanke om ved problemet.

Ud for hver ting kan man notere eventuelle egenskaber (ofte tillægsord) og handlinger (ofte udsagnsord), der knytter sig til tingen.

Yatzyspil- antal spillere

Terning - værdi, kaste, holde

Raflebæger - kombination, ryste, holde

Blok - skrive spillernavn på, skrive point på

Spiller - navn, type (computer/menneske)

Computerspiller - strategi (dum/tilfældig, grådig, strategisk)

Menneskespiller

Regel (kunne også kaldes en mulighed eller et kriterium) - opfyldt, brugt, antal point

Lager - hiscore

Brugssituationer (eng.: Use Case)

Som diagrammer ---------->

På listeform (anbefales):

Primær aktør

Brugeren, hvis tur det er

Interessenter

Systemet

Tilstand før

Det er brugerens tur

Tilstand efter

Bruger har valgt felt i blokken og alle pointtal er opdateret

Hovedscenarie

Bruger trykker på "kast terninger"

Terninger, der ikke er holdt får en ny tilfældig værdi

Bruger vælger terninger der skal holdes
(punkt 1-3 gentages maks. 3 gange)

Systemet viser en liste af mulige felter i blokken

Bruger vælger et felt

...

Alternativer til hovedscenarie

2a. Alle terninger er holdt: Advarselsvindue dukker op: "Vil du afslutte kastene?"

Brugssituationer (eng.: Use Case)

Skabeloner til listeform

http://alistair.cockburn.us/usecases/usecases.html

http://usecases.org/

Aktivitetsdiagrammer, systemsekvensdiagrammer o.lign.

Skærmbilleder

Videregående programmering i Java

Præsentatoner fra kurset

2004-08-30T12:23:21