Development of a complex software system usually starts with defining an object model that represents the desired structure and functionality of objects to be implemented in an application framework. In business software environments, these objects are sometimes referred to as “business objects”, which can be defined according to a node structure that may specify corresponding data elements and behaviors to be associated with the objects.
Once the object model is defined, developers are able to produce code for the application framework that implements the defined objects. The application framework acts as a service provider and generally provides the backend level functionality for the software system. Once completed, the developers are then able to focus on coding the frontend aspects of the software system, such as the user interface portion of the system which interfaces with and depends upon the backend level functionality.
Unfortunately, software systems developed in this manner do not make an efficient use of development resources, since different development teams usually are assigned to create the backend and frontend system components. Because the frontend system components cannot be created and tested until the backend system components are developed, the frontend system developers find themselves waiting until the backend system developers are finished before they can start working on the frontend. This results in a serial development process.
Thus, there is a need in the art for a system and method that improves the efficiency of application development in complex software systems.
The present invention significantly reduces software development time by enabling frontend system developers to work in parallel with backend system developers. This may be achieved by providing frontend developers with a simulated backend runtime environment, which provides frontend developers with a mechanism to test frontend application service requests, while allowing the actual backend development to further continue.
Input device 520 may include a keyboard, mouse, pen-operated touch screen or monitor, voice-recognition device, or any other device that provides input. Output device 530 may include a monitor, printer, disk drive, speakers, or any other device that provides output.
Storage 540 may include volatile and nonvolatile data storage, including one or more electrical, magnetic or optical memories such as a RAM, cache, hard drive, CD-ROM drive, tape drive or removable storage disk. Communication device 560 may include a modem, network interface card, or any other device capable of transmitting and receiving signals over a network. The components of the computing device may be connected in any manner, such as via electrical bus or wirelessly.
Software 550, which may be stored in storage 540 and executed by processor 510, may include, for example, the application programming that embodies the functionality of the present invention. Software 550 may include a combination of client applications and enterprise servers such as an application server and a database server.
The computing device may communicate within or over any network, which may include any type of interconnected communication system, which may implement any communications protocol, and which may be secured by any security protocol. Any corresponding network links may include telephone lines, DSL, cable networks, T1 or T3 lines, wireless network connections, or any other arrangement that implements the transmission and reception of network signals.
The computing device may implement any operating system, such as Windows or UNIX. Software 550 may be written in any programming language, such as ABAP, C, C++, lava or Visual Basic. In various embodiments, application software embodying the functionality of the present invention may be deployed on a standalone machine, in a client/server arrangement or through a Web browser as a Web-based application or Web service, for example.
Several embodiments of the invention are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
For example, software modules that implement the present invention may comprise several discrete modules that together still provide the same functionality, data specified in the referenced data stores (such as generated persistency 410, for example) may be spread over several databases and/or systems, and the flow diagram of