software requirements specification (srs) project …maliklau/srsv2.pdfsoftware requirements...

29
Software Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik, Ibraheem Saleh, Yash Patel Customer: Mr. Eric Winder, Ford Motor Company Instructor: Dr. James Daly 1 Introduction This document contains the detailed specification and requirements essential to design the Scalable Cruise Control by Ford Motor Company. This section contains the purpose of this document, description of the application domain, and definitions for any abbreviations used throughout this document. The software requirements of the system are described in detail using textual descriptions as well as visual models including use case diagrams, class diagrams, and state diagrams. Finally, a complete prototype of the system is introduced with detailed instructions regarding its usage and sample scenarios representative of the system. References and contact information can be found at the last section of this document. 1.1 Purpose The purpose of the Software Requirements Specification is to define and specify in detail the requirements needed to create the Scalable Cruise Control software for the Ford Motor Company. The document also helps to complete the agreement between the developer and customer so that the specified requirements are being implemented to the customer’s satisfaction. The intended audience are developers and management that will use this document to validate that the system is being built according to the client’s requirements. 1.2 Scope The purpose of the Scalable Cruise Control (SCC) system is to allow drivers to maintain speed or distance from a forward vehicle safely. This system is implemented as an embedded system for automobiles. Users will benefit from the aversion of accidents otherwise caused by hackers, driver error or other compromised vehicle system. The main goal of the system would be to decrease the number of accidents caused by cruise control. Subsystems of the system would be simple cruise control, following distance 1

Upload: others

Post on 21-May-2020

29 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Software Requirements Specification (SRS) Project SCC - Group 1

Authors: Andy Ashton, Ian Guswiler, Lauren Malik, Ibraheem Saleh, Yash Patel Customer: Mr. Eric Winder, Ford Motor Company Instructor: Dr. James Daly

1 Introduction This document contains the detailed specification and requirements essential to design the Scalable Cruise Control by Ford Motor Company. This section contains the purpose of this document, description of the application domain, and definitions for any abbreviations used throughout this document. The software requirements of the system are described in detail using textual descriptions as well as visual models including use case diagrams, class diagrams, and state diagrams. Finally, a complete prototype of the system is introduced with detailed instructions regarding its usage and sample scenarios representative of the system. References and contact information can be found at the last section of this document.

1.1 Purpose The purpose of the Software Requirements Specification is to define and specify in detail the requirements needed to create the Scalable Cruise Control software for the Ford Motor Company. The document also helps to complete the agreement between the developer and customer so that the specified requirements are being implemented to the customer’s satisfaction. The intended audience are developers and management that will use this document to validate that the system is being built according to the client’s requirements.

1.2 Scope The purpose of the Scalable Cruise Control (SCC) system is to allow drivers to maintain speed or distance from a forward vehicle safely. This system is implemented as an embedded system for automobiles. Users will benefit from the aversion of accidents otherwise caused by hackers, driver error or other compromised vehicle system. The main goal of the system would be to decrease the number of accidents caused by cruise control. Subsystems of the system would be simple cruise control, following distance

1

Page 2: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

management, and automatic emergency braking. All would be implemented in the system as a final product. The SCC software system will provide a user with an automated response to possible safety threats while driving. It will do this through the prioritization of commands input by the user such as a set cruise speed, as well as following distance to other vehicles, and the use of the automatic emergency brake. The system will be extensible such that it will take in to account additional future features that can make use of the same base functionality, curve speed assist, etc. The SCC will not ensure the safety of all occupants in case an accident does occur, it is only a software system added on to a vehicle to prevent such accidents from occurring.

1.3 Definitions, Acronyms, and Abbreviations

Term Description

Scalable Cruise Control (SCC)

The Scalable Cruise Control system being designed and implemented.

Simple Cruise (SC)

Subsystem of the SCC system that is enabled by the driver and allows a cruise speed to be set and maintained. The set speed must be greater than 25mph.

Throttle Control System (TCS)

External system in the vehicle that receives throttle commands from multiple other systems and adjusts the vehicle throttle according to the commands and their priority.

Lead Vehicle (LV) The vehicle directly in front of the user’s vehicle. This is the vehicle that will be tracked by the camera and radar systems to maintain a safe following distance.

