26
Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu) Software Requirements Specification (SRS) Full Speed Range Adaptive Cruise Control FSRACC (2) Authors: Justin Rush, Mariah Gilman, Vincent Sabatini, Jordyn Castor, Ryan Switzer Customer: Dr. Rami Debouk, General Motors Instructor: Dr. Betty H.C. Cheng 1 Introduction This document contains the specifications and requirements necessary to engineer the Full Speed Range Adaptive Cruise Control system from General Motors. The purpose of this document, description of the application domain, and definitions for any acronyms used throughout this document can be found in this section. The software requirements for this system are described in detail using both textual descriptions and models including use case diagrams, class diagrams, and state diagrams. This document also contains a link to a prototype of the system, as well as a scenario describing how the system could potentially be used. References and contact information can be found at the conclusion of this document. 1.1 Purpose The purpose of this document is to define and specify in detail the requirements needed to create the software for the General Motors Full Speed Range Adaptive Cruise Control system. This specification is intended for use and reference by the software development team and the customer to ensure all requirements for software development are being met. 1.2 Scope The Full Speed Range Adaptive Cruise Control (FSRACC) system is an embedded system used in the automotive industry. The FSRACC system will adapt the speed of the subject vehicle (the car the system is being used in) using information based on the speed

Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Embed Size (px)

Citation preview

Page 1: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

Software Requirements Specification (SRS)

Full Speed Range Adaptive Cruise Control

FSRACC (2)

Authors: Justin Rush, Mariah Gilman, Vincent Sabatini, Jordyn Castor, Ryan Switzer

Customer: Dr. Rami Debouk, General Motors

Instructor: Dr. Betty H.C. Cheng

1 Introduction

This document contains the specifications and requirements necessary to engineer the Full Speed Range Adaptive Cruise Control system from General Motors. The purpose of this document, description of the application domain, and definitions for any acronyms used throughout this document can be found in this section. The software requirements for this system are described in detail using both textual descriptions and models including use case diagrams, class diagrams, and state diagrams. This document also contains a link to a prototype of the system, as well as a scenario describing how the system could potentially be used. References and contact information can be found at the conclusion of this document.

1.1 Purpose

The purpose of this document is to define and specify in detail the requirements needed to create the software for the General Motors Full Speed Range Adaptive Cruise Control system. This specification is intended for use and reference by the software development team and the customer to ensure all requirements for software development are being met.

1.2 Scope

The Full Speed Range Adaptive Cruise Control (FSRACC) system is an embedded system used in the automotive industry. The FSRACC system will adapt the speed of the subject vehicle (the car the system is being used in) using information based on the speed

Page 2: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

of the forward vehicle (a car in front of the subject vehicle), the distance between the forward and subject vehicles, and the commands given by the driver.

Previously developed Adaptive Cruise Control (ACC) systems also adjust the speed of the subject vehicle, but only work within certain speed ranges. For example, the existing Delphi system does not work at speeds lower than 20 miles per hour (MPH) [4]. The FSRACC system is an improvement over other ACC systems because it controls the distance between the subject and forward vehicles even when the forward car slows down and comes to a stop. To accomplish this, the FSRACC system uses a combination of a radar sensor, path prediction algorithm, and commands from the driver regarding the following distance to control the longitudinal distance between the subject and forward vehicles.

1.3 Definitions, acronyms, and abbreviations

The following terms and acronyms appear throughout the course of the document. Any term or acronym that may seem unclear has been included in this section. The following definitions should be used when referring to the term when it appears in the text.

