System and method for manipulation of software
First Claim
1. An information model representing a software architecture, comprising:
- a plurality of language independent format objects, each language independent format object representing a discrete component, wherein the components are structurally related into an information model according to a software architecture.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for manipulating software is provided. The system analyzes a body of source code and derives a set of components from the software architecture inherent in the body of source code. The system further determines the internal and external functional and data dependencies of each component and the control flow of the software and creates an information model that represents the components, their dependencies, and the control flow of the program. Additionally, the system provides a graphical interface that presents the information model and allows the macro and micro structure of the model to be viewed and modified. Furthermore, components can be combined and separated to refine the software architecture represented by the information model and documentation and new source code can be provided for inclusion in the information model.
-
Citations
109 Claims
-
1. An information model representing a software architecture, comprising:
a plurality of language independent format objects, each language independent format object representing a discrete component, wherein the components are structurally related into an information model according to a software architecture. - View Dependent Claims (2, 3, 4, 5)
-
6. A system for creating an information model representing an inherent software architecture derived from a body of source code, comprising:
an information model generator having a parser and a composer, the parser configured to extract program fragments from a body of source code and create a plurality of language dependent format objects, the composer configured to convert language dependent format objects into language independent format objects, wherein each language independent format object represents a discrete component in an information model. - View Dependent Claims (7, 8, 9)
-
10. A method for creating an information model representing an inherent software architecture derived from a body of source code, comprising:
-
extracting program fragments from a body of source code;
converting the program fragments to a language independent format; and
creating a plurality of language independent format objects, wherein each language independent format object contains related program fragments from the body of source and represents a discrete component in an information model. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for creating an information model representing an inherent software architecture derived from a body of source code, comprising:
-
parsing a body of source code to extract data dependencies, functional dependencies, and control flow indicators;
creating a plurality of language dependent format objects, each language dependent format object comprising an abstract syntax tree representing related program fragments within the body of source code; and
converting each language dependent format object into a language independent format object, wherein each language independent format object represents a discrete component in an information model. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
-
-
26. A method for creating an information model representing a software architecture, comprising:
creating a plurality of language independent format objects, wherein each language independent format object represents a discrete component in an information model. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
33. A system for manipulating an information model representing a software architecture, comprising:
-
an information model viewer configured to provide a visual presentation of the information model representing the software architecture; and
a system architect configured to modify the software architecture. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method for manipulating an information model having a plurality of components arranged in a hierarchical structure representing a software architecture, comprising:
merging two or more components into a compound component. - View Dependent Claims (50)
-
51. A method for manipulating an information model having a plurality of components arranged in a hierarchical structure representing a software architecture, comprising:
fragmenting a compound component into its constituent components. - View Dependent Claims (52)
-
53. A method for manipulating an information model having a plurality of components arranged in a hierarchical structure representing a software architecture, comprising:
-
modifying the hierarchical structure between two or more components in an information model;
merging two or more components into a compound component; and
fragmenting a compound component into its constituent components. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67)
-
-
68. A method for manipulating an information model derived from a body of source code, comprising:
-
establishing a connection with a server computer;
requesting an information model from the server, wherein the information model is derived from a particular body of source code; and
receiving a visual presentation of the requested information model comprising a plurality of hierarchically arranged components and a plurality of documentation files. - View Dependent Claims (69, 70, 71, 72, 73, 74, 75, 76)
-
-
77. A system for manipulating an information model having a plurality of components arranged in a hierarchical structure representing a software architecture, comprising:
-
means for providing a visual presentation of the information model representing the software architecture; and
means for modifying the software architecture. - View Dependent Claims (78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89)
-
-
90. A computer readable medium having stored thereon one or more sequences of instructions for causing one or more microprocessors to perform the steps for manipulating an information model having a plurality of components arranged in a hierarchical structure representing a software architecture, the steps comprising:
merging two or more components into a compound component. - View Dependent Claims (91)
-
92. A computer readable medium having stored thereon one or more sequences of instructions for causing one or more microprocessors to perform the steps for manipulating an information model having a plurality of components arranged in a hierarchical structure representing a software architecture, the steps comprising:
fragmenting a compound component into its constituent components. - View Dependent Claims (93)
-
94. A computer readable medium having stored thereon one or more sequences of instructions for causing one or more microprocessors to perform the steps for manipulating an information model having a plurality of components arranged in a hierarchical structure representing a software architecture, the steps comprising:
-
modifying the hierarchical structure between two or more components in an information model;
merging two or more components into a compound component; and
fragmenting a compound component into its constituent components. - View Dependent Claims (95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107)
-
-
108. A system for manipulating an information model having a plurality of components arranged in a hierarchical structure representing a software architecture, comprising:
-
an information model viewer having a data dependency viewer capable of presenting the data dependencies between components of the information model and a functional dependency viewer capable of presenting the functional dependencies between components of the information model;
a system architect having an architect designer capable of reorganizing the hierarchical component structure of the information model;
an information model editor having a text interface capable of allowing editing of documentation associated with the information model and a file interface capable of receiving new or modified documentation files associated with the information model; and
an information model builder having a text interface capable of allowing editing of source code files included with the body of source code and a file interface capable of receiving new or modified source code files for inclusion with the body of source code. - View Dependent Claims (109)
-
Specification