a procedure for designing abstract interfaces for device interface modules

19
A Procedure for A Procedure for Designing Abstract Designing Abstract Interfaces for Device Interfaces for Device Interface Modules Interface Modules Presented By: Presented By: Andy Mroczkowski Andy Mroczkowski Dan Talaber Dan Talaber Tracy Xie Tracy Xie Joshua Wetzel Joshua Wetzel David Parnas

Upload: fennella-peppard

Post on 31-Dec-2015

18 views

Category:

Documents


1 download

DESCRIPTION

A Procedure for Designing Abstract Interfaces for Device Interface Modules. Presented By: Andy Mroczkowski Dan Talaber Tracy Xie Joshua Wetzel. David Parnas. Overview. Definitions Examples of Device Interface: Car JINI Embedded Real-Time Controller Summary Questions?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: A Procedure for Designing Abstract Interfaces for Device Interface Modules

A Procedure for Designing A Procedure for Designing Abstract Interfaces for Device Abstract Interfaces for Device

Interface ModulesInterface ModulesPresented By:Presented By:

Andy MroczkowskiAndy MroczkowskiDan TalaberDan Talaber

Tracy XieTracy XieJoshua WetzelJoshua Wetzel

David Parnas

Page 2: A Procedure for Designing Abstract Interfaces for Device Interface Modules

OverviewOverview

DefinitionsDefinitions Examples of Device Interface:Examples of Device Interface:

Car Car

JINIJINI

Embedded Real-Time ControllerEmbedded Real-Time Controller SummarySummary Questions?Questions?

Page 3: A Procedure for Designing Abstract Interfaces for Device Interface Modules

DefinitionsDefinitions

UserProgram

AbstractInterface

Device InterfaceModules 1

HardwareInterface

Legend:

Device 1

: software : interface : hardware

AbstractInterface

Device InterfaceModules 1

HardwareInterface Device 1

Page 4: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Car Example Car Example

Page 5: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Car ExampleCar Example

DrivingDriving

OperateCar

BrakePedal

BrakeController

BrakeLine

Brakes

Accelerator ThrottleController

Fuel Engine

SteeringWheel Steering system

SteeringColumn

WheelAngle

Page 6: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Car ExampleCar Example

BrakingBraking

BrakePedal Brake Controller

BrakeLine

DiscBrakes

BrakePedal ABS Controller

BrakeLine

DiscBrakes

OperateCar

Page 7: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Car ExampleCar Example

BrakingBraking

BrakePedal Brake Controller

BrakeLine

DiscBrakes

BrakePedal

BrakeLine

Perform-ance

Brakes

OperateCar

Brake Controller

Page 8: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Car ExampleCar Example

Design ApproachDesign Approach Assumption List Characterizing the Virtual Assumption List Characterizing the Virtual

DeviceDevice ““The device provides a mechanism which slows The device provides a mechanism which slows

the car at variable rates.”the car at variable rates.”

Programming Constructs Embodying the Programming Constructs Embodying the AssumptionsAssumptions INCREASE_BRAKINGINCREASE_BRAKING DECREASE_BRAKINGDECREASE_BRAKING

Page 9: A Procedure for Designing Abstract Interfaces for Device Interface Modules

JiniJini

What is Jini?What is Jini? A dynamic distributed computing architecture A dynamic distributed computing architecture

that provides spontaneous networking that provides spontaneous networking between clients and services.between clients and services.

Effective use of abstract interfaces and device Effective use of abstract interfaces and device interface modules.interface modules.

Page 10: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Clients

Services

Lookup Service Proxies

Jini Architecture in a Nutshell

Page 11: A Procedure for Designing Abstract Interfaces for Device Interface Modules

LookupService

Service and Lookup ServiceService and Lookup Service

Proxy,Interface

Legend:

HW/SW/Both Communication Repository Java Object

Service

Page 12: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Client and Lookup ServiceClient and Lookup Service

LookupService

Client

Legend:SW w/ JVM CommunicationRepository Java Object

Proxy

Java Interface

Interface

Page 13: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Client and ServiceClient and Service

Proxyrequest

Legend:Java Software Communication

Client Service

HW/SW/Both

Page 14: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Client withJVM

CommonServiceInterface

ProxyObject

Network Service

InterfaceSoftware

Legend:

ServiceProvider

How Jini Relates to Parnas’ Model

Proxy objects implement an interface and encapsulate differences (e.g. protocols) among various service providers.

Office Tool

Printer Interface

Printer Proxy Object

LAN Printer

Page 15: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Intro of Embedded Software SystemIntro of Embedded Software System

An embedded software system is a single An embedded software system is a single component of a significantly larger component of a significantly larger hardware or software system.hardware or software system.

Page 16: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Embedded Software Design with Embedded Software Design with Abstract InterfaceAbstract Interface

User InterfaceClient

Control BuilderStationBigBlue

Data Access Interface Firmware_Ver1 FIM DeviceA(I/O)

Firmware_Ver2 IOLIM

Different Vendor Image Version Interface Module

DeviceB(IOP)

DeviceC

Legend:

: software : interface : hardware

Note: FIM (Fieldbus Interface Module) IOLIM(I/O Link Interface Module) IOP (I/O Processor)

:Group

Page 17: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Embedded Software ArchitectureEmbedded Software ArchitectureEthernet

Control Net

User Interface

I/O Control Net

Data bus

Device Interface Module

Pressure

Temperature

Flow

Valves

High AlarmLow AlarmComm. Err.

Data Access Interface

Page 18: A Procedure for Designing Abstract Interfaces for Device Interface Modules

Embedded SoEmbedded Sofftwaretware

Features:•Redundant Hardware Interface

Primary, Secondary (OPM)

•Flexible Hardware Interface

Sub-Interface Module

•Relation between Virtual Device and Hardware Device

Configuration-time/Load-time/Run-time

Page 19: A Procedure for Designing Abstract Interfaces for Device Interface Modules

ReferencesReferences Ilango S. Kumaran, Ilango S. Kumaran, Jini Technology: An OverviewJini Technology: An Overview, ISBN 0-13-033385-9, ISBN 0-13-033385-9 Jim Waldo and The Jini Techology, Jim Waldo and The Jini Techology, The Jini SpecificationsThe Jini Specifications, Second Edition, , Second Edition,

edited by Ken Arnold, ISBN 0-201-72617-3edited by Ken Arnold, ISBN 0-201-72617-3 Picture of Parnas: http://www.martinfowler.com/articles/xp2002.htmlPicture of Parnas: http://www.martinfowler.com/articles/xp2002.html