GeoGebra_Requirements_Specification

advertisement
Software Requirements
Specification
for
GeoGebra
Requirements for Version 3.0.0.0
Prepared by Arvanitopoulos Nikolaos
Aristotle University of Thessaloniki
15/09/2008
Copyright © 2002 by Karl E. Wiegers. Permission is granted to use, modify, and distribute this document.
Software Requirements Specification for GeoGebra
Page ii
Table of Contents
1. Introduction ......................................................................................................................................1
1.1 Purpose ................................................................................................................................................... 1
1.2 Document Conventions ........................................................................................................................... 1
1.3 Intended Audience and Reading Suggestions ......................................................................................... 1
1.4 Project Scope .......................................................................................................................................... 2
1.5 References ............................................................................................................................................... 3
2. Overall Description ..........................................................................................................................3
2.1 Product Perspective................................................................................................................................. 3
2.2 Product Features ..................................................................................................................................... 4
2.3 User Classes and Characteristics ............................................................................................................ 5
2.4 Operating Environment ........................................................................................................................... 5
2.5 Design and Implementation Constraints ................................................................................................. 5
2.6 User Documentation ............................................................................................................................... 6
2.7 Assumptions and Dependencies ............................................................................................................. 6
3. System Features................................................................................................................................7
3.1 System Feature 1 ..................................................................................................................................... 7
3.2 System Feature 2 ..................................................................................................................................... 9
3.3 System Feature 3 ................................................................................................................................... 11
3.4 System Feature 4 ................................................................................................................................... 12
3.5 System Feature 5 ................................................................................................................................... 23
4. External Interface Requirements .................................................................................................25
4.1 User Interfaces ...................................................................................................................................... 25
4.2 Hardware Interfaces .............................................................................................................................. 26
4.3 Software Interfaces ............................................................................................................................... 27
4.4 Communications Interfaces .................................................................................................................. 27
5. Other Nonfunctional Requirements .............................................................................................27
5.1 Performance Requirements ................................................................................................................... 27
5.2 Safety Requirements ............................................................................................................................. 27
5.3 Security Requirements .......................................................................................................................... 27
Software Requirements Specification for GeoGebra
Page 1
1.Introduction
1.1Purpose
GeoGebra is a dynamic mathematics software that combines geometry, algebra and calculus. It is
developed for learning and teaching mathematics in schools. It is developed by Markus
Hohenwarter at Florida Atlantic University. Its current stable is 3.0.0.0. GeoGebra is able to deal
with many aspects of geometry (points, vectors, segments, lines etc.), algebra (matrices, fields
etc.) and calculus (variables, derivatives, integrals etc.). These are the three characteristic views of
GeoGebra.
1.2Document Conventions
This document is based on IEEE Software Requirements Specification Template. The text editor
MS Word 2003 is used for the creation of the specific document. The font of the chapters and
sections is Times bold with size 18pt and 14 pt respectively. Arial is the font of the main text with
size 11pt. Information regarding the content organization of the rest of the document can be found
in the next section 1.3: Intended Audience and Reading Suggestions. Throughout the
Requirements chapters (chapters 3, 4, 5, 6) there is no convention about the priorities of the
requirements of the application. Every requirement statement is to have its own priority.
1.3Intended Audience and Reading Suggestions
The Requirements Document is intended for the following types of readers:
Role in a Software Development Project
Development Project Leader
Requirements Analyst
Development Team Member
QA Specialist
User Documentation Specialist
Maintenance Team Member
Reason for using the Requirements
Document
 Scope the project; divide the project in
phases
 Track development progress
 Test the application against the
requirements
 Design and code the application
 Verify that application conforms to
requirements
 Produce user documentation
 Support users in production
The rest of this Requirements Document consists of 5 chapters. In chapter 2 there is an overall
description of the project GeoGebra. Chapter 3 describes the list of the system features. In
chapter 4 there is a description of GeoGebra’s external interface requirements. Chapter 5
describes nonfunctional requirements and other requirements that do not belong to a specific
category. Finally three appendices are provided in the end of the document:
- Glossary (Appendix A)
- Analysis Models (Appendix B)
- Issues List (Appendix C)
The suggestive reading of this document is to begin from chapters 1 and 2 and then to proceed
through the sections that are the most pertinent to the reader’s profession.
Software Requirements Specification for GeoGebra
Page 2
1.4Project Scope
As stated in section 1.1: Purpose, project GeoGebra is an education-oriented, dynamic geometry,
algebra and calculus software. It provides a correspondence between the algebraic notations and
the geometric objects in the main operational window of the project.
The project GeoGebra has many benefits in comparison with other programs that deal with
education of mathematics. Specifically:




