[[PageOutline(1-2)]] = !PathProject = !PathProject is a small helper tool in order to define the system under observation. Before developers can apply all the other Path Tools, they have to specify the project scope once by choosing their source code and testing packages (categories) of interest. == Description == As Squeak always allows access to the entire system with all its libraries, applications, and frameworks, we request developers to limit the analysis of our approach to their needs. A project defines the system under observation and ignores all other remaining parts of the system (partial trace). Nevertheless, if necessary the project scope can easily be extended by adding new source code packages. In addition to the system under observation, we use projects to cache specific meta data such as test coverage, anomalies, and likely invariants. This data is specific to a project and is often required by multiple tools. So, we are able to interconnect our Path Tools and allow them access to already collected information. == Screenshot == [[Image(PathProjects.png)]] == How to Use == * Start !PathProject with the help of the world docking bar at the top (''Apps -> !PathProjects'') or the world menu (''open... -> !PathProjects''). Furthermore, this tool will automatically start, if you try to open another Path tool without a proper project scope. * Our Path tools framework already comes with some example projects. If you do not want to explore your own projects first, please choose one of these. For example, the ''observerExample'' is well-suited for the first steps. * Otherwise, create your own project by first clicking the ''Add Project'' button and inserting a unique name. After that, push ''Choose Categories'' and select all categories/packages you are interested in. Do not forget the categories of your test base. * Finally, select your favorite project in the left pane and click the ''Set Current'' button. After that, the selected project should been extended with a '''' tag. That's it. Now, the Path tools framework knows the system under observation. * Optionally, if you have a current project, you can explore its content by evaluating {{{ SProject current explore. }}} '''Note:''' There is always only one current project or in other words system under observation. Each Path tool links to this current project at start up and only works on this partial trace. After changing the current project, you have to restart existing tools because they will not change their analysis focus. == Features == Top buttons (from left to right):: * ''Set Current:'' The selected project in the left pane becomes the current project and the active system under observation for our Path tools framework. * ''Add Project:'' Add a new project with a unique name to the projects list. * ''Choose Categories...:'' After selecting a project in the left pane, this button allows developers to choose categories that should be part of the system under observation. * ''Remove Project:'' Select project in the left pane and completely remove it. The project, its meta-data, and caches cannot be restored after a click on this button. * ''Reset Cache:'' Reset all caches of a selected project. This includes class information, coverage data as well as likely invariants. This feature can be useful, if the system does not work as expected. Left pane (list):: Displays all defined projects in the !Squeak/Smalltalk system. You can choose a '''' project that represents the active system under observation for our Path tools framework. Right pane (list):: After selecting a project on the left pane, all categories/packages for the system under observation are shown here.