Rear Vehicle (RV) The vehicle directly behind the user’s vehicle.

Automatic Emergency Brake (AEB)

The safety system that functions with or without the SCC in an active state. Inputs come from vehicle speed and camera/radar object tracking to alert the vehicle to brake if an object ahead is too close to the vehicle.

MPH Miles per hour.

Following Distance Management System (FDM)

The system that tracks Lead and Rear vehicle data to maintain a set distance from the user’s vehicle. This setting is provided by the user via a simple button controls system inside the vehicle with presets such as small or large to set the distance. The vehicle also maintains a maximum possible safe speed by coordinating with the Simple Cruise system.

2

Page 3: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

UI User Interface.

Table 1.3.1 Definitions, Acronyms and Abbreviations

1.4 Organization The remaining document will describe more about the system itself starting from overall description of the system. Section 2 will describe the system inducing product perspective, product functions and user characteristics. In this section, it will give the overall idea of the system. In section 3, it will describe the specific requirements for the SCC. In this it will include all the requirements that are necessary to develop the system. Section 4 will give detailed information about the system design using UML diagrams. In this section, user scenarios will be used to help describe the system design in detail. The following section will be used to describe the prototype SCC system. In this section, there will be detailed information of how the system will look like and what user needs to do to test the system. In the last section, it shows all the references as well as the website for team contact.

2 Overall Description This section covers the definition of the SCC system including context for its creation and a complete description of the system. It provides a sufficient background to understand the specific requirements described in section 3. The major functions of the SCC are provided along with user characteristics, project constraints, assumptions, dependencies, and requirements outside the scope of the development project.

2.1 Product Perspective The context for the SCC is to provide a vehicle with a safe automated response to external objects while cruise control is enabled and avoid possible accidents while cruise control is enabled or not. The SCC will operate as part of an embedded vehicle system. It will receive information about current speed and detected objects from the vehicle sensors and remote systems. It will then use this information along with user settings for set speed and follow distance to provide throttle and brake commands as appropriate to match the user settings. The following block diagram (Figure 2.1) shows how the SCC system fits within the embedded vehicle system. The SCC system controller is connected to the Vehicle Controller so it can receive commands from the UI and send alerts to the driver. The SCC System Controller will receive data inputs from the Sensor System, send brake commands to the Brake Control System,

3

Page 4: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

and send throttle commands to the Throttle Control System. The subsystems of the SCC will use the data received by the SCC system controller to calculate the required throttle and brake commands. These commands will then be sent to the SCC System Controller for prioritization and propagation to the Throttle or Brake Control Systems.

Figure 2.1 Block Diagram

The SCC system itself is made up of three subsystems that fit the following way. The Simple Cruise subsystem is always present and can be enabled or disabled by the user. The Following Distance Management subsystem is an optional system that extends the functionality of the simple cruise system. Following Distance Management is enabled and disabled along with the simple cruise system. The Automatic Emergency Brake subsystem is another optional system that operates independently of the Simple Cruise and Following Distance Management systems. The Simple Cruise feature is constrained to a speed greater than 25 mph. The Following Distance Management feature can be enabled along with the Simple Cruise feature but cannot be enabled without it. The AEB system cannot be disabled and is enabled regardless if Simple Cruise or Following Distance Management features are enabled.

2.2 Product Functions Simple Cruise

● Driver enables the feature and sets a cruise speed to be maintained. Set speed must be greater than 25 mph.

● Vehicle maintains the set speed through throttle control and vehicle speed sensor feedback.

● Driver may exceed the set speed through direct throttle inputs. ● Driver may suspend the feature through a button press or by depressing the brake pedal.

4

Page 5: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

● Drive may resume the previously set speed by a button press, and the vehicle must accelerate or decelerate at a safe rate to the set speed.

● Driver may increase/decrease the set speed while active, through button presses. ● Drive may turn the feature off, which clears the previous set speed.

Following Distance Management ● Driver may set a following distance from a leading vehicle through button controls.

Distance is represented to the driver in 4 relative steps (i.e. small up to large) without units, and is maintained internally by the cruise controller as a measurement of minimum time to intercept, based on the position and relative speed of the leading vehicle.

