Differences between a Baseline and a Snapshot

Cradle provides two mechanisms to make protected copies of information, baselines and snapshots. Here we explain what each mechanism does, so you can decide if either or both of them will be helpful in your project. We also explain how each mechanism affects the overall size of your databases, and how they may affect the performance that you experience as you use your databases.

What is a Baseline?

Baselines is the mechanism in Cradle’s Configuration Management System (CMS) to protect information from changes. It is a named repository for the state of a system at a specific point in time. A succession of baselines can be created over the life of a project, each containing more and more information as the project completes its sprints, iterations or phases.

Principles of baselines
Principles of Baselines

Creating Baselines

Each baseline has a unique name and some optional details:

Open Baseline Dialog
Open Baseline Dialog

Items can be registered into an open baseline and are given a version number: 01, 02, 03 …. The version number assigned to each item is either 01 if there are no baselined instances of that item, or it is 1 higher than the highest version already in the database.

When the baseline is closed:

  • Unchanged items from the previous baseline migrate into (become a part of) the new baseline
  • A copy of all current links (cross references) is saved with the baseline
  • A list of the latest items and their versions is saved for the baseline

Migration of Items

Keeping a list of the initial contents of each baseline is important. It does not duplicate the items, rather it creates a list of the items that were in the baseline when it was closed. In the future, any of these items can migrate out of the baseline they were registered into and become part of a new baseline if they have not been superseded by a new version of the item that has already been registered into that new baseline. Therefore, at that future time, items that were marked as being part of one baseline will become marked as being part of a different, newly closed, baseline. The lists created when baselines are closed ensure that it is always possible to know what was part of a baseline when it was originally closed.

For example

A baseline A is created with items I1 and I2, both of which will be version 01. So the database contains:

  • Item I1, version 01, draft <empty>, baseline A
  • Item I2, version 01, draft <empty>, baseline A

If item I1 is to be changed, then a new instance of the item will be created and the database will contain:

  • Item I1, version 01, draft <empty>, baseline A
  • Item I1, version 01, draft A, baseline <empty>
  • Item I2, version 01, draft <empty>, baseline A

When the modified item I1 is registered into a new baseline B, the database will contain:

  • Item I1, version 01, draft <empty>, baseline A
  • Item I1, version 02, draft <empty>, baseline B
  • Item I2, version 01, draft <empty>, baseline A

When the new baseline B is closed, the unchanged item I2 will migrate into baseline B and the database will contain:

  • Item I1, version 01, draft <empty>, baseline A
  • Item I1, version 02, draft <empty>, baseline B
  • Item I2, version 01, draft <empty>, baseline B

If a new item I3 is created and item I1 is changed again and a new baseline C is created, and the items are registered into it and the baseline is closed, then the unchanged item I2 will migrate into the new baseline and the database will contain:

  • Item I1, version 01, draft <empty>, baseline A
  • Item I1, version 02, draft <empty>, baseline B
  • Item I1, version 03, draft <empty>, baseline C
  • Item I2, version 01, draft <empty>, baseline C
  • Item I3, version 01, draft <empty>, baseline C

The database will have lists of the original contents of the baselines. In this example, these lists will be:

  • Baseline A:
    • Item I1, version 01
    • Item I2, version 01
  • Baseline B:
    • Item I1, version 02
    • Item I2, version 01
  • Baseline C:
    • Item I1, version 03
    • Item I2, version 01
    • Item I3, version 01

Having these lists preserved means that Cradle can restore a previous baseline if required.

Using Baselines

The latest baseline is automatically available. It provides read-only access to the latest version of all baselined items and the links between them.

You can use baseline mode to browse a previous baseline read-only:

Baseline Mode Dialog
Baseline Mode Dialog

In baseline mode, you see only the items and links that were in effect when your chosen baseline was closed. So you are looking at the database as it was in the past, potentially many months or years ago. Everything that you see (including queries, matrices, graphs, pivot tables and published documents) uses that old baseline.

Database Effects

Creating baselines increases the size of your database which affects its performance:

  • Each baseline adds new versions of changed items, but reuses unchanged items from previous baselines
  • Creates a copy of all active links