It is a mathematical product that contains high interaction elements. The user interface is very
friendly and easy to use even for an amateur user.
The software forms a dynamic learning environment. The fact that the shape of the
geometrical figures can be changed while some of their properties remain the same provides
extended flexibility. This dynamic character of the environment provides the capability of
viewing infinite digital graphical representations of a geometrical figure. This infiniteness of
the figures forms an equivalence class that contains all the figures with the same properties.
Every figure which is constructed in the computer monitor is the representative of this class.
The actions of the users (e.g. students) are often accompanied by graphical digital feedback.
The role of the image in general is very supportive in the intellectual growth of the individual.
The GeoGebra project is an open learning environment that provides tools to the student in
order to solve mathematical problems.
Software Requirements Specification for GeoGebra



Page 3
The capability of recording the actions history is a very effective tool for the teacher, the
student and the researcher in order to arrive at conclusions about the learning process that
took place in the corresponding environment.
The GeoGebra environment provides tools (they are defined as “new tools”) that the user can
use as macros to solve problems easier and faster.
The animation playback capability is also a way for the students to learn interactively the
process of any geometrical construction.
The benefits mentioned above are necessary prerequisites for the project to fulfill his goals,
which are:
 Correct, helpful teaching of mathematics.
 Smooth and enjoyable learning from the side of the student, who can display initiative and
critical thinking.
1.5References
Here is a list of web links the Requirements Document refers to:

The original GeoGebra web page:
http://www.geogebra.org/

The original online introduction and documentation of GeoGebra:
http://www.geogebra.org/book/intro-en/
http://www.geogebra.org/help/docuen/

Publications regarding the project GeoGebra:
http://www.geogebra.org/en/wiki/index.php/Publications

The GeoGebra user forum:
http://www.geogebra.org/forum/
2.Overall Description
2.1Product Perspective
As stated in the previous chapter, GeoGebra is one among many programs who deal with
geometry, such as Geometer’s Sketchpad (which is also designed for teaching), Cabri Geometry,
Cinderella and others. However, a strong benefit of GeoGebra is that it also combines algebra and
calculus. This characteristic makes it very powerful against its competitors, which focus only on
geometry. GeoGebra also does not depend on other software to run, it is a completely standalone
application. The only thing to be installed in the system is the Java virtual machine.
Software Requirements Specification for GeoGebra
Page 4
2.2Product Features
In this section there is a summary of the main features of GeoGebra:
1. Geometrical figures construction: the user is able to construct a majority of geometric figures,
such as circles, circular sectors and arcs, polygons, vectors, lines, segments and conics.
2. Primary and secondary elements and tools: the user can experiment with many tools, such as
intersection points, angles, midpoints, perpendicular and parallel lines, angular and line
bisectors, tangents, polar or diameter lines, relations and loci. The calculation of distances,
areas and slope is also provided. Finally the user is able to create animations of construction
processes.
3. Geometric transformations: the user can experiment with angles, midpoints, bisectors,
meridians, tangents, relations and dilations. The calculation of distances and areas is also
provided.
4. Commands and user-defined tools: the capability to create tools and execute a large number
of commands is also provided.
5. Printing, export and general options: The user is able to print and export the drawing pad of
the application as a picture. Furthermore, the global options provided increase the
customization capabilities of the project.
Software Requirements Specification for GeoGebra
Page 5
2.3User Classes and Characteristics
The GeoGebra project is designed basically for learning and teaching in schools. However, due to
its user friendly interface and ease of use, it can also be equally easily used by students in the first
years in University for learning the basics and by mathematicians who are interested in geometry,
algebra and calculus. Students will find the use of GeoGebra very interesting due to its handy
graphical interface. Everything a student or a mathematician needs is directly accessible from the
main buttons and menus of the program. The range and completeness of the mathematical
functions provided in GeoGebra satisfies even the most demanding and experienced user. Below
is a table that displays a summary about the various user classes and their characteristics:
User Class
Frequency of
use
Students
High
Mathematicians
High
Product
functions
used
Primarily
geometric
functions
Geometry,
algebra and
calculus
Technical
expertise
Educational
level
Experience
Average
Average or
High
Low or
Average
High
High
High
The GeoGebra project is more important for mathematicians rather than students. Mathematicians
can use GeoGebra as an educational tool to help students learn the basics (especially in
geometry, which is a recalcitrant topic in Mathematics) in an interesting and positive way.
2.4Operating Environment
The project GeoGebra is written in the Java programming language. As a result it is a platform
independent application, which means that it runs in any operating environment as long as the
Java virtual machine (version 1.4.2 or higher) is installed on the operating system.
2.5Design and Implementation Constraints
The project is developed under the following licenses:
1. GeoGebra Installer, Language and Documentation Files License:
Creative Commons Attribution-NonCommercial-NoDerivs 3.0
2. GeoGebra Application and Source Code License:
GNU General Public License v2
Furthermore, there are not any hardware limitations regarding the application. The only limitation is
the amount of memory the Java Virtual Machine is able to handle. The software does not use any
interfaces or external databases. Finally, the GeoGebra is translated in 37 languages, so there are
not any special language requirements.
Software Requirements Specification for GeoGebra
Page 6
2.6User Documentation
The software is accompanied with detailed documentation as stated in section 1.5: References.
There are also two GeoGebra books for sale in the GeoGebra site. The books are:


