Software Requirements Specification for Binary Star System Simulator
Xinlu Yan
Table of Contents
An outline of all sections included in this SRS is recorded here for easy reference.
- Table of Contents
- Reference Material
- Introduction
- General System Description
- Specific System Description
- Requirements
- Likely Changes
- Unlikely Changes
- Traceability Matrices and Graphs
- Values of Auxiliary Constants
- References
Reference Material
This section records information for easy reference.
Table of Units
The unit system used throughout is SI (Système International d’Unités). In addition to the basic units, several derived units are also used. For each unit, the Table of Units lists the symbol, a description, and the SI name.
| Symbol | Description | SI Name |
|---|---|---|
| \({\text{J}}\) | energy | joule |
| \({\text{kg}}\) | mass | kilogram |
| \({\text{m}}\) | length | metre |
| \({\text{N}}\) | force | newton |
| \({\text{s}}\) | time | second |
Table of Units
Table of Symbols
The symbols used in this document are summarized in the Table of Symbols along with their units. Throughout the document, symbols in bold will represent vectors, and scalars otherwise. The symbols are listed in alphabetical order. For vector quantities, the units shown are for each component of the vector.
| Symbol | Description | Units |
|---|---|---|
| \({a_{\text{x}1}}\) | X-acceleration of the first star | \(\frac{\text{m}}{\text{s}^{2}}\) |
| \({a_{\text{x}2}}\) | X-acceleration of the second star | \(\frac{\text{m}}{\text{s}^{2}}\) |
| \({a_{\text{y}1}}\) | Y-acceleration of the first star | \(\frac{\text{m}}{\text{s}^{2}}\) |
| \({a_{\text{y}2}}\) | Y-acceleration of the second star | \(\frac{\text{m}}{\text{s}^{2}}\) |
| \(\boldsymbol{a}\text{(}t\text{)}\) | Acceleration | \(\frac{\text{m}}{\text{s}^{2}}\) |
| \(E\) | Energy | \({\text{J}}\) |
| \(\boldsymbol{F}\) | Force | \({\text{N}}\) |
| \({\boldsymbol{F}_{\boldsymbol{g}}}\) | Force of gravity | \({\text{N}}\) |
| \(G\) | Gravitational constant | \(\frac{\text{m}^{3}}{\text{kg}\text{s}^{2}}\) |
| \(i\) | Index | – |
| \(m\) | Mass | \({\text{kg}}\) |
| \({m_{1}}\) | Mass of the first star | \({\text{kg}}\) |
| \({m_{2}}\) | Mass of the second star | \({\text{kg}}\) |
| \({m_{\text{max}}}\) | Maximum stellar mass | \({\text{kg}}\) |
| \({m_{\text{min}}}\) | Minimum stellar mass | \({\text{kg}}\) |
| \(n\) | Number of bodies | – |
| \(\boldsymbol{p}\text{(}t\text{)}\) | Position | \({\text{m}}\) |
| \({r_{12}}\) | Separation distance | \({\text{m}}\) |
| \({r_{\text{max}}}\) | Maximum initial distance from origin | \({\text{m}}\) |
| \(t\) | Time | \({\text{s}}\) |
| \({t_{\text{final}}}\) | Final time | \({\text{s}}\) |
| \({t_{\text{max}}}\) | Maximum simulation time | \({\text{s}}\) |
| \({v_{\text{max}}}\) | Maximum initial speed | \(\frac{\text{m}}{\text{s}}\) |
| \({v_{\text{x}1}}\) | X-velocity of the first star | \(\frac{\text{m}}{\text{s}}\) |
| \({{v_{\text{x}1}}^{0}}\) | Initial x-velocity of the first star | \(\frac{\text{m}}{\text{s}}\) |
| \({v_{\text{x}2}}\) | X-velocity of the second star | \(\frac{\text{m}}{\text{s}}\) |
| \({{v_{\text{x}2}}^{0}}\) | Initial x-velocity of the second star | \(\frac{\text{m}}{\text{s}}\) |
| \({v_{\text{y}1}}\) | Y-velocity of the first star | \(\frac{\text{m}}{\text{s}}\) |
| \({{v_{\text{y}1}}^{0}}\) | Initial y-velocity of the first star | \(\frac{\text{m}}{\text{s}}\) |
| \({v_{\text{y}2}}\) | Y-velocity of the second star | \(\frac{\text{m}}{\text{s}}\) |
| \({{v_{\text{y}2}}^{0}}\) | Initial y-velocity of the second star | \(\frac{\text{m}}{\text{s}}\) |
| \(\boldsymbol{v}\text{(}t\text{)}\) | Velocity | \(\frac{\text{m}}{\text{s}}\) |
| \({x_{1}}\) | X-position of the first star | \({\text{m}}\) |
| \({{x_{1}}^{0}}\) | Initial x-position of the first star | \({\text{m}}\) |
| \({x_{2}}\) | X-position of the second star | \({\text{m}}\) |
| \({{x_{2}}^{0}}\) | Initial x-position of the second star | \({\text{m}}\) |
| \({y_{1}}\) | Y-position of the first star | \({\text{m}}\) |
| \({{y_{1}}^{0}}\) | Initial y-position of the first star | \({\text{m}}\) |
| \({y_{2}}\) | Y-position of the second star | \({\text{m}}\) |
| \({{y_{2}}^{0}}\) | Initial y-position of the second star | \({\text{m}}\) |
Table of Symbols
Abbreviations and Acronyms
| Abbreviation | Full Form |
|---|---|
| A | Assumption |
| DD | Data Definition |
| GD | General Definition |
| GS | Goal Statement |
| IM | Instance Model |
| LC | Likely Change |
| ODE | Ordinary Differential Equation |
| PS | Physical System Description |
| R | Requirement |
| RefBy | Referenced by |
| Refname | Reference Name |
| SRS | Software Requirements Specification |
| TM | Theoretical Model |
| UC | Unlikely Change |
| Uncert. | Typical Uncertainty |
Abbreviations and Acronyms
Introduction
Binary star systems are common in astronomy. Two stars orbit because of gravity. This software simulates how a binary star system evolves over time.
The following section provides an overview of the software requirements specification (SRS) for Binary Star System Simulator. This section explains the purpose of this document, the scope of the requirements, the characteristics of the intended reader, and the organization of the document.
Purpose of Document
The primary purpose of this document is to record the requirements of BSS. Goals, assumptions, theoretical models, definitions, and other model derivation information are specified, allowing the reader to fully understand and verify the purpose and scientific basis of BSS. With the exception of system constraints, this SRS will remain abstract, describing what problem is being solved, but not how to solve it.
This document will be used as a starting point for subsequent development phases, including writing the design specification and the software verification and validation plan. The design document will show how the requirements are to be realized, including decisions on the numerical algorithms and programming environment. The verification and validation plan will show the steps that will be used to increase confidence in the software documentation and the implementation. Although the SRS fits in a series of documents that follow the so-called waterfall model, the actual development process is not constrained in any way. Even when the waterfall model is not followed, as Parnas and Clements point out parnasClements1986, the most logical way to present the documentation is still to “fake” a rational design process.
Scope of Requirements
The scope of the requirements includes two-dimensional, rigid-body mechanics where the only force is gravitational attraction.
Characteristics of Intended Reader
Reviewers of this documentation should have an understanding of undergraduate level 1 physics (Newtonian mechanics), undergraduate level 1 calculus, and ordinary differential equations. The users of BSS can have a lower level of expertise, as explained in Sec:User Characteristics.
Organization of Document
The organization of this document follows the template for an SRS for scientific computing software proposed by koothoor2013, smithLai2005, smithEtAl2007, and smithKoothoor2016. The presentation follows the standard pattern of presenting goals, theories, definitions, and assumptions. For readers that would like a more bottom up approach, they can start reading the instance models and trace back to find any additional information they require.
The goal statements are refined to the theoretical models and the theoretical models to the instance models.
General System Description
This section provides general information about the system. It identifies the interfaces between the system and its environment, describes the user characteristics, and lists the system constraints.
System Context
Fig:sysCtxDiag shows the system context. A circle represents an entity external to the software, the user in this case. A rectangle represents the software system itself (BSS). Arrows are used to show the data flow between the system and its environment.

