Basics about Projects

Projects are used to manage all the assets, jobs, and resources created or generated during the various activities.

Those items include the model (organized in modules), the settings and other input files that are needed to launch batch tools (such as code generation or simulation). A project also contains dependencies to other projects.

Project Structure

Scade One is very flexible regarding the project structure. There is no requirement for any specific structure. Putting data and jobs in one project or in several projects produces the same results. For instance, a project structure may reflect the teams' organization, with several projects managed by different teams. It could also match a logical structure, with one project per library or component, etc.

Project Dependencies

A project can reference other projects. Such reference is called a project dependency. Project dependencies are used to specify what a project can reference. For instance, if Project 1 depends on Project 2, then Project 1 declarations can access/be based on declarations in Project 2. Dependencies are explicit, i.e., they must be created and edited by the user.

Dependencies can be viewed and edited in the Workspace view. A dependency relationship is represented by an arrow that points from a project to its dependency.

When a project is loaded, all its dependencies are loaded automatically (and recursively).

Note that a project can be edited even when its dependencies fail to be loaded: the referenced declarations then appear as unknown and the results of checks are partial, but the model can still be edited. If a dependency cannot be loaded, an error is reported in the Workspace view.

An error is also raised if a circular dependency is detected. Projects can still be loaded in that case.

Read-Only Projects

A project can be set as read-only . In that case, you cannot add, edit or remove any data or jobs from that project. It is still possible to add a dependency to a "read-only" project. The "read-only" status is only a property of the current session, and not related to configuration management or access rights. For instance, a project can be read-only in an instance of Scade One and editable in another one at the same time.

The feature is typically used to avoid modification in dependencies (e.g., a reusable library) while working on a project (for instance, when a project is managed by another team).

The "read-only" status can be changed at any time. At load time, dependencies of a loaded project are automatically set as read-only.

When a project is set as read-only, if there are unsaved changes, then you have the possibility to save them, so that the projects in memory are in sync with the contents of the corresponding files.