Posts Tagged ‘Dunstan Thomas’

Changing the Appearance of BPMN 2.0 Elements

Monday, June 17th, 2013

Introduction

Sparx Systems Enterprise Architect provides a very rich modelling toolset for Business Process Model and Notation 2.0 (BPMN 2.0), which is increasing in popularity particularly amongst Business Analysts.

The BPMN 2.0 notation uses a common set of symbols, which have an icon to show their meaning, for example, the type of event that triggers the start of a business process.

Each BPMN 2.0 element has a set of tagged values identified by the label BPMN 2.0 in the properties dialog.  The value in these tagged values affects the appearance of the associated element.

Enterprise Architect can generate Business Process Execution Language (BPEL) directly from BPMN 2.0 models. This code generation uses tagged values also identified by the label BPMN 2.0.

This use of tagged values results in a large number of them to choose from and for modellers beginning with Enterprise Architect, this prospect can be rather daunting. Sparx Systems have tried to resolve this problem by grouping the tagged values into sections, but it can be challenging to know which tagged values to use.

Business Analysts will not be using the BPEL tagged values and this article presents a tabular summary of just the tagged values, which affect the appearance of BPMN 2.0 elements.

This information is in the on-line help and user guide, it is presented here for convenience.

BPMN 2.0 Elements

Activity

The Activity element used on Collaboration and Business Process diagrams uses the following tagged values to change its appearance.

Tagged Value Group Tagged Value Name Values Effect
Activity activityType Task

Sub-Process

Task – displays no “plus-in-box” icon

Sub-Process – displays “plus-in-box” icon

isACalledActivity false

true

false – displays normal Activity border

true – displays bold thick border

isATransaction false

true

false – displays normal Activity border

true – displays double border

isForCompensation false

true

false – displays no “rewind” icon

true – displays “rewind” icon

Task taskType BusinessRule

Manual

Receive

Service

Send

Script

User

Abstract

Displays the corresponding BPMN 2.0 Task icon

BusinessRule is equivalent to BPMN 2.0 Conditional

AdHoc adHoc false

true

false –displays no “tilde” icon

true – displays “tilde” icon

Loop isSequential false

true

Only takes effect if loopCharacteristics is set to MultiInstance

false – displays “three vertical lines” icon

true – displays “three horizontal lines” icon

loopCharacteristics None

Standard

MultiInstance

None – displays no loop icon

Standard – displays “counter-clockwise arrow” icon

MultInstance – depends upon isSequential

Sub-Process triggeredByEvent false

true

false – displays normal Activity border

true – displays dashed border

Gateway

The Gateway element used on Choreography, Collaboration and Business Process diagrams uses the following tagged values to change its appearance.

Tagged Value Group Tagged Value Name Values Effect
Gateway gatewayType Exclusive

Complex

Inclusive

Parallel

Event

Displays the corresponding BPMN 2.0 Gateway icon

Exclusive will display icon only if markerVisible is set to true

When Event is used eventGatewayType must be set to Exclusive

Event Gateway eventGatewayType Exclusive

Parallel

Used with instantiate to indicate type of event, displays the BPMN 2.0 event-based (instantiate) gateway icon
Instantiate false

true

false – “normal” gateway

true – event-based (instantiate) gateway

Exclusive Gateway markerVisible false

true

false – gatewayType set to Exclusive does not display icon

true – gatewayType set to Exclusive displays icon (recommended best practice)

Start Event

The Start Event element used on Choreography, Collaboration and Business Process diagrams uses the following tagged values to change its appearance.

Tagged Value Group Tagged Value Name Values Effect
Start Event eventDefintion None

Compensation

Conditional

Error

Escalation

Message

Multiple

Timer

Signal

ParallelMultiple

Displays the corresponding BPMN 2.0 Start Event icon

NOTE

Some of these values only make sense when the Start Event is used within an Event Sub-process

isInterrupting false

true

Only used when the Start Event is used within an Event Sub-process

false – displays solid border

true – displays dashed border

End Event

The End Event element used on Choreography, Collaboration and Business Process diagrams uses the following tagged values to change its appearance.

Tagged Value Group Tagged Value Name Values Effect
End Event eventDefintion None

Cancel

Compensation

Error

Escalation

Message

Multiple

Terminate

Signal

Displays the corresponding BPMN 2.0 End Event icon

Intermediate Event

The Intermediate Event element used on Collaboration and Business Process diagrams uses the following tagged values to change its appearance.

Tagged Value Group Tagged Value Name Values Effect
Intermediate Event cancelActivity true

false

Must only be used for Boundary Intermediate Events

true – displays solid double border

false – displays dashed double border

catchOrThrow Catch

Throw

Displays white icon

Displays black icon (only for non-boundary intermediate events)

eventDefintion None

Cancel

Compensation

Conditional

Escalation

Error

Link

Message

Multiple

Timer

Signal

ParallelMultiple

Displays the corresponding BPMN 2.0 Intermediate Event icon

NOTE

These settings depend upon the value of cancelActivity and if the event is a boundary intermediate event or a non-boundary intermediate event

Pools

The Pool element used on Collaboration diagrams uses the following tagged values to change its appearance, for which there are no groups.

Tagged Value Name Values Effect
blackBoxPool false

true

false – displays Pool as a “white box” ready to contain Activities and other process flow elements

true – displays as a “black box” resembling a UML Class element

participantMultiplicity false

true

false – no icon displayed

true – displays “three vertical bars” icon

Data Object

The Data Object element used on Collaboration and Business Process diagrams uses the following tagged values to change its appearance.

Tagged Value Group Tagged Value Name Values Effect
DataObject dataInOut None

Input

Output

None – displays no icon

Input – displays a hollow arrow icon

Output displays a black arrow icon

isCollection false

true

