Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Duplicate edges in graphviz output. #20

Open
ibtaylor opened this issue Aug 3, 2018 · 1 comment
Open

Duplicate edges in graphviz output. #20

ibtaylor opened this issue Aug 3, 2018 · 1 comment

Comments

@ibtaylor
Copy link

ibtaylor commented Aug 3, 2018

If topics are named a certain way, or are nested, it seems to cause multiple arrows between requirements.

A possible solution to this (though maybe not the most appropriate), is to tell graphviz not to allow multiple edges by changing the lines:

"digraph reqdeps {\nrankdir=BT;\nmclimit=10.0;\n"

"digraph reqdeps {\nrankdir=BT;\nmclimit=10.0;\n"

from digraph to strict digraph.

See section Lexical and Semantic Notes of https://www.graphviz.org/doc/info/lang.html

@ibtaylor
Copy link
Author

ibtaylor commented Aug 6, 2018

Example

I'll try to demonstate with slightly modified version of the template_project with the following topics and requirements:

Topics:

  • ropics/NestedTopic.tic
Name: Nested Topic - this should be inside Topic
IncludeRequirements: full
  • topics/Topic.tic
Name: Topic Requirement - this should contain NestedTopic
IncludeRequirements: full
SubTopic: NestedTopic
  • topics/ReqsDocument.tic
Name: project
Text: This is placeholder for some introductional text.
IncludeRequirements: full
SubTopic: Topic

Requirements

  • requirements/project.req
Name: project
Type: master requirement
Invented on: 2010-10-09
Invented by: flonatel
Owner: development
Description: \textsl{project} \textbf{must} exists.
Rationale: The world needs a good, usable and free \textsl{project}.
Status: not done
Solved by: TopicRequirement
Topic: ReqsDocument
  • requirements/TopicRequirement.req
Name: Topic Requirement
Type: requirement
Invented on: 2010-10-09
Invented by: flonatel
Owner: development
Description: This \textbf{must} hold the description.
Rationale: This is a dependent requirement.
Status: not done
Topic: Topic
Solved by: NestedTopicRequirement
  • requirements/NestedTopicRequirement.req
Name: Nested Topic Requirement
Type: requirement
Invented on: 2010-10-09
Invented by: flonatel
Owner: development
Description: This \textbf{must} hold the description.
Rationale: This is a dependent requirement.
Status: not done
Topic: NestedTopic

Unexpected graph results

  • TopicRequirement to be inside of Topic not NestedTopic.
  • TopicRequirement to have a single edge to project.

artifacts/req-graph2.dot

digraph reqdeps {
rankdir=BT;
mclimit=10.0;
nslimit=10.0;ranksep=1;
subgraph cluster_GRAPH_ReqsDocument {
 label="Topic: ReqsDocument";
 "project" [fontcolor=red,label="project\n[0.00]"];
 subgraph cluster_GRAPH_Topic {
  label="Topic: Topic";
  "TopicRequirement" [fontcolor=red,label="TopicRequirement\n[0.00]"];
  subgraph cluster_GRAPH_NestedTopic {
   label="Topic: NestedTopic";
   "NestedTopicRequirement" [fontcolor=red,label="NestedTopicRequirement\n[0.00]"];
   "TopicRequirement" [fontcolor=red,label="TopicRequirement\n[0.00]"];
   }
  }
 }
"TopicRequirement" -> "project";
"NestedTopicRequirement" -> "TopicRequirement";
"TopicRequirement" -> "project";
}

rmtoo_weirdness

Please let me know if this is somehow the intended behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant