Integrated System for Software Application Development
First Claim
1. A method to develop a software application, the method comprising the steps of:
- a. managing communications among several groups who are working on a common software application by providing an interactive visual subsystem among the team members;
b. defining a visual process workflow for a plurality of software application features;
c. defining a plurality of user interface (UI) details associated with each step of the process workflow including a group of visually organized user interface widgets including text input fields, drop down lists, buttons, tables, check boxes, radio-buttons, date fields, images, links;
d. defining a plurality of requirements specific details associated with each UI widget on a UI screen;
e. defining a plurality of business rules organized in rule groups, associated with each step of the process workflow and associating at least one business rule with said UI widgets;
f. defining a plurality of re-usable technical design patterns for the software application (user interface and server side) and said plurality of integration interfaces, each design pattern comprising attributes including;
i. name and description;
ii. a plurality of visually organized design components, each component containing additional metadata including;
1. name and description;
2. width, height and location coordinates on the design diagram;
3. type (chosen from a predefined list of types);
4. effort estimate (fixed and variable components);
5. developer notes;
iii. a plurality of visually organized program flow steps, each flow step comprising a step number and step description;
iv. a plurality of visually organized arrow shapes depicting program logic invocation;
v. a plurality of file attachments allowing users to add additional data for each pattern;
g. defining a plurality of re-usable integration points between the software application and other applications or services, each integration point comprising a plurality of integration interfaces, and associated design pattern, data fields and business rules for each of the said interfaces; and
h. producing the finished software application by programming and testing the software application according to said requirements and design specifications.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems are disclosed for developing a software application through requirements specification, design, effort estimation, assigning and tracking work items, development, testing, collaboration and project management. The system is structured as an integrated software development system allowing for structured, systematic and user friendly set up of requirements specification (including workflow, user interface, business rules and integrations), technical design for UI features and integrations using design patterns, automated effort estimation, automated story card and task creation. The system also provides a novel, audio-video playback capability for workflow visualization. Further, the system provides visual depiction of defects and changed items side-by-side with requirements, as well as predictive modeling of defects that allows for forecasting of defect completion rate. In the preferred embodiment, the system is delivered as a multi-tenant Software as a Service.
-
Citations
21 Claims
-
1. A method to develop a software application, the method comprising the steps of:
-
a. managing communications among several groups who are working on a common software application by providing an interactive visual subsystem among the team members; b. defining a visual process workflow for a plurality of software application features; c. defining a plurality of user interface (UI) details associated with each step of the process workflow including a group of visually organized user interface widgets including text input fields, drop down lists, buttons, tables, check boxes, radio-buttons, date fields, images, links; d. defining a plurality of requirements specific details associated with each UI widget on a UI screen; e. defining a plurality of business rules organized in rule groups, associated with each step of the process workflow and associating at least one business rule with said UI widgets; f. defining a plurality of re-usable technical design patterns for the software application (user interface and server side) and said plurality of integration interfaces, each design pattern comprising attributes including; i. name and description; ii. a plurality of visually organized design components, each component containing additional metadata including; 1. name and description; 2. width, height and location coordinates on the design diagram; 3. type (chosen from a predefined list of types); 4. effort estimate (fixed and variable components); 5. developer notes; iii. a plurality of visually organized program flow steps, each flow step comprising a step number and step description; iv. a plurality of visually organized arrow shapes depicting program logic invocation; v. a plurality of file attachments allowing users to add additional data for each pattern; g. defining a plurality of re-usable integration points between the software application and other applications or services, each integration point comprising a plurality of integration interfaces, and associated design pattern, data fields and business rules for each of the said interfaces; and h. producing the finished software application by programming and testing the software application according to said requirements and design specifications. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus to develop a software application, the apparatus comprising:
-
a. a computer system comprising a group of computers on the server side, and a plurality of client computers connecting to the server side computers over a distributed network; b. means for managing communications among several groups who are working on developing a common software application functioning to aid software development by providing an interactive visual subsystem among the team members; c. means for forming an administrative database including defined users, user roles, security permissions for the defined users, user story actors, build environments, blocker reasons, and notification settings functioning to streamline a creation of detailed requirements and design specifications used to direct software programmers and testers; d. means for forming a requirements database functioning to streamline the creation of the detailed application requirements specifications, said means for forming a requirements database including visually defined user story workflows, user interface screens, visually organized user interface widgets, style sheets, and business rules; e. means for forming a requirements database functioning to streamline the creation of the detailed application requirements specifications, said means for forming a requirements database including visually defined integration points between the software application and other applications or services, integration interfaces with their data fields, and business rules; f. means for forming a design database functioning to streamline the creation of the detailed application design specifications, said means for forming a design database including design patterns;
each design pattern comprising visually organized design components, visually organized program logic flow steps, visually organized arrows connecting the design components;g. means for selecting a design pattern to be assigned to a UI screen of an application feature functioning to re-use a pre-defined application design pattern in a consistent and re-usable manner; h. means for selecting a design pattern to be assigned to an integration interface of an integration point functioning to re-use a pre-defined integration design pattern in a consistent and re-usable manner; i. means for assisting the development of the application source code program modules using the requirements and design specifications which define the software application functioning to complete a delivery of the software application features; and j. means for assisting the testing of the application source code program modules using the requirements and design specifications which define the software application functioning to complete a delivery of the software application features. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus to develop a software application, the apparatus comprising:
-
a. a computer system comprising a group of computers on the server side, and a plurality of client computers connecting to the server side computers over a distributed network; b. means for managing communications among several groups who are working on developing a common software application functioning to aid software development by providing an interactive visual subsystem among the team members; c. means for forming an administrative database including defined users, user roles, security permissions for the defined users, user story actors, build environments, blocker reasons, and notification settings functioning to streamline a creation of detailed requirements and design specifications used to direct software programmers and testers; d. means for forming a requirements database functioning to streamline the creation of the detailed application requirements specifications, said means for forming a requirements database including visually defined user story workflows, user interface screens, visually organized user interface widgets, style sheets, and business rules; e. means for forming a requirements database functioning to streamline the creation of the detailed application requirements specifications, said means for forming a requirements database including visually defined integration points between the software application and other applications or services, integration interfaces with their data fields, and business rules; f. means for forming a design database functioning to streamline the creation of the detailed application design specifications, said means for forming a design database including design patterns;
each design pattern comprising visually organized design components, visually organized program logic flow steps, visually organized arrows connecting the design components;g. means for selecting a design pattern to be assigned to a UI screen of an application feature functioning to re-use a pre-defined application design pattern in a consistent and re-usable manner; h. means for selecting a design pattern to be assigned to an integration interface of an integration point functioning to re-use a pre-defined integration design pattern in a consistent and re-usable manner; i. means for forming a software labor estimate chart from the requirements and design specifications by selecting from a group of estimation methods to assist a program manager to control a cost of the software application development; j. means for assisting the development of the application source code program modules using the requirements and design specifications which define the software application functioning to complete a delivery of the software application features; k. means for assisting the testing of the application source code program modules using the requirements and design specifications which define the software application functioning to complete a delivery of the software application features; l. means for automatically generating from the user defined requirement specifications, an audio-video playback sequence explaining the process workflow with computer generated speech from user defined text for a plurality of UI widgets, and using visual pop-up text elements describing the user interaction with said software application for a plurality of application features, functioning to aid in immediate and effective grasping of the application feature; m. means for automatically generating a detailed requirements document containing a cover page, computer generated diagrams for UI screens, detailed descriptions of UI widget requirements attributes, business rules, notes, change history, file attachments, open questions functioning to aid in effective understanding of the application feature requirements and reducing effort in writing such a document manually; n. means for automatically generating a detailed technical design document for an application feature containing a cover page, computer generated UI screen images, computer generated design diagrams, detailed descriptions of design components, notes, change history, file attachments, open questions functioning to aid in effective understanding of the application feature technical design and reducing effort in writing such a document manually; o. means for automatically generating a detailed technical design document for an integration point containing a cover page, computer generated design diagrams, detailed descriptions of design components, notes, change history, file attachments, open questions functioning to aid in effective understanding of the integration point technical design and reducing effort in writing such a document manually; p. means for visually depicting a plurality of changed items associated with each user interface screen, business rule and integration interfaces, wherein the changes are visually rendered with a color coding scheme that identifies the type of change—
a new item, changed item or deleted item, functioning to aid in immediate and effective grasping of the incremental changes made in a user-definable time period;q. means for tracking and visually depicting a plurality of UI widgets deleted by the user, in a separate area of the visual rendering of the UI, functioning to aid in effective understanding of deleted UI widgets from the UI requirements specification; r. means for visually depicting defects associated with a UI screen overlaid visually on individual UI widgets with color coded aid for defect severity, functioning to aid in immediate and effective identification of open defects; s. means for visually depicting defects associated with a process workflow of a software application feature, overlaid visually on individual UI steps with color coded aid for defect severity, functioning to aid in immediate and effective identification of open defects across the software feature; t. means for visually depicting the planned development iteration on individual UI steps of a process workflow, functioning to aid in immediate and effective identification of project management related information for developing the software feature; and u. means for visually depicting the planned development iteration on a plurality of integration interfaces of an integration point, functioning to aid in immediate and effective identification of project management related information for developing the software feature.
-
Specification