inter nationalization in software design and architecture

26
Internationalization in Software Design and architectur e Multi-Layer and Multi-tier Architecture

Upload: samreen36

Post on 06-Apr-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 1/26

Internationalization

in Software Designand architecture

Multi-Layer and Multi-tierArchitecture

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 2/26

Introduction

Internationalization(i18n) is the process of 

designing an application so that it can be adapted

to different languages and regions, without

requiring engineering changes.

Localization(i10n) is the process of adapting

software for a specific region or language byadding locale-specific components and

translating text.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 3/26

Focal Points of Internationalization

Language

Computer-encoded text

Alphabets/scripts; most recent systems use the Unicodestandard to solve many of the character encoding problems.

Different system of numerals.

Writing direction

Text processing differences, such as the concept of capitalization

Input

Enablement of keyboard shortcuts on any keyboard layouts.

Graphical representation of text(printed materials,online images containing text)

Spoken(Audio)

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 4/26

Focal Point (Contd.)

Culture

Images and Colors issues

Names and titles

Currency (symbols, positions of currency markers)

Weights and measures

Government assigned numbers (such as SSN in US,

National insurance number in the UK and in Pakistan

CNIC No.) Telephone numbers, addresses and postal codes etc.

Paper Size.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 5/26

Focal Points (Contd.)

Writing Conventions

Date/time format, including use of different

calendars

Time Zones

Formatting Numbers(decimal separator, digit

grouping) Differences in symbols ( e.g. quoting in

English and << >> in French)

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 6/26

Focal Points (Contd.)

Any other aspect of the product or service that is

subject to regulatory compliance

Disputed borders shown in maps.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 7/26

Multi-layer andMulti-tier Architecture

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 8/26

What is Architecture.?

Formal Definition: Software architecture is the fundamental

organizationof a system, embodied in its components, their

relationships to each other and the environment, and the

principles governing its design and evolution.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 9/26

Why is i18n important?

Build once, sell anywhere

Modularity

With the addition of localization data, the same executable

can be run worldwide.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 10/26

Characteristics of i18n...

Textual elements such as status messages and the GUI component

labels are not hardcoded in the program. Instead, they are stored

outside the source code and retrieved dynamically.

Support for new languages does not require recompilation.

Other culturally-dependent data, such as dates and currencies,

appear in formats that conform to the end-user's region and

language.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 11/26

Really why

Carmaggedon

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 12/26

The rest is Java why?

Java:

is readable!

has most complete built-in i18n support.

easily illustrates correct implementation of many i18n concepts.

concepts can be extended to any language.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 13/26

Java Example:Messages...

Before:

System.out.println("Hello.");

System.out.println("How are you?");

System.out.println("Goodbye.");

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 14/26

Too much code!

After:

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 15/26

SampleRun

% java I18NSample fr FR 

Bonjour.

Comment allez-vous?

 Au revoir.

% java I18NSample en US

Hello.

How are you?

Goodbye.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 16/26

What do I have to change?

Just a few things

messages

labels on GUI components

online help

sounds

colors

graphics

icons

dates

times

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 17/26

Whats easily translatable?

Isolate it! Status messages

Error messages

Log file entries

GUI component labels BAD!

GOOD!

Button okButton = new Button(³OK´);

String okLabel = ButtonLabel.getString("OkKey");

Button okButton = new Button(okLabel);

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 18/26

Localizability

As confusing as it may sound, localizability is an aspect

of internationalization, not localization.

It involves enabling the product to be easily localized,

without manipulating code or having to edit files that

contain code.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 19/26

Tips for Localizability

Never hard-code anything :-Even constants, literals, and similar items can be defined in the definition

Section of a program, or in a header file. This is more than i18n, it's structured coding.

Do not restrict font size:-

Asian characters require a much larger point size for legibility than Latin

characters. If a small font size is necessary to fit all the English text into a layout, then the

layout needs to be redesigned. See the layout section for more information.

Be aware that the operating system(s) your program is running on

may also be localized.:-

Messages may be translated, even in system commands. If you need to parse the

output of an OS command, change the environment locale for that command.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 20/26

Software Architecture

Software architecture is process of designing the

global organization of a software system,

including:

Dividing software into subsystems.

Deciding how these will interact.

Determining their interfaces.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 21/26

The importance of software

architecture Why you need to develop an architectural model:

To enable everyone to better understand the system

To allow people to work on individual pieces of the system in

isolation

To prepare for extension of the system

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 22/26

Describing an architecture

using UML

All UML diagrams can be useful to describe aspects of the

architectural model

Four UML diagrams are particularly suitable for architecture

modelling:

Package diagrams Component diagrams

Deployment diagrams

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 23/26

UML diagrams

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 24/26

TheMulti-Layer architectural

pattern

In a layered system, each layer communicates onlywith the layer immediately below it.

Each layer has a well-defined interface used by the layerimmediately above.

The higher layer sees the lower layer as a set of services.

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 25/26

Example of multi-layer systems

8/3/2019 Inter Nationalization in Software Design and Architecture

http://slidepdf.com/reader/full/inter-nationalization-in-software-design-and-architecture 26/26

The multi-layer architecture

and design principles1. Divide and conquer : The layers can be independentlydesigned.

2. Increase cohesion: Well-designed layers have layercohesion.

3. Reduce coupling: Well-designed lower layers do notknow about the higher layers and the only connectionbetween layers is through the API.

4. Increase abstraction: you do not need to know thedetails of how the lower layers are implemented.

5. Increase reusability : The lower layers can often bedesigned generically.