The present invention relates to creation of prototypes for a software system. More particularly, the present invention provides for representing and validating the functional requirements of a software system.
Business organizations use streamlined processes for the management of business objectives. Managing business objectives includes defining and implementing a set of activities for providing products or services to clients. Business Process is a set of structured activities or tasks associated with a business, that produces a specific product or service. With increase in the complexity of business organizations and their related business processes in recent times there has been an increase in the use of software systems in defining and managing business processes.
An important aspect of software development related to the software systems for implementing business objectives of an enterprise is the creation of prototypes. Prototypes are preliminary versions of software systems that are used to demonstrate and validate functional requirements i.e. business features and functions of the system. Validation of requirements includes the process of checking in advance whether the specifications of the software system to be designed, have been correctly and adequately captured so that the designed system would be in accordance with the related functional objectives. For ensuring correct and adequate capture of software system specifications, requirements validation is performed by the stakeholders of the software system.
Functional requirements of a software system are the system's intended capabilities, business features, and interaction with users. The functional requirements can be captured using various methodologies such as use-cases, taskflow diagrams, functional screens, and workflow diagrams. The representation of software requirements for end users of the software system and the validation of the requirements by the end-users and other stakeholders is a necessary task to be done prior to the design and development of the software system.
Representation and validation of requirements of the software system at the initial stage of software development ensures an efficient process of development in which any changes or modifications in the software are made with minimum number of iterations. Validation by end users of software also ensures that the business objectives of the system are aptly captured. The validation process involves taking the stakeholders through the requirements artifacts such as use-case diagrams, taskflow diagrams, functional screens etc. including the screen level details in order to rapidly prototype the software system and reduce stakeholder review time.
Consequently, there is need for a system and a method for effectively representing the captured functional requirements of a software system to stakeholders for a prompt validation of the requirements.
A method for representing and validating requirements of a software system is provided. The method includes capturing requirements of the software system. Further, the method includes converting the captured requirements into an executable business process definition. Thereafter, the method includes representing the captured requirements to stakeholders in the form of navigational flow of user interface screens. In an embodiment of the present invention, the software system is a system supporting a business process and implemented using software tools.
In various embodiments of the present invention, capturing requirements of the software system includes modeling one or more use-cases of the software system using text descriptions and taskflow models. Further, wireframe models corresponding to each use-case of the one or more use-cases are designed and each wireframe model is transformed into an HTML screen file. Thereafter, the taskflow models, the wireframe models, and the HTML screen files are stored in a software file. In an embodiment of the present invention, capturing requirements of the software system further includes specifying expressions in each use-case for navigating through the flow of tasks of the use-case.
In various embodiments of the present invention, converting the captured requirements into an executable business process definition includes generating a graphical process definition from each taskflow corresponding to a use-case of the one or more use-cases, converting each HTML screen file into a JSP file, generating one or more servlets for each user task in the graphical process definition and converting each graphical process definition into the executable business process definition.
In various embodiments of the present invention, generating a graphical process definition comprises converting each user task in a taskflow model to a user activity in the graphical process definition, converting each system task in a taskflow model to a system activity in the graphical process definition, transforming each branch in the taskflow model into an equivalent branch in the graphical process definition and converting each data field in the HTML screen corresponding to a user task, to an input parameter as well as an output parameter of the user activity corresponding to the user task. In an embodiment, the executable business process definition is a WS-BPEL standard based definition comprising invoke constructs and switch constructs in WS-BPEL standard based process definition.
In various embodiments of the present invention, converting each HTML screen file into a JSP file includes incorporating software code in the JSP file for setting the values for data fields of the HTML screens for the business parameter values of activities in the graphical process definition and tying each JSP to the corresponding user activity in the graphical process definition.
In various embodiments of the present invention, generating one or more servlets for each user task includes generating a request servlet for each user task to accept user actions on the task, generating a response servlet for each user task to respond to user actions on the task and tying each request/response servlet combination to the corresponding user activity in the graphical process definition. In an embodiment, the executable business process definition is deployed onto a process execution engine for executing the process definition. In an example, the JSP files and the one or more servlets are deployed onto a web server for access by a user. In another example, the use-case models, the workflow models, the taskflow models, and the HTML screen files are published onto a network folder of a computing device for access by a user.
In various embodiments of the present invention, representing the captured requirements to stakeholders includes accessing the HTML screen files in the HTML report corresponding to a use-case and demonstrating prototype screens of the use-case to stakeholders.
In various embodiments of the present invention, demonstrating prototype screens of the use-case includes displaying screens of the use-case taskflow on a web browser by the process execution engine based on access of the HTML screen files, waiting for user input for a task requiring user activity and displaying output prototype screens based on the order specified in the taskflow and the exemplary parameters input by the user. In an embodiment, the demonstration of prototype screens is achieved by the execution of the business process definition corresponding to the use-case taskflow by the process execution engine. In an example, the executable business process definition is a BPML standard based definition
In various embodiments of the present invention, the system for representing and validating the requirements of a software system includes a requirements capture module configured to capture the requirements of the software system in the form of one or more use-cases, taskflow models, and wireframe models. Further, the system includes an executable process modeler configured to generate graphical process definitions, an executable business process definition, JSP files and servlets corresponding to each use-case and deploy the JSP files and the servlets onto a web server. Moreover, the system includes a process execution engine configured to execute the business process definition and a web server configured to run the servlets and JSP files corresponding to each user task of the use-case.
The present invention is described by way of embodiments illustrated in the accompanying drawings wherein:
A system, method and computer program product for prototyping of software systems is provided. The present invention is more specifically directed towards representing and validating requirements of a software system. An exemplary scenario in which the present invention may be used is a business function implemented by a software system. For carrying out efficient software design, representing and validating requirements of the software system early in the design cycle ensures prompt modification of system requirements at an early stage, thereby minimizing design and development turnaround time.
In an embodiment of the present invention, the system, method and computer program product disclosed provides capturing the requirements of the software system using industry standard software models such as use-case models, taskflow models, wireframe models and Hyper Text Markup Language (HTML) screen flows.
In another embodiment of the present invention, the system, method and computer program product disclosed provides converting the captured software system requirements into an executable process represented in a standard execution process definition standard such as a Web Services Business Process Execution Language (WS-BPEL).
In yet another embodiment of the present invention, the system, method, and computer program product disclosed provides for representation of requirements of the software system to stakeholders in the form of a prototype implemented as an executable process model. The prototype enables navigation of screens of the executable software system, by a business analyst and validation of the requirements by the stakeholders during the review stage.
In yet another embodiment of the present invention, the system, method, and computer program product disclosed provides for input of exemplary parameters to the prototype screens of the executable process model during the requirements representation phase in order to verify that the captured system requirements conform to the intended specifications.
Hence, the present invention enables a time-efficient validation of functional requirements of a software system. The present invention also enables changes in the software design in the requirements phase based on inputs from the stakeholders.
The disclosure is provided in order to enable a person having ordinary skill in the art to practice the invention. Exemplary embodiments herein are provided only for illustrative purposes and various modifications will be readily apparent to persons skilled in the art. The general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. The terminology and phraseology used herein is for the purpose of describing exemplary embodiments and should not be considered limiting. Thus, the present invention is to be accorded the widest scope encompassing numerous alternatives, modifications and equivalents consistent with the principles and features disclosed herein. For purpose of clarity, details relating to technical material that is known in the technical fields related to the invention have been briefly described or omitted so as not to unnecessarily obscure the present invention.
The present invention would now be discussed in context of embodiments as illustrated in the accompanying drawings.
The user experience design modeler 116 is a software module used by the business analyst to design user interfaces for use-cases modeled in the use-case modeler 114. In an embodiment of the present invention, the user interfaces are wireframe models based on taskflow models corresponding to use-case descriptions. For a particular use-case, the business analyst first designs a taskflow model. A taskflow model is a flow diagram that depicts the flow of events in a use-case through a graphical mode. The flow of the events are depicted in the taskflow model by depicting a constant transfer of control between the user and the “software system” corresponding to scenarios of interaction between the users and software modules of the “software system” described in the use-case. A method for creating a taskflow model includes using standard workflow notations and indicative symbols for depicting the flow of tasks associated with a use-case. Standard workflow notations are graphical notations for specifying business processes commonly used in the industry. An example of a standard workflow notation may include an inclusive OR workflow notation that denotes one or more parallel paths to be taken corresponding to a task. An example of an indicative symbol may include a symbol for specifying whether a task is a user task or a system task. Taskflow models are illustrated in the US Patent Application Publication No. 20060174222 incorporated herein by reference for all purposes. Processing steps for describing an exemplary taskflow model corresponding to the “placing purchase orders” use-case is illustrated and described in conjunction with the description of
For each user task in the taskflow model created corresponding to a use-case, the business analyst then creates a wireframe model as the screen for the user task. A wireframe model is a visual representation of the screen for user interaction of the user task. In an embodiment of the present invention, a wireframe model may be a visual representation and is not functionally usable. The wireframe model organizes screen level elements with placeholders for content and data, navigational elements, and controls. The output of the user experience design modeler 116 is a taskflow model and a set of wireframe models, corresponding to the requirements of the “software system” described by the use-case description in the use-case modeler 114, for the use-case. The screen generator 118 is a plug-in component to the requirements capture module 102 that transforms the wireframe model into a user interface screen. In various embodiments of the present invention, examples of screen formats that are generated by the screen generator 118 include, but are not limited to, Hyper Text Markup Language (HTML) screens. HTML screens are web compatible screens that can be shared across an IP based network such as the Internet. The screen generator 118 is a build-time program that uses a template-based document transformation or generation approach as implemented in an open-source templating engine. In an embodiment of the present invention, the screen generator 118 may be implemented using Apache Velocity. In various embodiments of the present invention, the user interface screen generated by the screen generator 118 is an HTML screen that includes screen layouts and controls conforming to the specifications of the wireframe model.
The Executable Process Modeler 104 is a build-time program that provides a facility to model business processes in a definition form that makes the processes executable by computer systems. In an embodiment of the present invention, the Executable Process Modeler 104 provides Graphical User Interface (GUI) resources to a user through which the user can model a business process as an ordered sequence of activities. The Executable Process Modeler 104 includes a requirements model importer 120, a Java Server Pages (JSP) Generator 124, and a servlet generator 126. The requirements model importer 120 imports use-case descriptions, taskflow models, wireframe models, and user interface screens generated in the Requirements Capture Module 102. The requirements model importer 120 generates a graphical business process definition by converting each task flow into a graphical process model 122. The requirements model importer 120 uses a general purpose modeling language including graphical notation techniques for modeling the graphical business process definition. An example of the general purpose modeling language may be Unified Modeling Language (UML). In an embodiment of the present invention, the requirements model importer 120 uses activity diagrams in which each task described in the taskflow model is converted to an activity in the graphical process model 122. The activity diagram presents step-by-step operations corresponding to the taskflow model. The JSP generator 124 is a software component for generating Java Server Pages. Java Server Pages is a Java technology used for generating dynamic markup language documents such as HTML, Extensible Markup Language (XML) in response to a user request. The JSP generator 124 takes as input HTML screens generated by the screen generator 118. Each HTML screen is then converted into a JavaServer Page (JSP) by the JSP generator 124. The generated JSP for a screen includes Java code for setting the values of the data fields of the HTML screens for the business parameter values of activities in the graphical process definition. The Servlet Generator 126 is a software component for generating Servlets. A Servlet is a Java technology for handling request-response interactions involving a web application user and the web application running in the web server. The Servlet Generator 126 generates request and response servlets for each user activity of the graphical process model 122. Each servlet generated by the Servlet Generator 126 would, at run-time, accept actions from user and respond to the user's action for the user activity corresponding to that servlet.
In an embodiment of the present invention, the graphical process model 122 generated by the requirements model importer 120 is converted by the Executable Process Modeler 104 into a Web Services-Business Process Execution Language (WS-BPEL) file. WS-BPEL is an XML based language used by organizations to describe their business processes in a standard manner so that tasks can be shared in a distributed computing environment using web services and to make the processes executable. XML is an open standard for exchanging structured documents, data and for creating customized markup languages. WS-BPEL can be extended to also include provisions for specifying and describing user activities of business processes. The WS-BPEL file is an executable business process definition corresponding to the graphical process definition. In various embodiments of the present invention, the business process definition generated by the Executable Process Modeler 104 may be in the form of a meta-language for modeling executable business processes such as Business Process Modeling Language (BPML). The executable business process definition is executable in a business process engine. In various embodiments of the present invention, the executable business process definition generated by the Executable Process Modeler 104 includes a WS-BPEL file along with attachments such as JSP files and Web-Services Description Language (WSDL) files. WSDL is an XML-based modeling language for describing services shared over a network such as web services. For example, WSDL files are used to describe details of the service interface for activities in the WS-BPEL process definition and for the WS-BPEL process itself
The Process Execution Engine 106 is an executable engine for executing business process definitions. The Process Execution Engine 106 is a run-time software component that executes business process definition described in the WS-BPEL file generated by the executable process modeler 104. The WS-BPEL file is first stored in a run-time database 128. The run-time database may be any relational database management system (RDBMS) including but not limited to MySQL, Oracle, DB2, FoxPro, MS Access, etc. Thereafter, the WS-BPEL file is executed by the Process Execution Engine 106. In an embodiment of the present invention, the WS-BPEL file is first converted into an internal executable process definition 130 by the Process Execution Engine 106 before executing it.
The Web Server 108 is a run-time program that acts as a server and serves web pages by executing JAVA servlets and the JSP files associated with the WS-BPEL file. In an embodiment of the present invention, the JSP files for the HTML screens and associated servlets of the executable business process definitions corresponding to use-cases of the “software system” are deployed onto the Web Server 108. At run-time, the Web Server 108 triggers the Process Execution Engine 106, through an initial servlet for a use-case, for running the executable process corresponding to the use-case. The HTML Publisher Module 112 publishes the entire requirements model of the software system in a report form such as HTML language using default templates and custom templates. The system models in the HTML report in the HTML publisher module include, but are not limited to, use-case models, taskflow models, workflow models, and HTML screens. In an embodiment of the present invention, the HTML report includes a page for each system model and links for navigation from one diagram to another. The HTML report is published in a network folder of a computing device for access by a business analyst, where the computing device is operatively coupled to the Web Server 108. A computing device may be any device for processing instructions and for storing and organizing data for easy access.
The Web Browser 110 renders the HTML web pages generated by the JSP files and the HTML web pages that are accessed by the business analyst in the HTML report published by the HTML publisher module 112. The Web Browser 110 may be any browser known in the art, such as, Internet Explorer, Mozilla Firefox, and the like. In an embodiment of the present invention, the business analyst walks the stakeholders through the HTML report via the Web Browser 110. The pages accessed in the HTML report include system models starting from higher-level models like graphical process definitions down to lower-level models like use-case models or use-case descriptions. While accessing the use-case descriptions, HTML screens corresponding to each use-case are rendered on the Web Browser 110 by the Web Server 108 in the task order specified in the use-case's task flow so that the business analyst is able to represent the requirements of the “software system” to the stakeholders. The HTML screens are displayed as a result of executing servlets and JSP files corresponding to the use-case model by the Web Server 108 under the direction of the executing process in the Process Execution Engine 106.
In various embodiments of the present invention, the business analyst can, at design-time, enter exemplary parameter values corresponding to each data field that is of list type in the wireframe screens of the use-case. In an exemplary embodiment, if the business functionality involves receiving and processing orders for wireless phones, while designing the wireframe model for the “select a product” user task in the use-case, the business analyst enters “Wireless Phones” in the list for “phone” data field of the wireframe model and corresponding “model number” in the list for “model number” data field of the wireframe model. At run-time, selecting the type of wireless phone such as “CDMA” and model number such as “M23”, would result in the subsequent screens of the use-case displaying the same value for these two fields.
Configuring study for a project i.e. Selecting the tests to be done on a medical sample. Each of the above activities might include one or more tasks. Configuring study for a project might include the following tasks: Select test panels from the base set and add to study (User Interactive Task), Retrieve test panels from the base set (System Task), and Retrieve list of existing studies. The use-cases in the above example are representation of the flow of tasks. In an embodiment of the present invention, standard workflow notations may be used to depict the flow of tasks. An example of a standard workflow notation may include an inclusive OR workflow notation that denotes one or more parallel paths to be taken corresponding to a task.
The modeled use-cases include taskflow models in conjunction with graphical notations describing user-system interactions corresponding to the flow of events. In an embodiment of the present invention, the business analyst can specify validation rules for a system task. Business rules corresponding to a system task can also be specified which may indicate some computation or processing logic for the task that the system would follow. The processing logic may include a logic expression for validating a system task. For example, in the use-case for software system for “processing purchase orders” stated in the description of
At step 510, an executable process definition is generated for each of the taskflow models imported at step 502. In an embodiment of the present invention, the executable process definition is in WS-BPEL format. The WS-BPEL file includes software constructs for describing activities in the graphical process model such as, constructs for: user actions (activities such as invoke, receive), conditional branching (switch), split and merge (flow), assignments to variables and expressions. Further, the WS-BPEL file may include extended software constructs for allowing specification of a user activity such as human interaction involving user interface screens. In an exemplary embodiment, each user activity and system activity in the graphical process model is converted into an <invoke> construct in WS-BPEL. For example, for the “select a wireless product” event described in the wireframe model of
In the above example, the product field appears as a parameter for the activity. Each branch activity in the model is converted into a <switch> construct in WS-BPEL.
In various embodiments of the present invention, a sub-process activity described in the graphical process model for a use-case is executed in the WS-BPEL file using an <invoke> construct. A sub-process in the WS-BPEL process definition is an ordered sequence of system activities where each system activity represents a step of an XPath expression (condition expression) for the sub-process activity. The <invoke> construct includes details for the sub-process to be invoked. In an example, the details for the sub-process are denoted in the portType attribute of the <invoke> construct. Thus, sub-processes corresponding to a system task are described as executable process definitions in the WS-BPEL file. In an embodiment of the present invention, each system activity in a sub-process is implemented in WS-BPEL definition by an <assign> construct with the corresponding XPath expression appearing in the “expression” attribute of the <assign> construct. In an example, a sub-process can have other sub-processes recursively present under it depending on the structure of the general expressions coded for the system task by the business analyst. Thereafter, at step 512, the executable process definition is deployed onto a process execution engine, and at step 514, the servlets and JSP files associated with the graphical process model are deployed onto a web server.
At step 516, the use case models, taskflow models, and the HTML screens are published using an HTML publisher module. In an embodiment of the present invention, the HTML screen files are in the form of an HTML report including a page for each system model (graphical process models and taskflow models) and links for navigation from one type of model to another. The HTML report may be published by the HTML publisher module onto a network folder of a computing device which is operatively coupled to a web server. The business analyst can access the HTML report through a web browser installed in the same computer in order to demonstrate and validate software system requirements.
At step 608, the software system determines if the next step of the taskflow is a user-interaction step. In the event of the next step not being a user-interaction step, at step 610, the process execution engine executes the system activities in the business process definition corresponding to the use-case. Thereafter, at step 607, the execution control proceeds to next step in use-case. However, if at step 608, it is determined that the next step is a user-interaction step, the execution control passes on to a request servlet in the web server at step 612. The request servlet passes control to the JSP for the user activity that displays the user-interaction screen on the web browser. Thereafter, at step 614, the user-interaction HTML screen prompts the business analyst to enter exemplary parameters pertaining to the use-case. For example, in the “processing purchase orders” use-case stated in the description of
If it is determined that all the steps of the use-case have been executed, then at step 622, the next use-case is accessed by the business analyst from the HTML report. Otherwise, the system control is transferred to step 606, and the process execution of the subsequent steps is carried out sequentially.
The present invention may be implemented in numerous ways including as a system, a method, or a computer readable medium such as a computer readable storage medium or a computer network wherein programming instructions are communicated from a remote location.
While the exemplary embodiments of the present invention are described and illustrated herein, it will be appreciated that they are merely illustrative. It will be understood by those skilled in the art that various modifications in form and detail may be made therein without departing from or offending the spirit and scope of the invention as defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
3108/CHE/2009 | Dec 2009 | IN | national |