This tutorial explains the process of migrating a requirements document from DOORS 9 to DOORS Next Generation using DNGMig. DNGMig is the freeware migration tool from Individual Standard.
BIG PICTURE: MIGRATION AS ETL PROCESS
The core concept behind DNGMig is that a migration always brings with it a transformation. Thus we focus on an ETL process: Extract, Transform, Load. The doctrine behind DNGMig is that data needn’t be prepared nor revised whether in DOORS 9 or DOORS Next Generation.
Download DNGMig. Export a ReqIF or migiz file from DOORS 9. Migiz is a ReqIF file which is expanded with MIME backlinks to DOORS 9. After importing, DNG artifacts are linked with the original DOORS objects. Our migration tool supports both ReqIF and migiz. As an alternative, an example ReqIF file may be downloaded.
Because DNGMig utilizes ReqIF, the following definitions fall back on those from the ReqIF terminology. All English terms used correspond with ReqIF concepts. The most important ReqIF concepts are Specifications (= modules), SpecObjects (= objects/artifacts), SpecTypes (= types of modules and objects/artifacts).
The migrator consists of three main views: Specifications, SpecTypes and Attribute/DatatypeDefinitions. Migration commands are listed on the right side of the tool. These various sections will be briefly described in the following segment.
All available migration commands are shown here. A migration command bundles one or more transformation steps together, with the goal being that a DOORS 9 ReqIF file is constructed for optimal import to DNG. Optimal means, for example, that the modern features of DNG can be put to use. It also means that the ReqIF files arrives already suited to your modernized RE methodology in DNG. Therefore, no preparations or revisions are needed for your data in either DOORS 9 or DNG.
EXECUTING TRANSFORMATION VIA MIGRATION COMMANDS
In DOORS 9, objects will first be deleted, then later purged. This mechanism is comparable to the recycle bin in Windows. DOORS 9 exports these objects to the ReqIF file. After importing to DNG the deleted objects will once again be displayed in the module.
The command Remove deleted SpecObjects removes the objects from the ReqIF file. Alternatively, the command Extract deleted SpecObjects into new Specification(s) may be performed, which will transport the deleted objects to a new module.
An essential difference between DOORS 9 and DNG is that DOORS 9 is module-oriented while DNG is artifact-oriented (see Youtube-Tutorial). Module-oriented means that objects in DOORS 9 may exist only in modules whereas artifact-oriented means that DNG artifacts are free data bank elements which may be assigned to multiple modules.
In the module orientation, type definitions apply within the context of the modules. Artifact-oriented, type defintions apply within the context of the project scope. This effects, for example, that in DOORS 9 the objects in each module possess their own prio-attribute (duplicate), while in DNG all artifacts (in multiple modules) possess the same prio-attribute.
The command Set SAME-AS URI assigns a URI (1) for all type definitions with the same name. Hence inconsistencies may follow, such as enumerations lacking the same values (2). With the command Harmonize EnumValues Enum-inconsistencies can be automatically resolved (3). When no entries are present in both ‘Inconsistent...’ lists, all inconsistencies are resolved.
In DOORS 9, objects have no explicit object types. An established workaround is to assign the types implicitly via an enumeration attribute. For example, a commonly encountered attribute is ‘object type’ with the values ‘heading’, ‘information’ and ‘requirement’.
The command Extract spec object type(s) generates from the basis of an attribute ‘Objekttypen’ explicit types and assigns them to the relevant SpecObjects.
Modules in DOORS 9 are often monolithic, meaning, they often have more than 100 pages. A contributing factor to this is the module orientation of DOORS 9. Being artifact-oriented, DNG offers the possibility of parcelling monolithic modules into smaller units. From the command center click Extract bricks to segment monolithic modules.
First select in the wizard the specification to be separated. Next, select the chapter to be extracted (i.e. all subchapters of the chapter ‘Funktionen’). Afterwards, enter the type to which the new specifications should be assigned (i.e. ‘Funktion’). Then select the folder in which the bricks should be saved (i.e. ‘2_Bausteine’). Lastly, select another folder in which the SpecObjects of the Bricks should be relocated (i.e. ‘1_Einzelartefakte’). Click ‘Finish’.
The command has extracted the bricks and linked them with the original source. The general idea is that through the brick concept, requirement specifications act as clips for re-used bricks.
Aside from the previously described commands, there are further interesting transformations supporting the migration from DOORS 9 to DOORS Next Generation. DNGMig also offers users the possibility of generating a report at any time which documents all transformations executed up to that point.
Conclude by saving the ReqIF file (i.e. ReqIFZ, migiz) and import to DNG.