● Vehicle maintains maximum possible safe speed through throttle and brake control. Maximum safe speed is calculated with real-time inputs from vehicle speed and lead vehicle tracking information from camera and radar, within the constraints of set speed, minimum following distance/time, and driver throttle input.

● Alerts the driver in case of emergency. Automatic Emergency Brake

● Applies maximum braking pressure to minimize stopping distance, if the driver cannot react in time or with sufficient force.

The following high-level goal diagram (Figure 2.2.1) shows a user’s goals when interacting with the SCC system. Those goals are broken down into use cases based on the features described above and the specific requirements described in section 3.

Figure 2.2.1 Goal Diagram

5

Page 6: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

A driver interacting with the SCC system would like to drive their vehicle safely, but with minimal inputs on their part. To achieve this goal the user has three sub-goals: maintain speed, maintain following distance, and retain ultimate control of the vehicle. The first two sub-goals, maintain speed and maintain following distance, are the Simple Cruise and Following Distance Management functions described above. The last sub-goal, retain ultimate control of the vehicle, is to allow the driver to react freely as they deem necessary without the system getting in the way.

2.3 User Characteristics

The user of this system will be a driver of a wide range of vehicles. Users can range greatly in experience from those just learning to drive to professional drivers. Many users may be inexperienced with complex software systems. Users will not be visually impaired and should be physically able to actuate buttons. Users of this system will consider their use of the system a secondary activity, where the primary activity is driving, and will not give all of their attention to the use of the system.

2.4 Constraints

The Simple Cruise and Following Distance Management functions will only operate above 25 mph. The AEB system will always be operational. In order to ensure the safety of the driver, the system needs to properly prioritize throttle commands between the AEB system, user input, and the cruise system. As well, the system will need to continue to function in the event of wireless network disruption. The system must not allow remote throttle and brake commands.

Development of the system must follow all automotive regulatory policies. The development of the system must also produce a product that is externally testable, easily debuggable, and extensible for future product additions.

2.5 Assumptions and Dependencies This document assumes that the SCC system will have access to vehicle speed and object detection sensors. It also assumes that the embedded vehicle system will provide throttle and brake control systems that the SCC system can provide commands to. The environment in which the SCC system will operate is assumed to be in ideal condition with limited precipitation and well-paved roads. The SCC system depends upon the vehicle system controller to provide inputs from the user.

6

Page 7: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

2.6 Apportioning of Requirements

The current scope of requirements includes only the SCC system interface and three modular subsystems: Simple Cruise, Following Distance Management, and Automatic Emergency Brake. Future extensions to the project scope may include the capabilities of: curve speed assist, DSRC-based platooning, DSRC- based traffic signal awareness (SPaT), and pedestrian detection. Each of these functionalities would be extended from the original SCC system, as it would be used as a base. These extensions would provide even a larger range of safety measures for the driver and others on the road.

3 Specific Requirements The following are some of the major specific requirements of the SCC system. The requirements listed reflect the behavior of the system.

1. The SCC system will maintain and monitor the vehicles speed, set by the user and optionally adjust the speed based on a user set following distance.

2. There will be a default following distance set as soon as the user enables/activates the system.

2.1. The factory default will be set to a following distance of time length 3.0 seconds.

2.2. The user will be able to change the set default following distance for the SCC system.

3. The following distance in the SCC system will be computed in seconds behind the position of the Lead Vehicle.

4. The driver will have access to buttons to enable/activate the SCC system and control the set cruise speed while the SCC system is active.

5. The driver will have access to buttons to set and change the following distance when the SCC system is active.

6. The driver will have access to buttons to suspend and resume the SCC system. 6.1. The system will stop maintaining the set cruise speed and follow distance

when suspended. 6.2. The system will maintain the previously set cruise speed and follow

distance when resumed. 7. If the Lead Vehicle decreases speed while FDM is active, the SCC system will reduce the

user vehicle’s speed to maintain the set following distance unless otherwise changed by the user.

7

Page 8: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

8. If the Lead Vehicle increases speed while FDM is active, the SCC system will increase the user vehicle’s speed if the set cruise speed permits it.