ACC:  Adaptive  Cruise  Control  FSRACC:  Full  Speed  Range  Adaptive  Cruise  Control  GM:  General  Motors  Delphi:  An  automotive  parts  manufacturing  company  SRS:  Software  Requirements  Specification  Subject  Vehicle:  The  vehicle  currently  using  the  FSRACC  system  Forward  Vehicle:  A  vehicle  in  front  of  the  subject  vehicle  Path  Prediction  Algorithm:  An  algorithm  used  by  the  FSRACC  system  to  predict  the  path  of  the  vehicle  and  determine  whether  any  forward  vehicles  detected  by  the  radar  are  in  the  path  of  the  subject  vehicle  (i.e.  determining  whether  a  forward  vehicle  is  in  the  same  lane  during  a  curve  on  the  highway)      Activate:  Activating  the  FSRACC  system  runs  a  series  of  checks  to  confirm  that  the  system  is  available  for  the  driver  to  use.  The  FSRACC  system  must  be  activated  before  it  can  be  engaged.  There  is  no  change  in  the  operation  of  the  vehicle  after  switching  the  system  from  “Off”  to  “Active”  Engage:  Engaging  the  FSRACC  system  allows  the  system  to  start  controlling  the  operation  of  the  subject  vehicle.  The  FSRACC  system  must  be  “Active”  before  it  can  be  “Engaged”  MPH:  miles  per  hour  

Page 3: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

1.4 Organization

The remainder of this section will detail the information contained in the proceeding sections of this document. Section 2 provides a thorough description of the software functions, constraints, safety considerations and constraints, a description of who will be using the software, and a description of requirements that will be implemented in future iterations of the software. Section 3 contains a description of all the requirements necessary to implement the FSRACC software system. Section 4 contains a pictorial representation of the requirements using models including a use case diagram, class diagram, and state diagram. This section also contains specific scenarios for using the FSRACC system. Section 5 contains information regarding a prototype of the system, instructions for running the prototype, a link to the executable, screenshots, and a sample scenario where the prototype is used to depict the FSRACC system’s functions. Finally, section 6 contains the references to any material used in this document, a link to the project website, and contact information.

2 Overall Description

This section contains the functions and goals of the FSRACC software, the interface constraints of the software, safety constraints, and expectations about who will be using the software.

2.1 Product Perspective

The FSRACC is an embedded system used in the automotive industry to perform cruise control functions. This system is a small portion of the larger software system used in vehicles. Vehicles can contain many features such as collision avoidance, parking assist, and autonomous braking [6]. These system must be able to work together without interrupting or interfering with each other. There were few constraints when developing the requirements for this software. The primary site operations constraint is the ability for automobile manufacturers to define preset values for appropriate following distances between the subject and forward vehicles. Therefore, each manufacturer who uses the FSRACC system could potentially define a different method for determining how closely to follow the car in front.

2.2 Product Functions

The main function of the FSRACC software is to use an algorithm to control the speed of the subject vehicle. The driver has the ability to set a speed that the system will maintain. When the system is engaged a default following distance, that the driver can adjust, is used. If the forward vehicle slows down, the FSRACC software will provide the information necessary to slow the subject vehicle down as well. If the forward vehicle

Page 4: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

brakes to a stop, the FSRACC system will detect this, and stop the subject vehicle. The vehicle will be held at the stopped position until the driver pushes on the gas pedal. When the subject vehicle is stopped by the FSRACC system, it will remain activated, but not engaged. The driver has to engage the FSRACC system again by pressing the engage button. The action determined by the FSRACC controller comes from information provided by a radar sensor to communicate the distance between the subject and forward vehicles, algorithm to predict the path of the subject vehicle, and commands provided to the controller by the driver. The FSRACC software will also send the driver status information regarding the set speed of the vehicle as well as the following distance between the subject and forward vehicles.

2.3 User Characteristics

Users of the FSRACC system should be skilled at driving in many different road conditions, and aware of how to handle many different scenarios while driving such as a deer crossing the road. Drivers who use the FSRACC system should also be familiar with how to use a cruise control system without the advanced features of the FSRACC to ensure the transition to the FSRACC is not complicated. Drivers who engage the FSRACC must be aware of their surroundings at all times, and are responsible for maintaining their safety as well as the safety of those around them in case of a system error or failure. The FSRACC system provides a convenience feature to the driver, not a safety feature. The function of the system is not to prevent collisions or accidents of any kind, only to offer a more convenient driving experience.

