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

Documentos relacionados