eng: Add Software Requirements Engineering chapter

Update #3715.
This commit is contained in:
Sebastian Huber 2019-07-24 15:37:27 +02:00
parent 1ff876aa59
commit d412c5bf2a
11 changed files with 1312 additions and 0 deletions

View File

@ -27,6 +27,7 @@ RTEMS Software Engineering (|version|)
mission mission
stakeholders stakeholders
prequalification prequalification
req-eng
management management
test-plan test-plan
test-framework test-framework

1177
eng/req-eng.rst Normal file

File diff suppressed because it is too large Load Diff

BIN
images/eng/req-add.pdf Normal file

Binary file not shown.

BIN
images/eng/req-add.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

40
images/eng/req-add.puml Normal file
View File

@ -0,0 +1,40 @@
' SPDX-License-Identifier: CC-BY-SA-4.0
' Copyright (C) 2019 embedded brains GmbH
@startuml
start
:Invoke: ""doorstop add RTEMS"";
note right
This will create a new requirement.
For this activity its UID shall be NEW.
It is located in a file NEW.yml.
end note
while (Needs a link to a parent requirement?) is (Yes)
:Invoke: ""doorstop link NEW PARENT"";
endwhile (No)
repeat
:Invoke: ""doorstop edit NEW"";
:Edit the requirement according to your needs and save it;
:Commit NEW.yml with a proper message;
:Send the patch to the devel@rtems.org mailing list for review;
repeat while (Reviewers demand changes in the new requirement?) is (Yes)
->No;
if (New requirement was accepted by reviewers?) then (Yes)
:Push the commit to the project repository;
else (No)
:Discard the NEW requirement;
endif
stop
@enduml

BIN
images/eng/req-modify.pdf Normal file

Binary file not shown.

BIN
images/eng/req-modify.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,34 @@
' SPDX-License-Identifier: CC-BY-SA-4.0
' Copyright (C) 2019 embedded brains GmbH
@startuml
start
repeat
:Invoke: ""doorstop edit REQ"";
note right
For this activity the UID
of the requirement shall be REQ.
It is located in a file REQ.yml.
end note
:Edit the requirement according to your needs and save it;
:Commit REQ.yml with a proper message;
:Send the patch to the devel@rtems.org mailing list for review;
repeat while (Reviewers demand changes in the modified requirement?) is (Yes)
->No;
if (Modified requirement was accepted by reviewers?) then (Yes)
:Push the commit to the project repository;
else (No)
:Keep the requirement as is;
endif
stop
@enduml

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

@ -0,0 +1,60 @@
' SPDX-License-Identifier: CC-BY-SA-4.0
' Copyright (C) 2019 embedded brains GmbH
@startuml
class SpecificationItem {
active
derived
enabled-by
header
level
links
normative
rationale
ref
reviewed
text
type
}
class Interface {
interface-category
interface-type
}
class TestProcedure {
platform
steps
}
class TestCase {
inputs
outputs
}
class TestCase
note right: test cases not validating\na requirement are unit tests
SpecificationItem <|-- Requirement
Requirement <|-- Functional
Requirement <|-- NonFunctional
NonFunctional <|-- Interface
SpecificationItem <|-- TestProcedure
SpecificationItem <|-- TestSuite
SpecificationItem <|-- TestCase
SpecificationItem <|-- Validation\nByAnalysis
SpecificationItem <|-- Validation\nByInspection
SpecificationItem <|-- Validation\nByReviewOfDesign
SpecificationItem <|-- ValidationPlatform
TestProcedure "1..n" -- TestSuite : "run by"
TestSuite "1..n" -- TestCase : "contained in"
ValidationPlatform "1..n" -- TestProcedure : "requires"
Requirement "0..1" -- TestCase : "validates"
Requirement "1" -- Validation\nByAnalysis : "validates"
Requirement "1" -- Validation\nByInspection : "validates"
Requirement "1" -- Validation\nByReviewOfDesign : "validates"
@enduml