2.4 Constraints

The primary safety properties in the FSRACC system are the diagnostics performed when activating the FSRACC as well as the guard against engaging the FSRACC when it is not activated. When the user presses the button to activate the FSRACC, the system does diagnostic checks to be sure all the sensors, such as the radar sensor, are performing properly. The FSRACC system will not activate if the radar sensor or any other sensor is not performing as expected. If the user pressed the button to engage the FSRACC before the activation button is pressed, no action will be taken. The activate button has to be pressed first before the engage button to fully engage the FSRACC. The system will also not engage if the subject vehicle is traveling at or above 85 mph. The driver must be aware at all times, as the system will not make sudden stops for stationary objects.

2.5 Assumptions and Dependencies

We assume the user is aware of all the features and risks associated with using the FSRACC system, and is aware of their surroundings at all times while driving and using FSRACC. An assumption is also made that the system performs the proper diagnostic

Page 5: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

checks, and that the hardware such as the radar sensor is performing correctly while the system is in use.

2.6 Approportioning of Requirements

At the current time, there are no requirements that are beyond the current scope of the project. The requirements and models present in this document represent the FSRACC system behavior for any possible versions, although no future versions are currently planned.

3 Specific Requirements

The following is an enumerated list of requirements for the FSRACC system. The requirements listed reflect the behavior of the system.

1. The system will maintain the vehicle speed set by the driver and adjust the speed

based on forward vehicles 2. The system will have a default following distance of 1.5 seconds in place after the

driver chooses to engage the FSRACC system 3. The following distance will be computed in seconds behind the forward vehicle (i.e.

260 feet of following distance at 60 mph (88 feet per second) is about 3 seconds) 4. The driver will be able to use buttons on the steering wheel to set and change the

maximum speed whenever the system is engaged 5. The driver will be able to use buttons on the steering wheel to change the following

distance whenever the system is engaged 6. If the car in front of the subject car slows down then the system will adjust to a

lower speed 7. If the car in front of the subject car speeds up then the system will adjust to a higher

speed, provided the car has not reached the set speed 8. The vehicle will not exceed 85 MPH while using the FSRACC feature 9. The system will maintain the following distance without exceeding the maximum

speed set by the user whenever a front vehicle is detected 10. The system will have set following distances available to the user that allows the

vehicle to slow down and stop if the front vehicle does 11. The system will work from 0 MPH to 85 MPH 12. The driver has the ability to override/disable the system at all times

12.1. The system will be disabled when the driver taps on the brakes 12.2. When the driver taps the accelerator, the system is temporarily disengaged

while the driver accelerates the car. The system will re-engage at the previously set speed once the accelerator is no longer be pressed

13. The system will work alongside other systems present in the car 14. If engaged, the system should disengage and warn the driver using a status light in

the event of a system malfunction

Page 6: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

15. If any component of the system fails (i.e. controller, radar, etc.) then the system will notify the driver and disengage immediately

16. The system will send status updates to the driver using the dashboard 16.1. The system will have indicator lights for when the system is activated,

engaged, as well as the status of the cruise control 16.2. The set speed threshold will be displayed for the driver 16.3. The distance threshold will be displayed for the driver

4 Modeling Requirements

The Modeling Requirements section of the document further depicts how the system will behave. Different diagrams show different views of the system and when all put together the user should have a clear picture of how the system functions.

The first diagram is a Use Case diagram. The Use Case diagram is a behavioral diagram that shows the services and actions that can be performed by actors interacting with the system. The stick figures represent actors who have the ability to interact with the system. The ovals are use cases and represent the services that the system provides. The large rectangular box represents the system boundary that separates the actors from the system itself. The solid lines are associations to show an interaction between an actor and a use case. The dotted lines represent either includes or extends. If use case A includes use case B then that means if case A happens case B also happens. If case A extends case B then case A is a more specialized version of case B.

Page 7: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