Introduction to GeoGebra
GeoGebra Help
2.7Assumptions and Dependencies
The application runs on any platform (x86, x86_64 etc.). There is not any constraint regarding the
operating system to be used. The software does not use any third-party or commercial
components.
Software Requirements Specification for GeoGebra
Page 7
3.System Features
In this requirements document a specific priority component rating is assumed. The features
described below should have a Low, Medium or High priority in a scale from 1 to 9.
3.1System Feature 1
Geometrical figures construction
3.1.1
Description and Priority
The user is able to construct a majority of geometric shapes. These shapes include:






Lines
Segments
Rays
Vectors
Polygons and regular polygons
Circles and circular sectors
The feature is of High priority (9).
3.1.2
Stimulus/Response Sequences
The construction of geometric figures is a very easy operation. The GUI provides
the user with all the appropriate buttons. Each button in the user interface
corresponds to a specific shape. When the button is selected, a help text appears
which describes the sequence of actions the user should perform for the
construction of the shape. After that the corresponding shape is displayed in the
main window of the application and its properties (e.g. equation) on the left panel of
the application. Specifically:
Geometric shape
Line
Stimulus
Selection of two points
Selection of two points
Segment
Ray
Selection of point and
segment length
selection of two points
System response
Line construction, points
coordinates and equation
display
Segment construction,
points coordinates and
length display
Ray construction, points
coordinates and equation
display
selection of two points
Vector
Polygon
selection of starting point
and vector
selection of vertices and
starting point
Vector construction and
coordinates display
Polygon construction,
points coordinates, type
Software Requirements Specification for GeoGebra
Page 8
and area display
Selection of two points
and number of vertices
Polygon construction,
points coordinates, type
and area display
selection of center point
and point on circle
Circle construction,
center and point on circle
coordinates and equation
display
selection of center point
and radius
Circle construction,
center coordinates and
equation display
selection of three points
on circle
Circle construction, points
coordinates and equation
display
Semicircle
selection of two points
Semicircle construction,
points coordinates and
length display
Circular arc
selection of center point
and two points on arc
Circular arc construction,
center and points
coordinates and length
display
Circumcircular arc
selection of three points
on arc
Circumcircular arc
construction, points
coordinates and length
display
Circular sector
selection of center point
and two points on sector
Circular sector
construction, points
coordinates and area
display
Circumcircular sector
Selection of three points
on sector
Circumcircular sector
construction, points
coordinates and area
display
Conic through five
points
Selection of five points
on conic
Conic construction, points
coordinates and equation
display
Regular polygon
Circle
Software Requirements Specification for GeoGebra
3.1.3
Page 9
Functional Requirements
REQ-1:
REQ-2:
REQ-3:
REQ-4:
REQ-5:
REQ-6:
After the initial construction, the basic properties of the geometric shape
should not change.
Objects that are selected from the tool box should stay active until another
object is selected.
The user should be able to select multiple objects at once.
The objects should be manipulated as whole and not as the points that
compose them.
The application should provide the capability to rotate and move any
object.
The user should be able to modify the appearance and the characteristics
of the geometric figures.
3.2System Feature 2
Primary and secondary elements and tools
3.2.1
Description and Priority
The project provides the user with the capability to experiment with primary and
secondary elements and tools. The tools at the user’s disposal are the following:














Intersection between objects
Angles between objects
Midpoints or centers of objects
Perpendicular and parallel lines
Line and angle bisectors
Tangents
Polar or diameter lines
Loci
Calculation of distances and areas of objects
Slope of a line
Relation between two objects
Slider
Text and image
Animation
The feature is of High priority (8).
3.2.2
Stimulus/Response Sequences
The tools provided by the application are very friendly and easy to use. For every
tool there is a corresponding graphical button which performs the operation needed.
When the tool is selected, a help text appears which describes the sequence of
actions the user should perform in order to use the tool effectively. Specifically:
Tool
Stimulus
System response
Intersection
Selection of two lines or
click on intersection
Coordinates of
intersection point(s)
Angle
Selection of three points
or two lines
Angle value display
Software Requirements Specification for GeoGebra
Page 10
Angle with given size
Selection of leg point,
vertex and angle
Angle display
Midpoint or center
Selection of two points,
segment, circle or conic
Midpoint and coordinates
display
Perpendicular line
Selection of a point and
perpendicular line
Perpendicular line and
equation display
Parallel line
Selection of a point and
parallel line
Parallel line and equation
display
Line bisector
Selection of two points or
one segment
Bisector, equation and
intersection point display
Angular bisector
Selection of three points
or two lines
Angular bisector and
equation display
Tangent
Selection of a point, then
circle, conic or function
Tangent and equation
display
Polar of diameter line
Selection of a point or line
first, then circle or conic
Line and equation display
Locus
Selection of locus point
first, then point on line
Locus and equation
display
Distance or length
Selection of two points,
segment, polygon or
circle
Distance or length display
Area
Selection of a polygon,
circle or conic
Area display
Slope
Selection of a line
Slope display
Relation
Selection of two objects
Dialog box that displays
the relation
Slider
Click on drawing pad,
then customize
Slider creation
Text and image
Click on drawing pad,
then select text or image
Text or image insertion
Animation
Shape construction, then
“play” button
An animation that repeats
the construction of a
geometric shape
Software Requirements Specification for GeoGebra
3.2.3
Page 11
Functional Requirements
REQ-1:
REQ-2:
REQ-3:
The identification of the elements and tools should be checked, in case
they are constructed in a different way.
Tools or elements that are selected from the tool box should stay active
until another tool or element is selected.
The user should be able to select multiple tools or elements at once.
3.3System Feature 3
Geometric transformations
3.3.1
Description and Priority
Another important feature of GeoGebra is the large number of geometric
transformations it provides to the user. These transformations are:




