System and methodology for providing fixed UML layout for an...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000

Reexamination Certificate

active

06804686

ABSTRACT:

COPYRIGHT NOTICE
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to a system providing methods for facilitating development and maintenance of software applications or systems, with particular emphasis on providing a fixed Unified Modeling Language (UML) layout for an object oriented class browser.
2. Description of the Background Art
Before a digital computer may accomplish a desired task, it must receive an appropriate set of instructions. Executed by the computer's microprocessor, these instructions, collectively referred to as a “computer program,” direct the operation of the computer. Expectedly, the computer must understand the instructions which it receives before it may undertake the specified activity.
Owing to their digital nature, computers essentially only understand “machine code,” i.e., the low-level, minute instructions for performing specific tasks—the sequence of ones and zeros that are interpreted as specific instructions by the computer's microprocessor. Since machine language or machine code is the only language computers actually understand, all other programming languages represent ways of structuring human language so that humans can get computers to perform specific tasks. While it is possible for humans to compose meaningful programs in machine code, practically all software development today employs one or more of the available programming languages. The most widely used programming languages are the “high-level” languages, such C, Pascal, or more recently Java. These languages allow data structures and algorithms to be expressed in a style of writing that is easily read and understood by fellow programmers.
A program called a “compiler” translates these instructions into the requisite machine language. In the context of this translation, the program written in the high-level language is called the “source code” or source program. The ultimate output of the compiler is a compiled module such as a compiled C “object module,” which includes instructions for execution ultimately by a target processor, or a compiled Java class, which includes bytecodes for execution ultimately by a Java virtual machine. A Java compiler generates platform-neutral “bytecodes”—an architecturally neutral, intermediate format designed for deploying application code efficiently to multiple platforms.
Java bytecodes are designed to be easy to interpret on any machine. Bytecodes are essentially high-level, machine-independent instructions for a hypothetical or “virtual” machine that is implemented by the Java interpreter and runtime system. The virtual machine, which is actually a specification of an abstract machine for which a Java language compiler generates bytecode, must be available for the various hardware/software platforms which an application is to run. The Java interpreter executes Java bytecode directly on any machine for which the interpreter and runtime system of Java have been ported. In this manner, the same Java language bytecode runs on any platform supported by Java.
Conventionally, creation of a software program or system includes creation of individual source code modules. This approach simplifies program development by dividing functionality available in the program into separate source modules. When multiple source modules are employed for creating a program, interdependencies between the individual modules often exist. Program logic in one module can, for instance, reference variables, methods, objects, and symbols imported from another module. By the very same token, that module can also export its own methods, objects, and symbols, making them available for use by other modules.
“Visual” development environments, such as Borland's JBuilder®, are the preferred application development environments for quickly creating production applications. Such environments are characterized by an integrated development environment (IDE) providing a form painter, a property getter/setter manager (“inspector”), a project manager, a tool palette (with objects which the user can drag and drop on forms), an editor, and a compiler. In general operation, the user “paints” objects on one or more forms, using the form painter. Attributes and properties of the objects on the forms can be modified using the property manager or inspector. In conjunction with this operation, the user attaches or associates program code with particular objects on screen (e.g., button object); the editor is used to edit program code which has been attached to particular objects. After the program code has been developed, the compiler is used to generate binary code (e.g., Java bytecode) for execution on a machine (e.g., a Java virtual machine).
Although visual development environments enable applications to be created quickly, problems remain with the development, implementation, and maintenance of software applications. In an object oriented development environment, software applications are developed as a set of objects and classes that interact with one another. It is difficult for developers to use those objects and classes unless they fully understand the relationships between them. For example, to change the name of a method in a Java application a developer has to find all classes that invoke the method, so that the invocations of the method are updated accordingly. All told, application developers and other users are required to understand complex relationships between components of software systems in order to develop, implement, and maintain such systems.
In order to better understand the relationships between objects and their classes a number of current development tools provide a class browser which allows navigating between the individual classes of a software system or application. However, a class browser usually displays only the inheritance relationships between classes, which is only one of several relationships that exist between classes. Current class browsers do not provide higher level diagrams that enable developers to understand all of the complex relationships between classes of a system.
A current technology for understanding complex object oriented software systems is the Unified Modeling Language (UML). UML is a standard graphical language for modeling object-oriented systems. For further information on UML, see e.g., “OMG Unified Modeling Language Specification (Version 1.4, September 2001)” available from the Object Management Group, Inc., the disclosure of which is hereby incorporated by reference. A copy of this specification is currently available via the Internet at www.omg.org. UML, at its simplest, is a language that graphically describes a set of elements. At its most complex, UML is used to specify, visualize, construct, and document not only software systems but also business models and non-software systems. Much like a blueprint for constructing a building, UML provides a graphical representation of a system design that may be used by developers to assure architectural soundness of a system. UML is frequently used to design the relationships between components (e.g., classes in the case of a Java program) before such components are developed and implemented in source code format.
A number of UML design tools are available for use in conjunction with the design and development of a software system. However, these current UML design tools are focused on system design and are not integrated with a class browser. Typically a developer uses a UML design tool for system design, but uses a separate development tool for developing the source code modules necessary to implement the system from the design. Because the UML design tools and development

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and methodology for providing fixed UML layout for an... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and methodology for providing fixed UML layout for an..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and methodology for providing fixed UML layout for an... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3318201

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.