In the Use Case diagram below, Figure 4.1, the driver can activate, turn off, engage, and override the system. Once the system is engaged, the path prediction is enabled and the system uses forward detection to determine the speed of any vehicles in front of the driver. The driver must be able to change both the speed and distance threshold to the driver’s specifications. Along with this, the system has to cooperate with the other systems. The acceleration and braking systems are controlled by the vehicle controller and are used to control the distance between the driver and forward vehicles.

Figure 4.1: Use Case Diagram

Page 8: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

The following are several different use cases of the system. Each use case lists the name of the use case, the actors involved, and the description of the use case. Also included is the type (primary/essential or secondary), whether the use case includes or extends any others, the requirements the use case covers, and use cases that are dependent on the current use case.

Use Case Activate Actors Driver (initiator) Description If all sensors are working properly and there are no internal problems with the system,

prepare the system for use. Otherwise, alert the driver to the presence of a problem and do not activate the system.

Type Primary Includes None Extends None Cross-Refs 13, 14, 15 Use Cases Enable

Use Case Disable Actors Driver (initiator) Description If the system is enabled, disable it and return full control of the vehicle to the driver.

Otherwise do nothing. This is done by pressing the brakes or the button to turn off the system.

Type Primary Includes None Extends None Cross-Refs 12, 12.1, 13 Use Cases Enable

Page 9: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

Use Case Override Actors Driver (initiator) Description If the system is enabled and the driver is pressing the gas pedal, temporarily disable it

and return full control of the vehicle to the driver. When the gas pedal is pressed, resume FSRACC control. Otherwise do nothing.

Type Primary Includes None Extends None Cross-Refs 12, 12.2, 13 Use Cases Enable Use Case Engage Actors Driver (initiator) Description If the system is activated but not enabled, enable the system. Perform Path Prediction.

Perform Exchange Information. Perform Change Thresholds. If the system is engaged or not activated, do nothing.

Type Primary Includes Path Prediction, Exchange Information, Change Thresholds Extends None Cross-Refs 4 Use Cases Path Prediction, Exchange Information, Change Thresholds Use Case Path Prediction Actors System (initiator) Description Use vehicle dynamics input to predict a projected path for the vehicle. This is used to

determine what objects are potential threats. Type Secondary Includes None Extends None Cross-Refs 3, 6, 7, 9, 10, 11 Use Cases None

Page 10: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

Use Case Continue Driving Actors Driver (initiator) Description Allow the driver to drive as if the system were not present. Type Primary Includes None Extends None Cross-Refs 12, 12.1, 12.2, 13 Use Cases None Use Case Exchange Information Actors System (initiator), Driver Description Display an indicator light to tell the driver that the system is currently enabled. Type Secondary Includes None Extends None Cross-Refs 16, 16.1, 16.2, 16.3 Use Cases None Use Case Change Thresholds Actors Driver (initiator), System Description If the driver presses a button to increase or decrease the speed or following distance,

update the appropriate threshold accordingly. Otherwise do nothing. Type Secondary Includes None Extends None Cross-Refs 4, 5, 6, 10 Use Cases Speed Threshold, Distance Threshold

Page 11: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

Use Case Speed Threshold Actors System (initiator), Speedometer, Driver Description If the speedometer returns that the vehicle's speed is below the driver-set threshold,

perform Accelerate. If the speedometer returns that the vehicle's speed is above the threshold, perform Decelerate. Otherwise do nothing.

Type Primary Includes Decelerate, Accelerate Extends None Cross-Refs 1, 4, 6, 7, 8, 11 Use Cases Decelerate, Accelerate Use Case Decelerate Actors System (initiator), Brake System Description Engage the brake system in order to slow the vehicle down. If the driver presses the

brakes, the system will disengage. Type Primary Includes None Extends None Cross-Refs 1, 6, 8, 9, 10, 11, 12.1, 13 Use Cases Stop Use Case Stop Actors System (initiator), Brake System Description Engage the brake system and bring the vehicle to a halt, do not allow the car to start up

without permission from the driver. Type Secondary Includes None Extends Decelerate Cross-Refs 1, 6, 8, 9, 10, 11, 12.1, 13 Use Cases None

Page 12: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

Use Case Distance Threshold Actors System (initiator), Driver, Distance Sensor Description If there is an object within the vehicle's path that is closer than the distance threshold set

by the driver, perform Decelerate. If there is an object in the path but it is farther away than the distance threshold, perform Accelerate (if the subject vehicle is going slower than the set speed). Otherwise do nothing.

Type Primary Includes Decelerate, Accelerate Extends None Cross-Refs 2, 3, 5, 6, 9, 10 Use Cases Decelerate, Accelerate Use Case Accelerate Actors System (initiator), Acceleration System Description Engage the acceleration system to increase the speed of the vehicle. If the driver presses

the accelerator, the system will temporarily disengage until it is released Type Primary Includes None Extends None Cross-Refs 1, 4, 7, 8, 9, 11, 12.2, 13 Use Cases None

Page 13: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

The next diagram, Figure 4.2, is a high-level class diagram to depict the key elements of the system. The boxes represent different classes, or objects, that are part of the system. Each box contains attributes and operations. The attributes are in the top half of each box and show the data stored in the class. The bottom half of the box names the operations of the class. The operations are possible action, such as set or check a value. The lines connecting the boxes represent associations between the different classes with brief descriptions to describe the nature of the relationship.

Figure 4.2: Class Diagram

Page 14: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

The following is a data dictionary that describes the classes above (Figure 4.2). The data dictionary names the class and the class description. Then the individual attributes and operations of the class are listed and described. Next, any relationships between the class and other classes are explained. Any UML extensions are listed at the bottom of each entry. Element Name Description FSRACC Controller Main controller of the FSRACC system.

Responsible for making logical decisions based on various input

Attributes Boolean:fault Fault in the system Double: speed Speed of subject vehicle Double: distance Distance of forward vehicle Double:setDistance Following distance set by the driver Boolean:controllerOn Whether the system is active or not Operations Activate():void Turn on/activate the FSRACC system

CheckFault():boolean Check for a fault in the system

Engage():void Engage the system ChangeSpeed():void Change the speed of the vehicle ChangeDistance():void Change the distance of the vehicle BrakesOn():void Call when the brakes have been pressed AccelerateOn():void Call when accelerator is pressed AccelerateOff():void Call when the accelerator is no longer

being pressed OffButton():void Turns the system off, called when off

button is pressed SystemFault():void Called when an error within the system

occurs, turns the system off Disengage():void The disengages the system (system will

still be active) Relationships The FSRACC Controller has a relationship with all parts of the system

since it is the main component. It receives input from 4 sources: The radar, the driver interface, the path prediction module, and the car status module. It gives out input to two sources, the status information class and the longitudinal control controller class.

Element Name Description Radar The radar detects forward

vehicles/objects in front of the subject vehicle

Page 15: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

Element Name Description Path Prediction The Path Prediction class uses different

information about the car (speed, wheel angle, etc.) to determine the current path of the car

Attributes Array:pathData The data of the predicted path of the

vehicle Operations CheckPath(): pathData Gather the path information and return it Relationships The Path Prediction class inputs the information about the car path to the

FSRACC Controller, and the FSRACC Controller uses that information to determine if any forward vehicles are in the path of the subject vehicle.

Element Name Description Driver Interface

The driver interface includes all the buttons that the driver has access too to adjust the settings of the FSRACC system

Attributes Boolean: engage If the system is engaged or not Boolean: direction Determine if the up or down toggle

button is pressed Operations OnButton():void Alert the controller the on button has

been pressed EngageButton():void Alert the controller the engage button

has been pressed ToggleSpeed():void Alert the controller the speed has been

adjusted ToggleDistance():void Alert the controller the distance has

been adjusted EngageLightOn():void Turn the engage light on to alert the