Mirroring of objects
Rotation of objects
Translation of objects
Dilation of objects
The feature is of High priority (6).
3.3.2
Stimulus/Response Sequences
Everything the user needs is accessible through the main window of the application.
For every element and tool there is a corresponding graphical button. Again if any
button is selected a help text appears next to the list of buttons which provides the
user with information about how to use the specific button. After the use of the tool,
the application behaves according to the tool used. Specifically:
Transformation
Stimulus
Mirror object at line
Selection of object to
mirror, then line or
reflection
System response
Mirrored object and equation
(or coordinates) display
Mirror object at point
Selection of object to
mirror, then center point
Rotate object around
point by angle
Selection of object to
rotate, then center point
and angle
Rotated object and equation
(or coordinates) display
Translate object by
vector
Selection of object to
translate, then vector
Translated object and
equation (or coordinates)
display
Dilate object from point
by factor
Selection of object to
dilate, then center point
and factor
Dilated object and equation
(or coordinates) display
Software Requirements Specification for GeoGebra
3.3.3
Page 12
Functional Requirements
REQ-1:
REQ-2:
An error message should be shown in case the user has made an error in
the sequence of transformation actions.
The user should be able to produce successive transformations.
3.4System Feature 4
Commands and user-defined tools
3.4.1
Description and Priority
The application provides the user with a majority of commands. The syntax of the
commands is very easy. All the commands are written in a command line provided
by the application. Instead of a built-in command, the user can also type direct input
to the command line using arithmetic operations. Below there is a table that
contains the direct input capabilities and the built-in commands:
Direct input
Built-in commands
numbers and angles
points and vectors
line
conic section
function of x
lists of objects
arithmetic operations
boolean variables
boolean operations
General commands
Boolean commands
Number
Angle
Point
Vector
Segment
Ray
Polygon
Line
Conic section
Function
Parametric curves
Arc and sector
Image
Text
Locus
Sequence
Geometric transformations
The feature is of High priority (7).
3.4.2
Stimulus/Response Sequences
Software Requirements Specification for GeoGebra
Page 13
The command line and the command scroll-down menu are placed on the lower
section of the application window. The only thing the user should do is select the
appropriate command and press enter to activate it. Below there are two tables
which show the available arithmetic and Boolean operations in GeoGebra:
Arithmetic operation
Input
addition
+
subtraction
-
multiplication
* or space key
scalar product
* or space key
division
/
exponentiation
^ or 2
factorial
!
Gamma function
gamma()
parentheses
()
x-coordinate
x()
y-coordinate
y()
absolute value
abs()
sign
sgn()
square root
sqrt()
cubic root
cbrt()
random number between 0 and 1
random()
exponential function
x
Exp() or e
logarithm (natural, of e)
ln() of log()
logarithm of 2
ld()
logarithm of 10
lg()
cosine
cos()
sine
sin()
tangent
tan()
arc cosine
acos()
arc sine
asin()
arc tangent
atan()
hyperbolic cosine
cosh()
hyperbolic sine
sinh()
hyperbolic tangent
tanh()
Software Requirements Specification for GeoGebra
Page 14
antihyperbolic cosine
acosh()
antihyperbolic sine
asinh()
antihyperbolic tangent
atanh()
greatest integer less than or equal
floor()
least integer greater than or equal
ceil()
round
round()
Boolean operation
Input
Valid types
equal
==
numbers, points, lines,
conics
unequal
!=
numbers, points, lines,
conics
less than
<
numbers
greater than
>
numbers
less or equal than
<=
numbers
greater or equal than
>=
numbers
and
^
Booleans
or
v
Booleans
not
!
Booleans
parallel
||
lines
perpendicular
⊥
lines
Below there is a table that displays the available direct input the user can type:
Direct input
Syntax example
numbers
r  3.24
angles
( a  45 ) or ( a  0.79 )
points and vectors
p  (1,0)
line
3x4y2
conic section
y ^2  4x
function
f(x)3x2
lists of objects
L

{
(
1
,0
)
,(
2
,1
)
,(1

,1
)
}

Software Requirements Specification for GeoGebra
Boolean variables
Page 15
a  true
Below there is a description of all the commands available to the user:
General commands



