Component-based source code generator

Data processing: software development – installation – and managem – Software program development tool – Code generation

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S108000

Reexamination Certificate

active

06742175

ABSTRACT:

FIELD OF THE INVENTION
The invention relates to source code generators, more specifically to source code generated in the context of component-based programming. In particular, using a set of generation instructions and parameters, the generator produces nearly-repetitive and repetitive source code, ready for use by the developer.
BACKGROUND OF THE INVENTION
Software development processes have changed dramatically in recent years as a result of the increasing usage of object-oriented models for programming, project management, and systems integration.
Enterprise applications are large, complex systems that turn abstract business practices into specific processes and event-driven interactions. These applications form the core of an organization's methods.
Firms can capture and distill these “best practices” in a number of ways. In many cases, the creation of custom software for the entire organization is both unprofitable and beyond the capabilities of the enterprise. As a result, these companies turn to enterprise application software vendors for software solutions. Variously referred to as Enterprise Resource Planning (ERP, from vendors like Peoplesoft and SAP), Customer Relationship Management (Vantive, Clarify, Siebel) and Professional Services Automation (Niku, Visto), these systems quite simply run the business.
Each company is different, however, and these differences are what make each firm competitive. To translate their distinct competencies into electronic processes, companies must tailor their enterprise applications to the way they work. This means tuning, changing, and growing the applications over time.
One approach to this is known as “parameterization”. In parameterization, trained ERP technicians configure many parameters and variables in order to tailor the behavior of the application to the nature of the business.
A second approach to modifying existing enterprise applications is to take an existing, generic application and to modify its source code directly. Until recently, a company that needed a highly specialized application because of its unique business practices was faced with paying a license fee and rewriting huge volumes of code from one of these generic applications.
Companies use source code customization as a response to the lack of control and customization afforded them by off-the-shelf applications. Similarly, they use parameterized ERPs as a response to poor maintainability and complex coding of licensed software or internally developed systems. A powerful alternative to these two approaches is the object-oriented framework approach.
Application development always starts from a set of incomplete, imprecise, and sometimes contradictory or inconsistent requirements. It is a difficult task for the developers and analysts of a complex system to clearly define from the outset what is being built.
Object-oriented programming methodologies strive to correct this imprecision through a more accurate modeling of the real world. As a successor to procedural models of coding, object-oriented techniques create a common vocabulary and well-defined boundaries in order to ease the integration of disparate objects. This helps developers define the scope and interaction of an application as a set of discrete components, improving design and facilitating subsequent modifications to the software.
Developers and systems analysts use high-level design tools called modeling tools to describe the business purpose of an application in a logical way that is abstracted from the physical implementation of the specific programming language, operating system and hardware on which the application runs.
Having an abstract description of the application reduces the burden of creating and maintaining the various software iterations it will undergo in its lifetime. If the job is to locate a piece of functionality in a million-line program, the guidance a model can provide becomes invaluable.
To promote a consistent methodology among modeling vendors, the industry has developed the Universal Modeling Language (UML) in order to standardize the elements used during the analysis and design of applications. The wide acceptance of UML and the emergence of component-based development have made the use of modeling tools the starting point to any object-oriented development.
Rather than designing an application from scratch, companies develop multi-tier e-commerce applications that make use of framework-based solutions offering services like persistency, security and transactions. A specific framework is an object-oriented abstraction which provides an extensible library of cooperating classes that make up a reusable design solution for a given problem domain. In essence, a framework offers a generic solution for which developers need to implement specialized code acting as component-to-framework integration code in each component in order to specify its particular process in the framework.
The framework approach is a dramatic improvement to the informal alteration of licensed, procedural source code. Frameworks leverage capital-intensive software investments through re-use, and provide a much higher-level application programming interface so that applications can be developed far more quickly.
When a commercial framework is customized or when new functionality is added to an in-house framework, changes are often required in the component-to-framework integration code for all participating components. Maintaining the code over the course of such changes is a tedious, error-prone process. With the popularity of framework-based solutions, it is also an increasingly large part of a developer's work. Even when this code is produced by a code generator, developers still have to manually change the generated integration code in every component participating in a given framework because code generators cannot be customized to the degree where company requirements are properly implemented inside the framework. Also, most frameworks prevent a company from centralizing and capturing their corporate repository data because typical code generators are seldom well integrated with a modeling tool.
Frameworks are not only used to build integrated business applications in any industry, but also in the development of: user interfaces, graphics libraries, multimedia systems, and printing solutions; low-level services such as drivers and network protocols; common sets of infrastructure services such as those provided by the Enterprise JavaBeans™ Component Model and CORBA (short for Common Object Request Broker Architecture) Object Services and development tools that further speed application creation.
Because a framework links software components with a high-level generic solution, it is imperative that the framework and the components remain synchronized. This is generally achieved by modifying both the framework and the components manually.
In some specific cases, however, information within the modeling tool can be used to generate portions of the integration code, without manual intervention. This is known as code generation. Code generation systems promise to streamline application development by letting developers work at a more abstract level in their design.
Unfortunately, typical code generators tend to generate incomplete code that must be manually altered or even discarded entirely.
The two most time-consuming repetitive tasks for a developer are: repetitive coding methods, such as writing the specialized software methods associated with each property of a component known as ‘get’ and ‘set’ selectors and nearly-repetitive coding of specific methods that the framework calls. When a developer extends the functionality within a framework, it is done by sub-classing one of the existing components and extending its functionality. In order to reflect these changes in the component-to-framework integration code, developers must manually make the changes according to the new functionality. Nearly-repetitive coding is prone to error, and its monotony reduces the satisfaction and productivit

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

Component-based source code generator does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Component-based source code generator, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Component-based source code generator will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3214225

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