8.1. If the Lead Vehicle continues to speed up and passes the set cruise speed by the user, the user’s vehicle will keep its speed at the set speed.

9. The SCC system will maintain the following distance without exceeding the cruise 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 reduce speed and come to a halt if the Lead Vehicle does so, as well.

11. The system’s automatic emergency braking system will work whenever the system senses a Lead Vehicle getting too close to the user vehicle at a set speed range.

12. The system will work alongside and not interfere with other systems present in the vehicle.

13. The driver has the ability to override or disable the SCC system at any time. If the driver pressed the brake in the vehicle, the SCC system will disable and begin to slow down the vehicle unless the user presses the gas pedal. The driver can press the gas pedal to increase the speed while the SCC system is active, but if the speed is not set again, once the driver stops pressing the gas pedal the vehicle will slow down to the speed that was originally set by the user.

14. Any component of the system that becomes dysfunctional or fails will alert the user that the system should be checked and will not continue working until checked and repaired.

14.1. If the user attempts to activate the system while is is damaged, it will alert the driver on the dashboard that the system is not functioning.

15. The user will be notified that the system is activated/deactivated through the UI. 15.1. The set speed and set distance will also be displayed in the UI while SC or

FDM are active.

4 Modeling Requirements This section of the document further represents how the system will behave in the real world. Different visual diagrams will show different views of the system and putting all the things together will give users a clear visual of the system. This section also talks about how the system will react on different stages in some of the given scenarios. The following use case diagram (Figure 4.1) describes the user’s interactions with the system as well as additional external systems that are required for the operation of the SCC system. The driver is the primary actor and will initiate all functions related to cruise control and following distance management. The throttle control system and brake control system are secondary actors that receive speed up or slow down commands from the SCC system. The driver is able to enable

8

Page 9: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

and disable the system, set a cruise speed, increase or decrease the set speed, suspend and resume cruise, set follow distance, and override the set speed with the throttle.

Figure 4.1 Use Case Diagram

The following are extended text descriptions of the use cases seen above in Figure 4.1.

Use Case: Throttle Override Actors: Driver (initiator) Type: Primary and essential Description: The driver manually increases the throttle to override the set cruise speed.

The system will continuously send speed up to the throttle control system while the user is still increasing the throttle.

Cross Ref.: Requirement 13 Use-Cases: Speed Up Use Case: Resume Cruise Actors: Driver (initiator) Type: Primary and essential

9

Page 10: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Description: If the system has been suspended, the driver resumes cruise at the same set speed and follow distance as before the system was suspended. The system will initialize maintaining the set speed.

Cross Ref.: Requirement 6 Use-Cases: Maintain Set Speed Use Case: Increase/Decrease Set Speed Actors: Driver (initiator) Type: Primary and essential Description: The driver adjusts the set cruise speed up or down. The system adjusts

Maintain Set Speed to use the new cruise speed. Cross Ref.: Requirement 4 Use-Cases: Maintain Set Speed Use Case: Enable Actors: Driver (initiator) Type: Primary and essential Description: The driver turns on the SCC system. Cross Ref.: Requirement 4 Use Case: Disable Actors: Driver (initiator) Type: Primary and essential Description: The driver turns off the SCC system. Cross Ref.: Requirement 4 Use Case: Set Speed Actors: Driver (initiator) Type: Primary and essential Description: The driver sets the cruise speed to the vehicles current speed. The system

initializes or adjusts Maintain Set Speed for the new set cruise speed. Cross Ref.: Requirement 4 Use-Cases: Maintain Set Speed Use Case: Suspend Cruise Actors: Driver (initiator) Type: Primary and essential Description: The driver suspends the cruise functionality. The system will no longer

maintain set speed or follow distance.

10

Page 11: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Cross Ref.: Requirement 6 Use Case: Set Follow Distance Actors: Driver (initiator) Type: Primary and essential Description: The driver selects one of four follow distance settings. The system

initializes or adjusts Maintain Set Distance for the new set distance. Cross Ref.: Requirement 5 Use-Cases: Maintain Set Distance Use Case: Maintain Set Speed Actors: System (initiator) Type: Secondary and essential Description: System sends Speed Up commands to the throttle control system when the

