4. List of implemented constraints

This part of the documentation discusses the developed constraints that the user can manually activate in IDE for building the model development process (i.e., Making use of FOCUSer during model development). The implemented constraints reside in various packages of AF3. The following table provides the following information to the user of FOCUSer system, 1) the constraints that the user can manually activate (i.e., as shown to the User on IDE), 2) describes briefly the functionality of each of the constraint, 3) the location where the constraints reside in AF3 projects and 4) The ECore model element on which the constraint is applicable.

Nr.

Constraint to Manually Activate on IDE

Description/Purpose

Location (AF3 Package Name + Java Class)

Applies to ECore Model Element

1

"All requirements have an author"

The Author field of the requirement is not empty or null.

org.fortiss.af3.mira.constraints.AuthorConstraint.java

Requirement

2

"All requirements are reviewed as per the checklist"

Each element in the Checklist Tab of the requirement is set to "Approved"

org.fortiss.af3.mira.constraints.CheckListReviewConstraint.java

Requirement

3

"All component packages has at least one component"

The component package contains components.

org.fortiss.af3.mira.constraints.ComponentExistsConstraint.java

ComponentArchitecture

4

"All requirements should not have words \"and/or\" in their description"

The description of the requirement does not contain certain words "and/or"

org.fortiss.af3.mira.constraints.DescriptionAndOrConstraint.java

Requirement

5

"All requirements have a description"

The description of the requirement is not empty or null.

org.fortiss.af3.mira.constraints.DescriptionConstraint.java

Requirement

6

"All functional requirements should have at least one non-functional aspect defined"

A functional requirement has at least one non-functional aspect.

org.fortiss.af3.mira.constraints.FunctionalReqsHaveOneNonFunctionalReq.java

Requirement

7

"All requirements having glossary terms that are fully defined"

All of the glossary terms used in the description of the requirement are fully defined.

org.fortiss.af3.mira.constraints.GlossaryTermsDefinitionConstraint.java

Requirement

8

"All requirements have an id"

The requirement has an id.

org.fortiss.af3.mira.constraints.IDConstraint.java

Requirement

9

"All functional requirements should have \"input(s)/output(s)\" defined"

A functional requirement has input/output defined.

org.fortiss.af3.mira.constraints.IdentifiedInputOutputDefinedConstraint.java

Requirement

10

"All requirements should have only one aspect"

Each requirement has one or more aspects (either functional or non-functional)

org.fortiss.af3.mira.constraints.MultipleAspectsConstraint.java

Requirement

11

"All requirements have a name"

The requirement has a name.

org.fortiss.af3.mira.constraints.NameConstraint.java

Requirement

12

"All non-functional requirements should have exactly one functional aspect defined"

A non-functional requirement has exactly one non-functional aspect.

org.fortiss.af3.mira.constraints.NonFunctionalReqsHaveExactlyOneFunctionalReq.java

Requirement

13

"Only one requirement should define an safety level"

Only one requirement defines a safety integrity level.

org.fortiss.af3.mira.constraints.OnlyOneSILConstraint.java

Requirement

14

"All requirements with parameters that have a type"

The parameterType of a constraint is non-empty and set to an appropriate type.

org.fortiss.af3.mira.constraints.ParameterTypeConstraint.java

Requirement

15

"All requirements have a rationale"

The rationale of a requirement is non-empty.

org.fortiss.af3.mira.constraints.RationaleConstraint.java

Requirement

16

"All requirements have a test suite"

The requirement's test-suite is non-empty.

org.fortiss.af3.mira.constraints.RequirementContainsTestSuiteConstraint.java

Requirement

17

"All requirement packages have at least one requirement"

The requirements package has at least one requirement.

org.fortiss.af3.mira.constraints.RequirementExistsConstraint.java

RequirementsContainer

18

"All components having traces to requirement are correct"

The component implementing the requirement is checked by the user if the trace to requirement exists and the check-box "Requirement Impl Correctly" is selected.

org.fortiss.af3.mira.constraints.RequirementImplementedCorrectlyConstraint.java

Requirement

19

"All requirements have signals that are uniquely defined"

The signal has an unique name among all the signals defined.

org.fortiss.af3.mira.constraints.SignalConstraints.java (UniqueSignalNameConstraint)

Requirement

20

"All requirements with signals defined have a type"

The signal has a defined type (integer/boolean).

org.fortiss.af3.mira.constraints.SignalConstraints.java (SignalTypeConstraint)

Requirement

21

"All requirements with signals should have initial value set and between ranges (i.e., [From,To]) for int data type and true/false for boolean data type"

The signal has a initial value set based on the type of the Signal.

org.fortiss.af3.mira.constraints.SignalConstraints.java (SignalInitialValueConstraint)

Requirement

22

"All requirements have a source"

The source of the requirement is set and non-empty.

org.fortiss.af3.mira.constraints.SourceConstraint.java

Requirement

23

"All requirements traces are up to date."

