DOC PREVIEW
Toronto CSC 302 - Lecture 4 - Showing the Architecture

This preview shows page 1-2-24-25 out of 25 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 1Lecture 4:Showing the architecture Coupling and Cohesion UML Package Diagrams Software Architectural StylesUniversity of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 2Coupling and CohesionArchitectural Building blocks:A good architecture:Minimizes coupling between modules:Goal: modules don’t need to know much about one another to interactLow coupling makes future change easierMaximizes the cohesion of each moduleGoal: the contents of each module are strongly inter-relatedHigh cohesion makes a module easier to understandmodule moduleconnectorX3University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. Conway’s Law“The structure of a software systemreflects the structure of the organisationthat built it”University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 4PeopleSocio-Technical CongruenceCGBEFDALJHIKModules372564112108911See: Valetto, et al., 2007.University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5PeopleSocio-Technical CongruenceCGBEFDALJHIKModules372564112108911See: Valetto, et al., 2007.University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6Software ArchitectureA software architecture defines:the components of the software systemhow the components use each other’s functionality and dataHow control is managed between the componentsAn example: client-serverServers provide some kind of service; clients request and use servicesapplications are located with clientsdata storage is treated as a serverUniversity of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 73-layer architecturePresentation layerApplication Logic layerStorage layerJavaAWTAppl’nViewsContolobjectsBusinesslogicQueryEngineFileMgmntDBMSThisisnotUML!University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 8UML PackagesWe need to represent our architecturesUML elements can be grouped together in packagesElements of a package may be: other packages (representing subsystems or modules); classes; models (e.g. use case models, interaction diagrams, statechart diagrams, etc)Each element of a UML model is owned by a single packageCriteria for decomposing a system into packages:Ownershipwho is responsible for working on which diagramsApplicationeach problem has its own obvious partitions;Clusters of classes with strong cohesione.g., course, course description, instructor, student,…Or use an architectural pattern to help find a suitable decompositionUniversity of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 9Package Diagramsassetpresentation leasingpresentation UIframework leasingdomain assetdomain assetdata mapper leasing data mapper databaseUniversity of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 10 javaPackage notationutil util DateDate util java::util Date util Datejava::util::DateUniversity of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 11Towards component-based design control Button Check box <<interface>> OnOffturnOn()turnOff()isOn()isOff() Furnace::Heater Lighting::LightUniversity of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 12Or use Component Diagrams… Till Sales Server messagequeue transactionprocessor accountingdriver accountingsystem salesmessageUniversity of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 13Dependency cycles…University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 14Application Logic Layer PackageStorage Layer PackagePresentation Layer PackageArchitectural PatternsE.g. 3 layerarchitecture:PresentationLayerApplicationLogic LayerStorageLayerJava AWTApplicationWindowsControlObjectsBusinessObjectsObject toRelationalJDBCJava SQLUniversity of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 15Or to show the interfaces…Application Logic Layer PackageStorage Layer PackagePresentation Layer PackageJava AWTApplicationWindowsControlObjectsBusinessObjectsObject toRelationalJDBCJava SQL E.g. 3 layerarchitecture:PresentationLayerApplicationLogic LayerStorageLayerUniversity of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 16Pipe-and-filterExamples:UNIX shell commandsCompilers:Lexical Analysis -> parsing -> semantic analysis -> code generationSignal ProcessingInteresting properties:filters don’t need to know anything about what they are connected tofilters can be implemented in parallelbehaviour of the system is the composition of behaviour of the filtersspecialized analysis such as throughput and


View Full Document

Toronto CSC 302 - Lecture 4 - Showing the Architecture

Documents in this Course
Load more
Download Lecture 4 - Showing the Architecture
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture 4 - Showing the Architecture and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 4 - Showing the Architecture 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?