Abstract:
A computer-implemented method includes receiving a description associated with a business process workflow via a graphical user interface, the description comprising a process flow diagram; and causing a processor to generate at least one of a software application or a natural language description of the business process workflow based upon the description.

Description:
BACKGROUND 
       [0001]    Generally, a business process includes activities or tasks for providing a service and/or producing a product for a customer or customers. 
       SUMMARY 
       [0002]    A computer-implemented method includes receiving a description associated with a business process workflow via a graphical user interface, the description comprising a process flow diagram; and causing a processor to generate at least one of a software application or a natural language description of the business process workflow based upon the description. 
         [0003]    This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. 
     
    
     
       DRAWINGS 
         [0004]    The Detailed Description is described with reference to the accompanying figures. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items. 
           [0005]      FIG. 1  is a block diagram illustrating a system configured to provide an application development environment for developing a software application in accordance with example embodiments of the present disclosure. 
           [0006]      FIG. 2  is another block diagram of the system illustrated in  FIG. 1 . 
       
    
    
     DETAILED DESCRIPTION 
       [0007]    Referring to  FIGS. 1 and 2 , a system  100  is described. The system  100  is configured to connect to a network  102  and provide one or more client devices  104  with a user interface  106 . The user interface  106  is configured to provide an application development environment for developing software applications. A client device  104  can be an information handling system device including, but not necessarily limited to: a mobile computing device (e.g., a hand-held portable computer, a personal digital assistant (PDA), a laptop computer, a netbook computer, a tablet computer, and so forth), a mobile telephone device (e.g., a cellular telephone, a smartphone), a portable media player, a multimedia device, an e-book reader device (eReader), a surface computing device (e.g., a table top computer), a Personal Computer (PC) device, and so forth. One or more client devices  104  can be associated with a user. A user can communicate with the system  100  via a client device  104 . 
         [0008]    In embodiments of the disclosure, the system  100  communicates with a client device  104  using an application protocol, such as hypertext transfer protocol (HTTP). For example, the system  100  provides a client device  104  with a user interface  106  comprising a web page that can be accessed using a web browser and displayed on a monitor and/or a mobile device. The web page can be provided using a hypertext markup language (HTML) and/or extensible HTML (XHTML) format, and can provide navigation to other web pages (e.g., via hypertext links). The web page can also use other resources such as style sheets, scripts, images, and so forth. However, this configuration is provided by way of example only and is not meant to be restrictive of the present disclosure. In other embodiments, content may be served to a client device  104  using another application protocol. For instance, a third-party web site (e.g., a web site not operated and/or maintained by the system  100 ) can include content from the system  100  (e.g., embedded in a web page provided by the third-party). 
         [0009]    The system  100  is configured to receive information associated with business process workflow, which is provided to the system  100  via the user interface  106 . The user interface  106  is configured to allow a user to enter information associated with business process workflow using a graphical user interface (GUI)  108 . In embodiments of the disclosure, the GUI  108  facilitates drag-and-drop outline mapping to create a process flow diagram (e.g., a flow chart) of a business process. The information associated with business process workflow can include, but is not necessarily limited to: identification of one or more users involved in a business process, information to be conveyed to one or more users, a decision to be received from one or more users, an authorization to be received from one or more users, work product to be produced by one or more users, a work product template, and so forth. In embodiments of the disclosure, the system  100  accesses internal and/or external applications via application programming interface (API) document calls, structured query language (SQL) database queries, and so forth. Further, processes hosted by and/or initiated via the system  100  can be communicatively coupled (e.g., chained together). 
         [0010]    The system  100  includes a process definition module  112 , which is used to define information associated with business process workflow. For example, the GUI  108  provides a drag-and-drop interface configured to allow a user to select (e.g., drag) business process steps and/or business process functions to define business process workflow. The information associated with business process workflow received by the process definition module  112  is stored in a database  110 . In embodiments of the disclosure, the database  110  implements a relational database management system (RDBMS), which is accessed using an SQL database query. The system  100  also includes a forms design module  114 , which is used to design a form (e.g., an HTML form) that describes business process workflow. A form designed using the forms design module  114  is stored in the database  110  and can be accessed using, for example, an SQL database query. 
         [0011]    The system  100  further includes a service design module  116 , which is used to provide input forms for the forms design module  114 . The input forms can be configured using API document calls and supplied to the forms design module  114 . The input forms can be stored in the database  110  and accessed using, for example, an SQL database query. The system  100  also includes a dynamic entity module  118 , which can be used to create forms that are mirrored in the database  110 . The forms created using the dynamic entity module  118  can also be stored on one or more of the client devices  104 . In some embodiments, the system  100  includes an integration point module  120 , which allows a user to configure a web page with a more complex data representation (e.g., with respect to HTML forms designed via the forms design module  114 ). 
         [0012]    In some embodiments, the system  100  is used to develop an application for business process workflow that is self-documenting. For example, within the context of a business that deals in used equipment, a user accesses system  100  and specifies a business process for trading in a used piece of equipment. For example, the user can specify a process that includes designating one or more inspection forms tailed to a particular type or model of equipment, identifying subsequent action steps based on the outcome of an inspection, providing instructions for forwarding the inspection information to a manager, and so forth. In embodiments of the disclosure, a process can be described by the user via graphical (e.g., drag-and-drop) outline mapping using the process definition module  112 . Further, the system  100  can be used to provide a textual description of a business process workflow (e.g., as described using the process definition module  112 ). In some embodiments, text is provided using a natural language description. In this manner, the knowledge of a worker can be thoroughly documented as the worker interfaces with the system  100 . It should be noted that as used herein terms such as “user,” “worker,” and so forth are used to describe both a particular individual (e.g., by name), as well as an individual who is associated with a particular job description (e.g., by position within a company). 
         [0013]    A system  100 , including some or all of its components, can operate under computer control. For example, a processor  150  can be included with or in a system  100  to control the components and functions of systems  100  described herein using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or a combination thereof. The terms “controller,” “functionality,” “service,” and “logic” as used herein generally represent software, firmware, hardware, or a combination of software, firmware, or hardware in conjunction with controlling the systems  100 . In the case of a software implementation, the module, functionality, or logic represents program code that performs specified tasks when executed on a processor (e.g., central processing unit (CPU) or CPUs). The program code can be stored in one or more computer-readable memory devices (e.g., internal memory and/or one or more tangible media), and so on. The structures, functions, approaches, and techniques described herein can be implemented on a variety of commercial computing platforms having a variety of processors. 
         [0014]    A processor  150  provides processing functionality for the system  100  and can include any number of processors, micro-controllers, or other processing systems, and resident or external memory for storing data and other information accessed or generated by the system  100 . The processor  150  can execute one or more software programs that implement techniques described herein. The processor  150  is not limited by the materials from which it is formed or the processing mechanisms employed therein and, as such, can be implemented via semiconductor(s) and/or transistors (e.g., using electronic integrated circuit (IC) components), and so forth. 
         [0015]    The system  100  includes a communications interface  152 . The communications interface  152  is operatively configured to communicate with components of the system  100 . For example, the communications interface  152  can be configured to transmit data for storage in the system  100 , retrieve data from storage in the system  100 , and so forth. The communications interface  152  is also communicatively coupled with the processor  150  to facilitate data transfer between components of the system  100  and the processor  150  (e.g., for communicating inputs to the processor  150  received from a device communicatively coupled with the system  100 ). It should be noted that while the communications interface  152  is described as a component of a system  100 , one or more components of the communications interface  152  can be implemented as external components communicatively coupled to the system  100  via a wired and/or wireless connection. The system  100  can also comprise and/or connect to one or more input/output (I/O) devices (e.g., via the communications interface  152 ) including, but not necessarily limited to: a display, a mouse, a touchpad, a keyboard, and so on. 
         [0016]    The communications interface  152  and/or the processor  150  can be configured to communicate with a variety of different networks including, but not necessarily limited to: a wide-area cellular telephone network, such as a 3G cellular network, a 4G cellular network, or a global system for mobile communications (GSM) network; a wireless computer communications network, such as a WiFi network (e.g., a wireless local area network (WLAN) operated using IEEE 802.11 network standards); an internet; the Internet; a wide area network (WAN); a local area network (LAN); a personal area network (PAN) (e.g., a wireless personal area network (WPAN) operated using IEEE 802.15 network standards); a public telephone network; an extranet; an intranet; and so on. However, this list is provided by way of example only and is not meant to be restrictive of the present disclosure. Further, the communications interface  152  can be configured to communicate with a single network or multiple networks across different access points. 
         [0017]    The system  100  also includes a memory  154 . The memory  154  is an example of tangible, computer-readable storage medium that provides storage functionality to store various data associated with operation of the system  100 , such as software programs and/or code segments, or other data to instruct the processor  150 , and possibly other components of the system  100 , to perform the functionality described herein. Thus, the memory  154  can store data, such as a program of instructions for operating the system  100  (including its components), and so forth. It should be noted that while a single memory  154  is described, a wide variety of types and combinations of memory (e.g., tangible, non-transitory memory) can be employed. The memory  154  can be integral with the processor  150 , can comprise stand-alone memory, or can be a combination of both. The memory  154  can include, but is not necessarily limited to: removable and non-removable memory components, such as random-access memory (RAM), read-only memory (ROM), flash memory (e.g., a secure digital (SD) memory card, a mini-SD memory card, and/or a micro-SD memory card), magnetic memory, optical memory, universal serial bus (USB) memory devices, hard disk memory, external memory, and so forth. In implementations, the system  100  and/or the memory  154  can include removable integrated circuit card (ICC) memory, such as memory provided by a subscriber identity module (SIM) card, a universal subscriber identity module (USIM) card, a universal integrated circuit card (UICC), and so on. 
         [0018]    Generally, any of the functions described herein can be implemented using hardware (e.g., fixed logic circuitry such as integrated circuits), software, firmware, manual processing, or a combination thereof. Thus, the blocks discussed in the above disclosure generally represent hardware (e.g., fixed logic circuitry such as integrated circuits), software, firmware, or a combination thereof. In the instance of a hardware configuration, the various blocks discussed in the above disclosure may be implemented as integrated circuits along with other functionality. Such integrated circuits may include all of the functions of a given block, system, or circuit, or a portion of the functions of the block, system or circuit. Further, elements of the blocks, systems, or circuits may be implemented across multiple integrated circuits. Such integrated circuits may comprise various integrated circuits including, but not necessarily limited to: a monolithic integrated circuit, a flip chip integrated circuit, a multichip module integrated circuit, and/or a mixed signal integrated circuit. In the instance of a software implementation, the various blocks discussed in the above disclosure represent executable instructions (e.g., program code) that perform specified tasks when executed on a processor. These executable instructions can be stored in one or more tangible computer readable media. In some such instances, the entire system, block or circuit may be implemented using its software or firmware equivalent. In other instances, one part of a given system, block or circuit may be implemented in software or firmware, while other parts are implemented in hardware. 
         [0019]    Although the subject matter has been described in language specific to structural features and/or process operations, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.