Funktionale Aspekte Pia Lobenstein 20.05.2010
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
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 Bitfolgen fester Länge (4 Byte) viel Speicherplatz benötigt wahlfreier Zugriff auf Zeichen im Speicher UTF 16 Bitfolgen variabler Länge (2/4 Byte) Weniger Speicherplatz benötigt weniger Zeichen darstellbar als mit UTF-32 bzw. UTF-8 UTF 8 Bitfolgen variabler Länge (1-4 Byte) flexibel stimmt in den ersten Zeichen mit dem ASCII-Code überein am gebräuchlichsten Internationalisierung - Unicode
Kodierung von Zeichen mit UTF - 8 Bitfolge 0xxxxxxx 110xxxxx 10xxxxxx 1110xxxx 10xxxxxx 10xxxxxx 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx Max. Anzahl darstellbarer Zeichen 8 2 11 2 16 2 21 2 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. 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
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
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