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