Logo

Navigation
  • Home
  • Services
    • ERP Solutions
    • Implementation Solutions
    • Support and Maintenance Solutions
    • Custom Solutions
    • Upgrade Solutions
    • Training and Mentoring
    • Web Solutions
    • Production Support
    • Architecture Designing
    • Independent Validation and Testing Services
    • Infrastructure Management
  • Expertise
    • Microsoft Development Expertise
    • Mobile Development
    • SQL Server Database and BI
    • SAP BI, SAP Hana, SAP BO
    • Oracle and BI
    • Oracle RAC
  • Technical Training
    • Learn Data Management
      • Business Intelligence
      • Data Mining
      • Data Modeling
      • Data Warehousing
      • Disaster Recovery
    • Learn Concepts
      • Application Development
      • Client Server
      • Cloud Computing Tutorials
      • Cluster Computing
      • CRM Tutorial
      • EDI Tutorials
      • ERP Tutorials
      • NLP
      • OOPS
      • Concepts
      • SOA Tutorial
      • Supply Chain
      • Technology Trends
      • UML
      • Virtualization
      • Web 2.0
    • Learn Java
      • JavaScript Tutorial
      • JSP Tutorials
      • J2EE
    • Learn Microsoft
      • MSAS
      • ASP.NET
      • ASP.NET 2.0
      • C Sharp
      • MS Project Training
      • Silverlight
      • SQL Server 2005
      • VB.NET 2005
    • Learn Networking
      • Networking
      • Wireless
    • Learn Oracle
      • Oracle 10g
      • PL/SQL
      • Oracle 11g Tutorials
      • Oracle 9i
      • Oracle Apps
    • Learn Programming
      • Ajax Tutorial
      • C Language
      • C++ Tutorials
      • CSS Tutorial
      • CSS3 Tutorial
      • JavaScript Tutorial
      • jQuery Tutorial
      • MainFrame
      • PHP Tutorial
      • VBScript Tutorial
      • XML Tutorial
    • Learn Software Testing
      • Software Testing Types
      • SQA
      • Testing
  • Career Training
    • Career Improvement
      • Career Articles
      • Certification Articles
      • Conflict Management
      • Core Skills
      • Decision Making
      • Entrepreneurship
      • Goal Setting
      • Life Skills
      • Performance Development
      • Personal Excellence
      • Personality Development
      • Problem Solving
      • Relationship Management
      • Self Confidence
      • Self Supervision
      • Social Networking
      • Strategic Planning
      • Time Management
    • Education Help
      • Career Tracks
      • Essay Writing
      • Internship Tips
      • Online Education
      • Scholarships
      • Student Loans
    • Managerial Skills
      • Business Communication
      • Business Networking
      • Facilitator Skills
      • Managing Change
      • Marketing Management
      • Meeting Management
      • Process Management
      • Project Management
      • Project Management Life Cycle
      • Project Management Process
      • Project Risk Management
      • Relationship Management
      • Task Management
      • Team Building
      • Virtual Team Management
    • Essential Life Skills
      • Anger Management
      • Anxiety Management
      • Attitude Development
      • Coaching and Mentoring
      • Emotional Intelligence
      • Stress Management
      • Positive Thinking
    • Communication Skills
      • Conversation Skills
      • Cross Culture Competence
      • English Vocabulary
      • Listening Skills
      • Public Speaking Skills
      • Questioning Skills
    • Soft Skills
      • Assertive Skills
      • Influence Skills
      • Leadership Skills
      • Memory Skills
      • People Skills
      • Presentation Skills
    • Finding a Job
      • Etiquette Tips
      • Group Discussions
      • HR Interviews
      • Interview Notes
      • Job Search Tips
      • Resume Tips
      • Sample Resumes
 

Using UML with Java

By Exforsys | on June 19, 2007 |
UML

Using UML with Java

While Java is not a new language, its application for the development of embedded systems is quite new. Developers are beginning to take a second look at modeling languages such as UML, and many feel it can be a powerful tool in their development arsenal.

Introduction

Java and UML are both gaining rapid popularity in the development community at the same time, and it is only logical to assume that someone would eventually propose the idea of using them together. While many developers felt UML was too big and bulky for embedded system in the past, these attitudes have changed in recent years. Additionally, the introduction of the Java 2 Micro Edition has also reinforced these views.

It should be noted that when Java is used with embedded systems, it is not limited to J2ME. However, it appears that J2ME is the current front runner in this process. It is being heavily used for the development of devices which are embedded or handheld, and Java has a language has many strengths that will appeal to those who are in the development community. Some examples of this include support for object oriented programming methods, and exception handling, existing frameworks, and a runtime environment that is stable. In recent years, the Java runtime has undergone dramatic improvements. Much of this is a result of using the "just in time compiler", as well as the virtual machines.

While the memory of Java is much larger than most C based applications, it uses VMs which are smaller and more efficient. These are just a few of the features that Java brings to developers who work with embedded systems. If you’re tired of spending hours debugging various applications, there is no doubt that you will welcome the object oriented features that Java uses. However, while Java may help developers get rid of a number of annoying problems; it is not a cure all. Because highly complex Java devices are being built on a regular basis, the demand for more complex forms of behavior will also increase.

Challenges that Developers face with complex Java devices

While complex Java applications can be hard to build, it is likely that they have a number of features that make it worth it. Some of these could include reliability and concurrency. The J2ME applications are embedded, and they must be able to have quick reactions to inputs that come from either users or devices. In many situations, a program may have device drivers, user interfaces, and network connections that require concurrent behavior that is complex. One element that can be helpful in a situation like this is the active object. An active object is one that has a thread of control which is unique to it. The biggest problem with many Java objects is that they are passive.