Figure: System Context
The interaction between the product and the user is through an application programming interface. The responsibilities of the user and the system are as follows:
- User Responsibilities
- Provide the physical parameters of the binary star system, including stellar masses, initial positions, and initial velocities, ensuring no errors in the data entry.
- Ensure that consistent units are used for inputs.
- Ensure required software assumptions are appropriate for any particular problem input to the software.
- BSS Responsibilities
- Detect data type mismatch, such as a string of characters input instead of a floating point number.
- Determine if the inputs satisfy the required physical and software constraints.
- Calculate the required outputs.
User Characteristics
The end user of BSS should have an understanding of undergraduate level 1 physics (Newtonian mechanics), undergraduate level 1 calculus and ordinary differential equations.
System Constraints
There are no system constraints.
Specific System Description
This section first presents the problem description, which gives a high-level view of the problem to be solved. This is followed by the solution characteristics specification, which presents the assumptions, theories, and definitions that are used.
Problem Description
A system is needed to simulate the motion of a binary star system under mutual gravitational interaction.
Terminology and Definitions
This subsection provides a list of terms that are used in the subsequent sections and their meaning, with the purpose of reducing ambiguity and making it easier to correctly understand the requirements.
- Binary star system: A system consisting of two stars that orbit around their common center of mass due to gravitational interaction.
- Star: A massive astronomical object that is treated as a point mass in this context.
- Gravitational interaction: The mutual attractive force between two masses as described by Newtonian gravity.
- Newton’s law of universal gravitation: The law stating that every mass attracts every other mass with a force proportional to the product of their masses and inversely proportional to the square of the distance between them.
- Initial conditions: The positions and velocities of the stars at the start of the simulation.
- Trajectory: The path traced by a star in space as a function of time.
- Center of mass: The point representing the average position of the mass distribution of the system.
- Inertial reference frame: A reference frame in which Newton’s laws of motion are valid without the introduction of fictitious forces.
- Simulation time span: The duration over which the evolution of the system is computed.
Physical System Description
The physical system of BSS, as shown in Fig:bssPhysSys, includes the following elements:
PS1: The first star with mass \({m_{1}}\).
PS2: The second star with mass \({m_{2}}\).
PS3: The gravitational interaction between the two stars.

