1 1 lecture 2 concepts of software architecture purposes/objectives major elements of s/w...

41
1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

Upload: grace-hood

Post on 11-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

11

Lecture 2 Concepts of Software Architecture

• Purposes/Objectives• Major Elements of S/W Architecture• Architecture Framework• Architectural Models/Patterns• Architecture Case Study

Software Architecture & Design Pattern

Page 2: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

22

Software Architecture

A high level abstraction and description to the structure and organization of software system, also a blueprint for software development and evolution.

Software Architectural Model

An expression of the viewpoint of software architecture, which is a rich, rigorous, and structural description on the software system’s elements, functions and interface.

Software Architecture & Design Pattern

Page 3: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

33

Why need software architectural model?

Software Architecture & Design Pattern

Page 4: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

44

Better? en ... not quite yet

Segment(from ssi)

AttributeDescription(from serializati...

ResourceDescription(from serializati...

HttpCredential(from ht...

PlainRemoteResource(from adm...

HtmlHead(from ht...

SampleMuxHandler(from m...

Stresser(from tes...

JigsawHttpSessionContext(from servl...

HtmlStyle(from ht...

AdminContext(from admin)

AuthUserPrincipal(from a...

IPMatcherNode(from au...

HttpBag(from ht...

HtmlGenerator(from ht...

DirectoryResource(from resourc...

FileResource(from resourc...

HttpEntityTag(from ht...

HttpManager(from ht...

CGIHeaderHolder(from fram...

Shuffler(from ht...

IndexersCatalog(from index...

ResourceIndexer(from index...

MuxClientFactory(from m...

ResourceContext(from resourc...

EventManager(from time...

ResourceStoreManager(from sto...

PropertySet(from conf...

FramedResource(from resourc...

ServerHandlerManager(from daem...

AdminWriter(from adm...

Serializer(from serializati...

RequestTimeout(from ht...

MimeType(from mime)

IPMatcher(from auth)

ExternalContainer(from resourc...

PICS(from pi...

SSIFrame(from s...

SSIStream(from s...

ArrayDictionary(from ut...

CommandRegistry(from comman...

VariantState(from NegotiatedFra...

SampleResourceIndexer(from index...

ProtocolFrame(from frames)

MimeClientFactory(from ht...

MimeParser(from mi...

DAVMimeClientFactory(from webd...

ResourceException(from resourc...

SocketOutputBuffer(from sock...

DebugThread(from sock...

ThreadCache(from ut...

SocketClientFactoryStats(from sock...

httpd(from http)

MuxSession(from m...

ResourceFilter(from resources)

HttpMimeType(from ht...

HttpTokenList(from ht...

ResourceReference(from resources)

HTTPPrincipal(from a...

ProxyRequestObserver(from pro...

ProfileRef(from cc...

HttpExtList(from ht...

Client(from http)

CCPPRequest(from cc...

Software Architecture & Design Pattern

Page 5: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

5

Much better --- your boss

would like to see

Hardware Abstraction Layer

Linux kernelperformance-differentiatedkernel scheduler

Cluster Applications

RTCS Application Framework API

Linux System Call

RTCSQueue

RTCSDispatcher

RTCSScheduler

RTCSMonitor

RTCSForwarder

RTCSEvent

RTCSClassifier

Software Architecture & Design Pattern

Page 6: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

66

Purposes/Objectives

• Identify critical components/subsystems of software system

• Describe relationship/interaction/interface of the components• Guide software design and bridge design and implementation• Identify key techniques/tools to implement software system

Software Architecture & Design Pattern

Page 7: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

77

Software Design Principles

• Decomposition and decoupling• Architectural model• Component interface/relationship• Data/object abstraction• Communication/network interface• Concurrency: multiprocess vs. multithread• Scalability

Software Architecture & Design Pattern

Page 8: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

88

Identify Major Components/Subsystems

• Component/Subsystem: a group of software units collectively providing certain function or service (module in C++ or package in Java)

• Organize or lay out functional units of a software system --- various architectural models

• Identify core modules/components or common features

Software Architecture & Design Pattern

Page 9: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

9

RTCS Architectural Model

Hardware Abstraction Layer

Linux kernelperformance-differentiatedkernel scheduler

Cluster Applications

RTCS Application Framework API

Linux System Call

RTCSQueue

RTCSDispatcher

RTCSScheduler

RTCSMonitor

RTCSForwarder

RTCSEvent

RTCSClassifier

Major Components

• upper application

• RTCS Framework

- storage class

- service class

- utility class

• O/S system call API

Major Functions• cluster resource management

• real-time scheduling

• responsive service

Software Architecture & Design Pattern

Page 10: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

1010

Relationship/Interface among Components

• Structural relationship

• Functional relationship

• Abstract class vs. Interface class

• Communication interface

- TCP/IP sockets

- RPC (Remote Procedure Call),

RMI (Remote Method Innovation)

- message passing

Software Architecture & Design Pattern

Page 11: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

1111

CORBA Architecture for Distributed System

Software Architecture & Design Pattern

Page 12: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

1212

Interface between Components

Software Architecture & Design Pattern

Page 13: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

1313

Guidance of Software Design

• Deposition of System - decoupling of data and presentation - spread functions among components - multiprocess or multithread

• Interface Design - external interface vs. internal interface - interface definition language/schema

• Interaction in Components/Subsystems - service consumer vs. service provider - synchronous call vs. asynchronous call - interaction protocols

Software Architecture & Design Pattern

Page 14: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

1414

Internet Protocol Design

- use layered architectural model to show the design

Win2K Linux LynxOS

Solaris VxWorks

Middleware

MiddlewareServices

MiddlewareApplications

MIDDLEWARE ARCH

21st Century

RTP

DNS

HTTP

UDP TCP

IP

NET

Ethernet ATM FDDI

Fibre Channel

FTP

INTERNETWORKING ARCH

TFTP

20th Century

Software Architecture & Design Pattern

Page 15: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

1515

Decomposition of System

- Decoupling an avionics system

Context Problems Solution

• I/O driven DRE application

•Complex dependencies

•Real-time constraints

•Tightly coupled components

•Hard to schedule

•Expensive to evolve

•Apply the Publisher-Subscriber architectural pattern to distribute periodic, I/O-drivendata from a single point of source to a collection of consumers

Software Architecture & Design Pattern

Page 16: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

1616

How to decouple functional units

Event

*

Subscriber

consume

creates receives

Event Channel

attachPublisher detachPublisherattachSubscriberdetachSubscriberpushEvent

Filter

filterEvent

Publisher

produce

Structure

attachSubscriberproduce

pushEventevent

eventpushEvent

consume

detachSubscriber

: Event

: Subscriber: Event Channel: Publisher

Dynamics

Software Architecture & Design Pattern

Page 17: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

1717

Context Problems Solution

•Mission computing requires remote IPC

•Stringent DRE requirements

•Applications need capabilities to:•Support remote communication•Provide location transparency•Handle faults•Manage end-to-end QoS•Encapsulate low-level system details

•Apply the Broker architectural pattern to provide platform-neutral communication between mission computing boards

Use architectural model to improve communication system design

Software Architecture & Design Pattern

Page 18: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

18

18

Platform-neutral and network-transparent communication architecture

operation (params)connect

send_request

marshal

unmarshaldispatch

operation (params)

result

marshal

receive_replyunmarshal

result

start_upregister_service

assigned port

Dynamics

: Broker: Client Proxy : Object Adapter: Client : Server

Software Architecture & Design Pattern

Page 19: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

1919

Software Architecture & Design Pattern

Page 20: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2020

Identify key techniques and development tools

• OOAD / CASE tool• Distributed System / Communication Protocols• Component-based / Interface• Concurrency / Multithreading• SOA / J2EE• 3-D / Graphics Toolkit• Real-Time / RTOS

Software Architecture & Design Pattern

Page 21: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2121

Major Elements of Architectural Model

• Elements/Connectors/Data - components (simple vs.

composite) - subsystems - layers

• Architectural Topology (diagrams) - configuration/layout

• Interaction/Association - component interface - communication interface - relationship

Software Architecture & Design Pattern

Page 22: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2222

Major elements – Component

A software component is an architectural building block that encapsulates a subset of functions and data, and restricts access to them via an explicitly defined interface.

Software Architecture & Design Pattern

Page 23: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2323

Major elements – Connector

A software connector is an architectural building block tasked with regulating interactions among components.

connector examples

- Procedure call connectors

- Shared memory connectors

- Message passing connectors

- Streaming connectors

- Distribution connectors

- Wrapper/adaptor connectors

Software Architecture & Design Pattern

Page 24: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2424

Major elements – Topology

The architectural topology captures architectural structure via graphs whose nodes representing components and connectors and edges representing interconnectivity.

Projectrepository

Designtranslator

Programeditor

Designeditor

Codegenerator

Designanalyser

Reportgenerator

Software Architecture & Design Pattern

Page 25: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2525

Interaction between Components

Software Architecture & Design Pattern

Page 26: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2626

Architecture Framework

A set of architectural views, design patterns, and methodology based on a certain type of architectural model

• 4+1 Views

• Zachman Framework

• DODAF (Dept. of Defense Architectural Framework)

• TOGAF (The Open Group Architecture Framework)

• RM-ODP (Reference Model of Open Distributed Processing)

Software Architecture & Design Pattern

Page 27: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2727

4+1 View Model/Framework

• Logic View

• Process View

• Deployment View

• Physical View

• Scenarios (Use Case)

Software Architecture & Design Pattern

Page 28: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2828

Logical View

Physical ViewProcess View

Development View

End user

System EngineerIntegrator

Programmers& software managers

Scenarios

Software Architecture & Design Pattern

Page 29: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

2929

Logical View

Viewer: End-userConsiders: Functional requirements- What the system should provide in terms of services to its users. Notation: Class diagramTool: CASE tool

Software Architecture & Design Pattern

Page 30: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3030

Logical View – class view

Software Architecture & Design Pattern

Page 31: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3131

Logical View – sequence diagram

Software Architecture & Design Pattern

Page 32: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3232

Logical View – communication diagram

Software Architecture & Design Pattern

Page 33: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3333

Logical View – state diagram

Software Architecture & Design Pattern

Page 34: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3434

Development View

Viewer: programmers and managers

Considers: software module organization

Style: layered style

Notation: UML

Software Architecture & Design Pattern

Page 35: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3535

Process View

Viewer: integrator

Considers: Non - functional requirements

(concurrency, performance, scalability)

Style: several styles

Software Architecture & Design Pattern

Page 36: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3636

Process View example

Software Architecture & Design Pattern

Page 37: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3737

Physical View

Viewer: system engineer

Considers: non-functional requirements regarding

hardware (computing node, network)

Notation: costumed

Software Architecture & Design Pattern

Page 38: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3838

Physical View example

Software Architecture & Design Pattern

Page 39: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

3939

Scenarios

Viewer: all users of other views and evaluators.Considers: system consistency, validityNotation: UML/Use CaseTool: CASE tool

Software Architecture & Design Pattern

Page 40: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

4040

Scenarios – Use Case diagram

Software Architecture & Design Pattern

Page 41: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns

4141

Questions?

Software Architecture & Design Pattern