Now that you know how to define your schema (‘Defining a Factory Schema’), and what it looks like to the factory builder, I am going to illustrate to you how the schema could provide the one thing we are all missing in our factories today – integrated structured guidance and navigation through your factory.

This missing piece, as evidence of the early factories of today, is a means to guide the user round the factory - an automated 'User Manual' if you like. Only a little bit cleverer than that since this manual has context and state, and can tell you where you have been, how you got here, what you have done, how you did it, what you can do next and how you can do that too.

Since we have all the information in the schema that describes what the factory does and how it does it, we have enough information to help to user use the factory as intended. It should be noted at this point, that we actually dont have tools publically avaible to define your schema, so this discussion will assume these tools exist and you have used them to construct the schema for your factory.

The Factory Schema Viewer’ - is really the 3rd key element of a practical factory today. The 1st and 2nd elements being: domain specific languages provided by the DSL Toolkit, and contextual recipes and wizards provided by the Guidance Automation Toolkit.

This article will discuss a possible view of the schema, and how it will help the user of the factory navigate around it, and perform the necessary activities for their role to complete the objectives of the factory.

So, we use the ViewPoints from the previous post (‘Defining a Factory Schema’). Which included a high level viewpoint called ‘Service Specification’, containing 2 nested child viewpoints: ‘Service Interface Definition’ and ‘Service Contract Definition’.

Since these ViewPoints and the schema as a whole contains information on how the factory works and what it does, the question is: how could that information be used and displayed to the user. Furthermore, how would this information be used to automate the activities described within the schema?

The ‘Factory Schema Viewer’ or better still the ‘The Factory Explorer’ would provide a view of the schema tailored for the factory user. It would redefine the terms used in the factory schema to make sense in this context to the factory user. This explorer would render the information gleaned from the schema in a format that is easy to read and navigate for the user. The explorer would be hosted in a tool window within the IDE, that would be shown possible at all times to the user without interfering with other tool windows or the design surfaces they use in the factory. This explorer would therefore manifest itself as a tool window which could be resized and positioned anywhere in the IDE.

The information displayed in the explorer window will be dynamically displayed as the user navigates the viewpoints of the factory and as they compete the activities of each ViewPoint. Of course, the available ViewPoints could be filtered specifically for the role of the current user.

For each ViewPoint, the factory may configure the IDE to show and hide certain editors, tool windows menus, layout etc, to focus the user on the current activities of the ViewPoint, or ‘zoom in’ to the WorkProduct they need to focus upon.

Once focused upon a specific WorkProduct, the user can then browse a list of activities that need to take place for the ViewPoint in order to complete. In these activity descriptions, the factory explorer can provide links or active controls to enact the various assets that operate on the WorkProducts.

Since each ViewPoint has defined pre-conditions, the explorer would enable and disable them as the user enacts the activities of the dependee ViewPoints, and only make them available when all their pre-conditions are met.

In this way, the user is guided through the ViewPoints and how to address each concern they define. They are provided with a description of how to enact each activity and bring it to completion, and the Explorer can provide active controls to enact each activity.

The Factory Explorer also offers the flexibility to allow the user to navigate around the schema and pick and chose which activities of which ViewPoints they can perform at the present time. Since the explorer reflects the state of the schema at any point in time, it can inform the user of what viewpoints are available enact and what state those ViewPoints are in. It will also indicate which ViewPoints are completed and therefore deactivated and which ViewPoints are deactivated waiting to start.

So therefore we could imagine for the viewpoints discussed earlier what the Schema Explorer might look like to the factory user during use.