current vehicle speed is lower than the set cruise speed. The system sends Slow Down commands when the current vehicle speed is higher than the set cruise speed. If there is a set follow distance, the system will Maintain Set Distance before maintaining set speed.

Cross Ref.: Requirement 1 Use-Cases: Speed Up, Slow Down, Maintain Set Distance Use Case: Maintain Set Distance Actors: System (initiator) Type: Secondary and essential Description: System sends Slow Down commands when the current follow distance is

less than the set follow distance. The system sends Speed Up commands when the current follow distance is greater than the set follow distance and the current speed is less than the set cruise speed.

Cross Ref.: Requirements 1, 7, 8, 9 Use-Cases: Speed Up, Slow Down Use Case: Speed Up Actors: System (initiator), Throttle Control System Type: Secondary and essential Description: The system sends commands to the Throttle Control System to speed up a

certain amount. Cross Ref.: Requirements 1, 12 Use Case: Slow Down

11

Page 12: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Actors: System (initiator), Throttle Control System, Brake Control System Type: Secondary and essential Description: The system sends commands to the Throttle Control System to lower the

throttle and to the Brake Control System to brake as needed in order to slow down a certain amount.

Cross Ref.: Requirements 1, 12

The next diagram, Figure 4.2, is a high-level class diagram also known as UML class diagram. This diagram gives a detailed description of the classes that are going to be used in the system. This will give a developer an idea of how to design the software and what classes to use. Additionally, it also gives an overview of the classes and function structure of the system. From this, it is very easy to see how many functions are going to be used throughout the process of development of the SCC system.

Figure 4.2 Class Diagram

The following are data dictionaries which give textual descriptions of each class seen above in Figure 4.2.

Element Name Description

12

Page 13: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

UserInterface Represents the interface the driver will use to communicate with the SCC system.

Attributes

CruiseControlOn:bool Will be true if SC is engaged and false otherwise.

Operations

setSimpleCruise(speed): void Sets SC speed. Called when the user has engaged SC.

setFollowingDistance():void Sets a following distance to a lead vehicle. Called when the user has SC engaged and wants to engage FDM.

getCurrentSpeed():void Retrieve the current speed of the vehicle.

suspendSimpleCruise():void Cancels SC. Called by button press or by depressing the brake pedal.

resumeSimpleCruise (): void Resumes SC if canceled.

increaseSimpleCruise(amount): void

Called when user selects to increase SC speed.

decreaseSimpleCruise(amount): void

Called when user selects to decrease SC speed.

clearSimpleCruise():void Clears SC speed and disables the feature.

Relationships 1 to 1 aggregation with the vehicle class. 1 to 1 aggregation with the SC class. 1 to 1 aggregation with the FDM class. 1 to 1 aggregation with the AEB class.

13

Page 14: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

UML Extensions

Element Name Description

SimpleCruise Represents the cruise control system of the SCC. Maintains a user set speed > 25 mph.

Attributes

maintainSpeed:float The driver set speed to be maintained.

Operations

controlThrottle(amount):void Apply amount of pressure to throttle, increasing vehicle speed.

controlBrakePedal(amount): void

Apply amount of pressure to brakes, decreasing vehicle speed.

Relationships 1 to 1 aggregation with the UserInterface class. 1 to 1 association with the Throttle class. 1 to 1 association with the BrakePedal class.

UML Extensions

Element Name Description

14

Page 15: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

FollowingDistanceManagement Sets a distance to be maintained from a lead vehicle.

Attributes

minimumTimeToIntercept:float Represents the amount of time before collision with the lead vehicle.

Operations

setMinimumTimetoIntercept (): void

Sets the minimumTimeToIntercept attribute.

getMinimumTimetoIntercept (): float

Gets the minimumTimeToIntercept attribute.

alertDriver(): void Alerts the driver of an upcoming collision.

Relationships 1 to 1 aggregation with the UserInterface class. 1 to 1 association with the Sensor class.

UML Extensions

Element Name Description

Sensor Used to track the lead vehicle speed and distance.

15

Page 16: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Attributes

leadVehicleSpeed:float Speed of the lead vehicle.

leadVehicleDistance:float Distance from the lead vehicle.

Operations