Over time, having many baselines will:

  • Slightly increase the number of items in searches, reducing query performance
  • Greatly increase the time to follow cross-references, reducing the performance of queries and views, and a wide variety of other database operations, including reordering, split and merge, finding and filtering linked items for traceability/coverage views, reports and documents

In a notable example, a database with ~60,000 active links had over 41,000,000 total links due to over 650 baselines. This slowed all link-related operations as Cradle had over 650 instances of each link from which to isolate the links to be used.

What is a Snapshot?

A snapshot is a copy of all the information in a database. Its contents can be viewed, read-only, at any time in the future. A succession of snapshots can be created over the life of a project. In effect, a snapshot is simply an online backup, a copy of a database.

Creating Snapshots

Each snapshot has a unique name and some optional details:

Create Snapshot Dialog
Create Snapshot Dialog

A snapshot is a copy of an entire database. When a snapshot is created, everything in a database, including all its baselines and definitions (excluding Personal and System scope) is copied into a separate area. Every snapshot is separate from all other snapshots and separate from the live database.

Creating a snapshot is similar to making a backup copy of the database, except that this backup is directly accessible from within Cradle.

Using Snapshots

You can select a snapshot to browse read-only:

Select Snapshot Dialog
Select Snapshot Dialog

When you select a snapshot, Cradle is no longer working in the live database, but instead it is working in your chosen snapshot (copy) of that database. Everything that you see (including queries, matrices, graphs, pivot tables and published documents) is in that copy of the database.

Since a snapshot is a copy of an entire database, a snapshot can contain baselines. Therefore, you can:

  • Select a snapshot
  • Enter baseline mode in that snapshot

Database Effects

Creating a database has no effect on the size of a database since it simply takes a copy of that entire database, whatever it is, and including all of its baselines and definitions.

Since it copies everything, more disk space will be used by creating a snapshot of a database than when a new baseline is created inside that database. However, the number of items and links inside the snapshot are the same as the numbers inside the original database.

Baselines vs Snapshots

#CharacteristicBaselineSnapshot
1SummaryCreates a new approved set of items and links in a database that can be viewed RO.Copies an entire database and related definitions to create a new database that can be viewed RO.
2PurposeRecord the next stage in the development of a project.Make an online backup of everything.
3User BenefitRO view of previous baseline that can be used for queries, view data, run metrics, publish reports or documents.RO view of everything in the database as it was in the past, for queries, view data, run metrics, publish reports or documents.
4Process RelatedBaselines are often taken just before or after major process milestones, such as URR, SRR, PDR, CDR, PRR, TRR or ORR.*None. These are purely for data integrity and as a convenience for having permanent access to the database at a particular time.
5LimitsOnly contains information approved in the CMS and the links between them.None, it contains the entire database.
6Additional ItemsNoneNone.
7Additional LinksDuplicates all current linksNone.
8Database SizeAdds some items and a copy of all links.None.
9Disk UsageSmall to medium increase.Medium to large increase.
10Time to CreateSeconds to many minutes.Seconds to few minutes.

* for acronyms, please see https://en.wikipedia.org/wiki/Design_review_(U.S._government) and other similar sources.

Create a New Database Based upon a Previous Database

The Problem

I want to create a new database that is a copy of a pre-existing database minus the actual data.

Cradle Project Environment

The environment for the Cradle project will contain:

  • Project Setup
  • Supporting definition files (views, forms, queries, documents etc.)
  • Users*

*If you will have the same users in the new project that are in the existing project.

The Solution

To avoid the Personal and/or User definition files being part of this import, we would suggest the following:

  1. Log in to the existing project as MANAGER
  2. Select Project > Export
  3. In the Export dialog set Owner to  Everything and Info Type to Project Schema and User Profiles (if users are required, see comment above)

