The fourth programming project

computer science


CMSC 350 Project 4
The fourth programming project involves writing a program that behaves like the Java command
line compiler. Whenever we request that the Java compiler recompile a particular class, it not
only recompiles that class but every other class that depends upon it, directly or indirectly, and in
a particular order. To make the determination about which classes need recompilation, the Java
compiler maintains a directed graph of class dependencies. Any relationship in a UML class
diagram of a Java program such as inheritance relationships, composition relationships and
aggregations relationships indicate a class dependency.

The main class for this project should create the GUI shown below:
The GUI must be generated by code that you write. You may not use a drag-and-drop GUI

Pressing the Build Directed Graph button should cause the specified input file that contains the
class dependency information to be read in and the directed graph represented by those
dependencies to be built. The input file associated with the above example is shown below:
ClassA ClassC ClassE
ClassB ClassD ClassG
ClassE ClassB ClassF ClassH
ClassI ClassC

Each line of this file specifies classes that have other classes that depend upon them. The first
line, for example, indicates that ClassA has two classes that depend upon it, ClassC and
ClassE. In the context of recompilation, it means when ClassA is recompiled, ClassC and
ClassE must be recompiled as well. Using graph terminology, the first name on each line is the
name of a vertex and the remaining are its associated adjacency list. Classes that have no
dependent classes need not appear at the beginning of a separate line. Notice, for example, that
ClassC is not the first name on any line of the file.

Related Questions in computer science category

The ready solutions purchased from Library are already used solutions. Please do not submit them directly as it may lead to plagiarism. Once paid, the solution file download link will be sent to your provided email. Please either use them for learning purpose or re-write them in your own language. In case if you haven't get the email, do let us know via chat support.