News Column

Researchers Submit Patent Application, "Automatic Untangling Cyclic Dependencies in Software Systems", for Approval

August 21, 2014



By a News Reporter-Staff News Editor at Computer Weekly News -- From Washington, D.C., VerticalNews journalists report that a patent application by the inventors Goldstein, Maayan (Holon, IL); Moshkovich, Dany (Yokneam Ilit, IL), filed on January 28, 2013, was made available online on August 7, 2014.

The patent's assignee is International Business Machines Corporation.

News editors obtained the following quote from the background information supplied by the inventors: "The present invention, in some embodiments thereof, relates to modular software architectures and, more specifically, but not exclusively, to a computerized method for untangling cyclic dependencies between components in software architectures.

"Software systems tend to suffer from various architectural problems and their modularity deteriorates due to changes and further development processes as they evolve. A major problem that software system architects need to address is cyclic dependencies between different parts of the architecture. Cyclic dependencies may occur when a newly added element (a class, for example, in object oriented languages) is added to a wrong component (package) or due to improper refactoring. Eliminating the cyclic dependencies saves development and/or testing time, preserves better organized system architecture and facilitates reuse of software components.

"Various techniques may be used to eliminate manually cyclic dependencies by moving classes between packages or methods between classes and by changing the design of the system such as introducing new interfaces and abstract classes to break the cyclic dependencies.

"A simulated-annealing automated approach for resolving the dependencies between two cyclically dependent packages was recently proposed by Abdeen et al in 'Automatic Package Coupling and Cycle Minimization', IEEE Computer Society, 2009, pp 103-112. The approach uses a simulated-annealing based heuristic algorithm to move classes between pairs of packages in order to remove cyclic dependencies between package pairs."

As a supplement to the background information on this patent application, VerticalNews correspondents also obtained the inventors' summary information for this patent application: "According to an aspect of some embodiments of the present invention there is provided a computerized method for untangling cyclic dependencies between components in a software architecture. The computerized method includes receiving a software architecture that includes a plurality of components wherein the components include further pluralities of elements and finding at least one cyclic dependency between the plurality of components. The computerized method includes creating a plurality of rearranged untangled components and outputting the plurality of rearranged components.

"According to a further feature of an embodiment of the present invention, a computerized system for untangling at least one cyclic dependency between components in a software architecture is provided. The computerized system includes a storage medium for receiving a set of components of a software architecture and for storing a program code. The computerized system includes a processor for executing the program code wherein the processor is programmed to receive a software architecture that includes a plurality of components that include further pluralities of elements. The processor is programmed to find at least one cyclic dependency between the plurality of components, to create a plurality of rearranged untangled components and to output the plurality of rearranged components.

"According to a further feature of an embodiment of the present invention, a computer program product for untangling at least one cyclic dependency between components in a software architecture is provided. The computer program product includes a computer readable storage medium, first program instructions to receive a software architecture that includes a plurality of components wherein the components includes further pluralities of elements, second program instructions to identify at least one cyclic dependency between the plurality of components, third program instructions to create a plurality of rearranged untangled components, fourth program instructions to output the plurality of rearranged components, wherein the program instructions are stored on the computer readable storage medium.

"Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments of the invention, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting.

"Additional features and advantages of the invention will become apparent from the following drawings and description.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

"Some embodiments of the invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.

"In the drawings:

"FIG. 1A is a block diagram that illustrates a computerized method for untangling cyclic dependencies between components in a software architecture, according to some embodiments of the present invention;

"FIG. 1B is a block diagram that illustrates a server and clients, which are connected over via a network, that execute a process for untangling cyclic dependencies between components in a software architecture, according to some embodiments of the present invention;

"FIG. 2 is a block diagram that illustrates the computerized method receiving input constraints, according to some embodiments of the present invention;

"FIG. 3 is a flowchart that illustrates the computerized method of FIG. 1, according to some embodiments of the present invention;

"FIG. 4 is a flowchart that illustrates a process of creating iteratively a one or more of rearranged components in order to untangle cyclic dependencies, according to some embodiments of the present invention;

"FIG. 5 is a schematic illustration that illustrates cyclic dependencies in an exemplary strongly connected component (SCC), according to some embodiments of the present invention;

"FIG. 6 is a table that lists the sorted groups of each package of the exemplary SCC, according to some embodiments of the present invention;

"FIG. 7 is a schematic illustration that illustrates first iteration of a process for re-arranging classes in a received set of three packages of the exemplary SCC, according to some embodiments of the present invention;

"FIG. 8 is a schematic illustration that illustrates second iteration of re-arranging classes in the remaining two packages (the first iteration is illustrated in FIG.6) of the exemplary SCC, according to some embodiments of the present invention; and

"FIG. 9 is a schematic illustration that illustrates the received exemplary SCC and the rearranged packages output, according to some embodiments of the present invention."

For additional information on this patent application, see: Goldstein, Maayan; Moshkovich, Dany. Automatic Untangling Cyclic Dependencies in Software Systems. Filed January 28, 2013 and posted August 7, 2014. Patent URL: http://appft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=238&p=5&f=G&l=50&d=PG01&S1=20140731.PD.&OS=PD/20140731&RS=PD/20140731

Keywords for this news article include: Software, International Business Machines Corporation.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Computer Weekly News


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters