Subversion Repositories DevTools

Rev

Rev 2147 | Rev 2151 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2147 Rev 2149
Line 265... Line 265...
265
                  {
265
                  {
266
                     ea_req_matched[i_ea_req] = true;
266
                     ea_req_matched[i_ea_req] = true;
267
 
267
 
268
                     EA.Element ea_req = ((EA.Element)ea_reqs[i_ea_req]);
268
                     EA.Element ea_req = ((EA.Element)ea_reqs[i_ea_req]);
269
 
269
 
-
 
270
                     rq_obj.ea_element_ID = ea_req.ElementID;
-
 
271
 
270
                     // This ReqPro requirement already has a counterpart in EA, so we must simply
272
                     // This ReqPro requirement already has a counterpart in EA, so we must simply
271
                     // update the counterpart. But, to aid the designer, we need to try to tell them
273
                     // update the counterpart. But, to aid the designer, we need to try to tell them
272
                     // how the requirement has changed, which could ofcoarse change the meaning 
274
                     // how the requirement has changed, which could ofcoarse change the meaning 
273
                     // of the requirement and require design changes to be done.
275
                     // of the requirement and require design changes to be done.
274
 
276
 
Line 342... Line 344...
342
 
344
 
343
                     // create the new EA requirement in the import package
345
                     // create the new EA requirement in the import package
344
                     EA.Element ea_req = (EA.Element)importPackage.Elements.AddNew( rq_obj.tag + " " + rq_obj.name, "Requirement");
346
                     EA.Element ea_req = (EA.Element)importPackage.Elements.AddNew( rq_obj.tag + " " + rq_obj.name, "Requirement");
345
                     ea_req.Notes = rq_obj.text;
347
                     ea_req.Notes = rq_obj.text;
346
 
348
 
-
 
349
                     rq_obj.ea_element_ID = ea_req.ElementID;
-
 
350
 
347
                     ea_req.Difficulty = rq_obj.difficulty;
351
                     ea_req.Difficulty = rq_obj.difficulty;
348
                     ea_req.Priority   = rq_obj.priority;
352
                     ea_req.Priority   = rq_obj.priority;
349
                     ea_req.Version    = rq_obj.version;
353
                     ea_req.Version    = rq_obj.version;
350
                     ea_req.Status     = rq_obj.status;
354
                     ea_req.Status     = rq_obj.status;
351
 
355
 
Line 388... Line 392...
388
 
392
 
389
            displayChangeLog(ea_repository, changeLog);
393
            displayChangeLog(ea_repository, changeLog);
390
 
394
 
391
            ea_repository.RefreshModelView(parentPackage.PackageID);
395
            ea_repository.RefreshModelView(parentPackage.PackageID);
392
 
396
 
-
 
397
            // Setup the internal requirement to requirement connectivity. This is seperate from the browser
-
 
398
            // organisation of elements in EA, but since in ReqPro, that organisation tells part of the story
-
 
399
            // of requirement to requirement connectivity, it is mirrored in the internal connectivity, along
-
 
400
            // with explicit trace relationships setup in ReqPro.
-
 
401
            // The purpose of this internal connectivity is to support relationship matrix tables in documentation
-
 
402
            // generated by EA_DocGen, or to support diagrammatic representations of the requirements in EA,
-
 
403
            // where the connectivity will become apparent through links ajoining the requirement elements in the
-
 
404
            // diagram.
-
 
405
            ea_repository.WriteOutput( Main.GUI_OUTPUT_TAB_NAME, "Writing Trace Information", -1);
-
 
406
            foreach( ReqPro_object sub_obj in rq_root_package.ReqPro_objects )
-
 
407
            {
-
 
408
               write_traces(ea_repository, sub_obj);
-
 
409
            }
-
 
410
 
393
            // display summary stats
411
            // display summary stats
394
            ea_repository.WriteOutput( Main.GUI_OUTPUT_TAB_NAME, newRequirementCount.ToString() + " new requirements", -1);
412
            ea_repository.WriteOutput( Main.GUI_OUTPUT_TAB_NAME, newRequirementCount.ToString() + " new requirements", -1);
395
            ea_repository.WriteOutput( Main.GUI_OUTPUT_TAB_NAME, modifiedRequirementCount.ToString() + " requirements modified", -1);
413
            ea_repository.WriteOutput( Main.GUI_OUTPUT_TAB_NAME, modifiedRequirementCount.ToString() + " requirements modified", -1);
396
            ea_repository.WriteOutput( Main.GUI_OUTPUT_TAB_NAME, statusUpdatedRequirementCount.ToString() + " requirements had status changes", -1);
414
            ea_repository.WriteOutput( Main.GUI_OUTPUT_TAB_NAME, statusUpdatedRequirementCount.ToString() + " requirements had status changes", -1);
397
            ea_repository.WriteOutput( Main.GUI_OUTPUT_TAB_NAME, orphanedCount.ToString() + " requirements were orphaned", -1);
415
            ea_repository.WriteOutput( Main.GUI_OUTPUT_TAB_NAME, orphanedCount.ToString() + " requirements were orphaned", -1);
Line 453... Line 471...
453
            if ( ! (reqTypeIsFiltered(rq_obj) || reqStatusTypeIsFiltered(rq_obj)) )
471
            if ( ! (reqTypeIsFiltered(rq_obj) || reqStatusTypeIsFiltered(rq_obj)) )
454
            {
472
            {
455
               // Add this requirement to the flattened list we are accumulating
473
               // Add this requirement to the flattened list we are accumulating
456
               rq_req_collection.Add(rq_obj);
474
               rq_req_collection.Add(rq_obj);
457
 
475
 
-
 
476
               // In ReqPro, a requirement can be related to another requirement in several ways:
-
 
477
               // 1. By virtue of its position relative to another in the browser display. That is, 
-
 
478
               //    if you place a requirement beneath a parent requirement, you are establishing a 
-
 
479
               //    parent-child relationship.
-
 
480
               // 2. By virtue of a specific TraceTo relationship being made via the Traceability menu
-
 
481
               //    option. 
-
 
482
               // Interestingly, ReqPro prevents you creating a relationship of one of the above types,
-
 
483
               // if a relationship of the other type already exists. This implies that the relationship
-
 
484
               // between a parent and child requirement must be singular and is important regardless
-
 
485
               // of the manner in which it was created or represented.
-
 
486
               // The CopyReqProDatabaseToMemory base class will already have taken care of recording
-
 
487
               // relationships detected from ReqPro made using method 2 above. What we need to do here is
-
 
488
               // take care of those apparent from the browser based hierarchical organisation (ie. made
-
 
489
               // in ReqPro using method 1).
-
 
490
               // All we need to do is grab the parent object (if any) and add the GUID of the child to 
-
 
491
               // its list of trace-to's. Later on, the write_traces() class method will turn these into
-
 
492
               // EA based connection objects that belong to the parent requirement elements.
-
 
493
               if (rq_obj.parent != null)
-
 
494
               {
-
 
495
                  rq_obj.parent.ReqPro_traces.Add(rq_obj.guid);
-
 
496
               }
-
 
497
 
458
               // Using recursion, scan this objects sub-objects, which in practise will all
498
               // Using recursion, scan this objects sub-objects, which in practise will all
459
               // be requirement objects. At this time requirement objects cannot have packages 
499
               // be requirement objects. At this time requirement objects cannot have packages 
460
               // as children.
500
               // as children.
461
               foreach( ReqPro_object sub_obj in rq_obj.ReqPro_objects )
501
               foreach( ReqPro_object sub_obj in rq_obj.ReqPro_objects )
462
               {
502
               {