driver that the system has been engaged OnLightOn():void Turn the on light on to alert the driver

Attributes Array:pathData The data of the predicted path of the

vehicle Operations CheckDistance():distance Check the distance of a forward vehicle

and return that value Relationships The radar sends detection information to the FSRACC controller about

possible forward cars.

Page 16: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

that the system has been activated/turned on

Relationships The driver interface sends information regarding buttons the driver can press to activate/engage, change the speed, etc.

Element Name Description Car Status Module This class contains information of the

status of the car. The class keeps track of the current speed of the vehicle and whether the driver is manually accelerating, manually braking, or neither

Attributes Double:speed The speed of the subject vehicle Operations RequestSpeed():speed Return the current speed of the vehicle Braking():void Alert the controller that the driver has

started to brake Accelerating():void Alert the controller that the driver has

started to accelerate Release():void Alert the controller that the driver has

stopped accelerating Relationships The Car Status module takes input from the brakes and the accelerator

and sends that information to the FSRACC Controller. Element Name Description Longitudinal Control Controller

Responsible for setting the speed of the vehicle

Attributes Operations SetSpeed(speed):void Set the speed of the vehicle Relationships Takes input from the FSRACC Controller and sends the input to the

brakes or the accelerator (depending on the situation) Element Name Description Brakes Responsible for slowing down the car Attributes Operations Press():void Called when the brakes are pressed,

notifies the car status module Relationships The brakes send input to the car status module if they are manually

pressed. They also accept input from the Longitudinal Control Controller if the speed of the vehicle must be reduced.

Page 17: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

Element Name Description Accelerator Responsible for speeding up the car Attributes Operations GasOn():void Called when the accelerator is pressed,

notifies the car status module GasOff():void Called when the accelerator is released,

notifies the car status module Relationships The brakes send input to the car status module if they are manually

pressed. They also accept input from the Longitudinal Control Controller if the speed of the vehicle must be increased.

The sequence diagrams below represent specific scenarios that the FSRACC system

will encounter. The boxes at the top represent objects in the system. These same objects appear in the class diagram above (Figure 4.2). The solid lines represent a message sent from one object to another. The dotted lines represent a response from an object.

The following sequence diagram (Figure 4.3) shows the process of activating, but not

engaging, the FSRACC system. The driver must press the activate button first. Then, a message is sent to the FSRACC Controller that the button has been pressed. The controller checks to make sure there are no faults in the system. If no faults exist then the controller activates the system and sends a message to the driver interface to turn the active light on to alert the driver that the system has been successfully activated.

Figure 4.3: Sequence Diagram – Activating FSRACC System

Page 18: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

The next sequence, shown below in Figure 4.4, depicts the driver engaging the system. After the system is on, the driver must press a button in the car to engage the FSRACC system. When the engage button is pressed, a check is made to ensure the system is on, and then the FSRACC Controller is notified. The Controller requests the speed from the car status module and the current speed of the vehicle is returned. Next, the Radar is contacted to check the distance and path. After these checks, the Controller sends a message to the Longitudinal Control Controller to set the speed of the vehicle. Lastly, the FSRACC Controller notifies the Driver Interface to turn the engage light on so the driver is aware that the FSRACC system is now engaged.

The next sequence (Figure 4.5) is the driver changing the set speed of the vehicle.

Changing the set speed is also done through buttons the driver must press. After a button is pressed, the Driver Interface object notifies the Controller that the driver is adjusting the speed. The Controller checks the Radar for a forward car and the Radar uses the Path Prediction class to check the predicted path of the vehicle. After this data is returned to the Controller, the controller notifies the Longitudinal Control Controller to set the speed of the vehicle.

Figure 4.4: Sequence Diagram – Engaging FSRACC System

Figure 4.5: Sequence Diagram – Changing the set speed

Page 19: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

