Oversigt, principper og teknikker Forbind komponenter Oversigt, principper og teknikker Kapitel 14
Aktiviteter og resultat Modelkomponent Funktionskomponent Forbind komponenter Resultat: Et revideret klassediagram for systemets komponenter
Arkitektur og afhængighed En arkitektur omfatter afhængigheder mellem komponenter Implementeringen af disse afhængigheder skal designes De designes som forbindelser mellem klasser
Forbind klasser (1) Definering af klasser Ved specialisering «komponent» Bib Definering af klasser Ved specialisering Ved aggregering C A «komponent» Model D c:C B
Forbind klasser (2) Udveksling af meddelelser «komponent» Funktioner A «komponent» Model B
Mønster: Observatør Problem: Et antal afhængige objekter skal underrettes, når et objekt ændrer tilstand. Eksempel: Abonnentliste. Løsning: Opdeling i fire klasser efter ansvar. Subjekt Tilføj Fjern GivBesked observatører Observatør Opdatér 1 0..* for all o in observatører: o.Opdatér KonkretSub Tilstand HentTilstand subjekt KonkretObs Observeret-Tilstand Opdatér 1 1 ObserveretTilstand := subjekt.HentTilstand return Tilstand
Kobling Ideal: lav kobling To klasser/komponenter har høj kobling, hvis ændring i den ene kræver ændring i den anden Faldende koblingsgrad: Kobling fra siden (ikke Java) Kobling nedefra Kobling indefra Kobling udefra
Samhørighed Ideal: høj samhørighed Egenskaber ved høj samhørighed: Delene er begrebsmæssigt beslægtede Delene udgør funktionelle helheder Delene beskriver velafgrænsede tilstande Operationer bruger hinanden Opdeling af klasser eller komponenter med høj samhørighed fører til høj kobling
Vurdering af afhængigheder
Oversigt Formål Begreber Principper Resultat At forbinde et systems komponenter. Kobling: Et mål for, hvor tæt to klasser er forbundne. Samhørighed: Et mål for, hvor en klasse eller komponent hænger sammen. Høj samhørighed i klasser og lav kobling mellem komponenter. Et klassediagram med de involverede komponenter
Opgave 5: Forbind komponenter Formål At forbinde de komponenter, der er defineret og specificeret. Arbejdsform Se på afhængighederne mellem komponenter en for en. Overvej mulighederne for realisering af afhængigheden. Undersøg, om der er forbindelser, som bryder med de definerede afhængigheder. Overvej, om observatørmønsteret kan løse problemet. Resultat Et klassediagram med komponenter, klasser og forbindelser.