All traces are up-to-date.

org.fortiss.af3.mira.constraints.TraceConstraint.java

Trace

24

"All requirements are implemented"

The requirement is traceable from some artifact.

org.fortiss.af3.mira.constraints.TraceNotEmptyConstraint.java

Requirement

25

"All components should have a meaningful name"

The component has a meaningful name (i.e., No default names like "Component" or "Component1", "Component2").

org.fortiss.af3.mira.constraints.ComponentNameMeaningfulConstraint.java

Component

26

"All components should have a trace to requirement"

The component has a trace to a requirement.

org.fortiss.af3.mira.constraints.ComponentToRequirementTraceExistsConstraint.java

Component

27

"Port values are within their bounds"

The the bounds (or "ranges") of the ports provided in all components are within bounds by performing the "port bound analysis" (Reference: Bound_Check_Analysis).

org.fortiss.af3.specification.constraint.BoundsConstraint.java

Component

28

"All OCRA contracts satisfied"

All OCRA contracts are satisfied.

org.fortiss.af3.specification.constraint.ContractConstraint.java

ContractContainer

29

"All state automata are deterministic"

All states in the state automata in the current project are reachable by running the determinism analysis (Reference: Non_Determinism_Analysis).

org.fortiss.af3.specification.constraint.DeterminismConstraint.java

StateAutomaton in Component

30

"If a component is traced to a functional requirement, its interface includes the one of the requirement."

Every port in an interface requirement traced to a component is present in this component.

org.fortiss.af3.specification.constraint.InterfaceTraceMatchConstraint.java

Trace

31

"All states are reachable"

All state automata of the project have 100% state coverage (Reference: Reachability_Analysis).

org.fortiss.af3.specification.constraint.ReachabilityConstraint.java

StateAutomaton in Component

32

"All temporal logic specifications are verified"

All temporal logic specifications are verified.

org.fortiss.af3.specification.constraint.TLSpecificationConstraint.java

TLSpecification of Component

33

"Every top-level port of the component architecture shall be defined as a signal in the requirements."

Every port of the top level component is defined a requirement signal.

org.fortiss.af3.specification.constraint.TopComponentSignalsConstraint.java

ComponentArchitecture and Analysis

34

"All tests are successful"

All tests of related to Component are successful.

org.fortiss.af3.testing.constraint.TestSuiteConstraint.java

ComponentArchitecture and Analysis

35

"All argument elements shall be connected to the safety argument structure"

The inspected argument element is connected to the whole argumentation structure.

org.fortiss.af3.safetycases.constraint.ArgumentElementBaseInterconnectionConstraint.java

ContextualElement or SpinalElement

36

"All argument elements shall have a name"

The inspected argument element base has a designated GSN name.

org.fortiss.af3.safetycases.constraint.ArgumentElementBaseNameConstraint.java

ArgumentElementBase

37

"All argument elements shall be instantiated"

The inspected argument element is instantiated.

org.fortiss.af3.safetycases.constraint.ArgumentElementInstantiatedConstraint.java

ArgumentElement

38

"All away argument elements shall be connected to an external argument element"

That the inspected away argument element references an argument element located in another module.

org.fortiss.af3.safetycases.constraint.AwayArgumentElementReferenceConstraint.java

AwayArgumentElement

39

"All optional connections are only for safety arguments patterns"

The inspected argument element the given safety case connection is marked as optional.

org.fortiss.af3.safetycases.constraint.ConnectionIsOptionalConstraint.java

SafetyCasesConnection

40

"All connections with multiplicity are only for safety arguments patterns"

The inspected safety case connection is marked with multiplicity.

org.fortiss.af3.safetycases.constraint.ConnectionMultiplicityConstraint.java

SafetyCasesConnection

41

"All goals shall be supported ultimately by a solution"

The inspected goal is supported by a solution.

org.fortiss.af3.safetycases.constraint.GoalSupportingSolutionConstraint.java

Goal

42

"All option entities are only for safety arguments patterns"

Option entities should not exist in a safety case but only in patterns.

org.fortiss.af3.safetycases.constraint.OptionEntityExistanceConstraint.java

OptionEntity

43

"All option entities shall be supported by options"

The inspected option entity is supported by goals.

org.fortiss.af3.safetycases.constraint.OptionEntityOptionsConstraint.java

OptionEntity

44

"All solutions shall be connected to an evidence artefact"

The inspected solution references to an evidence.

org.fortiss.af3.safetycases.constraint.SolutionReferenceToEvidenceConstraint.java

Solution

45

"All solution shall have up-to-date test coverage status"

The test coverage status of the solution is not out-dated.

org.fortiss.af3.safetycases.constraint.SolutionTestCoverageOutdatedConstraint.java

Solution

46

"All strategies shall be supported by sub-goals!"

The inspected strategy is supported by sub-goals.

org.fortiss.af3.safetycases.constraint.StrategySubgoalsConstraint.java

Strategy