Advanced Issues In Programming - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Advanced Issues In Programming

Description:

In 1991, using Oak underlying technology Java programming language was born ... devices and set-top boxes[2] Oak downfall: -failed due to the TV set-top box ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 34
Provided by: oss
Category:

less

Transcript and Presenter's Notes

Title: Advanced Issues In Programming


1
Advanced Issues In Programming
  • Java Programming Language (JSE 5)

Tang Kiah Siang WGA040005
2
History
  • Java history
  • originally called Oak programming language1
  • In 1991, using Oak underlying technology Java
    programming language was born
  • Oak programming language
  • Oak main objective
  • -designed for handheld devices and set-top
    boxes2
  • Oak downfall
  • -failed due to the TV set-top box and
    video-on-demand
  • industries still in infancy age during 1991

Java programming language Java main objective
-enable rich multimedia features in the
Internet3 Rising Java -with blossoming
Internet era, Sun Microsystems took this
opportunity to concentrate to Internet.
3
History
  • Who design it?
  • James Gosling

4
Where is it in use today (actual projects if
possible)?
5
Where is it in use today (actual projects if
possible)?
6
What programming paradigm(s) does it readily
support?
  • Java support multiple programming paradigm, some
    of the important paradigms are-
  • Object-oriented programming
  • object-oriented programming make possible
    essential features (such as class, object,
    inheritance, encapsulation, abstraction,
    polymorphism, etc) to be implemented in
    application.
  • Generic programming
  • Generic programming is implemented and supported
    in Java language (JDK 5.0)14.
  • Event-driven programming
  • Just like Microsoft Visual Studio .net, Java
    IDE(Java Studio Enterprise, Netbeans, JBuilder,
    and etc.) support event-driven programming too.

7
What application areas is it most suited for?
  • Referring the list below, from sport to aerospace
    application areas, all these colossal
    organizations or business enterprises have chosen
    and fully implemented Java programming language
    for their software. This demonstrate that Java
    programming language have big potential to exceed
    in most of areas.