Screenshot showing export of project schema and user profiles

  1. Press Export to create the export file and close the Export Status dialog but do NOT close the Export Information dialog:Screenshot showing Export Status
  2. In the Export Information dialog, change the Info Type to ONLY show Definition Files:
    Screenshot showing Export Definition Files
  3. You will see that some new options appear – Definition Type and Location:
    Screenshot showing Info Type Definitions filter in Export
  4. The Definition Type option allows you to specify the types of definition file to be included in the export. For this example, we will leave this as All:
    Screenshot showing Definition Types in Export
  5. The Location option defines which location you are exporting the definition files from.
    Users may have created Personal or User definition files that might not be relevant to the new project.
    Personal and/or User definitions might only have been useful to an individual person rather than the project so could be omitted.
    In this case, we would only need to select Team*, User Type* and Project

    * It may only be necessary to select Project

    Screenshot showing Location of definitions in Export

  6. Press the Export button again. This will present you with the option to Overwrite, Append or Cancel. Select Append:
    Screenshot showing Overwrite or Append
  7. In Project Manager, create your new project with an EMPTY schema:
    Screenshot showing Create New Empty Project
  8. Log into the new project as MANAGER
  9. Select Project > Import and set Owner to As in File and Overwrite to On:
    Screenshot showing Import Information
  10. You will see that your new project contains:
  • Users
  • All the Project Setup information including the phase hierarchy and all supporting definition files

Summary Note

If you had NOT chosen to append the definition files, it is highly likely that the phase hierarchy from the existing project would not work in the new project and would produce errors.

These definition files are important to define the WorkBench environment.

Also, if you had chosen to export all the definition files, this may have resulted in numerous views, forms, queries, documents etc., that are not particularly relevant or accepted into project definitions.

Dual Monitor Issue – Errors in Toolsuite

Some issues have been detected when running our Toolsuite applications (Document Loader or Document Publisher), e.g. when running dual monitors, with certain scaling settings etc.

Example of Toolsuite Errors

Sometimes when having more than one monitor connected you may see one of the following error messages.

Error message - No document open to perform the operation requested

Error message - Exception has been thrown by the target of an invocation

Solutions

The following solutions can fix the problem without having to remove the monitors.

Scaling

  1. Set the scaling of both monitors to 100%
  2. Restart your machine

Resolution

  1. Set the resolution of both monitors to be the same

Advanced scaling

  1. In Display settings click Advanced scaling settingsScreenshot of windows display settings
  2. Enable Let Windows try to fix apps so they’re not blurry
  3. Restart your machine

High DPI scaling override

  1. Right click on DocPub.exe and choose Properties. Note: if your problem is with Document Loader then just follow the same steps but for DocLoader.exe
  2. In the Compatibility tab select Change high DPI settings
  3. Enable Override high DPI scaling behaviourScreenshot of docpub properties
  4. Restart your machine

Program DPI

  1. If the above doesn’t work then in the same dialog as High DPI scaling override enable the Use this setting to fix scaling problems…. within the Program DPI section

Optimise for Compatibility

  1. Open Word Options
  2. Select the General tab
  3. In User Interface options ensure the When using multiple displays option is set to Optimize for best appearance

    Word Options
    Word Options
  4. Restart your machine
  5. Test Document Publisher/Document Loader and IF you are still getting the error after following all of the above steps then change the option to be Optimise for compatibility and then restart your machine.

How do I make a list?

I need a sequence of information, how do I do this in Cradle?

There are a number of ways to create sequences of information.

  1. You can create a hierarchy of linked numbered Cradle items. This will give you the full flexibility that every element is a complete item and can hold any information you like.

    Items in a hierarchical list
    Item Hierarchy
  2. You can simply type in a text frame. Text frames are free-form so you can type what you like.

    Plain text list within an item
    Plain Text
  3. You could (On Windows® systems) add an RTF frame which allows you to embed styled lists with numbers and bullets.

    RTF list within a frame
    RTF List
  4. Define a frame of the base data type LIST. This will provide a numbered, bulleted or plain list with a title and text element that is held as a sequence within the item.
    List frame type setup in Cradle
    List Frame Type
    Item list frame assignment
    Frame Assignment

    Cradle Item using a list
    List Use

Can I keep an item’s change history when exporting?

Can I keep an item’s change history when exporting?

The simple answer is yes!

I certain scenario’s you may need to export items from one Cradle database and import them into another. Depending on your reasons for this, you may want to retain an items change history. However, this is only possible when using the Standard Cradle Export Format and Change History is enabled for your item types.

Enabling Change History

Each item type can have change history enabled in the Project Schema via the Project Setup dialog. You can see how to enable change history in this Cradle help article. Once enabled you should start to receive a change dialog pop-up when making changes to items of that type.

Image showing Change details window
Change details