trackObject(): void Determines the lead vehicle speed and distance.

getLeadVehicleSpeed() : float Returns the leadVehicleSpeed attribute.

getLeadVehicleDistance() : float

Returns the leadVehicleDistance attribute.

Relationships Many to 1 aggregation with Vehicle. 1 to 1 association with AEB. 1 to 1 association with FDM.

UML Extensions

Element Name Description

AutomaticEmergencyBrake Uses current vehicle speed and the sensor object tracking to determine if maximum braking pressure needs to be applied.

Attributes

16

Page 17: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Operations

applyBrakes(): void Applies maximum braking pressure.

Relationships 1 to 1 aggregation with UserInterface. 1 to 1 association with Sensor. 1 to 1 association with BrakePedal.

UML Extensions

Element Name Description

Vehicle Represents the vehicle that the SCC is embedded in.

Attributes

currentSpeed:float The current speed of the vehicle.

Operations

setCurrentSpeed (speed): void Assigns the currentSpeed attribute.

getCurrentSpeed (): float Returns the currentSpeed attribute.

Relationships 1 to 1 aggregation with UserInterface. 1 to 1 aggregation with Sensor. 1 to 1 aggregation with Throttle. 1 to 1 aggregation with BrakePedal.

UML Extensions

17

Page 18: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Element Name Description

Throttle Represents the vehicle throttle, used to accelerate and decelerate the vehicle.

Attributes

Operations

setSpeed(speed): void Sets the current speed of the vehicle based on the amount of pressure applied by SC.

Relationships 1 to 1 association with SimpleCruise.

UML Extensions

Element Name Description

BrakePedal Represents the vehicles brakes.

Attributes

Operations

suspendSimpleCruise(): void Cancels the SC feature.

setSpeed(): void Assigns current vehicle speed.

Relationships 1 to 1 association with AutomaticEmergencyBrake. 1 to 1 association with SimpleCruise. 1 to 1 association with Vehicle.

UML Extensions

18

Page 19: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

The following sequence diagram (Figure 4.3) represents the system scenario described here:

A driver uses the UserInterface to turn on the SimpleCruise function. The driver sets a cruise speed. The SimpleCruise object maintains the set speed with speed up and slow down commands to the Throttle or BrakePedal. The driver adjusts the set speed up 1 mph then suspends the SimpleCruise. The driver resumes the SimpleCruise. The driver later turns off the SimpleCruise function.

Figure 4.3 Sequence Diagram 1

The following sequence diagram (Figure 4.4) represents the system scenario described here:

A driver is driving with SimpleCruise and FollowingDistanceManagement enabled. While driving behind another vehicle the driver changes the set follow distance. The FollowingDistanceManagement object detects forward distance using the Sensor object and maintains set distance with speed up and slow down

19

Page 20: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

commands to the Throttle or BrakePedal. The driver manually presses the car throttle to perform a throttle override and speeds up the car.

Figure 4.4 Sequence Diagram 2

The State Diagram (Figure 4.5) for the SCC system that uses AEB, involves the main states of Off, Activated/Suspended, and SC Enabled. The intermediate states of AEB Engaged, Throttle Accelerated, and Brake Pedal are methods of changing the vehicle’s acceleration. Once the vehicle achieves a speed the driver wishes to maintain the speed can be set, moving the state back to the SC Enabled state. The AEB and cameras are constantly activated to monitor the surroundings/follow distance, in case AEB needs to be fully enabled and activate the breaks for safety reasons. If the button enable button is pressed again after being activated, the cruise control system is turned off.

20

Page 21: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Figure 4.5 State Diagram

5 Prototype The prototype provides a user interface panel for the operation of the SCC systems and a separate display panel that shows the user vehicle driving on a road. The user can interact with the UI panel to perform SCC functions as well as introduce other vehicles or objects to the scene in the display panel. The prototype uses information in the scene to simulate SCC functions for Simple Cruise, Following Distance Management, and Automatic Emergency Braking. Speed readings and system status will be displayed in the UI panel.

21

Page 22: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

5.1 How to Run Prototype The prototype is a browser-based javascript implementation that requires no additional plugins. It can be run by simply accessing the prototype page on the development website. The prototype is able to run on most modern web browsers. The following is a direct link to the prototype: http://www.cse.msu.edu/~maliklau/prototype.html

