1. Funktionale Aspekte
Transcrição
1. Funktionale Aspekte
Funktionale Aspekte Pia Lobenstein – 20.05.2010 Gliederung 1. 2. 3. Funktionale Aspekte • Klassische Datenmodellierung • Definition • Potentielle Probleme Internationalisierung • Motivation • Lokalisierung und Internationalisierung • Schwerpunkte bei der Umsetzung • Unicode • Realisierung im Datenmodell • Umsetzung in Java Zusammenfassung Gliederung 1. Funktionale Aspekte • Klassische Datenmodellierung • Definition • Potentielle Probleme 2. Internationalisierung • Motivation • Lokalisierung und Internationalisierung • Schwerpunkte bei der Umsetzung • Unicode • Realisierung im Datenmodell • Umsetzung in Java 3. Zusammenfassung Klassische Datenmodellierung: „Ausgehend von der Betrachtung eines Ausschnitts der realen Welt werden die relevanten Objekte mit allen relevanten Eigenschaften und die relevanten Beziehungen zwischen ihnen erhoben, analysiert und als Datenmodell grafisch oder textuell formuliert.“ (Wikipedia) Abbildung fachlicher Inhalte Funktionale Aspekte - Klassische Datenmodellierung 4 Referenzbeispiel – Vom ERD zum relationalen Modell Funktionale Aspekte - Klassische Datenmodellierung Funktionaler Aspekt: „Ein funktionaler Aspekt bezeichnet […] eine spezifische Eigenschaft eines Datenmodells bzw. Gesamtsystems, welche sich nicht einem konkreten Objekt (business object) zuordnen lässt, sondern eine Vielzahl der modellierten Objekte betrifft.“ (M. Liebisch) Funktionale Aspekte - Definition • Begriff entstammt der Aspektorientierten Programmierung • auch querschnittlicher Belang genannt • keine fachlichen, sondern übergreifende Inhalte • Beispiele: − Versionierung − Rechteverwaltung − Logging − Internationalisierung Verzahnung von funktionalen und inhaltlichen Aspekten Funktionale Aspekte - Definition sich dadurch ergebende Probleme: • schwer modularisierbar • schlechte Wiederverwendbarkeit • aufwendigere Wartung • Performancesenkung • teilweise redundante Speicherung der Daten • eventuell große Eingriffe in Datenmodell nötig ZIEL: Trennung von fachlichen und funktionalen Aspekten Funktionale Aspekte – potentielle Probleme Gliederung 1. Funktionale Aspekte • Klassische Datenmodellierung • Definition • Potentielle Probleme 2. Internationalisierung • Motivation • Lokalisierung und Internationalisierung • Schwerpunkte bei der Umsetzung • Unicode • Realisierung im Datenmodell • Umsetzung in Java 3. Zusammenfassung Internationalisierung - Motivation • Gewinnmaximierung • Rentabilität • Marktstellung stärken/verbessern • Sicherheit steigern Anwendung muss an verschiedene Märkte und Länder angepasst werden. Internationalisierung - Motivation Lokalisierung: „Lokalisierung bezieht sich auf die Angleichung eines Produkts, einer Anwendung oder eines Dokuments, um der Sprache, den kulturellen oder anderen Anforderungen eines bestimmten Zielmarktes [...] zu entsprechen.“ (W3C) „Eine Locale bezeichnet eine geografische, politische oder kulturelle Region.“ (A.Göbel) Anpassung sehr aufwendig Internationalisierung – Lokalisierung und Internationalisierung Internationalisierung: „Internationalisierung entspricht dem Design und der Entwicklung eines Produkts, einer Anwendung oder eines Dokuments, das leichte Lokalisierung für Zielgruppen, die in Kultur, Region oder Sprache variieren, ermöglicht.“ (W3C) Internationalisierung – Lokalisierung und Internationalisierung Internationalisierung schlecht gemacht: „Pleasant Bay Village“ → „angenehm Bay Village“ (Tripadvisor.de) „Elektrisch Können Öffner Dose Knopfdruck Ein Berühren“ (ebay.de) „Wenn Ihr Einzelteil DOA (Tote der Ankunft), können Sie es in 30 Tagen zurückbringen“ (ebay.de) „Kein Mähdrescherverschiffen für mehr kleidet an.“ (ebay.de) Internationalisierung – Lokalisierung und Internationalisierung Was muss alles beachtet werden? • sprach-/marktspezifische Eigenheiten − Währungen und Preise − Beschreibungstexte − Formate (Datum, Zeit, Adresse, Telefonnr.) − Zeitzonen − Maßangaben − Schreibrichtung − Sortierreihenfolge • Anpassung der Oberflächendaten (Bilder, Töne etc.) • marktabhängige Existenz der Baukastendaten Internationalisierung – Schwerpunkte bei der Umsetzung Formate: •Datumsformate: − 20.05.2010 − 2010/05/20 − 2010-05-20 −20100520 • Adressformate: − Carl-Zeiß-Straße 3 07743 Jena − 3 Carl-Zeiß-Straße Jena 07743 Internationalisierung – Schwerpunkte bei der Umsetzung Internationalisierung - Unicode Unicode: „Unicode ist ein internationaler Standard, in dem langfristig für jedes sinntragende Schriftzeichen oder Textelement aller bekannten Schriftkulturen und Zeichensysteme ein digitaler Code festgelegt wird.“ (Wikipedia) Internationalisierung - Unicode •früher: ISO 8859 – Standards viele verschiedene Standards auf 8 Bit – Basis durch zunehmende Globalisierung nicht mehr tragbar • zum Unicode-Standard gehören: − Zeichensatz − Normalisierung − Sortierreihenfolgen Internationalisierung - Unicode Unterschiedliche Kodierungsmethoden UTF – 32 UTF – 16 UTF – 8 • Bitfolgen fester Länge (4 Byte) • Bitfolgen variabler Länge (2/4 Byte) • Bitfolgen variabler Länge (1-4 Byte) viel Speicherplatz benötigt wahlfreier Zugriff auf Zeichen im Speicher Internationalisierung - Unicode Weniger Speicherplatz benötigt weniger Zeichen darstellbar als mit UTF-32 bzw. UTF-8 flexibel stimmt in den ersten Zeichen mit dem ASCII-Code überein am gebräuchlichsten Kodierung von Zeichen mit UTF - 8 Bitfolge Max. Anzahl darstellbarer Zeichen 0xxxxxxx 28 110xxxxx 10xxxxxx 211 1110xxxx 10xxxxxx 10xxxxxx 216 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 221 Internationalisierung - Unicode Unicode-Unterstützung in DBMS: DBMS seit Version / Jahr DB2 (z/OS) Version 7 / 2001 Oracle Version 7/8 / 1992/1997 MS SQL-Server Version 7 / 1999 (UCS-2) MySQL Version 4.1 / 2004 Ingres Version 2.6 / 2001 PostgreSQL Version 7.1 / 2001 Internationalisierung - Unicode Umsetzung im Datenmodell: Einführen einer Locale_ID: TeileNr Locale_ID Bezeichnung Preis Währung Flags 1 de Gaspedal 15 € … 1 de_a Gaspedal 13 € … 1 en_gb accelerator 12 £ … 1 en_us gas pedal 18 $ … Erweiterung des Primärschlüssels um das neue Attribut Locale_ID Redundanz Internationalisierung – Realisierung im Datenmodell Umsetzung in Programmiersprachen – Java: • Mehrsprachigkeit mit Hilfe von ResourceBundles • ResourceBundle = Sammlung Locale-spezifischer Listen/Dateien #HelloWorld_en.properties Hello = Hello World Bye = Bye #HelloWorld_de.properties Hello = Hallo Welt Bye = Tschüss Verwendung im Quelltext: myBundle.getXXX(„Key“) HelloWorld.getString(„Hello“) Internationalisierung – Umsetzung in Java • Land und eingestellte Sprache lassen sich über folgende Abfragen herausfinden: System.getProperty(„user.country“) System.getProperty(„user.language“) • weiterhin unterstützt: − verschiedene Datums- und Zeitformate − Umwandlung zwischen diesen − verschiedene Ausrichtungen von Schriften durch Swing Internationalisierung – Umsetzung in Java Gliederung 1. 2. 3. Funktionale Aspekte • Klassische Datenmodellierung • Definition • Potentielle Probleme Internationalisierung • Motivation • Lokalisierung und Internationalisierung • Schwerpunkte bei der Umsetzung • Unicode • Realisierung im Datenmodell • Umsetzung in Java Zusammenfassung Zusammenfassung: •Funktionale Aspekte: − objektübergreifende Eigenschaft einer Anwendung (z.B. Rechteverwaltung) − viele Probleme durch direkte Verzahnung von funktionalen und inhaltlichen Aspekten Modularisierung als Ziel • Internationalisierung − durch Globalisierung immer bedeutender − Internationalisierung als Voraussetzung für Lokalisierung −Beeinflusst nicht nur die Sprache selbst (Formate, Modulzusammensetzungen etc.) −Verwendung des Unicode-Standards zur technischen Realisierung Zusammenfassung Vielen Dank für die Aufmerksamkeit! Quellen: •www.p8-Management.de/fileadmin/Dateien/Lehre/Mittelstand_2009/Vortrag_ Dreimann_090630.pdf •http://java.sun.com/j2se/1.4.2/docs/api/java/util/ResourceBundle.html •http://openbook.galileodesign.de/javainsel7/javainsel_11_004.htm •www.roseindia.net/java/java-get-example/java-get-system-locale.shtml •http://www.w3.org/International/questions/qa-i18n.de.php •http://de.wikipedia.org/wiki/Datenmodellierung •http://users.minet.uni-jena.de/~m4goan/pub/goebel-da-2009.pdf •http://users.minet.uni-jena.de/~liebisch/pub/2008_datenhaltung_ konfiguratoren.pdf •http://www.informatik.uni-jena.de/dbis/lehre/ws2009/konfsem/04_vortrag_ schilling_aspekte.pdf •http://www.informatik.uni-jena.de/dbis/lehre/ws2009/konfsem/04_arbeit_ schilling_aspekte.pdf Quellen: •http://de.wikipedia.org/wiki/ISO_8859 •http://de.wikipedia.org/wiki/Unicode •http://de.wikipedia.org/wiki/UTF-16 •http://de.wikipedia.org/wiki/UTF-8 •http://de.wikipedia.org/wiki/UTF-32 •http://www.ruban.de/Themen/NLS_Unicode/IDUG_SJ_Final_Part_1.pdf •http://www.oracle.com/technology/tech/globalization/pdf/TWP_AppDev_Uni code_10gR2.pdf •http://lists.mysql.com/mysql/121518 •http://www.codeproject.com/KB/reporting-services/UnicodeInSQLServer.aspx •https://caj.informatik.uni-jena.de/main?eFJD=RE9XTkxPQUQ %3D&eElE=TVRFNU5UUSUzRA%3D%3D •http://www.postgresql.org/docs/7.1/static/multibyte.html#AEN13656