You can choose to enter a change comment, which can include your reasons for making this change. This can prove useful in situations where there are a large number of users in one database enabling full traceability.

Standard Cradle format

Cradle export format files are unique to Cradle and can store every piece of PDB (Project Database) information which does include an item’s change history. However, the type of information that is stored can be further defined by you in the export interface.

Image showing export dialog
Export dialog

 

How do I find information on the keyboard shortcuts?

Preferences

There are the usual operating system shortcuts  such as <ctrl> + C and <ctrl> + V to cut and paste text. Users can see and set the additional Cradle keyboard shortcuts in their user preferences.

These preferences are first drawn from the system wide cradle.ini/cradle.rc file. If you alter any of them for your own needs, they are saved in your personal user preferences as a difference between the system setting and you chosen value. Thereby balancing consistency between users, whilst allowing flexibility when needed.

This menu is selected from the tab Home -> Preferences

view of the keyboard shortcuts tab in the preferences dialog
Cradle Keyboard Shortcuts

Keyboard

The Cradle shortcuts are mainly based around diagram drawing operations. This can speed up productivity considerably. For example; you don’t have to keep moving your mouse cursor to a menu,  just to switch between say drawing and selecting.

More information about keyboard shortcuts can be found in the Cradle Help . Similarly the reset of the user preference details can also be set in the same dialog.

 

Can I install Toolsuite with Office 365 (CTR)?

Toolsuite

Cradle Toolsuite is compatible with both 2013 and 2016 Office 365. To see all Toolsuite compatibility see this page. Toolsuite should work with Office 365 the same as with a normal Office install. Occasionally there are problems due to issues with Office 365 not always with Toolsuite.

Document Loader, Document Publisher and Spellchecker make up Toolsuite
Document Loader, Document Publisher and Spellchecker make up Toolsuite

Office Updates

Recently there was an issue with an update to Office 365 which stopped our InstallShield correctly detecting the installed version. This issue has been fixed by changing our detection routine in a patch release. If you are seeing this issue with your original install files, please download the latest files and try again. Unfortunately this could happen again as we have no control over these updates. All 3SL can do is update our routines as and when this comes to our attention.

Occasionally when Office is updated and when newly installed, it requires you to Accept new terms. If you have not done this then you will see an Error when trying to start Toolsuite applications.

  • Error instartup: Object reference not set to an instance of an object

Windows 10 Updates

Since a Windows 10 update earlier this year everything is running slower on may different Microsoft™ Windows flavours. Word can open slower and this can cause issues if you are trying to publish a document. There is no work around for this except to keep trying to publish. Check this blog for more information but the summary so far is:

  • With Windows 10 on newer silicon (2016-era PCs with Skylake, Kabylake or newer CPU), benchmarks show single-digit slowdowns, but we don’t expect most users to notice a change because these percentages are reflected in milliseconds.
  • Aklso on Windows 10 on older silicon (2015-era PCs with Haswell or older CPU), some benchmarks show more significant slowdowns, and we expect that some users will notice a decrease in system performance.
  • Windows 8 and Windows 7 on older silicon (2015-era PCs with Haswell or older CPU), we expect most users to notice a decrease in system performance.
  • Windows Server on any silicon, especially in any IO-intensive application, shows a more significant performance impact when you enable the mitigations to isolate untrusted code within a Windows Server instance. This is why you want to be careful to evaluate the risk of untrusted code for each Windows Server instance, and balance the security versus performance trade-off for your environment.

Connection or Server Issues

Occasionally the Microsoft server or the connection is down (DownDetector) and this can also cause issues with the Office and Toolsuite. There is no work around for this except patience. Once the connection/server is fixed and up and running you should have no issues with Toolsuite.

Subscription and MSI installs

Having a mix of subscription and Microsoft Installer based MS Office installs can cause detection issues during a Toolsuite install. For example the user has a click-to-run Office 2013  installed but a Microsoft Installer version of MS Project or Visio™. This has been fixed by altering how we detect the architecture of the Office applications.

Mixed Office Versions

It is recommended in our install guides not to have mixed Office environments. For example you may have MS Office 2010 but Project 2016. These type of environments can cause install issues. Even once an install is successful there can be application issues including the loading and publishing documents.

 

How do I change the text size in the Cradle UI?

