Demo page details

Page source code: requirements.rst

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
{% set page="requirements.rst" %}
{% include "demo_page_header.rst" with context %}

.. _req_teen:

πŸ™‡ Requirements Teen
====================

.. include:: /demo_hints/constraints.rst

.. req:: Safety Features
   :id: TEEN_SAFE
   :tags: teen, safe
   :author: ROBERT
   :release: REL_TEEN_2024_6
   :status: open

   The car must include advanced safety features such as automatic braking, collision avoidance systems, and adaptive cruise control to ensure the safety of teenage drivers.

.. req:: Connectivity and Entertainment
   :id: TEEN_CON
   :tags: teen, connection
   :author: ROBERT, PETER
   :release: REL_TEEN_2025_6
   :status: in progress
   :based_on: BASE_WIFI, BASE_BT
 
   The car should be equipped with built-in Wi-Fi, Bluetooth connectivity, and compatibility with smartphone integration systems to enable seamless communication and entertainment for teenagers on the go.

   .. uml::

        @startuml
       
        node Car {
         card ConnectBox
         card BluetoothDevice
         cloud WifiDevice

        }

        BluetoothDevice <--> ConnectBox
        WifiDevice <--> ConnectBox

        @enduml    

.. req:: Customization Options
   :id: TEEN_CUSTOM
   :tags: teen, customization
   :author: PETER
   :release: REL_TEEN_2024_6
   :status: closed
 
   The car must offer a range of customization options, including exterior colors, interior finishes, and optional accessories, allowing teenagers to personalize their vehicles to reflect their individual styles and preferences.

.. req:: Fuel Efficiency
   :id: TEEN_EFF
   :tags: teen, efficiency
   :author: ROBERT
   :release: REL_TEEN_2025_1
   :status: closed
   
   The car should prioritize fuel efficiency, with a focus on eco-friendly technologies such as hybrid or electric powertrains, to minimize environmental impact and reduce operating costs for teenage drivers.

.. req:: User-Friendly Interface
   :id: TEEN_USER
   :tags: teen, user
   :author: ROBERT
   :release: REL_TEEN_2025_1
   :status: new

   The car's interface should be intuitive and easy to use, with a touchscreen infotainment system, voice recognition capabilities, and simplified controls to enhance the driving experience for teenage users.


.. req:: Customer-specific RADAR configuration
   :id: TEEN_CUSTOMER
   :tags: teen, customer
   :author: customer_a:ROBERT, customer_b:SARAH
   :release: REL_TEEN_2025_1
   :status: customer_a:open, customer_b:closed
   :customer: B

   We need to adapt the configuration of our RADAR system depending on the final customer.

   .. tip:: 
      :title: Demo feature hint: Variant handling
      :collapsible: 
   
      This Requirement is using variant handling.
      Depending on the value of the ``customer`` option (``A`` or ``B``), status and author get updated.

      The variant matrix looks like this:

      .. list-table::
         :header-rows: 1
         :stub-columns: 1

         - * customer
           * author
           * status
         - * A
           * ROBERT
           * open
         - * B
           * SARAH
           * closed


      | The used code for the options is:
      | **author**: ``customer_a:ROBERT, customer_b:SARAH``
      | **status**: ``customer_a:open, customer_b:closed``

      The value of ``customer`` in this example is: **[[copy("customer")]]**. Therefore ``author`` is finally **[[copy("author")]]** and ``status`` is **[[copy("status")]]**.

      Setting values of options can be done dynamically and triggered from outside. So different build commands could result in a totally different document thanks
      to the used ``needs_variant`` feature.


.. req:: Autonomous Driving 
   :id: TEEN_AUTO
   
   The autonomous driving system integrated into the teenager's vehicle must encompass a robust sensor suite 
   comprising lidar, radar, cameras, and ultrasonic sensors to provide comprehensive environmental perception. 
   Utilizing deep learning algorithms, the system should enable real-time object detection, classification, 
   and trajectory prediction for efficient obstacle avoidance. It should employ a hierarchical control architecture, 
   incorporating motion planning algorithms such as MPC (Model Predictive Control) to ensure smooth and 
   safe trajectory tracking. Additionally, the system must support secure communication protocols for remote 
   monitoring and control, allowing guardians to access and manage settings through a secure web interface.

πŸ™‡ Requirements TeenΒΆ

Demo feature hint: Constraints

For requirements two constraints are defined, which check if the status is set correctly and if a release is linked.

If these constraints are not fulfilled, the need object gets a colored right border and the footer contains the reason why a constraint is not fulfilled.

Constraints can be defined in the conf.py file:

needs_constraints = {
   "status_set": {
      "check_0": "status is not None and status in ['open', 'in progress', 'closed']",
      "severity": "LOW",
      "error_message": "Status is invalid or not set!"
   },
   "release_set": {
      "check_0": "len(release)>0",
      "severity": "CRITICAL",
      "error_message": "Requirement is not planned for any release!"
   },
}

Depending on the severity, the build is stopped or a warning gets printed:

/sphinx-needs-demo/docs/granny_car/requirements.rst:20: WARNING: Constraint len(release)>0 for need GRANNY_EXAMPLE FAILED! severity: CRITICAL Requirement is not planned for any release! [needs.constraint]

Docs: needs_constraints by Sphinx-Needs.

Object traceability details: Safety Features

@startuml

