42
Re-usable Software Component Technology Author: Hans v Leunen Editors: Henk de Vries & William Ringer

Re-usable Software Component Technology

  • Upload
    cala

  • View
    67

  • Download
    0

Embed Size (px)

DESCRIPTION

Re-usable Software Component Technology. Author: Hans v Leunen Editors: Henk de Vries & William Ringer. Pillars. The technology comprises two pillars: Embeddable software component technology Open market mechanism - PowerPoint PPT Presentation

Citation preview

Page 1: Re-usable Software Component Technology

Re-usable Software Component Technology

Author: Hans v Leunen

Editors: Henk de Vries & William Ringer

Page 2: Re-usable Software Component Technology

Pillars

• The technology comprises two pillars:– Embeddable software component technology– Open market mechanism

• Together these pillars empower the embedded software community with a thousand times higher efficiency

• It enables the software industry to keep pace with the hardware developments

Page 3: Re-usable Software Component Technology

Choose your trail

• A managers view onto the subject

• An in depth treatise for the technically interested

Page 4: Re-usable Software Component Technology

Definition: Re-usable Software Components

• ‘Components’ are secure re-usable software modules with defined interfaces– Functionality can only be accessed through interfaces– Intellectual Property (IP) is hidden securely within the

component

• Components can be preplanned by means of development tools– The infrastructure controls the establishment and the

release of connections – Connections can be fixed or dynamic

Page 5: Re-usable Software Component Technology

Definition: Re-usable Software Components Packages

• Components Binary Package– Load library– Collection of binary implementations of component

classes

• Components Package Specification– Formal specification document– Collection of references to Component Class

Specification documents

• NOT like layered software subsystems:– Defined by an Application Programming Interface

(API) to a set of functions– With complex relations with other system parts– With no constructs for guarding integrity

Page 6: Re-usable Software Component Technology

Interfaces

• Re-usable Components have interfaces– Each interface is a set of coherent methods– An interface can be easily understood

• NOT like layered software architecture subsystems that:– Have a single API that contains many functions– A complete API is difficult to comprehend

Page 7: Re-usable Software Component Technology

Assets

• Re-usable Components hide their assets– indirect access of asset values is such that the

integrity of the component is secure– this is controlled by the component designer

• NOT like layered subsystems assets – Are often globally accessible– Cannot defend against abuse of its assets

Page 8: Re-usable Software Component Technology

Implementation

• Re-usable Components – Use a well defined binary component model

– Are reusable on hardware platforms that correspond with their binary component model

– OS independent

• NOT like layered software subsystems – Have no defined implementation

– Are reusable in a limited context that depends on the OS and on the hardware platform

Page 9: Re-usable Software Component Technology

Robust Component Object Model

hidden

hiddenreqItf2conReqreqItf1

hidden

hidden

hidden

hidden

hidden

hidden

hidden

hiddenQueryAccessPoint

ResetInstance

FuncB3FuncB4FuncB5

QueryAccessPointResetInstanceFuncA3

FuncA6

FuncA4FuncA5

Instancedata

Vtbl AVtbl A

VtblVtbl B BClass dataClass data

AA

BB

hidden

IAccessor

BB

FuncB4

Under the control of the infrastructure

Page 10: Re-usable Software Component Technology

Relational complexity problem statement

• Relational complexity makes software generation and system configuration increasingly hard to manage

• Relational complexity is measured by the number of potential relations that exist between functional elements– Is determined by the square of the number of

potentially related functional elements n*(n-1)

Page 11: Re-usable Software Component Technology

Relational Complexity in Monolithic System or Part

n(n-1)/2 potential relations n = Nr of related items

Page 12: Re-usable Software Component Technology

In numbers• 100 items 99 • 100 potential relations

• 1000 items 999 • 1000 potential relations

• 10 modules containing 100 items maximally 99 • 100 potential relations inside a module plus 9 • 10 relations between modules.

• Nobody sees more than 9990 relations!!!

Page 13: Re-usable Software Component Technology

Why measure with potential relations?

• Every expert started as a novice• The number of available experts is limited• For a novice all potential relations are equally

relevant– The manageability of the software generation process is

directly affected

• An automaton must traverse all potential relations– Tools are easier to develop when relational complexity

is low

Page 14: Re-usable Software Component Technology

Impact

• The reduction of the potential relational complexity has the largest impact when systems are completely built as component based systems

• Currently all systems that apply software components apply components embedded in a relatively small subsystem

• This is why nobody has got a proper feel for the real power of software component technology

Page 15: Re-usable Software Component Technology

Environment

Complexity in Component Based Systems

Configuration: Easily three orders of magnitude better than monolithic case

Gain: easily two orders of

magnitude

Gain: easily three orders of magnitude

Page 16: Re-usable Software Component Technology

Manageability of component generation

• The manageability of generating Component based software is about two orders of magnitude (100 times) better than generating monolith system software

• NOT like layered subsystem software where manageability is only slightly better than generating monolith software

