Software requirements specification: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
(URLs updated)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This list is following the Wikipedia article {{wikipedia|Software_requirements_specification}}.
This list is following the Wikipedia article {{wikipedia|Software requirements specification}}.


== Introduction ==
== Purpose ==


Commonly referred to as GRASS, this is free Geographic Information System (GIS) software used for geospatial data management and analysis, image processing, graphics/maps production, spatial modeling, and visualization. GRASS GIS is currently used in academic and commercial settings around the world, as well as by many governmental agencies and environmental consulting companies. GRASS GIS is an official project of the Open Source Geospatial Foundation.
The purpose of this document is to describe and define the functional requirements of the '''GRASS GIS application'''. The document follows the IEEE standard for Software Requirements Specification documents.


[[Image:grasslogo_vector_small.png]]
=== Document Conventions ===


=== Purpose ===
The software being described in this document has already been developed. The functions and characteristics mentioned here have already been implemented. This document is intended stay updated with main new features that will be added in future versions of the application. It will also cover hardware, software, and various other technical dependencies.


GRASS GIS, a multi-purpose Open Source GIS, can be used for geospatial data production, analysis, and mapping. It handles 2D and 3D (voxel) raster data, provides a topological 2D and 3D vector engine with SQL-based attribute management, and vector network analysis functions. The database backend may be chosen from a file-based DBF tables, SQLite, MySQL, PostgreSQL, and ODBC data sources. GRASS GIS offers many spatial modelling algorithms, 3D visualization, as well as image processing routines pertaining to LiDAR and multi-band imagery. GRASS integrates well with other Open Source and proprietary software packages for geostatistical analysis, cartographic output, and Web GIS applications.
=== Intended Audience and Reading Suggestions ===
 
This document is intended for a general audience, i.e. casual and professional users, developers, testers and documentation writers.
 
Section 2 provides an overall description of the software with definitions, a system overview and references.
 
Section 3 describes the functionality of the application, particularly useful to all of the aforementioned groups.
 
Section 4 discusses the specific requirements on software, hardware and remarks on performance.
 
Each section is divided in subsections where different matters are discussed.
 
== Project scope ==
 
