DOC PREVIEW
Toronto CSC 340 - Software Architectures

This preview shows page 1-2-3 out of 8 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 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 8 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 8 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 1XIX. Software ArchitecturesXIX. Software ArchitecturesSoftware ArchitecturesUML PackagesClient-Server vs Peer-to-PeerHorizontal Layers and Vertical Partitions3-Tier and 4-Tier ArchitecturesThe Model-View-Controller ArchitectureBroker Architectures for Distributed Systems© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 2Software ArchitecturesSoftware Architectures A software architecture defines the components of asoftware system and their inter-dependencies. For example, the client-serverclient-server architecture consists ofserversservers that support services, clientsclients that use services. With such an architecture, I/O is placed on clients, runningon PCs and workstations; data storage is assigned to aserver, implemented in terms of a DBMS (e.g., DB2) andplaced on a mainframe or mini. Consistency checking islocated with the server, applications run on clients.Thick serversThick servers offer a lot of functionality, thinthin ones little.Thick clientsThick clients have their own services, thinthin ones getalmost everything from servers.© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 3SubsystemsSubsystems A software subsystem is a component of a system orof another subsystem.Modules Modules oror components components are atomic subsystems It’s useful to subdivide software into subsystems For better-managed software development; For improved reuse (through components); For improved portability (platform-specific codeisolated to particular subsystems.) For easier maintenance. Each subsystem has a well-defined interface withrespect to the rest of the system.© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 4SystemSubsystemSubsystem SubsystemSubsystemSubsystemSubsystemSubsystemSubsystem...SubsystemSubsystemSubsystemSubsystemModuleModuleModuleModuleModuleModule.........componentOfModules/Components© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 5Components and ConnectorsComponents and Connectors The architecture shown in the previous slide is oneexample of a software architecture where nodesrepresent subsystems/modules and the connectorsrepresent componentOf relationships. There are many others kinds of connectors thatcan be used, such as:Uses -- one component uses data defined inanother component;Calls -- one component calls methods definedin another component;I/O -- the output of one component is fed asinput to another;© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 6The SoftwareThe SoftwareBookshelfBookshelf© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 7Architectural Styles It is useful to classify software architectures intoclasses of architectural styles. For example, theclient-server architecture discussed earlier is anarchitectural style. There are many architectural styles, e.g., pipes andfilters, object-orientation, event-based, layered,repository-based, client-server, three-tier,...others… We discuss here some architectures that relate toobject-oriented information systems.© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 8PackagesPackages A package in UML is a grouping of elements which: May be packages (e.g., subsystems or modules); May be classes. Each element of a software architecture (subsystem,module or class) is owned by a single package. There are many criteria for decomposing a softwaresystem into packages: Ownership -- who is responsible for what; Application -- e.g., a university dept model may bepartitioned into staff, courses, programmes,… Clusters of classes used together, e.g., course,course description, instructor, student,…© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 9A Package DiagramA Package Diagram A dependency means thatif you change a class inone package (Meetings),you maymay have to changesomething in the other(Constraints). The concept is similar tocompilation dependencies. It’s desirable to minimizedependency cycles, if at allpossible.PersonsMeetingsConstraintsdependency© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 10Decomposition into SubsystemsDecomposition into Subsystems A software system may be decomposed intohorizontal layershorizontal layers, and/or vertical partitionsvertical partitions. For a horizontal layer decomposition, each layercorresponds to one or more subsystems, and eachlayer uses services provided by the layers below it. Layered architectures have two forms:closed architecture - each layer only usesservices of the layer immediatebelow;open architecture - a layer can use services fromany lower layer.© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 11Closed Closed vsvs Open OpenLayered ArchitectureLayered Architecture© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 12 Closed layered architectures -- Minimize dependenciesbetween layers and reduce the impact of a change tothe interface of any one layer. Open layered architectures: Lead to more compact code, since the services of alllower layers can be accessed directly without theneed for extra program code to pass messagesthrough each intervening layer; Break the encapsulation of layers, increasedependencies between layers and increase thecomplexity of changes to the system.Closed Closed vsvs Open OpenLayered ArchitecturesLayered Architectures© 2004 John MylopoulosCSC340Information Systems Analysis and DesignSoftware Architectures -- 13Client Server Architectures A client server architecture consists of serviceconsumers (clients) and service providers(servers). Clients and servers may or may not berunning on dedicated machines. Information exchange between clients and servers isdone through messages. Server establishes connection with each client(possibly several), accepts messages fromconnected clients and responds to each.© 2004 John MylopoulosCSC340Information Systems Analysis


View Full Document

Toronto CSC 340 - Software Architectures

Documents in this Course
Scoping

Scoping

10 pages

Load more
Download Software Architectures
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 Software Architectures 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 Software Architectures 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?