8
What are the features of Java?  
  • Platform Independence
  • Java Virtual Machine or better known as JVM
    (bundle inside Java Runtime Environment, JRE) is
    the key ingredient that allow Java application
    (java machine code called byte code) to run in
    any platform.
  • Object Orientation
  • Object-oriented programming provides
    indispensable features such as class, object,
    inheritance, encapsulation, abstraction,
    polymorphism, and etc, to be implemented in java
    application. By correctly implement object
    oriented techniques in software will improves the
    maintenance, reusability, and modifiability of
    software.
  • Rich Standard Library
  • One of Javas most eye-catching features is its
    standard library. In the JDK 5.0, alone consists
    of hundreds of classes and methods (not to
    mention, other Java technologies like Java Micro
    Edition (JME), Java Enterprise Edition 5 (JEE 5),
    and others java technologies.
  • Applet Interface
  • In addition to being able to create stand-alone
    applications, Java developers can create programs
    that can be downloaded from a web page and run on
    a client browser.
  • Garbage Collection
  • Java does not need programmers to explicitly
    free dynamically allocated memory. That is why
    there is no pointer feature in Java. This makes
    Java programs easier to write and less prone to
    memory errors.

9
(No Transcript)
10
What are the claims made of its security,
portability, efficiency, extensibility, and
maintainability?
  • What Sun Microsystems claims-
  • Security
  • Fundamental the Java SE Platform is a dynamic,
    extensible security architecture, standards-based
    and interoperable18.
  • Portability
  • Write Once Run Anywhere is the Sun
    Microsystems motto for portability19. Sun
    Microsystems claim Java program could write one
    and run anywhere platform(Solaris, Windows,
    Linux, and Other15) as long there is JVM
    installed in that machine.
  • Efficiency
  • Sun Microsystems never claim efficiency as part
    of Java language attribute. This can be fairly
    easily understood with the existence of JVM
    layer. However, there is a sign Sun Microsystems
    keep on improving the java programming language
    especially on the JVM. A benchmark has been made
    by Sun Microsystems to illustrate the increase
    performance between J2SE 5.0 and J2SE 1.4.2 (for
    more information, please visit 20)

11
What are the claims made of its security,
portability, efficiency, extensibility, and
maintainability?
  • Sun Microsystems claims-
  • Extensibility
  • Extensibility within the program
  • Object oriented provide extensibility21
  • Extensibility beyond the program
  • The portability and extensibility of both XML
    and Java make them the ideal choice for
    information that is exchanged between different
    classes of clients and different servers that run
    on varied system platforms22.
  • Maintainability
  • Applications that are based on standardized
    packages are easier to maintain23.

12
Describe the compilation/interpretation/execution
model it uses.
  • The Java compiler translates Java source code
    into a special representation called bytecode
  • Java bytecode is not the machine language for
    any traditional CPU
  • Another software tool, called an interpreter,
    translates bytecode into machine language and
  • executes it
  • Therefore the Java compiler is not tied to any
    particular machine
  • Java is considered to be architecture-neutral

Figure 1.1 Java Translation 24 (Book Java
Software Solution "Foundations of program
design", Authors John Lewis William Loftus.
Publisher Pearson, Addison Wesley)
13
Description of Language
  • Scalar data objects
  • Scalar data object is considered as elementary
    data objects since these objects only have a
    single attribute25. There are some type that
    can be categorized as scalar data types such as
    numeric data type, booleans, characters, and
    enumerations.

14
Description of Language
  • Scalar data objects
  • Numeric data types

15
Description of Language
  • Scalar data objects
  • Numeric data types

16
Description of Language
  • Scalar data objects
  • Boolean data type

17
Description of Language
  • Scalar data objects
  • Character data type
  • Enumeration

18
Description of Language
  • Composite objects
  • Composite data types are those that are built up
    from other (generally scalar) data types.
    Composite data types can be built from elementary
    types and from other composite types. For
    example, string data type was composed from
    series of character.

19
Description of Language
  • Composite objects
  • Composite data types are those that are built up
    from other (generally scalar) data types.
    Composite data types can be built from elementary
    types and from other composite types. For
    example, string data type was composed from
    series of character.
  • String
  • Pointer

20
Description of Language
  • Structure objects
  • A data object that is constructed as an
    aggregate of other data objects is termed a
    structured data object. A structured data type is
    a type in which each value is a collection of
    component items.
  • Array

21
Description of Language
  • Structure objects
  • Record

22
Description of Language
  • Structure objects
  • List

23
Description of Language
  • Abstract data types
  • A mathematical model which may be used to
    capture the essentials of a problem domain in
    order to translate it into a computer program
    examples include queues, lists, stacks, trees,
    graphs, and sets29.

24
Description of Language
  • Active Objects
  • The Active Object design pattern decouples
    method execution from method invocation that
    resides in their own thread of control. The goal
    of an active object is to introduce concurrency,
    by using asynchronous method invocation and a
    scheduler for handling requests30. In Java,
    there is already a concept of an active object,
    which contains a distinguished method, named run
    that can be started on a thread31.

25
Description of Language
  • Active Objects
  • Multithreading

26
Final Evaluation
What I think?
  • Do you have any basis to agree or disagree with
    any claims made of its security,
  • portability, efficiency, extensibility/maintainabi
    lity?
  • Security
  • Not agree. I did experience security flaw from
    using Java applet once. I think this happen when
    I went to visit a website and I signed an applet
    without knowing it could harm my pc, as a result
    my Internet Explorer browser had been corrupted
    with spams bombardment. After some researches I
    found that Java still need quite a way to go for
    their security, some of concerns I found are-
  • Final Project for Computer and Network Security
    (Dougless R.Dechow)33
  • Found Java security weakness in Denial of Service
    (DOS), Antagonistic, System Modification and
    Invasion of Privacy that mainly uses Java applets
    to launch attack.
  • Portability
  • Agree as I have never encounter any portability
    issue for Java application. There is a experiment
    by InfoWorld(publishing company), Eric Hammond
    did a test on Java program on different
    platform(windows, unix and solaris operating
    system) and found no problem at all34.

27
Final Evaluation
What I think?
  • Do you have any basis to agree or disagree with
    any claims made of its
  • security, portability, efficiency,
    extensibility/maintainability?
  • Efficiency
  • I do think that a machine need to meet certain
    requirement to run a java program efficiently as
    existence of JVM layer play a part as
    intermediate between operation system and java
    application. InfoWorld(publishing company), Eric
    Hammond also did efficiency test on the Java
    application on different old platform(generally
    Pentium Pro 180 processors and 128 RAM) and the
    Java program run in acceptable time and
    efficiently35.
  • In addition, there is a sign Sun Microsystems
    keep on improving the java programming language
    especially on the JVM. A benchmark has been made
    by Sun Microsystems to illustrate the increase
    performance between J2SE 5.0 and J2SE 1.4.2 (for
    more information, please visit 20).
  • Extensibility
  • Extensibility within the program
  • Agree. From I learned and experience, object
    oriented concept definitely determine the
    extensibility of a certain program.
  • Extensibility beyond the program
  • Agree. From my experience, Java and XML is
    prefect partner for IT integration, especially
    for enterprise legacy system and normal
    application to exchange information. One of
    successful project is how Java Technology and XML
    are improving healthcare in Brazil36.

28
Final Evaluation
What I think?
  • Do you have any basis to agree or disagree with
    any claims made of its security,
  • portability, efficiency, extensibility/maintainabi
    lity?
  • Maintainability
  • I agree that applications that are based on
    standardized packages are easier to maintain. In
    addition, one of the critical strengths of object
    oriented programming has been that the code is
    easier to maintain. Object-oriented code has
    enabled the creation of larger, more
    highly-functional and extensible applications yet
    easy to maintain.

What aspect of this language did you find most
difficult to learn/understand? Multithreading as
I found that to develop a multithreading program
for distributed system could be complicate and
consume time especially when I need to control
the flow of information with a large number of
users at the same time.
29
Final Evaluation
What I think?
  • How would you rate the programming environment? 
    compiler/interpreter messages?
  • Personally, I will give-
  • Would you use this language again and if so what
    for? if not, what would you choose to use instead
    and why?
  • Yes, I will use Java language-
  • Java EE for web services
  • Java SE for stand alone application
  • Java ME for mobile application
  • Design mistakes (in your opinion or the opinion
    of others)? Have they been corrected in other
    languages that were a follow-on. What if anything
    is missing in your opinion?
  • No, so far I am happy with all the Java language
    design provides.

30
References
  • 1 Patrick Naughton. URL http//ils.unc.edu/blaz
    e/java/javahist.html
  • 2 Sun Microsystems. URL http//java.sun.com/fea
    tures/1998/05/birthday.html
  • 3 Sun Microsystems. San Jose Mercury News
  • URL http//java.sun.com/features/1998/05/images/m
    erc_large.gif
  • 4 Oreilly. Open Source and NASA's Mars Rover
    (2004)
  • URL http//www.onlamp.com/pub/a/onlamp/2004/08/02
    /oss_mars_rover.html
  • 5 CNN. Internet language runs
    remote-controlled Mars rover (17 January 2004)
  • URL http//www.cnn.com/2004/TECH/space/01/16/spac
    e.mars.java.reut/index.html
  • 6 Sun Developer Network. How Nike iD Hurdled
    the Java Technology and Flash Barrier (2006)
  • URL http//developers.sun.com/learning/javaoneonl
    ine/2006/coolstuff/TS-9123.pdf
  • 7 Sun Developer Network. The Future ARM
    Architecture for Execution Environments (2005)
  • URL http//developers.sun.com/learning/javaoneonl
    ine/2005/mobility/TS-7178.pdf
  • 8 ARM. ARM Jazelle Technology
  • URL http//www.arm.com/products/esd/jazelle_home.
    html
  • 9 Sun Developer Network, Steve Meloan.
    Futurama Using Java Technology to Build Robots
    That Can See, Hear Speak, and Move (July 2003)
  • URL http//java.sun.com/developer/technicalArticl
    es/Programming/robotics/
  • 10 Lejos. Frequently Asked Questions
  • URL http//lejos.sourceforge.net/faq.html
  • 11 F1 Nutter. McLaren and Java programming

31
References
  • 19 Sun Microsystems Press. Independent tests
    demonstrate write one run anywhere capabilities
    of Java (18 September 1997)
  • URL http//www.sun.com/smi/Press/sunflash/1997-09
    /sunflash.970918.2.xml
  • 20 Sun Developer Network. J2SE 5.0
    Performance White Paper
  • URL http//java.sun.com/performance/reference/whi
    tepapers/5.0_performance.html2
  • 21 Sun Developer Network. Java(TM) Advanced
    Imaging API README
  • URL http//java.sun.com/products/java-media/jai/R
    EADME-1_1_2.html
  • 22 Sun Developer Network. Java Technology and
    XML FAQs
  • URL http//java.sun.com/xml/faq.htmlrelationship
  • 23 Sun Developer Network. Concurrent
    Programming with J2SE 5.0
  • URL http//java.sun.com/developer/technicalArticl
    es/J2SE/concurrency/
  • 24 Book Java Software Solution "Foundations of
    program design", Authors John Lewis William
    Loftus. Publisher Pearson, Addison Wesley
  • 25 Bharat Kinariwala and Tep Dobry. Scalar
    Data Types
  • URL http//www-ee.eng.hawaii.edu/tep/EE160/Book/
    chap5/section2.1.3.html
  • 26 Prentice Hall. Fundamental Programming
    Structures in Java
  • URL http//www.phptr.com/articles/article.asp?p1
    01766seqNum3rl1
  • 27 CPlusPlus.com. Variables. Data Types
  • URL http//www.cplusplus.com/doc/tutorial/variabl
    es.html
  • 28 Comparing VB.Net to VB6
  • URL http//www.thescarms.com/vbasic/VB6vsVBNet.as
    p

32
Questions
33
Thank you.
Goodbye!
Write a Comment
User Comments (0)
About PowerShow.com