Relation[object a, object b]: shows a message box that tells the relation
between the two objects
Delete[object a]: deletes an object a and all its dependants
th
Element[list L, number n]: n element of list L
Boolean commands


If[condition, a, b]: gives a copy of object a if condition evaluates to true , or a
copy of object b if condition evaluates to false
If[condition, a]: gives a copy of object a if condition evaluates to true , or an
undefined copy if condition evaluates to false
Number
Length







Length[vector a]: length of a vector a
Length[point A]: length of the position vector of A
Length[function f, number x1 , number x2 ]: length of the function graph of f
between numbers x1 and x2
Length[function f, point A, point B]: length of the function graph of f between
points A and B on the graph
Length[curve c, number t1 , number t2 ]: length of a curve c between number
t1 and t2
Length[curve c, point A, point B]: length of a curve c between points A and B
on the curve
Length[list L]: number of elements in the list L
Area


Area[point A, point B, point C, …]: are of the polygon defined by the given
points A , B and C
Area[conic c]: area of a conic section c
Distance



Distance[point A, point B]: distance between two points A and B
Distance[point A, line g]: distance between a point A and a line g
Distance[line g, line h]: distance between lines g and h . Note: distance
between intersection lines is 0.
Modulo function

Mod[number a, number b]: remainder when number a is divided by number b
Integer division

Div[number a, number b]: integer quotient when number a is divided by
number b
Slope
Software Requirements Specification for GeoGebra

Page 16
Slope[line g]: slope of a line g . Note: This command also draws the slope
triangle whose size may vary
Curvature


Curvature[point A, function f]: curvature of function f in point A
Curvature[point A, curve c]: curvature of curve c in point A
Radius

Radius[circle c]: radius of a circle c
Circumference

Circumference[conic c]: returns the circumference of a conic section c (circle of
ellipse)
Perimeter

Perimeter[polygon poly]: perimeter of a polygon poly
Parameter

Parameter[parabola p]: parameter of a parabola p (distance of directrix and
focus)
First Axis Length

FirstAxisLength[conic c]: length of a conic section’s c principal axis
Second Axis Length

SecondAxisLength[conic c]: length of a conic section’s second axis
Eccentricity

Eccentricity[conic c]: eccentricity of a conic section c
Integral


Integral[function f, number a, number b]: definite integral of function f from
number a to b . Note: this command also draws the area between the function
graph of f and the x-axis
Integral[function f, function g, number a, number b]: definite integral of the
difference of the functions f  g from number a to b . Note: this command
also draws the area between the function graphs of f and g
Lower Sum

LowerSum[function f, number a, number b, number n]: lower sum of function
f on the interval [a, b] with n rectangles. Note: this command draws the
rectangles of the lower sum too
Upper Sum

UpperSum[function f, number a, number b, number n]: lower sum of function
f on the interval [a, b] with n rectangles. Note: this command draws the
rectangles of the upper sum too
Iteration

Iteration[function f, number x0 , number n]: iterates function f n times using
the given start value x0
Minimum and Maximum


Min[number a, number b]: minimum of the given numbers a and b
Max[number a, number b]: maximum of the given numbers a and b
Affine Ratio
Software Requirements Specification for GeoGebra

Page 17
AffineRatio[point A, point B, point C]: returns the affine ratio  of three
B
collinear points A , B and C , where CA*A
Cross Ratio

CrossRatio[point A, point B, point C, point D]: cross ratio  of four collinear
points A , B , C and D , where


A
f
f
i
n
e
R
a
t
i
o
[
B
,
C
,
D
]
/
A
f
f
i
n
e
R
a
t
i
o
[
A
,
C
,
D
]
Angle









Angle[vector v1 , vector v2 ]: angle between two vectors v1 and v2 (between 0
and 360 )
Angle[line g, line h]: angle between the direction vectors of two lines g and h
(between 0 and 360 )
Angle[point A, point B, point C]: angle enclosed by BA and BC (between 0
and 360 ). Point B is the apex
Angle[point A, point B, angle alpha]: angle of size alpha drawn from point A
o
ta
te
[A
,a
lp
h
a
,B
]is created too
with vertex B . Note: Point R
Angle[conic c]: angle of twist of a conic section c ’s principal axis
Angle[vector v]: angle between x-axis and vector v
Angle[point A]: angle between x-axis and position vector of point A
Angle[number n]: converts a number n into an angle (result between 0 and
2 )
Angle[polygon poly]: all inner angle of polygon poly
Point
Point






Point[line g]: Point on line g .
Point[conic c]: Point on conic section c (e.g. circle, ellipse, hyperbola)
Point[function f]: Point on function f
Point[polygon poly]: Point on polygon poly
Point[vector v]: Point on vector v
Point[point P, vector v]: Point P plus vector v
Midpoint and Center



Midpoint[point A, point B]: Midpoint of points A and B
Midpoint[segment s]: Midpoint of segment s
Center[conic c]: Center of a conic section c (e.g. circle, ellipse, hyperbola)
Focus