Many of us spend long periods of time working at our computer screens. Consequently, eye strain can become a serious problem. Also, we can sometimes be more productive if we can maximise the amount of information shown. Hence, changing the text size used in the Cradle UI can help in both of these cases, and in several other situations as well.

Maximised Data Display Area

Read articles covering how to maximise the screen area available to display information or drawings.

For comparison, if you use all of the tips described in that other blog post, the UI will have a maximised data display area and will appear like this:

normal text size in 3SL Cradle RM SE Tool
Display in Normal Text

Increase Text Size

You can increase the size of text used in the UI by setting the Text size user preference to Large:

set large text size in 3SL Cradle RM SE Tool
Set Large Text Size

You must re-start WorkBench after making this change.

Using the larger text, the above query and view will be shown like this:

large text size in 3SL Cradle RM SE Tool
Display in Large Text Size

Decrease Text Size

You can decrease the size of text used in the UI by setting the Text size user preference to Small:

set small text size in 3SL Cradle RM SE Tool
Set Small Text Size

You must re-start WorkBench after making this change.

Using the smaller text, the above query and view will be shown like this:

small text size in 3SL Cradle RM SE Tool
Display in Small Text Size

Uses

Cradle provides several options to maximise the screen area used to display information. You can change a user preference to change the size of text used throughout the UI.

You can use these in combination to:

  • Simply see bigger text and reduce the risk of eye strain
  • Reduce the risk of eye strain and also maximise the display area so you do not reduce the amount of information shown in the UI
  • Use smaller text because you are using a low display resolution and Cradle is using text that is needlessly large for your display
  • Reduce the size of text and also maximise the display area because you have a large screen and good eyesight and you must have the maximum possible data visible, particularly when you are using multiple panes to display multiple sets of information at the same time

Can I control duplicates on my hierarchy diagram?

Duplicates In a Hierarchy?

In the case of a standard hierarchy in a book, it is unlikely you’d see duplicates. Chapter 1 may contain paragraph 1 and sub paragraph 1.1. (A complete reference of 1.1.1).  Paragraph 1 in chapter 2 would be 2.1 and therefore, even though paragraph 1 is a duplicate number the full identity is unique. However, in an engineering context, it is much more likely that information will be referenced in more than one place. Hierarchy duplicates are not unusual for referenced information. After all, it is much better to store the information once and use it many times. This is one of the major benefits of a Requirements Management tool. Imagine each component that has to meet a certain design standard. It makes complete sense to relate each part to the  standard, rather than copying the standard numerous times. In this regard the hierarchy contains duplicates. For each part that is drilled down many  components will end up with the same standard at a lower level of the hierarchy.

Linked Hierarchical Information

The following example shows the expansion of a component (Pump) into the sub components (we’ve followed a link type of SUB-PART). The diagram shows that two of the components have to comply with specific flammability requirements. Both Pump Housing and Pump Electrical Control are linked to REF-13 for Flammability. In turn this has lower elements of Smoke  generation for plastics and flammability of Cables.

The diagram illustrates that REF-1.3 is a duplicate by the small square in it’s NE corner.

How to control expansion of hierarchy duplicates on a HID
HID Expansions

Controlling Expansion of Hierarchy Duplicates

The Hierarchy Diagram Properties dialog has an option to control whether items seen as duplicates are expanded to further levels. Here the Expand Duplicates option is unticked which is why the user does not see REF-12 and REF-14 expanded below it.

What are the different types of storage in Cradle?

Data Storage

There are a number of different storage types in Cradle.  These relate to where the data is held and how it is accessed. This article outlines the different storage in Cradle and explains when and where you may consider using it. Whilst there are some compelling reasons to hold certain data in certain ways, others can be a matter of choice.

For example if you want to add a URL to your item, there is no point trying to store the data inside Cradle this is, by its very nature, an As Reference storage type. On the other hand a binary word processor document could easily be stored inside the Cradle Database or as a reference to an external file on the rest of the company’s network. In this case it could depend whether the file needed to be accessed from outside Cradle or whether it was shared by multiple Cradle projects

Frames

Within an item data is either held in the main indexed database fields, such as ID, name, key or a category, or in associated frames. These frames are defined as part of the project’s schema to hold different types of data. There are a large number of predefined types and the ability to define your own.

