S Oft W A Re R E Qui Re M E Nt S S Pe C I Fi C A T I On

Transcription

1Software Requirements SpecificationCooperative Adaptive Cruise Control (CACC) 1Authors: Matthew Lane, Jake Baum, Nick Jones, Andrew Kim, Shawn PeerenboomCustomer: Mr. Bill MilamInstructor: Prof. Betty H.C. Cheng1 IntroductionThis document is intended to provide functional and non-functional requirements pertaining tothe development of software for Ford’s Cooperative Adaptive Cruise Control (CACC )system. The following subsections will contain detailed information regarding the purpose of thisdocument, various scopes of work, commonly used acronyms, and the overall organizationalstructure of the documentation.1.1 PurposeThe Software Requirements Specification is provided to function as a means to facilitatecommunication between users and software engineers. Depending on needs, readers can use thisdocumentation as a guideline for development, reviewing project goals, or general reference. Thedocument can also be utilized as a platform for continued revisions.1.2 ScopeSoftware to be produced will control the Cooperative Adaptive Cruise Control through multiplesystem components. GPS, camera, radar, and speed sensors will be used to control and detectvehicle parameters such as the current speed of the vehicle. Radio communication is used toprocess and communicate data to and from the infrastructure and other platoon vehicles. TheCACC system will allow for a platoon of vehicles to maintain a constant vehicle speedspecified by the driver or relative position with other platoon vehicles. Changing lanes or othervariables other than stated above will not be supported.

Cooperative Adaptive Cruise Control (CACC) 121.3 Definitions, Acronyms, and AbbreviationsCACC : Cooperative Adaptive Cruise ControlSRS: Software Requirements SpecificationSW: SoftwareGPS: Global Positioning SystemPlatoon: Unit consisting of multiple CACC equipped vehiclesCAN-Bus: Controller Area Network Bus1.4 OrganizationSection 1. Introduction - Introduction to SRS1.1 Purpose1.2 Scope1.3 Definitions, Acronyms, and AbbreviationsSection 2. Overall Description - Description of CACC SW2.1 Product Perspective2.2 Product Functions2.3 User Characteristics2.4 Constraints2.5 Assumptions and Dependencies2.6 Apportioning of RequirementsSection 3. Specific Requirements - Enumerated list of requirementsSection 4. Modeling Requirements - Requirements specificationsSection 5. Prototype - System functionalities of prototype5.1 How to Run Prototype5.2 Sample ScenariosSection 6. References - References used in document

Cooperative Adaptive Cruise Control (CACC) 12 Overall DescriptionThis section of the document contains a detailed description of the system. The descriptionincludes the context of the system, as well as the functionality and goals of the system. Usercharacteristics, or expectations about the user, are included. Constraints, assumptions,dependencies, and apportioning of requirements are also listed below.2.1 Product PerspectiveThe Cooperative Adaptive Cruise Control (CACC) system is meant to meet a number ofrequirements. First, the CACC allows the vehicle cruise control system to adjust cruising speedin order to match the flow of traffic more safely and effectively. Second, any group of two ormore CACC equipped vehicles can group up, or “platoon.” The equipped vehicles form arelatively compact line of vehicles which share data on traffic conditions up and down theplatoon. CACC-equipped vehicles would be able to navigate through traffic and reducecongestion, all while increasing the safety of driving.Constraints:-Speed and safety of communicationHardware limitations (CPU, memory, storage, etc.)Connectivity to other vehiclesSensor limitations2.2 Product FunctionsThe Cooperative Adaptive Cruise Control (CACC) system will maintain a constant vehiclespeed, which is specified by the driver. Also, the system will use forward radar and camerasensors to detect other vehicles and adjust its own speed, with necessary braking or throttle, tomaintain a safe following distance. In addition, the vehicle will receive and transmit GPSinformation from vehicles ahead of and behind it respectively. This information gathered fromother vehicles GPS systems, along with data from its own sensors, can be used to create aplatoon that can follow a single, lead vehicle. Using this information, a safe spacing betweeneach vehicle can be maintained.To supplement GPS information, platoons will also share performance envelopes, a descriptionof a specific vehicles braking and acceleration capabilities, with each other. These performanceenvelopes help ensure that the platoon can stay together through the coordination of available3

