Information Systems Analysis and Design CSC340 Information Systems Analysis and Design Software Architectures XIX Software Architectures Software Architectures UML Packages Client Server vs Peer to Peer Horizontal Layers and Vertical Partitions 3 Tier and 4 Tier Architectures The Model View Controller Architecture Broker Architectures for Distributed Systems 2004 John Mylopoulos Software Architectures 1 Information Systems Analysis and Design CSC340 CSC340 A software architecture defines the components of a software system and their inter dependencies For example the client server architecture consists of servers that support services clients that use services With such an architecture I O is placed on clients running on PCs and workstations data storage is assigned to a server implemented in terms of a DBMS e g DB2 and placed on a mainframe or mini Consistency checking is located with the server applications run on clients Thick servers offer a lot of functionality thin ones little Thick clients have their own services thin ones get almost everything from servers 2004 John Mylopoulos Software Architectures 2 Information Systems Analysis and Design CSC340 Subsystems System componentOf A software subsystem is a component of a system or of another subsystem Modules or 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 code isolated to particular subsystems For easier maintenance Each subsystem has a well defined interface with respect to the rest of the system Subsystem Subsystem Module CSC340 Module Module Software Architectures 3 Information Systems Analysis and Design Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Modules Components Module Module 2004 John Mylopoulos 2004 John Mylopoulos Module Software Architectures 4 Information Systems Analysis and Design CSC340 Components and Connectors The architecture shown in the previous slide is one example of a software architecture where nodes represent subsystems modules and the connectors represent componentOf relationships There are many others kinds of connectors that can be used such as Uses one component uses data defined in another component Calls one component calls methods defined in another component I O the output of one component is fed as input to another 2004 John Mylopoulos Software Architectures 5 The Software Bookshelf 2004 John Mylopoulos Software Architectures 6 Information Systems Analysis and Design CSC340 Information Systems Analysis and Design Architectural Styles Packages It is useful to classify software architectures into classes of architectural styles For example the client server architecture discussed earlier is an architectural style There are many architectural styles e g pipes and filters object orientation event based layered repository based client server three tier others We discuss here some architectures that relate to object oriented information systems 2004 John Mylopoulos Software Architectures 7 Information Systems Analysis and Design CSC340 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 software system into packages Ownership who is responsible for what Application e g a university dept model may be partitioned into staff courses programmes Clusters of classes used together e g course course description instructor student 2004 John Mylopoulos Constraints Meetings dependency A dependency means that if you change a class in one package Meetings you may have to change something in the other Constraints The concept is similar to compilation dependencies It s desirable to minimize dependency cycles if at all possible 2004 John Mylopoulos Software Architectures 9 Information Systems Analysis and Design CSC340 A software system may be decomposed into horizontal layers and or vertical partitions For a horizontal layer decomposition each layer corresponds to one or more subsystems and each layer uses services provided by the layers below it Layered architectures have two forms closed architecture each layer only uses services of the layer immediatebelow open architecture a layer can use services from any lower layer 2004 John Mylopoulos Software Architectures 10 Information Systems Analysis and Design Closed vs Open Layered Architecture CSC340 Closed vs Open Layered Architectures 2004 John Mylopoulos CSC340 Decomposition into Subsystems Persons Software Architectures 8 Information Systems Analysis and Design A Package Diagram CSC340 Software Architectures 11 Closed layered architectures Minimize dependencies between layers and reduce the impact of a change to the interface of any one layer Open layered architectures Lead to more compact code since the services of all lower layers can be accessed directly without the need for extra program code to pass messages through each intervening layer Break the encapsulation of layers increase dependencies between layers and increase the complexity of changes to the system 2004 John Mylopoulos Software Architectures 12 Information Systems Analysis and Design CSC340 Information Systems Analysis and Design Client Server Architectures Protocols for Communication A client server architecture consists of service consumers clients and service providers servers Clients and servers may or may not be running on dedicated machines Information exchange between clients and servers is done through messages Server establishes connection with each client possibly several accepts messages from connected clients and responds to each 2004 John Mylopoulos Software Architectures 13 Information Systems Analysis and Design CSC340 Information Systems Analysis and Design Interface response Application client request response Data Application layer may be placed with client fat client or the server fat server or split between them For example constraint checking may be done on the server side other applications are run on the client side Software Architectures 15 CSC340 Main Menu Panel Scheduling Panels Facility Mgt Panels Initialization Logic DB Interface Logic Configuration Panels User Mgt Panels Conflict Res Logic Payment Logic 2004 John Mylopoulos Processing Facility Mgt Logic User Mgt
View Full Document
Unlocking...