Bachelor-Kolloquium Realisierung eines web-basierten servicegestützten Ideenmanagementsystems für Metriken Frederic Evers Inhalt 1. Basis der Realisierung Namen Kapitel überarbeiten Ggf. Abschnitte entfernen 1.1. Metriken 1.2. GQM/GAM 1.3. Metrikspezifikationsprozess 2. Realisierung 2.1. Anforderungen 2.2. Technologie 2.3. Architektur 2.4. Domänenmodell 2.5. Screenshots 3. Erkenntnisse 3.1. Evaluation 3.2. Erfahrungen 4. Frederic Evers Zusammenfassung 2 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Metriken Modellbildung = Grund für Homomorphismus Übergang: Wie kommt man zu Metriken? A: Über Metrikprozesse • • „To measure is to know“, Clerk Maxwell • • Attribute werden auf Größen abgebildet „Abbildung einer Software oder eines Prozesses der SoftwareBearbeitung auf eine skalare oder vektorielle Größe“ (Ludewig, Lichter: Software Engineerung - Grundlagen, Menschen, Prozesse, Techniken) Metriken müssen Homomorphismen, d.h. relationserhaltend, sein: (x,y)⊆R • Frederic Evers (M(x),M(y))⊆P Beispiel: Höhenabbildung von Schränken auf Zentimeter zum Vergleich. Neuformulierunge 3 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung GQM/GAM Ziele des Ziels! Motivation für GAM! Verklausulierung durch Frage • • • • GQM = Goal Question Metric • Ziele bestehen aus: • Übergang zum Metrikspezifikationsprozess = Anforderungsphase in Metrikent wicklung Initial: Zieldefinition Zerlegung durch Fragen Abstraktionsniveau gering genug: Metriken • • • • Zweck Thema Objekt Perspektive Abwandlung: GAM Goal Attribute Metric Frederic Evers 4 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Metrikspezifikationsprozess Was machen die Rollen? Wer ist das? Iterativer Prozess Idee des Prozesses erklären Frederic Evers 5 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Frederic Evers Prozess 2 6 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Frederic Evers Prozess 3 7 Anforderungen = Definition der systematischen Unterstützung dieses Prozesses Zusammenfassung! Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung • klar spezifizierter Prozess iterative Verbesserung der Metrikvorschläge E-Mails zur Information der Benutzer Nicht-Funktionale • • • • Frederic Evers EJB 3.0 = zukunftsweisende Technologie Funktionale Anforderungen • • • • Anforderungen IBM WebSphere 6.1 IBM DB 2 möglichst flexibel (verschiede Laufzeitumgebungen) Enterprise JavaBeans 3.0 8 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Frederic Evers Webservice Dienstleistungsbeziehung Häufig AnbieterKonsument-Beziehung Aus Anforderungen folgt EJB3 -> Was ist das? • Ermöglicht starke Entkopplung des Konsumenten und Anbieters • WSDL-Dokumente deklarieren Schnittstelle • UDDI (Universal Description, Discovery and Integration) = Verzeichnisdienst zur Registrierung von Webservices • Konsumenten und Anbieter kommunizieren per XML-Files z.B. über SOAP 9 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Enterprise JavaBeans 3.0 (A)synchron erklären • -Stateful super wegen HTML ist nicht statefull -> Sessioncontext benutzt werden Komponententechnologie im Java-EE-Anwendungsserver !"#" • Es werden 3 Hauptkomponenten unterschieden: • Frederic Evers Session Beans (stateless oder stateful) für synchrone Kommunikation • Message-Driven Beans für asynchrone Kommunikation • Persistent Entities $%&&'()*+%,) $-,-%.%&&*$%&&'()*+%,) 10 !%1&'&-%)-*2)-'-3 $-,-%/0.*$%&&'()*+%,) 4%&&,5%671'8%)*+%,) Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Session Beans Konsument statt Kunde des Frederic Evers • • • Ermöglichen eine synchrone Kommunikation • • Alternativ: Deklaration in Deployment-Deskriptor ejb-jar.xml Können zustandslos und -behaftet sein POJOS werden durch die Annotationen @Stateless oder @Statefull zu Session Beans Implementieren Local Business Interface und/oder Remote Business Interface 11 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Frederic Evers Persistent Entities Technologie vorgestellt=> Daraus ergibt sich folgende Architektur • • • Persistent Entities sind persistierbare Klassen • Ohne weitere Annotationen wird eine Tabelle mit dem Namen der PE in der Datenbank gespeichert • • Die Spalten entsprechen den Attributen der PE • Vererbung ist ebenfalls möglich POJOs werden durch Annotation mit @Entity zu Persistent Entities Persistent Entities benötigen eine ID, die u.a. durch @Id annotiert werden kann Für Beziehungen zwischen PEs werden Annotationen wie @OneToOne oder @ManyToOne benutzt (Alternative Deklaration in orm.xml) 12 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Architektur Das ist die Realisierung MVC im Serviceanbieter Farben ändern Schrift Frederic Evers 13 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Domänenmodell Von Metrikvorschlag ausgehend beschreiben Client # !""$ *+'),-.(/0123 MetricProposal # #""$ ProposalVersion %&'()*) !""$ # %&'()*) Expert Frederic Evers !""# *+'),-.(/0123 !""# Rating 14 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Architektur Zurück zur Architektur Wie sieht die Visualisierung aus? Frederic Evers 15 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Frederic Evers Metrikvorschlagsübersicht 16 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Frederic Evers Metrikvorschlag bearbeiten 17 Zusammenfassung! Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung Evaluationsergebnisse Verbesserungsvorschläge aus Anwendungsstudie • • • farbige Markierung der Änderungen in Vorschlägen Kommentare Wie ist die Anwendungsstudie erfolgt? Noch nicht beim Kooperationspartner! keine Endzustände sonstige Verbesserungsmöglichkeiten • • • Frederic Evers Zugriffsbeschränkungen Suchfunktion Administratoroberfläche 18 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung • Erfahrungen Webservices immer über Feature-Packs EJB 3.0 nicht vollständig kompatibel mit WebSphere 6.1, z.B. keine Unterstützung von Session Beans als JAX-WS-Webservices (Java API for XML - Webservices) Frederic Evers • Deployment-Deskriptoren häufig fehlerfreier als Annotationen (z.B. orm.xml statt Annotationen) • Interfaces werden im Domänenmodell durch den Persistence Provider OpenJPA nicht unterstützt • „Field“-Zugriff ist bei privaten gettern und settern in Persistent Entities obligatorisch alle Attribute per „Field“-Zugriff • In Webservices keine Klassen ohne Default-Konstruktor verwenden, da JAXB (Java Architecture for XML Binding) • Keine Collection-Typen als Rückgabewerte eines Webservice unter WebSphere Version 7.0.0.9 19 Basis der Realisierung Realisierung Erkenntnisse Zusammenfassung • • • • • Zusammenfassung Es wurde ein iterativer Metrikspezifikationsprozess definiert Der Prozess wird durch das entwickelte System unterstützt Das System bietet einen Webservice an. Der Serviceanbieter wurde durch EJB 3.0 realisiert. Der Servicekonsument wurde durch JSPs und Servlets realisiert. Das System basiert auf einem fünfelementigen Domänenmodell Die Anwendungsstudie lieferte einige Verbesserungsvorschläge (z.B. Markierung von Änderungen) Vielen Dank für Ihre Aufmerksamkeit! Frederic Evers 20 Zustände eines Metrikvorschlags Frederic Evers 21 Message-Driven Beans Frederic Evers • • Ermöglichen eine asynchrone Kommunikation • • • Es müssen keine Interfaces implementiert werden POJOS werden durch die Annotation @MessageDriven zur MessageDriven Bean MDBs kommunizieren per JMS (Java Message Service) Bei Erhalt einer Nachricht wird die obligatorische onMessage-Methode aufgerufen 22 Startbildschirm Frederic Evers 23