Mönster Ulf Cederling Växjö University UlfCederling@msivxuse http://wwwmsivxuse/~ulfce Slide 1
Beskrivningsmall Beskrivningsmallen är inspirerad av den som användes på AG Communication Systems (AGCS) Linda Rising: Introducerade mönster på AGCS i mitten av 90-talet (april 1995) Augusti 1994: 1 st Annual Conference of Pattern Languages of Program Design (Illinois) Fokus: State of the art beträffande mönsterbeskrivning Visade sig finnas en mängd uppsättning former, ansatser, skrivstilar och mönsterteman Pattern Language (pattern system) : A collection of patterns together with guidelines for their implementation, combination, and practical use Buschmann et al, Pattern-Oriented Software Architecture, A System of Patterns 1996 Slide 2
Mönsterspråk för systemtest The Test Organization Testing Efficiency Testing Strategy Problem Resolution The Tester s More Important Than The Test Cases Designers Are Our Friends Take Time Get Involved Early Time To Test Rising Linda, The Patterns Handbook: Techniques, Strategies, and Applications, Cambridge University Press 1998 Slide 3
Exempel - Mönsterbeskrivning Namn, Alias Problem Sammanhang Krafter Lösning Resulterande sammanhang Rationalitet Kända tillämpningar Besläktade mönster Skiss Författare, datum Referenser Exempel Slide 4
Namn Ord eller kort fras som beskriver det väsentliga i mönstret Beskriv problemet, lösningen, sammanhanget eller avsikten Ett bra namn möjliggör en förbättrad kommunikation i utvecklingsteamet, speciellt då man kan gissa avsikten med mönstret givet namnet TAKE TIME Slide 5
Alias Samma mönster kan existera på annat håll, i ett annat företag, eller i en publikation Experter kanske använder svårtolkade namn och ett alias kan bidra till att nybörjare bättre förstår vilket mönstret avser att lösa Exempel: Template Method fick efter en del diskussioner ett alias, Skeleton Method Slide 6
Problem En kort, fullständig mening som beskriver det problem mönstret ska lösa Kan formuleras som en fråga How much time should Designers be given to finish work that is behind schedule? Slide 7
Sammanhang Begränsningar, målgrupp, använda mönster, omfång etc, dvs allt som kan ogiltigförklara lösningen om dessa förutsättningar förändras Testing for an area is scheduled to start, design is not complete Remember that Designers Are Our Friends Slide 8
Krafter Förklara varför det är ett besvärligt problem Ofta motsägelsefullt, kan skapa spänningar: Vi vill ha nöjda kunder Vi har begränsade resurser Designers always want more time More effort up front usually produces a better product in the end Slide 9
Lösning Det bästa sättet att lösa problemet Tackla de viktigaste krafterna beroende på sammanhanget Bortse eventuellt från några krafter Håll målgruppen i minnet Give Designers the time they request, within reason It is Time To Test other areas in the mean time Slide 10
Resulterande sammanhang Vad händer om mönstret används, vilka krafter hanteras, vilka problem uppstår, föroch nackdelar? Att enbart lösa problemet är inte tillräckligt System testing will take less time if the design quality is better Slide 11
Rationalitet Varför lösningen löser problemet Sälj in mönstret, utbilda läsaren Higher quality systems take less time to test than poorer quality systems By giving Designers the time they truly need, there will be a significant pay-back in the end in avoiding the effort to test and fix all the problems in a poor quality system Increasing planned development time 15% cuts the number of defects in half (Remer, 1996) All the forces of Take Time and Time To Test must be carefully weighed before deciding which pattern to follow Remer D, Cost and schedule estimation for software development projects, UCLA 1996 Slide 12
Övriga delar Kända tillämpingar: A one- time occurrence is an event A double occurrence is a coincidence If it occurs more than twice, it s a pattern Jim Coplien/ Gerald Weinberg/ Bunny Duhl Besläktade mönster: Här omfattas både liknande mönster och mönster som på något sätt samverkar med det man för tillfället beskriver Skiss: Beskriv skissen om nödvändigt Slide 13
Övriga delar Författare Datum Referenser: Lista samtliga referenser Exempel: Ge ett exempel på implementationen av mönstret Vanligtvis på källkodsnivå Slide 14
Introduktion av mönster på AGCS Linda Rising introducerade mönster på AG Communication Systems (AGCS) i mitten av 90-talet (April 1995) Evalueringsfas: 1 Är mönster en teknologi värd att satsa på för AGCS? 2 Är mönstren i Design Patterns -boken värda en utbildningsinsats? Gamma et al, Design Patterns Elements of Reusable Object-Oriented Software 1995 Rekommendation: 1 Varje intresserad designer bör ha en kopia av Design Patterns -boken 2 Utbildning i dessa m önster bör erbjudas utvecklingsteamen för att förbättra kommunikation och designkunskap Slide 15
Introduktion av mönster på AGCS Beta-utbildning: 3 fulla dagar 1 full dag + 4 halvdagar People can t learn patterns without trying them People need to find them in their own problem domain Kursstruktur: Tillämpa designmönstren i Design Patterns -boken Betona förändringshantering (långsiktigt vidmakthållande och systemutvidgning) Integrera mönster i utvecklingsmodellen genom designgranskningar och dokumentation Observationer: Litet motstånd mot dessa nya begrepp Kunskap från olika applikationer (och programspråk) var mycket väsentligt för att kunna tillgodogöra sig mönsterteknologin Användning av mönster bidrar till en gemensam vokabulär som tillåter ett utvecklingsteam att fokusera på problem i stället för på implementationsdetaljer Slide 16