Cooperative Adaptive Cruise Control (CACC) 14braking and acceleration metrics. In addition to these main features, lane keeping, curve speedassist, and hill management will be incorporated.The above diagram showcases the functionality of the CACC system. The driver may engagethe CACC system, which allows for a set speed and follow distance. The driver can thendisengage the system temporarily and resume the system, or turn the system off. While theCACC system is on, any manual input by the driver, such as braking or accelerating, willdisengage the system and allow the driver to immediately take control of the system. Whileoperating, the car will obtain various data from its sensors, such as finding obstacles, identifyingmembers of its platoon and obtaining GPS information. All of this information can be used tomeasure speed and distance, as well as check speed of the various vehicles and obstacles that onemay encounter while driving. While CACC is engaged, the vehicle will communicate with otherCACC-enabled vehicles various information, including GPS and performance envelope. All ofthis gathered information will allow the system to properly adjust speed to perform itsfunctionality.

Cooperative Adaptive Cruise Control (CACC) 152.3 User CharacteristicsThe user for our system is expected to be an everyday driver. They shouldn’t need anyadditional experience or an above-average skill level. The system will be doing all the work,however the driver must stay alert and focused in case there are any warnings or errors. In thecase of an error, the driver must be ready to resume control of the vehicle.2.4 ConstraintsSafety-Critical:1.The entire system is constrained by communication between vehicles. Communicationmust be fast and reliable to allow the system to quickly process the information requiredto make the necessary actions in time.1.1.To further complicate this, encryption is also necessary to make sure theinformation being obtained is from a recognized and trusted source. Encryptingand decrypting information takes time and will put a strain on processing times.Hardware:2.3.4.The CACC system must be able to run on a vehicle, which is constrained by the hardwarelimitations of a car. This includes processing power, available memory, and storage.Connectivity to other vehicles and infrastructure may be spotty.Sensors are inherently flawed. Debris and weather can cause false readings and providean unsafe environment.2.5 Assumptions and DependenciesThis project makes some assumptions about the hardware, software, environment, and userinteractions regarding the CACC system. These assumptions include:1.2.3.4.5.The hardware uses a CAN-Bus for communication.The system does not operate under adverse conditions that impede normal operations.2.1.If the sensors are unable to function normally, the system will not operate.2.2.For example, this includes bad weather or other conditions / obstructions thatblock sensors.If for any reason the system determines that it would be unable to operate safely andcorrectly, it will not activate.The user (the driver) has the ability to turn the system on and off.The user can manually override the system at any time.

Cooperative Adaptive Cruise Control (CACC) 162.6 Apportioning of RequirementsThere are no requirements that have been identified that are beyond the scope of this project.3 Specific RequirementsGeneral Requirements:1.2.3.4.5.6.7.8.The system shall be able to maintain a constant forward vehicle speed while keepingrelative distance with other vehicles in front.1.1.Does not affect the overall motor functions of the car. The system acts on thesame acceleration and braking systems the driver could act on. The system maybe temporarily disengaged if the driver takes control of the vehicle.1.2.The system communicates with vehicles in front of it and the ones behind it tomore effectively achieve this goal.1.3.If available, the CACC system may also send and receive data to and from roadinfrastructures.Ability to accurately measure the distance between vehicles through a variety of sensors.The car decelerates or brakes when the relative distance to the car ahead of it becomesless than the set minimum following distance.Accelerates to match surrounding traffic and other CACC vehicles while active.Share vehicle braking and acceleration capabilities with other CACC equipped vehicles.5.1.Information about the car’s performance envelope will also be shared with allother members of the platoon.5.2.Coordination of braking and acceleration maneuvers of the platoon by usinginformation from performance envelopes.The system will allow its driver to adjust the target speed without turning the system off.Analyze the surroundings of the road (empty lanes, shoulders) so vehicle “outs” areavailable if an emergency stop were to happen.Ability to adjust to changing and varied weather conditionsHardware Requirements:9.10.Radar and camera sensors must be able to detect, identify, and target vehicles.9.1.The system requires maximal coverage of video and radar sensors.9.2.If the radar were to fail, the cameras will act as backup for tracking obstacles.GPS system needs to keep vehicle position, speed and direction information accurate