' Nodes definition 

actor "<size:12>Person</size>\n**Robert Right**\n<size:10>ROBERT</size>" as ROBERT [[../persons.html#ROBERT]] #DCB239
node "<size:12>Requirement</size>\n**Safety Features**\n<size:10>TEEN_SAFE</size>" as TEEN_SAFE [[../teen_car/requirements.html#TEEN_SAFE]] #BFD8D2
node "<size:12>Specification</size>\n**Implement RADAR**\n**system**\n<size:10>TEEN_RADAR</size>" as TEEN_RADAR [[../teen_car/specifications.html#TEEN_RADAR]] #FEDCD2
node "<size:12>Specification</size>\n**Implement**\n**distant**\n**detection**\n<size:10>TEEN_DIST</size>" as TEEN_DIST [[../teen_car/specifications.html#TEEN_DIST]] #FEDCD2

' Connection definition 

TEEN_SAFE --> ROBERT
TEEN_RADAR --> TEEN_SAFE
TEEN_DIST --> TEEN_SAFE

@enduml

ID

Title

Type

Author

ROBERT

Robert Right

person

TEEN_DIST

Implement distant detection

spec

SARAH; STEVEN

TEEN_RADAR

Implement RADAR system

spec

SARAH

TEEN_SAFE

Safety Features

req

ROBERT

Object traceability details: Connectivity and Entertainment

@startuml

' Nodes definition 

actor "<size:12>Person</size>\n**Peter Parker**\n<size:10>PETER</size>" as PETER [[../persons.html#PETER]] #DCB239
actor "<size:12>Person</size>\n**Robert Right**\n<size:10>ROBERT</size>" as ROBERT [[../persons.html#ROBERT]] #DCB239
node "<size:12>Requirement</size>\n**Connectivity**\n**and**\n**Entertainment**\n<size:10>TEEN_CON</size>" as TEEN_CON [[../teen_car/requirements.html#TEEN_CON]] #BFD8D2

' Connection definition 

TEEN_CON --> ROBERT
TEEN_CON --> PETER

@enduml

ID

Title

Type

Author

PETER

Peter Parker

person

ROBERT

Robert Right

person

TEEN_CON

Connectivity and Entertainment

req

ROBERT; PETER

Object traceability details: Customization Options

@startuml

' Nodes definition 

actor "<size:12>Person</size>\n**Peter Parker**\n<size:10>PETER</size>" as PETER [[../persons.html#PETER]] #DCB239
node "<size:12>Requirement</size>\n**Customization**\n**Options**\n<size:10>TEEN_CUSTOM</size>" as TEEN_CUSTOM [[../teen_car/requirements.html#TEEN_CUSTOM]] #BFD8D2

' Connection definition 

TEEN_CUSTOM --> PETER

@enduml

ID

Title

Type

Author

PETER

Peter Parker

person

TEEN_CUSTOM

Customization Options

req

PETER

Object traceability details: Fuel Efficiency

@startuml

' Nodes definition 

actor "<size:12>Person</size>\n**Robert Right**\n<size:10>ROBERT</size>" as ROBERT [[../persons.html#ROBERT]] #DCB239
node "<size:12>Requirement</size>\n**Fuel Efficiency**\n<size:10>TEEN_EFF</size>" as TEEN_EFF [[../teen_car/requirements.html#TEEN_EFF]] #BFD8D2

' Connection definition 

TEEN_EFF --> ROBERT

@enduml

ID

Title

Type

Author

ROBERT

Robert Right

person

TEEN_EFF

Fuel Efficiency

req

ROBERT

Object traceability details: User-Friendly Interface

@startuml

' Nodes definition 

actor "<size:12>Person</size>\n**Robert Right**\n<size:10>ROBERT</size>" as ROBERT [[../persons.html#ROBERT]] #DCB239
node "<size:12>Requirement</size>\n**User-Friendly**\n**Interface**\n<size:10>TEEN_USER</size>" as TEEN_USER [[../teen_car/requirements.html#TEEN_USER]] #BFD8D2

' Connection definition 

TEEN_USER --> ROBERT

@enduml

ID

Title

Type

Author

ROBERT

Robert Right

person

TEEN_USER

User-Friendly Interface

req

ROBERT

Object traceability details: Customer-specific RADAR configuration

@startuml

' Nodes definition 

actor "<size:12>Person</size>\n**Sarah Smith**\n<size:10>SARAH</size>" as SARAH [[../persons.html#SARAH]] #DCB239
node "<size:12>Requirement</size>\n**Customer-**\n**specific RADAR**\n**configuration**\n<size:10>TEEN_CUSTOMER</size>" as TEEN_CUSTOMER [[../teen_car/requirements.html#TEEN_CUSTOMER]] #BFD8D2

' Connection definition 


@enduml

ID

Title

Type

Author

SARAH

Sarah Smith

person

TEEN_CUSTOMER

Customer-specific RADAR configuration

req

SARAH

Object traceability details: Autonomous Driving

@startuml

' Nodes definition 

node "<size:12>Requirement</size>\n**Autonomous**\n**Driving**\n<size:10>TEEN_AUTO</size>" as TEEN_AUTO [[../teen_car/requirements.html#TEEN_AUTO]] #BFD8D2

' Connection definition 


@enduml

ID

Title

Type

Author

TEEN_AUTO

Autonomous Driving

req