The next sequence, changing the distance, is very similar to changing the speed (Figure 4.6). Once again the driver must use buttons to increase or decrease the distance. After a button is pressed, the Driver Interface notifies the FSRACC Controller. The controller then checks the Radar for the distance and the Radar checks the Path Prediction module for the predicted path of the vehicle. Then, the controller sends a message to the Longitudinal Control Controller to set the speed of the vehicle.

The next sequence diagram, Figure 4.7, shows what happens when the driver

presses on the brakes. When the brakes are pressed, the Car Status Module is notified of the braking and sends a message to the FSRACC Controller. The controller immediately disengages the FSRACC system, but the system remains active and turned on.

Figure 4.6: Sequence Diagram – Changing the set distance

Figure 4.7: Sequence Diagram- Driver manually brakes

Page 20: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

The next sequence (Figure 4.8) depicts when the driver decides to manually accelerate. When the driver presses the accelerator, the Car Status Module is notified and the FSRACC Controller disengages the system. However, when the driver releases the accelerator the Car Status Module is notified again and the FSRACC system will re-engage.

Figure 4.8: Sequence Diagram – Driver manually accelerates

Page 21: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

A state diagram is shown in Figure 4.9. The state diagram shows all the possible

states that the FSRACC system can be in and all the transitions necessary to get to those other states. The boxes represent different states and the arrows represent the transitions between states.

In our diagram, the three major states are off, activated, and engaged. In order to go from off to activated the driver must press the on button. Similarly, the driver must press the engage button to go from activated to engaged. While engaged the driver can change the set speed or the set following distance. Braking will disengage the system, but it will still be active. Pressing the off button will turn off the system regardless of the state that it is in. If the driver chooses to accelerate the system will temporarily disengage until the acceleration has stopped.

Figure 4.9: State Diagram

Page 22: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

5 Prototype The FSRACC prototype displays how a car will react under real driving scenarios

after the feature has been activated and engaged. The prototype allows for many settings to be adjusted. The user can adjust the speed of the subject car along with the following distance. A forward car can be added or removed at any time and the speed of the forward car can be adjusted as well. Using this prototype, the user can see how a car using the FSRACC system will respond under a number of different driving situations. The user can change any of the settings at any time to help simulate how the system works in real time.

5.1 How to Run Prototype To run the final version of the FSRACC prototype there are three web files

needed, along with four image files. The three web files are ‘prototype.html’ (the actual web page), ‘prototype.js’ (the scripting code), and ‘styles.css’ (the style sheet). The four images needed for the prototype to run successfully are ‘car.png’, ‘car2.png’, ‘Road2.png’, and ‘grass.png’.

The prototype is accessible though the web and works with the main web browsers available, including Google Chrome, Firefox, Safari, and Internet Explorer. No special libraries or plugins were used in the making of the prototype. No external downloads or installs are needed; users can run this prototype as long as they have the necessary files and one of the web browsers listed above. The URL for the FSRACC prototype is listed below:

http://www.cse.msu.edu/~cse435/Projects/F2014/Groups/FSRACC2/Prototype/pr

ototype.html The scene on the left starts out with a single car traveling at 60 mph and a default

following distance set at 1.5 seconds. Users can add or remove a forward vehicle at any time, but doing so will reset the speed of the subject car to 60 mph and the following distance to 1.5 seconds. A reset button is also available to reset the scene to a single car traveling at the original parameters.

5.2 Sample Scenarios

The prototype allows for users to add and remove a forward car and observe how the system will react. Without a forward car, however, the main functionality of the system is not on full display. The sample scenario will focus on how the system reacts when a car is present in front of the subject vehicle.

Page 23: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

In Figure 5.1 below, there is only one car present. The car is traveling 60 miles per hour (mph). This is the vehicle using the FSRACC system. The following distance is set to 1.5 seconds, the default distance when the system is engaged. A following distance of 1.5 seconds equates to 132 feet while traveling at 60 mph. This information is displayed to the right of the image.

The next two figures (Figure 5.2, Figure 5.3) introduce another car into the scene by

