Method and apparatus for the development of dynamically...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000, C717S152000, C703S022000, C706S919000, C706S045000, C709S241000

Reexamination Certificate

active

06269473

ABSTRACT:

RELATED DOCUMENTS
This application includes a Microfiche Appendix which contains a computer listing of code that implements a specific embodiment of the present invention. The appendix includes copyrighted material consisting of four (4) sheets of microfiche with a total of three-hundred thirty-four (334) frames. 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 in the appendix.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to the object oriented software and in particular, it relates to designing and developing highly configurable software systems. More specifically, the present invention relates to a set of programming constructs and services that provide high levels of modularity, abstraction, dynamism and configurability.
2. Description of the Related Art
Supporting the creation of full-featured, easy to use, high performance, flexible, and reliable software that effectively and efficiently automates enterprise business practices is arguably the highest dollar value challenge for software development environments. Over the last few decades, software development environments have attempted to meet this challenge with increasingly sophisticated software models and the tools to support them. However they have not gotten better fast enough. Enterprise software problems have increased in complexity much faster than enterprise software solutions have increased in simplicity.
Modern enterprise software problems are generally more complex due to broader automation requirements, a changing user profile, and increased business practice diversity and dynamism. Additionally there is huge market pressure to reduce the costs and delivery schedules for adapting this more sophisticated enterprise software to meet specific, as opposed to generic business requirements. The technology industry so far has not responded with the appropriate software development environments to meet this new world's challenges.
1. Forces Driving Complexity
Previous enterprise software was expected to automate a single static business process. Today, enterprise software is expected to automate multiple, dynamic business processes. In addition, enterprise software is expected to provide seamless inter-operability and information access across these processes.
The users of enterprise applications have also changed. Previously, enterprise software was expected to maximize the productivity of inexpensive unskilled information-workers. Now the expectation is to maximize the productivity of expensive skilled knowledge-workers. This means enterprise software is expected to deliver complicated general unstructured information access and analysis.
As well, business practices in a modem enterprise have gotten more diverse and dynamic. The business world where enterprise software exists has changed dramatically because of more diversity in choice of business practices, more sophisticated and complicated business practices, more frequent mergers and acquisitions, greater expansion into global marketplaces, frequent governmental regulatory changes, more sophisticated continuous improvement BPR processes and increased economic uncertainty.
Enterprise software is not only meant to be usable in these complicated scenarios, but to drive them as a key player in these now normal enterprise processes.
2. Customer Requirements
These forces driving change in the business environment have a profound affect on the requirements of the enterprise software that supports these businesses. Current development methods are not well equipped to handle them.
Currently software is designed to meet the needs of potential customers by analyzing the generic requirements of a broad set of customers. These requirements then become input to the software development process where a version of the software that meets those requirements is generated. As new or changing requirements are captured from potential a or existing user base, a new version of the software is generated as quickly as possible to meet them.
While this procedure works adequately for limited, relatively static domains and customer profiles, it is a big problem for other domains and customer profiles. Customers often have a complex mixture of specific-requirements that generic requirements cannot capture. Further, their requirements may not be consistent across all of their users. As well, requirements may change faster than the vendor's development process can meet them. And some customer requirements may be so specific that it is not cost effective for the vendor to attempt to meet them.
This problem has been understood for a while within the industry. As a result, many customers develop their own software in-house because their vendors cannot solve these problems.
If the software vendor is not willing to accept the loss of sales to customers who are not well served by generic software, two approaches are applicable; static-customization, and dynamic-configuration.
Static customization is defined as a software package that is provided with a form of a development environment so that the customer's or vendor's developers can statically modify the package to match their requirements. This strategy includes the component style architectures built on standard object models such as OLE, Java beans etc. This approach has several drawbacks. The customer must either have in-house development expertise or hire hard to find and expensive consultants. It is slow and expensive and has to be repeated as requirements change. And lastly, when the vendor supplies upgrades to software, the customer's customizations often have to be performed over again.
Dynamic Configuration is defined as a software package that is provided with a broad and/or deep set of run-time options that can be set by the customer and that dynamically configure the software to meet customer specific requirements. This approach also has its drawbacks. Current software development environments do not adequately support the complex modeling problem presented by this high degree of run-time configurability because the software-models they are based on do not provide adequate solutions to the problems faced.
3. Limitations of Software Models
Current software models do not support solutions to the problems posed by a modem enterprise software system. They fall short in important features of modularity, abstraction, dynamism and configurability that are vital to application developers. This makes sense in that the traditional history of software environments is that they are first designed to meet the requirements of low-level system implementers and only for application level developers second. For example, both Java and C++ were first designed to solve system level problems. Software environments are typically implemented by people with low-level system expertise, and they naturally craft solutions for the problems that they face and understand.
In many ways, the entities that system designers model and the entities that application designers model are inherently different. System entities are short-lifetime, static and single-dimension. Application entities are long-lived, dynamic and multi-dimensional. System software deals with entities that have a lifetime that is linked to the process in which they are running. For instance, a memory-buffer is gone from the system's memory the second the process is stopped. In contrast, an application entity typically has a lifetime that is linked to real world external entities. They have a lifetime that is as long as the application needs to keep track of those real-world entities. An employee entity needs to be continuously managed even if the system that created it is modified. This aspect of persistence at the application level software leads to many new and different challenges as compared to system level softw

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

Method and apparatus for the development of dynamically... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for the development of dynamically..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for the development of dynamically... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2471962

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