Skip to content

Commit

Permalink
#115: Updated Design.
Browse files Browse the repository at this point in the history
  • Loading branch information
redcatbear committed Jun 6, 2018
1 parent 2aefc26 commit 4d53d8b
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 10 deletions.
34 changes: 24 additions & 10 deletions doc/design.md
Original file line number Diff line number Diff line change
Expand Up @@ -395,13 +395,13 @@ Needs: impl, utest
A requirement ID has the following format

requirement-id = type "~" id "~" revision

type = 1*ALPHA

id = id-fragment *("." id-fragment)

id-fragment = ALPHA *(ALPHA / DIGIT / "_" / "-")

revision = 1*DIGIT

Rationale:
Expand Down Expand Up @@ -435,6 +435,7 @@ Markdown titles show up in the outline and are a natural way of defining a requi
Covers:

* `req~markdown-standard-syntax~1`
* `req~markdown-outline-readable~1`

Needs: impl, utest

Expand All @@ -444,9 +445,9 @@ Needs: impl, utest
In Markdown specification item references have the following format:

reference = (plain-reference / url-style-link)

plain-reference = requirement-id

url-style-link = "[" link-text "]" "(" "#" requirement-id ")"

Covers:
Expand All @@ -461,9 +462,9 @@ Needs: impl, utest
The Markdown Importer supports the following format for links that cover a different specification item.

covers-list = covers-header 1*(LINEBREAK covers-line)

covers-header = "Covers:" *WSP

covers-line = *WSP "*" *WSP reference

Only one traced reference per line is supported. Any optional text after the reference is ignored if it is separated by at least one whitespace character
Expand All @@ -484,8 +485,8 @@ Needs: impl, utest
The Markdown Importer supports the following format for links to a different specification item which the current depends on.

depends-list = depends-header 1*(LINEBREAK depends-line)

depends-header = "Depends:" *WSP
depends-header = "Depends:" *WSP

depends-line = *WSP "*" *WSP reference

Expand Down Expand Up @@ -522,6 +523,19 @@ Covers:

Needs: impl, utest

#### Markdown Artifact Forwarding Notation
`dsn~md.artifact-forwarding-notation~1`

The Markdown Importer supports forwarding required coverage from one artifact type to one or more different artifact types using the following notation.

artifact-need-redirection = *1BACKQUOTE requirement-id *WSP "->" *WSP *1BACKQUOTE

Covers:

* `req~artifact-type-forwarding-in-markdown~1`

Needs: impl, utest

### Elektrobit Markdown-style Structures

#### Markdown "Needs" List
Expand Down
18 changes: 18 additions & 0 deletions doc/system_requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,8 @@ Covers:
Needs: dsn

##### Markdown Outline Readable
`req~markdown-outline-readable~1`

The Markdown outline -- a table of contents created from the heading structure by various Markdown editors -- must be human readable.

Rationale:
Expand Down Expand Up @@ -238,6 +240,22 @@ Covers:

Needs: dsn

##### Artifact Type Forwarding in Markdown
`req~artifact-type-forwarding-in-markdown~1`

The Markdown format features a compact way to forward a requirement from the artifact type that war originally required to one or more different artifact types.

Rationale:

Often a system requirement does not affect the highlevel architecture in this case it is convenient for the architect to hand it down to lower levels directly.

Covers:

* [feat~markdown-import~1](#markdown-import)

Needs: dsn


#### Coverage Tags

Developers add coverage tags as comments to the source code to indicate where certain specification items are covered.
Expand Down
5 changes: 5 additions & 0 deletions oft
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh
script_path=$(dirname "$(readlink -f "$0")")
version=$(grep -zo '<version>.*</ver.*\n.*<name>OpenFastTrace' pom.xml | sed -e's/[^0-9.]//g')

/usr/bin/java -jar "$script_path/target/openfasttrace-$version.jar" $@
Original file line number Diff line number Diff line change
Expand Up @@ -258,4 +258,11 @@ private void assertAllImporterEventsForLegacyItemCalled()
inOrder.verify(this.listenerMock).endSpecificationItem();
inOrder.verifyNoMoreInteractions();
}

@Test
public void testForwardRequirement()
{
final String forward = "`req~foobar~1;
runImporterOnText(singleNeedsItem);
}
}

0 comments on commit 4d53d8b

Please sign in to comment.