Focus[conic c]: (all) foci of a conic section c
Vertex

Vertex[conic c]: (all) vertices of a conic section c
Centroid

Centroid[polygon poly]: centroid of a polygon poly
Intersect



Intersect[line g, line h]: intersection point of lines g and h
Intersect[line g, conic c]: all Intersection points of line g and conic section c
(max. 2)
th
Intersect[line g, conic c, number n]: n intersection point of line g and conic
c
section
Software Requirements Specification for GeoGebra








Page 18
Intersect[conic c1 , conic c2 ]: all intersection points of conic sections c1
and c2 (max. 4)
th
Intersect[conic c1 , conic c2 , number n]: n intersection point of conic
c
c
sections 1 and 2
Intersect[polynomial f1 , polynomial f 2 ]: all intersection points of
polynomials f1 and f 2
th
Intersect[polynomial f1 , polynomial f 2 , number n]: n intersection point of
f
f
polynomials 1 and 2
Intersect[polynomial f, line g]: all intersection
points of polynomial f and line g
th
n
Intersect[polynomial f, line g, number n]:
intersection point of polynomial f
and line g
Intersect[function f, function g, point A]: intersection point of functions f and
g with initial point A (for Newton's method)
Intersect[function f, line g, point A]: intersection point of function f and line g
with initial point A (for Newton's method)
Root



Root[polynomial f]: all roots of polynomial f (as points)
Root[function f, number a]: one root of function f with initial value a
(Newton's method)
Root[function f, number a, number b]: one root of function f on interval [a, b]
(regula falsi)
Extremum

Extremum[polynomial f]: all local extrema of polynomial f (as points)
InflectionPoint

InflectionPoint[polynomial f]: all infection points of polynomial f
Vector
Vector


Vector[point A, point B]: Vector from point A to point B
Vector[point A]: Position vector of point A
Direction

Direction[line g]: direction vector of line g . Note: a line with equation
axbyc has the direction vector (b,  a)
Unit Vector


UnitVector[line g]: direction vector with length 1 of a line g
UnitVector[vector v]: vector with length 1, same direction and orientation as the
given vector v
Perpendicular Vector


PerpendicularVector[line g]: perpendicular vector of a line g . Note: A line with
equation axbyc has the perpendicular vector (a, b) .
PerpendicularVector[vector v]: perpendicular vector of a vector v . Note: A
vector with coordinates (a, b) has the perpendicular vector (b, a ) .
Unit Perpendicular Vector
Software Requirements Specification for GeoGebra


Page 19
UnitPerpendicularVector[line g]: perpendicular vector with length 1 of a line g
UnitPerpendicularVector[vector v]: perpendicular vector with length 1 of a
vector v
Curvature Vector


CurvatureVector[point A, function f]: curvature vector of function f in point A
CurvatureVector[point A, curve c]: curvature vector of curve c in point A
Segment


Segment[point A, point B]: segment between two points A and B
Segment[point A, number a]: segment with length a and starting point A .
Note: The endpoint of the segment is created too.
Ray


Ray[point A, point B]: ray starting at point A through point B
Ray[point A, vector v]: ray starting at point A with direction vector v
Polygon


Polygon[point A, point B, point C,...]: polygon defined by the given points A ,
B , C ,…
Polygon[point A, point B, number n]: regular polygon with n vertices (including
points A and B )
Line
Line



Line[point A, point B]: line through two points A and B
Line[point A, line g]: line through point A parallel to line g
Line[point A, vector v]: line through point A with direction vector v
Perpendicular


Perpendicular[point A, line g]: line through point A perpendicular to line g
Perpendicular[point A, vector v]: line through point A perpendicular to vector v
Line Bisector


LineBisector[point A, point B]: line bisector of the line segment AB
LineBisector[segment s]: line bisector of the segment s
Angular Bisector


AngularBisector[point A, point B, point C]: angular bisector of the angle defined
by points A , B , and C . Note: Point B is apex of this angle
AngularBisector[line g, line h]: both angular bisectors of lines g and h
Tangent


Tangent[point A, conic c]: (all) tangents through point A to conic section c
Tangent[line g, conic c]: (all) tangents to conic section c that are parallel to line



Tangent[number a, function f]: tangent to function f ( x) at x  a
Tangent[point A, function f]: tangent to function f ( x) at x  x( A)
Tangent[point A, curve c]: tangent to curve c in point A
g
Asymptote
Software Requirements Specification for GeoGebra

Page 20
Asymptote[hyperbola h]: both asymptotes of a hyperbola h
Directrix

Directrix[parabola p]: directrix of a parabola p
Axes

Axes[conic c]: principal and second axis of a conic section c
First Axis

FirstAxis[conic c]: principal axis of a conic section c
Second Axis

SecondAxis[conic c]: second axis of a conic section c
Polar

Polar[point A, conic c]: polar line of point A relative to conic section c
Diameter


Diameter[line g , conic c]: diameter parallel to line g relative to conic section c
Diameter[vector v, conic c]: diameter with direction vector v relative to conic
section c
Conic Section
Circle


Circle[point M, number r]: circle with midpoint M and radius r
Circle[point M, segment s]: circle with midpoint M and radius equal to


Circle[point M, point A]: circle with midpoint M through point A
Circle[point A, point B, point C]: circle through three points A , B and C
Length[s]
Osculating Circle


OsculatingCircle[point A, function f]: osculating circle of function f in point A
OsculatingCircle[point A, curve c]: osculating circle of curve c in point A
Ellipse


Ellipse[point F, point G, number a]: ellipse with focal points F and G and
a

D
is
ta
n
c
e
[
F
,G
]
principal axis length a . Note: Condition: 2
Ellipse[point F, point G, segment s]: ellipse with focal points F and G where
engths
[ ]).
the length of the principal axis equals the length of segment s (aL
Hyperbola


Hyperbola[point F, point G, number a]: hyperbola with focal points F and G
aD
i
s
t
a
n[,
c
e
F
G
]
and principal axis length a . Note: Condition: 02
Hyperbola[point F, point G, segment s]: hyperbola with focal points F and G
where the length of the principal axis equals the length of segment s
(aL
engths
[ ])
Parabola

Parabola[point F, line g]: parabola with focal point F and directrix g
Conic

Conic[point A, point B, point C, point D, point E]: conic section through five
points A , B , C , D , and E . Note: No four of the points lie on one line.
Software Requirements Specification for GeoGebra
Page 21
Function
Derivative


Derivative[function f]: derivative of thfunction f ( x)
Derivative[function f, number n]: n derivative of function f ( x)
Integral

Integral[function f]: indefinite integral for function f ( x)
Polynomial

Polynomial[function f]: expanded polynomial function f .
Taylor Polynomial

TaylorPolynomial[function f, number a, number n]: power series expansion for
function f about the point x  a to order n
Function

Function[function f, number a, number b]: function, that is equal to f on the
interval [a, b] and not defined outside [a, b]
Conditional Function

You can use the Boolean command If in order to create a conditional function.
Note: You can use derivatives and integrals of such functions and intersect
them like “normal” functions.
Parametric Curves

Curve[expression e1 , expression e2 , parameter t, number a, number b]:
Cartesian parametric curve for the given x-expression e1 and y-expression e2
(using parameter t ) within the given interval [a, b]
Arc and Sector
Semicircle

Semicircle[point A, point B]: semicircle above the segment AB .
Circular Arc

CircularArc[point M, point A, point B]: circular arc with midpoint M between
points A and B . Note: Point B does not have to lie on the arc.
Circumcircular Arc

CircumcircularArc[point A, point B, point C]: circular arc through three points
A , B and C
Arc


Arc[conic c, point A, point B]: conic section arc between two points A and B
on the conic section c (circle or ellipse)
Arc[conic c, number t1 , number t2 ]: conic section arc between two parameter
values t1 and t2 on the conic section c for the following parameter forms:
o
s
t , rs
in
t where r is the circle's radius


- Circle: rc
a
c
o
s
t
,
b
s
i
n
t where a and b are the lengths of the first


- Ellipse:
and second axis


Circular Sector


Software Requirements Specification for GeoGebra

Page 22
CircularSector[point M, point A, point B]: circular sector with midpoint M
between two points A and B . Note: point B does not have to lie on the arc.
Circumcircular Sector

CircumcircularSector[point A, point B, point C]: circular sector through three
points A , B and C
Sector


Sector[conic c, point A, point B]: conic section sector between two points A
and B on the conic section c (circle or ellipse)
Sector[conic c, number t1 , number t2 ]: conic section sector between two
parameter values t1 and t2 on the conic section c for the following
parameter forms:
o
s
t , rs
in
t where r is the circle's radius


- Circle: rc
c
o
s
t, b
s
in
t where a and b are the lengths of the first


- Ellipse: a
and second axis




Image
Corner

th
Corner[image pic, number n]: n corner of an image pic with a maximum of 4
corners
Text
Name

Name[object]: text showing the name of the given object. Note: Use this
command in dynamic texts for objects that might be renamed
Locus

Locus[point Q, point P]: locus line of point Q that depends on point P .
Note: Point P has to be a point on an object (e.g. line, segment, circle)
Sequence
Sequence


Sequence[expression e, variable i, number a, number b]: list of objects created
using expression e and index i that ranges from number a to number b .
Sequence[expression e, variable i, number a, number b, number s]: list of
objects created using expression e and index i that ranges from number a to
number b with given step size s .
Iteration

IterationList[function f, number x0 , number n]: list L of length n  1 whose
elements are iterations of function f starting with the value x0 .
Tools and Toolbar
Software Requirements Specification for GeoGebra
Page 23
User defined tools
Furthermore, the application gives the user the capability to create new tools based
on an existing construction. After preparing the construction, the user can specify
the input and output objects of the tool and choose names for the toolbar icon and
command. The tool can be used both with the mouse and as a command in the
command line. All tools are automatically saved in the current “.ggb” file. Moreover,
the user is able to delete or modify a tool (its name or icon). The selected tools can
be saved in a “.ggt” file. That way the tools can be loaded to another construction.
3.4.3
Functional Requirements
REQ-1:
REQ-2:
An error message that describes the syntax of the command should be
shown, in case the user has made an input error.
The user should be able to add or remove elements from the created
tools.
3.5System Feature 5
Printing, export and general options
3.5.1
Description and Priority
At the user’s disposal is the capability to print and export the drawing pad as a
picture. The supported image formats are:





PNG – Portable Network Graphics
EPS – Encapsulated Postscript
SVG – Scalable Vector Graphics
EMF – Enhanced Meta Format
PSTricks – for LaTeX
Furthermore, the user is able to copy the drawing pad to the clipboard in PNG
format.
A majority of global options is provided to the user by the application. These
include:












Point Capturing
Angle Unit
Decimal Places
Continuity
Point Style
Right Angle Style
Coordinates
Labeling
Font Size
Language
Drawing Pad
Save Settings
The feature is of Medium priority (4).
Software Requirements Specification for GeoGebra
3.5.2
Page 24
Stimulus/Response Sequences
The only thing the user should do to export and print the drawing pad of the
application is click on the corresponding buttons in the “File” menu and experiment
with the available options.
Below there is a description of the available global options of the application:










Point Capturing: Automatic, on , on (Grid), off
Angle Unit: Degree, Radians
Decimal Places: 0, 1, 2, 3, 4, 5
Continuity: on, off
Point Style: ●, , ○
Right Angle Style:
Coordinates: A=(x,y), A(x|y), A:(x,y)
Labeling: Automatic, All new objects, No new objects, New points only
Font Size: 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32
Language:
- Arabic
- Basque
- Bosnian
- Bulgarian
- Catalan
- Chinese
- Croatian
- Czech
- Danish
- Dutch
- English
- Estonian
- Finnish
- French
- Galician
- German
- Greek
- Hebrew
- Hungarian
- Italian
- Japanese
- Macedonian
- Norwegian
- Persian
- Polish
- Portuguese
- Russian
- Serbian
- Slovak
- Slovenian
- Swedish
- Spanish
- Turkish
- Vietnamese
 Drawing Pad: Several Axis and Grid options and customizations
 Save Settings
 Restore Default Settings
Software Requirements Specification for GeoGebra
3.5.3
Page 25
Functional Requirements
REQ-1:
REQ-2:
REQ-3:
The user should be able to customize the appearance and characteristics
of the drawing pad, an object or a tool.
The user should be able to modify the resolution of the exporting drawing
pad.
The user should be able to preview the printing of the drawing pad.
4.External Interface Requirements
4.1User Interfaces
The GUI of the application is developed using the Java swing Library. Below there is a screenshot
which shows the initial application environment:
Software Requirements Specification for GeoGebra
Page 26
Below are the buttons of the GUI that are displayed every time the application starts:
The following screenshot shows the command line interface:
The table below provides all the available shortcuts keys and their functions:
Function
Shortcut
New window
Ctrl+N
Open
Ctrl+O
Save
Ctrl+S
Save as …
Ctrl+Shift+S
Print preview
Ctrl+P
Dynamic Worksheet as Webpage (html) …
Ctrl+Shift+W
Drawing Pad as Picture (png, eps) …
Ctrl+Shift+P
Drawing Pad as PSTricks …
Ctrl+Shift+T
Drawing Pad to Clipboard
Ctrl+Shift+C
Close
Alt+F4
Undo
Ctrl+Z
Redo
Ctrl+Y
Delete
Delete
Select all
Ctrl+A
Properties …
Ctrl+E
Algebra window
Ctrl+Shift+A
Refresh views
Ctrl+F
4.2Hardware Interfaces
There are not any known hardware interface requirements.
Software Requirements Specification for GeoGebra
Page 27
4.3Software Interfaces
As stated in previous sections the GeoGebra project is a standalone Java application which runs
on all operating systems that include the Java Virtual Machine (version 1.4.2 or higher).
Furthermore the application provides the user with a JavaScript interface in order to experiment
with HTML editing. More information about using JavaScript with GeoGebra applets can be found
in GeoGebra Applets and JavaScript.
4.4Communications Interfaces
The application does not use any communication protocols. As a result there are not any known
requirements regarding the communication interfaces of the program.
5.Other Nonfunctional Requirements
5.1Performance Requirements
There are not any known performance requirements.
5.2Safety Requirements
There are not any known requirements regarding possible loss, damage or harm that could result
from the use of the product.
5.3Security Requirements
There are not any known requirements regarding security, privacy issues or protection of the data
used or created by the product.
Software Requirements Specification for GeoGebra
Appendix A: Glossary
Appendix B: Analysis Models
Below there is a general use case diagram that combines all the features of the
application:
Appendix C: Issues List
Page 28
Download