Cooperative Adaptive Cruise Control (CACC) 1710.1.11.12.13.14.GPS information shared by surrounding vehicles will be used to help differentiatebetween other cars and static objects.State guards detect failure to start key tasks and notifies the driver of failure to do so.Ability to diagnose lack of memory and decide how to recover.Ability to restart the subsystems if commanded by the vehicle controllerIf the radar and cameras are dirty, obstructed, or otherwise inoperable, the system will notoperate.Security Specific Requirements:15.16.17.18.The CACC system in general should be kept as isolated as possible from unrelatedvehicle systems.The Sensors of the CACC system must be parameterized to avoid being compromised bymalicious actions.16.1.The Radar and GPS systems will not accept readings outside the bounds ofnormal operation.The Radio of the CACC system must be protected with extra precaution from acceptingnon-parameterized data.17.1.The CACC system must recognize when it is compromised and shut down theradio in order to prevent its misuse.17.2.The Radio must ignore long term connection attempts that in large quantitieswould deny Radio service to legitimate actors.It must be recognized that the CACC system will be the target of malicious attacks from avariety of actors, including these common actors:18.1.Ransomware attackers trying to threaten CACC users for monetary gains.18.2.Cyber-Terrorist attacks attempting to exploit the inherently dangerous andinterconnected nature of the system.18.3.Foreign and domestic governments and organizations: Any group looking to dosubstantial economic damage or a regional or even national scale could do so bycompromising this system.

Cooperative Adaptive Cruise Control (CACC) 184 Modeling RequirementsUse Case Diagram:Use Case Descriptions:Use Case: Engage SystemActors: Driver (initiator)Description: The driver chooses to turn on the CACC system. When turning on the system, thedriver must set a speed and a following distance to maintain while active. While active, thesystem may be automatically disengaged if either set values result in an unsafe situation. Whilethe system is active, the vehicle will also attempt to communicate with other vehicles that CACCis currently active.Type: Primary and essential

Cooperative Adaptive Cruise Control (CACC) 19Includes: Set Speed, Set Follow Distance, Disengage System, Communicate that CACC isActiveCross-refs: Requirements 1Use cases: Set Speed, Set Follow Distance, Disengage System, Communicate that CACC isActiveUse Case: Set SpeedActors: Driver (initiator)Description: The driver may set a speed for the system to maintain. While a speed is set and thesystem is active, the system will adjust the speed of the vehicle through a throttle control tomatch the set value.Type: Primary and essentialIncludes: Adjust SpeedCross-refs: Requirements 6Use cases: Adjust SpeedUse Case: Disengage SystemActors: Driver or System (initiators)Description: The driver or system may disengage the system, requiring the driver to assumemanual control of the vehicle. The system is then put in standby and waits for the user to resumethe system.Type: Primary and essentialIncludes: N/ACross-refs: Requirements 1.1, 13Use cases: N/AUse Case: Resume SystemActors: Driver (initiator)Description: The driver may resume the system when it is disengaged. This will act as if the userengaged the system with the previously set values for speed and following distance.Type: Primary and essentialIncludes: N/ACross-refs: Requirements 13Use cases: N/AUse Case: Turn System OffActors: Driver (initiator)Description: The driver can turn off the CACC system requiring manual control of the vehicle.Type: Primary and essential

Cooperative Adaptive Cruise Control (CACC) 110Includes: N/ACross-refs: Requirements 13Use cases: N/AUse Case: Set Follow DistanceActors: Driver or System (initiators)Description: The driver or system can set the minimum following distance. While the system isengaged, the car will attempt to maintain the follow distance while behind a vehicle.Type: Primary and essentialIncludes: N/ACross-refs: Requirements 1Use cases: N/AUse Case: Communicate that CACC is ActiveActors: Other Cars (initiator)Description: While the CACC system is engaged, the car will communicate with otherCACC-enabled vehicles through the system. The vehicle will also display tonon-CACC-enabled vehicles that CACC is engaged as well.Type: Primary and essentialIncludes: Communicate InformationCross-refs: Requirements 1.2Use cases: Communicate InformationUse Case: Communicate InformationActors: Other Cars or Infrastructure (initiators)Description: While the system is engaged, the vehicle will communicate information to othervehicles. Information included in transmissions will be the vehicles speed and GPS information.Type: Primary and essentialIncludes: Get GPS Information, Check SpeedCross-refs: Requirements 1.3, 5, 5.1, 5.2, 10.1, 11Use cases: Get GPS Information, Check SpeedUse Case: Get GPS InformationActors: Car (initiator)Description: While the system is engaged, GPS information of all vehicles, current andsurrounding, will be obtained.Type: Primary and essentialIncludes: N/A

