1 Introduction

advertisement
Project Exodus
Algorithm System
System Requirements and Design Document (SRDD)
11/20/2006
Revision 1.0
Prepared for:
Ron Cytron
Prepared by:
Joe Izraelevitz
Karan Kanwar
Oren Melzer
Josh Mulé
Exodus Algorithm SRDD
2/12/2016
Table of Contents
1 Introduction ................................................................................................................. 4
1.1
Purpose of the System ............................................................................................. 4
1.2
Objective and Success Criteria of the Project ......................................................... 5
1.3
Definition of Terms and Acronyms ........................................................................ 5
1.4
References ............................................................................................................... 6
1.5
Document Tree........................................................................................................ 6
2 System OVERVIEW .................................................................................................. 7
3 System Requirements .................................................................................................. 8
4 System Architecture and Concept of Operations ...................................................... 10
4.1
Key Design Drivers............................................................................................... 10
4.2
Key Decisions ....................................................................................................... 10
4.3
System Architecture .............................................................................................. 11
5 System Analysis ........................................................................................................ 13
5.1
Use-Cases .............................................................................................................. 14
5.2
System-Level Scenarios ........................................................................................ 14
5.3
System-Level Static Structure............................................................................... 17
5.4
System-Level Behavior ......................................................................................... 17
6 System Operations and Interfaces ............................................................................. 17
7 System Testing & Validation .................................................................................... 18
8 System Design .......................................................................................................... 19
9 subsystem specifications ........................................................................................... 20
9.1
Subsystem X ......................................................................................................... 20
10 Future Capabilities .................................................................................................... 22
{Example Appendices} ...................................................................................................... 23
APPENDIX – COMMAND/SENSOR LISTS and other Interface tables ........................ 23
APPENDIX – Component table with power, size, etc. .................................................... 23
Appendix - Implementation information ......................................................................... 23
Appendix – Previous Versions......................................................................................... 23
Appendix – Trade and Feasibility studies ........................................................................ 23
Page i
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
List of Figures & Tables
Figure 1 Data-flow Architecture of Exodus Algorithm .................................................... 11
Page ii
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
Revision History
Novembner 20th – Developed initial version based on previous software SRDDs
Page iii
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
1
INTRODUCTION
Might provide some overview of why evacuations are necessary, and why automating the
evacuation process is a good and feasible thing to do. I would emphasize the saving of human
life and the value of advance planning.
The Exodus system is a computer program written to help city managers plan and execute
evacuations of a city. By using traffic laws, population distributions, and maps of cities, Exodus
will be able to give appropriate routes out of the city so as to avoid traffic congestion as best as
possible.
The Exodus algorithm, a subtask of the Exodus project, is being written to plan the routes, using
several different methods. This subtask, coupled with the simulator subtask, which verifies the
routes, complete the overall program.
This document gives a detailed description of the Exodus algorithm and its design.
1.1
Purpose of the System
Problem statement: blah blah blah
The Exodus system is being written to provide city managers with assistance in planning and
executing an evacuation. Historically, evacuations have been done by hand, which presents a
number of problems. The first is that the approximation of the problem you haven’t stated the
problem yet really, see above cannot be as detailed when done by hand, meaning the solution is
not optimal. The second is that the time to create and test evacuation routes is slow, resulting in
Page 4
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
hastily formed plans. By using software to emulate disasters, one can make better plans for
emergencies.
To solve this problem, we are developing a computer system to create evacuation routes. By
doing this, we hope to create a better solution to the current incomplete method of planning.
The Exodus system is being written for Dr. Ron Cytron, a professor of computer science and
Mayor of St. Louis. Ha! If nominated I would not run… etc. However, once written the product
will be marketed to other cities as a possible safety measure. The algorithm subsection is being
developed by Joe Izraelevitz, Karan Kanwar, Oren Melzer, and Josh Mulé.
1.2
Objective and Success Criteria of the Project
Current city evacuations are conducted by hand, which presents a number of problems, both in
terms of completeness and accuracy. The Exodus system will attempt to eliminate these issues
by using a model of traffic that is much more complete than a human can use, and using more
computations to analyze evacuation routes, in the hopes of creating a better evacuation plan.
Formally success is that you meet the requirements. But here you can say more about what you
hope to achieve with the system.
For success, the algorithm subsection will give complete evacuation instructions, which can be
tested in the simulator subsection. Hopefully, these evacuations will be shown to be better than
those historically conducted. Requirements force you to be able to compare what you do with
other evacuation strategies. This would let you for example compare with what has been done
by hand. If yours are better, that’s good. If yours are the same or worse, they’ve still verified
that the by-hand plan was a good one, and that’s success as well. Try to bring this out in this
section.
Page 5
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
The Exodus system is designed to solve two distinct scenarios. The first is to compile a long list
of possible emergency scenarios and take sufficient amounts of time to solve them in detail. The
second is to quickly respond (split infinitive) to an emergency by giving a moderately
complete plan that requires less time. This allows for complete solutions when possible, but also
has a safety net when an unexpected scenario takes place.
1.3
Definition of Terms and Acronyms
Algorithm – the software subsection that creates evacuation routes
Simulator – the software subsection that tests evacuation routes
Slow mode – an algorithm mode that takes unlimited time to plan routes
Fast mode – an algorithm mode that gives a solution quickly in response to a disaster
1.4
References
N/A Dijkstra for shortest path; min-cut/max-flow, networking algorithms; references for
disaster planning if you find some
1.5
Document Tree
Exodus Algorithm SRDD (this document)
Exodus Simulator SRDD
1.6
Deliverables
Exodus Algorithm SSRD
Exodus Algorithm subtask (isn’t subsection a strange word to use?)
Page 6
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
2
SYSTEM OVERVIEW
The algorithm subsection of Project Exodus implements routing and evacuation of an area’s
population immediately following a disaster. The algorithm is designed to process for weeks or
months in slow mode to build a database of evacuations based on various disasters and
population distributions. Slow mode calculates detailed and precise routes, accounting for traffic
and attempting to maximize throughput. When disaster strikes, the algorithm runs in fast mode
to quickly compute ( split inf) the best evacuation route based on the stored information. If no
suitable scenarios exist in the database, fast mode attempts to quickly generate (split inf) routing
that is likely to be less precise and less effective than slow mode.
The algorithm is coupled to a simulator that interacts directly with the user. The user provides
population and disaster information to the simulator, which in turn provides the algorithm with
simulation parameters and detailed population data. The algorithm then computes evacuation
routes for the population; finally, the simulator tests these routes to determine their efficacy and
displays pertinent information to the user. The algorithm itself is not responsible for assigning
populations or generating scenarios on which to run; this data must be provided by the simulator
or the end user.
Page 7
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
3
SYSTEM REQUIREMENTS
ID
Type
Description
Source
Verification
Method
Testing
Traced To
1
F
The System Shall… Evacuate a Mission
Specification
city
1.1
G
Mission
Specification
None
1
1.1.1
G
Derived
Specification
None
1.1
1.2
F
Customer
Specification
Design
1.2.1
F
The evacuation must occur in
minimum possible time, saving
as many lives as possible
The system will make optimal
use of roads based on their
given capacities to minimize
congestion and maximize flow.
System will make use of
TigerLine US Census data of
roads for route planning (see
Appendix A).
System input will conform to
description in Appendix B.
Derived
Specification
Design
1.3
F
The system must be able to
support two modes:
1) Best plan given a short
amount of time
2) Best plan given a long
amount of time
When running in mode 2, the
system will store data that can
be recalled later including the
routing plan used and
performance-related statistics.
The storage will allow
concurrent iterations of the
system to access it without
collision.
The system must interface with
a simulator to display and test
results of evacuation.
Customer
Specification
Testing
Derived
Specification
Design
1.3 This must
be derived
from some
fault tolerant
requirement
Derived
Specification
Testing
1.3.1
Derived
Specification
Testing
1
1.3.1
DF
1.3.1.1
F
1.4
F
1.5
F
Page 8
Customer
The system will not route any
Specification
individual in a circular path
(passing through the same point
twice).
1.2
Testing
Can you
instead
prove this?
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
ID
Type
Description
Source
1.6
F
Customer
Specification
1.6.1
F
1.6.2
F
1.7
F
The system must be
comparable to predetermined
scenarios
The evacuation plan for a given
scenario must be able to be
compared to a random path
evacuation
The evacuation plan for a given
scenario must be able to be
compared to a historical reallife scenario
System output and routing
instructions will conform to
Appendix C.
Page 9
Verification
Method
Testing
Traced To
Customer
Specification
Testing
1.6
Customer
Specification
Testing
1.6
Customer
Specification
Design
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
4
SYSTEM ARCHITECTURE AND CONCEPT OF OPERATIONS
The Exodus Algorithm was designed to provide instructions to evacuate a city during a
catastrophe.
4.1
Key Design Drivers
The main goal of the project was saving the most people in a given amount of time after a
disaster. This is why the primary design driver was speed of generating directions.
Computational resources and their cost were less of a factor in the design process. Another major
design driver was accuracy and optimality of the generated directions.
4.2
Key Decisions
One of the most important decisions made was to have two different algorithms. This was
designed to make the project achieve a balance between both goals. One algorithm, the ‘slow’
algorithm, takes longer to operate, but provides a more optimal solution. On the other hand, the
‘fast’ algorithm takes less time to operate but is not guaranteed to provide an optimal solution.
Page 10
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
4.3
System Architecture
The following diagram indicates the flow of data through the Exodus Algorithm.
Figure 1 Data-flow Architecture of Exodus Algorithm
The system user is responsible for providing a map, population distribution data and 2 radii – a
‘safe’ and an ‘exit’ radius. This data is parsed externally and then received by the simulator
socket. Once the simulator socket has completed processing the incoming data, an ExodusMap
object is created.
An ExodusMap is a class used to encapsulate all data necessary for the algorithm to function. It
consists of a list of nodes and people. Each node represents one direction of a single road on an
Page 11
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
actual map – it can be of three types, DANGER, SAFE or EXIT depending on where the node
lies with respect to the given radii. A node also has two sides – and a series of other nodes are
connected to each side. A bandwidth function yields the number of people that can occupy the
node at any instant. Lastly every node has a list of people who are currently occupying it.
A person is the most basic entity that can be given directions by the algorithm. A person is an
abstraction and could physically be interpreted as an vehicle or even a group of vehicles. A
person only contains a set of instructions. An instruction set is a list of road ids. By following
these instructions the person will safely evacuate from the city.
Not necessarily! But we will
try.
Once the ExodusMap has been created by the simulator socket it is then sent to the control
section of the program. This program decides whether to call the fast or slow algorithm, and
whether or not to write the results of the algorithm to the database.
After the algorithm itself is called, it accepts the ExodusMap object and changes the instructions
for each person to reflect the directions it thinks are best suited to the evacuation problem at
hand. The slow algorithm has been designed to be more efficient but more time-consuming (in
CS, efficiency usually means less time; maybe you mean “higher quality”?), best used for
planning escape routes during times of non-emergency. On the other hand, the fast algorithm was
designed to sacrifice efficiency (same problem) for speed, and to be able to run during a disaster
situation. The fast algorithm may retrieve previously computed solutions from the database in
order to expedite the delivery of instructions to the public.
Page 12
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
Another function of the control program is to decide how often to make simulator calls. The
algorithms are designed to provide instructions for a certain number of time quanta. The control
program decides how many time intervals will be used, and how often to send the data back to
the simulator for an update on peoples’ locations. It may decide to send a complete set of
instructions to the simulator and assume the best-case scenario, or decide to break an evacuation
into many smaller steps and see how each set of instructions performs before generating
subsequent sets.
The entire program was designed to be as flexible and modular as possible, to allow the user
greater freedom in making a tradeoff between computation time and optimality of instructions
generated.
5
SYSTEM ANALYSIS
{The analysis is used to expand our understanding of the system. Analysis should provide a
better understanding of how the system looks, what it contains (objects, data), what their
relationships are, and how it behaves. Analysis reflects the system requirements, architecture,
interfaces, etc..
A wide variety of methods may be used here. I have outlined three sections below that I
would recommend that you start with. Feel free to add additional models, sections as you find
useful.
Functional Analysis - Provides an in-depth look at the functionality of the system. This often
is used to help develop the system requirements. This can be done through a number of methods
including scenarios, view-point analysis, and use-case analysis. If you use use-case analysis
(recommended), provide one or more overall use-case diagrams. Then include a section
describing each use case. Each use-case should include the entry, exit, and sequence of
operations during the use-case. They also may be supplemented by scenarios, state, activity, or
sequence diagrams. Remember, this is a functional view of the system. Early in analysis,
activity diagrams can be particularly useful since normally, you haven’t yet defined objects.
Sequence diagrams are good for showing the flow of events between subsystems or other
identified. However, sequence diagrams can be difficult to use since they are based on objects.
Scenarios – Another tool is the use of scenarios. A scenario is a specific set of events and
responses, often of the more generalized use-cases or of the overall system. Sequence diagrams,
activity diagrams, or an English description of the events and responses are appropriate.
Page 13
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
System Behavior – Describing the overall system behavior can be very useful – particularly
where the system has clear modes of operation. Show the overall system behavior through a toplevel state or activity diagram. Then decompose the various states as useful. However, you may
find that beyond the top-level, it is easier to use the Object Structure and Behavior section below
to decompose states. Another key element can be system timing diagrams were time-based
operations are crucial
Objects - For example, you might have an object diagram that shows various data items and
their relationships. You might use an object diagram.
For each object,you might include:



Description and Purpose – Provide an external description of the element.
Characteristics – List the various object characteristics and their possible values
Object Behavior – Describe the object states that the external user would wish to know.
Feel free to use orthogonal states to represent different aspects of the component.
Data Model - Another approach would be to model system data and their relationships – a
good starting point for data intensive systems like databases.
There are often system-level issues that need to be analysized, studies, and structured to aid
in the designed of the system and its components. Examples include:




5.1
Reliability and FDIR (Fault Detection, Isolation, and Recover)
Usability
Maintainability
Data Models}
Use-Cases
Unreadable Input Data
Actor: User
Entry: User starts program with incorrect input data
Events:
Simulator reads data and sends it to algorithm
Algorithm detects incorrect data
Algorithm prints error message
Program exits
Incomplete Input Data
Actor: User
Page 14
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
Entry: User starts program with incomplete input data
Events:
Simulator reads data and sends it to algorithm
Algorithm detects incomplete data
Algorithm prints error message
Program exits
Store Map in Database
Actor: Algorithm
Entry: Algorithm solves a map
Events:
Algorithm stores map and solution in database
Test Retrieve Map from Database
Actor: Tester
Entry: Tester requests a previously solved solution
Events:
Algorithm retrieves map from database
Algorithm prints map information
Demo of Socket Communication
Actor: Tester
Entry: Tester demonstrates communication
Events:
Algorithm begins execution
Page 15
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
Simulator begins execution
Simulator sends a message over the socket
Algorithm prints the message
Solving using Fast Mode
Actor: User
Entry: User enters map, population, and fast mode
Events:
Algorithm begins execution
Simulator begins execution
Simulator sends map over socket
Algorithm solves using fast mode
Algorithm stores map in database
Algorithm returns instructions to user
Solving using Slow Mode
Actor: User
Entry: User enters map, population, and slow mode
Events:
Algorithm begins execution
Simulator begins execution
Simulator sends map over socket
Algorithm solves using slow mode
Algorithm stores map in database
Algorithm returns instructions to user
Page 16
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
5.2
System-Level Scenarios
{Add section if applicable.}
5.3
System-Level Static Structure
{Add section if applicable.}
5.4
System-Level Behavior
{Add section if applicable.}
6
SYSTEM OPERATIONS AND INTERFACES
{This section identifies all external interfaces including user interfaces. Detailed
descriptions of these interfaces may be placed in the appendix or separate Interface Control
Documents (ICD)s but should be referenced here.
Include user interface descriptions. Each should be tied to appropriate use-cases and actors.
Descriptions should include screen mockups, navigation paths, and user events (mouse
selections, key presses, menu items, etc.). On many systems, this is a very substantial section.
One approach is to break this section out into a separate “user’s manual”.
Interfaces should include user interfaces, physical interface, and logical (software) interfaces
(including software object or package interfaces of they can be used by external entities.
Describe each external interface. Every external interface must be described in detail. For
each external interface, add a subsection that includes:



Purpose of the Interface
Conditions under which it is used. This can be described in English or can be described
using state diagrams. State diagrams are particularly effective with event driven
interfaces.
The data items to be passed in and out. Include a data item description including data
type, range, and other relevant information for each data item.
For each synchronous calling interface, identify the object that will be called by the external
software or the object in the external software that will be called by your system/subsystem.
Include a sequence diagram or other relevant information to clearly show how your software
works with the external software.
For each non-synchronous calling interface include the following. You may also include any
relevant diagrams to illustrate the interface or communications method.



Communications Method – Identify how the data is passed such as shared memory, data
pool, or via hardware interface.
Hardware Used - If the interface runs across a hardware interface, indicate the
hardware interface and hardware protocals involved (for example, the interface A runs
between the distributed workstations via the internal ethernet network running TCP/IP
protocal).
Data Format - Describe the format of data passed across the interface including data
structures. For example, the data is passed in 32-Byte records made up of the following
Page 17
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016


7
data elements or the data is passed Data_Packet format where Data_Packet is defined
here or in the data dictionary.
Data Frequency – For data that is periodic, describe the data frequency or data rate.
For data that is non-periodic, describe the conditions under which data is passed or
received.
Other – Include any other information relevant to understanding the interface and to
designing software to communicate using the interface. Don’t be afraid to include
additional information.}
SYSTEM TESTING & VALIDATION
{Outline the steps needed to prove that this system will work in space.
Describe how we will “prove” that this system meets requirements. Potential proofs include:

Test (vibration, thermal vacuum, functional test, etc)

Analysis (mathematical model, hand calculations, simulation)

Heritage (the system is the same as one that has already proven to work in space)

Analogy (the system is similar but not identical to a flight-proven system, but there
are enough similarities that we are convinced it will work)

Inspection (we can convince ourselves by looking at the component/design that it will
meet the requirement – keep in mind that this is a rare proof)
Describe any tests performed on this system. System-level tests will be handled in the
systems document, although they should be listed here (so that future teams are not surprised
when their component gets tested!). Include all test results either here or reference an external
document.


Test Plan – The overall plan for testing the system
Test Procedures – The specific test procedures to be used
 Test Cases – Individual test cases including test setup, input, and expected output
 Test Results – For each test case run, include the test results}
Page 18
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
8
SYSTEM DESIGN
{This section provides details on the design that was initially described in the architecture
section.
First, provide a table of system design decisions. These, in effect, provide additional
requirements for subsystems. The IDs should start at 1000. Otherwise, they look like
requirements, Example Table:
ID
Type
Description
1000
F
N
P
/
G
D
1000.1
F
1000.1.1
F
The System Shall… Then
notes can be added in nonbold. You can show
important or high-level
requirements in shaded
cells
Mode A – Bandit uses
images from the camera to
navigate
Navigation will interpret
the current location from
the images and compare
that with the target location
and determine which
thrusters need to be fired
Values/
Ranges
Source
Mission
Specification
Verification
Method
Design
Traced To
Mission
Specification
Mission
Specification
Provide a system/subsystem breakdown that identifies each of the subsystem (each
subsystem, in turn will have a section in the subsystems section). This can be done in a table,
diagram, or indented list.
Then include a component table that summarizes key information about the subsystems.
Examples might include a component table that include power, mass, volume, etc. for the entire
spacecraft broken down by subsystems (and further by components if desired).
Finally, provide a description of each subsystem to subsystem interface. In some cases the
interfaces themselves are regarded as either separate subsystems or part of a specific subsystem.
Remember, there are various levels involved in interfaces – physical, electrical, thermal,
logical.}
Page 19
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
9
9.1
SUBSYSTEM SPECIFICATIONS
Subsystem X
Each subsystem should be described with the same type of information as included in the
system-level descriptions. These include subsystem requirements, architecture, interfaces,
design, and components. Subsystems, in turn, are broken into smaller components. These can
create a hierarchy of sections.
Summarize each subsystem (component) with:
Description/Purpose: Description/purpose
Parent: Name of parent subsystem or component
Class: Primarily Hardware or Software
Subcomponents: List the subcomponents
Interfaces: Identify all interfaces. This could be a simple statement or a complex description of
interfaces, interface standards, etc. Complex interface descriptions should be placed in the
details section, a separate component section, or in an appendix.
Explain what component X does and which of the major requirements it meets. List the
component requirements. This could be a simple statement or a complex table of requirements
similar to the system requirements. Use another functional block diagram or other analysis
diagrams if helpful, or at least reference the main diagram. Give precise numbers of its
performance characteristics.
Explain how component X is designed & built, or where it was purchased and why you
picked that vendor. For some components, the design decisions should be specified.
If this is a software component:
The design model describes the top-level or architectural design. This model should provide
a bridge for the reader to understand the code. The model should include a description of the
software structure. This could include objects, classes, modules, packages, files, etc. The
behavior of each subcomponent should be described as well as their interaction.
If the
subcomponent is sufficiently large or complex enough, include the description at the subsystem
component level. If it is small and is primarily described in code, include it as a subsection to
this component’s section.
Object/package/deployment diagrams are used to create a static structure. This structure
may or may not be utilized during design. Object diagrams are used to identify data and
understand relationships between these things. Each object in the diagrams should identify
whether it is an instance or a class and what states and/or attributes the object has. Unless
needed to understand the system, internal interfaces can be captured just through relationships.
Sequence, activity, state, and collaboration diagrams are used to define behavior. State
diagrams are used to define object behavior. Events on one state diagram can be used to trigger
events on other state diagrams.
Page 20
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
The decision to include this information is complex. The basic issue is how much
information do you need before working at a code level and/or how much information does a
reader need to understand the code.





Description and Purpose – Provide an external description of the component, i.e. what
does the user of this component need to know. Also, describe the characteristics of the
component including:
 Dynamic, Static, or Evolving
 A dynamic component can change it’s own state without another component
calling it. Typically, this means that the component is it’s own process, task, or
thread.
 A static component cannot change it’s own state without another component
calling it. This will be the bulk of components.
 An evolving component is usually an object that controls an external device. The
component itself does not change state on its own but the device it controls may
change its state on its own. For example a printer object that manages the
interface to a physical printer. The printer object does not change its own state,
therefor does not have to be a process, task, or thread, but the printer itself could
change states.
 Temporary, Permanent, or Persistent
 A temporary object is created, deleted, or both at some point during program
execution. For all temporary objects, describe what triggers creation and/or
deletion.
 A permanent object is created at the start of program execution and remains until
program termination.
 A persistent object exists between program executions (i.e. a file or a database
object).
 Other relavent characteristics such as public vs private or shared vs non-shared
objects.
Overall Subcomponent States (Best via state diagram) – Describe the component states
that the external user would wish to know. Of particular importance are states that
control the order of procedure calls. Feel free to use orthogonal states to represent
different aspects of the component.
Overall Subcomponent Processing (shown via activity, sequence or collaboration
diagram) – Describe the component processing that an external user would need to
know.
Hardware Component – If the subsystem has more than one computer or processor,
indicate which computer(s) or processor(s) that the component runs on.
List of all component procedure, methods or entry points:
 For each, include the purpose, all pre and post conditions (what component state the
component needs to be in before this procedure, method, or entry point can be called
and what the resulting component state is), and what data is passed. For all passed
data, include the data type (the data or data type may be referenced in the data
dictionary section).
 Example (assumes compass_direction and azmuth_direction are defined in the data
dictionary)
Page 21
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
Set_Location
The set_location function sets the target location for the radar.
Pre-Conditions
Radar Object State: On
Post-Conditions
Radar Object State: Targeted
I/O
Direction : compas_direction; - Magnetic compass direction.
Angle: angle_direction; - Angle from the horizon.
If this is a hardware component:

Mechanical Modifications
Discuss all mechanical modifications made to prepare component X for flight. If this is a
purchased part, describe all changes to the packaging, structure or major shifting of component
locations & functions. If this is a designed part, describe the major elements in building it (parts
lists, machine operations needed, etc.).

Electrical Modifications
Discuss all electrical modifications made to prepare component X for flight. If this is a
purchased part, explain all of the electronic changes (capacitor swapping, trace cutting, resoldering, wire harness changes, etc.). If this is a designed part, give the circuit layout, parts list
and where/how the board was fabbed & stuffed.

Software Modifications
Discuss all modifications to existing software in order to get component X flight-ready. If
these changes involve significant new software work, use section , instead.

Testing Plan
Describe any tests performed on this component. System-level tests will be handled in the
systems document, although they should be listed here (so that future teams are not surprised
when their component gets tested!).
Include all test results (either here or reference an external document).
10 FUTURE CAPABILITIES
List any future capabilities which, while not required in the current system, should be
considered during design.
Page 22
Project Exodus Team
Exodus Algorithm SRDD
2/12/2016
{EXAMPLE APPENDICES}
Appendices can be used to capture any information that is either: (a) too big to place in the
main text or does not seem to fit. Feel free to add appendices as needed}.
APPENDIX – COMMAND/SENSOR LISTS AND OTHER INTERFACE TABLES
APPENDIX – COMPONENT TABLE WITH POWER, SIZE, ETC.
APPENDIX - IMPLEMENTATION INFORMATION
Provide any information needed to understand the code. This might include things like:



Directory Structures
Code/document listings
Compilation/assembly instructions
APPENDIX – PREVIOUS VERSIONS
This section is used to capture information about previous versions of the system(subsystem).
You should provide the following for the immediately previous version:




Status of previous version (what was implemented, etc.)
Issues with the previous version
Analysis Model of the previous version
 Functional Model
 Structural Model
 Behavior Model
Architectural Design Model of the previous version (Analysis and Design Models may be
merged).
APPENDIX – TRADE AND FEASIBILITY STUDIES
Describe all trade and feasibility studies. Include all information relavent to making
requirement and design decisions. IT IS CRITICAL THAT YOU INCLUDE INFORMATION
NOT JUST ABOUT WHY YOU CHOSE ONE WAY, BUT ALSO INFORMATION ABOUT WHY
YOU DID NOT CHOOSE ANOTHER WAY. Otherwise, subsequent developers may keep
revisiting the same ideas over and over again.
Trade and feasibility study information may be captured in the appropriate section above or
here in sub-appendix sections.
Page 23
Project Exodus Team
Download