Page 17: Re-usable Software Component Technology

Manageability of system configuration

• Managing the configuration of a system based on Re-usable Components is about three orders of magnitude (1000 times) better than that of layered subsystems– Task is accomplished by an easy to use tool

• NOT like the configuration of a system based on layered subsystems– A big challenge for the architect of large and complex

layered subsystem architectures

Page 18: Re-usable Software Component Technology

Specification completeness

• Re-usable Components are easy to specify completely– Modest size and low complexity– Static and dynamic characteristics– Only completely specified components can be reliably

tested and can be guaranteed

• NOT like layered subsystems– Due to growing size and complexity of subsystems it

becomes increasingly difficult to give a complete specification of a subsystem

Page 19: Re-usable Software Component Technology

Ability to trade Re-usable Components in an open market

• Re-usable Components can be licensed to others– No access to encapsulated Intellectual Property– Easy marketing due to complete specification

and standardized component model

• NOT like layered subsystems– Due to complexity and low manageability

layered subsystems can only be used in closed communities

Page 20: Re-usable Software Component Technology
Page 21: Re-usable Software Component Technology

Definition: Re-usable Software Components

• ‘Components’ are secure re-usable software modules with defined interfaces– Functionality can only be accessed through interfaces– Intellectual Property (IP) is hidden securely within the

component

• Components can be preplanned by means of development tools– The infrastructure controls the establishment and the

release of connections – Connections can be fixed or dynamic

Page 22: Re-usable Software Component Technology

Definition: Re-usable Software Components Packages

• Components Binary Package– Load library– Collection of binary implementations of component

classes

• Components Package Specification– Formal specification document– Collection of references to Component Class

Specification documents

• NOT like layered software subsystems:– Defined by an Application Programming Interface

(API) to a set of functions– With complex relations with other system parts– With no constructs for guarding integrity

Page 23: Re-usable Software Component Technology

A sample package specification• <?xml version="1.0" ?> -

<pkg:Package Final="true" Name="BKEGameControlPackage2"

Location="http://www.component- industry.org/repository/scitech_nl_repository/reusablesstore/scitech_nl_reusables/Package/

BKEGameControlPackage2/BKEGameControlPackage2.pkg" Description="This is the control part of the tic-tac-toc game" MyLanguage="Cplusplus" MyPackageType="Skeleton" NamePrefix="gcp" Originator="http://www.component-industry.org/repository/scitech_nl_repository /reusablesstore/scitech_nl_reusables/

Package/BKEGameControlPackage2/BKEGameControlPackage2.pkg" schemaLocation="Package_schema ../Package.xsd" ThePID="01f9929c-7263-4b30-a8d9-81a17e87ebe6" xmlns:pkg="package_schema"> 

<pkg:ParentPackageReference Name="NoName" /> -

<pkg:Classes OneOrMore="true"> 

<pkg:Class Name="BKEGameControlClass0" Location="http://www.the_origin_substitute.none/reusablesstore/

scitech_nl_reusables/componentclass/ bkegamecontrolclass0/bkegamecontrolclass0.cif" />  

<pkg:Class Name="BKEGameControlClass"

Location="http://www.the_origin_substitute.none/reusablesstore/ scitech_nl_reusables/componentclass/ bkegamecontrolclass/ bkegamecontrolclass.cif" />  

</pkg:Classes>- <pkg:Categories

OneOrMore="true">  <pkg:Category

Name="BKE" OwnerFileName="BKEGameControlPackage1.pkg" OwnerType="Package" /> 

</pkg:Categories>  </pkg:Package>

Page 24: Re-usable Software Component Technology

Package contents

Load modulesPackage

Instancemanager Instance

manager

Instancemanager

Instancemanager

Package Manager clscls

cls

clsinst

inst

instinst

Infrastructure servicesApplication Implementation

Page 25: Re-usable Software Component Technology

Interfaces

• Re-usable Components have interfaces– Each interface is a set of coherent methods– An interface can be easily understood

• NOT like layered software architecture subsystems that:– Have a single API that contains many functions– A complete API is difficult to comprehend

Page 26: Re-usable Software Component Technology

Application Programmers Interface Modularisation

AudioVolume (int nValue)

AudioBalance (int nValue)

AudioMute (bool bOn)

AudioTone (int nValue)

VideoLuminance (int nValue)

VideoContrast (int nValue)

VideoColor (int nValue)

TuneFrequency (int nValue)

TuneBand (int nValue)

TuneStore(int nBand)

TuneSearch (bool bUp)

TapePlay (int nMode)

TapeRecord (bool bOn)

TapeEject()

TapeWind (bool bUp)

MenuSelect (int nSel)

MenuMove (bool bUp)

MenuOn(bool bOn)

MenuGroup (bool bUp)

Page 27: Re-usable Software Component Technology

Application Programmers Interfaces

AudioV

olume (int nV

alue)

AudioB

alance (int nValue)

AudioM

ute (bool bOn)

AudioT

one (int nValue)

VideoL