Figure: The physical system
Goal Statements
Given the masses (\({m_{1}}\) and \({m_{2}}\)), the initial positions (\({{x_{1}}^{0}}\), \({{y_{1}}^{0}}\), \({{x_{2}}^{0}}\), \({{y_{2}}^{0}}\)), the initial velocities (\({{v_{\text{x}1}}^{0}}\), \({{v_{\text{y}1}}^{0}}\), \({{v_{\text{x}2}}^{0}}\), \({{v_{\text{y}2}}^{0}}\)), and the simulation time (\({t_{\text{final}}}\)), the goal statement is:
positionsOverTime: Determine the positions of both stars as functions of time over the specified simulation interval.
Solution Characteristics Specification
The instance models that govern BSS are presented in the Instance Model Section. The information to understand the meaning of the instance models and their derivation is also presented, so that the instance models can be verified.
Assumptions
This section simplifies the original problem and helps in developing the theoretical models by filling in the missing information for the physical system. The assumptions refine the scope by providing more detail.
twoBody: The system consists of exactly two stars with masses \({m_{1}}\) and \({m_{2}}\) . Perturbations from third-body gravity are ignored. (RefBy: IM:accelY2, IM:accelY1, IM:accelX2, IM:accelX1, and LC:Derived-Output-Quantities.)
isolated: Non-gravitational forces (e.g., drag, thrust, radiation pressure) are neglected; the only interaction modeled is mutual gravity between the two stars (from A:newtonianGravity). (RefBy: IM:accelY2, IM:accelY1, IM:accelX2, IM:accelX1, and LC:Derived-Output-Quantities.)
newtonianGravity: The gravitational interaction between the stars is modeled using Newton’s law of universal gravitation, with the gravitational constant \(G\) provided in Values of Auxiliary Constants. (RefBy: TM:UniversalGravLaw, IM:accelY2, IM:accelY1, IM:accelX2, IM:accelX1, UC:Newtonian-Gravity-Model, A:nonzeroSeparation, LC:Derived-Output-Quantities, and A:isolated.)
nonRelativistic: The motion is modeled using classical (non-relativistic) mechanics; relativistic effects are neglected. (RefBy: IM:accelY2, IM:accelY1, IM:accelX2, IM:accelX1, and LC:Derived-Output-Quantities.)
pointMass: Each star (\({m_{1}}\), \({m_{2}}\)) is modeled as a point mass, and effects due to stellar size, deformation, or rotation are neglected. (RefBy: IM:accelY2, IM:accelY1, IM:accelX2, IM:accelX1, A:nonzeroSeparation, and LC:Derived-Output-Quantities.)
constantMass: The masses \({m_{1}}\) and \({m_{2}}\) remain constant over time. (RefBy: IM:accelY2, IM:accelY1, IM:accelX2, IM:accelX1, and LC:Derived-Output-Quantities.)
inertialFrame: The simulation is performed in an inertial reference frame. (RefBy: TM:centerOfMass, IM:accelY2, IM:accelY1, IM:accelX2, IM:accelX1, and LC:Derived-Output-Quantities.)
planar: The motion of the binary star system is confined to a two-dimensional plane. (RefBy: TM:relPosAndSep, IM:accelY2, IM:accelY1, IM:accelX2, IM:accelX1, and LC:Derived-Output-Quantities.)
nonzeroSeparation: Collisions are out of scope: the separation distance \({r_{12}}\) is positive for all simulated times, so the gravitational force model remains well-defined (from A:newtonianGravity and A:pointMass). (RefBy: TM:UniversalGravLaw, IM:accelY2, IM:accelY1, IM:accelX2, IM:accelX1, and LC:Derived-Output-Quantities.)
Theoretical Models
This section focuses on the general equations and laws that BSS is based on.
| Refname | TM:centerOfMass |
|---|---|
| Label | Center-of-mass constraint |
| Equation | \[\displaystyle\sum_{i=1}^{n}{m_{i}\,{\boldsymbol{p}\text{(}t\text{)}}_{i}}=0\]\[{m_{1}}\,{{x_{1}}^{0}}+{m_{2}}\,{{x_{2}}^{0}}=0\]\[{m_{1}}\,{{y_{1}}^{0}}+{m_{2}}\,{{y_{2}}^{0}}=0\] |
| Description |
|
| Notes |
|
| Source | – |
| RefBy | IM:accelY2, IM:accelY1, IM:accelX2, and IM:accelX1 |
| Refname | TM:NewtonSecLawMot |
|---|---|
| Label | Newton’s second law of motion |
| Equation | \[\boldsymbol{F}=m\,\boldsymbol{a}\text{(}t\text{)}\] |
| Description |
|
| Notes |
|
| Source | hibbeler2004 |
| RefBy | IM:accelY2, IM:accelY1, IM:accelX2, and IM:accelX1 |
| Refname | TM:velocity |
|---|---|
| Label | Velocity |
| Equation | \[\boldsymbol{v}\text{(}t\text{)}=\frac{\,d\boldsymbol{p}\text{(}t\text{)}}{\,dt}\] |
| Description |
|
| Source | velocityWiki |
| RefBy | IM:accelY2, IM:accelY1, IM:accelX2, and IM:accelX1 |
| Refname | TM:acceleration |
|---|---|
| Label | Acceleration |
| Equation | \[\boldsymbol{a}\text{(}t\text{)}=\frac{\,d\boldsymbol{v}\text{(}t\text{)}}{\,dt}\] |
| Description |
|
| Source | accelerationWiki |
| RefBy | IM:accelY2, IM:accelY1, IM:accelX2, and IM:accelX1 |
| Refname | TM:UniversalGravLaw |
|---|---|
| Label | Newton’s law of universal gravitation |
| Equation | \[{\boldsymbol{F}_{\boldsymbol{g}}}=G\,\frac{{m_{1}}\,{m_{2}}}{{r_{12}}^{2}}\] |
| Description |
|
| Notes |
|
| Source | – |
| RefBy | IM:accelY2, IM:accelY1, IM:accelX2, and IM:accelX1 |
| Refname | TM:relPosAndSep |
|---|---|
| Label | Relative position and separation |
| Equation | \[{r_{12}}=\sqrt{\left({x_{1}}-{x_{2}}\right)^{2}+\left({y_{1}}-{y_{2}}\right)^{2}}\] |
| Description |
|
| Notes |
|
| Source | – |
| RefBy | TM:UniversalGravLaw, IM:accelY2, IM:accelY1, IM:accelX2, and IM:accelX1 |
General Definitions
There are no general definitions.
Data Definitions
There are no data definitions.
Instance Models
This section transforms the problem defined in the problem description into one which is expressed in mathematical terms. It uses concrete symbols defined in the data definitions to replace the abstract symbols in the models identified in theoretical models and general definitions.
| Refname | IM:accelX1 |
|---|---|
| Label | X-acceleration of the first star |
| Input | \({m_{1}}\), \({m_{2}}\), \({x_{1}}\), \({y_{1}}\), \({x_{2}}\), \({y_{2}}\) |
| Output | \({a_{\text{x}1}}\) |
| Input Constraints | \[{m_{1}}\gt{}0\]\[{m_{2}}\gt{}0\] |
| Output Constraints | |
| Equation | \[{a_{\text{x}1}}\left({x_{1}},{y_{1}},{x_{2}},{y_{2}}\right)=\frac{-G\,{m_{2}}\,\left({x_{1}}-{x_{2}}\right)}{{r_{12}}^{3}}\] |
| Description |
|
| Notes |
|
| Source | – |
| RefBy | FR:Output-Values and FR:Calculate-Positions |
| Refname | IM:accelY1 |
|---|---|
| Label | Y-acceleration of the first star |
| Input | \({m_{1}}\), \({m_{2}}\), \({x_{1}}\), \({y_{1}}\), \({x_{2}}\), \({y_{2}}\) |
| Output | \({a_{\text{y}1}}\) |
| Input Constraints | \[{m_{1}}\gt{}0\]\[{m_{2}}\gt{}0\] |
| Output Constraints | |
| Equation | \[{a_{\text{y}1}}\left({x_{1}},{y_{1}},{x_{2}},{y_{2}}\right)=\frac{-G\,{m_{2}}\,\left({y_{1}}-{y_{2}}\right)}{{r_{12}}^{3}}\] |
| Description |
|
| Notes |
|
| Source | – |
| RefBy | FR:Output-Values and FR:Calculate-Positions |
| Refname | IM:accelX2 |
|---|---|
| Label | X-acceleration of the second star |
| Input | \({m_{1}}\), \({m_{2}}\), \({x_{1}}\), \({y_{1}}\), \({x_{2}}\), \({y_{2}}\) |
| Output | \({a_{\text{x}2}}\) |
| Input Constraints | \[{m_{1}}\gt{}0\]\[{m_{2}}\gt{}0\] |
| Output Constraints | |
| Equation | \[{a_{\text{x}2}}\left({x_{1}},{y_{1}},{x_{2}},{y_{2}}\right)=\frac{G\,{m_{1}}\,\left({x_{1}}-{x_{2}}\right)}{{r_{12}}^{3}}\] |
| Description |
|
| Notes |
|
| Source | – |
| RefBy | FR:Output-Values and FR:Calculate-Positions |
| Refname | IM:accelY2 |
|---|---|
| Label | Y-acceleration of the second star |
| Input | \({m_{1}}\), \({m_{2}}\), \({x_{1}}\), \({y_{1}}\), \({x_{2}}\), \({y_{2}}\) |
| Output | \({a_{\text{y}2}}\) |
| Input Constraints | \[{m_{1}}\gt{}0\]\[{m_{2}}\gt{}0\] |
| Output Constraints | |
| Equation | \[{a_{\text{y}2}}\left({x_{1}},{y_{1}},{x_{2}},{y_{2}}\right)=\frac{G\,{m_{1}}\,\left({y_{1}}-{y_{2}}\right)}{{r_{12}}^{3}}\] |
| Description |
|
| Notes |
|
| Source | – |
| RefBy | FR:Output-Values and FR:Calculate-Positions |
Data Constraints
The Input Data Constraints Table shows the data constraints on the input variables. The column for physical constraints gives the physical limitations on the range of values that can be taken by the variable. The uncertainty column provides an estimate of the confidence with which the physical quantities can be measured. This information would be part of the input if one were performing an uncertainty quantification exercise. The constraints are conservative to give the user of the model the flexibility to experiment with unusual situations. The column of typical values is intended to provide a feel for a common scenario.
| Var | Physical Constraints | Software Constraints | Typical Value | Rationale | Uncert. |
|---|---|---|---|---|---|
| \({m_{1}}\) | \({m_{1}}\gt{}0\) | \({m_{\text{min}}}\leq{}{m_{1}}\leq{}{m_{\text{max}}}\) | \(2.0\cdot{}10^{30}\) \({\text{kg}}\) | approximately 1 solar mass | 5.0\(\%\) |
| \({m_{2}}\) | \({m_{2}}\gt{}0\) | \({m_{\text{min}}}\leq{}{m_{2}}\leq{}{m_{\text{max}}}\) | \(1.6\cdot{}10^{30}\) \({\text{kg}}\) | approximately 0.8 solar masses | 5.0\(\%\) |
| \({t_{\text{final}}}\) | \({t_{\text{final}}}\geq{}0\) | \({t_{\text{final}}}\leq{}{t_{\text{max}}}\) | \(100.0\cdot{}10^{3}\) \({\text{s}}\) | short integration window | 0.0\(\%\) |
| \({{v_{\text{x}1}}^{0}}\) | – | \(-{v_{\text{max}}}\leq{}{{v_{\text{x}1}}^{0}}\leq{}{v_{\text{max}}}\) | \(2.0\cdot{}10^{3}\) \(\frac{\text{m}}{\text{s}}\) | non-zero x-velocity produces a general elliptical orbit | 5.0\(\%\) |
| \({{v_{\text{x}2}}^{0}}\) | – | \(-{v_{\text{max}}}\leq{}{{v_{\text{x}2}}^{0}}\leq{}{v_{\text{max}}}\) | \(-2.0\cdot{}10^{3}\) \(\frac{\text{m}}{\text{s}}\) | derived from COM constraint | 5.0\(\%\) |
| \({{v_{\text{y}1}}^{0}}\) | – | \(-{v_{\text{max}}}\leq{}{{v_{\text{y}1}}^{0}}\leq{}{v_{\text{max}}}\) | \(9.0\cdot{}10^{3}\) \(\frac{\text{m}}{\text{s}}\) | yields a bound orbit for the typical masses and separation | 5.0\(\%\) |
| \({{v_{\text{y}2}}^{0}}\) | – | \(-{v_{\text{max}}}\leq{}{{v_{\text{y}2}}^{0}}\leq{}{v_{\text{max}}}\) | \(-11.0\cdot{}10^{3}\) \(\frac{\text{m}}{\text{s}}\) | derived from COM constraint | 5.0\(\%\) |
| \({{x_{1}}^{0}}\) | – | \(-{r_{\text{max}}}\leq{}{{x_{1}}^{0}}\leq{}{r_{\text{max}}}\) | \(75.0\cdot{}10^{9}\) \({\text{m}}\) | approximately 0.5 AU; satisfies COM constraint with star 2 | 1.0\(\%\) |
| \({{x_{2}}^{0}}\) | – | \(-{r_{\text{max}}}\leq{}{{x_{2}}^{0}}\leq{}{r_{\text{max}}}\) | \(-90.0\cdot{}10^{9}\) \({\text{m}}\) | derived from COM constraint | 1.0\(\%\) |
| \({{y_{1}}^{0}}\) | – | \(-{r_{\text{max}}}\leq{}{{y_{1}}^{0}}\leq{}{r_{\text{max}}}\) | \(0.0\) \({\text{m}}\) | stars initially on the x-axis | 1.0\(\%\) |
| \({{y_{2}}^{0}}\) | – | \(-{r_{\text{max}}}\leq{}{{y_{2}}^{0}}\leq{}{r_{\text{max}}}\) | \(0.0\) \({\text{m}}\) | stars initially on the x-axis | 1.0\(\%\) |
Input Data Constraints
Properties of a Correct Solution
The total mechanical energy of the system must remain constant over time (up to numerical tolerance), since the system is isolated (A:isolated) and masses are constant (A:constantMass).
\[E=\frac{{m_{1}}\,\left({v_{\text{x}1}}^{2}+{v_{\text{y}1}}^{2}\right)}{2}+\frac{{m_{2}}\,\left({v_{\text{x}2}}^{2}+{v_{\text{y}2}}^{2}\right)}{2}-\frac{G\,{m_{1}}\,{m_{2}}}{{r_{12}}}\]
Requirements
This section provides the functional requirements, the tasks and behaviours that the software is expected to complete, and the non-functional requirements, the qualities that the software is expected to exhibit.
Functional Requirements
This section provides the functional requirements, the tasks and behaviours that the software is expected to complete.
Input-Values: Input the values from Tab:ReqInputs.
Verify-Input-Values: Check the entered input values to ensure that they do not exceed the data constraints. If any of the input values are out of bounds, an error message is displayed and the computation stops.
Calculate-Positions: Calculate the positions of both stars over the simulation interval by solving IM:accelX1, IM:accelY1, IM:accelX2 and IM:accelY2.
Verify-Output: Verify that the computed results satisfy the conservation of total mechanical energy within a specified numerical tolerance.
Output-Values: Output \({x_{1}}\), \({y_{1}}\), \({x_{2}}\) and \({y_{2}}\) from IM:accelX1, IM:accelY1, IM:accelX2 and IM:accelY2.
| Symbol | Description | Units |
|---|---|---|
| \({m_{1}}\) | Mass of the first star | \({\text{kg}}\) |
| \({m_{2}}\) | Mass of the second star | \({\text{kg}}\) |
| \({t_{\text{final}}}\) | Final time | \({\text{s}}\) |
| \({{v_{\text{x}1}}^{0}}\) | Initial x-velocity of the first star | \(\frac{\text{m}}{\text{s}}\) |
| \({{v_{\text{x}2}}^{0}}\) | Initial x-velocity of the second star | \(\frac{\text{m}}{\text{s}}\) |
| \({{v_{\text{y}1}}^{0}}\) | Initial y-velocity of the first star | \(\frac{\text{m}}{\text{s}}\) |
| \({{v_{\text{y}2}}^{0}}\) | Initial y-velocity of the second star | \(\frac{\text{m}}{\text{s}}\) |
| \({{x_{1}}^{0}}\) | Initial x-position of the first star | \({\text{m}}\) |
| \({{x_{2}}^{0}}\) | Initial x-position of the second star | \({\text{m}}\) |
| \({{y_{1}}^{0}}\) | Initial y-position of the first star | \({\text{m}}\) |
| \({{y_{2}}^{0}}\) | Initial y-position of the second star | \({\text{m}}\) |
Required Inputs
Non-Functional Requirements
This section provides the non-functional requirements, the qualities that the software is expected to exhibit.
Correctness: The outputs of the code have the properties of a correct solution.
Portability: The code shall be portable to multiple environments, particularly Linux, Mac OSX, and Windows.
Maintainability: If a likely change is made to the finished software, it will take at most 10\(\%\) of the original development time, assuming the same development resources are available.
Usability: The outputs should be easy to inspect and reuse. The software should export results in a consistent format so that users can post-process and visualize trajectories with external tools.
Likely Changes
This section lists the likely changes (LC) to be made to the software.
Derived-Output-Quantities: Additional derived outputs, such as total energy or angular momentum, may be added to support validation and analysis of the simulation results. This change could affect results derived under all current assumptions: A:twoBody, A:isolated, A:newtonianGravity, A:nonRelativistic, A:pointMass, A:constantMass, A:inertialFrame, A:planar and A:nonzeroSeparation.
Unlikely Changes
This section lists the unlikely changes (UC) to be made to the software.
Newtonian-Gravity-Model: The gravitational interaction model (A:newtonianGravity) is unlikely to change, since BSS is specifically designed for Newtonian two-body dynamics.
Traceability Matrices and Graphs
The purpose of the traceability matrices is to provide easy references on what has to be additionally modified if a certain component is changed. Every time a component is changed, the items in the column of that component that are marked with an “X” should be modified as well. Tab:TraceMatAvsA shows the dependencies of the assumptions on each other. Tab:TraceMatAvsAll shows the dependencies of the data definitions, theoretical models, general definitions, instance models, requirements, likely changes, and unlikely changes on the assumptions. Tab:TraceMatRefvsRef shows the dependencies of the data definitions, theoretical models, general definitions, and instance models on each other. Tab:TraceMatAllvsR shows the dependencies of the requirements and goal statements on the data definitions, theoretical models, general definitions, and instance models.
Traceability Matrix Showing the Connections Between Assumptions and Other Assumptions
Traceability Matrix Showing the Connections Between Assumptions and Other Items
Traceability Matrix Showing the Connections Between Items and Other Sections
Traceability Matrix Showing the Connections Between Requirements, Goal Statements and Other Items
The purpose of the traceability graphs is also to provide easy references on what has to be additionally modified if a certain component is changed. The arrows in the graphs represent dependencies. The component at the tail of an arrow is depended on by the component at the head of that arrow. Therefore, if a component is changed, the components that it points to should also be changed. Fig:TraceGraphAvsA shows the dependencies of assumptions on each other. Fig:TraceGraphAvsAll shows the dependencies of data definitions, theoretical models, general definitions, instance models, requirements, likely changes, and unlikely changes on the assumptions. Fig:TraceGraphRefvsRef shows the dependencies of data definitions, theoretical models, general definitions, and instance models on each other. Fig:TraceGraphAllvsR shows the dependencies of requirements and goal statements on the data definitions, theoretical models, general definitions, and instance models. Fig:TraceGraphAllvsAll shows the dependencies of dependencies of assumptions, models, definitions, requirements, goals, and changes with each other.
Figure: TraceGraphAvsA
Figure: TraceGraphAvsAll
Figure: TraceGraphRefvsRef
Figure: TraceGraphAllvsR
Figure: TraceGraphAllvsAll
For convenience, the following graphs can be found at the links below:
Values of Auxiliary Constants
This section contains the standard values that are used for calculations in BSS.
| Symbol | Description | Value | Unit |
|---|---|---|---|
| \(G\) | gravitational constant | \(66.743\cdot{}10^{-12}\) | \(\frac{\text{m}^{3}}{\text{kg}\text{s}^{2}}\) |
| \({m_{\text{max}}}\) | maximum stellar mass | \(100.0\cdot{}10^{30}\) | \({\text{kg}}\) |
| \({m_{\text{min}}}\) | minimum stellar mass | \(100.0\cdot{}10^{27}\) | \({\text{kg}}\) |
| \({r_{\text{max}}}\) | maximum initial distance from origin | \(10.0\cdot{}10^{12}\) | \({\text{m}}\) |
| \({t_{\text{max}}}\) | maximum simulation time | \(10.0\cdot{}10^{9}\) | \({\text{s}}\) |
| \({v_{\text{max}}}\) | maximum initial speed | \(1.0\cdot{}10^{6}\) | \(\frac{\text{m}}{\text{s}}\) |
Auxiliary Constants
References
[1]: Hibbeler, R. C. Engineering Mechanics: Dynamics. Pearson Prentice Hall, 2004. Print.
[2]: Koothoor, Nirmitha. A Document Driven Approach to Certifying Scientific Computing Software. McMaster University, Hamilton, ON, Canada: 2013. Print.
[3]: Parnas, David L. and Clements, P. C. “A rational design process: How and why to fake it.” IEEE Transactions on Software Engineering, vol. 12, no. 2, Washington, USA: February, 1986. pp. 251–257. Print.
[4]: Smith, W. Spencer and Koothoor, Nirmitha. “A Document-Driven Method for Certifying Scientific Computing Software for Use in Nuclear Safety Analysis.” Nuclear Engineering and Technology, vol. 48, no. 2, April, 2016. http://www.sciencedirect.com/science/article/pii/S1738573315002582. pp. 404–418.
[5]: Smith, W. Spencer and Lai, Lei. “A new requirements template for scientific computing.” Proceedings of the First International Workshop on Situational Requirements Engineering Processes - Methods, Techniques and Tools to Support Situation-Specific Requirements Engineering Processes, SREP’05. Edited by PJ Agerfalk, N. Kraiem, and J. Ralyte, Paris, France: 2005. pp. 107–121. In conjunction with 13th IEEE International Requirements Engineering Conference,
[6]: Smith, W. Spencer, Lai, Lei, and Khedri, Ridha. “Requirements Analysis for Engineering Computation: A Systematic Approach for Improving Software Reliability.” Reliable Computing, Special Issue on Reliable Engineering Computation, vol. 13, no. 1, February, 2007. https://doi.org/10.1007/s11155-006-9020-7. pp. 83–107.
[7]: Wikipedia Contributors. Acceleration. June, 2019. https://en.wikipedia.org/wiki/Acceleration.
[8]: Wikipedia Contributors. Velocity. June, 2019. https://en.wikipedia.org/wiki/Velocity.