false – displays no icon

true – displays “three vertical bars” icon to show data object represents a collection

Sequence Flow

The Sequence Flow connector drawn within Pools and Lanes on a Collaboration diagram uses the following tagged value to change its appearance, for which there are no groups.

Tagged Value Name Values Effect
conditionExpression Text entered here will display if the conditionType is set to Expression
conditionType None

Expression

Default

None – usual form of Sequence Flow connector

Expression – adds a “hollow diamond” icon on the non-arrow end of the Sequence Flow connector

Default – adds a “slash” icon on the non-arrow end of the Sequence Flow connector

Message Flow

The Message Flow connector drawn between Pools or elements in different Pools to model B2B communication on Collaboration diagrams uses the following tagged values to change its appearance, for which there are no groups.

Tagged Value Name Values Effect
messageVisible None

Initiating

Non-Initiating

None – usual form of Message Flow

Initiating – adds a “hollow envelope” icon on the Message Flow connector

Non-Initiating – adds a “grey envelope” icon on the Message Flow connector

Particpant

The Participant element drawn on Conversation diagrams uses the following tagged values to change its appearance, for which there are no groups.

Tagged Value Name Values Effect
participantMultiplicity false

true

false – displays no icon

true – displays “three vertical bars” icon

Conversation

The Conversation element drawn on Conversation diagrams uses the following tagged values to change its appearance, for which there are no groups.

Tagged Value Name Values Effect
isACallConversation false

true

false – displays standard Conversation element border

true – displays  thick bold Conversation element border

isComposite false

true

false – displays no “plus-in-box” icon

true – displays “plus-in-box” icon

Choreography

The Choreography element drawn on Choreography diagrams uses the following tagged values to change its appearance.

Tagged Value Group Tagged Value Name Values Effect
Choreography choreographyType Task

Sub-Process

Task – No “plus-in-box” icon

Sub-Process – “plus-in-box” icon

isACalledChoreography false

true

false – displays standard Choreography element border

true – displays thick bold Choreography border

loopType None

Standard

MultiInstanceParallel

MultiInstanceSequential

None – displays no icon

Standard – displays “counter-clockwise arrow” icon

MultiInstanceParallel – displays “three vertical bars” icon

MultiInstanceSequential – displays “three horizontal bars” icon

Participants initiatingParticipant participantA

participantB

participantC

participantD

Clears the grey background colour from the corresponding participant section in the Choreography element
numberOfParticipants 2, 3 or 4 Creates the corresponding number of participant sections in the Choreography element
Participant A participantA Text The name of the first participant
participantAMultiplicity false

true

false – displays no icon

true – displays “three vertical bars” icon in the participantA section of the Choreography element

participantARef Selected Pool element Navigate to a Pool within the Project Browser and the name of the Pool (prefixed by <<Pool>>) is displayed in the participantA section of the Choreography element
Participant B participantB Text The name of the second participant
participantBMultiplicity false

true

false – displays no icon

true – displays “three vertical bars” icon in the participantB section of the Choreography element

participantBRef Selected Pool element Navigate to a Pool within the Project Browser and the name of the Pool (prefixed by <<Pool>>) is displayed in the participantB section of the Choreography element
Participant C participantC Text The name of the third participant
participantCMultiplicity false

true

false – displays no icon

true – displays “three vertical bars” icon in the participantC section of the Choreography element

participantCRef Selected Pool element Navigate to a Pool within the Project Browser and the name of the Pool (prefixed by <<Pool>>) is displayed in the participantC section of the Choreography element
Participant D participantD Text The name of the fourth participant
participantDMultiplicity false

true

false – displays no icon

true – displays “three vertical bars” icon in the participantD section of the Choreography element

participantDRef Selected Pool element Navigate to a Pool within the Project Browser and the name of the Pool (prefixed by <<Pool>>) is displayed in the participantD section of the Choreography element

Conclusion

This document aims to highlight those BPMN 2.0 Tagged Values used to change the appearance of BPMN 2.0 elements. It presents them grouped into tables according to BPMN 2.0 element type.

I hope you find this to be a useful and valuable resource when using Enterprise Architect for modelling business processes in BPMN2.0

By Phil Chudley

This article is available for download on our technical articles page.

Importing a model from “A Practical Guide to SysML (2nd edition)” for use in Sparx EA

Wednesday, February 20th, 2013

Morgan Kauffmann has published the second edition of “A Practical Guide to SysML” by Sanford Friedenthal, Alan Moore and Rick Steiner (ISBN 978-0-12-385206-9). The authors have made a very complete selection of supporting materials available for download from http://www.elsevierdirect.com/v2/companion.jsp?ISBN=9780123852069.

These companion resources include the “Air Compressor”, “Automobile”, “Distiller”, and “Security System” example models, as described in the book. Unfortunately, the model files are only available in MagicDraw tool format (although the authors have also provided HTML reports for use by anyone who do not have access to MagicDraw). I decided to try importing the files into Sparx Enterprise Architect version 10, to support my work at Dunstan Thomas.

