DOC PREVIEW
DREXEL CS 451 - _L7a Intro to Architecture(1)

This preview shows page 1-2-3-4-29-30-31-32-59-60-61-62 out of 62 pages.

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

Unformatted text preview:

Slide 1What is Software Architecture?Software Architecture: An AbstractionDoes Every System have an Architecture?Why is Software Architecture Important?Software Architecture IssuesDescriptions of ArchitecturesSoftware Architecture DescriptionsSlide 9Architectural StylesDescribing an Architectural StyleDetermining an Architectural StyleBenefits of Using StylesSome Common StylesShared Memory (or Blackboard) StyleShared Memory Style (cont’d)Shared Memory Style (cont’d)Shared Memory Style (cont’d)Example: Modern Compiler ArchitecturesPipe and Filter StylePipe and Filter Style (cont’d)Pipe and Filter Style (cont’d)Pipe and Filter Style (cont’d)Layered StyleLayered Style (cont’d)Layered Systems/Virtual MachinesLayered Style (cont’d)Layered Style (cont’d)Client-Server StyleClient-Server Style (cont’d)Client-Server Style (cont’d)Client-Server Style (cont’d)RPCs vs. ORBsClient-Server Style (cont’d)Client-Server Style (cont’d)Slide 36Interpreter StyleInterpreter Style ExamplesInterpreter Style (cont’d)Interpreter Style (cont’d)Interpreter Style (cont’d)Java Architecture (cont’d)Java Architecture (cont’d)Implicit Invocation StyleImplicit Invocation Style (Cont’d)Implicit Invocation Style (cont’d)Implicit Invocation AdvantagesImplicit Invocation DisadvantagesImplicit Invocation (cont’d)Publish-SubscribePublish-Subscribe (cont’d)Event-Based StyleDistributed Objects: CORBADistributed Objects: CORBA (cont’d)CORBA Concept and ImplementationCORBA Method RequestCORBA Method Request (cont’d)CORBA IDL and IIOPObject StubsObject SkeletonsServer Objects in CORBAObservationsCS 451Software EngineeringIntroductionto Software Architecture 12What is Software Architecture?•The software architecture of a computing system is the structure of the system.•The structure comprises:–Software components–Relationships between the components3Software Architecture: An Abstraction•An architecture is an abstraction of a system that suppresses details of components that do not affect how they:•Use•Are used by•Relate to•Interact with …other components.4Does Every System have an Architecture?•Yes.•For small systems the architecture may be trivial.•For large systems it definitely exists in the software product, but may not have been documented.5Why is Software Architecture Important?•Communication among stakeholders:–Customers, managers, designers, programmers.•Documentation of early design decisions:–Constraints on implementation–Organizational structure–Guides evolutionary prototyping•Transferable abstraction of a system to similar systems (reuse):–Program families share a common architecture–Architecture can be the basis for training.6Software Architecture Issues•Organization and global control structure.•Protocols of communication, synchronization, and data access.•Assignment of functionality to design elements.•Physical distribution of data and processes.•Selection among design alternatives.7Descriptions of Architectures•“Camelot is based on the client-server model and uses remote procedure calls both locally and remotely to provide communication among applications and servers.”•“We have chosen a distributed, object-oriented approach to managing information.”8Software Architecture Descriptions•Box-and-line diagrams do not describe the Software Architecture.•In box-and-line diagrams, readers imagine the behavior of each component by interpreting the labels of the boxes & lines.•A description of the behavior of each component is part of the architecture.•One must document the extent that a component’s behavior influences how another component must be written to interact with it.Architectural Styles of Software Systems10Architectural Styles •An Architectural Style defines a family of systems in terms of a pattern of structural organization. It determines:–The vocabulary of components and connectors that can be used in instances of that style –A set of constraints on how they can be combined. For example, one might constrain the execution semantics (e.g., processes execute sequentially).11Describing an Architectural Style•The architecture of a specific system is a collection of:–Components that perform some computation.•Procedures•Modules•Processes•Tools•Databases–Connectors that define the interactions between these components.•Procedure calls•Event broadcasts•Database queries•Pipes12Determining an Architectural Style•We can understand what a style is by answering the following questions:–What is the structural pattern? (i.e., components, connectors, constraints)–What is the underlying computational model?–What are the essential invariants of the style?–What are some common examples of its use?–What are the advantages and disadvantages of using that style?–What are some of the common specializations of that style?Benefits of Using Styles•Design reuse –Well-understood solutions applied to new problems•Code reuse–Shared implementations of invariant aspects of a style•Understandability of system organization –A phrase such as “client-server” conveys a lot of information•Interoperability–Supported by style standardization•Style-specific analyses–Enabled by the constrained design space•Visualizations–Style-specific depictions matching engineers’ mental models13Some Common Styles•Shared Memory•Pipe and filter•Layered•Client-Server•Interpreter•Implicit Invocation•CORBA1415 Shared Memory (or Blackboard) StyleShared DataMemoryMemory AccessComputationShared Memory Style (cont’d)•Two kinds of components–Central data structure — blackboard–Components operating on the blackboard•System control is entirely driven by the blackboard state•Examples–Typically used for AI systems–Integrated software environments –Compiler architecture16Shared Memory Style (cont’d)•Specializations:–Data structure in memory.–Data structure on disk.–Changes to the data structure trigger computations–Concurrent computations and data access17Shared Memory Style (cont’d)•Advantages:–Efficient way to store “large” amount of data.–Sharing model is published as the repository schema.–Centralized management of data.•Disadvantages:–Must agree of a data model a priori.–Difficult to distribute data.–Data evolution is expensive.1819Example: Modern Compiler ArchitecturesSymbol


View Full Document

DREXEL CS 451 - _L7a Intro to Architecture(1)

Download _L7a Intro to Architecture(1)
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 _L7a Intro to Architecture(1) 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 _L7a Intro to Architecture(1) 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?