uminance (int nV

alue)

VideoC

ontrast (int nValue)

VideoC

olor (int nValue)

TuneF

requency (int nValue)

TuneB

and (int nValue)

TuneS

tore(int nBand)

TuneS

earch (bool bUp)

TapeP

lay (int nMode)

TapeR

ecord (bool bOn)

TapeE

ject()

TapeW

ind (bool bUp)

MenuS

elect (int nSel)

MenuM

ove (bool bUp)

MenuO

n(bool bOn)

MenuG

roup (bool bUp)

TaskManager

API

API

Page 28: Re-usable Software Component Technology

Base & extended elements

Int_3Method31Method32

Attribute1Attribute2Attribute3

Method11Method12

Method21Method22Method23Method24

Extended class1a

Int_1

ExtInt_2

•Additional attributes

•Additional interfaces

•Additional methods per interface

•Additional class CLSID

•Additional IID for extended interfaces

Attribute1Attribute2

Method11Method12

Base class1

Int_1

Method21Method22Method23

Int_2

Page 29: Re-usable Software Component Technology

Assets

• Re-usable Components hide their assets– indirect access of asset values is such that the

integrity of the component is secure– this is controlled by the component designer

• NOT like layered subsystems assets – Are often globally accessible– Cannot defend against abuse of its assets

Page 30: Re-usable Software Component Technology

Implementation

• Re-usable Components – Use a well defined binary component model– Are reusable on hardware platforms that

correspond with their binary component model– OS independent

• NOT like layered software subsystems – Have no defined implementation– Are reusable in a limited context that depends

on the OS and on the hardware platform

Page 31: Re-usable Software Component Technology

Robust Component Object Model

hidden

hiddenreqItf2conReqreqItf1

hidden

hidden

hidden

hidden

hidden

hidden

hidden

hiddenQueryAccessPoint

ResetInstance

FuncB3FuncB4FuncB5

QueryAccessPointResetInstanceFuncA3

FuncA6

FuncA4FuncA5

Instancedata

Vtbl AVtbl A

VtblVtbl B BClass dataClass data

AA

BB

hidden

IAccessor

BB

FuncB4

Under the control of the infrastructure

Page 32: Re-usable Software Component Technology

Relational complexity problem statement

• Relational complexity makes software generation and system configuration increasingly hard to manage

• Relational complexity is measured by the number of potential relations that exist between functional elements– Is determined by the square of the number of

potentially related functional elements n*(n-1)

Page 33: Re-usable Software Component Technology

Relational Complexity in Monolithic System or Part

n(n-1)/2 potential relations n = Nr of related items

Page 34: Re-usable Software Component Technology

In numbers• 100 items 99 • 100 potential relations

• 1000 items 999 • 1000 potential relations

• 10 modules containing 100 items maximally 99 • 100 potential relations inside a module plus 9 • 10 relations between modules.

• Nobody sees more than 9990 relations!!!

Page 35: Re-usable Software Component Technology

Why measure with potential relations?

• Every expert started as a novice• The number of available experts is limited• For a novice all potential relations are equally

relevant– The manageability of the software generation process is

directly affected

• An automaton must traverse all potential relations– Tools are easier to develop when relational complexity

is low

Page 36: Re-usable Software Component Technology

Impact

• The reduction of the potential relational complexity has the largest impact when systems are completely built as component based systems

• Currently all systems that apply software components apply components embedded in a relatively small subsystem

• This is why nobody has got a proper feel for the real power of software component technology

Page 37: Re-usable Software Component Technology

Environment

Complexity in Component Based Systems

Configuration: Easily three orders of magnitude better than monolithic case

Gain: easily two orders of

magnitude

Gain: easily three orders of magnitude

Page 38: Re-usable Software Component Technology

Manageability of component generation

• The manageability of generating Component based software is about two orders of magnitude (100 times) better than generating monolith system software

• NOT like layered subsystem software where manageability is only slightly better than generating monolith software

Page 39: Re-usable Software Component Technology

Manageability of system configuration

• Managing the configuration of a system based on Re-usable Components is about three orders of magnitude (1000 times) better than that of layered subsystems– Task is accomplished by an easy to use tool

• NOT like the configuration of a system based on layered subsystems– A big challenge for the architect of large and

complex layered subsystem architectures

Page 40: Re-usable Software Component Technology

Specification completeness

• Re-usable Components are easy to specify completely– Modest size and low complexity– Static and dynamic characteristics– Only completely specified components can be

reliably tested and can be guaranteed

• NOT like layered subsystems– Due to growing size and complexity of subsystems

it becomes increasingly difficult to give a complete specification of a subsystem

Page 41: Re-usable Software Component Technology

Ability to trade Re-usable Components in an open market

• Re-usable Components can be licensed to others– No access to encapsulated Intellectual Property– Easy marketing due to complete specification

and standardized component model

• NOT like layered subsystems– Due to complexity and low manageability

layered subsystems can only be used in closed communities

Page 42: Re-usable Software Component Technology