These objects will only react to specific method calls, and they will be inactive if no method is called. Because an active object has its own thread of control, it can process messages that it receives via a message queue. Unlike most Java objects, it is not limited to a method call. Message queues are powerful because they allow a form of communication which is asynchronous. The active object can carry out various tasks as the messages arrive. The messages will be processed once these activities are finished. Now, those of you who have read this far may be wondering how UML is related to this. The relationship lies in the fact that the active object can only be modeled directly in UML.

The Unified Modeling Language provides a strong building block which will allow for the development within systems that are embedded. UML has a number of unique characteristics, and these attributes have allowed it to be useful for programmers who want to design embedded applications.

Some of the features it has include protocols and ports, and it also uses capsules as well. The capsule is a special class which has its own control thread. It can communicate with other capsules by utilizing a message queue, and it can also symbolize active objects in UML. The capsule comprises the UML tool kit, and it can address various needs that most embedded developers can relate to.

UML Powerful features

UML has powerful features which can enhance Java

In addition to the UML capsules, the ports are helpful as well. The ports will be denoted as interface objects that will allow messages to be transferred among capsules. The protocols will be used to denote a collection of symbols that can be accepted and sent through a port. When you combine the ports, capsules, and protocols, you have a system which will allow engineers to create systems for components.

These components could be things such as logic chips or microcontrollers. The components will have interfaces which are established, and they can all be connected together in a specific diagram. In this system, the behavior of the capsule is defined by the manner in which it will react to a stimulus.

A set of finite state machines will be used to showcase the behavior of the capsule. State machines are also useful for hardware design, and they can allow developers to build software that is event driven. The state machines which reside in capsules can quickly react to events that may be received from public ports. The systems that are designed with capsules are in reality networks that allow state machines to communicate. It should be noted that this shares a number of similarities with the structure of advanced hardware logic. When small building blocks are used in conjunction with behavior that is well understood, it is a proven way to gain a great deal of success even within large systems.

The Unified Modeling Language is beneficial because it can automatically create source code. At its very essence, UML is a programming language which is much more advanced than either Java or C++. In fact, the UML models are so formal that they can be used to create an application which is complete. When the structure is defined by relationships and collaboration diagrams, the behavior with state machines will be detailed and rich. The code which is created from these models will be mature, and it will be available to developers for longer than a decade. Code generation is important for a number of reasons. It will enhance the power of a visual model by giving you visual blocks which are powerful.

Conclusion

Because UML can generate code which gets rid of tedious manual coding, it is much more efficient and less prone to errors. When a project uses manual coding, it has a tendency to be full of errors. These errors can destroy your project over the long term. The ports, protocols, and capsules will give developers an advanced system that can be used for effective communication.

Overall the automatic generation of code will improve the productivity and efficiency of the development team. By using UML in conjunction with Java, developers can create complex applications with ease. Most importantly, these applications will be powerful, robust, and flexible.

« « Nature of Communication within NLP
Data Modeling Introduction » »

Author Description

Avatar

Editorial Team at Exforsys is a team of IT Consulting and Training team led by Chandra Vennapoosa.

Free Training

RSSSubscribe 394 Followers
  • Popular
  • Recent
  • Using UML with PHP and Perl

    June 23, 2007 - 0 Comment
  • Using UML with .NET

    June 25, 2007 - 0 Comment
  • UML Elements : Class Diagram

    June 12, 2007 - 0 Comment
  • UML Certifications

    July 1, 2007 - 0 Comment
  • UML Elements : State Diagram

    June 12, 2007 - 0 Comment
  • UML Elements : Sequence Diagram

    June 14, 2007 - 0 Comment
  • UML Introduction

    May 29, 2007 - 0 Comment
  • UML Industry Usage

    May 29, 2007 - 0 Comment
  • Why Unified Modeling Language (UML)

    May 30, 2007 - 0 Comment
  • How UML Helps Projects

    June 1, 2007 - 0 Comment
  • UML Certifications

    July 1, 2007 - 0 Comment
  • Using UML with .NET

    June 25, 2007 - 0 Comment
  • Using UML with PHP and Perl

    June 23, 2007 - 0 Comment
  • UML Elements : Use Case Diagram

    June 15, 2007 - 0 Comment
  • UML Elements : Sequence Diagram

    June 14, 2007 - 0 Comment
  • UML Elements : State Diagram

    June 12, 2007 - 0 Comment
  • UML Elements : Class Diagram

    June 12, 2007 - 0 Comment
  • UML basics

    June 5, 2007 - 0 Comment
  • How UML Helps Projects

    June 1, 2007 - 0 Comment
  • Why Unified Modeling Language (UML)

    May 30, 2007 - 0 Comment

Exforsys e-Newsletter

ebook
 

Related Articles

  • UML Certifications
  • Using UML with .NET
  • Using UML with PHP and Perl
  • UML Elements : Use Case Diagram
  • UML Elements : Sequence Diagram

Latest Articles

  • Project Management Techniques
  • Product Development Best Practices
  • Importance of Quality Data Management
  • How to Maximize Quality Assurance
  • Utilizing Effective Quality Assurance Strategies
  • Sitemap
  • Privacy Policy
  • DMCA
  • Trademark Information
  • Contact Us
© 2023. All Rights Reserved.IT Training and Consulting
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptReject Read More
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT