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/