Messung und Verwaltung von Softwarekomponenten für die Performancevorhersage

Measurement and management of software components for performance prediction

  • Softwarekomponenten als wiederverwendbare Bausteine für die Konstruktion softwareintensiver Systeme verändern den Entwicklungsprozess von Software, indem die Auswahl von Komponenten aus einer Menge getesteter und bereits in anderen Anwendungen verwendeter Komponenten, deren Konfiguration und Adaption sowie die Komposition der ausgewählten Komponenten zu einer Anwendung an die Stelle einer zeitintensiven und teuren Programmierung aller Funktionalität eines zu entwickelnden Systems treten. In den letzten Jahren hat die Verwendung von Softwarekomponenten durch die breite Verfügbarkeit ausgereifter Frameworks wie J2EE, Corba Components oder .NET, die durch die angebotenen Infrastrukturdienste deSoftwarekomponenten als wiederverwendbare Bausteine für die Konstruktion softwareintensiver Systeme verändern den Entwicklungsprozess von Software, indem die Auswahl von Komponenten aus einer Menge getesteter und bereits in anderen Anwendungen verwendeter Komponenten, deren Konfiguration und Adaption sowie die Komposition der ausgewählten Komponenten zu einer Anwendung an die Stelle einer zeitintensiven und teuren Programmierung aller Funktionalität eines zu entwickelnden Systems treten. In den letzten Jahren hat die Verwendung von Softwarekomponenten durch die breite Verfügbarkeit ausgereifter Frameworks wie J2EE, Corba Components oder .NET, die durch die angebotenen Infrastrukturdienste dem Anwender einen zusätzlichen Vorteil offerieren, auch im betrieblichen Umfeld eine größere Verbreitung gefunden. Der Auswahlprozess sollte jedoch nicht allein auf die funktionalen Aspekte von Komponenten beschränkt sein, sondern quantitative Eigenschaften wie zeitliches Verhalten oder Ressourcenbedarf von Komponenten mit einbeziehen, da die Leistungsfähigkeit einer zu konstruierenden Anwendung ebenso wichtig ist wie die Erfüllung funktionaler Anforderungen; eine Anwendung, die schlicht zu langsam ist oder zu viele Ressourcen verbraucht, wird nicht erfolgreich eingesetzt werden können. In dieser Arbeit werden daher Verfahren untersucht, um quantitative Eigenschaften von Softwarekomponenten zu ermitteln und diese im Entwurfsprozess berücksichtigen zu können. Ausgangspunkt hierfür sind implementierte Komponenten, die in einer in dieser Dissertation entworfenen Messumgebung semiautomatisch untersucht werden. Komponenten werden in dieser Umgebung als Blackbox betrachtet und Messungen können rein deklarativ konfiguriert werden, wodurch keinerlei Modifikationen an Komponenten vom Entwickler durchzuführen sind. Die gemessenen Daten bezüglich Speicherbedarf, Laufzeit und Kommunikation mit anderen Komponenten werden in einem zentralen Repository verwaltet und ausgewertet. Um eine quantitative Beschreibung von Softwarekomponenten zu ermöglichen, die von den konkreten Eigenschaften der Messumgebung abstrahiert, wird ein Maß für CPU-Bedarf vorgeschlagen, welches Komponenten auf der Ebene von Basicblöcken beschreibt. Das in der Arbeit entwickelte Modell quantitativer Eigenschaften berücksichtigt den möglichen Einfluss von Parameterwerten von Methoden und Zustand einer Komponente auf ihr quantitatives Verhalten. Für die Erzeugung einer quantitativen Beschreibung wird ein Verfahren vorgestellt, welches eine quantitative "Spezifikation" einer Komponente aus den ermittelten Messwerten berechnet. Um das zu erwartende Antwortzeitverhalten einer zu konstruierenden Anwendung bereits im Entwurfsprozess abschätzen zu können, werden drei in dieser Arbeit entwickelte Verfahren diskutiert, die auf diesen Spezifikationen aufbauen und Vorhersagen auf unterschiedlichen Abstraktionsebenen zu berechnen erlauben. Alle in dieser Dissertation vorgestellten Konzepte wurden prototypisch für das Komponentenmodell Enterprise Java Beans umgesetzt und anhand von Testanwendungen evaluiert, welche die praktische Anwendbarkeit der Konzepte demonstrieren.show moreshow less
  • Software components as reusable "building blocks" for the construction of software-intensive systems alter the software development process, as the selection of components from a set of well-tested and already successfully applied components, their configuration and adaptation as well as the composition of components selected stands in for the tedious and extensive development of all required functionality of an application from scratch. Lately the employment of software components has risen in industrial software development, as mature frameworks like J2EE, Corba Components or .NET, which offer additional benefits for developers by their infrastructure services, have gained widespread adoptSoftware components as reusable "building blocks" for the construction of software-intensive systems alter the software development process, as the selection of components from a set of well-tested and already successfully applied components, their configuration and adaptation as well as the composition of components selected stands in for the tedious and extensive development of all required functionality of an application from scratch. Lately the employment of software components has risen in industrial software development, as mature frameworks like J2EE, Corba Components or .NET, which offer additional benefits for developers by their infrastructure services, have gained widespread adoption. However, the selection process should not only focus on functional requirements which components have to fulfill, but should incorporate quantitative properties like efficiency or resource demands as well, as the performance of an application under construction is as important as its compliance to the functional requirements; an application which exhibits unacceptable performance or consumes too many resources will not be deployed successfully. Therefore, this thesis investigates techniques to determine quantitative properties of software components in order to incorporate those in the software development process. In order to achieve that goal, implementations of components are used as a starting point, which are to be analysed semiautomatically in a measurement testbed designed in this thesis. Components are considered to be black boxes and measurements can be configured completely declaratively, which is why no modifications of components are required by a developer at all in order to measure them. The measurement results comprise memory demands, runtime and communication with other components; those results are stored in a central repository as central means for the management of all data as well as further processing. To allow for a quantitative description of software components which does not contain influences of the measurement testbed used, a platform-independent approach for the measurement of CPU demand by describing components in terms of basic blocks is proposed. The model of quantitative properties which was developed in the thesis takes the potential influences of parameter values of methods as well as the state of a component on its quantitative behaviour into account. To derive a quantitative description of a component an algorithm is proposed which enables the computation of a quantitative "specification" of components by processing the measurement data gathered. To facilitate an assessment of the expected response time behaviour of an application under construction already in an early development phase, three approaches which were developed in the thesis are discussed. They build upon the computed specifications and offer predictions on different levels of abstraction. All approaches of this thesis were implemented as a prototype for the component model Enterprise Java Beans and were evaluated using several test applications, proving the feasibility of the techniques presented.show moreshow less

Download full text files

Export metadata

  • Export Bibtex
  • Export RIS

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Marcus Bernd Meyerhöfer
URN:urn:nbn:de:bvb:29-opus-6634
Advisor:Klaus Meyer-Wegener
Document Type:Doctoral Thesis
Language:German
Date of Publication (online):2007/07/25
Publishing Institution:Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU)
Granting Institution:Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), Technische Fakultät
Date of final exam:2007/07/12
Release Date:2007/07/25
Tag:Bytecode; Interceptor; JBoss; Repository; Subdomain
Bytecode; Interceptor; JBoss; Repository; Subdomain
SWD-Keyword:Enterprise JavaBeans 2.0; Enterprise JavaBeans 2.1; Java <Programmiersprache>; Komponente <Software>; Leistungsmessung
Institutes:Technische Fakultät -ohne weitere Spezifikation-
Dewey Decimal Classification:004 Datenverarbeitung; Informatik

$Rev: 12793 $