Glossar Software Engineering

Werbung
Glossar
Software Engineering
H. Fritzsche
9. Juli 2010
1
Agile Softwareentwicklung Agile Softwareentwicklung ist die Bezeichnung
für eine Methodik der Softwareentwicklung. Das Ziel ist es, den Softwareentwicklungsprozess zu flexibilisieren und zu vereinfachen.
AJAX Ajax bezeichnet ein Konzept der asynchronen Datenübertragung zwischen einem Browser und dem Server. Dieses ermöglicht es, HTTP-Anfragen
durchzuführen, während eine HTML-Seite angezeigt wird, und die Seite zu
verändern, ohne sie komplett neu zu laden. Viele Anwendungen von Ajax
werden dazu eingesetzt, im Webbrowser ein desktopähnliches Verhalten
zu simulieren, wie beispielsweise Popup-Fenster. [Wikipedia]
AOP Aspektorientierte Programmierung
AndroMDA ist ein Framework für modellgetriebene Softwareentwicklung gemäß dem MDA-Paradigma.
Artefakt Bezeichnung für ein von Menschen geschaffenes Erzeugnis.
AST (Abstract Syntax Tree)
ATL Atlas Transformation Language
Baum ist ein spezieller Graph, mit dem sich eine Monohierarchie modellieren
lässt. [Wikipedia]
Cartridge Bezeichnung für wiederverwendbare, vorkonfigurierte Workflowabschnitte. Mit der Workflow-Engine aus dem MWE-Projekt ist es möglich,
Workflow-Fragmente aus anderen Workflows heraus aufzurufen und bei
Bedarf von außen zu konfigurieren.
CIL Common Intermediate Language
CORBA Common Object Request Broker Architecture
Corba ist ein Standard für eine Middleware-Plattform.
Core J2EE Patterns Entwurfsmuster der Gang of Four.
CWM Das Common Warehouse Metamodel ist ein von der Object Management Group (OMG) entwickelter Standard für Beschreibung, Zugriff und
Austausch von im Data-Warehouse-Prozess anfallenden Metadaten. Es soll
Interoperabilität zwischen verschiedenen Data-Warehouse-Systemen und
-Werkzeugen ermöglichen. [Wikipedia]
Cloud Computing bezeichnet allgemein die Auslagerung von allen denkbaren
IT-Diensten auf spezielle Server mit dem Ziel, die Leistungsfähigkeit zu
verbessern und Kosten zu sparen.
Dependency Injection
Django ist ein Framework
Domäne ??
DSL (Domain Specific Language)
EA Endlicher Automat
EJB (Enterprise Java Beans) ist ein Komponentenmodell.
2
CRUD-Funktionen
Gentzen-Typ ?
GME (Generic Modeling Environment) ist eine Metamodellierungs IDE. Es
ist eine OpenSource-Lösung, entwickelt an der Universität von Vanderbilt, Institut für Softwareintegrierte Systeme (ISIS). Wird im Eclipe-GMTProjekt weiterentwickelt.
GMF ist ein Editor für Eclipse, mit dem die grafische Syntax von Domänenmodellen festgelegt werden kann.
GORM (Groovy Object Relational Mapper ) ein Modul, der von Grails genutzt
wird. Als Basis nutzt GORM eine vereinfachte Syntax von Hibernate.
Grails ist ein Java-Web-Entwicklungsframework
Größe Bezeichnung von B. Meyer in [Mey90], S. 90 als Oberbegriff für
• Instanzvariable
• Methodenparameter
• Resultatbezeichner
• lokale Variable
Hibernate Framework zur Sicherung der Persistenz von Objektmodellen in
einer relationalen Datenbank.
Hierarchie System von Elementen, die einander über und/oder untergeordnet
sind. Eine Hierarchie ist eine Monohierarchie oder eine Polyhierarchie.
JDT (Java Development Tools)
JEE ist eine Middleware-Plattform.
JSF (Java Server Faces) Framework für die Präsentation.
JPA (Java Persistence API )
Kalkül siehe G. Görtz, S. 12
Laziness evtl. Laziness evaluation bei Scheme.
MDA →Model Driven Architecture.
Metamodell ??
MIC (Model-Integrated Computing)
MM-Extensions (Metamodell-Extensions) MM-Extensions definieren Erweiterungen für die Elemente eines Metamodells. openArchitectureWare ermöglicht die Implementierung von MM-Extensions mittels der Erweiterungssprache Xtend.
3
Modell Ein Modell ist nach H. Stachowiak [Sta73] durch drei Merkmale charakterisiert:
1. Es ist ein Abbild von etwas (einem natürlichen oder künstlichen Original),
2. es erfasst nicht alle Attribute des Originals,
3. es besitzt einen Nutzen (das Modell wird interpretiert).
Originale können selbst wieder Modelle sein.
Modelle reduzieren untersuchte Systeme auf relevante Merkmale. Software dient a) zur Modellierung relevanter Aspekte realer Systeme. Modelle
dienen aber auch b) als Darstellungsmittel für bestimmte Aspekte der
Software (z.B. den Steuerfluss).
Modell in der Logik: ist eine Interpretation, die eine Formel erfüllt.
Model Driven Architecture (MDA) ist ein Ansatz für die Modellgetriebene
Softwareentwicklung, der von der OMG vorangetrieben wird (ein Standard). Kernbestandteile sind die OMG-Spezifikationen Meta Object Facility (MOF), Unified Modeling Language (UML) und Common Warehouse Metamodel (CWM). MDA deckt (bisher) nicht das gesamte MDSDSpektrum ab [SVEH07].
Model Driven Software Development (MDSD)
MOF Mit der Meta Object Facility (MOF) werden Modellelemente von UML2
spezifiziert und dadurch z. B. mit dem Format Meta Interchange XMI
austauschbar. UML ist dazu in vier Schichten M0 bis M3 gegliedert. Die
bereits erwähnte MOF (M3) stellt eine der vier Schichten dar. Es ist die
Metasprache der Metasprachen von UML2 und beinhaltet deren grundlegende Elemente. Die Metasprache von UML2 (M2) spezifiziert deren
grundlegende Elemente mit ihren Eigenschaften. Die in der Praxis verwendete UML2 befindet sich auf der Ebene M1. Damit werden die realen
Objekte der M0-Schicht, also die Realität, dargestellt.
MTS Microsoft Transaction Server
MVC Model - View - Controller
MWE Als Modeling Workflow Engine, kurz MWE, wird die ehemalige oAW
Workflow Engine von Itemis nun im Eclipse Modeling Project weitergeführt. Die Workflow-Engine ist eine Plattform, über die Komponenten zu
einer Konfiguration zusammengefügt werden können.
oAW (Open Architecture Ware) http://www.openarchitectureware.org/pub/documentation/4.3.1/openArchitectu
4.3.1-Reference.pdfs
Es handelt sich um eine Werkzeugsuite, die auf einem in Java programmierten Generator-Framework basiert und zum Ziel hat, eine Infrastruktur zur Entwicklung von Generatoren bereitzustellen. oAW 4.1.2 umfasst
Workflow-Engine, Typsystem, Templatesprache Xpand, Erweiterungssprache Xtend, Xtext.
OCL (Object Constraint Language) ist ein OMG-Standard. Es ist eine formale, deklarative Sprache, die es ermöglicht, die statische Semantik von
Modellen (meist UML-Modellen) zu spezifizieren.
4
OLE Object Linking and Embadding
OMG The Object Management Group (OMG™) is an international, open membership, not-for-profit computer industry consortium. OMG Task Forces
develop enterprise integration standards for a wide range of technologies,
and an even wider range of industries. OMG’s modeling standards enable
powerful visual design, execution and maintenance of software and other
processes. OMG’s middleware standards and profiles are based on the
Common Object Request Broker Architecture (CORBA®) and support
a wide variety of industries.
O/R-Mapper
OSGi Die OSGi Alliance (früher "Open Services Gateway initiative") spezifiziert eine hardwareunabhängige dynamische Softwareplattform, die es erleichtert, Anwendungen und ihre Dienste per Komponentenmodell ("Bundle"/"Service") zu modularisieren und zu verwalten ("Service Registry").
Die OSGi-Plattform setzt eine Java Virtual Machine (JVM) voraus und
bietet darauf aufbauend das OSGi-Programmiergerüst. [Wikipedia]
PDE P lug-in Development Environment
Das PDE stellt auf der Basis von Eclipse Werkzeuge bereit, um Plug-ins
zu erzeugen, zu entwickeln, zu testen, zu bauen (build ) und zu „deployen”.
PIM (Platform independent Model )
POJO Plain old Java Object
Der Begriff POJO stammt von Martin Fowler. POJOs sind nicht von komplexen APIs oder Klassen eines Frameworks abhängig. POJOs sind die
Basis für eine „leichtgewichtige Entwicklung”.
Programmgröße wird bei B. Meyer beschrieben. Siehe .
Rails
RCP (Rich Client Platform)
Ruby dynamisch getypte Programmiersprache, wird mit neueren Linux-Distributionen
mitgeliefert.
Ruby on Rails Auf der Sprache Ruby basierendes Web-Framework.
RubyGems ist ein Paketverwaltungssystem für Rails.
Semantik Die statische Semantik legt Bedingungen fest, die ein Modell erfüllen muss. Constraints werden gegen die abstrakte Syntax definiert, d.h.
sie sind von ihr abhängig. Statisch getypte Programmiersprachen besitzen eine statische Semantik in Form von Bedingungen, die vom Compiler
geprüft werden. Das sind alle Bedingungen, die zu Fehlermeldungen des
Compilers führen, und die keine Fehlermeldungen zu Syntaxfehlern sind.
SPEM Process Engineering Metamodel
Spring Es ist ein Framework, das dazu dient, die Anwendungsentwicklung zu
vereinfachen.
Software Factory ??
5
Standard Widget Toolkit (SWT) SWT ist eine Bibliothek mit Klassen zur
Erstellung grafischer Benutzeroberflächen auf der Basis von Java.
Syntax Es wird zwischen Abstrakter Syntax und konkreter Syntax unterschieden. Eine konkrete Syntax kann sowohl grafisch als auch textuell sein.
Textual Modeling Framework (TMF) ein Schirmprojekt innerhalb des Eclipse Modeling Framework Projects, das die Frameworks TCS und Xtext
überspannt [Wikipedia]
Typsystem Ein Typsystem definiert in der Regel einen Satz von eingebauten
Datentypen .
UML2 Im August 1999 stieß die OMG [Gro]die Entwicklung von UML2 an,
indem sie einen entsprechenden Request for Information (RFI) publizierte. Ein Jahr später, im September 2000, bat die OMG ihre Mitglieder
und weitere interessierte Kreise um Vorschläge für UML2. Gemäß der neu
für UML2 definierten Architektur hat die OMG drei Requests For Proposals (RFP) publiziert, einen UML 2.0 Infrastructure RFP, einen UML
2.0 Superstructure RFP und einen UML 2.0 OCL RFP. Wer Vorschläge
einreichen wollte, hatte dazu ungefähr ein weiteres Jahr Zeit. Im September 2004 konnten schließlich alle Finalization Task Forces ihre Arbeit
beenden. Für die UML 2.0 OCL und die UML 2.0 Infrastructure lagen
damit endgültig abgenommene Dokumente (Final Adopted Specification)
vor. Nur bei der UML 2.0 Superstructure schien sich dieser letzte Schritt
noch etwas zu verzögern: im März 2005 bot der OMG-Webauftritt weiterhin nur ein temporäres Dokument mit der informellen Bezeichnung UML
2.0 Superstructure FTF convenience document zum Herunterladen an.Am
21. Oktober 2008 wurde die Beta 1 von UML Version 2.2 durch die OMG
veröffentlicht, die wiederum im Februar 2009 in der finalen Version vorlag
[UML]. Neu hinzu gekommen ist in der Version 2.2 das Profildiagramm,
um eigendefinierte Stereotypen-Sammlungen strukturieren zu können. Anfang 2010 soll UML 2.3 veröffentlicht werden. Diese Version wird vor allem
Bugfixes am Metamodell und Schärfungen der Semantik von Modellelementen im Spezifikationsdokument der UML enthalten.
Validation Prüfung, ob ein Entwicklungsergebnis die individuellen Anforderungen bezüglich einer speziellen beabsichtigten Nutzung erfüllt [Spillner].
Verifikation Verfahren, um die Korrektheit eines Programms (Moduls) mit
mathematischen Mitteln zu beweisen, d.h. zu beweisen, dass formale Spezifikation und Implementation eines Programms übereinstimmen (äquivalent sind ?). Durch die Verifikation wird die partielle Korrektheit bewiesen,
diese klammert den Beweis der Termination aus.
Visio ist ein objektorientiertes Malwerkzeug von Microsoft.
XSD Ein konkretes XML-Schema wird auch als eine XSD (XML-Schema-Definition)
bezeichnet und hat als Datei üblicherweise die Endung ".xsd". Im Gegensatz zu DTDs kann bei Verwendung von XML-Schemata zwischen dem
Namen des XML-Typs und dem in der Instanz verwendeten Namen des
XML-Tags unterschieden werden. [Wikipedia]
Xpand Es können Modelle verarbeitet werden, die mittels Xtext erzeugt wurden.
6
Xtend Eine Erweiterungssprache, die in openArchitectureWare die Implementierung von MM-Extensions ermöglicht.
Xtext ist ein Framework zur Definition von textuellen DSLs. Es ist Bestandteil
von open ArchitectureWare. Xtext stellt eine vereinfachte EBNF-Notation
zur Verfügung.
Literaturverzeichnis
7
[Gro]
http://www.omg.org/
[Mey90]
Meyer, B.: Objektorientierte Softwareentwicklung. New York etc.
: Coedition Carl Hanser Verlag u. Prentice-Hall, 1990
[Sta73]
Stachowiak, H.: Modelltheorie. 1973
[SVEH07] Stahl, Thomas ; Völter, Markus ; Efftinge, Sven ; HAase,
Arno: dpunkt.Verlag, 2007
[UML]
Documents associated with UML Version 2.2. http://www.omg.
org/spec/UML/2.2/
Herunterladen