WVU, LCSEE CS 430 Fall 2007 Architectural Design PatternsWhat are patterns?Layered architectural stylePipe-and-FilterSplit/Join data streamsPipe-and-FilterShared Data StyleEvent-DrivenModel-View-Controller StyleBrokersFaçade PatternMediator patternProxy pattern1WVU, LCSEEWVU, LCSEECS 430CS 430Fall 2007Fall 2007Architectural DesignArchitectural DesignPatternsPatterns2What are patterns?What are patterns? First discussions about design patterns in late 80’s Most practical work started in mid 90’s A software design pattern is a model proposed for imitation in solving software design problems. Used at different levels of abstraction: Architectural design Mid level design (typically collaboration between classes) Data structures and algorithms Programming idioms3Layered architectural styleLayered architectural styleTypical organization for network protocols, operating systems, search and retrieval systems.4PipePipe--andand--FilterFilterTypically I/O transformation systems. If filters run concurrently, pipes Needed for synchronization.5Split/Join data streamsSplit/Join data streamsPipe-and-Filter comes in different topologies.6PipePipe--andand--FilterFilterAdvantages:Advantages:Filters easily modifiedFilters easily modifiedFilters can be easily rearranged and reusedFilters can be easily rearranged and reusedSupports concurrencySupports concurrencyDisadvantagesDisadvantagesDifficult to coordinate activities of filtersDifficult to coordinate activities of filtersFilters may have problems with varying and complex structures Filters may have problems with varying and complex structures of data streamsof data streamsError handling is difficultError handling is difficultSynchronization, while possible, may be difficultSynchronization, while possible, may be difficult7Shared Data StyleShared Data StyleFigure missingFigure missing8EventEvent--DrivenDriven9ModelModel--ViewView--Controller StyleController StyleModels: problem-domain functionsViews: Data DisplaysControllers: receive and carry out commands10BrokersBrokers11FaFaççade Patternade Pattern12Mediator patternMediator pattern13Proxy patternProxy
View Full Document