Glossar
zum Schwerpunktthema Neue Konzepte in der Softwareentwicklung
A
- Agile Methoden
- Unter agile Methoden (auch als leichtgewichtig bezeichnet) fallen Ansätze der Softwareentwicklung, die von sog. schwergewichtigen Prozessmodellen abrücken und der Selbstorganisation des Entwicklungsteams eine große Bedeutung beimessen. Bürokratie, Formalismen und Dokumentation werden auf ein Mindestmaß reduziert, um den Gegenstand der Entwicklung selbst, die lauffähige Software und den Programmcode, wieder in den Vordergrund zu rücken. Nachdem in den 90er Jahren eine Reihe von leichtgewichtigen Methoden (z.B. Extreme Programming (XP), Scrum, Adaptive Software Development (ASD), Feature Driven Development (FDD), Dynamic System Development Method (DSDM), Lean Development (LD)) unabhängig voneinander entstanden war, fanden sich 17 der maßgeblich an diesen Initiativen beteiligten Experten zusammen, um die Gemeinsamkeiten ihrer Ansätze und die ihnen zugrunde liegenden Wertvorstellungen herauszuarbeiten. Dabei wurde der Begriff "agile software development" erstmalig geprägt, und es wurden vier plakative Leitsätze mit zwölf daraus abgeleiteten Prinzipien in Form eines Manifestes (www.agilemanifesto.org) formuliert.
K
- Komponente
- Komponenten sind eigenständig nutzbare Softwarebausteine mit klar definierten Schnittstellen, die mit anderen Komponenten kombiniert werden können. Man fordert, dass Komponenten ihre Implementierung kapseln und keine versteckten Abhängigkeiten aufweisen. Komponenten können sich u.a. in ihrer Granularität, Kontextabhängigkeit und Anpassbarkeit unterscheiden.
M
- Model Driven Architecture (MDA)
- Die MDA beschreibt einen Ansatz der Object Management Group (OMG) zur modellgetriebenen Generierung von Software, der die Langlebigkeit und Wiederverwendbarkeit von Modellen durch eine stärkere Unabhängigkeit von der Zielplattform der entwickelten Software gewährleisten soll. Dabei wird zwischen PIMs (platform-independent models) und PSMs (platform-specific models) differenziert. Ein PIM kann auf Basis von vordefinierten Plattformprofilen (UML-Profil für diese Plattform) und Abbildungsregeln nahezu automatisiert in ein PSM überführt werden. Ein PSM enthält genügend plattformspezifische Details, um daraus Code zu generieren.
O
- Open Source Software (OSS)
- Open Source Software (auch als free oder libre software bezeichnet, deutsch: (quell)offene oder freie Software) ist die Bezeichnung für Software, deren Quellcode allgemein zugänglich ist und die von jedem benutzt, kopiert, verändert, weiterverbreitet und in neue Produkte integriert werden darf. Die Open-Source-Initiative (OSI, www.opensource.org) stellt eine Definition des Begriffes in Form einer Anforderungsliste zur Verfügung, die Kriterien definiert, denen OS-Lizenzen genügen müssen, um die entsprechende Software im Sinne der OSI als Open Source bezeichnen und unter der rechtlich geschützten Marke "OSI certified" führen zu dürfen. Die OSI-Definition geht auf die Debian Free Software Guidelines (www.debian.org) zurück. Free Software (FS), manchmal als Synonym verwendet, oft aber auch als engerer Begriff (so z.B. von der Free Software Foundation), impliziert sog. Copyleft, d.h., alle aus freier Software abgeleiteten Produkte müssen selbst auch wiederum frei sein. Wegen der Missverständlichkeit des englischen Begriffes "free", der im Kontext von FS mit "freedom" oder "liberty" assoziiert werden soll, nicht aber mit kostenlos, beginnt sich insbesondere in Europa der Begriff "Libre Software" durchzusetzen.
P
- Product Line Engineering (PLE)
- Product Line Engineering bezeichnet einen Ansatz des Software Engineerings, der das Entwickeln von Software in Form von Produktlinien propagiert, um durch Ausnutzung von Gemeinsamkeiten verwandter Produkte Wiederverwendungsmöglichkeiten nutzen zu können. PLE wird in der Regel in zwei Prozesse gegliedert: Im Domain Engineering geht es um die Erfassung der Gemeinsamkeiten und u.a. um die Definition der Architektur für die gesamte Produktlinie, während im Application Engineering ausgehend von der gemeinsamen Basis durch Komposition, Anpassung und Neuentwicklung die spezifischen Produkte entstehen.
- Produktlinie (Produktfamilie)
- Eine Produktlinie umfasst eine Gruppe von Produkten derselben Anwendungsdomäne, die auf einer gemeinsamen Basis aufbauen.
R
- Reifegradmodelle
- Ein Reifegradmodell misst die Qualität, mit der Softwareentwicklung in einer bestimmten Organisation bzw. deren Softwareentwicklungsbereich betrieben wird. Im Mittelpunkt steht dabei die quantitative und qualitative Bewertung der Softwareentwicklungsprozesse nach vorgegebenen Kriterien. Das Ergebnis, der Reifegrad der Organisation, dient einerseits (insbesondere bei einer Ermittlung nach definierten Begutachtungsverfahren) als Leistungsbeleg gegenüber Auftraggebern, kann aber andererseits auch als Ausgangsbasis für eine Verbesserung der eigenen Softwareentwicklungsprozesse dienen. Darunter fallen z.B. ISO 900x, Bootstrap und ISO 15504 (SPICE). Am häufigsten wird der Begriff aber i.Z. mit CMM bzw. CMMI (Capability Maturity Model bzw. CMM Integration) vom Software Engineering Institute der Carnegie Mellon University verwendet. CMM(I) beschreibt die Merkmale von fünf aufeinander aufbauenden Reife- bzw. Fähigkeitsgradstufen.
U
- UML-Profile
- Die UML ermöglicht die Erweiterung ihrer Semantik über die Kombination von Stereotypen, ihnen zugeordneten Tagged Values (einfache Name-Wert-Paare) und Bedingungen (Constraints, definiert in OCL). Thematische Sammlungen solcher Erweiterungen werden auch als Profile bezeichnet, die eine spezielle Form des UML-Paketes darstellen. Neben der Möglichkeit, Profile z.B. für bestimmte Anwendungsdomänen selbst zu definieren, gibt es auch vordefinierte Profile für verschiedene Einsatzszenarien, z.B. J2EE/EJB und .NET. Aufgabe solcher Profile ist die Unterstützung plattformspezifischer Modellierung (siehe auch MDA). So wird beispielsweise durch das EJB-Profil gesteuert, für welche Modellelemente die typischen EJB-Klassen erzeugt werden sollen. Mit der MDA gewinnen Profile an Bedeutung und werden in der Version 2.0 der UML im Vergleich zu ihren Vorgängerversionen besser unterstützt.





