Systems development or application development involves various stages such as planning, creating, testing and deploying the information system. The development can involve both the hardware and software elements of the information system. Computer systems tend to be complex with various traditional systems being supported even as new applications and hardware are developed and installed during various maintenance or upgrade operations. Developing effective and efficient Information Technology (IT) systems is the key to success for many organizations. Solutions including applications that run on computing devices may be developed for various aspects of the IT systems. In order to succeed in the current environment, organizations need easy-to-use process management tools that enable rapid solution development and allow them to make impactful changes.
Features of the present disclosure are illustrated by way of examples shown in the following figures, in which:
For simplicity and illustrative purposes, the present disclosure is described by referring mainly to examples thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent however that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. Throughout the present disclosure, the terms “a” and “an” are intended to denote at least one of a particular element. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on.
A system for configuration-driven process management that enables automatic generation and configuration of applications or solutions based on documentation is disclosed. The system further allows automated testing of the applications and automatically documenting the development and the testing processes. The applications can include machine-readable instructions that are executed by processors of computing systems for executing certain tasks. An example of an application that can be automatically generated as detailed herein can be a dashboard for a monitoring system. Various elements of the dashboard such as but not limited to, user interface elements that visibly convey data to users, connections to data sources for retrieving data and widgets for processing the retrieved data can be automatically generated in accordance with examples described herein.
A process manager is initially generated from project documents which may include, for example, project objectives, deliverables, schedule, risks, methodology and other key project plan information in human-readable formats. Solutions database stores the core data, information and systems needed to generate the process manager which is further employed to implement or execute the project which includes development and configuration of one or more applications.
The process manager receives artifacts which are validated to ensure that the requirements of the current process are met. The input artifacts may refer to documents, deliverables or work items that are produced, modified or otherwise employed during the course of the project. In an example, the artifacts may be created by the various processes executed by the process manager to meet project deliverables. Some of the created artifacts serve as requirements documents based on which the various production objects of the application are developed and configured as part of a successful project implementation. The requirements documents are loaded into the process manager to implement and document the applications in the project's Information Technology (IT) systems which may include development systems that are used to test the application and production systems on which the application is ultimately deployed. The implementation documentation may be a series of human-readable documents such as object/configuration documentation and test results documents that details the implementation and are available for later use. The applications thus developed are tested and documented either through the process manager itself or through external applications. In an example, the external applications may refer to applications that are not inherently part of the process manager. Project metrics are also generated based on the data from the generated process manager. In an example, project metrics may refer to quantifiable information processed from data available from the process manager.
The configuration-driven process management solution disclosed herein is composed of two parts: a management system generator and utilization of the generated process manager to deliver a project through artifact management and validation. As mentioned above, one or more project documents are provided as input to the management system generator. The project documents may include project objectives, deliverables, schedule, risks, methodology and other project plan information. The contents of the project plan documents are analyzed to determine the processes, templates, tools and other enablers that need to implemented or enabled to meet the requirements by using the solution master database. A solutions database contains the information related to processes, templates, roles, historical data, and other information needed to analyze the input and to generate the process management system. The results of the analysis are used to provide the process configurations, templates, project processes and other components from which the process manager is generated. In an example, additional project documents may also be generated during the generation of the process manager. The additional project documents are fed back as input to the management system generator for fine tuning the process manager to meet the requirements.
The generated process manager may be used to implement a project in one example. The input artifacts used for implementing the project are initially validated upon receipt to ensure that the artifacts meet the requirements of format, size and other attributes. In particular, each step's artifact is created to meet the project deliverables. Artifacts such as, documents, deliverables, executable code modules or other work items are produced, modified or used by the process manager during the project implementation. The process manager retrieves, scheduled and/or by-demand, relevant project data to generate the project metrics and analysis report document. The processed data is thus converted into human-readable format. The project closure documents are validated in a procedure similar to the project plan documents prior to implementing the project. The project's transaction data is archived for future reference.
In an example, the process manager defines multiple steps which may be grouped into phases. Phases are configured to determine project processes. In an example, steps and processes can be rearranged depending on requirements. Based on the configuration, the relevant input, output checks may be combined to simplify processes. For example, a step may receive an input artifact, process or analyze the information from the input artifact and produce an output artifact from the analysis. The input artifact to a process step may be validated to ensure that it is usable to create the step's artifact. Examples of input artifacts may include but are not limited to, documents, deliverables and other work items produced, modified and/or to be used by the step to produce its artifact. Similarly, a step artifact may include but is not limited to, a document, deliverable and/or work item produced, updated and/or modified, by the process step but has not yet been validated. An output artifact may include a document, deliverable or a work item produced, updated or modified by the process step (i.e., a step artifact) that has been validated.
A document-driven development of applications with automated testing and documentation is disclosed in an example. One or more requirements documents which are validated for their attributes such as size, format and the like are accessed. The contents of the requirements documents are then converted into the implementation format file or machine readable instructions that form production objects which serves as input to the implementation and testing functions. The production objects include formatted instructions needed to implement the solutions analyzed from the requirements.
The implementation function begins by optimizing the production objects to ensure correct sequence, quality and performance of the implementation instructions. The production objects which are thus optimized are sent to the relevant development (DEV) systems where they are programmatically implemented via the corresponding API layer. The API layer enables interfacing with other systems and technical applications. The implementation instructions within the production objects are converted to human-readable format so as to generate the object/configuration documentation that can be referred to for later use. Based on the instructions from the production objects, the implementation's test scripts are validated to begin the testing function of the solution. In an example, the testing function of the solution can be executed in parallel with the generation of the implementation documentation. Upon the validation of the test scripts, the unit tests are executed either directly in the development systems or via a unit testing module. In an example, the unit test module may be an application used to execute, validate and/or document unit tests on development systems. After running the unit tests, the solution documents the test results either directly or via the unit testing module in order to produce the unit test documentation. The implementation unit test documentation may be a series of human-readable documents that can be referred to for later use. A user is then informed to obtain validation on the implementation, unit tests and their corresponding documentation. When the implementation, unit tests and their corresponding documentation are validated by the user, the process manager pushes the production objects to the relevant quality assurance systems (QAS).
The automatic generation of the process manager that is further employed to achieve document-driven application development is a technical improvement over systems wherein requirements from human-readable requirement documents are converted into machine-readable code manually. Furthermore, the developed code is also moved manually through testing and documentation processes. The process manager which is automatically developed from the project documents along with the corresponding project documents that detail the development and implementation details of the process manager is not only able to automatically convert the human-readable project documents into machine-readable code but can also simultaneously document the development and implementation process of the project in human-readable formats. Thus, the configuration driven process manager and the document-driven automatic application development by the process manager enable automatic, seamless conversion of human-readable documents into machine-readable code and vice versa. Moreover, further fine-tuning of the process manager from the corresponding automatically developed project documentation enables a feedback mechanism that leads to the application development process improving with usage. The document-driven application development described herein enables automating the development, testing and documenting cycles of the application development process thereby vastly reducing the time taken for these cycles. The examples described herein enable rapid application development within days or even hours where the similar tasks used to be executed over weeks when done manually in traditional systems.
The management system generator 150 receives and analyzes the project documents 102 and based on the analysis, automatically generates the process manager 110. The analytics engine 104 included in the management system generator 150 analyzes the project documents 102 using data from the solutions database 160 to determine the various processes, templates, configuration scripts and the like that are required for generating the process manager 110. In an example, Artificial Intelligence (AI) techniques as detailed herein may be employed for using the data from the solutions database 160 to generate the process manager 110 by the developer 106. The process manager 110 may be developed based on the attributes of the development system 130. For example, if the development system 130 for which the process manager 110 is to create production objects 108 is based on ORACLE technologies, then the process manager 110 may be developed in JAVA. In another example, if the development system 130 is an SAP system, then combinations of JAVA, SAP High-performance Analytic Appliance (HANA) and SPLUNK can be used.
The process manager 110 thus generated, further generates the requirements documents 114, analyzes the requirements documents 114 to identify the configuration, development and testing steps or processes needed for meeting the requirements by employing for example, the analytics database 172. The analysis may be achieved by employing Al techniques with big data. The process manager 110 can execute various processes and sub-processes using the project transactions database 170. The process manager 110 not only generates the production objects but also the objects and configuration documentation 112 which shows the status of each implementation along with the corresponding configurations in human-readable format. The production objects 108 from the process manager 110 may be loaded into a tester 120 for testing. The tester 120 can be a technical application external to the process manager 110 that is used to execute, validate and/or document unit tests on the development system 130. The production objects 108 that are determined as ready for deployment upon testing, are uploaded to the production system 180. In an example, the implementation of the production objects 108 on the development system 130 may be further validated, tested or executed to ensure quality prior to moving to the production system 180. The objects and configuration documentation 112 and the test results documents 116 may be stored within the archives database 190. The automatic generation of tools such as the process manager 110 that further enable automation of the application development and documentation processes leads to vast gain in efficiencies of application development processes as it mitigates the need for multiple process-steps that need to be manually executed.
The execution agent 306 uses the configuration scripts 320 which include lines of code to programmatically configure the process manager 110 using either a front end or a backend of the process manager 110. The project templates 340 are loaded into the memory of a computing device executing the developer 106 for the generation of the process manager 110 and the project processes 360 that will be followed in generating the project objects are initialized. In addition to the process manager 110, the developer 106 may also generate additional documentation that is added to the project documents 102. The additional project documents that are generated serve as input to the management system generator 150 in a feedback process to fine tune the process manager 110 to meet the requirements.
A validator 402 included in the process manager 110 validates input artifacts that include project documents 102 such as the deliverables or work items including code modules in order to check for compliance of the various attributes such as size, format and the like. If the project documents 102 comply with the norms for the various attributes, they are transmitted to a creator 406 for the generation of the various step artifacts such as, production objects and/or configuration scripts and related documentation. A processor 404 may identify processes and sub-processes to be executed from the project documents 102. The creator 406 creates, for each process step or the sub-process step, a step artifact which may include an object, a script or the object/configuration documentation 112 which is generated in accordance with methods described herein. In an example, the step artifacts can be requirements documents 114 which can serve as inputs for downstream processes that create output artifacts such as the production objects 108 and related documentation such as the object/configuration documentation 112. The requirements documents 114 may include development standards, functional requirements, requirements definitions and the like. The output artifacts from the process manager 110 include the production objects 108 which may be further uploaded to the tester 120 for testing and evaluation on the development system 130. The production objects 108 that are thus tested automatically or manually by the tester 120 and QA systems 140 on the development system 130 to ensure completeness as per requirements specified in the project documents 102 are finally deployed on to the production system 180. The output from the process manager 110 may also include the object/configuration documentation 112 which can be stored in the archives database 190 for future use.
The production objects 108 thus contain the machine-readable instructions 512 that are optimized and formatted to enable the development system 130 to implement the solutions 510 determined from the requirements documents 114. The optimizer 506 optimizes the instructions 512 to ensure correct sequence of instructions, quality and performance. The production objects 108 which contain optimized instructions, are uploaded to the development system 130 where the instructions are programmatically implemented for example, via the development system's 130 Application Programming Interface (API) layer.
If it is determined at 902 that code is required, it is further determined at 906 if code already exists within, for example the solutions database 160. If it is determined at 906 that the code exists, then the existing code is used at 908. In order to use the existing code, the API of the development system 130 for updating the code is called. Various portions of the code such as data sources, fields, values of the fields and the like may need to be updated in accordance with the requirements from the requirements documents 114 that are currently being used. Upon updating the code, the syntax of the code is checked at 910, for example, via calling the API for checking the syntax. It is further determined at 912 if the syntax has errors. If the syntax contains errors, the code is flagged for manual fix at 914 and the method terminates on the end block. If it is determined at 912 that the code is error free, the method proceeds to configuring the step artifact at 916, followed by the testing at 918 and the activation of the production objects at 920 prior to the method terminating on the end block.
If it is determined at 906 that no code exists within the solutions database 160, then the code is automatically created at 922, for example, via calling the APIs within the development system 130 for creating the code. The method then returns to 910 to check for syntax errors so that the created code can be flagged for manual fix at 914 if there are syntax errors. Otherwise, the method further proceeds to 916 for executing any required configuration scripts, followed by the testing at 918 and activation of the production objects at 920.
The configuration scripts are required for generating or manipulating step artifacts of various process steps as outlined below. By the way of illustration and not limitation, the process steps and corresponding step artifacts may include but are not limited to:
Step 1: accessing particular data sources that store the data which is to be displayed in the UIs 1500 or 1550. A step artifact for Step 1 may include a piece of configuration script providing access to the data source including security mechanisms such as user names and passwords;
Step 2: retrieving data from the data sources for which the step artifact may include the retrieved data;
Step 3: processing the retrieved data to generate calculations or analysis required for the data visualizations for which the step artifact may include the results of the calculations or output from the analysis; and
Step 4: generating the data visualizations for which the step artifact may include the user interfaces 1500 or 1550 which include respective data visualizations 1502, 1504, 1506 or 1552.
The configuration scripts for the process steps outlined above are obtained from the analytics database 172 or are generated manually and uploaded to the analytics database 172. The production objects 108 generated for the UIs 1500 and 1550 can include without limitation, those objects which work on the backend such as connections to the data sources and the data objects which may include data from the data sources. The production objects 108 may also include objects which work on the front end such as the data visualizations 1502, 1504, 1506, 1552 and the like. Upon generation, the production objects 108 are tested and uploaded to the production system 180 in order to provide users access to the UIs 1500 and 1550. The metrics associated with the automatic generation of the UIs are also generated and stored in the project transactions database 170 while the test results are stored in the archives database 190 for future reference.
The computer system 1600 includes processor(s) 1602, such as a central processing unit, ASIC or other type of processing circuit, input/output devices 1612, such as a display, mouse keyboard, etc., a network interface 1604, such as a Local Area Network (LAN), a wireless LAN, a 3G or 4G mobile WAN or a WiMax WAN, and a computer-readable medium 1606. Each of these components may be operatively coupled to a bus 1608. The computer readable medium 1606 may be any suitable medium which participates in providing instructions to the processor(s) 1602 for execution. For example, the computer readable medium 1606 may be non-transitory or non-volatile medium, such as a magnetic disk or solid-state non-volatile memory or volatile medium such as RAM. The instructions or modules stored on the computer readable medium 1606 may include machine readable instructions 1664 executed by the processor(s) 1602 to perform the methods and functions for process management system generation, documentation driven solutions development or combinations thereof. The computer readable medium 1606 may also store an operating system 1662, such as MAC OS, MS WINDOWS, UNIX, or LINUX. The operating system 1662 may be multi-user, multiprocessing, multitasking, multithreading, real-time and the like. For example, during runtime, the operating system 1662 is running and the instructions 1664 are executed by the processor(s) 1602.
The computer system 1600 may include a data storage 1610, which may include non-volatile data storage. The data storage 1610 stores any data during various processes described herein. The data storage 1610 may be used to store data such as but not limited to, project documents 102, project metrics, configuration scripts, project templates and the like.
The network interface 1604 connects the computer system 1600 to internal systems for example, via a LAN. Also, the network interface 1604 may connect the computer system 1600 to the Internet. For example, the computer system 1600 may connect to web browsers and other external applications and systems via the network interface 1604.
What has been described and illustrated herein are examples of the disclosure along with some variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the scope of the disclosure, which is intended to be defined by the following claims, and their equivalents, in which all terms are meant in their broadest reasonable sense unless otherwise indicated.
The present application claims priority under 35 U.S.C. 111(b) to U.S. provisional patent application number 62/348,499, having a filing date of Jun. 10, 2016, the disclosure of which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62348499 | Jun 2016 | US |