Base Types

These are the fundamental type  of data we expect to see in the frame. They may be presented in different ways to the user. For example a plain text based frame can be shown in Forms and Views and read directly on the screen. The same is true for basic images. However, a word processor document is held as a binary frame and viewed within whichever application your company uses. A CAD sketch would not be directly visible in Cradle, but could still be stored in the item and viewed with an external program.

These are the fundamental and abstract data types offered in Cradle

  • Text
  • Binary
  • Image
  • URL
  • Category Picklist
  • Category Multiple Picklist
  • RTF
  • Date
  • Time
  • Integer
  • Positive Integer
  • Real

Storage Types

Each of the above types can be stored in Cradle in one or more ways. Some storage in Cradle, such as a date, make no real sense to store in more than one manner, the URL as mentioned or a date would not make sense to be stored in a file!

  • In PDB
  • As File
  • By Command
  • As Reference
  • Referenced File from Item
setting frame type details in the Cradle project schema
Frame Type Details dialog

Storage Matrix

This shows the combinations of base type and storage in Cradle that are possible. More information in Cradle help.

In PDBAs FileBy CommandAs ReferenceReferenced File from Item
Text
Binary
Image
URL
Category Picklist
Category Multiple Picklist
RTF
Date/Time/Integer/Positive Integer/Real

Benefits and Usage

In PDB (Project DataBase)

Frame data stored in the database is inherently linked to the database item that owns it. It is controlled in the same way as all the other fields of data (name, category, group, description, etc.). This means it can be imported and exported as part of the item. Text frames can form part of a query. Images, text and RTF can be displayed in-line. They move through the CM (configuration management) system with the item. Different revisions of the frame form part of the item’s history, and can be rewound.
Not ideal for very large data, e.g. video. Not externally accessible.

As File

Frame data stored in a file is loosely linked to the item that owns it. Date and access times are remembered by Cradle so changes to the file can be highlighted. Great for large files. Other users can access the information externally to Cradle if they have access to a common file directory. Can be accessed through Cradle and item is locked while file is being edited as if it were part of the item.
Not directly controlled within Cradle, nothing to prevent the external file being removed or deleted. Can’t be rewound.

By Command

Frame data is held in an external environment under an identity, the item stores this identity, and uses Get and Set commands to move the data between the environment and a temporary file where it can be operated on.
Not directly controlled within Cradle, nothing to prevent the external file being removed or deleted. Can’t be rewound.

As Reference

Frame data stored anywhere and only loosely linked to the database item. Ideal for large resources such as Intranet pages. Ideal for information that is expected to change outside Cradle and be accessed by others. Cradle does not wait when viewing or editing.
This is not considered storage in Cradle so there is no CM or rewind available. No control over alterations.

Referenced File from Item

Frame data is held in a frame of a different item whose identity (PDUID and frame name) is stored in the current item. When the frame is accessed via a View the user is editing the common shared data held by the referenced item. This provides a method of reuse, allowing multiple items to directly access a data component of a different item. The ‘host’ item and the frame data follow normal CM operations.
Not ideal storage in Cradle for very large data, e.g. video. Not externally accessible.

Setting Up a Frame Storage in Cradle

In this example of storage in Cradle, a frame will be set up to hold a word processor document, internally (in pdb), in a file (as file), and in another item (referenced file from item).

Frame Setup

Setting storage types and frames in Cradle
Storage Frame Setup

First set up a set of frames for each storage type and set commands on how to view and edit the file.

Frame Assignments

Ensure the items you want have these frames assigned. In this example the Feature has all three types and the Reference item has just the stored in pdb.

Assigning frames to item types
Frame Assignments

Usage

When the file types are set up the data can be imported into the item using the frame button and import Content… this brings the document into the item and it can be stored in the database. It can then be viewed and edited from the same button. In this illustration the Design Notes and Legal Requirements and have been stored in in this way.

The Company Design Standards are held in one directory for every project to access. The illustration links to this as file from where it can be viewed or edited.

Finally the Reference item holds the Legal Requirements document so that it is under formal control. However, other linked items can access this file directly, without having to open the holding item. Their frame is an alias for the data held by the other item.

the different ways data is stored and accesse
Frames and Storage Illustration