After you use a tool like 7-zip (http://www.7-zip.org) to extract the archive, you will see that the files have a “.mdxml” extension. Opening one of them in your favourite text editor will confirm that they are in XML format, based on the XMI 2.1 specification (http://schema.omg.org/spec/XMI/2.1), and also including some proprietary extensions to support the SysML profile (such ashttp://www.magicdraw.com/schemas/SysML_Profile_Extensions.xmi).

Here is a step-by-step breakdown of how I imported the “Air Compressor” example model into Sparx Enterprise Architect version 10:

  1. Despite the proprietary extensions, the model files are basically XMI, and so I simply changed/renamed the file extension from “.mdxml” to “.xml” (changing to “.xmi” also works).
  2. Either open a new project in Sparx Enterprise Architect, or at least add a new model into your working repository [right-click in the Project Browser and then select Add Model (root node)…].
  3. Rename the model to AirCompressor.
  4. Right-click AirCompressor (in the Project Browser), and then click Import Model from XMI…
  5. The Import Package from XMI window is displayed. Click the ellipsis button alongside the Filename field and browse to the “Air Compressor-OMG Style_ReadOnly (from Alan).xml” model file. Did you remember to change/rename the “.mdxml” to “.xml” file extension first?
  6. Select Import Diagrams, Write Log file and Import using single transaction, and then click Import.
  7. Once the import has been completed, you can close the Import Package from XMI window.

You now have the model imported into Sparx Enterprise Architect, but you need to reorganize the model, and convert the diagrams and model elements to the SysML 1.3 profile. The outline steps for how to do this are:

  1. Looking inside the Project Browser, you can see a <<numberOwner>> Data view has been created beneath theAirCompressor model. This view contains two packages, <<model>> Air Compressor Model and MBSE Method, that are useful. There are also several spurious Package or <<profile>> Package elements that can be deleted.
  2. Continuing to work in the project browser, right-click AirCompressor and then select Add | Add View…
  3. Create each of Behaviour (Dynamic View), Parametrics (Class View), Requirements (Simple View) and Structure (Class View) in turn. Also create a “MBSE Method” (Dynamic View), if wanted.
  4. Work your way down through the <<model>> Air Compressor Model package hierarchy, changing each diagram to the relevant SysML 1.3 type. For example:
    1. Open the Figure Map, and then click Diagram | Advanced | Change Type…
    2. The Change Diagram Type window is displayed. Click SysML 1.3, Package, and then OK.
    3. Even after converting all of the diagrams to SysML 1.3 types, it is still necessary to synchronize the model elements. To do this work your way through the various SysML tool palettes and:
      1. Right-click each element in the SysML tool palette, and select Synchronize Stereotype if available. The Synch Profiled Elements window is displayed. Click OK.
      2. The Actions list will display a list of the elements that have had new tags or constraints added as a result of applying synchronizing the stereotype.
      3. Finally, move the converted elements underneath appropriate Behaviour, Parametrics, Requirements or Structure view. You can then delete any remaining superfluous packages that were created during the import.

Although this importing method is faster than manually recreating the example models from scratch, some manual editing is still necessary to:

  1. Fine-tune the layout and look of the example diagrams.
  2. Further change some of the SysML 1.3 diagram types to better represent the example models. For example, you can replace an instance of a Constraint Blocks with a Constraint Property.

European Enterprise Architect User Group Event; The Round-Up

Monday, November 5th, 2012

For those of you unable to attend the event we’ve put together the following write up:

The first European Enterprise Architect User Group meeting was held in London at the Institute of Directors in London on Tuesday 9th October 2012.

The meeting sponsored by Dunstan Thomas Holdings Ltd, LieberLieber GmbH, and Ability Engineering Ltd was well attended with around 40 attendees.

The meeting presented an opportunity for Enterprise Architect users from a wide variety of organisations from varied disciplines to meet and exchange experiences in addition to the more formal part of the meeting.

The formal agenda of the meeting comprised of five main sections

  • Introduction to Enterprise Architect version10; Presented as an hour long video narrated by senior members of Sparx Systems it highlighted the new features that will be included in the next release. As Sparx have requested that these not be made public I cannot describe the highlights, but needless to say the future of Enterprise Architect looks very bright indeed. Useful additional information was provided by Daniel Siegl of LieberLieber GmbH.
  • Creating Excellent Documents; Presented by Ian Mitchell of Ability Engineering Ltd, the session provided attendees with an insight into the easy and flexible manner in which quality documentation can be produced from Enterprise Architect repositories directly into Word documents. The product, known as eaDocX (pronounced “EAdocks”), provides an intuitive interface which allows great flexibility in the production of documentation, including formatting rules and powerful relationship analysis. Ian also demonstrated the Corporate Edition of eaDocX ability to integrate with Excel which opens a wealth of round-trip possibilities.
  • Requirements Management – The Best of Both Worlds; Presented by Phil Chudley of Dunstan Thomas Holdings Ltd who made the case for organisations having both a high-end Requirements Management System and Enterprise Architect so as to leverage and consolidate the best functionality of both products. This can be achieved through the use of import / export between the two systems, or through the use of an extension written especially to provide integration functionality. Sparx Systems provide such an extension for DOORS. Phil supported his discussion by illustrating an extension, available from Dunstan Thomas Holdings Ltd that provides integration between MicroFocus (Borland) CaliberRM (versions 2008 and 10.1) and Enterprise Architect.
  • EA in Distributed Environments; Presented by Daniel Siegl from LieberLieber GmbH who drew on their in depth experience with Enterprise Architect to provide a very informative session on the options, advantages and disadvantages of using Enterprise Architect in a distributed environment. The shared database, local database with central version control and Enterprise Architect’s security model were discussed and compared. The surprise was Daniel also covered the use of Enterprise Architect on the web and in the cloud illustrated by a tantalising demonstration of EnArWeb a product which gives real-time access to EA textual data via a web interface and available from LieberLieber GmbH.
  • User Stories; No not Agile! The last session was most informative as it provided an opportunity for Matt Taylor from Pilat Media, followed by Xinming Jin from Barclays Bank to share with the user group their experiences in using Enterprise Architect to create very large model repositories. Matt described how his BA team (distributed world-wide) have adopted Enterprise Architect for all client facing projects. They use BPMN 2.0 as their modelling notation and eaDocX for all their documentation requirements. It was most inspiring to her how his team have migrated from the “Visio Approach” to the modelling approach reaping the benefits of good repository structure, re-usability and traceability.

    Xinming shared a constructing approach in the use of Enterprise Architect, using a depth wise approach rather than a breadthwise approach. Barclays Bank have developed a really enormous repository in which they have modelled everything from Customer UI, through Business Processes, Conceptual Data Model right down to very specific and highly customised Java code generation. Indeed, Xinming drew gasps of amazement and admiration when he mention that tens of thousands of lines of quality and consistent Java code has (and is being) generated from their reposirtory.

    A fundamental point conveyed by both presenters is that Enterprise Architect is perfectly scalable to handle extremely large and complex model, providing that the repository is well structured and everyone involved in the project has the necessary “buy-in” as to the benefits in modelling and in the use of Enterprise Architect.

The feedback received was extremely positive and the consensus of option was that regular meetings should be organised.

EA Tips & Tricks

Friday, November 2nd, 2012

Experienced users of Enterprise Architect will have learned (and may have even shared) tips and tricks to help them be even more productive when using the tool. You may already be aware of the publication “Fifty Enterprise Architect Tricks” by Peter Domen which has been published on the Enterprise Architect forum.

Adding attributes & operations to classes “gotcha”

When modelling classes in Enterprise Architect, there will be a time when your classes need to be populated with attributes and/or operations.

The dialogs for both attributes and operations exhibit the annoying behaviour that upon saving the details of either an attribute or an operation, the dialog fields are
not cleared (as they are in other dialogs). As shown below:

Now, when we click Save the dialog now looks like:

The dialog fields have not been cleared.

This can be perceived both as an inconsistency and a cause of annoyance. How many times have you thought you were adding a new attribute or operation only to find you have overwritten the one just created? I know I have.

It is tedious to click Save followed by New so is there a better way? Well, instead of clicking
Save followed by New you could click Save followed by
Copy which is a very productive way of adding lots of similar attributes (those with the same type for example), but less useful for operations.

Many Enterprise Architect users puzzle as to why the Save action does not clear the dialog (as in other dialogs) and wish that this was indeed the behaviour of Enterprise Architect.

Although I cannot state why Enterprise Architect behaves in this manner, it is possible to change the behaviour of saving Attributes or Operation details such that the dialog does indeed clear, ready for the next entry.

Changing the Save behaviour when adding an attribute or operation

The solution has been there all the time! But finding it needs a bit of detective work.

  • Open Enterprise Architect’s Options dialog, by selecting
    Tools | Options… from the main menu
  • Click on Attributes/Operations to view the options as below

  • Clear the check-box labelled After save, re-select edited item

Yes, it really is that simple!

Now, let’s add another attribute using our changed options and see the difference.

Now, after clicking Save, the dialog fields are cleared (as we would expect) ready the next attribute

Although not illustrated, the option also works for the operations dialog.

Conclusion

In this newsletter we have shared a useful tip in Enterprise Architect which will make your use of the tool much more productive when designing classes. I hope, like me, your reaction is “If only I had found this earlier!”

Enterprise Architect; Extensions Overview

Monday, July 2nd, 2012

An overview of EA Extension

Introduction

Users of Enterprise Architect may be aware that it is possible to extend the functionality of Enterprise Architect via the creation and installation of Extensions (previously known as Add Ins)

This newsletter provides an overview of three such extensions which are available from third party providers.

These extensions are:

  • CaliberRM / EA Integration from Dunstan Thomas
  • AM|USE from LieberLieber
  • eaDocX from Ability Engineering Ltd

CaliberRM / Enterprise Architect Integration

CaliberRM is a requirements management system produced and distributed by MicroFocus. This extension written and supplied by Dunstan Thomas provides a functionality similar to that of the DOORS MDG Integration supplied by Sparx Systems.

Two versions of the extension are available, one which supports CaliberRM 2008 and one which supports the latest version, namely, CaliberRM 10.1

Functionality

The extension provides the following functionality:

  • Initial import of all requirements from a CaliberRM baseline within a CaliberRM project to a selected view / package within an Enterprise Architect repository;
    • CaliberRM system attributes and CailberRM User Defined Attributes (UDAs) are mapped either to standard properties of a Requirement element, or to tagged values as appropriate.
    • CaliberRM Requirement Types are replicated in the Enterprise Architect repository as packages.
    • Parent-child structures are replicated.
  • Subsequent synchronisation of requirements such that;
    • New requirements in CaliberRM and added into their appropriate location within Enterprise Architect repository.
    • Changes to a CaliberRM’s requirement attributes are reflected in the corresponding requirement element within the Enterprise Architect repository.
    • Requirements that have been deleted from the CaliberRM project are moved into a Recycle Bin package created specifically for this purpose within the Enterprise Architect repository.
  • Optional import of the Glossary from CaliberRM into the Enterprise Architect repository glossary.

System Requirements

The following system requirements are required for this extension;

  • .NET framework 3.5
  • Enterprise Architect version 7.5 (or higher)
  • CaliberRM 2008 (or Caliber RM 10.1) together with CaliberRM 2008 SDK (or Caliber RM 10.1 SDK)
    • Important note:
      • The same version of the CaliberRM SDK must be installed on both client and server machines in order for this extension to functional correctly

Availability

The trial licence (30 days and limited to processing 50 requirements) is available to download free from the DT ALM CaliberRM / EA Integration web page.

The full licensed version is available from the DT ALM online shop.

AM|USE

AM|USE is an extension that provides UML/SysML model simulation, primarily for State Machines.

Features

The extension provides the following functionality;

  • Full simulation of UML or SysML state machines
  • Specification of constraints on triggers
  • Integration with UML Class/ SysML Blocks defined in the Enterprise Architect repository
  • Events can be fired manually or scripts can be created by recording events and triggers and then played back
  • Hook into existing code, for example to display actual dialogues
  • Full support for concurrent states, composite states and history states

Availability

The trial version can be downloaded from our Plug-Ins page.

The full product is available for purchase from the DT ALM Online Shop.

eaDocX

eaDocX from Ability Engineering Ltd is an extension that provides documentation production by integrating Enterprise Architect and Microsoft Word.

Features

The extension provides the following features;

  • Include any data from an Enterprise Architect repository including
    • Regular Enterprise Architect elements
    • All Enterprise Architect diagrams, special processing for message details on Sequence diagrams
    • All repository data
    • All types of relationships
    • Package information
    • Tagged Values and Stereotypes included those that are user-defined
  • Mix hand-written content in Word with eaDocX generated content from the Enterprise Architect repository
  • Format Enterprise Architect elements either as simple tables or paragraphs
  • Include information about relationships between Enterprise Architect elements
  • Add manual cross references from one part of the document to another which automatically update each time a document is generated
  • Include information from Enterprise Architect linked documents
  • Flexible document structure
  • Tight integration with Word (versions 2003 -> 2010)
  • Full support for Word Styles including copying of formatting options between documents
  • Conditional formatting
  • Matrix Reports
  • Quick Documents
  • Batch regeneration
  • Auto generate glossary
  • Change marking

System Requirements

The following system requirements are required for this extension:

  • .NET framework 3.5 or .NET framework 4.0
  • Microsoft Word 2003, 2007 or 2010
  • Enterprise Architect version 8.0 (or higher)

Availability

eaDocX is available from the DT ALM Online Shop.

Conclusion

We have provided a quick overview of three selected extensions for Enterprise Architect. For further information regarding these extensions please refer to the relevant “Availability” sections of this post.

Details of many extensions currently available for Enterpise Architect may be found at http://www.sparxsystems.com/products/3rdparty.html

Upgrading TFS 2008 to 2010 and run in parallel run on single SQL Server

Thursday, September 15th, 2011

Introduction

The Team Foundation Server 2010 upgrade wizard and its documentation are sufficient for many differing upgrade scenarios and configurations. The standard upgrade paths are applicable in almost all cases where there is no limit on hardware resource and the aim is upgrade/replace rather than parallel running. During a recent in house upgrade where hardware resource was tight and the user requirements for the upgrade included minimal downtime and a parallel running phase the standard paths were a bad fit. This newsletter documents the way these limitations were tackled and brings together several elements that were required to complete this type of upgrade. It includes details of the procedure to move Team Foundation Server databases from one server to another and reconnect the application-tier and specifics on running both 2008 and 2010 using shared SQL database and SharePoint servers.

This information found here is not meant to be a detailed overview of Team Foundation Server upgrade process as a whole and some knowledge of the technical architecture of both Team Foundation Server 2008 and 2010 is assumed. The main focus of this article is to cover the specific scenario encountered during the subject upgrade and collect together the information required for anyone that may attempt this type of upgrade in the future.

Upgrading TFS 2008 to 2010 and run in parallel run on single SQL Server

We recently needed to upgrade our 2008 implementation of Team Foundation Server to 2010. Normally this would follow one of two standard patterns covered by the Microsoft upgrade documentation, either an in place upgrade or a migration upgrade.  But due to lack of hardware resource the eventual solution would be a mix of both options with a few undocumented steps thrown in.

In-Place upgrade

An in place upgrade involves upgrade Team Foundation Server on the same hardware that was running the earlier version.  This path requires the un-installation of old version, followed by the install of 2010. The upgrade wizard is then run. Post upgrade (if all goes well) you have a shiny new Team Foundation Server 2010 installation with new upgraded databases and your old Team Foundation Server 2008 implementation is no longer accessible.

Migration upgrade

You can also perform a migration upgrade by copying your data to different hardware running SQL server.  Then installing Team Foundation Server 2010 and running the upgrade wizard. By using separate hardware in this way you have the opportunity to parallel run both versions for a while to allow confirmation that the upgrade was successful before turning off the 2008 server.

Upgrade Requirements

The main requirements for live operations during the proposed upgrade were as follows;

  1. The new 2010 must have the same architecture as the existing system.  Separate data tier and an application tier servers.
  2. The live Team Foundation Server 2008 server must remain available throughout the upgrade.
  3. A period of at least two weeks parallel running is required to allow for any post upgrade migration from 2008 to 2010.
  4. Both 2008 and 2010 must run from a single SQL Server instance.
  5. The switch from 2008 to 2010 must be as seamless as possible.

Initially this looks like a migration upgrade as these requirements immediately rule out the first option of an ‘In-Place upgrade’. Mainly because 2008 must remain available throughout the process and post upgrade for a parallel run period. That leaves the ‘Migration upgrade’ option but the main requirement for that path, is separate hardware for the new servers. As this resource was not available a third solution was required to allow the upgrade to continue. The main problem posed by the requirements was the need to use the existing SQL server for 2010 as well as the already running 2008. The interesting part then was not going to be the actual upgrade but attempting to get both 2008 and 2010 running on the same database server in parallel. This configuration is not covered in any installation or upgrade documentation I have come across and extensive Googling came up with no real help or guidance. Before describing the solution that was used an understanding of both the existing and target production environments is required.

Existing Team Foundation Server Environment

A description of the Team Foundation Server 2008 implementation that existed prior to the upgrade taking place. The Team Foundation Server application tier is hosted by the (WAGNER). The data-tier and databases for Report Server and SharePoint are hosted by (BACH). The TFS 2008 build service is hosted by (BIZET). All Team Foundation Server SharePoint project portals are hosted on (TOCH) under MOSS 2007.

Microsoft TFS Upgrade

 

Proposed upgrade environment

In order to keep 2008 up and running and unaffected, the upgrade would have to take place in isolation so the following solution was proposed. Create three virtual machines one for the data-tier one for the application tier and another for the build server. The data-tier would only be temporary and used to host the 2008 databases for the upgrade only and then thrown away. The application-tier and build VM’s would eventually become production servers hosting the 2010 services. The virtual upgrade environment is shown below. Eventually the upgraded databases will be moved from the temporary server (DYSON) to the existing live data-tier (BACH) and the new application tier (TIPPET) will be re-pointed to the live data-tier server (BACH).

Proposed TFS Upgrade Environment

Target Team Foundation Server Environment

The diagram below shows the production environment hosting both Team Foundation Server 2008 (blue circle) and Team Foundation Server 2010 (green circle). Both TOCH the SharePoint server and BACH the database server are shared between 2008 and 2010. Note the addition to the existing live environment of the two virtual machines TIPPET and BINGEN.  

Team Foundation Server Environment

The Upgrade

The actual upgrade run in the VM environment went without any problems. The databases were exported from BACH overnight and imported onto the temporary server DYSON. Team Foundation Server 2010 was installed on TIPPET along with SQL Server reporting services. The Team Foundation Server 2010 upgrade wizard was run against the databases on DYSON which resulted in a fresh set of 2010 databases. At this point we now have two sets of databases, the 2008 versions of the databases in use on the live server and the new 2010 databases ready for export/import.

The structure of the database in Team Foundation Server 2010 has been completely reworked due to the introduction of the Team Project Collection database type. Effectively, the Team Project Collection database now encompasses all of the data held in the 2008 databases with the exception of ‘TfsWarehouse’. This allows this multiple Team Project Collection’s to be hosted on the same server. The two sets of databases can be seen below side by side, these lists do not include databases used by SQL Report Server or SharePoint.

TFS 2008 Databases (BACH) TFS 2010 Databases (DYSON)
TfsActivityLogging Tfs_Configuration
TfsBuild Tfs_DefaultCollection
TfsIntegration Tfs_Warehouse
TfsVersionControl  
TfsWarehouse  
TfsWorkItemTracking  
TfsWorkItemTrackingAttachments  
   
TFS 2008 Analysis Database TFS 2010 Analysis Database
TfsAnalysis Tfs_Analysis

 Note the addition of the underscore character in the 2010 databases, this is important as the database names must not clash when hosted on the same server. Check there are no clashes with your database names at this point.

Moving the upgraded databases

Now comes the tricky part! Once the TFS 2010 upgrade is complete the upgraded databases need to be moved from the temporary database server DYSON to the production server BACH. This needed to be done with care as BACH also hosts the TFS 2008 databases and these must be available throughout the upgrade process and post upgrade for a period of parallel running.

An existing MSDN article covers the processes of moving the databases. However, the described move is to a new server instance and not an existing instance that already hosts another version of TFS. The steps below include a summary of the information on MSDN and extra or modified steps to allow the co-existence of the databases for both 2008 and 2010 on the same instance.  

(1) Stop TFS 2010 Services

These commands need to be run on the 2010 application tier.

  1. Start a command prompt on app tier
  2. cd “%programfiles%\Microsoft Team Foundation Server 2010\Tools”
  3. TFSServiceControl quiesce

 (2) Backup databases on DYSON

Backup the following databases on DYSON and move/copy the backups to your live database server i.e. BACH.

Database Engine

  • Tfs_Configuration
  • Tfs_DefaultCollection
  • Tfs_Warehouse

 Analysis Services

  • Tfs_Analysis

 (3) Restore Databases to BACH

The restoration of the databases differs for the Database Engine and Analysis services.

Database Engine

  • Tfs_Configuration
  • Tfs_DefaultCollection
  • Tfs_Warehouse

 Analysis Services

  • Tfs_Analysis
  1. Copy the TFS_Analysis.abf to (E:\SQL_Analysis_Data\MSAS10_50.MSSQLSERVER\OLAP\Backup\).
  2. Open up a connection to the Analysis Services in SQL Mgmt Studio.
  3. Run the following XMLA query

<Restore xmlns=”http://schemas.microsoft.com/analysisservices/2003/engine”>

  <DatabaseName>Tfs_Analysis</DatabaseName>

  <File>E:\SQL_Analysis_Data\MSAS10_50.MSSQLSERVER\OLAP\Backup\Tfs_Analysis.abf</File>

</Restore>

(4) Prepare BACH for TFS 2010

Some preparation must be carried out on BACH to allow the TFS 2010 application tier to access the moved databases.

The following  commands need to be run on the 2010 application tier.

 Open a command prompt and run the following commands;

cd “%programfiles%\Microsoft Team Foundation Server 2010\Tools”

TFSConfig PrepSQL /SQLInstance:BACH

TFSConfig Accounts /ResetOwner /SQLInstance:BACH /DatabaseName:Tfs_Configuration

TFSConfig RemapDBs /DatabaseName:BACH;TfS_Configuration /SQLInstances:BACH /AnalysisInstance:BACH

TfsConfig registerDB /SQLInstance:BACH /DatabaseName:Tfs_Configuration

(5) Restart TFS 2010 services

These commands need to be run on the 2010 application tier.

Start a command prompt on app tier

cd “%programfiles%\Microsoft Team Foundation Server 2010\Tools”

TFSServiceControl unquiesce

SQL Reporting Services and SharePoint

Luckily both reports and SharePoint portals were not in use under 2008, so these needed be recreated manually post upgrade. Reporting services was installed on TIPPET and new databases were created on BACH for use with Team Foundation Server 2010. These were named differently than those currently in use by 2008. The SharePoint server TOCH (MOSS 7) did host a site for 2008 web portals but was not currently used, a new SharePoint site was created for 2010. Post upgrade both project reports and web portals would need to be recreated using command line tools available in Team Foundation Server 2010 Power Tools. See the tools and documentation for more information if required

Deploy New Reports

The upgraded database schema no longer works with reports created in previous versions. A new set of Agile 5.0 based reports can be deployed with TFS 2010 power tools using the following command line;

tfpt.exe addprojectreports /collection:http://tippet:8080/tfs/DefaultCollection /teamproject:”ProjectName”
/processtemplate:”MSF for Agile Software Development v5.0″ /force
 

Possible error message and fix see; Cannot create project (TF30225: xp_sqlagent_notify)

Deploy new SharePoint Portal

To take advantage of the new dashboard features project portals need to be recreated. To achieve this;

  1. Archive document libraries from the original portals
  2. Create new portals using TFS power tools (see command line below)
  3. Import document libraries to new portals

tfpt.exe addprojectportal /collection:http://tippet:8080/tfs/DefaultCollection /teamproject:” ProjectName” /processtemplate:”MSF for Agile Software Development v5.0″

Parallel Running and Switchover

The final step of the upgrade was to start the Team Foundation Server 2010 services in parallel with the already running 2008 services. A period of verification testing followed and the version control and work item tracking of both the original and upgraded databases could be compared. Once all was ready clients where switched to the upgraded application tier and normal was resumed. At this point the temporary SQL Server (DYSON) could be decommissioned leaving the live server (BACH) to host both 2008 and 2010 databases.   

During the entire upgrade process the original 2008 version remained available for operational work and can now continue to run alongside the 2010 upgraded clone of itself. The Build services on both BIZET(2008) and BINGEN(2010) are running on separate servers accessing separate application tiers that use the same SQL server database instance and share the same SharePoint server.

Summary

In this newsletter we have discussed the two standard upgrade paths documented by Microsoft for Team Foundation Server. A third undocumented path has been outlined that involves temporary upgrade environments and moving databases between servers. We have also shown that both Team Foundation Server 2008 and a cloned set of databases upgraded to 2010 can be run on the same server allowing parallel running of both versions with the same data.

Dunstan Thomas Newsletter; Issue 14

Thursday, May 12th, 2011

Introduction

Users of Enterprise Architect may be aware of the use of “Gang of Four” Design Patterns (Gamma et al) in the use of software designs and the support that Enterprise Architect provides for using these “Gang of Four” patterns.

Enterprise Architect also provides facilities for modellers to create and share their own design patterns. Users of Enterprise Architect may be under the impression that creating and sharing your own patterns is restricted to UML class diagrams however this is not the case.

This newsletter presents an illustration of creating, using and distributing a Business Process Workflow pattern using BPMN 1.1

Business Workflow Patterns

The research work of Professor van der Aalst has resulted in the identification of 21 basic workflow patterns that describe the behaviour of business processes.

These patterns are divided into the following categories:

  1. Basic Control Flow Patterns
  2. Advanced Branching and Synchronization Patterns
  3. Structural Patterns
  4. Multiple Instance Patterns
  5. State-based Patterns
  6. Cancellation Patterns

However you are free to create your own modelling patterns.

For the purpose of this newsletter, I will describe the following pattern, which I will refer to as “Parallel Process Error Propagation”. This pattern is illustrated below:

This workflow patterns ensures that if an exception occurs, then this is handled by a common activity.

Creating the Pattern

To create your own pattern, you must first model the pattern using a diagram from your chosen notation (in this case a BPMN 1.1 Business Process Model Diagram). I would recommend that ALL elements are named so identification within the pattern is made much easier. So the pattern can be maintained I recommend that a separate Enterprise Architect project is used to model your patterns.

The diagram created must now be saved as a UML Pattern using the following steps:

  1. Select Diagram | Save UML Pattern… from the main menu. The following dialog displays
  2. Complete the dialog as follows:
    1. In the Pattern Name: field enter a name to identify your pattern
    2. In the Filename field, enter a directory path and filename in which to save the pattern
    3. In the Category field, enter a name under which your pattern will appear in the UML Patterns section in the Resources view
    4. In the Version field enter any desired version number and in the Notes field enter a description of your pattern
    5. Complete a selection for the actions that are available when the pattern is used
      1. Create: creates the pattern directly adding new elements to your model
      2. Merge: Uses existing elements in your model and assembles them into your pattern (refer to Limitations later in this newsletter)
      3. Instance and Role are only where Object, Ports or Parts are used within your pattern
    6. You can also enter a comment for each element in your pattern to give some guidance as to its purpose within the pattern

      The illustration below shows a typical completion of the UML Pattern dialog

    7.  

  3. After completing the dialog click OK to save your pattern

Importing the Pattern

In order to use your pattern, it must be imported into you modelling project:

  1. Select the Resources window (if this is not visible, then use the View menu to select the Resources view)
  2. Right-click on the UML Patterns node, and select Import UML Pattern
  3. Navigate to the file created when you saved your Pattern
  4. Click Open to complete the import process

If all has gone well, you should see you pattern in the Resources view as shown below:

Using the Pattern

To use your newly imported pattern, perform the following steps:

  1. Create a new diagram that matches the type used when the pattern was first created (for this newsletter, this would be a BPMN 1.1 Business Process Model
  2. Using the Resources view, locate the pattern and Drag and drop the pattern onto your diagram, the following dialog displays:

  3.  

  4. Assuming that you wish to Create a new pattern, then for each element in the pattern click the … button and enter a new name (which can be blank) for your element. A typical example is shown below:

  5.  

  6. Click OK and your pattern should appear on your diagram using the names you entered in the dialog. This is shown below:

  7.  

(Note as the labels for the error intermediate event were hidden in the pattern, they are also hidden in the above diagram)

Limitations

When creating patterns based upon PURE UML diagrams then
all features work without fault. However it is important to note that basing a pattern on a
UML Profile (which BPMN is) then the Merge option does not work, therefore for BPMN patterns it is not possible (currently) to use existing BPMN elements
and assemble them into a pattern. This limitation is being addressed in the next release of Enterprise Architect version 9.0 (currently in Beta 3.0).

Summary

In this newsletter we have described how create and use a pattern based upon a modelling notation other than UML.

DT ALM Newsletter; Issue 13: Diagram Filters

Wednesday, January 19th, 2011

Diagram Filters

When working on large diagrams modellers often need to identify certain elements that are of particular interest to them.

Some examples of element selection are:

  • Elements which have no value for a particular property (for example the Description)
  • Elements who share the same value for a particular property (for example Status or Phase)
  • Elements that were written by a particular person
  • Elements that have (or have not) been modified since a certain date

Diagram Filters is new functionality added for Enterprise Architect version 8.0 that provides this facility. Currently the Diagram Filters function only operates on Elements that are visible on a diagram (but the same Diagram Filters can be applied to diagrams of different types). They work by using a slimmed down version of the Search Filters already built-into Enterprise Architect, but instead of returning a list as a result of the search, the appearance of the Elements on the diagram can be changed.

There are four effects that can be applied when Diagram Filters are in use on a diagram, these are:

  • Fade – display all elements that do not match the filter criteria in a pale version of the diagram background
  • Gray Scale – display all elements that do not match the filter criteria in pale grey
  • Hide – conceal all elements that do not match the filter
  • Select – select all those elements that do match the filter criteria

Initially the above seems confusing, but when you see the Diagram Filters in action, the effects described above will become more intuitive. It must be noted that any one of the four effects can be applied with any Diagram Filter, that is to say, the effect is not part of the Diagram Filter but rather it controls how the filter is applied to the diagram.

Worked Example

A simple example should clarify matters. It is common modelling practice that all Elements on a diagram be elaborated with a textual description, captured in the Notes property of an Element within Enterprise Architect.

Some modellers add these notes as they create elements whereas others do not, so if we imagine a project team working collaboratively, how can each member of the team identify which elements have notes and which do not? Although there are many possible solutions to this problem, this example will illustrate a simple solution using Diagram Filters.

  1. Open a diagram and then select View | Diagram Filters from the main menu to open up the Diagram Filters view (as shown below)
  2. Enterprise Architect Diagram Filters

  3. Create a new Diagram Filter, by clicking on the toolbar icon Enterprise Architect Toolbar Icon
  4. Give the Diagram Filter a suitable name, for this example I have used Needs Description
  5. Create a Diagram Filter by completing the following dialog
  6. Enterprise Architect Diagram Filter

  7. In this example we need a simple filter that tests the value of the Notes property to be Equal to nothing. The condition is selected from a drop down list
  8. After setting these options our filter now looks like
  9. Enterprise Architect Diagram Filter

  10. Click OK
  11. The Diagram Filter is now added to the list of available filters (it is perfectly feasible to have many Diagram Filters defined and apply them in many different combinations)
  12. Enterprise Architect Diagram Filter

  13. To apply the filter to the current diagram, use the Drop Down list (Fade, Gray Scale, Hide, Select…) to set the effect and click the check box next to the Diagram Filter name.

The following images illustrate the application of the Diagram Filter for each of the four effects.

Fade

Fade out those elements that do have a description leaving those elements that need a description

Enterprise Architect Diagram Filter - Fade

Gray Scale

Colour grey out those elements that do have a description leaving those elements that need a description

Enterprise Architect Diagram Filter - Grey Scale

Hide

Hide those elements that do have a description leaving those elements that need a description

Enterprise Architect Diagram Filter - Hide

Select…

Select these elements that do need a description leaving those elements that have a description unselected.

Enterprise Architect Diagram Filter - Select

The modeller is able to identify quickly and easily those elements that require a description to be added.

For some diagrams with many different element types, a filter setting for a particular Object Type could be added to the filter testing for the empty Notes property. Currently, Diagram Filters cannot use a search term, so a separate Diagram Filter would have to be created for each element type.

Notes

  • If a Diagram Filter has been applied to a diagram (or diagrams) and documentation is produced, then the effect of the filter will be replicated
    in the documentation output.
  • Also the application of a diagram filter does not mark the diagram as unsaved, hence if a Diagram Filter is applied, then diagram closed,
    when the diagram is re-opened the Diagram Filter is not applied despite the fact that it may still be checked in the Diagram Filters view.

Summary

In this newsletter we have described how use Diagram Filters to “fine tune” the appearance of diagrams. Diagram Filters are a potentially valuable aid to modellers, particularly those who work in a collaborative modelling environment.

DT ALM Newsletter #12; AMUSE

Friday, September 10th, 2010

Introduction

In this newsletter we provided an overview of a new Add-In called AMUSE for Enterprise Architect version 8.862.

An Overview of AMUSE

AMUSE (Advanced Modeling in UML with Simulation and Execution) is an Add-In for  EA 8.0 Build 862 or EA 7.5 Build 850 or higher is required (EA Systems Engineering or Ultimate Edition) and extends the functionality of Enterprise Architect to provide the ability to execute workflows that have been modelled using UML State Machine Diagrams. This Add-In has been developed by LieberLieber (www.lieberlieber.com ) and is marketed as:

(more…)

DT ALM Newsletter Issue 1

Friday, May 23rd, 2008

Introduction
Welcome to this first issue of what will be a regular newsletter from Dunstan Thomas. In this issue the new features of Enterprise Architect 7.1 are described.

(more…)


Dunstan Thomas Holdings Limited, Rawlings Suite, Gunwharf Quays, Portsmouth, PO1 3TT home: +44 (0)23 9282 2254

© Dunstan Thomas 2012

Disclaimer, Terms and Conditions