[[Image:grasslogo_vector_small.png|thumbnail|right|<small>GRASS GIS logo ([https://grass.osgeo.org/download/logos/ download])</small>]]
'''GRASS (Geographic Resources Analysis Support System)''' is a free and open source Geographic Information System (GIS) software suite used for geospatial data management and analysis, image processing, graphics and map production, spatial modeling, and 3D visualization. GRASS GIS is currently used in academic and commercial settings around the world, as well as by many governmental agencies and environmental consulting companies. GRASS GIS can be used either as a stand-alone application or as backend for other software packages such as QGIS and R geostatistics. It is a founding member of the Open Source Geospatial Foundation ([https://www.osgeo.org OSGeo]).
 
GRASS GIS is a multi-purpose Open Source GIS which can be used for geospatial data production, analysis, and mapping. It handles 2D and 3D (voxel) raster data, provides a topological 2D and 3D vector engine with SQL-based attribute management, and vector network analysis functions. The database backend may be chosen from a file-based DBF tables, SQLite, MySQL, PostgreSQL, and ODBC data sources. GRASS GIS offers many spatial modelling algorithms, 3D visualization, as well as image processing routines pertaining to LiDAR and multi-band imagery. GRASS integrates well with other Open Source and proprietary software packages for geostatistical analysis, cartographic output, and Web GIS applications.


=== Definitions ===
=== Definitions ===
Line 21: Line 38:


<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;">
<div style="margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;">
Project Metrics provided by [http://www.ohloh.net/projects/3666 Ohloh].
Project Metrics provided by [https://www.openhub.net/p/3666 Ohloh].


{{#widget:Ohloh Project|id=3666|type=partner_badge}}
{{#widget:Ohloh Project|id=3666|type=partner_badge}}
Line 34: Line 51:
=== References ===
=== References ===


* GRASS Development Team, 2012. Geographic Resources Analysis Support System (GRASS 7) Programmer's Manual. Open Source Geospatial Foundation Project. Electronic document: http://grass.osgeo.org/programming7/
* GRASS Development Team, 2019. Geographic Resources Analysis Support System (GRASS 7) Programmer's Manual. Open Source Geospatial Foundation Project. Electronic document: http://grass.osgeo.org/programming7/
* GRASS Development Team, 2019. GRASS 7.8 Users Manual. Open Source Geospatial Foundation, USA. Electronic document: http://grass.osgeo.org/grass78/manuals/
 
* Neteler, M., Bowman, M.H., Landa, M., Metz, M., 2012, ''GRASS GIS: A multi-purpose open source GIS.'' Environmental Modelling & Software ([http://dx.doi.org/10.1016/j.envsoft.2011.11.014 DOI] | [http://gis.cri.fmach.it/uploads/neteler2012_grass_gis_proof.pdf PDF])
* Neteler, M., Bowman, M.H., Landa, M., Metz, M., 2012, ''GRASS GIS: A multi-purpose open source GIS.'' Environmental Modelling & Software ([http://dx.doi.org/10.1016/j.envsoft.2011.11.014 DOI] | [http://gis.cri.fmach.it/uploads/neteler2012_grass_gis_proof.pdf PDF])
* Neteler, M. and H. Mitasova, 2008, ''Open Source GIS: A GRASS GIS Approach. 3rd Ed.'' 406 pp, 80 illus., Springer, New York. Online Supplement: http://www.grassbook.org/
* Neteler, M. and H. Mitasova, 2008, ''Open Source GIS: A GRASS GIS Approach. 3rd Ed.'' 406 pp, 80 illus., Springer, New York. Online Supplement: http://www.grassbook.org/


== Overall description ==
== Overall description ==
GRASS GIS (Geographic Resources Analysis Support System) is a free, open source geographical information system (GIS) capable of handling raster, topological vector, image processing, and graphic data.


=== Product perspective ===
=== Product perspective ===


TBD.
GRASS GIS (Geographic Resources Analysis Support System) is a free, open source geographical information system (GIS) capable of handling raster, topological vector, image processing, and graphic data. The software is released under the GNU General Public License (GPL) which offers the freedom to run, copy, distribute, study, change, and improve GRASS GIS. Being portable software, it can be used on multiple platforms, including Mac OSX, Microsoft Windows, GNU/Linux, BSD and AIX.


=== Product functions ===
=== Product functions ===


* [http://grass.osgeo.org/gdp/html_grass70/projectionintro.html Intro projections and spatial transformations]
Main manual page: [http://grass.osgeo.org/grass78/manuals/ GRASS GIS Manual]
* [http://grass.osgeo.org/gdp/html_grass70/rasterintro.html Intro 2D raster map processing]
* [http://grass.osgeo.org/gdp/html_grass70/raster3dintro.html Intro 3D raster map (voxel) processing]
* [http://grass.osgeo.org/gdp/html_grass70/imageryintro.html Intro image processing]
* [http://grass.osgeo.org/gdp/html_grass70/vectorintro.html Intro vector map processing and network analysis]
* [http://grass.osgeo.org/gdp/html_grass70/databaseintro.html Intro database management]
* [http://grass.osgeo.org/gdp/html_grass70/temporalintro.html Intro Temporal processing]
* [http://grass.osgeo.org/gdp/html_grass70/postscript.html Printing]
* [http://grass.osgeo.org/gdp/html_grass70/topics.html Index of topics]


Overall: [http://grass.osgeo.org/gdp/html_grass70/ GRASS GIS Manual]
Topic oriented introductions:
* [http://grass.osgeo.org/grass78/manuals/projectionintro.html Intro projections and spatial transformations]
* [http://grass.osgeo.org/grass78/manuals/rasterintro.html Intro 2D raster map processing]
* [http://grass.osgeo.org/grass78/manuals/raster3dintro.html Intro 3D raster map (voxel) processing]
* [http://grass.osgeo.org/grass78/manuals/imageryintro.html Intro image processing]
* [http://grass.osgeo.org/grass78/manuals/vectorintro.html Intro vector map processing and network analysis]
* [http://grass.osgeo.org/grass78/manuals/databaseintro.html Intro database management]
* [http://grass.osgeo.org/grass78/manuals/temporalintro.html Intro Spatio-temporal processing]
* [http://grass.osgeo.org/grass78/manuals/postscript.html Intro Printing]
 
Overview pages:
* [http://grass.osgeo.org/grass78/manuals/topics.html Index of all topics]
* [http://grass.osgeo.org/grass78/manuals/keywords.html Keyword Index]
* [http://grass.osgeo.org/grass78/manuals/addons/ Index of Addons] (extensions)


=== User characteristics ===
=== User characteristics ===


GRASS GIS is a multi-purpose Open Source GIS. It addresses beginners as well as experts, from academia to practitioners in government and industry.
GRASS GIS is a multi-purpose Open Source GIS. The application is intended for use by four user classes:
* beginners who want to learn basics of GIS analysis. Basic understanding of spatial data management is an advantage but not necessary given the available beginner's tutorials;
* intermediate users who migrate to GRASS GIS from a different software;
* experts ("power users") who want to analyse all kind of data including time series and massive data sets;
* developers who want to expand and improve the software under the terms of the GNU General Public License (GPL).
 
Users are commonly from all kind of sectors including researchers in academia, and practitioners in government and industry.


=== Constraints, assumptions and dependencies ===
=== Constraints, assumptions and dependencies ===


GRASS GIS runs on MS-Windows, Mac OSX, GNU/Linux and other POSIX compliant platforms.
GRASS GIS runs on MS-Windows, Mac OSX, GNU/Linux and other POSIX compliant platforms (BSD, AIX, etc). It relies on a series of external libraries ([http://htmlpreview.github.io/?https://github.com/OSGeo/grass/blob/releasebranch_7_8/REQUIREMENTS.html list]) which are usually either included in the binary distributions or easily available for the various operating systems.


== Specific requirements ==
== Specific requirements ==
Line 72: Line 100:
=== External interface requirements ===
=== External interface requirements ===


Requirements to compile GRASS GIS 7: see [https://svn.osgeo.org/grass/grass/trunk/REQUIREMENTS.html here]
Requirements to compile GRASS GIS 7: see [http://htmlpreview.github.io/?https://github.com/OSGeo/grass/blob/releasebranch_7_8/REQUIREMENTS.html here]


=== Functional requirements ===
=== Functional requirements ===
Line 80: Line 108:
=== Performance requirements ===
=== Performance requirements ===


GRASS GIS runs from low-end to high-end hardware (32bit/64bit).
Being a modular software, GRASS GIS runs from low-end to high-end hardware (32bit/64bit).


Concerning the software capabilities and limits, see [[GRASS GIS Performance]].
Concerning the software capabilities and limits, see [[GRASS GIS Performance]].
Line 86: Line 114:
=== Design constraints ===
=== Design constraints ===


GRASS GIS can be run in both command line/scripted/embedded as well as interactive mode (graphical user interface).
GRASS GIS can be run in both command line/scripted/embedded as well in interactive mode (graphical user interface).


=== Logical database requirement ===
=== Logical database requirement ===


GRASS GIS uses its internal (but public, see [http://grass.osgeo.org/programming7 here]) database structure.
GRASS GIS uses its internal (but public, see [http://grass.osgeo.org/programming7 here]) database structure for the sake of completeness in terms of combinations of data storage precision, associated color tables and more.


=== Software System attributes ===
=== Software System attributes ===
Line 107: Line 135:
[[Category: Development]]
[[Category: Development]]
[[Category: FAQ]]
[[Category: FAQ]]
[[Category: Hardware]]
[[Category: Promotion]]
[[Category: Promotion]]

Latest revision as of 15:07, 20 August 2019

This list is following the Wikipedia article Software requirements specification.

Purpose

The purpose of this document is to describe and define the functional requirements of the GRASS GIS application. The document follows the IEEE standard for Software Requirements Specification documents.

Document Conventions

The software being described in this document has already been developed. The functions and characteristics mentioned here have already been implemented. This document is intended stay updated with main new features that will be added in future versions of the application. It will also cover hardware, software, and various other technical dependencies.

Intended Audience and Reading Suggestions

This document is intended for a general audience, i.e. casual and professional users, developers, testers and documentation writers.

Section 2 provides an overall description of the software with definitions, a system overview and references.

Section 3 describes the functionality of the application, particularly useful to all of the aforementioned groups.

Section 4 discusses the specific requirements on software, hardware and remarks on performance.

Each section is divided in subsections where different matters are discussed.

Project scope

GRASS GIS logo (download)

GRASS (Geographic Resources Analysis Support System) is a free and open source Geographic Information System (GIS) software suite used for geospatial data management and analysis, image processing, graphics and map production, spatial modeling, and 3D visualization. GRASS GIS is currently used in academic and commercial settings around the world, as well as by many governmental agencies and environmental consulting companies. GRASS GIS can be used either as a stand-alone application or as backend for other software packages such as QGIS and R geostatistics. It is a founding member of the Open Source Geospatial Foundation (OSGeo).

GRASS GIS is a multi-purpose Open Source GIS which can be used for geospatial data production, analysis, and mapping. It handles 2D and 3D (voxel) raster data, provides a topological 2D and 3D vector engine with SQL-based attribute management, and vector network analysis functions. The database backend may be chosen from a file-based DBF tables, SQLite, MySQL, PostgreSQL, and ODBC data sources. GRASS GIS offers many spatial modelling algorithms, 3D visualization, as well as image processing routines pertaining to LiDAR and multi-band imagery. GRASS integrates well with other Open Source and proprietary software packages for geostatistical analysis, cartographic output, and Web GIS applications.

Definitions

  • GIS: Geographic Information System
  • GPL: GNU General Public License

System overview

GRASS GIS is written in a fully modular way which minimizes overhead (see Figure below). This allows users to run the system, or parts of it, even in portable smart devices, or effectively scale it up to process massive datasets which exceed available system memory by orders of magnitudes. The latest stable release provides 425 modules (commands) for data management and analysis. GRASS GIS can be installed centrally on a network directory for multi-user usage.

Project Metrics provided by Ohloh.

Error in widget Ohloh Project: unable to write file /var/www/grass/grass-wiki/w/extensions/Widgets/compiled_templates/wrt674261942ddb40_22102477

The modules are organized firstly by category (general GIS management modules: g.*, vector modules: v.*, raster modules: r.*, 3D raster modules: r3.*, image processing: i.*, database management: db.*, cartography modules ps.*, etc.) and secondarily by function ("in" input modules, "out" output modules, "cost" cost surfaces, "network" network analysis, etc.). This categorization helps the user to navigate easily in the wealth of available tools, also supported by a tree based functionality catalogue in the graphical user interface.

Data management: The GRASS GIS data directory can be either stored in the user's home directory, or, for shared access for teams the data directory can also be stored in a shared network directory. Users have exclusive write access to their own data while read access to the other team members is granted (can be individually revoked as needed).

GRASS GIS 7 architecture

References

  • Neteler, M., Bowman, M.H., Landa, M., Metz, M., 2012, GRASS GIS: A multi-purpose open source GIS. Environmental Modelling & Software (DOI | PDF)
  • Neteler, M. and H. Mitasova, 2008, Open Source GIS: A GRASS GIS Approach. 3rd Ed. 406 pp, 80 illus., Springer, New York. Online Supplement: http://www.grassbook.org/

Overall description

Product perspective

GRASS GIS (Geographic Resources Analysis Support System) is a free, open source geographical information system (GIS) capable of handling raster, topological vector, image processing, and graphic data. The software is released under the GNU General Public License (GPL) which offers the freedom to run, copy, distribute, study, change, and improve GRASS GIS. Being portable software, it can be used on multiple platforms, including Mac OSX, Microsoft Windows, GNU/Linux, BSD and AIX.

Product functions

Main manual page: GRASS GIS Manual

Topic oriented introductions:

Overview pages:

User characteristics

GRASS GIS is a multi-purpose Open Source GIS. The application is intended for use by four user classes:

  • beginners who want to learn basics of GIS analysis. Basic understanding of spatial data management is an advantage but not necessary given the available beginner's tutorials;
  • intermediate users who migrate to GRASS GIS from a different software;
  • experts ("power users") who want to analyse all kind of data including time series and massive data sets;
  • developers who want to expand and improve the software under the terms of the GNU General Public License (GPL).

Users are commonly from all kind of sectors including researchers in academia, and practitioners in government and industry.

Constraints, assumptions and dependencies

GRASS GIS runs on MS-Windows, Mac OSX, GNU/Linux and other POSIX compliant platforms (BSD, AIX, etc). It relies on a series of external libraries (list) which are usually either included in the binary distributions or easily available for the various operating systems.

Specific requirements

External interface requirements

Requirements to compile GRASS GIS 7: see here

Functional requirements

GRASS GIS 7 does not have any special functional requirements.

Performance requirements

Being a modular software, GRASS GIS runs from low-end to high-end hardware (32bit/64bit).

Concerning the software capabilities and limits, see GRASS GIS Performance.

Design constraints

GRASS GIS can be run in both command line/scripted/embedded as well in interactive mode (graphical user interface).

Logical database requirement

GRASS GIS uses its internal (but public, see here) database structure for the sake of completeness in terms of combinations of data storage precision, associated color tables and more.

Software System attributes

No special requirements.

Other requirements

No special requirements.

See also