using the ‘Add Forward Vehicle’ button. After the button is pressed, the forward vehicle (in front) is inserted directly into the scene. When the forward vehicle is inserted it starts off going 60 mph. Since the vehicle is inserted into the scene, it is immediately closer than the following distance set by the subject vehicle. This causes the subject vehicle to slow down as shown in Figure 5.2. Once the subject vehicle slows down enough to achieve the correct following distance, it returns to the set speed of 60 mph, as shown in Figure 5.3.

Figure 5.1: Prototype – Starting Scene

Figure 5.3: Prototype – Car resumes set speed Figure 5.2: Prototype – Add a forward vehicle

Page 24: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

When the set speed of the subject vehicle is increased to 63 mph (shown in figure 5.4) nothing happens since the forward car is still going 60 mph and the subject car must maintain the following distance of 1.5 seconds.

The next figure, Figure 5.5, shows that the subject car has decreased the following distance to 1 second. Since the subject car is no longer constrained, it speeds up to the set speed of 63 mph. The car eventually reaches the new following distance of 1 second and then readjusts the speed to match the forward car, still driving with a speed of 60 mph (shown in Figure 5.6).

Figure 5.4: Prototype – Increase set speed

Figure 5.5: Prototype – Decrease following distance Figure 5.6: Prototype – Car resumes set speed

Page 25: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

Now the forward vehicle speeds up and increases its speed to 61 mph. Since the subject car’s speed is set to 63, the subject car speeds up to match the forward car while maintaining the following distance (shown in Figure 5.7). Then the forward car slows down to 57 mph. The subject car maintains the following distance by slowing the car down to 57 mph to match the speed of the forward car (shown in Figure 5.8).

The previous example is just one sequence of events that could happen while a car is

on the road using FSRACC. By using the prototype, many other scenarios can be created. Users of the prototype are free to add and remove a forward vehicle to the scenario. Users can also increase or decrease the speed of either vehicle to see how the situation changes and how the FSRACC will adapt.

Figure 5.7: Prototype – Forward vehicle speeds up Figure 5.8: Prototype – Forward vehicle slows down

Page 26: Software Requirements Specification (SRS) Full Speed …cse435/Projects/F2014/Groups/FSRACC2/w… · Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering

Template based on IEEE Std 830-1998 for SRS. Modifications (content and ordering of information) have been made by Betty H.C. Cheng, Michigan State University (chengb at chengb.cse.msu.edu)

6 References

[1] Intelligent Cruise Control. (n.d.). Retrieved November 15, 2014, from http://www.nissan-global.com/EN/TECHNOLOGY/OVERVIEW/icc.html

[2] Adaptive Cruise Control and Collision Warning with Brake Support. (2012, July 1). Retrieved November 15, 2014 from http://corporate.ford.com/doc/Adaptive_Cruise.pdf

[3] Katakis, M. (2013, September 13). Adaptive Cruise Control Announced For 2014 Chevrolet. Retrieved November 15, 2014 http://gmauthority.com/blog/2013/09/adaptive-cruise-control-announced-for-2014-chevrolet-impala

[4] Safety Electronics. (n.d.). Retrieved November 15, 2014, from http://www.delphi.com/manufacturers/auto/safety/active/adaptive-cruise-control/

[5] Full Speed Range Adaptive Cruise Control (Team 2). (2014, October 1). Retrieved November 15, 2014, from http://www.cse.msu.edu/~cse435/Projects/F2014/Groups/FSRACC2/web/

[6] 8 Car Safety Features That Could Save Your Life. (2014, January 30). Retrieved November 20, 2014, from https://www.usaa.com/inet/pages/advice-auto-safetyfeatures?akredirect=true

7 Point of Contact For further information regarding this document and project, please contact Prof. Betty H.C. Cheng at Michigan State University (chengb at cse.msu.edu). All materials in this document have been sanitized for proprietary data. The students and the instructor gratefully acknowledge the participation of our industrial collaborators.