Cooperative Adaptive Cruise Control (CACC) 111Cross-refs: Requirements 10, 10.1Use cases: N/AUse Case: Check SpeedActors: Car (initiator)Description: While the system is engaged, the speed of the vehicle and the surrounding vehicleswill be obtained.Type: Primary and essentialIncludes: N/ACross-refs: Requirements 10Use cases: N/AUse Case: Measure SpeedActors: Car (initiator)Description: The sensors of the vehicle will be continuously monitoring the speed of the vehicleand surrounding vehicles.Type: Primary and essentialIncludes: N/ACross-refs: Requirements 10Use cases: N/AUse Case: Measure DistanceActors: Car (initiator)Description: The sensors of the vehicle will be continuously monitoring the distance between thevehicle and various objects in its environment.Type: Primary and essentialIncludes: N/ACross-refs: Requirements 2Use cases: N/AUse Case: Adjust SpeedActors: System, Car or Driver (initiators)Description: The system or sensors can alert the vehicle to adjust speed. While adjusting speed,the system uses a throttle control system to either brake or accelerate, depending on thecircumstance.Type: Primary and essentialIncludes: Use Throttle ControlCross-refs: Requirements 1, 3, 4Use cases: N/A

Cooperative Adaptive Cruise Control (CACC) 112Use Case: Identify PlatoonActors: Car (initiator)Description: Sensors will continuously identify surrounding vehicles in the platoon, along withtheir speed and distance. Based on gathered information, the system may choose to adjust speed.Type: Secondary and essentialIncludes: Measure Speed, Measure Distance, Adjust SpeedCross-refs: Requirements 1.2, 10.1Use cases: Measure Speed, Measure Distance, Adjust SpeedUse Case: Find ObstaclesActors: Car (initiator)Description: Sensors will continuously identify surrounding obstacles, including other vehicles.Based on gathered information, the system may choose to adjust speed.Type: Secondary and essentialIncludes: Adjust SpeedCross-refs: Requirements 7Use Cases: Adjust SpeedUse Case: SensorsActors: Car (initiator)Description: The car will be equipped with various sensors to identify the environment aroundthe car and variables such as speed, distance and GPS coordinates of those objects.Type: Primary and essentialIncludes: Get GPS Information, Check Speed, Measure Speed, Identify Platoon, MeasureDistance, Find ObstaclesCross-refs: Requirements 2, 8, 9, 9.1, 9.2, 14Use Cases: Get GPS Information, Check Speed, Measure Speed, Identify Platoon, MeasureDistance, Find Obstacles

Cooperative Adaptive Cruise Control (CACC) 113High Level Model (Domain Model):Data Dictionary for Domain Model:Element NameAcceleratorDescriptionThis system encompasses all the “Driveby Wire” aspects that the vehicle andoperator adjust to control acceleration ofthe vehicleAttributesN/AN/AadjustAcceleration(amount :float)Adjusts the vehicle’s acceleration by aspecified amount.Operations

Cooperative Adaptive Cruise Control (CACC) 1RelationshipsUMLExtensions14Controlled by Vehicle Speed ControllerNone.Element NameAutomated Cruise ControllerDescriptionUses data from local sensors along withdata from other platoon vehicles tocalculate how to adjust the vehicle tomatch the driver’s set cruise control orto match the platoon’s speed.AttributesUnprocessed Data : DataProcessed Data : DataobjectInPath : boolContains all the information gatheredfrom sensors and other vehicles, whichwill be used in the systems calculationsto determine vehicle action.All the information produced as aproduct of calculating how to maintainspeed. Processed data is used by othervehicles in the platoon for theircalculations.Represents whether the system hasdetected any obstacles in its intendedpath.OperationscorrectSpeed(amount : float)dataProcessed(data : Data)disengage()engage()inputProcessed(data : Data)monitorDistance()monitorSpeed()Allows the Automated System to adjustvehicle speed through the Vehicle SpeedController until the specified amount isreached.Checks to see if data has been correctlyprocessed.Allows the driver to stop the CACCsystem from performing services.Allows the driver to activate theservices of the CACC systems.Signals that the input data has beenprocessed.Checks the current distance between thecurrent vehicle and obstacles detectedaround it.Checks the current speed of the vehicle.

Cooperative Adaptive Cruise Control (CACC) 115shutdown()RelationshipsUMLExtensionsCompletely disables the AutomatedCruise Control.sendStatus()Allows the system to transmit the statusof the current vehicle to itscorresponding Platoon Vehiclemembers.Interprets information received from radio and sends Processed Data tothe radio. Controls & monitors Vehicle Speed Controller. Monitored byVehicle Speed Manager. Controls Warning Systems. Monitored byMemory Manager. Alerted by Sensor Manager. Receives Data fromGPS, Radar, and Video Sensors. Has activity set by DriverNone.Elem

SRS: Software Requirements Specification SW: Software GPS: Global Positioning System Platoon: Unit consisting of multiple CACC equipped vehicles CAN-Bus: Controller Area Network Bus 1.4 O rga ni z a t i on Section 1. Introduction - Introduction to SRS 1.1 Purpose 1.2 Scop