Component Based Software Engineering

click to edit

General Knowledge

Metalevel

Composition System

Component System

Component Model

  • For description of components

Abrreviations

Composition Technique

  • How are components plugged together
  • Composition Time => Compile-time, Deployment-time, Runtime

Composition Language

  • How the compositions are described (of large systems)
  • How are the builds managed

Describe the structure of the system in-large

  • composition programs combine all basic compositions of the composition language

Component

  • A Container which insides are hidden
  • public outer interface
  • public dependencies
  • reusable
  • part of a larger component Model

"Graybox Systems"

  • Seperation of concerns
  • parts visible

"White Box"

  • Everything is visible

"Blackbox" System

  • Modular decomposition
  • everything is hidden

Gray-Box Composition System

  • seperation of concerns or: explore a subject matter in isolation while keeping in mind that it is only one of many parts

Black-Box Composition System

Classical Component Systems

  • COBRA
  • Enterprise Java Beans
  • OSGI

Object-Oriented Programming

  • Java
  • C++

Architchtural Systems

  • Web Services
  • EAST-ADL (AutoSAR)

Structured Programming

  • Pascal
  • C

Component Repository aka Market

  • Stores components with metadata (markup, attributes)
  • attributes: Keywords, author data
  • Usage protocolls
  • managed by a broker or trader
    ..- sub entry

Architecture

static

dynamic

  • has a large overhead

Compiler

  • are static Metaprograms

Meta Object Protocoll (MOP)

  • reflective implementation of the methods of metaclasses
  • describes the behaviour of the language objects in terms of the language itself
  • i.e what happens when a Method or an Attribute is entered
  • can describe the interpreter of a language

Open Language

  • has a static MOP
  • adapt components at compiletime
  • Metaprograms are removed during compile time => no runtime overhead

click to edit

Metaobject Facility (MOF)

  • a language specification language (M3)
  • describes context-free and context-free structure of a language
  • checks wellformdness of models
  • no dynamic semantics
  • MOF != MOP

The Meta Pyramid

  • M3 (Meta-Concepts): MOF
  • M2 (Software-Concepts): C, C++, UML
  • M1 (Software Classes)
  • M0 (Software Objects)

Object Management Group (OMG)

Common Object Request Broker Architechture (CORBA)

  • key component of OMA
  • mainly for type systems
  • is a MOF

Object Management Architechture (OMA)

  • developt by OMG

Interface Definition Language (IDL)

Markup Languages

  • describe the metadata of a component
  • is stored together with a component
  • defined in one of two ways: 1. embedded 2. by style sheets, both can be mixed
  • as Hungarian Notation

Metadata Attributes

  • Javadoc tags
  • Java Annotations
  • C# Attributes
  • generally they all are compiled into the byte code and can be used by other programs

UML COMPONENTS by Chessman / Daniels

Ch. 1 Component Systems

Important: Seperation of Component Specification and Component Implementation

  • Component Specification
  • Component Interface
  • Component Implementation
  • InstalledComponent
  • Component Object

Component and System Architectures

A business system has a structure of 4 layers:

  • User Interface
  • User dialog
  • System services
  • Business services
    these and the dependencies between them are a system architecture

Multiple set of architectures consisting of two main groups

Component Architecture

System Architecture #

  • Component Specification Architecture
  • Component Implementation Architecture
  • Component Object Architecture
    those loosely are similar to the Meta Pyramid from top to bottom.
    Furthermore there exists the Component Specification which is the realization contract between specifier and realizer

12: Finding Components in Repositories

searching and browsing with fascetet classifications (12.2)

enumerative approach

Faceted approach

A facet is "orthogonal" to other properties = isnt a sub property of another

Decorator-Connector Pattern

  • Chain

Stub: Decorator of the client

  • Takes calls of client in language A and sends that to the skeleton

Call #

Skeleton decorator of the server

  • Takes the calls from the clients and sends the component implementation in language B #

Interface Definition Language (IDL)

  • Language adaption works with the mapping of language constructs from both languages. This Mapping is done by the IDL