5.2 Sample Scenarios This section contains sample scenarios that can be used as a reference when operating the prototype. The first scenario shows the SC and AEB functions of the prototype and the second scenario shows the interactions of the SC and FDM functions. Scenario 1 A system with Simple Cruise and AEB that has a set cruise speed of 40 mph, encounters a stopped vehicle in the same lane. The driver doesn’t have time to react, so the system engages the AEB to stop the car. The following image (Figure 5.2.1) shows the initial prototype setup for the system described previously.

22

Page 23: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Figure 5.2.1 Scenario 1

To create a system with Simple Cruise and AEB, the “On” button is pressed under “Cruise Control” and the “Enable” button is pressed under “Automatic Emergency Brake”. The set cruise speed is entered as “40” in the set speed input box and the “Set” button is pressed to set the system cruise speed to 40 mph. Set cruise speed can be adjusted up or down in 1 mph increments using the “+” and “ -” buttons. The next image (Figure 5.2.2) shows the settings for the stopped vehicle. These settings are opened by pressing the “Setup Forward Car” button under “Forward Car Settings” seen in Figure 5.2.1.

23

Page 24: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Figure 5.2.2 Settings for speed

The stopped vehicle is setup as a forward car. The speed is entered as “0” in the “Forward Car Speed” input box. The starting distance from the primary vehicle is entered as “80” in the “Forward Car Distance” input box. The starting distance can be adjusted up and down in 10 ft increments by pressing the “ ˅” and “^” buttons. Pressing the “Start” button will add the forward car to the simulation. The next image (Figure 5.2.3) shows the prototype immediately after adding the stopped vehicle.

24

Page 25: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Figure 5.2.3 Prototype after adding car

The AEB system detects that there is a vehicle within the emergency stopping range based on distance and relative speeds. The AEB system tells the vehicle to apply full braking power. The next image (Figure 5.2.4) shows the prototype after stopping was completed.

25

Page 26: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Figure 5.2.4 Prototype after stopping

The primary vehicle comes to a complete stop without hitting the forward vehicle. The AEB system is still active and will remain active until the obstruction is removed. Scenario 2 A system with Simple Cruise and FDM that has a set cruise speed of 30 mph and a set follow distance of increment 2, encounters a vehicle moving at 25 mph in the same lane. The system slows down the vehicle to maintain the set follow distance. The following image (Figure 5.2.5) shows the initial prototype setup for the system described previously.

26

Page 27: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Figure 5.2.5 Scenario 2

To create a system with Simple Cruise and FDM, the “On” button is pressed under “Cruise Control” and then the “On” button is pressed under “Following Distance Management”. The set cruise speed of 30 mph is entered in the “Set speed” input box and the “Set” button is pressed. The 2nd following distance increment is set by pressing the “2” button under “Following Distance Management”. The next image (Figure 5.2.6) shows the settings for the second vehicle.

27

Page 28: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Figure 5.2.6 Setting speed to 25 mph

The speed of 25 mph for the second car is entered into the “Forward Car Speed” input box. An arbitrary start distance of 80 ft is entered in the “Forward Car Distance” input box. Pressing the “Start” button adds the second vehicle. The next image (Figure 5.2.7) shows the prototype after the primary vehicle has encountered the second vehicle.

28

Page 29: Software Requirements Specification (SRS) Project …maliklau/srsV2.pdfSoftware Requirements Specification (SRS) Project SCC - Group 1 Authors: Andy Ashton, Ian Guswiler, Lauren Malik,

Figure 5.2.7 Prototype after the primary vehicle encountered the second vehicle

The system detects that there is another vehicle within its follow distance time range for the current speed it is travelling. The system slows the primary vehicle down to match the speed of the second vehicle. The system will increase vehicle speed back to the set cruise speed of 30 mph after the second car is removed or speeds up.

6 References Eric Winder, Scalable Cruise Control Customer Description, http://cse.msu.edu/~cse435/Projects/F2018/ProjectDescriptions/scc.pdf Project Website: http://www.cse.msu.edu/~maliklau/index.html

29